├── .eslintignore ├── .eslintrc ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── build.yml ├── .gitignore ├── .npmrc ├── .prettierrc ├── LICENSE ├── README.md ├── babel.config.js ├── package.json ├── scripts ├── link.bat └── unlink.bat ├── src ├── components │ ├── Button │ │ ├── index.tsx │ │ └── style.ts │ ├── Checkbox │ │ ├── index.tsx │ │ └── style.ts │ ├── DragDrop │ │ └── index.tsx │ ├── Draggable │ │ └── index.tsx │ ├── Droppable │ │ └── index.tsx │ ├── FormControl │ │ ├── index.tsx │ │ └── style.ts │ ├── Group │ │ └── index.ts │ ├── Icon │ │ ├── index.tsx │ │ └── style.ts │ ├── IconButton │ │ ├── index.tsx │ │ └── style.ts │ ├── Input │ │ ├── index.tsx │ │ └── style.ts │ ├── Menu │ │ └── index.tsx │ ├── MenuButton │ │ └── index.tsx │ ├── MenuItem │ │ ├── index.tsx │ │ └── style.ts │ ├── MenuList │ │ ├── index.tsx │ │ └── style.ts │ ├── Scrollable │ │ ├── index.tsx │ │ └── style.ts │ ├── Scrollbar │ │ ├── index.tsx │ │ └── style.ts │ ├── Skeleton │ │ └── index.ts │ ├── Slider │ │ ├── index.tsx │ │ └── style.ts │ ├── Spinner │ │ ├── index.tsx │ │ └── style.ts │ ├── Textarea │ │ ├── index.tsx │ │ └── style.ts │ └── ThemeProvider │ │ └── index.tsx ├── constants │ ├── colors.ts │ ├── dialog.ts │ └── icons.ts ├── core │ ├── component.ts │ ├── use-variant.ts │ └── variants.ts ├── dnd │ ├── dnd-context.ts │ ├── use-dnd.ts │ ├── use-draggable.ts │ └── use-droppable.ts ├── hooks │ ├── use-debounce-input.ts │ ├── use-delayed-hover.ts │ ├── use-disable-scroll-button.ts │ ├── use-id.ts │ ├── use-items.ts │ ├── use-popup.ts │ ├── use-query.ts │ ├── use-safe-layout-effect.ts │ └── use-theme-vars.ts ├── index.ts ├── interfaces │ ├── index.ts │ └── point.ts ├── menu │ ├── menu-context.ts │ ├── use-menu-button.ts │ ├── use-menu-item-controller.ts │ ├── use-menu-item.ts │ ├── use-menu-list.ts │ └── use-menu.ts ├── mixins │ ├── background.ts │ ├── border.ts │ ├── cursors.ts │ ├── default-styles.ts │ ├── images.ts │ ├── positioning.ts │ ├── scroll.ts │ ├── shadows.ts │ ├── size.ts │ ├── typography.ts │ └── user-selection.ts ├── popup │ └── popup.ts ├── resources │ └── icons │ │ └── checked.svg ├── theme │ └── theme.ts └── utils │ ├── box.ts │ ├── colors.ts │ ├── dom.ts │ ├── form.ts │ ├── math.ts │ ├── merge.ts │ ├── react.ts │ └── style.ts ├── tsconfig.json ├── webpack.config.js └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | packages/**/build 4 | packages/**/node_modules 5 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "@typescript-eslint/parser", 3 | "plugins": ["@typescript-eslint", "prettier", "react", "react-hooks"], 4 | "extends": [ 5 | "eslint:recommended", 6 | "plugin:@typescript-eslint/eslint-recommended", 7 | "plugin:@typescript-eslint/recommended", 8 | "plugin:react/recommended", 9 | "plugin:react-hooks/recommended", 10 | "plugin:prettier/recommended" 11 | ], 12 | "parserOptions": { 13 | "ecmaVersion": 2020, 14 | "sourceType": "module" 15 | }, 16 | "rules": { 17 | "@typescript-eslint/explicit-function-return-type": "off", 18 | "@typescript-eslint/interface-name-prefix": "off", 19 | "@typescript-eslint/no-explicit-any": "off", 20 | "@typescript-eslint/no-use-before-define": "off", 21 | "@typescript-eslint/no-var-requires": "off", 22 | "@typescript-eslint/no-empty-interface": "off", 23 | "@typescript-eslint/no-empty-function": "off", 24 | "@typescript-eslint/explicit-module-boundary-types": "off", 25 | "@typescript-eslint/no-non-null-assertion": "off", 26 | "react/display-name": "off", 27 | "react/jsx-no-target-blank": "off", 28 | "react/prop-types": "off", 29 | "react-hooks/rules-of-hooks": "error", 30 | "react-hooks/exhaustive-deps": "warn", 31 | "prettier/prettier": [ 32 | "error", 33 | { 34 | "endOfLine": "auto" 35 | } 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | **Bug description** 10 | 11 | 12 | 13 | **To Reproduce** 14 | 15 | 16 | 17 | **Expected behavior** 18 | 19 | 20 | 21 | **Screenshots** 22 | 23 | 24 | 25 | **Details:** 26 | 27 | - Wexond UI version: 28 | - Last known working Wexond UI version: 29 | 30 | **Additional context** 31 | 32 | 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | 12 | 13 | **Describe the solution you'd like** 14 | 15 | 16 | **Describe alternatives you've considered** 17 | 18 | 19 | **Additional context** 20 | 21 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | #### Description of Change 2 | 3 | 7 | 8 | #### Checklist 9 | 10 | 11 | 12 | - [ ] PR description included 13 | - [ ] PR title follows semantic [commit guidelines](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716) 14 | - [ ] PR release notes describe the change, and are capitalized, punctuated, and past tense. 15 | 16 | #### Release Notes 17 | 18 | Notes: