From e0f6980f5d4fde2a906579a20160cde5b0fc3c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Teixeira?= Date: Wed, 31 Jan 2024 09:58:39 +0000 Subject: [PATCH] feat: multi-theme experiments (#32) --- .changeset/few-foxes-cough.md | 13 + .eslintignore | 1 - .github/workflows/release_canary.yml | 2 +- .github/workflows/update_docs.yml | 4 +- .vscode/launch.json | 2 +- .vscode/settings.json | 2 +- .vscode/tasks.json | 4 +- LICENSE | 2 +- package.json | 3 +- packages/docs/.eslintrc.cjs | 12 - packages/docs/.gitignore | 28 -- packages/docs/.stylelintrc.js | 4 - packages/docs/README.md | 7 - packages/docs/env.d.ts | 1 - packages/docs/package.json | 34 --- packages/docs/postcss.config.js | 8 - .../src/components/common/CodeSnippet.vue | 84 ------ .../src/pages/component/collapse/expanded.vue | 10 - .../src/pages/component/collapse/index.vue | 36 --- .../src/pages/component/collapse/usage.vue | 8 - .../docs/src/pages/component/form/usage.vue | 75 ----- .../docs/src/pages/component/radio/usage.vue | 14 - packages/docs/tailwind.config.js | 13 - packages/docs/tsconfig.json | 17 -- packages/docs/tsconfig.vite-config.json | 8 - packages/docs/vite.config.ts | 18 -- packages/ui/README.md | 8 +- packages/{docs/src => ui/docs}/App.vue | 2 +- .../{docs/src => ui/docs}/assets/css/hljs.css | 0 .../src => ui/docs}/assets/css/tailwind.css | 0 .../src => ui/docs}/assets/images/error.svg | 0 .../src => ui/docs}/assets/images/logo.png | Bin .../docs}/assets/images/logo_white.png | Bin .../src => ui/docs}/components/Cookies.vue | 0 .../docs}/components/common/CodePreview.vue | 22 +- .../ui/docs/components/common/CodeSnippet.vue | 49 ++++ .../docs}/components/common/CopyButton.vue | 2 +- .../docs}/components/common/DocumentPage.vue | 0 .../components/common/Indielayer-theme.json | 0 .../docs}/components/common/MultiSnippet.vue | 0 .../docs}/components/menu/DocsMenu.vue | 6 +- .../docs}/components/toolbar/PreToolbar.vue | 0 .../docs}/components/toolbar/Toolbar.vue | 6 +- .../components/toolbar/ToolbarColorToggle.vue | 0 packages/{docs/src => ui/docs}/icons.ts | 0 .../{docs/src => ui/docs}/layouts/default.vue | 10 +- .../{docs/src => ui/docs}/layouts/simple.vue | 0 packages/{docs/src => ui/docs}/main.ts | 2 +- .../{docs/src => ui/docs}/pages/colors.vue | 4 +- .../docs/pages/component/accordion/index.vue | 29 ++ .../docs/pages/component/accordion/usage.vue | 30 ++ .../docs}/pages/component/alert/index.vue | 6 +- .../docs}/pages/component/alert/usage.vue | 0 .../docs}/pages/component/avatar/index.vue | 4 +- .../docs}/pages/component/avatar/size.vue | 0 .../docs}/pages/component/avatar/usage.vue | 0 .../docs}/pages/component/avatar/variants.vue | 0 .../docs}/pages/component/badge/index.vue | 4 +- .../docs}/pages/component/badge/usage.vue | 0 .../pages/component/breadcrumbs/index.vue | 4 +- .../pages/component/breadcrumbs/usage.vue | 0 .../pages/component/button/button-group.vue | 2 +- .../docs}/pages/component/button/icons.vue | 0 .../docs}/pages/component/button/index.vue | 4 +- .../docs}/pages/component/button/size.vue | 2 +- .../docs}/pages/component/button/states.vue | 0 .../docs}/pages/component/button/usage.vue | 4 +- .../docs}/pages/component/button/variants.vue | 0 .../docs}/pages/component/card/index.vue | 4 +- .../docs}/pages/component/card/usage.vue | 0 .../docs}/pages/component/carousel/index.vue | 6 +- .../docs}/pages/component/carousel/usage.vue | 0 .../docs}/pages/component/checkbox/index.vue | 4 +- .../docs}/pages/component/checkbox/size.vue | 0 .../docs}/pages/component/checkbox/states.vue | 1 + .../docs}/pages/component/checkbox/usage.vue | 7 +- .../pages/component/checkbox/variants.vue | 0 .../docs}/pages/component/container/index.vue | 6 +- .../docs}/pages/component/container/usage.vue | 0 .../docs}/pages/component/divider/index.vue | 4 +- .../docs}/pages/component/divider/label.vue | 0 .../docs}/pages/component/divider/usage.vue | 0 .../pages/component/divider/vertical.vue | 0 .../docs}/pages/component/drawer/index.vue | 4 +- .../docs}/pages/component/drawer/usage.vue | 0 .../docs}/pages/component/form/index.vue | 6 +- .../ui/docs/pages/component/form/usage.vue | 89 ++++++ .../docs/pages/component/formGroup/index.vue | 29 ++ .../docs/pages/component/formGroup/usage.vue | 46 +++ .../docs}/pages/component/icon/index.vue | 4 +- .../docs}/pages/component/icon/usage.vue | 0 .../docs}/pages/component/icon/variants.vue | 0 .../docs}/pages/component/image/index.vue | 4 +- .../docs}/pages/component/image/usage.vue | 0 .../docs}/pages/component/input/index.vue | 4 +- .../docs}/pages/component/input/size.vue | 0 .../docs}/pages/component/input/states.vue | 0 .../docs}/pages/component/input/usage.vue | 0 .../docs}/pages/component/input/variants.vue | 0 .../docs}/pages/component/link/index.vue | 4 +- .../docs}/pages/component/link/usage.vue | 0 .../docs}/pages/component/loader/index.vue | 4 +- .../docs}/pages/component/loader/usage.vue | 0 .../docs}/pages/component/menu/index.vue | 4 +- .../docs}/pages/component/menu/usage.vue | 0 .../docs/pages/component/modal/composed.vue | 70 +++++ .../docs}/pages/component/modal/index.vue | 11 +- .../docs}/pages/component/modal/usage.vue | 2 +- .../pages/component/notifications/index.vue | 4 +- .../pages/component/notifications/usage.vue | 2 +- .../pages/component/pagination/index.vue | 4 +- .../pages/component/pagination/usage.vue | 0 .../docs}/pages/component/popover/index.vue | 4 +- .../docs}/pages/component/popover/usage.vue | 0 .../docs}/pages/component/progress/index.vue | 4 +- .../docs}/pages/component/progress/usage.vue | 0 .../pages/component/progress/variants.vue | 0 .../docs}/pages/component/radio/index.vue | 4 +- .../docs}/pages/component/radio/size.vue | 0 .../docs}/pages/component/radio/states.vue | 0 .../ui/docs/pages/component/radio/usage.vue | 14 + .../docs}/pages/component/radio/variants.vue | 0 .../pages/component/scroll/horizontal.vue | 0 .../docs}/pages/component/scroll/index.vue | 4 +- .../docs}/pages/component/scroll/usage.vue | 0 .../docs}/pages/component/select/index.vue | 4 +- .../docs}/pages/component/select/states.vue | 0 .../docs}/pages/component/select/usage.vue | 0 .../docs}/pages/component/select/variants.vue | 0 .../docs}/pages/component/skeleton/index.vue | 4 +- .../docs}/pages/component/skeleton/usage.vue | 0 .../docs}/pages/component/slider/index.vue | 4 +- .../docs}/pages/component/slider/usage.vue | 0 .../docs}/pages/component/spacer/index.vue | 4 +- .../docs}/pages/component/spacer/usage.vue | 0 .../docs}/pages/component/spinner/index.vue | 4 +- .../docs}/pages/component/spinner/usage.vue | 0 .../pages/component/spinner/variants.vue | 0 .../ui/docs/pages/component/stepper/index.vue | 29 ++ .../ui/docs/pages/component/stepper/usage.vue | 21 ++ .../docs}/pages/component/table/index.vue | 11 +- .../ui/docs/pages/component/table/states.vue | 28 ++ .../docs}/pages/component/table/usage.vue | 20 +- .../docs}/pages/component/tabs/index.vue | 4 +- .../docs}/pages/component/tabs/usage.vue | 14 +- .../docs}/pages/component/tag/index.vue | 4 +- .../docs}/pages/component/tag/usage.vue | 4 +- .../docs}/pages/component/textarea/index.vue | 4 +- .../docs}/pages/component/textarea/states.vue | 0 .../docs}/pages/component/textarea/usage.vue | 0 .../pages/component/textarea/variants.vue | 0 .../docs}/pages/component/toggle/index.vue | 6 +- .../docs}/pages/component/toggle/states.vue | 0 .../docs}/pages/component/toggle/usage.vue | 0 .../docs}/pages/component/toggle/variants.vue | 0 .../docs}/pages/component/tooltip/index.vue | 4 +- .../docs}/pages/component/tooltip/usage.vue | 0 .../{docs/src => ui/docs}/pages/error.vue | 2 +- .../{docs/src => ui/docs}/pages/icons.vue | 2 +- .../{docs/src => ui/docs}/pages/index.vue | 16 +- packages/{docs/src => ui/docs}/pages/play.vue | 0 .../src => ui/docs}/pages/typography.vue | 0 .../{docs/src => ui/docs}/router/index.ts | 16 +- packages/ui/exports/tailwind.preset.js | 1 + packages/{docs => ui}/index.html | 2 +- packages/ui/package.json | 6 +- packages/{docs => ui}/public/favicon.ico | Bin packages/{docs => ui}/public/robots.txt | 0 .../shiki/languages/html.tmLanguage.json | 0 .../languages/javascript.tmLanguage.json | 0 .../languages/shellscript.tmLanguage.json | 0 .../languages/typescript.tmLanguage.json | 0 .../shiki/languages/vue-html.tmLanguage.json | 0 .../shiki/languages/vue.tmLanguage.json | 0 .../public/shiki/themes/indielayer.json | 0 packages/ui/src/common/icons.ts | 5 +- .../ui/src/components/accordion/Accordion.vue | 51 ++++ .../AccordionItem.vue} | 80 +++-- .../accordion/__tests__/Accordion.spec.ts | 11 + packages/ui/src/components/accordion/index.ts | 4 + .../accordion/theme/Accordion.base.theme.ts | 9 + .../accordion/theme/Accordion.carbon.theme.ts | 9 + .../theme/AccordionItem.base.theme.ts | 35 +++ .../theme/AccordionItem.carbon.theme.ts | 35 +++ .../alert/theme/Alert.carbon.theme.ts | 56 +++- .../button/theme/Button.carbon.theme.ts | 2 +- .../ui/src/components/checkbox/Checkbox.vue | 89 ++++-- .../checkbox/theme/Checkbox.base.theme.ts | 16 +- .../checkbox/theme/Checkbox.carbon.theme.ts | 20 +- packages/ui/src/components/collapse/index.ts | 2 - .../collapse/theme/Collapse.base.theme.ts | 13 - .../collapse/theme/Collapse.carbon.theme.ts | 7 - packages/ui/src/components/form/Form.vue | 31 +- .../components/form/theme/Form.base.theme.ts | 10 +- .../form/theme/Form.carbon.theme.ts | 14 +- .../ui/src/components/formGroup/FormGroup.vue | 116 ++++++++ .../formGroup/__tests__/FormGroup.spec.ts | 11 + packages/ui/src/components/formGroup/index.ts | 2 + .../formGroup/theme/FormGroup.base.theme.ts | 16 + .../formGroup/theme/FormGroup.carbon.theme.ts | 16 + .../components/icon/theme/Icon.base.theme.ts | 2 +- .../icon/theme/Icon.carbon.theme.ts | 7 +- packages/ui/src/components/index.ts | 4 +- packages/ui/src/components/input/Input.vue | 6 +- .../input/theme/Input.carbon.theme.ts | 2 +- .../theme/InputFooter.base.theme.ts | 2 +- .../theme/InputFooter.carbon.theme.ts | 2 +- .../label/theme/Label.carbon.theme.ts | 11 +- packages/ui/src/components/link/Link.vue | 2 +- .../link/theme/Link.carbon.theme.ts | 25 +- .../loader/theme/Loader.carbon.theme.ts | 2 +- packages/ui/src/components/menu/Menu.vue | 11 +- packages/ui/src/components/menu/MenuItem.vue | 2 +- .../menu/theme/MenuItem.base.theme.ts | 4 +- packages/ui/src/components/modal/Modal.vue | 160 ++++++---- .../modal/theme/Modal.base.theme.ts | 40 ++- .../modal/theme/Modal.carbon.theme.ts | 57 +++- .../notifications/Notifications.vue | 10 +- .../theme/Notifications.base.theme.ts | 2 +- .../theme/Notifications.carbon.theme.ts | 14 +- packages/ui/src/components/radio/Radio.vue | 54 +++- .../radio/theme/Radio.base.theme.ts | 8 +- .../radio/theme/Radio.carbon.theme.ts | 20 +- packages/ui/src/components/select/Select.vue | 21 +- .../select/theme/Select.base.theme.ts | 2 +- .../select/theme/Select.carbon.theme.ts | 4 +- .../ui/src/components/skeleton/Skeleton.vue | 20 +- .../skeleton/theme/Skeleton.base.theme.ts | 9 +- packages/ui/src/components/slider/Slider.vue | 3 +- .../ui/src/components/spinner/Spinner.vue | 4 +- .../ui/src/components/stepper/Stepper.vue | 153 ++++++++++ .../__tests__/Stepper.spec.ts} | 6 +- packages/ui/src/components/stepper/index.ts | 6 + .../stepper/theme/Stepper.base.theme.ts | 45 +++ .../stepper/theme/Stepper.carbon.theme.ts | 7 + packages/ui/src/components/tab/Tab.vue | 26 +- packages/ui/src/components/tab/TabGroup.vue | 4 +- .../components/tab/theme/Tab.base.theme.ts | 2 + .../components/tab/theme/Tab.carbon.theme.ts | 6 +- .../tab/theme/TabGroup.carbon.theme.ts | 52 +++- packages/ui/src/components/table/Table.vue | 150 ++++++++-- .../ui/src/components/table/TableCell.vue | 11 +- .../ui/src/components/table/TableHead.tsx | 14 - .../ui/src/components/table/TableHead.vue | 25 ++ .../ui/src/components/table/TableHeader.vue | 91 +++--- packages/ui/src/components/table/TableRow.vue | 36 +-- packages/ui/src/components/table/index.ts | 6 +- .../table/theme/Table.base.theme.ts | 16 +- .../table/theme/Table.carbon.theme.ts | 20 +- .../table/theme/TableCell.base.theme.ts | 2 +- .../table/theme/TableCell.carbon.theme.ts | 26 +- .../table/theme/TableHead.base.theme.ts | 10 + .../table/theme/TableHead.carbon.theme.ts | 10 + .../table/theme/TableHeader.base.theme.ts | 28 ++ .../table/theme/TableHeader.carbon.theme.ts | 28 ++ .../table/theme/TableRow.base.theme.ts | 21 ++ .../table/theme/TableRow.carbon.theme.ts | 21 ++ packages/ui/src/components/tag/Tag.vue | 8 +- .../components/tag/theme/Tag.base.theme.ts | 8 +- .../components/tag/theme/Tag.carbon.theme.ts | 11 +- .../ui/src/components/textarea/Textarea.vue | 6 +- .../textarea/theme/Textarea.carbon.theme.ts | 2 +- packages/ui/src/components/toggle/Toggle.vue | 6 +- packages/ui/src/composables/keys.ts | 6 +- packages/ui/src/composables/useFocusTrap.ts | 106 +++++++ packages/ui/src/composables/useInputtable.ts | 34 ++- packages/ui/src/theme.ts | 16 +- packages/ui/src/themes/base/components.ts | 8 +- packages/ui/src/themes/carbon/components.ts | 8 +- packages/ui/tailwind.config.js | 13 +- packages/ui/tsconfig.app.json | 4 +- packages/ui/tsconfig.vitest.json | 2 +- packages/ui/vite.config.ts | 7 + packages/ui/volar.d.ts | 6 +- pnpm-lock.yaml | 276 ++---------------- pnpm-workspace.yaml | 1 - 276 files changed, 2498 insertions(+), 1199 deletions(-) create mode 100644 .changeset/few-foxes-cough.md delete mode 100644 packages/docs/.eslintrc.cjs delete mode 100644 packages/docs/.gitignore delete mode 100644 packages/docs/.stylelintrc.js delete mode 100644 packages/docs/README.md delete mode 100644 packages/docs/env.d.ts delete mode 100644 packages/docs/package.json delete mode 100644 packages/docs/postcss.config.js delete mode 100644 packages/docs/src/components/common/CodeSnippet.vue delete mode 100644 packages/docs/src/pages/component/collapse/expanded.vue delete mode 100644 packages/docs/src/pages/component/collapse/index.vue delete mode 100644 packages/docs/src/pages/component/collapse/usage.vue delete mode 100644 packages/docs/src/pages/component/form/usage.vue delete mode 100644 packages/docs/src/pages/component/radio/usage.vue delete mode 100644 packages/docs/tailwind.config.js delete mode 100644 packages/docs/tsconfig.json delete mode 100644 packages/docs/tsconfig.vite-config.json delete mode 100644 packages/docs/vite.config.ts rename packages/{docs/src => ui/docs}/App.vue (91%) rename packages/{docs/src => ui/docs}/assets/css/hljs.css (100%) rename packages/{docs/src => ui/docs}/assets/css/tailwind.css (100%) rename packages/{docs/src => ui/docs}/assets/images/error.svg (100%) rename packages/{docs/src => ui/docs}/assets/images/logo.png (100%) rename packages/{docs/src => ui/docs}/assets/images/logo_white.png (100%) rename packages/{docs/src => ui/docs}/components/Cookies.vue (100%) rename packages/{docs/src => ui/docs}/components/common/CodePreview.vue (79%) create mode 100644 packages/ui/docs/components/common/CodeSnippet.vue rename packages/{docs/src => ui/docs}/components/common/CopyButton.vue (94%) rename packages/{docs/src => ui/docs}/components/common/DocumentPage.vue (100%) rename packages/{docs/src => ui/docs}/components/common/Indielayer-theme.json (100%) rename packages/{docs/src => ui/docs}/components/common/MultiSnippet.vue (100%) rename packages/{docs/src => ui/docs}/components/menu/DocsMenu.vue (93%) rename packages/{docs/src => ui/docs}/components/toolbar/PreToolbar.vue (100%) rename packages/{docs/src => ui/docs}/components/toolbar/Toolbar.vue (84%) rename packages/{docs/src => ui/docs}/components/toolbar/ToolbarColorToggle.vue (100%) rename packages/{docs/src => ui/docs}/icons.ts (100%) rename packages/{docs/src => ui/docs}/layouts/default.vue (69%) rename packages/{docs/src => ui/docs}/layouts/simple.vue (100%) rename packages/{docs/src => ui/docs}/main.ts (93%) rename packages/{docs/src => ui/docs}/pages/colors.vue (98%) create mode 100644 packages/ui/docs/pages/component/accordion/index.vue create mode 100644 packages/ui/docs/pages/component/accordion/usage.vue rename packages/{docs/src => ui/docs}/pages/component/alert/index.vue (86%) rename packages/{docs/src => ui/docs}/pages/component/alert/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/avatar/index.vue (92%) rename packages/{docs/src => ui/docs}/pages/component/avatar/size.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/avatar/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/avatar/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/badge/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/badge/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/breadcrumbs/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/breadcrumbs/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/button/button-group.vue (88%) rename packages/{docs/src => ui/docs}/pages/component/button/icons.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/button/index.vue (94%) rename packages/{docs/src => ui/docs}/pages/component/button/size.vue (72%) rename packages/{docs/src => ui/docs}/pages/component/button/states.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/button/usage.vue (70%) rename packages/{docs/src => ui/docs}/pages/component/button/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/card/index.vue (90%) rename packages/{docs/src => ui/docs}/pages/component/card/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/carousel/index.vue (85%) rename packages/{docs/src => ui/docs}/pages/component/carousel/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/checkbox/index.vue (94%) rename packages/{docs/src => ui/docs}/pages/component/checkbox/size.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/checkbox/states.vue (82%) rename packages/{docs/src => ui/docs}/pages/component/checkbox/usage.vue (61%) rename packages/{docs/src => ui/docs}/pages/component/checkbox/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/container/index.vue (85%) rename packages/{docs/src => ui/docs}/pages/component/container/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/divider/index.vue (92%) rename packages/{docs/src => ui/docs}/pages/component/divider/label.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/divider/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/divider/vertical.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/drawer/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/drawer/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/form/index.vue (86%) create mode 100644 packages/ui/docs/pages/component/form/usage.vue create mode 100644 packages/ui/docs/pages/component/formGroup/index.vue create mode 100644 packages/ui/docs/pages/component/formGroup/usage.vue rename packages/{docs/src => ui/docs}/pages/component/icon/index.vue (92%) rename packages/{docs/src => ui/docs}/pages/component/icon/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/icon/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/image/index.vue (90%) rename packages/{docs/src => ui/docs}/pages/component/image/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/input/index.vue (94%) rename packages/{docs/src => ui/docs}/pages/component/input/size.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/input/states.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/input/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/input/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/link/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/link/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/loader/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/loader/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/menu/index.vue (88%) rename packages/{docs/src => ui/docs}/pages/component/menu/usage.vue (100%) create mode 100644 packages/ui/docs/pages/component/modal/composed.vue rename packages/{docs/src => ui/docs}/pages/component/modal/index.vue (71%) rename packages/{docs/src => ui/docs}/pages/component/modal/usage.vue (99%) rename packages/{docs/src => ui/docs}/pages/component/notifications/index.vue (88%) rename packages/{docs/src => ui/docs}/pages/component/notifications/usage.vue (97%) rename packages/{docs/src => ui/docs}/pages/component/pagination/index.vue (88%) rename packages/{docs/src => ui/docs}/pages/component/pagination/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/popover/index.vue (87%) rename packages/{docs/src => ui/docs}/pages/component/popover/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/progress/index.vue (91%) rename packages/{docs/src => ui/docs}/pages/component/progress/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/progress/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/radio/index.vue (94%) rename packages/{docs/src => ui/docs}/pages/component/radio/size.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/radio/states.vue (100%) create mode 100644 packages/ui/docs/pages/component/radio/usage.vue rename packages/{docs/src => ui/docs}/pages/component/radio/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/scroll/horizontal.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/scroll/index.vue (92%) rename packages/{docs/src => ui/docs}/pages/component/scroll/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/select/index.vue (93%) rename packages/{docs/src => ui/docs}/pages/component/select/states.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/select/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/select/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/skeleton/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/skeleton/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/slider/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/slider/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/spacer/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/spacer/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/spinner/index.vue (91%) rename packages/{docs/src => ui/docs}/pages/component/spinner/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/spinner/variants.vue (100%) create mode 100644 packages/ui/docs/pages/component/stepper/index.vue create mode 100644 packages/ui/docs/pages/component/stepper/usage.vue rename packages/{docs/src => ui/docs}/pages/component/table/index.vue (75%) create mode 100644 packages/ui/docs/pages/component/table/states.vue rename packages/{docs/src => ui/docs}/pages/component/table/usage.vue (84%) rename packages/{docs/src => ui/docs}/pages/component/tabs/index.vue (88%) rename packages/{docs/src => ui/docs}/pages/component/tabs/usage.vue (93%) rename packages/{docs/src => ui/docs}/pages/component/tag/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/tag/usage.vue (81%) rename packages/{docs/src => ui/docs}/pages/component/textarea/index.vue (92%) rename packages/{docs/src => ui/docs}/pages/component/textarea/states.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/textarea/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/textarea/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/toggle/index.vue (90%) rename packages/{docs/src => ui/docs}/pages/component/toggle/states.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/toggle/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/toggle/variants.vue (100%) rename packages/{docs/src => ui/docs}/pages/component/tooltip/index.vue (89%) rename packages/{docs/src => ui/docs}/pages/component/tooltip/usage.vue (100%) rename packages/{docs/src => ui/docs}/pages/error.vue (57%) rename packages/{docs/src => ui/docs}/pages/icons.vue (99%) rename packages/{docs/src => ui/docs}/pages/index.vue (90%) rename packages/{docs/src => ui/docs}/pages/play.vue (100%) rename packages/{docs/src => ui/docs}/pages/typography.vue (100%) rename packages/{docs/src => ui/docs}/router/index.ts (74%) rename packages/{docs => ui}/index.html (91%) rename packages/{docs => ui}/public/favicon.ico (100%) rename packages/{docs => ui}/public/robots.txt (100%) rename packages/{docs => ui}/public/shiki/languages/html.tmLanguage.json (100%) rename packages/{docs => ui}/public/shiki/languages/javascript.tmLanguage.json (100%) rename packages/{docs => ui}/public/shiki/languages/shellscript.tmLanguage.json (100%) rename packages/{docs => ui}/public/shiki/languages/typescript.tmLanguage.json (100%) rename packages/{docs => ui}/public/shiki/languages/vue-html.tmLanguage.json (100%) rename packages/{docs => ui}/public/shiki/languages/vue.tmLanguage.json (100%) rename packages/{docs => ui}/public/shiki/themes/indielayer.json (100%) create mode 100644 packages/ui/src/components/accordion/Accordion.vue rename packages/ui/src/components/{collapse/Collapse.vue => accordion/AccordionItem.vue} (65%) create mode 100644 packages/ui/src/components/accordion/__tests__/Accordion.spec.ts create mode 100644 packages/ui/src/components/accordion/index.ts create mode 100644 packages/ui/src/components/accordion/theme/Accordion.base.theme.ts create mode 100644 packages/ui/src/components/accordion/theme/Accordion.carbon.theme.ts create mode 100644 packages/ui/src/components/accordion/theme/AccordionItem.base.theme.ts create mode 100644 packages/ui/src/components/accordion/theme/AccordionItem.carbon.theme.ts delete mode 100644 packages/ui/src/components/collapse/index.ts delete mode 100644 packages/ui/src/components/collapse/theme/Collapse.base.theme.ts delete mode 100644 packages/ui/src/components/collapse/theme/Collapse.carbon.theme.ts create mode 100644 packages/ui/src/components/formGroup/FormGroup.vue create mode 100644 packages/ui/src/components/formGroup/__tests__/FormGroup.spec.ts create mode 100644 packages/ui/src/components/formGroup/index.ts create mode 100644 packages/ui/src/components/formGroup/theme/FormGroup.base.theme.ts create mode 100644 packages/ui/src/components/formGroup/theme/FormGroup.carbon.theme.ts create mode 100644 packages/ui/src/components/stepper/Stepper.vue rename packages/ui/src/components/{collapse/__tests__/Collapse.spec.ts => stepper/__tests__/Stepper.spec.ts} (62%) create mode 100644 packages/ui/src/components/stepper/index.ts create mode 100644 packages/ui/src/components/stepper/theme/Stepper.base.theme.ts create mode 100644 packages/ui/src/components/stepper/theme/Stepper.carbon.theme.ts delete mode 100644 packages/ui/src/components/table/TableHead.tsx create mode 100644 packages/ui/src/components/table/TableHead.vue create mode 100644 packages/ui/src/components/table/theme/TableHead.base.theme.ts create mode 100644 packages/ui/src/components/table/theme/TableHead.carbon.theme.ts create mode 100644 packages/ui/src/components/table/theme/TableHeader.base.theme.ts create mode 100644 packages/ui/src/components/table/theme/TableHeader.carbon.theme.ts create mode 100644 packages/ui/src/components/table/theme/TableRow.base.theme.ts create mode 100644 packages/ui/src/components/table/theme/TableRow.carbon.theme.ts create mode 100644 packages/ui/src/composables/useFocusTrap.ts diff --git a/.changeset/few-foxes-cough.md b/.changeset/few-foxes-cough.md new file mode 100644 index 00000000..f52f4e87 --- /dev/null +++ b/.changeset/few-foxes-cough.md @@ -0,0 +1,13 @@ +--- +"@indielayer/ui": minor +--- + +fix(tab): update value +chore: merge documentation inside ui +feat(tab): add carbon block +feat(form): add title and description +fix(tab): dark mode +feat: add stepper component +feat(modal): add composed view +feat: add formgroup component +feat(checkbox): add indeterminate state diff --git a/.eslintignore b/.eslintignore index 62faafc8..33b7007d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -15,5 +15,4 @@ Thumbs.db lib packages/ui/lib packages/create-ui/outfile.cjs -packages/docs/dist packages/create-ui/templates diff --git a/.github/workflows/release_canary.yml b/.github/workflows/release_canary.yml index 64011dcb..1cafbf4f 100644 --- a/.github/workflows/release_canary.yml +++ b/.github/workflows/release_canary.yml @@ -48,7 +48,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.P_GITHUB_TOKEN }} - name: Build - run: pnpm run build:ui + run: pnpm run build if: steps.checkStatus.outcome == 'success' - name: Publish canary diff --git a/.github/workflows/update_docs.yml b/.github/workflows/update_docs.yml index 8b53e25f..d1545a55 100644 --- a/.github/workflows/update_docs.yml +++ b/.github/workflows/update_docs.yml @@ -34,10 +34,10 @@ jobs: - name: Build documentation run: | pnpm run build:docs - cp ./packages/docs/dist/index.html ./packages/docs/dist/404.html + cp ./packages/ui/dist/index.html ./packages/ui/dist/404.html - name: Update pages - working-directory: ./packages/docs/dist + working-directory: ./packages/ui/dist run: | git config --global init.defaultBranch master git init diff --git a/.vscode/launch.json b/.vscode/launch.json index aefa9070..e9ea97b8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,7 +6,7 @@ "request": "launch", "name": "Debug Docs", "webRoot": "${workspaceFolder}", - "preLaunchTask": "npm: dev - packages/docs", + "preLaunchTask": "npm: dev - packages/ui", "postDebugTask": "stop server", "url": "http://localhost:3001", } diff --git a/.vscode/settings.json b/.vscode/settings.json index 548a01f5..4a5a6bd2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,7 +4,7 @@ "pnpm-lock.yaml": true }, "editor.codeActionsOnSave": { - "source.fixAll": true + "source.fixAll": "explicit" }, "stylelint.validate": [ "css", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 3559cbd0..ae5e6c35 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,10 +4,10 @@ { "type": "npm", "script": "dev", - "path": "packages/docs", + "path": "packages/ui", "isBackground": true, "problemMatcher": [], - "label": "npm: dev - packages/docs", + "label": "npm: dev - packages/ui", "detail": "vite" }, { diff --git a/LICENSE b/LICENSE index 0dacd836..e8ccc170 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 - Indielayer +Copyright (c) 2024 - Indielayer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/package.json b/package.json index e548a9de..10129119 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,8 @@ "scripts": { "prepare": "is-ci || simple-git-hooks", "dev": "cd packages/ui && pnpm dev", - "docs": "cd packages/docs && pnpm dev", "build": "cd packages/ui && pnpm build:prod", - "build:docs": "pnpm build && cd packages/docs && pnpm build", + "build:docs": "cd packages/ui && pnpm build:prod && pnpm build:docs", "lint": "eslint --ext .js,.ts,.vue .", "lint:ui": "eslint --ext .js,.ts,.vue ./packages/ui", "lint:style": "cd packages/ui && pnpm run stylelint", diff --git a/packages/docs/.eslintrc.cjs b/packages/docs/.eslintrc.cjs deleted file mode 100644 index 55349819..00000000 --- a/packages/docs/.eslintrc.cjs +++ /dev/null @@ -1,12 +0,0 @@ -/* eslint-env node */ -require('@rushstack/eslint-patch/modern-module-resolution') - -module.exports = { - root: true, - extends: [ - '@indielayer/eslint-config-vue', - ], - env: { - 'vue/setup-compiler-macros': true, - }, -} diff --git a/packages/docs/.gitignore b/packages/docs/.gitignore deleted file mode 100644 index 38adffa6..00000000 --- a/packages/docs/.gitignore +++ /dev/null @@ -1,28 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -dist -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/packages/docs/.stylelintrc.js b/packages/docs/.stylelintrc.js deleted file mode 100644 index 22c62ffc..00000000 --- a/packages/docs/.stylelintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: ['@indielayer/stylelint-config'], -} diff --git a/packages/docs/README.md b/packages/docs/README.md deleted file mode 100644 index 0e70d5aa..00000000 --- a/packages/docs/README.md +++ /dev/null @@ -1,7 +0,0 @@ -![IndielayerUI-Logo-Dark](../../.github/logo_dark.svg#gh-dark-mode-only) -![IndielayerUI-Logo-Light](../../.github/logo.svg#gh-light-mode-only) - -Vue 3 & Nuxt 3 UI Components built with Tailwind 3. **Build and prototype fast web applications.** 🚀 - -## 📖 Documentation -Read the Online Documentation. diff --git a/packages/docs/env.d.ts b/packages/docs/env.d.ts deleted file mode 100644 index 11f02fe2..00000000 --- a/packages/docs/env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/docs/package.json b/packages/docs/package.json deleted file mode 100644 index 876b1d50..00000000 --- a/packages/docs/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "docs", - "private": true, - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview --port 5050", - "typecheck": "vue-tsc --noEmit", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", - "stylelint": "stylelint \"**/*.{css,vue,postcss,scss,sass}\" --ignore-path .gitignore" - }, - "dependencies": { - "vue": "^3.3.9", - "vue-router": "^4.2.2" - }, - "devDependencies": { - "@indielayer/eslint-config-vue": "^3.3.1", - "@indielayer/stylelint-config": "^1.0.0", - "@indielayer/ui": "workspace:*", - "@rushstack/eslint-patch": "^1.3.2", - "@tsconfig/node18": "^2.0.1", - "@types/node": "^18.16.18", - "@vitejs/plugin-vue": "^4.2.3", - "@vue/tsconfig": "^0.4.0", - "eslint": "^8.43.0", - "eslint-plugin-vue": "^9.15.1", - "postcss": "^8.4.24", - "shiki": "^0.14.3", - "tailwindcss": "^3.3.2", - "typescript": "^5.2.2", - "vite": "^4.4.11", - "vue-tsc": "^1.8.2" - } -} diff --git a/packages/docs/postcss.config.js b/packages/docs/postcss.config.js deleted file mode 100644 index fd976518..00000000 --- a/packages/docs/postcss.config.js +++ /dev/null @@ -1,8 +0,0 @@ -// postcss.config.js -module.exports = { - plugins: [ - require('tailwindcss/nesting'), - require('tailwindcss'), - require('autoprefixer'), - ], -} diff --git a/packages/docs/src/components/common/CodeSnippet.vue b/packages/docs/src/components/common/CodeSnippet.vue deleted file mode 100644 index cb7d7111..00000000 --- a/packages/docs/src/components/common/CodeSnippet.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - diff --git a/packages/docs/src/pages/component/collapse/expanded.vue b/packages/docs/src/pages/component/collapse/expanded.vue deleted file mode 100644 index 8820bf32..00000000 --- a/packages/docs/src/pages/component/collapse/expanded.vue +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/packages/docs/src/pages/component/collapse/index.vue b/packages/docs/src/pages/component/collapse/index.vue deleted file mode 100644 index e4d30d45..00000000 --- a/packages/docs/src/pages/component/collapse/index.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/packages/docs/src/pages/component/collapse/usage.vue b/packages/docs/src/pages/component/collapse/usage.vue deleted file mode 100644 index 8eb59660..00000000 --- a/packages/docs/src/pages/component/collapse/usage.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/packages/docs/src/pages/component/form/usage.vue b/packages/docs/src/pages/component/form/usage.vue deleted file mode 100644 index dd853f43..00000000 --- a/packages/docs/src/pages/component/form/usage.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/packages/docs/src/pages/component/radio/usage.vue b/packages/docs/src/pages/component/radio/usage.vue deleted file mode 100644 index 77343c36..00000000 --- a/packages/docs/src/pages/component/radio/usage.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/packages/docs/tailwind.config.js b/packages/docs/tailwind.config.js deleted file mode 100644 index e09c3ac8..00000000 --- a/packages/docs/tailwind.config.js +++ /dev/null @@ -1,13 +0,0 @@ -const indielayer = require('@indielayer/ui/tailwind.preset') - -module.exports = { - content: [ - '../ui/lib/**/*', - './src/**/*.vue', - './src/theme.ts', - ], - darkMode: 'class', - presets: [ - indielayer(), - ], -} diff --git a/packages/docs/tsconfig.json b/packages/docs/tsconfig.json deleted file mode 100644 index a5182ca7..00000000 --- a/packages/docs/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "@vue/tsconfig/tsconfig.dom.json", - "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "../ui/volar.d.ts"], - // "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], - "compilerOptions": { - "allowJs": true, - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - }, - }, - "references": [ - { - "path": "./tsconfig.vite-config.json" - } - ] -} diff --git a/packages/docs/tsconfig.vite-config.json b/packages/docs/tsconfig.vite-config.json deleted file mode 100644 index 662f137b..00000000 --- a/packages/docs/tsconfig.vite-config.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@tsconfig/node18/tsconfig.json", - "include": ["vite.config.*"], - "compilerOptions": { - "composite": true, - "types": ["node"] - } -} diff --git a/packages/docs/vite.config.ts b/packages/docs/vite.config.ts deleted file mode 100644 index 2b9b246a..00000000 --- a/packages/docs/vite.config.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { fileURLToPath, URL } from 'url' - -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' - -// https://vitejs.dev/config/ -export default defineConfig({ - base: '/ui/', - plugins: [vue()], - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)), - }, - }, - server: { - port: 3001, - }, -}) diff --git a/packages/ui/README.md b/packages/ui/README.md index b63f1064..20ae86b3 100644 --- a/packages/ui/README.md +++ b/packages/ui/README.md @@ -31,13 +31,13 @@ npm init @indielayer/ui ### Documentation -The documentation is located inside [/packages/docs](./packages/docs) +The documentation is located inside [/packages/ui/docs](./packages/ui/docs) -- Run `pnpm build` once from project root to build the UI library -- Run `pnpm run docs` from project root to enter docs dev mode +- Run `pnpm dev` for development +- Run `pnpm build:docs` from project root to build the documentation ## License [MIT](./LICENSE) -Copyright (c) 2023, Indielayer +Copyright (c) 2024, Indielayer diff --git a/packages/docs/src/App.vue b/packages/ui/docs/App.vue similarity index 91% rename from packages/docs/src/App.vue rename to packages/ui/docs/App.vue index a5d64e96..313b320f 100644 --- a/packages/docs/src/App.vue +++ b/packages/ui/docs/App.vue @@ -1,7 +1,7 @@ @@ -43,9 +45,13 @@ function copy(text: string) {
{{ title }}
- - - + @@ -63,12 +69,12 @@ function copy(text: string) {

{{ description }}

- + - + diff --git a/packages/ui/docs/components/common/CodeSnippet.vue b/packages/ui/docs/components/common/CodeSnippet.vue new file mode 100644 index 00000000..4c16aa87 --- /dev/null +++ b/packages/ui/docs/components/common/CodeSnippet.vue @@ -0,0 +1,49 @@ + + + + + + + diff --git a/packages/docs/src/components/common/CopyButton.vue b/packages/ui/docs/components/common/CopyButton.vue similarity index 94% rename from packages/docs/src/components/common/CopyButton.vue rename to packages/ui/docs/components/common/CopyButton.vue index 25ec46cc..051e3b31 100644 --- a/packages/docs/src/components/common/CopyButton.vue +++ b/packages/ui/docs/components/common/CopyButton.vue @@ -1,5 +1,5 @@ @@ -21,7 +21,7 @@ const drawer = ref(false)
- + diff --git a/packages/docs/src/layouts/simple.vue b/packages/ui/docs/layouts/simple.vue similarity index 100% rename from packages/docs/src/layouts/simple.vue rename to packages/ui/docs/layouts/simple.vue diff --git a/packages/docs/src/main.ts b/packages/ui/docs/main.ts similarity index 93% rename from packages/docs/src/main.ts rename to packages/ui/docs/main.ts index d7885005..e187da78 100644 --- a/packages/docs/src/main.ts +++ b/packages/ui/docs/main.ts @@ -1,5 +1,5 @@ import { createApp } from 'vue' -import UI, { BaseTheme, CarbonTheme } from '@indielayer/ui' +import UI, { BaseTheme, CarbonTheme } from '../src' import App from './App.vue' import router from './router' import icons from './icons' diff --git a/packages/docs/src/pages/colors.vue b/packages/ui/docs/pages/colors.vue similarity index 98% rename from packages/docs/src/pages/colors.vue rename to packages/ui/docs/pages/colors.vue index 32466764..4a32b148 100644 --- a/packages/docs/src/pages/colors.vue +++ b/packages/ui/docs/pages/colors.vue @@ -1,6 +1,6 @@ + + diff --git a/packages/ui/docs/pages/component/accordion/usage.vue b/packages/ui/docs/pages/component/accordion/usage.vue new file mode 100644 index 00000000..9d812ecf --- /dev/null +++ b/packages/ui/docs/pages/component/accordion/usage.vue @@ -0,0 +1,30 @@ + diff --git a/packages/docs/src/pages/component/alert/index.vue b/packages/ui/docs/pages/component/alert/index.vue similarity index 86% rename from packages/docs/src/pages/component/alert/index.vue rename to packages/ui/docs/pages/component/alert/index.vue index 380c2e31..ae6104df 100644 --- a/packages/docs/src/pages/component/alert/index.vue +++ b/packages/ui/docs/pages/component/alert/index.vue @@ -1,5 +1,5 @@