@synetics/ui 0.7.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +3 -0
- package/.eslintrc.cjs +83 -0
- package/.eslintrc.json +53 -0
- package/.github/workflows/deploy.yml +7 -0
- package/.turbo/turbo-build.log +3 -0
- package/CONTRIBUTING.md +47 -0
- package/FIXES-IMPLEMENTATION-LOG.md +180 -0
- package/LICENSE +21 -0
- package/README.md +414 -0
- package/ROADMAP.md +112 -0
- package/TEST-DOCUMENTATION.md +67 -0
- package/TEST-FAILURE-ANALYSIS.md +326 -0
- package/console-mirror.html +79 -0
- package/control-flow-transformed.js +10129 -0
- package/daily-push.log +9 -0
- package/debug-router.html +54 -0
- package/debug-screenshot.png +0 -0
- package/dev-error.log +84 -0
- package/dev-output.log +10689 -0
- package/docs/README.md +527 -0
- package/e2e-results.txt +0 -0
- package/error-boundary-output.js +353 -0
- package/final-test.txt +2816 -0
- package/index.html +41 -0
- package/latest-test.txt +2900 -0
- package/package.json +68 -0
- package/parse-debug.txt +10 -0
- package/ping.txt +1 -0
- package/playwright.config.ts +25 -0
- package/postcss.config.js +6 -0
- package/pre-validation-code.js +25 -0
- package/reactivity-output.txt +0 -0
- package/reactivity-page.html +0 -0
- package/return-parse-test.txt +139 -0
- package/run-psr-test.ps1 +65 -0
- package/src/README.md +138 -0
- package/src/components/app-footer.syn +17 -0
- package/src/components/app-header.syn +43 -0
- package/src/components/atoms/avatar/avatar-simple.syn +25 -0
- package/src/components/atoms/avatar/avatar.syn +86 -0
- package/src/components/atoms/avatar/avatar.type.ts +39 -0
- package/src/components/atoms/avatar/index.ts +7 -0
- package/src/components/atoms/checkbox/checkbox.syn +72 -0
- package/src/components/atoms/checkbox/checkbox.type.ts +25 -0
- package/src/components/atoms/checkbox/index.ts +6 -0
- package/src/components/atoms/container/container.syn +53 -0
- package/src/components/atoms/container/container.type.ts +32 -0
- package/src/components/atoms/container/index.ts +7 -0
- package/src/components/atoms/divider/divider.syn +45 -0
- package/src/components/atoms/divider/divider.type.ts +24 -0
- package/src/components/atoms/divider/index.ts +7 -0
- package/src/components/atoms/grid/grid.syn +56 -0
- package/src/components/atoms/grid/grid.type.ts +44 -0
- package/src/components/atoms/grid/index.ts +7 -0
- package/src/components/atoms/icon/icon.syn +0 -0
- package/src/components/atoms/icon/icon.type.ts +5 -0
- package/src/components/atoms/input/index.ts +6 -0
- package/src/components/atoms/input/input.syn +75 -0
- package/src/components/atoms/input/input.type.ts +29 -0
- package/src/components/atoms/progress/index.ts +7 -0
- package/src/components/atoms/progress/progress.syn +68 -0
- package/src/components/atoms/progress/progress.type.ts +48 -0
- package/src/components/atoms/radio/index.ts +6 -0
- package/src/components/atoms/radio/radio.syn +72 -0
- package/src/components/atoms/radio/radio.type.ts +31 -0
- package/src/components/atoms/rating/index.ts +6 -0
- package/src/components/atoms/rating/rating.syn +119 -0
- package/src/components/atoms/rating/rating.type.ts +53 -0
- package/src/components/atoms/skeleton/index.ts +6 -0
- package/src/components/atoms/skeleton/skeleton.syn +31 -0
- package/src/components/atoms/skeleton/skeleton.type.ts +12 -0
- package/src/components/atoms/slider/index.ts +6 -0
- package/src/components/atoms/slider/slider.syn +101 -0
- package/src/components/atoms/slider/slider.type.ts +54 -0
- package/src/components/atoms/spinner/index.ts +6 -0
- package/src/components/atoms/spinner/spinner.syn +39 -0
- package/src/components/atoms/spinner/spinner.type.ts +40 -0
- package/src/components/atoms/stack/index.ts +7 -0
- package/src/components/atoms/stack/stack.syn +79 -0
- package/src/components/atoms/stack/stack.type.ts +42 -0
- package/src/components/atoms/textarea/index.ts +6 -0
- package/src/components/atoms/textarea/textarea.syn +78 -0
- package/src/components/atoms/textarea/textarea.type.ts +28 -0
- package/src/components/atoms/toggle/index.ts +6 -0
- package/src/components/atoms/toggle/toggle.syn +69 -0
- package/src/components/atoms/toggle/toggle.type.ts +27 -0
- package/src/components/atoms/tooltip/index.ts +5 -0
- package/src/components/atoms/tooltip/tooltip.syn +83 -0
- package/src/components/atoms/tooltip/tooltip.type.ts +36 -0
- package/src/components/atoms/typography/index.ts +6 -0
- package/src/components/atoms/typography/typography.syn +113 -0
- package/src/components/atoms/typography/typography.type.ts +36 -0
- package/src/components/enums/alert-variant.type.ts +5 -0
- package/src/components/enums/avatar-size.type.ts +5 -0
- package/src/components/enums/button-type.type.ts +5 -0
- package/src/components/enums/container-max-width.type.ts +5 -0
- package/src/components/enums/container-padding.type.ts +5 -0
- package/src/components/enums/divider-orientation.type.ts +5 -0
- package/src/components/enums/drawer-placement.type.ts +5 -0
- package/src/components/enums/drawer-size.type.ts +5 -0
- package/src/components/enums/icon-position.type.ts +5 -0
- package/src/components/enums/index.ts +27 -0
- package/src/components/enums/input-type.type.ts +5 -0
- package/src/components/enums/modal-size.type.ts +5 -0
- package/src/components/enums/popover-placement.type.ts +5 -0
- package/src/components/enums/popover-trigger.type.ts +5 -0
- package/src/components/enums/progress-size.type.ts +5 -0
- package/src/components/enums/progress-variant.type.ts +5 -0
- package/src/components/enums/readme.md +1 -0
- package/src/components/enums/spacing.type.ts +5 -0
- package/src/components/enums/stack-align.type.ts +5 -0
- package/src/components/enums/stack-justify.type.ts +11 -0
- package/src/components/enums/toast-position.type.ts +11 -0
- package/src/components/enums/toast-variant.type.ts +5 -0
- package/src/components/enums/tooltip-placement.type.ts +5 -0
- package/src/components/enums/typography-tag.type.ts +5 -0
- package/src/components/enums/typography-variant.type.ts +5 -0
- package/src/components/formular/components/debug/form-data-display.syn +155 -0
- package/src/components/formular/components/examples/advanced-text-field.syn +211 -0
- package/src/components/formular/components/form-context/form-context.ts +15 -0
- package/src/components/formular/components/form-context/index.ts +6 -0
- package/src/components/formular/components/form-context/use-form-context.ts +31 -0
- package/src/components/formular/components/form-provider/form-provider.syn +182 -0
- package/src/components/formular/components/form-provider/index.ts +5 -0
- package/src/components/formular/components/index.ts +20 -0
- package/src/components/formular/components/integrated/checkbox-field.syn +50 -0
- package/src/components/formular/components/integrated/checkbox.syn +53 -0
- package/src/components/formular/components/integrated/index.ts +21 -0
- package/src/components/formular/components/integrated/input-field.syn +51 -0
- package/src/components/formular/components/integrated/radio-group-field.syn +68 -0
- package/src/components/formular/components/integrated/radio-group.syn +63 -0
- package/src/components/formular/components/integrated/select-field.syn +51 -0
- package/src/components/formular/components/integrated/select-input.syn +73 -0
- package/src/components/formular/components/integrated/text-field.syn +49 -0
- package/src/components/formular/components/integrated/textarea-field.syn +51 -0
- package/src/components/formular/components/integrated/textarea-input.syn +73 -0
- package/src/components/formular/components/integrated/toggle-field.syn +50 -0
- package/src/components/formular/components/integrated/toggle.syn +53 -0
- package/src/components/formular/components/modal/error-message.syn +21 -0
- package/src/components/formular/components/modal/form-modale.syn +44 -0
- package/src/components/formular/components/modal/form-validation-results.syn +46 -0
- package/src/components/formular/components/modal/guide-message.syn +21 -0
- package/src/components/formular/components/modal/index.ts +10 -0
- package/src/components/formular/components/modal/use-modale.ts +82 -0
- package/src/components/formular/components/modal/validation-results.syn +63 -0
- package/src/components/formular/components/primitives/f-checkbox-field.syn +50 -0
- package/src/components/formular/components/primitives/f-input-field.syn +77 -0
- package/src/components/formular/components/primitives/f-radio-button.syn +64 -0
- package/src/components/formular/components/primitives/f-select-field.syn +61 -0
- package/src/components/formular/components/primitives/f-textarea-field.syn +53 -0
- package/src/components/formular/components/primitives/f-toggle-field.syn +50 -0
- package/src/components/formular/components/primitives/field-label.syn +49 -0
- package/src/components/formular/components/primitives/helper-text.syn +32 -0
- package/src/components/formular/components/primitives/index.ts +32 -0
- package/src/components/formular/components/primitives/validation-results.syn +76 -0
- package/src/components/formular/hooks/bindings/field-bindings.type.ts +58 -0
- package/src/components/formular/hooks/bindings/index.ts +16 -0
- package/src/components/formular/hooks/bindings/use-checkbox-bind.ts +31 -0
- package/src/components/formular/hooks/bindings/use-input-bind.ts +31 -0
- package/src/components/formular/hooks/bindings/use-radio-bind.ts +39 -0
- package/src/components/formular/hooks/bindings/use-select-bind.ts +32 -0
- package/src/components/formular/hooks/bindings/use-textarea-bind.ts +31 -0
- package/src/components/formular/hooks/bindings/use-toggle-bind.ts +31 -0
- package/src/components/formular/hooks/index.ts +28 -0
- package/src/components/formular/hooks/use-field-validation.ts +42 -0
- package/src/components/formular/hooks/use-field.ts +282 -0
- package/src/components/formular/hooks/use-formular-signal.ts +29 -0
- package/src/components/formular/index.ts +3 -0
- package/src/components/formular/types/field-component.type.ts +78 -0
- package/src/components/formular/types/field-descriptor-config.type.ts +79 -0
- package/src/components/formular/types/form-context.type.ts +67 -0
- package/src/components/formular/types/form-provider.type.ts +67 -0
- package/src/components/formular/types/formular.types.ts +49 -0
- package/src/components/formular/types/index.ts +78 -0
- package/src/components/formular/types/portal.type.ts +36 -0
- package/src/components/formular/utils/dev-logger.ts +44 -0
- package/src/components/formular/utils/index.ts +23 -0
- package/src/components/formular/utils/use-field-descriptors.ts +75 -0
- package/src/components/formular/utils/use-formular-manager.ts +37 -0
- package/src/components/hooks/use-drawer-position.ts +91 -0
- package/src/components/interfaces/component-config-internal.interface.ts +10 -0
- package/src/components/interfaces/component-config.interface.ts +57 -0
- package/src/components/interfaces/component-config.ts +151 -0
- package/src/components/interfaces/index.ts +7 -0
- package/src/components/interfaces/prototype/active.ts +13 -0
- package/src/components/interfaces/prototype/border.ts +13 -0
- package/src/components/interfaces/prototype/build.ts +31 -0
- package/src/components/interfaces/prototype/class-name.ts +13 -0
- package/src/components/interfaces/prototype/disabled.ts +13 -0
- package/src/components/interfaces/prototype/focus.ts +13 -0
- package/src/components/interfaces/prototype/full-width.ts +13 -0
- package/src/components/interfaces/prototype/hover.ts +13 -0
- package/src/components/interfaces/prototype/loading.ts +13 -0
- package/src/components/interfaces/prototype/rounded.ts +13 -0
- package/src/components/interfaces/prototype/shadow.ts +13 -0
- package/src/components/interfaces/prototype/size.ts +14 -0
- package/src/components/interfaces/prototype/transition-duration.ts +13 -0
- package/src/components/interfaces/prototype/transition.ts +13 -0
- package/src/components/interfaces/prototype/variant.ts +14 -0
- package/src/components/interfaces/readme.md +1 -0
- package/src/components/molecules/accordion/accordion-item.syn +80 -0
- package/src/components/molecules/accordion/accordion-item.type.ts +28 -0
- package/src/components/molecules/accordion/accordion.syn +92 -0
- package/src/components/molecules/accordion/accordion.type.ts +29 -0
- package/src/components/molecules/accordion/index.ts +8 -0
- package/src/components/molecules/alert/alert-description.syn +23 -0
- package/src/components/molecules/alert/alert-description.type.ts +9 -0
- package/src/components/molecules/alert/alert-icon.syn +19 -0
- package/src/components/molecules/alert/alert-icon.type.ts +9 -0
- package/src/components/molecules/alert/alert-title.syn +19 -0
- package/src/components/molecules/alert/alert-title.type.ts +9 -0
- package/src/components/molecules/alert/alert.syn +76 -0
- package/src/components/molecules/alert/alert.type.ts +17 -0
- package/src/components/molecules/alert/index.ts +12 -0
- package/src/components/molecules/badge/badge.syn +66 -0
- package/src/components/molecules/badge/badge.type.ts +25 -0
- package/src/components/molecules/badge/index.ts +6 -0
- package/src/components/molecules/breadcrumbs/breadcrumb-item.type.ts +23 -0
- package/src/components/molecules/breadcrumbs/breadcrumbs.syn +60 -0
- package/src/components/molecules/breadcrumbs/breadcrumbs.type.ts +18 -0
- package/src/components/molecules/breadcrumbs/index.ts +8 -0
- package/src/components/molecules/button/button.syn +124 -0
- package/src/components/molecules/button/button.type.ts +24 -0
- package/src/components/molecules/button/index.ts +9 -0
- package/src/components/molecules/dropdown/dropdown-item.syn +30 -0
- package/src/components/molecules/dropdown/dropdown-item.type.ts +11 -0
- package/src/components/molecules/dropdown/dropdown.syn +135 -0
- package/src/components/molecules/dropdown/dropdown.type.ts +12 -0
- package/src/components/molecules/dropdown/index.ts +8 -0
- package/src/components/molecules/label/index.ts +6 -0
- package/src/components/molecules/label/label.syn +72 -0
- package/src/components/molecules/label/label.type.ts +28 -0
- package/src/components/molecules/list/index.ts +8 -0
- package/src/components/molecules/list/list-item.syn +33 -0
- package/src/components/molecules/list/list-item.type.ts +10 -0
- package/src/components/molecules/list/list.syn +54 -0
- package/src/components/molecules/list/list.type.ts +17 -0
- package/src/components/molecules/menu/index.ts +10 -0
- package/src/components/molecules/menu/menu-divider.syn +21 -0
- package/src/components/molecules/menu/menu-divider.type.ts +8 -0
- package/src/components/molecules/menu/menu-item.syn +56 -0
- package/src/components/molecules/menu/menu-item.type.ts +12 -0
- package/src/components/molecules/menu/menu.syn +78 -0
- package/src/components/molecules/menu/menu.type.ts +14 -0
- package/src/components/molecules/option/index.ts +6 -0
- package/src/components/molecules/option/option.syn +41 -0
- package/src/components/molecules/option/option.type.ts +23 -0
- package/src/components/molecules/pagination/index.ts +7 -0
- package/src/components/molecules/pagination/pagination.syn +123 -0
- package/src/components/molecules/pagination/pagination.type.ts +34 -0
- package/src/components/molecules/popover/index.ts +6 -0
- package/src/components/molecules/popover/popover.syn +88 -0
- package/src/components/molecules/popover/popover.type.ts +20 -0
- package/src/components/molecules/radio-group/index.ts +7 -0
- package/src/components/molecules/radio-group/radio-group.syn +79 -0
- package/src/components/molecules/radio-group/radio-group.type.ts +29 -0
- package/src/components/molecules/radio-group/radio-option.type.ts +9 -0
- package/src/components/molecules/tabs/index.ts +14 -0
- package/src/components/molecules/tabs/tab-list.syn +70 -0
- package/src/components/molecules/tabs/tab-list.type.ts +9 -0
- package/src/components/molecules/tabs/tab-panel.syn +34 -0
- package/src/components/molecules/tabs/tab-panel.type.ts +11 -0
- package/src/components/molecules/tabs/tab-panels.syn +40 -0
- package/src/components/molecules/tabs/tab-panels.type.ts +9 -0
- package/src/components/molecules/tabs/tab.syn +52 -0
- package/src/components/molecules/tabs/tab.type.ts +13 -0
- package/src/components/molecules/tabs/tabs.syn +74 -0
- package/src/components/molecules/tabs/tabs.type.ts +17 -0
- package/src/components/organisms/card/card.syn +64 -0
- package/src/components/organisms/card/card.type.ts +25 -0
- package/src/components/organisms/card/index.ts +6 -0
- package/src/components/organisms/commands/commands.syn +0 -0
- package/src/components/organisms/commands/commands.type.ts +1 -0
- package/src/components/organisms/date-picker/components/date-picker.body.days.syn +98 -0
- package/src/components/organisms/date-picker/components/date-picker.body.months.syn +77 -0
- package/src/components/organisms/date-picker/components/date-picker.body.years.syn +86 -0
- package/src/components/organisms/date-picker/components/date-picker.cell.syn +104 -0
- package/src/components/organisms/date-picker/components/date-picker.context.ts +36 -0
- package/src/components/organisms/date-picker/components/date-picker.drawer.content.ui.syn +93 -0
- package/src/components/organisms/date-picker/components/date-picker.header.syn +130 -0
- package/src/components/organisms/date-picker/components/date-picker.switch.syn +27 -0
- package/src/components/organisms/date-picker/core/computed/compute-days-grid.ts +46 -0
- package/src/components/organisms/date-picker/core/computed/compute-months-grid.ts +43 -0
- package/src/components/organisms/date-picker/core/computed/compute-range.ts +36 -0
- package/src/components/organisms/date-picker/core/computed/compute-years-grid.ts +56 -0
- package/src/components/organisms/date-picker/core/constructors/create-cell.ts +37 -0
- package/src/components/organisms/date-picker/core/date-picker.types.ts +41 -0
- package/src/components/organisms/date-picker/core/getters/get-current-month-days.ts +35 -0
- package/src/components/organisms/date-picker/core/getters/get-next-date.ts +32 -0
- package/src/components/organisms/date-picker/core/getters/get-next-month-days.ts +23 -0
- package/src/components/organisms/date-picker/core/getters/get-previous-date.ts +32 -0
- package/src/components/organisms/date-picker/core/getters/get-previous-month-days.ts +32 -0
- package/src/components/organisms/date-picker/core/models/date-picker.models.constructors.ts +36 -0
- package/src/components/organisms/date-picker/core/models/date-picker.models.ts +46 -0
- package/src/components/organisms/date-picker/core/system/get-local-system-separator.ts +5 -0
- package/src/components/organisms/date-picker/date-picker.css +426 -0
- package/src/components/organisms/date-picker/date-picker.drawer.content.syn +238 -0
- package/src/components/organisms/date-picker/date-picker.stories.syn +275 -0
- package/src/components/organisms/date-picker/date-picker.syn +298 -0
- package/src/components/organisms/date-picker/examples.syn +197 -0
- package/src/components/organisms/date-picker/hooks/use-object-ref.ts +18 -0
- package/src/components/organisms/date-picker/index.ts +23 -0
- package/src/components/organisms/date-picker/internal-components/button.syn +36 -0
- package/src/components/organisms/date-picker/internal-components/icons.syn +76 -0
- package/src/components/organisms/date-picker/internal-components/portal.syn +62 -0
- package/src/components/organisms/date-picker/toggleable/toggleable.context.hook.ts +14 -0
- package/src/components/organisms/date-picker/toggleable/toggleable.context.ts +6 -0
- package/src/components/organisms/date-picker/toggleable/toggleable.syn +37 -0
- package/src/components/organisms/date-picker/utils/class-utils.ts +25 -0
- package/src/components/organisms/date-picker/utils/date-object.ts +42 -0
- package/src/components/organisms/date-picker/utils/date-utils.ts +112 -0
- package/src/components/organisms/drawer/drawer.syn +112 -0
- package/src/components/organisms/drawer/drawer.type.ts +53 -0
- package/src/components/organisms/drawer/index.ts +6 -0
- package/src/components/organisms/footer/footer.syn +53 -0
- package/src/components/organisms/footer/footer.type.ts +20 -0
- package/src/components/organisms/footer/index.ts +6 -0
- package/src/components/organisms/header/header.syn +52 -0
- package/src/components/organisms/header/header.type.ts +24 -0
- package/src/components/organisms/header/index.ts +6 -0
- package/src/components/organisms/modal/index.ts +12 -0
- package/src/components/organisms/modal/modal-body.syn +19 -0
- package/src/components/organisms/modal/modal-body.type.ts +9 -0
- package/src/components/organisms/modal/modal-footer.syn +25 -0
- package/src/components/organisms/modal/modal-footer.type.ts +9 -0
- package/src/components/organisms/modal/modal-header.syn +25 -0
- package/src/components/organisms/modal/modal-header.type.ts +9 -0
- package/src/components/organisms/modal/modal-parts.syn +21 -0
- package/src/components/organisms/modal/modal.syn +104 -0
- package/src/components/organisms/modal/modal.type.ts +15 -0
- package/src/components/organisms/retractable-panel/retractable-panel.syn +141 -0
- package/src/components/organisms/retractable-panel/retractable-panel.type.ts +52 -0
- package/src/components/organisms/select/index.ts +7 -0
- package/src/components/organisms/select/select-option.type.ts +9 -0
- package/src/components/organisms/select/select.syn +92 -0
- package/src/components/organisms/select/select.type.ts +31 -0
- package/src/components/organisms/stepper/INTEGRATION_GUIDE.md +230 -0
- package/src/components/organisms/stepper/PACKAGE_STATUS.md +180 -0
- package/src/components/organisms/stepper/README.md +293 -0
- package/src/components/organisms/stepper/Step.syn +61 -0
- package/src/components/organisms/stepper/Stepper.syn +605 -0
- package/src/components/organisms/stepper/StepperSummary.syn +36 -0
- package/src/components/organisms/stepper/adapters/atomosFormAdapter.ts +163 -0
- package/src/components/organisms/stepper/adapters/index.ts +7 -0
- package/src/components/organisms/stepper/adapters/rhfAdapter.ts +54 -0
- package/src/components/organisms/stepper/components/StepperDebug.syn +454 -0
- package/src/components/organisms/stepper/components/StepperFooter.syn +144 -0
- package/src/components/organisms/stepper/components/StepperHeader.syn +66 -0
- package/src/components/organisms/stepper/components/StepperTab.syn +118 -0
- package/src/components/organisms/stepper/components/stepperDebug.css +72 -0
- package/src/components/organisms/stepper/components/stepperFooter.css +28 -0
- package/src/components/organisms/stepper/components/stepperHeader.css +49 -0
- package/src/components/organisms/stepper/components/stepperTab.css +97 -0
- package/src/components/organisms/stepper/copy-to-atomos.ps1 +78 -0
- package/src/components/organisms/stepper/core/actions.ts +25 -0
- package/src/components/organisms/stepper/core/formAdapter.ts +66 -0
- package/src/components/organisms/stepper/core/helpers.ts +216 -0
- package/src/components/organisms/stepper/core/models.ts +220 -0
- package/src/components/organisms/stepper/core/reducer/addCustomValidators.ts +14 -0
- package/src/components/organisms/stepper/core/reducer/addError.ts +10 -0
- package/src/components/organisms/stepper/core/reducer/addStep.ts +7 -0
- package/src/components/organisms/stepper/core/reducer/computeSiblingStatus.ts +45 -0
- package/src/components/organisms/stepper/core/reducer/computeValidation.ts +61 -0
- package/src/components/organisms/stepper/core/reducer/goToStep.ts +143 -0
- package/src/components/organisms/stepper/core/reducer/init.ts +7 -0
- package/src/components/organisms/stepper/core/reducer/navigationRequest.ts +16 -0
- package/src/components/organisms/stepper/core/reducer/removeAllErrors.ts +26 -0
- package/src/components/organisms/stepper/core/reducer/removeError.ts +12 -0
- package/src/components/organisms/stepper/core/reducer/reset.ts +44 -0
- package/src/components/organisms/stepper/core/reducer/setData.ts +12 -0
- package/src/components/organisms/stepper/core/reducer/setFieldDefaultValue.ts +39 -0
- package/src/components/organisms/stepper/core/reducer/setFields.ts +41 -0
- package/src/components/organisms/stepper/core/reducer/setStepperDefaultValue.ts +33 -0
- package/src/components/organisms/stepper/core/reducer/setSubmittedTimes.ts +9 -0
- package/src/components/organisms/stepper/core/reducer/setVisible.ts +26 -0
- package/src/components/organisms/stepper/core/reducer/submitRequest.ts +19 -0
- package/src/components/organisms/stepper/core/reducer/updateFormCommon.ts +82 -0
- package/src/components/organisms/stepper/core/state.ts +106 -0
- package/src/components/organisms/stepper/index.ts +34 -0
- package/src/components/organisms/stepper/step.css +66 -0
- package/src/components/organisms/stepper/stepper.css +32 -0
- package/src/components/organisms/stepper/stepper.stories.tsx.disabled +329 -0
- package/src/components/organisms/table/index.ts +14 -0
- package/src/components/organisms/table/table-body.syn +43 -0
- package/src/components/organisms/table/table-body.type.ts +9 -0
- package/src/components/organisms/table/table-cell.syn +35 -0
- package/src/components/organisms/table/table-cell.type.ts +10 -0
- package/src/components/organisms/table/table-header.syn +23 -0
- package/src/components/organisms/table/table-header.type.ts +9 -0
- package/src/components/organisms/table/table-row.syn +35 -0
- package/src/components/organisms/table/table-row.type.ts +9 -0
- package/src/components/organisms/table/table.syn +71 -0
- package/src/components/organisms/table/table.type.ts +17 -0
- package/src/components/organisms/toast/index.ts +10 -0
- package/src/components/organisms/toast/toast-container.syn +108 -0
- package/src/components/organisms/toast/toast-container.type.ts +11 -0
- package/src/components/organisms/toast/toast-options.type.ts +11 -0
- package/src/components/organisms/toast/toast.syn +82 -0
- package/src/components/organisms/toast/toast.type.ts +14 -0
- package/src/components/organisms/toast/use-toast.ts +62 -0
- package/src/components/sidebar-nav.syn +107 -0
- package/src/components/utils/component-config-builder/component-config-builder.ts +49 -0
- package/src/components/utils/component-config-builder/component-config-builder.type.ts +27 -0
- package/src/components/utils/component-config-builder/component-config.type.ts +36 -0
- package/src/components/utils/component-config-builder/index.ts +7 -0
- package/src/components/utils/component-config-builder/prototype/active.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/border.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/build.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/class-name.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/color.ts +11 -0
- package/src/components/utils/component-config-builder/prototype/disabled.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/focus.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/full-width.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/hover.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/loading.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/rounded.ts +11 -0
- package/src/components/utils/component-config-builder/prototype/shadow.ts +11 -0
- package/src/components/utils/component-config-builder/prototype/size.ts +11 -0
- package/src/components/utils/component-config-builder/prototype/transition-duration.ts +11 -0
- package/src/components/utils/component-config-builder/prototype/transition.ts +10 -0
- package/src/components/utils/component-config-builder/prototype/variant.ts +11 -0
- package/src/components/utils/component-styling-builder/component-styling-builder.ts +45 -0
- package/src/components/utils/component-styling-builder/component-styling-builder.type.ts +26 -0
- package/src/components/utils/component-styling-builder/component-styling.type.ts +21 -0
- package/src/components/utils/component-styling-builder/index.ts +7 -0
- package/src/components/utils/component-styling-builder/prototype/active.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/background.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/base.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/border.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/build.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/custom.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/disabled.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/focus.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/hover.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/loading.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/read-only.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/rounded.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/shadow.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/size.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/transition.ts +10 -0
- package/src/components/utils/component-styling-builder/prototype/variant.ts +10 -0
- package/src/components/utils/index.ts +6 -0
- package/src/components/utils/readme.md +1 -0
- package/src/css.d.ts +14 -0
- package/src/debug-tokens.syn +11 -0
- package/src/design/sizes/index.ts +6 -0
- package/src/design/utility/class-names.ts +6 -0
- package/src/design/utility/index.ts +6 -0
- package/src/design/utility/rounded-classes.ts +6 -0
- package/src/docs/EXAMPLES.md +319 -0
- package/src/docs/EXAMPLES.ts.md +188 -0
- package/src/docs/IMPLEMENTATION_COMPLETE.md +232 -0
- package/src/docs/IMPLEMENTATION_PATTERN.md +319 -0
- package/src/docs/copilot-implementation-rules.md +328 -0
- package/src/index.ts +23 -0
- package/src/jsx.d.ts +8 -0
- package/src/lab/counter.syn +76 -0
- package/src/lab/transformer/README.md +115 -0
- package/src/lab/transformer/async-lazy-loading/2026-02-11-14-20-async-lazy-loading.syn +242 -0
- package/src/lab/transformer/batch-updates/2026-02-11-14-20-batch-updates.syn +228 -0
- package/src/lab/transformer/catcher-error-handlers/2026-02-11-14-20-catcher-error-handlers.syn +211 -0
- package/src/lab/transformer/complex-jsx-expressions/2026-02-11-14-20-complex-jsx-expressions.syn +49 -0
- package/src/lab/transformer/complex-jsx-expressions/2026-02-11-15-01-complex-jsx-expressions.syn +227 -0
- package/src/lab/transformer/concurrent-rendering/2026-02-11-14-20-concurrent-rendering.syn +291 -0
- package/src/lab/transformer/create-context-providers/2026-02-11-14-20-create-context-providers.syn +240 -0
- package/src/lab/transformer/create-effect-side-effects/2026-02-11-14-20-create-effect-side-effects.syn +339 -0
- package/src/lab/transformer/create-resource/2026-02-11-14-20-create-resource.syn +80 -0
- package/src/lab/transformer/dynamic-components/2026-02-11-14-20-dynamic-components.syn +78 -0
- package/src/lab/transformer/dynamic-components/2026-02-11-15-09-dynamic-components.syn +468 -0
- package/src/lab/transformer/for-iteration/2026-02-11-14-20-for-iteration.syn +62 -0
- package/src/lab/transformer/for-iteration-components/2026-02-11-15-07-for-iteration-components.syn +489 -0
- package/src/lab/transformer/generic-type-arguments/2026-02-11-14-20-generic-type-arguments.syn +53 -0
- package/src/lab/transformer/generic-type-arguments/2026-02-11-15-02-generic-type-arguments.syn +140 -0
- package/src/lab/transformer/memo-optimization/2026-02-11-14-20-memo-optimization.syn +275 -0
- package/src/lab/transformer/on-cleanup-patterns/2026-02-11-14-20-on-cleanup-patterns.syn +375 -0
- package/src/lab/transformer/on-mount-lifecycle/2026-02-11-14-20-on-mount-lifecycle.syn +347 -0
- package/src/lab/transformer/portal-transformation/2026-02-11-14-20-portal-transformation.syn +141 -0
- package/src/lab/transformer/render-effect-timing/2026-02-11-14-20-render-effect-timing.syn +334 -0
- package/src/lab/transformer/resource-dependency-tracking/2026-02-11-14-20-resource-dependency-tracking.syn +153 -0
- package/src/lab/transformer/resource-loading-states/2026-02-11-14-20-resource-loading-states.syn +382 -0
- package/src/lab/transformer/resource-mutations/2026-02-11-14-20-resource-mutations.syn +399 -0
- package/src/lab/transformer/resource-parallel-fetching/2026-02-11-14-20-resource-parallel-fetching.syn +446 -0
- package/src/lab/transformer/resource-pre-resolution/2026-02-11-14-20-resource-pre-resolution.syn +405 -0
- package/src/lab/transformer/resource-refetch-patterns/2026-02-11-14-20-resource-refetch-patterns.syn +120 -0
- package/src/lab/transformer/resource-state-handling/2026-02-11-14-20-resource-state-handling.syn +104 -0
- package/src/lab/transformer/server-side-rendering/2026-02-11-14-20-server-side-rendering.syn +234 -0
- package/src/lab/transformer/show-components/2026-02-11-14-20-show-components.syn +57 -0
- package/src/lab/transformer/show-when-components/2026-02-11-15-03-show-when-components.syn +202 -0
- package/src/lab/transformer/template-literals/2026-02-11-14-20-template-literals.syn +34 -0
- package/src/lab/transformer/template-literals/2026-02-11-15-00-template-literals.syn +146 -0
- package/src/lab/transformer/tryer-error-boundaries/2026-02-11-14-20-tryer-error-boundaries.syn +111 -0
- package/src/lab/transformer/type-inference-system/2026-02-11-14-20-type-inference-system.syn +50 -0
- package/src/lab/transformer/type-inference-system/2026-02-11-15-05-type-inference-system.syn +353 -0
- package/src/lab/transformer/untrack-isolation/2026-02-11-14-20-untrack-isolation.syn +326 -0
- package/src/lab/transformer/waiting-suspense/2026-02-11-14-20-waiting-suspense.syn +78 -0
- package/src/main-simple.syn +23 -0
- package/src/main.syn +101 -0
- package/src/main.ts +57 -0
- package/src/showcase/__tests__/e2e/context-structure.spec.ts +46 -0
- package/src/showcase/__tests__/e2e/context-ui.spec.ts +137 -0
- package/src/showcase/__tests__/e2e/control-flow-ui.spec.ts +149 -0
- package/src/showcase/__tests__/e2e/debug-compiled.spec.ts +13 -0
- package/src/showcase/__tests__/e2e/debug-screenshot.png +0 -0
- package/src/showcase/__tests__/e2e/debug.spec.ts +20 -0
- package/src/showcase/__tests__/e2e/deep-debug.spec.ts +130 -0
- package/src/showcase/__tests__/e2e/error-boundary-ui.spec.ts +113 -0
- package/src/showcase/__tests__/e2e/main-transformed.js +0 -0
- package/src/showcase/__tests__/e2e/portal-ui.spec.ts +135 -0
- package/src/showcase/__tests__/e2e/reactivity-ui.spec.ts +81 -0
- package/src/showcase/__tests__/e2e/resource-debug.spec.ts +37 -0
- package/src/showcase/__tests__/e2e/visual-debug.spec.ts +147 -0
- package/src/showcase/__tests__/integration/context-provider-consumer.test.ts +114 -0
- package/src/showcase/__tests__/integration/context-ui.test.ts +150 -0
- package/src/showcase/__tests__/integration/error-boundary-reactivity.test.ts +164 -0
- package/src/showcase/__tests__/integration/reactivity-control-flow.test.ts +226 -0
- package/src/showcase/__tests__/integration/reactivity-cross-component.test.ts +103 -0
- package/src/showcase/__tests__/integration/showcase-navigation.test.ts +159 -0
- package/src/showcase/__tests__/setup.ts +37 -0
- package/src/showcase/__tests__/unit/context.test.ts +122 -0
- package/src/showcase/__tests__/unit/control-flow.test.ts +167 -0
- package/src/showcase/__tests__/unit/error-boundary.test.ts +116 -0
- package/src/showcase/__tests__/unit/portal.test.ts +122 -0
- package/src/showcase/__tests__/unit/reactivity.test.ts +152 -0
- package/src/showcase/about/about.syn +59 -0
- package/src/showcase/about/components/details-section.syn +29 -0
- package/src/showcase/about/components/feature-list.syn +23 -0
- package/src/showcase/about/components/index.ts +7 -0
- package/src/showcase/about/components/route-info.syn +29 -0
- package/src/showcase/bootstrap/bootstrap-test.syn +152 -0
- package/src/showcase/bootstrap/components/config-service-error-view.syn +41 -0
- package/src/showcase/bootstrap/components/config-service-resolved-view.syn +69 -0
- package/src/showcase/bootstrap/demos/basic-demo.syn +26 -0
- package/src/showcase/bootstrap/demos/di-demo-interactive.syn +94 -0
- package/src/showcase/bootstrap/demos/di-demo.syn +64 -0
- package/src/showcase/bootstrap/demos/lifecycle-demo.syn +74 -0
- package/src/showcase/bootstrap/demos/return-value-demo.syn +95 -0
- package/src/showcase/bootstrap/types/config-service.types.ts +9 -0
- package/src/showcase/common/components/code-block.syn +24 -0
- package/src/showcase/common/components/console-log-viewer.syn +133 -0
- package/src/showcase/common/components/demo-button.syn +42 -0
- package/src/showcase/common/components/demo-section.syn +29 -0
- package/src/showcase/common/components/index.ts +13 -0
- package/src/showcase/common/components/isolated-demo.syn +95 -0
- package/src/showcase/common/components/modal.syn +58 -0
- package/src/showcase/common/components/page-header.syn +29 -0
- package/src/showcase/common/components/status-indicator.syn +34 -0
- package/src/showcase/common/examples/logging-example.syn +67 -0
- package/src/showcase/common/hooks/use-logger.ts +60 -0
- package/src/showcase/context/components/index.ts +12 -0
- package/src/showcase/context/components/multi-context-dashboard.syn +135 -0
- package/src/showcase/context/components/settings-provider.syn +35 -0
- package/src/showcase/context/components/theme-controls.syn +51 -0
- package/src/showcase/context/components/theme-provider.syn +25 -0
- package/src/showcase/context/components/themed-box.syn +20 -0
- package/src/showcase/context/components/user-controls.syn +38 -0
- package/src/showcase/context/components/user-profile.syn +26 -0
- package/src/showcase/context/components/user-provider.syn +34 -0
- package/src/showcase/context/context-test.syn +66 -0
- package/src/showcase/control-flow/components/for-demo.syn +67 -0
- package/src/showcase/control-flow/components/index-demo.syn +41 -0
- package/src/showcase/control-flow/components/index.ts +8 -0
- package/src/showcase/control-flow/components/show-demo.syn +53 -0
- package/src/showcase/control-flow/control-flow-test.syn +104 -0
- package/src/showcase/di/components/circular-dependency-demo.syn +113 -0
- package/src/showcase/di/components/hierarchical-di-demo.syn +81 -0
- package/src/showcase/di/components/index.ts +6 -0
- package/src/showcase/di/components/lifetime-card.syn +30 -0
- package/src/showcase/di/components/registered-services-list.syn +29 -0
- package/src/showcase/di/components/resolution-result.syn +34 -0
- package/src/showcase/di/components/service-button.syn +26 -0
- package/src/showcase/di/components/service-lifetime-demo.syn +135 -0
- package/src/showcase/di/components/service-registration-demo.syn +85 -0
- package/src/showcase/di/components/service-resolution-demo.syn +145 -0
- package/src/showcase/di/di-test.syn +121 -0
- package/src/showcase/di/services/demo-services.ts +128 -0
- package/src/showcase/drag-drop/components/drag-drop-zone-demo.syn +75 -0
- package/src/showcase/drag-drop/components/index.ts +7 -0
- package/src/showcase/drag-drop/components/kanban-board-demo.syn +76 -0
- package/src/showcase/drag-drop/components/sortable-list-demo.syn +71 -0
- package/src/showcase/drag-drop/drag-drop-test.syn +44 -0
- package/src/showcase/error-boundary/components/basic-boundary-demo.syn +54 -0
- package/src/showcase/error-boundary/components/boundary-section.syn +47 -0
- package/src/showcase/error-boundary/components/cleanup-demo.syn +88 -0
- package/src/showcase/error-boundary/components/control-button-group.syn +48 -0
- package/src/showcase/error-boundary/components/error-boundary-control-panel.syn +76 -0
- package/src/showcase/error-boundary/components/error-boundary-status-summary.syn +46 -0
- package/src/showcase/error-boundary/components/error-component.syn +15 -0
- package/src/showcase/error-boundary/components/error-display.syn +27 -0
- package/src/showcase/error-boundary/components/index.ts +14 -0
- package/src/showcase/error-boundary/components/reset-flow-demo.syn +107 -0
- package/src/showcase/error-boundary/components/retry-counter-demo.syn +97 -0
- package/src/showcase/error-boundary/components/safe-component.syn +12 -0
- package/src/showcase/error-boundary/components/visual-boundary-wrapper.syn +78 -0
- package/src/showcase/error-boundary/error-boundary-mega.syn +180 -0
- package/src/showcase/error-boundary/error-boundary-simple.syn +88 -0
- package/src/showcase/error-boundary/error-boundary-test.syn +77 -0
- package/src/showcase/forms/components/async-validation-demo.syn +101 -0
- package/src/showcase/forms/components/basic-form-demo.syn +42 -0
- package/src/showcase/forms/components/field-state-demo.syn +70 -0
- package/src/showcase/forms/components/index.ts +9 -0
- package/src/showcase/forms/components/submission-demo.syn +78 -0
- package/src/showcase/forms/components/validation-demo.syn +59 -0
- package/src/showcase/forms/forms-test.syn +179 -0
- package/src/showcase/forms/pages/cross-validation-page.syn +181 -0
- package/src/showcase/forms/pages/dependent-fields-page.syn +122 -0
- package/src/showcase/forms/pages/dynamic-fields-page.syn +245 -0
- package/src/showcase/forms/pages/edit-form-page.syn +163 -0
- package/src/showcase/forms/pages/index.ts +10 -0
- package/src/showcase/forms/pages/select-controls-page.syn +112 -0
- package/src/showcase/forms/pages/wizard-page.syn +253 -0
- package/src/showcase/home/home.syn +22 -0
- package/src/showcase/http/components/abort-demo.syn +87 -0
- package/src/showcase/http/components/basic-requests-demo.syn +88 -0
- package/src/showcase/http/components/index.ts +8 -0
- package/src/showcase/http/components/interceptors-demo.syn +90 -0
- package/src/showcase/http/components/retry-demo.syn +84 -0
- package/src/showcase/http/http-test.syn +88 -0
- package/src/showcase/index.ts +46 -0
- package/src/showcase/jsx/components/event-handlers-demo.syn +78 -0
- package/src/showcase/jsx/components/index.ts +7 -0
- package/src/showcase/jsx/components/reactive-attributes-demo.syn +69 -0
- package/src/showcase/jsx/components/style-objects-demo.syn +40 -0
- package/src/showcase/jsx/jsx-test.syn +81 -0
- package/src/showcase/pages/__tests__/about.test.ts +120 -0
- package/src/showcase/pages/__tests__/assignment-test.test.ts +68 -0
- package/src/showcase/pages/__tests__/context-test.test.ts +218 -0
- package/src/showcase/pages/__tests__/control-flow-test.test.ts +184 -0
- package/src/showcase/pages/__tests__/error-boundary-test.test.ts +220 -0
- package/src/showcase/pages/__tests__/home.test.ts +54 -0
- package/src/showcase/pages/__tests__/jsx-test.test.ts +182 -0
- package/src/showcase/pages/__tests__/reactivity-test.test.ts +177 -0
- package/src/showcase/pages/__tests__/resource-test.test.ts +215 -0
- package/src/showcase/pages/error-boundary-mega-demo.syn +0 -0
- package/src/showcase/portal/components/basic-portal-demo.syn +41 -0
- package/src/showcase/portal/components/index.ts +7 -0
- package/src/showcase/portal/components/modal-portal-demo.syn +84 -0
- package/src/showcase/portal/components/tooltip-portal-demo.syn +56 -0
- package/src/showcase/portal/portal-test.syn +44 -0
- package/src/showcase/reactivity/components/batch-demo.syn +43 -0
- package/src/showcase/reactivity/components/effect-demo.syn +19 -0
- package/src/showcase/reactivity/components/index.ts +11 -0
- package/src/showcase/reactivity/components/memo-demo.syn +29 -0
- package/src/showcase/reactivity/components/render-effect-demo.syn +78 -0
- package/src/showcase/reactivity/components/signal-demo.syn +45 -0
- package/src/showcase/reactivity/components/untrack-demo.syn +67 -0
- package/src/showcase/reactivity/components/use-sync-demo.syn +96 -0
- package/src/showcase/reactivity/reactivity-test.syn +170 -0
- package/src/showcase/resource/components/cache-demo.syn +141 -0
- package/src/showcase/resource/components/coordination-demo.syn +136 -0
- package/src/showcase/resource/components/deduplication-demo.syn +33 -0
- package/src/showcase/resource/components/error-resource-demo.syn +93 -0
- package/src/showcase/resource/components/image-card.syn +53 -0
- package/src/showcase/resource/components/image-gallery-demo.syn +56 -0
- package/src/showcase/resource/components/index.ts +15 -0
- package/src/showcase/resource/components/mock-api.ts +67 -0
- package/src/showcase/resource/components/refetch-clear-demo.syn +99 -0
- package/src/showcase/resource/components/suspend-control-demo.syn +62 -0
- package/src/showcase/resource/components/suspense-skeleton.syn +24 -0
- package/src/showcase/resource/components/user-card.syn +57 -0
- package/src/showcase/resource/components/waiting-demo.syn +118 -0
- package/src/showcase/resource/resource-test.syn +193 -0
- package/src/showcase/routing/components/guard-demo.syn +75 -0
- package/src/showcase/routing/components/index.ts +9 -0
- package/src/showcase/routing/components/navigation-demo.syn +47 -0
- package/src/showcase/routing/components/nested-outlet-demo.syn +73 -0
- package/src/showcase/routing/components/params-demo.syn +54 -0
- package/src/showcase/routing/components/query-demo.syn +63 -0
- package/src/showcase/routing/routing-test.syn +102 -0
- package/src/showcase/ssr/components/escape-demo.syn +80 -0
- package/src/showcase/ssr/components/hydrate-demo.syn +142 -0
- package/src/showcase/ssr/components/hydration-script-demo.syn +104 -0
- package/src/showcase/ssr/components/index.ts +8 -0
- package/src/showcase/ssr/components/render-to-string-demo.syn +71 -0
- package/src/showcase/ssr/ssr-test.syn +88 -0
- package/src/showcase/svg-canvas/board/components/canvas-badge-list.syn +59 -0
- package/src/showcase/svg-canvas/board/components/canvas-draw-preview.syn +75 -0
- package/src/showcase/svg-canvas/board/components/canvas-toolbar.syn +59 -0
- package/src/showcase/svg-canvas/board/components/line-canvas.syn +673 -0
- package/src/showcase/svg-canvas/board/components/side-toolbox.syn +51 -0
- package/src/showcase/svg-canvas/board/components/svg/canvas-dot-grid.syn +18 -0
- package/src/showcase/svg-canvas/board/model/i-board.ts +20 -0
- package/src/showcase/svg-canvas/board/store/canvas-board.slice.ts +51 -0
- package/src/showcase/svg-canvas/index.ts +2 -0
- package/src/showcase/svg-canvas/line/components/canvas-line-item.syn +85 -0
- package/src/showcase/svg-canvas/line/components/svg/svg-endpoint-handle.syn +29 -0
- package/src/showcase/svg-canvas/line/components/svg/svg-line-label.syn +33 -0
- package/src/showcase/svg-canvas/line/entity/canvas-line.ts +42 -0
- package/src/showcase/svg-canvas/line/entity/create-canvas-line.ts +24 -0
- package/src/showcase/svg-canvas/line/model/i-canvas-line.ts +42 -0
- package/src/showcase/svg-canvas/line/store/canvas-line.slice.ts +38 -0
- package/src/showcase/svg-canvas/modal/components/canvas-settings-modal.syn +118 -0
- package/src/showcase/svg-canvas/modal/model/i-canvas-modal.ts +10 -0
- package/src/showcase/svg-canvas/modal/store/canvas-modal.slice.ts +36 -0
- package/src/showcase/svg-canvas/shape/components/canvas-anchor-group.syn +33 -0
- package/src/showcase/svg-canvas/shape/components/canvas-diamond-body.syn +48 -0
- package/src/showcase/svg-canvas/shape/components/canvas-entity-card.syn +89 -0
- package/src/showcase/svg-canvas/shape/components/canvas-rect-body.syn +37 -0
- package/src/showcase/svg-canvas/shape/components/canvas-shape-item.syn +110 -0
- package/src/showcase/svg-canvas/shape/components/card-header.syn +45 -0
- package/src/showcase/svg-canvas/shape/components/property-row.syn +29 -0
- package/src/showcase/svg-canvas/shape/components/svg/svg-anchor-circle.syn +44 -0
- package/src/showcase/svg-canvas/shape/entity/canvas-diamond.ts +102 -0
- package/src/showcase/svg-canvas/shape/entity/canvas-entity.ts +19 -0
- package/src/showcase/svg-canvas/shape/entity/canvas-rectangle.ts +53 -0
- package/src/showcase/svg-canvas/shape/entity/canvas-square.ts +72 -0
- package/src/showcase/svg-canvas/shape/entity/create-shape.ts +69 -0
- package/src/showcase/svg-canvas/shape/model/i-shape.ts +37 -0
- package/src/showcase/svg-canvas/shape/store/canvas-shape.slice.ts +38 -0
- package/src/showcase/svg-canvas/shared/atoms/canvas-badge.syn +34 -0
- package/src/showcase/svg-canvas/shared/atoms/canvas-icon-btn.syn +32 -0
- package/src/showcase/svg-canvas/shared/atoms/canvas-text-input.syn +27 -0
- package/src/showcase/svg-canvas/shared/helpers/canvas-dom-ops.ts +187 -0
- package/src/showcase/svg-canvas/shared/helpers/canvas-helpers.ts +112 -0
- package/src/showcase/svg-canvas/shared/helpers/route-orthogonal.ts +176 -0
- package/src/showcase/svg-canvas/shared/model/i-drag.ts +84 -0
- package/src/showcase/svg-canvas/shared/model/i-entity.ts +71 -0
- package/src/showcase/svg-canvas/store/canvas-store.ts +60 -0
- package/src/showcase/svg-canvas/svg-canvas-page.syn +28 -0
- package/src/showcase/tests/assignment-test.syn +37 -0
- package/src/showcase/tests/minimal-export-test.syn +7 -0
- package/src/showcase/tests/object-literal-test.syn +26 -0
- package/src/showcase/tests/simple-codegen-test.syn +12 -0
- package/src/showcase/tests/simple-test.syn +51 -0
- package/src/showcase/tests/template-literal-demo.syn +138 -0
- package/src/showcase-styles.css +96 -0
- package/src/styles/design-system.css +275 -0
- package/src/styles/motion.css +121 -0
- package/src/styles/showcase-base.css +522 -0
- package/src/styles/showcase.css +653 -0
- package/src/styles/state-layers.css +55 -0
- package/src/styles/touch-targets.css +41 -0
- package/src/styles/transitions.css +617 -0
- package/src/styles/utilities.css +115 -0
- package/src/styles.css +23 -0
- package/src/test-keywords.syn +15 -0
- package/src/test-loop.syn +29 -0
- package/src/test-minimal.syn +9 -0
- package/src/test-object-literal.syn +19 -0
- package/src/test-simple.syn +12 -0
- package/src/types/psr-modules.d.ts +6 -0
- package/src/types.ts +37 -0
- package/tailwind.config.js +354 -0
- package/test-results/.last-run.json +4 -0
- package/test-signal-debug.syn +9 -0
- package/test-transformation.ts +35 -0
- package/tsconfig.build.json +31 -0
- package/tsconfig.json +44 -0
- package/tsconfig.stories.json +10 -0
- package/vite.config.ts +47 -0
- package/vitest.config.ts +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/binaryjack/synetics-design-system/main/art-kit/SVG/pulsar-logo.svg" alt="Synetics UI" width="400"/>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>Component library for the Synetics framework</strong>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<img src="https://img.shields.io/badge/version-0.7.0--alpha-blue" alt="Version 0.7.0-alpha"/>
|
|
11
|
+
<img src="https://img.shields.io/badge/TypeScript-5.0+-blue" alt="TypeScript 5.0+"/>
|
|
12
|
+
<img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License"/>
|
|
13
|
+
<img src="https://img.shields.io/badge/Synetics-0.7.0--alpha-blueviolet" alt="Synetics 0.7.0-alpha"/>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="#about">About</a> •
|
|
18
|
+
<a href="#installation">Installation</a> •
|
|
19
|
+
<a href="#quick-start">Quick Start</a> •
|
|
20
|
+
<a href="#components">Components</a> •
|
|
21
|
+
<a href="#roadmap">Roadmap</a> •
|
|
22
|
+
<a href="#contributing">Contributing</a>
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<p align="center">
|
|
26
|
+
<strong><a href="https://www.linkedin.com/in/tadeopiana/">follow me</a></strong>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## About
|
|
32
|
+
|
|
33
|
+
**@synetics/ui** is the official component library for the Synetics framework. It provides production-ready, accessible UI components built with fine-grained reactivity, TailwindCSS styling, and a fluent builder API for configuration.
|
|
34
|
+
|
|
35
|
+
### Key Features
|
|
36
|
+
|
|
37
|
+
- 🎨 **Design Tokens**: Uses [@synetics/design-tokens](https://github.com/binaryjack/synetics-design-system) for consistent styling
|
|
38
|
+
- 📏 **Size System**: Standardized sizing (xs, sm, md, lg, xl) across all components
|
|
39
|
+
- 🎭 **Variant System**: Multiple style variants (solid, outline, ghost, soft)
|
|
40
|
+
- 🏗️ **Builder Pattern**: Fluent API for component configuration
|
|
41
|
+
- 🎯 **Type-Safe**: Full TypeScript support with strict typing
|
|
42
|
+
- ♿ **Accessible**: ARIA attributes and keyboard navigation built-in
|
|
43
|
+
- 🚀 **Synetics-Native**: Built specifically for Synetics's reactivity system
|
|
44
|
+
- 💅 **TailwindCSS**: Utility-first styling with custom configuration
|
|
45
|
+
- 📦 **Modular**: Clean architecture with one item per file
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🎨 Live Showcase
|
|
50
|
+
|
|
51
|
+
**Explore 80+ Advanced Examples:** [GitHub Pages Showcase](#) _(Coming Soon)_
|
|
52
|
+
|
|
53
|
+
The showcase demonstrates production-grade patterns from the Synetics ecosystem:
|
|
54
|
+
|
|
55
|
+
### Featured Patterns
|
|
56
|
+
|
|
57
|
+
#### 1. **Portal/PortalSlot Architecture**
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// Modal with content projection - logic stays local, UI projects globally
|
|
61
|
+
<Modal id="demo" isOpen={isOpen} onClose={closeModal} />
|
|
62
|
+
<Portal id="demo" target="body">
|
|
63
|
+
<input value={localData()} onInput={updateLocalData} />
|
|
64
|
+
{/* Component scope preserved, UI rendered in portal */}
|
|
65
|
+
</Portal>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Benefits:**
|
|
69
|
+
|
|
70
|
+
- UI projected to global DOM (modal, tooltip, dropdown)
|
|
71
|
+
- State and logic remain in component scope
|
|
72
|
+
- Clean separation of concerns
|
|
73
|
+
- No prop drilling
|
|
74
|
+
|
|
75
|
+
#### 2. **Error Boundaries (Tryer/Catcher)**
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
// Graceful error handling with isolated boundaries
|
|
79
|
+
<Tryer>
|
|
80
|
+
<ComponentThatMightFail />
|
|
81
|
+
<Catcher>
|
|
82
|
+
{(error) => <ErrorDisplay error={error} />}
|
|
83
|
+
</Catcher>
|
|
84
|
+
</Tryer>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Features:**
|
|
88
|
+
|
|
89
|
+
- Independent error boundaries
|
|
90
|
+
- Prevents app-wide crashes
|
|
91
|
+
- Fallback UI for failed sections
|
|
92
|
+
- Error propagation control
|
|
93
|
+
|
|
94
|
+
#### 3. **Signal-Based Reactivity**
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
// Fine-grained updates with automatic dependency tracking
|
|
98
|
+
const [count, setCount] = createSignal(0);
|
|
99
|
+
const double = createMemo(() => count() * 2);
|
|
100
|
+
|
|
101
|
+
// Only subscribed DOM nodes update - no virtual DOM diffing
|
|
102
|
+
<div>{count()}</div> {/* Updates when count changes */}
|
|
103
|
+
<div>{double()}</div> {/* Updates when count changes */}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### 4. **Resource Caching**
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
// Stale-while-revalidate with automatic cache management
|
|
110
|
+
const user = createResource(() => fetchUser(id), {
|
|
111
|
+
staleTime: 5000 // Fresh for 5 seconds
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Instant cache hits, background revalidation
|
|
115
|
+
<Show when={user.data}>
|
|
116
|
+
{(u) => <Profile user={u} />}
|
|
117
|
+
</Show>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### 5. **Dependency Injection**
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
// ServiceManager with lifecycle management
|
|
124
|
+
const services = new ServiceManager();
|
|
125
|
+
|
|
126
|
+
services.register('analytics', () => new Analytics(), {
|
|
127
|
+
lifetime: 'singleton', // Single instance app-wide
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Use in components
|
|
131
|
+
const analytics = inject('analytics');
|
|
132
|
+
analytics.track('event');
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
#### 6. **Control Flow Primitives**
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
// Declarative control flow with proper keying
|
|
139
|
+
<Show when={isLoggedIn()}><Dashboard /></Show>
|
|
140
|
+
<For each={items()}>{(item) => <Item {...item} />}</For>
|
|
141
|
+
<Index each={colors()}>{(color, i) => <Color value={color()} />}</Index>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Showcase Structure
|
|
145
|
+
|
|
146
|
+
📁 **src/showcase/**
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
├── reactivity/ # Signal, memo, effect demos
|
|
150
|
+
├── portal/ # Modal, tooltip portals
|
|
151
|
+
├── error-boundary/ # Tryer/Catcher patterns
|
|
152
|
+
├── resource/ # Data fetching, caching
|
|
153
|
+
├── di/ # Dependency injection
|
|
154
|
+
├── control-flow/ # Show, For, Index
|
|
155
|
+
└── components/ # Component composition
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
🔗 **View Source:** [packages/synetics-ui.dev/src/showcase](./src/showcase)
|
|
159
|
+
|
|
160
|
+
### Run Showcase Locally
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
pnpm showcase:dev # Development server
|
|
164
|
+
pnpm showcase:build # Build for production
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Installation
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
pnpm add @synetics/ui
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Dependencies
|
|
176
|
+
|
|
177
|
+
The component library requires:
|
|
178
|
+
|
|
179
|
+
- `pulsar` - The Synetics framework
|
|
180
|
+
- `@synetics/design-tokens` - Design system tokens
|
|
181
|
+
- `tailwindcss` - Utility-first CSS framework
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Quick Start
|
|
186
|
+
|
|
187
|
+
### Builder Pattern Configuration
|
|
188
|
+
|
|
189
|
+
All components use a fluent builder pattern for configuration:
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
import { ComponentConfig, Button } from '@synetics/ui';
|
|
193
|
+
|
|
194
|
+
// Create a configuration
|
|
195
|
+
const config = new ComponentConfig('primary') // Start with color
|
|
196
|
+
.variant('solid') // Set variant
|
|
197
|
+
.size('lg') // Set size
|
|
198
|
+
.rounded('md') // Border radius
|
|
199
|
+
.shadow('lg') // Shadow
|
|
200
|
+
.fullWidth() // Full width
|
|
201
|
+
.build(); // Build final config
|
|
202
|
+
|
|
203
|
+
// Use configuration with component
|
|
204
|
+
const myButton = Button({
|
|
205
|
+
config,
|
|
206
|
+
label: 'Click Me',
|
|
207
|
+
onclick: () => console.log('Clicked!'),
|
|
208
|
+
});
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Simple Usage
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
import { PrimaryButton, Input, Badge } from '@synetics/ui';
|
|
215
|
+
|
|
216
|
+
// Use factory variants for quick setup
|
|
217
|
+
const saveButton = PrimaryButton({
|
|
218
|
+
label: 'Save Changes',
|
|
219
|
+
onclick: () => saveFn(),
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
const emailInput = Input({
|
|
223
|
+
type: 'email',
|
|
224
|
+
placeholder: 'your@email.com',
|
|
225
|
+
required: true,
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
const statusBadge = Badge({
|
|
229
|
+
label: 'Active',
|
|
230
|
+
color: 'success',
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Components
|
|
237
|
+
|
|
238
|
+
### Atoms
|
|
239
|
+
|
|
240
|
+
- **Button** - Interactive button with variants, sizes, icons, loading states
|
|
241
|
+
- **Input** - Text input with prefix/suffix, error states, validation
|
|
242
|
+
- **Checkbox** - Accessible checkbox with indeterminate state
|
|
243
|
+
- **Radio** - Radio button for single selections
|
|
244
|
+
- **Toggle** - Switch/toggle component for boolean states
|
|
245
|
+
- **Textarea** - Multi-line text input
|
|
246
|
+
- **Spinner** - Loading spinner with size variants
|
|
247
|
+
- **Skeleton** - Skeleton loader for content placeholders
|
|
248
|
+
- **Typography** - Heading, paragraph, and text components
|
|
249
|
+
|
|
250
|
+
### Molecules
|
|
251
|
+
|
|
252
|
+
- **Badge** - Status and label badges with colors and variants
|
|
253
|
+
- **Button Group** - Grouped buttons with shared configuration
|
|
254
|
+
- **Label** - Form labels with required indicators
|
|
255
|
+
- **Radio Group** - Radio button groups with shared state
|
|
256
|
+
|
|
257
|
+
### Organisms
|
|
258
|
+
|
|
259
|
+
- **Card** - Container with header, body, footer sections
|
|
260
|
+
|
|
261
|
+
### ComponentConfig Builder API
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
new ComponentConfig(color) // 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'neutral'
|
|
265
|
+
.variant(value) // 'solid' | 'outline' | 'ghost' | 'soft'
|
|
266
|
+
.size(value) // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
267
|
+
.rounded(value) // 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'
|
|
268
|
+
.shadow(value) // 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
|
|
269
|
+
.border(boolean) // Enable/disable border
|
|
270
|
+
.disabled(boolean) // Disabled state
|
|
271
|
+
.loading(boolean) // Loading state
|
|
272
|
+
.fullWidth(boolean) // Full width
|
|
273
|
+
.transition(boolean) // Enable transitions
|
|
274
|
+
.transitionDuration(value) // 'fast' | 'normal' | 'slow'
|
|
275
|
+
.hover(boolean) // Enable hover effects
|
|
276
|
+
.focus(boolean) // Enable focus effects
|
|
277
|
+
.active(boolean) // Enable active effects
|
|
278
|
+
.className(string) // Additional CSS classes
|
|
279
|
+
.build(); // Returns IComponentConfig
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Roadmap
|
|
285
|
+
|
|
286
|
+
### ✅ v0.1.0 - Foundation (Current)
|
|
287
|
+
|
|
288
|
+
- ✅ Atoms: Button, Input, Checkbox, Radio, Toggle, Textarea, Spinner, Skeleton, Typography
|
|
289
|
+
- ✅ Molecules: Badge, Button Group, Label, Radio Group
|
|
290
|
+
- ✅ Organisms: Card
|
|
291
|
+
- ✅ Builder pattern API
|
|
292
|
+
- ✅ Design token integration
|
|
293
|
+
- ✅ TypeScript strict mode
|
|
294
|
+
- ✅ TailwindCSS integration
|
|
295
|
+
|
|
296
|
+
### 🚧 v0.2.0 - Enhanced Components (Q2 2026)
|
|
297
|
+
|
|
298
|
+
- 🔄 **Select** - Dropdown select with search and multi-select
|
|
299
|
+
- 🔄 **Modal** - Dialog and modal components
|
|
300
|
+
- 🔄 **Dropdown** - Menu dropdown with keyboard navigation
|
|
301
|
+
- 🔄 **Tabs** - Tab navigation component
|
|
302
|
+
- 🔄 **Accordion** - Collapsible content panels
|
|
303
|
+
- 🔄 **Toast** - Toast notifications system
|
|
304
|
+
- 🔄 **Tooltip** - Contextual tooltips
|
|
305
|
+
- 🔄 **Popover** - Popover content containers
|
|
306
|
+
|
|
307
|
+
### 🎯 v0.3.0 - Advanced Components (Q3 2026)
|
|
308
|
+
|
|
309
|
+
- 📋 **Table** - Data table with sorting, filtering, pagination
|
|
310
|
+
- 📊 **Chart** - Basic chart components (bar, line, pie)
|
|
311
|
+
- 📅 **Date Picker** - Calendar date selection
|
|
312
|
+
- 🎨 **Color Picker** - Color selection component
|
|
313
|
+
- 📁 **File Upload** - Drag-and-drop file upload
|
|
314
|
+
- 🔍 **Search** - Search input with suggestions
|
|
315
|
+
- 🏷️ **Tag Input** - Multi-tag input component
|
|
316
|
+
- 📝 **Rich Text Editor** - WYSIWYG editor
|
|
317
|
+
|
|
318
|
+
### 🌟 v1.0.0 - Production Ready (Q4 2026)
|
|
319
|
+
|
|
320
|
+
- 🎨 **Theming System** - Custom theme creation and switching
|
|
321
|
+
- 📱 **Responsive Utilities** - Mobile-first responsive components
|
|
322
|
+
- 🌙 **Dark Mode** - Complete dark mode support
|
|
323
|
+
- ♿ **A11y Audit** - Full accessibility compliance
|
|
324
|
+
- 📖 **Storybook** - Interactive component documentation
|
|
325
|
+
- 🧪 **Test Coverage 90%+** - Comprehensive test suite
|
|
326
|
+
- 📦 **Tree Shaking** - Optimized bundle sizes
|
|
327
|
+
- 🎭 **Animation Library** - Pre-built animation presets
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Ecosystem
|
|
332
|
+
|
|
333
|
+
Part of the Synetics framework ecosystem:
|
|
334
|
+
|
|
335
|
+
| Package | Description | Repository |
|
|
336
|
+
| ------------------------- | -------------------------------- | ------------------------------------------------------------ |
|
|
337
|
+
| **synetics.dev** | Main reactive framework | [GitHub](https://github.com/binaryjack/synetics.dev) |
|
|
338
|
+
| **@synetics/ui** | Component library (this package) | [GitHub](https://github.com/binaryjack/synetics-ui.dev) |
|
|
339
|
+
| **@synetics/design-tokens** | Design tokens & brand assets | [GitHub](https://github.com/binaryjack/synetics-design-system) |
|
|
340
|
+
| **@synetics/transformer** | JSX transformer | [GitHub](https://github.com/binaryjack/synetics-transformer) |
|
|
341
|
+
| **@synetics/vite-plugin** | Vite integration | [GitHub](https://github.com/binaryjack/synetics-vite-plugin) |
|
|
342
|
+
| **synetics-demo** | Example applications | [GitHub](https://github.com/binaryjack/synetics-demo) |
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Contributing
|
|
347
|
+
|
|
348
|
+
Contributions welcome! We need help with:
|
|
349
|
+
|
|
350
|
+
- 🎨 **New Components** - Build additional UI components
|
|
351
|
+
- ♿ **Accessibility** - Improve ARIA support and keyboard navigation
|
|
352
|
+
- 📖 **Documentation** - Add examples and usage guides
|
|
353
|
+
- 🧪 **Tests** - Increase test coverage
|
|
354
|
+
- 🐛 **Bug Fixes** - Report and fix issues
|
|
355
|
+
- 💡 **Feature Requests** - Suggest new components or improvements
|
|
356
|
+
|
|
357
|
+
### Development Setup
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Clone the repository
|
|
361
|
+
git clone https://github.com/binaryjack/synetics-ui.dev.git
|
|
362
|
+
cd synetics-ui.dev
|
|
363
|
+
|
|
364
|
+
# Install dependencies
|
|
365
|
+
pnpm install
|
|
366
|
+
|
|
367
|
+
# Build
|
|
368
|
+
pnpm build
|
|
369
|
+
|
|
370
|
+
# Watch mode
|
|
371
|
+
pnpm dev
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### Code Guidelines
|
|
375
|
+
|
|
376
|
+
- ✅ One item per file (interfaces, types, implementations)
|
|
377
|
+
- ✅ TypeScript strict mode (no `any` types)
|
|
378
|
+
- ✅ Prototype-based classes for components
|
|
379
|
+
- ✅ Use `Synetics.HtmlExtends<T>` for HTML props
|
|
380
|
+
- ✅ Builder pattern for component configuration
|
|
381
|
+
- ✅ Comprehensive JSDoc comments
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## License
|
|
386
|
+
|
|
387
|
+
MIT License - Copyright (c) 2026 Synetics framework
|
|
388
|
+
|
|
389
|
+
See [LICENSE](./LICENSE) for full details.
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## Acknowledgments
|
|
394
|
+
|
|
395
|
+
Built with ⚡ by [Tadeo Piana](https://www.linkedin.com/in/tadeopiana/) and contributors.
|
|
396
|
+
|
|
397
|
+
Design inspiration from:
|
|
398
|
+
|
|
399
|
+
- [Radix UI](https://www.radix-ui.com/) - Accessible component primitives
|
|
400
|
+
- [shadcn/ui](https://ui.shadcn.com/) - Beautiful component design
|
|
401
|
+
- [Headless UI](https://headlessui.com/) - Unstyled accessible components
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
<p align="center">
|
|
406
|
+
<strong>@synetics/ui - v0.1.0</strong><br/>
|
|
407
|
+
Component library for the Synetics framework
|
|
408
|
+
</p>
|
|
409
|
+
|
|
410
|
+
<p align="center">
|
|
411
|
+
<a href="https://github.com/binaryjack/synetics-ui.dev">GitHub</a> •
|
|
412
|
+
<a href="https://github.com/binaryjack/synetics.dev">Synetics framework</a> •
|
|
413
|
+
<a href="https://www.linkedin.com/in/tadeopiana/">Connect with the Creator</a>
|
|
414
|
+
</p>
|
package/ROADMAP.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Synetics UI Component Library Roadmap
|
|
2
|
+
|
|
3
|
+
**Current Version**: v0.7.0-alpha
|
|
4
|
+
**Target Release**: v1.0.0 (Q3 2026)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## v0.8.0-alpha (Q2 2026)
|
|
9
|
+
|
|
10
|
+
### New Components
|
|
11
|
+
|
|
12
|
+
- [ ] DataTable with sorting/filtering
|
|
13
|
+
- [ ] Tree view component
|
|
14
|
+
- [ ] Calendar/DatePicker
|
|
15
|
+
- [ ] Rich text editor integration
|
|
16
|
+
- [ ] File upload component
|
|
17
|
+
- [ ] Tabs component
|
|
18
|
+
- [ ] Accordion component
|
|
19
|
+
- [ ] Carousel/Slider
|
|
20
|
+
|
|
21
|
+
### Enhancements
|
|
22
|
+
|
|
23
|
+
- [ ] Dark mode support for all components
|
|
24
|
+
- [ ] Animation system
|
|
25
|
+
- [ ] Better accessibility (WCAG 2.1 AA)
|
|
26
|
+
- [ ] Responsive design system
|
|
27
|
+
- [ ] Mobile-first components
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## v0.9.0-beta (Q2-Q3 2026)
|
|
32
|
+
|
|
33
|
+
### Production Readiness
|
|
34
|
+
|
|
35
|
+
- [ ] Full test coverage (> 95%)
|
|
36
|
+
- [ ] Storybook documentation
|
|
37
|
+
- [ ] Component playground
|
|
38
|
+
- [ ] Theme customization guide
|
|
39
|
+
- [ ] Migration guide
|
|
40
|
+
|
|
41
|
+
### Advanced Features
|
|
42
|
+
|
|
43
|
+
- [ ] Virtual scrolling for lists
|
|
44
|
+
- [ ] Drag & drop utilities
|
|
45
|
+
- [ ] Advanced form validation
|
|
46
|
+
- [ ] Chart components
|
|
47
|
+
- [ ] Data visualization utilities
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## v1.0.0 (Q3 2026)
|
|
52
|
+
|
|
53
|
+
### Release Criteria
|
|
54
|
+
|
|
55
|
+
- ✅ 50+ production-ready components
|
|
56
|
+
- ✅ Complete documentation
|
|
57
|
+
- ✅ Accessibility audited
|
|
58
|
+
- ✅ Performance optimized
|
|
59
|
+
- ✅ Theming system stable
|
|
60
|
+
- ✅ Examples for all components
|
|
61
|
+
|
|
62
|
+
### Component Categories
|
|
63
|
+
|
|
64
|
+
- **Forms**: Input, Select, Checkbox, Radio, Toggle, Textarea, DatePicker
|
|
65
|
+
- **Navigation**: Menu, Tabs, Breadcrumb, Pagination, Steps
|
|
66
|
+
- **Data Display**: Table, List, Card, Badge, Tag, Avatar, Tooltip
|
|
67
|
+
- **Feedback**: Alert, Toast, Modal, Drawer, Progress, Spinner
|
|
68
|
+
- **Layout**: Container, Grid, Stack, Divider, Spacer
|
|
69
|
+
- **Overlay**: Dropdown, Popover, Dialog, Sheet
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Future Plans (Post-1.0)
|
|
74
|
+
|
|
75
|
+
### v1.x Series
|
|
76
|
+
|
|
77
|
+
- Advanced data grid
|
|
78
|
+
- Kanban board component
|
|
79
|
+
- Timeline component
|
|
80
|
+
- Video player integration
|
|
81
|
+
- Audio player integration
|
|
82
|
+
- Code editor component
|
|
83
|
+
- Markdown editor
|
|
84
|
+
|
|
85
|
+
### Integration Packages
|
|
86
|
+
|
|
87
|
+
- Form validation library integration
|
|
88
|
+
- State management examples
|
|
89
|
+
- Routing integration examples
|
|
90
|
+
- i18n support utilities
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Design System
|
|
95
|
+
|
|
96
|
+
### Planned Expansions
|
|
97
|
+
|
|
98
|
+
- [ ] Animation tokens
|
|
99
|
+
- [ ] Extended color palette
|
|
100
|
+
- [ ] Accessibility color checker
|
|
101
|
+
- [ ] Design token documentation generator
|
|
102
|
+
- [ ] Figma integration
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## GitHub Pages Showcase
|
|
107
|
+
|
|
108
|
+
Live examples at: `https://binaryjack.github.io/synetics-ui.dev/`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
Track progress: [GitHub Projects](https://github.com/binaryjack/synetics-ui.dev/projects)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Test Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Comprehensive test suite for Synetics framework showcase pages covering unit, integration, and E2E testing.
|
|
6
|
+
|
|
7
|
+
## Test Structure
|
|
8
|
+
|
|
9
|
+
### Unit Tests (`src/showcase/pages/__tests__/`)
|
|
10
|
+
|
|
11
|
+
- Test individual page components in isolation
|
|
12
|
+
- Verify rendering, state updates, event handlers
|
|
13
|
+
- Mock dependencies and focus on component logic
|
|
14
|
+
|
|
15
|
+
### Integration Tests (`src/showcase/__tests__/integration/`)
|
|
16
|
+
|
|
17
|
+
- Test component interactions and data flow
|
|
18
|
+
- Verify signal propagation across components
|
|
19
|
+
- Test context provider-consumer relationships
|
|
20
|
+
- Validate navigation and routing
|
|
21
|
+
|
|
22
|
+
### E2E Tests (`e2e/showcase/`)
|
|
23
|
+
|
|
24
|
+
- Test complete user journeys
|
|
25
|
+
- Verify visual appearance and animations
|
|
26
|
+
- Test real browser interactions
|
|
27
|
+
- Include visual regression testing
|
|
28
|
+
|
|
29
|
+
## Running Tests
|
|
30
|
+
|
|
31
|
+
### Unit Tests
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cd packages/synetics-ui.dev
|
|
35
|
+
npm test # Run all unit tests
|
|
36
|
+
npm test -- home.test # Run specific test file
|
|
37
|
+
npm test -- --coverage # With coverage report
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Integration Tests
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm test integration
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### E2E Tests
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run test:e2e # All E2E tests
|
|
50
|
+
npm run test:e2e -- --headed # With browser visible
|
|
51
|
+
npm run test:e2e -- --debug # Debug mode
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Test Coverage Goals
|
|
55
|
+
|
|
56
|
+
- Unit Tests: 90%+ line coverage
|
|
57
|
+
- Integration Tests: Cover all major user flows
|
|
58
|
+
- E2E Tests: Cover critical paths with visual regression
|
|
59
|
+
|
|
60
|
+
## TDD Approach
|
|
61
|
+
|
|
62
|
+
Tests are written before implementation to:
|
|
63
|
+
|
|
64
|
+
1. Define expected behavior
|
|
65
|
+
2. Catch regressions early
|
|
66
|
+
3. Document component APIs
|
|
67
|
+
4. Enable confident refactoring
|