@neurocle/synapse-react 0.0.0-stage → 0.3.0
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/LICENSE +21 -0
- package/README.md +162 -2
- package/dist/_virtual/_rolldown/runtime.mjs +13 -0
- package/dist/components/accordion/accordion.d.mts +38 -0
- package/dist/components/accordion/accordion.d.mts.map +1 -0
- package/dist/components/accordion/accordion.mjs +29 -0
- package/dist/components/accordion/accordion.mjs.map +1 -0
- package/dist/components/accordion/accordion.recipe.mjs +191 -0
- package/dist/components/accordion/accordion.recipe.mjs.map +1 -0
- package/dist/components/accordion/index.d.mts +2 -0
- package/dist/components/accordion/index.mjs +2 -0
- package/dist/components/alert/alert.anatomy.mjs +8 -0
- package/dist/components/alert/alert.anatomy.mjs.map +1 -0
- package/dist/components/alert/alert.connect.d.mts +4 -0
- package/dist/components/alert/alert.connect.d.mts.map +1 -0
- package/dist/components/alert/alert.connect.mjs +39 -0
- package/dist/components/alert/alert.connect.mjs.map +1 -0
- package/dist/components/alert/alert.d.mts +14 -0
- package/dist/components/alert/alert.d.mts.map +1 -0
- package/dist/components/alert/alert.mjs +37 -0
- package/dist/components/alert/alert.mjs.map +1 -0
- package/dist/components/alert/alert.recipe.mjs +141 -0
- package/dist/components/alert/alert.recipe.mjs.map +1 -0
- package/dist/components/alert/index.d.mts +3 -0
- package/dist/components/alert/index.mjs +2 -0
- package/dist/components/angle-slider/angle-slider.d.mts +35 -0
- package/dist/components/angle-slider/angle-slider.d.mts.map +1 -0
- package/dist/components/angle-slider/angle-slider.mjs +41 -0
- package/dist/components/angle-slider/angle-slider.mjs.map +1 -0
- package/dist/components/angle-slider/angle-slider.recipe.mjs +201 -0
- package/dist/components/angle-slider/angle-slider.recipe.mjs.map +1 -0
- package/dist/components/angle-slider/index.d.mts +2 -0
- package/dist/components/angle-slider/index.mjs +2 -0
- package/dist/components/avatar/avatar.d.mts +18 -0
- package/dist/components/avatar/avatar.d.mts.map +1 -0
- package/dist/components/avatar/avatar.mjs +35 -0
- package/dist/components/avatar/avatar.mjs.map +1 -0
- package/dist/components/avatar/avatar.recipe.mjs +113 -0
- package/dist/components/avatar/avatar.recipe.mjs.map +1 -0
- package/dist/components/avatar/index.d.mts +2 -0
- package/dist/components/avatar/index.mjs +2 -0
- package/dist/components/badge/badge.anatomy.mjs +8 -0
- package/dist/components/badge/badge.anatomy.mjs.map +1 -0
- package/dist/components/badge/badge.connect.d.mts +4 -0
- package/dist/components/badge/badge.connect.d.mts.map +1 -0
- package/dist/components/badge/badge.connect.mjs +32 -0
- package/dist/components/badge/badge.connect.mjs.map +1 -0
- package/dist/components/badge/badge.d.mts +14 -0
- package/dist/components/badge/badge.d.mts.map +1 -0
- package/dist/components/badge/badge.mjs +18 -0
- package/dist/components/badge/badge.mjs.map +1 -0
- package/dist/components/badge/badge.recipe.mjs +84 -0
- package/dist/components/badge/badge.recipe.mjs.map +1 -0
- package/dist/components/badge/index.d.mts +3 -0
- package/dist/components/badge/index.mjs +2 -0
- package/dist/components/breadcrumb/breadcrumb.anatomy.mjs +8 -0
- package/dist/components/breadcrumb/breadcrumb.anatomy.mjs.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.connect.mjs +30 -0
- package/dist/components/breadcrumb/breadcrumb.connect.mjs.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.mts +10 -0
- package/dist/components/breadcrumb/breadcrumb.d.mts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.mjs +31 -0
- package/dist/components/breadcrumb/breadcrumb.mjs.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.recipe.mjs +121 -0
- package/dist/components/breadcrumb/breadcrumb.recipe.mjs.map +1 -0
- package/dist/components/breadcrumb/index.d.mts +2 -0
- package/dist/components/breadcrumb/index.mjs +2 -0
- package/dist/components/button/button.anatomy.mjs +8 -0
- package/dist/components/button/button.anatomy.mjs.map +1 -0
- package/dist/components/button/button.connect.mjs +35 -0
- package/dist/components/button/button.connect.mjs.map +1 -0
- package/dist/components/button/button.d.mts +19 -0
- package/dist/components/button/button.d.mts.map +1 -0
- package/dist/components/button/button.mjs +25 -0
- package/dist/components/button/button.mjs.map +1 -0
- package/dist/components/button/button.recipe.mjs +377 -0
- package/dist/components/button/button.recipe.mjs.map +1 -0
- package/dist/components/button/index.d.mts +2 -0
- package/dist/components/button/index.mjs +2 -0
- package/dist/components/card/card.anatomy.mjs +8 -0
- package/dist/components/card/card.anatomy.mjs.map +1 -0
- package/dist/components/card/card.connect.mjs +24 -0
- package/dist/components/card/card.connect.mjs.map +1 -0
- package/dist/components/card/card.d.mts +9 -0
- package/dist/components/card/card.d.mts.map +1 -0
- package/dist/components/card/card.mjs +23 -0
- package/dist/components/card/card.mjs.map +1 -0
- package/dist/components/card/card.recipe.mjs +58 -0
- package/dist/components/card/card.recipe.mjs.map +1 -0
- package/dist/components/card/index.d.mts +2 -0
- package/dist/components/card/index.mjs +2 -0
- package/dist/components/carousel/carousel.d.mts +67 -0
- package/dist/components/carousel/carousel.d.mts.map +1 -0
- package/dist/components/carousel/carousel.mjs +123 -0
- package/dist/components/carousel/carousel.mjs.map +1 -0
- package/dist/components/carousel/carousel.recipe.mjs +131 -0
- package/dist/components/carousel/carousel.recipe.mjs.map +1 -0
- package/dist/components/carousel/index.d.mts +2 -0
- package/dist/components/carousel/index.mjs +2 -0
- package/dist/components/cascade-select/cascade-select.d.mts +102 -0
- package/dist/components/cascade-select/cascade-select.d.mts.map +1 -0
- package/dist/components/cascade-select/cascade-select.mjs +169 -0
- package/dist/components/cascade-select/cascade-select.mjs.map +1 -0
- package/dist/components/cascade-select/cascade-select.recipe.mjs +309 -0
- package/dist/components/cascade-select/cascade-select.recipe.mjs.map +1 -0
- package/dist/components/cascade-select/index.d.mts +2 -0
- package/dist/components/cascade-select/index.mjs +2 -0
- package/dist/components/checkbox/checkbox.d.mts +37 -0
- package/dist/components/checkbox/checkbox.d.mts.map +1 -0
- package/dist/components/checkbox/checkbox.mjs +55 -0
- package/dist/components/checkbox/checkbox.mjs.map +1 -0
- package/dist/components/checkbox/checkbox.recipe.mjs +170 -0
- package/dist/components/checkbox/checkbox.recipe.mjs.map +1 -0
- package/dist/components/checkbox/index.d.mts +2 -0
- package/dist/components/checkbox/index.mjs +2 -0
- package/dist/components/clipboard/clipboard.d.mts +26 -0
- package/dist/components/clipboard/clipboard.d.mts.map +1 -0
- package/dist/components/clipboard/clipboard.mjs +76 -0
- package/dist/components/clipboard/clipboard.mjs.map +1 -0
- package/dist/components/clipboard/clipboard.recipe.mjs +119 -0
- package/dist/components/clipboard/clipboard.recipe.mjs.map +1 -0
- package/dist/components/clipboard/index.d.mts +2 -0
- package/dist/components/clipboard/index.mjs +2 -0
- package/dist/components/collapsible/collapsible.d.mts +21 -0
- package/dist/components/collapsible/collapsible.d.mts.map +1 -0
- package/dist/components/collapsible/collapsible.mjs +23 -0
- package/dist/components/collapsible/collapsible.mjs.map +1 -0
- package/dist/components/collapsible/collapsible.recipe.mjs +159 -0
- package/dist/components/collapsible/collapsible.recipe.mjs.map +1 -0
- package/dist/components/collapsible/index.d.mts +2 -0
- package/dist/components/collapsible/index.mjs +2 -0
- package/dist/components/collection-window.mjs +299 -0
- package/dist/components/collection-window.mjs.map +1 -0
- package/dist/components/color-picker/color-picker.d.mts +67 -0
- package/dist/components/color-picker/color-picker.d.mts.map +1 -0
- package/dist/components/color-picker/color-picker.mjs +230 -0
- package/dist/components/color-picker/color-picker.mjs.map +1 -0
- package/dist/components/color-picker/color-picker.recipe.mjs +345 -0
- package/dist/components/color-picker/color-picker.recipe.mjs.map +1 -0
- package/dist/components/color-picker/index.d.mts +2 -0
- package/dist/components/color-picker/index.mjs +2 -0
- package/dist/components/combobox/combobox.d.mts +129 -0
- package/dist/components/combobox/combobox.d.mts.map +1 -0
- package/dist/components/combobox/combobox.mjs +92 -0
- package/dist/components/combobox/combobox.mjs.map +1 -0
- package/dist/components/combobox/combobox.recipe.mjs +336 -0
- package/dist/components/combobox/combobox.recipe.mjs.map +1 -0
- package/dist/components/combobox/index.d.mts +2 -0
- package/dist/components/combobox/index.mjs +2 -0
- package/dist/components/date-input/date-input.d.mts +69 -0
- package/dist/components/date-input/date-input.d.mts.map +1 -0
- package/dist/components/date-input/date-input.mjs +106 -0
- package/dist/components/date-input/date-input.mjs.map +1 -0
- package/dist/components/date-input/date-input.recipe.mjs +142 -0
- package/dist/components/date-input/date-input.recipe.mjs.map +1 -0
- package/dist/components/date-input/index.d.mts +2 -0
- package/dist/components/date-input/index.mjs +2 -0
- package/dist/components/date-picker/date-picker.d.mts +114 -0
- package/dist/components/date-picker/date-picker.d.mts.map +1 -0
- package/dist/components/date-picker/date-picker.mjs +269 -0
- package/dist/components/date-picker/date-picker.mjs.map +1 -0
- package/dist/components/date-picker/date-picker.recipe.mjs +495 -0
- package/dist/components/date-picker/date-picker.recipe.mjs.map +1 -0
- package/dist/components/date-picker/index.d.mts +2 -0
- package/dist/components/date-picker/index.mjs +2 -0
- package/dist/components/details.d.mts +9 -0
- package/dist/components/details.d.mts.map +1 -0
- package/dist/components/dialog/dialog.d.mts +45 -0
- package/dist/components/dialog/dialog.d.mts.map +1 -0
- package/dist/components/dialog/dialog.mjs +49 -0
- package/dist/components/dialog/dialog.mjs.map +1 -0
- package/dist/components/dialog/dialog.recipe.mjs +138 -0
- package/dist/components/dialog/dialog.recipe.mjs.map +1 -0
- package/dist/components/dialog/index.d.mts +2 -0
- package/dist/components/dialog/index.mjs +2 -0
- package/dist/components/drawer/drawer.d.mts +62 -0
- package/dist/components/drawer/drawer.d.mts.map +1 -0
- package/dist/components/drawer/drawer.mjs +65 -0
- package/dist/components/drawer/drawer.mjs.map +1 -0
- package/dist/components/drawer/drawer.recipe.mjs +201 -0
- package/dist/components/drawer/drawer.recipe.mjs.map +1 -0
- package/dist/components/drawer/index.d.mts +2 -0
- package/dist/components/drawer/index.mjs +2 -0
- package/dist/components/editable/editable.d.mts +62 -0
- package/dist/components/editable/editable.d.mts.map +1 -0
- package/dist/components/editable/editable.mjs +78 -0
- package/dist/components/editable/editable.mjs.map +1 -0
- package/dist/components/editable/editable.recipe.mjs +152 -0
- package/dist/components/editable/editable.recipe.mjs.map +1 -0
- package/dist/components/editable/index.d.mts +2 -0
- package/dist/components/editable/index.mjs +2 -0
- package/dist/components/empty-state/empty-state.anatomy.mjs +8 -0
- package/dist/components/empty-state/empty-state.anatomy.mjs.map +1 -0
- package/dist/components/empty-state/empty-state.connect.mjs +26 -0
- package/dist/components/empty-state/empty-state.connect.mjs.map +1 -0
- package/dist/components/empty-state/empty-state.d.mts +10 -0
- package/dist/components/empty-state/empty-state.d.mts.map +1 -0
- package/dist/components/empty-state/empty-state.mjs +24 -0
- package/dist/components/empty-state/empty-state.mjs.map +1 -0
- package/dist/components/empty-state/empty-state.recipe.mjs +134 -0
- package/dist/components/empty-state/empty-state.recipe.mjs.map +1 -0
- package/dist/components/empty-state/index.d.mts +2 -0
- package/dist/components/empty-state/index.mjs +2 -0
- package/dist/components/field/field.anatomy.mjs +8 -0
- package/dist/components/field/field.anatomy.mjs.map +1 -0
- package/dist/components/field/field.connect.mjs +117 -0
- package/dist/components/field/field.connect.mjs.map +1 -0
- package/dist/components/field/field.d.mts +19 -0
- package/dist/components/field/field.d.mts.map +1 -0
- package/dist/components/field/field.mjs +77 -0
- package/dist/components/field/field.mjs.map +1 -0
- package/dist/components/field/field.recipe.mjs +60 -0
- package/dist/components/field/field.recipe.mjs.map +1 -0
- package/dist/components/field/index.d.mts +2 -0
- package/dist/components/field/index.mjs +2 -0
- package/dist/components/fieldset/fieldset.anatomy.mjs +8 -0
- package/dist/components/fieldset/fieldset.anatomy.mjs.map +1 -0
- package/dist/components/fieldset/fieldset.connect.mjs +60 -0
- package/dist/components/fieldset/fieldset.connect.mjs.map +1 -0
- package/dist/components/fieldset/fieldset.d.mts +13 -0
- package/dist/components/fieldset/fieldset.d.mts.map +1 -0
- package/dist/components/fieldset/fieldset.mjs +26 -0
- package/dist/components/fieldset/fieldset.mjs.map +1 -0
- package/dist/components/fieldset/fieldset.recipe.mjs +42 -0
- package/dist/components/fieldset/fieldset.recipe.mjs.map +1 -0
- package/dist/components/fieldset/index.d.mts +2 -0
- package/dist/components/fieldset/index.mjs +2 -0
- package/dist/components/file-upload/file-upload.d.mts +105 -0
- package/dist/components/file-upload/file-upload.d.mts.map +1 -0
- package/dist/components/file-upload/file-upload.mjs +127 -0
- package/dist/components/file-upload/file-upload.mjs.map +1 -0
- package/dist/components/file-upload/file-upload.recipe.mjs +236 -0
- package/dist/components/file-upload/file-upload.recipe.mjs.map +1 -0
- package/dist/components/file-upload/index.d.mts +2 -0
- package/dist/components/file-upload/index.mjs +2 -0
- package/dist/components/floating-panel/floating-panel.d.mts +87 -0
- package/dist/components/floating-panel/floating-panel.d.mts.map +1 -0
- package/dist/components/floating-panel/floating-panel.mjs +89 -0
- package/dist/components/floating-panel/floating-panel.mjs.map +1 -0
- package/dist/components/floating-panel/floating-panel.recipe.mjs +156 -0
- package/dist/components/floating-panel/floating-panel.recipe.mjs.map +1 -0
- package/dist/components/floating-panel/index.d.mts +2 -0
- package/dist/components/floating-panel/index.mjs +2 -0
- package/dist/components/hover-card/hover-card.d.mts +48 -0
- package/dist/components/hover-card/hover-card.d.mts.map +1 -0
- package/dist/components/hover-card/hover-card.mjs +31 -0
- package/dist/components/hover-card/hover-card.mjs.map +1 -0
- package/dist/components/hover-card/hover-card.recipe.mjs +133 -0
- package/dist/components/hover-card/hover-card.recipe.mjs.map +1 -0
- package/dist/components/hover-card/index.d.mts +2 -0
- package/dist/components/hover-card/index.mjs +2 -0
- package/dist/components/image-cropper/image-cropper.d.mts +111 -0
- package/dist/components/image-cropper/image-cropper.d.mts.map +1 -0
- package/dist/components/image-cropper/image-cropper.mjs +71 -0
- package/dist/components/image-cropper/image-cropper.mjs.map +1 -0
- package/dist/components/image-cropper/image-cropper.recipe.mjs +126 -0
- package/dist/components/image-cropper/image-cropper.recipe.mjs.map +1 -0
- package/dist/components/image-cropper/index.d.mts +2 -0
- package/dist/components/image-cropper/index.mjs +2 -0
- package/dist/components/input/index.d.mts +2 -0
- package/dist/components/input/index.mjs +2 -0
- package/dist/components/input/input.anatomy.mjs +8 -0
- package/dist/components/input/input.anatomy.mjs.map +1 -0
- package/dist/components/input/input.connect.mjs +82 -0
- package/dist/components/input/input.connect.mjs.map +1 -0
- package/dist/components/input/input.d.mts +31 -0
- package/dist/components/input/input.d.mts.map +1 -0
- package/dist/components/input/input.mjs +37 -0
- package/dist/components/input/input.mjs.map +1 -0
- package/dist/components/input/input.recipe.mjs +111 -0
- package/dist/components/input/input.recipe.mjs.map +1 -0
- package/dist/components/kbd/index.d.mts +2 -0
- package/dist/components/kbd/index.mjs +2 -0
- package/dist/components/kbd/kbd.anatomy.mjs +8 -0
- package/dist/components/kbd/kbd.anatomy.mjs.map +1 -0
- package/dist/components/kbd/kbd.connect.mjs +17 -0
- package/dist/components/kbd/kbd.connect.mjs.map +1 -0
- package/dist/components/kbd/kbd.d.mts +10 -0
- package/dist/components/kbd/kbd.d.mts.map +1 -0
- package/dist/components/kbd/kbd.mjs +18 -0
- package/dist/components/kbd/kbd.mjs.map +1 -0
- package/dist/components/kbd/kbd.recipe.mjs +55 -0
- package/dist/components/kbd/kbd.recipe.mjs.map +1 -0
- package/dist/components/listbox/index.d.mts +2 -0
- package/dist/components/listbox/index.mjs +2 -0
- package/dist/components/listbox/listbox.d.mts +70 -0
- package/dist/components/listbox/listbox.d.mts.map +1 -0
- package/dist/components/listbox/listbox.mjs +79 -0
- package/dist/components/listbox/listbox.mjs.map +1 -0
- package/dist/components/listbox/listbox.recipe.mjs +169 -0
- package/dist/components/listbox/listbox.recipe.mjs.map +1 -0
- package/dist/components/machine-translations.mjs +8 -0
- package/dist/components/machine-translations.mjs.map +1 -0
- package/dist/components/marquee/index.d.mts +2 -0
- package/dist/components/marquee/index.mjs +2 -0
- package/dist/components/marquee/marquee.d.mts +53 -0
- package/dist/components/marquee/marquee.d.mts.map +1 -0
- package/dist/components/marquee/marquee.mjs +30 -0
- package/dist/components/marquee/marquee.mjs.map +1 -0
- package/dist/components/marquee/marquee.recipe.mjs +123 -0
- package/dist/components/marquee/marquee.recipe.mjs.map +1 -0
- package/dist/components/menu/index.d.mts +2 -0
- package/dist/components/menu/index.mjs +2 -0
- package/dist/components/menu/menu.d.mts +66 -0
- package/dist/components/menu/menu.d.mts.map +1 -0
- package/dist/components/menu/menu.mjs +68 -0
- package/dist/components/menu/menu.mjs.map +1 -0
- package/dist/components/menu/menu.recipe.mjs +285 -0
- package/dist/components/menu/menu.recipe.mjs.map +1 -0
- package/dist/components/navigation-menu/index.d.mts +2 -0
- package/dist/components/navigation-menu/index.mjs +2 -0
- package/dist/components/navigation-menu/navigation-menu.d.mts +42 -0
- package/dist/components/navigation-menu/navigation-menu.d.mts.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.mjs +47 -0
- package/dist/components/navigation-menu/navigation-menu.mjs.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.recipe.mjs +271 -0
- package/dist/components/navigation-menu/navigation-menu.recipe.mjs.map +1 -0
- package/dist/components/number-input/index.d.mts +2 -0
- package/dist/components/number-input/index.mjs +2 -0
- package/dist/components/number-input/number-input.d.mts +88 -0
- package/dist/components/number-input/number-input.d.mts.map +1 -0
- package/dist/components/number-input/number-input.mjs +70 -0
- package/dist/components/number-input/number-input.mjs.map +1 -0
- package/dist/components/number-input/number-input.recipe.mjs +231 -0
- package/dist/components/number-input/number-input.recipe.mjs.map +1 -0
- package/dist/components/pagination/index.d.mts +2 -0
- package/dist/components/pagination/index.mjs +2 -0
- package/dist/components/pagination/pagination.d.mts +51 -0
- package/dist/components/pagination/pagination.d.mts.map +1 -0
- package/dist/components/pagination/pagination.mjs +74 -0
- package/dist/components/pagination/pagination.mjs.map +1 -0
- package/dist/components/pagination/pagination.recipe.mjs +144 -0
- package/dist/components/pagination/pagination.recipe.mjs.map +1 -0
- package/dist/components/password-input/index.d.mts +2 -0
- package/dist/components/password-input/index.mjs +2 -0
- package/dist/components/password-input/password-input.d.mts +37 -0
- package/dist/components/password-input/password-input.d.mts.map +1 -0
- package/dist/components/password-input/password-input.mjs +58 -0
- package/dist/components/password-input/password-input.mjs.map +1 -0
- package/dist/components/password-input/password-input.recipe.mjs +180 -0
- package/dist/components/password-input/password-input.recipe.mjs.map +1 -0
- package/dist/components/pin-input/index.d.mts +2 -0
- package/dist/components/pin-input/index.mjs +2 -0
- package/dist/components/pin-input/pin-input.d.mts +68 -0
- package/dist/components/pin-input/pin-input.d.mts.map +1 -0
- package/dist/components/pin-input/pin-input.mjs +51 -0
- package/dist/components/pin-input/pin-input.mjs.map +1 -0
- package/dist/components/pin-input/pin-input.recipe.mjs +81 -0
- package/dist/components/pin-input/pin-input.recipe.mjs.map +1 -0
- package/dist/components/popover/index.d.mts +2 -0
- package/dist/components/popover/index.mjs +2 -0
- package/dist/components/popover/popover.d.mts +42 -0
- package/dist/components/popover/popover.d.mts.map +1 -0
- package/dist/components/popover/popover.mjs +50 -0
- package/dist/components/popover/popover.mjs.map +1 -0
- package/dist/components/popover/popover.recipe.mjs +162 -0
- package/dist/components/popover/popover.recipe.mjs.map +1 -0
- package/dist/components/progress/index.d.mts +2 -0
- package/dist/components/progress/index.mjs +2 -0
- package/dist/components/progress/progress.d.mts +31 -0
- package/dist/components/progress/progress.d.mts.map +1 -0
- package/dist/components/progress/progress.mjs +42 -0
- package/dist/components/progress/progress.mjs.map +1 -0
- package/dist/components/progress/progress.recipe.mjs +189 -0
- package/dist/components/progress/progress.recipe.mjs.map +1 -0
- package/dist/components/qr-code/index.d.mts +2 -0
- package/dist/components/qr-code/index.mjs +2 -0
- package/dist/components/qr-code/qr-code.d.mts +36 -0
- package/dist/components/qr-code/qr-code.d.mts.map +1 -0
- package/dist/components/qr-code/qr-code.mjs +41 -0
- package/dist/components/qr-code/qr-code.mjs.map +1 -0
- package/dist/components/qr-code/qr-code.recipe.mjs +70 -0
- package/dist/components/qr-code/qr-code.recipe.mjs.map +1 -0
- package/dist/components/radio-group/index.d.mts +2 -0
- package/dist/components/radio-group/index.mjs +2 -0
- package/dist/components/radio-group/radio-group.d.mts +33 -0
- package/dist/components/radio-group/radio-group.d.mts.map +1 -0
- package/dist/components/radio-group/radio-group.mjs +47 -0
- package/dist/components/radio-group/radio-group.mjs.map +1 -0
- package/dist/components/radio-group/radio-group.recipe.mjs +189 -0
- package/dist/components/radio-group/radio-group.recipe.mjs.map +1 -0
- package/dist/components/rating-group/index.d.mts +2 -0
- package/dist/components/rating-group/index.mjs +2 -0
- package/dist/components/rating-group/rating-group.d.mts +43 -0
- package/dist/components/rating-group/rating-group.d.mts.map +1 -0
- package/dist/components/rating-group/rating-group.mjs +39 -0
- package/dist/components/rating-group/rating-group.mjs.map +1 -0
- package/dist/components/rating-group/rating-group.recipe.mjs +133 -0
- package/dist/components/rating-group/rating-group.recipe.mjs.map +1 -0
- package/dist/components/scroll-area/index.d.mts +2 -0
- package/dist/components/scroll-area/index.mjs +2 -0
- package/dist/components/scroll-area/scroll-area.d.mts +12 -0
- package/dist/components/scroll-area/scroll-area.d.mts.map +1 -0
- package/dist/components/scroll-area/scroll-area.mjs +31 -0
- package/dist/components/scroll-area/scroll-area.mjs.map +1 -0
- package/dist/components/scroll-area/scroll-area.recipe.mjs +76 -0
- package/dist/components/scroll-area/scroll-area.recipe.mjs.map +1 -0
- package/dist/components/select/index.d.mts +2 -0
- package/dist/components/select/index.mjs +2 -0
- package/dist/components/select/select.d.mts +90 -0
- package/dist/components/select/select.d.mts.map +1 -0
- package/dist/components/select/select.mjs +83 -0
- package/dist/components/select/select.mjs.map +1 -0
- package/dist/components/select/select.recipe.mjs +298 -0
- package/dist/components/select/select.recipe.mjs.map +1 -0
- package/dist/components/separator/index.d.mts +2 -0
- package/dist/components/separator/index.mjs +2 -0
- package/dist/components/separator/separator.anatomy.mjs +8 -0
- package/dist/components/separator/separator.anatomy.mjs.map +1 -0
- package/dist/components/separator/separator.connect.mjs +28 -0
- package/dist/components/separator/separator.connect.mjs.map +1 -0
- package/dist/components/separator/separator.d.mts +11 -0
- package/dist/components/separator/separator.d.mts.map +1 -0
- package/dist/components/separator/separator.mjs +15 -0
- package/dist/components/separator/separator.mjs.map +1 -0
- package/dist/components/separator/separator.recipe.mjs +22 -0
- package/dist/components/separator/separator.recipe.mjs.map +1 -0
- package/dist/components/signature-pad/index.d.mts +2 -0
- package/dist/components/signature-pad/index.mjs +2 -0
- package/dist/components/signature-pad/signature-pad.d.mts +44 -0
- package/dist/components/signature-pad/signature-pad.d.mts.map +1 -0
- package/dist/components/signature-pad/signature-pad.mjs +90 -0
- package/dist/components/signature-pad/signature-pad.mjs.map +1 -0
- package/dist/components/signature-pad/signature-pad.recipe.mjs +111 -0
- package/dist/components/signature-pad/signature-pad.recipe.mjs.map +1 -0
- package/dist/components/skeleton/index.d.mts +2 -0
- package/dist/components/skeleton/index.mjs +2 -0
- package/dist/components/skeleton/skeleton.anatomy.mjs +8 -0
- package/dist/components/skeleton/skeleton.anatomy.mjs.map +1 -0
- package/dist/components/skeleton/skeleton.connect.mjs +26 -0
- package/dist/components/skeleton/skeleton.connect.mjs.map +1 -0
- package/dist/components/skeleton/skeleton.d.mts +9 -0
- package/dist/components/skeleton/skeleton.d.mts.map +1 -0
- package/dist/components/skeleton/skeleton.mjs +16 -0
- package/dist/components/skeleton/skeleton.mjs.map +1 -0
- package/dist/components/skeleton/skeleton.recipe.mjs +46 -0
- package/dist/components/skeleton/skeleton.recipe.mjs.map +1 -0
- package/dist/components/slider/index.d.mts +2 -0
- package/dist/components/slider/index.mjs +2 -0
- package/dist/components/slider/slider.d.mts +72 -0
- package/dist/components/slider/slider.d.mts.map +1 -0
- package/dist/components/slider/slider.mjs +34 -0
- package/dist/components/slider/slider.mjs.map +1 -0
- package/dist/components/slider/slider.recipe.mjs +219 -0
- package/dist/components/slider/slider.recipe.mjs.map +1 -0
- package/dist/components/snackbar/index.d.mts +2 -0
- package/dist/components/snackbar/index.mjs +2 -0
- package/dist/components/snackbar/snackbar.d.mts +57 -0
- package/dist/components/snackbar/snackbar.d.mts.map +1 -0
- package/dist/components/snackbar/snackbar.mjs +226 -0
- package/dist/components/snackbar/snackbar.mjs.map +1 -0
- package/dist/components/snackbar/snackbar.recipe.mjs +217 -0
- package/dist/components/snackbar/snackbar.recipe.mjs.map +1 -0
- package/dist/components/spinner/index.d.mts +2 -0
- package/dist/components/spinner/index.mjs +2 -0
- package/dist/components/spinner/spinner.anatomy.mjs +8 -0
- package/dist/components/spinner/spinner.anatomy.mjs.map +1 -0
- package/dist/components/spinner/spinner.connect.mjs +27 -0
- package/dist/components/spinner/spinner.connect.mjs.map +1 -0
- package/dist/components/spinner/spinner.d.mts +10 -0
- package/dist/components/spinner/spinner.d.mts.map +1 -0
- package/dist/components/spinner/spinner.mjs +25 -0
- package/dist/components/spinner/spinner.mjs.map +1 -0
- package/dist/components/spinner/spinner.recipe.mjs +70 -0
- package/dist/components/spinner/spinner.recipe.mjs.map +1 -0
- package/dist/components/splitter/index.d.mts +2 -0
- package/dist/components/splitter/index.mjs +2 -0
- package/dist/components/splitter/splitter.d.mts +57 -0
- package/dist/components/splitter/splitter.d.mts.map +1 -0
- package/dist/components/splitter/splitter.mjs +40 -0
- package/dist/components/splitter/splitter.mjs.map +1 -0
- package/dist/components/splitter/splitter.recipe.mjs +129 -0
- package/dist/components/splitter/splitter.recipe.mjs.map +1 -0
- package/dist/components/steps/index.d.mts +2 -0
- package/dist/components/steps/index.mjs +2 -0
- package/dist/components/steps/steps.d.mts +42 -0
- package/dist/components/steps/steps.d.mts.map +1 -0
- package/dist/components/steps/steps.mjs +72 -0
- package/dist/components/steps/steps.mjs.map +1 -0
- package/dist/components/steps/steps.recipe.mjs +291 -0
- package/dist/components/steps/steps.recipe.mjs.map +1 -0
- package/dist/components/switch/index.d.mts +2 -0
- package/dist/components/switch/index.mjs +2 -0
- package/dist/components/switch/switch.d.mts +36 -0
- package/dist/components/switch/switch.d.mts.map +1 -0
- package/dist/components/switch/switch.mjs +50 -0
- package/dist/components/switch/switch.mjs.map +1 -0
- package/dist/components/switch/switch.recipe.mjs +171 -0
- package/dist/components/switch/switch.recipe.mjs.map +1 -0
- package/dist/components/table/index.d.mts +2 -0
- package/dist/components/table/index.mjs +2 -0
- package/dist/components/table/table.anatomy.mjs +8 -0
- package/dist/components/table/table.anatomy.mjs.map +1 -0
- package/dist/components/table/table.connect.mjs +50 -0
- package/dist/components/table/table.connect.mjs.map +1 -0
- package/dist/components/table/table.d.mts +10 -0
- package/dist/components/table/table.d.mts.map +1 -0
- package/dist/components/table/table.mjs +90 -0
- package/dist/components/table/table.mjs.map +1 -0
- package/dist/components/table/table.recipe.mjs +186 -0
- package/dist/components/table/table.recipe.mjs.map +1 -0
- package/dist/components/tabs/index.d.mts +2 -0
- package/dist/components/tabs/index.mjs +2 -0
- package/dist/components/tabs/tabs.d.mts +40 -0
- package/dist/components/tabs/tabs.d.mts.map +1 -0
- package/dist/components/tabs/tabs.mjs +23 -0
- package/dist/components/tabs/tabs.mjs.map +1 -0
- package/dist/components/tabs/tabs.recipe.mjs +182 -0
- package/dist/components/tabs/tabs.recipe.mjs.map +1 -0
- package/dist/components/tags-input/index.d.mts +2 -0
- package/dist/components/tags-input/index.mjs +2 -0
- package/dist/components/tags-input/tags-input.d.mts +77 -0
- package/dist/components/tags-input/tags-input.d.mts.map +1 -0
- package/dist/components/tags-input/tags-input.mjs +103 -0
- package/dist/components/tags-input/tags-input.mjs.map +1 -0
- package/dist/components/tags-input/tags-input.recipe.mjs +320 -0
- package/dist/components/tags-input/tags-input.recipe.mjs.map +1 -0
- package/dist/components/textarea/index.d.mts +2 -0
- package/dist/components/textarea/index.mjs +2 -0
- package/dist/components/textarea/textarea.anatomy.mjs +8 -0
- package/dist/components/textarea/textarea.anatomy.mjs.map +1 -0
- package/dist/components/textarea/textarea.connect.mjs +82 -0
- package/dist/components/textarea/textarea.connect.mjs.map +1 -0
- package/dist/components/textarea/textarea.d.mts +32 -0
- package/dist/components/textarea/textarea.d.mts.map +1 -0
- package/dist/components/textarea/textarea.mjs +41 -0
- package/dist/components/textarea/textarea.mjs.map +1 -0
- package/dist/components/textarea/textarea.recipe.mjs +58 -0
- package/dist/components/textarea/textarea.recipe.mjs.map +1 -0
- package/dist/components/timer/index.d.mts +2 -0
- package/dist/components/timer/index.mjs +2 -0
- package/dist/components/timer/timer.d.mts +31 -0
- package/dist/components/timer/timer.d.mts.map +1 -0
- package/dist/components/timer/timer.mjs +98 -0
- package/dist/components/timer/timer.mjs.map +1 -0
- package/dist/components/timer/timer.recipe.mjs +99 -0
- package/dist/components/timer/timer.recipe.mjs.map +1 -0
- package/dist/components/toast/index.d.mts +2 -0
- package/dist/components/toast/index.mjs +2 -0
- package/dist/components/toast/toast.d.mts +55 -0
- package/dist/components/toast/toast.d.mts.map +1 -0
- package/dist/components/toast/toast.mjs +194 -0
- package/dist/components/toast/toast.mjs.map +1 -0
- package/dist/components/toast/toast.recipe.mjs +172 -0
- package/dist/components/toast/toast.recipe.mjs.map +1 -0
- package/dist/components/toc/index.d.mts +2 -0
- package/dist/components/toc/index.mjs +2 -0
- package/dist/components/toc/toc.d.mts +47 -0
- package/dist/components/toc/toc.d.mts.map +1 -0
- package/dist/components/toc/toc.mjs +239 -0
- package/dist/components/toc/toc.mjs.map +1 -0
- package/dist/components/toc/toc.recipe.mjs +147 -0
- package/dist/components/toc/toc.recipe.mjs.map +1 -0
- package/dist/components/toggle/index.d.mts +2 -0
- package/dist/components/toggle/index.mjs +2 -0
- package/dist/components/toggle/toggle.d.mts +21 -0
- package/dist/components/toggle/toggle.d.mts.map +1 -0
- package/dist/components/toggle/toggle.mjs +34 -0
- package/dist/components/toggle/toggle.mjs.map +1 -0
- package/dist/components/toggle/toggle.recipe.mjs +175 -0
- package/dist/components/toggle/toggle.recipe.mjs.map +1 -0
- package/dist/components/toggle-group/index.d.mts +2 -0
- package/dist/components/toggle-group/index.mjs +2 -0
- package/dist/components/toggle-group/toggle-group.d.mts +29 -0
- package/dist/components/toggle-group/toggle-group.d.mts.map +1 -0
- package/dist/components/toggle-group/toggle-group.mjs +18 -0
- package/dist/components/toggle-group/toggle-group.mjs.map +1 -0
- package/dist/components/toggle-group/toggle-group.recipe.mjs +190 -0
- package/dist/components/toggle-group/toggle-group.recipe.mjs.map +1 -0
- package/dist/components/tooltip/index.d.mts +2 -0
- package/dist/components/tooltip/index.mjs +2 -0
- package/dist/components/tooltip/tooltip.d.mts +66 -0
- package/dist/components/tooltip/tooltip.d.mts.map +1 -0
- package/dist/components/tooltip/tooltip.mjs +64 -0
- package/dist/components/tooltip/tooltip.mjs.map +1 -0
- package/dist/components/tooltip/tooltip.recipe.mjs +149 -0
- package/dist/components/tooltip/tooltip.recipe.mjs.map +1 -0
- package/dist/components/tour/index.d.mts +2 -0
- package/dist/components/tour/index.mjs +2 -0
- package/dist/components/tour/tour.d.mts +92 -0
- package/dist/components/tour/tour.d.mts.map +1 -0
- package/dist/components/tour/tour.mjs +89 -0
- package/dist/components/tour/tour.mjs.map +1 -0
- package/dist/components/tour/tour.recipe.mjs +164 -0
- package/dist/components/tour/tour.recipe.mjs.map +1 -0
- package/dist/components/tree-view/index.d.mts +2 -0
- package/dist/components/tree-view/index.mjs +2 -0
- package/dist/components/tree-view/tree-view.d.mts +108 -0
- package/dist/components/tree-view/tree-view.d.mts.map +1 -0
- package/dist/components/tree-view/tree-view.mjs +145 -0
- package/dist/components/tree-view/tree-view.mjs.map +1 -0
- package/dist/components/tree-view/tree-view.recipe.mjs +458 -0
- package/dist/components/tree-view/tree-view.recipe.mjs.map +1 -0
- package/dist/icons/src/calendar.mjs +13 -0
- package/dist/icons/src/calendar.mjs.map +1 -0
- package/dist/icons/src/checkmark.mjs +13 -0
- package/dist/icons/src/checkmark.mjs.map +1 -0
- package/dist/icons/src/chevron-down.mjs +13 -0
- package/dist/icons/src/chevron-down.mjs.map +1 -0
- package/dist/icons/src/chevron-left.mjs +13 -0
- package/dist/icons/src/chevron-left.mjs.map +1 -0
- package/dist/icons/src/chevron-right.mjs +13 -0
- package/dist/icons/src/chevron-right.mjs.map +1 -0
- package/dist/icons/src/chevron-up.mjs +13 -0
- package/dist/icons/src/chevron-up.mjs.map +1 -0
- package/dist/icons/src/chevrons-left.mjs +13 -0
- package/dist/icons/src/chevrons-left.mjs.map +1 -0
- package/dist/icons/src/chevrons-right.mjs +13 -0
- package/dist/icons/src/chevrons-right.mjs.map +1 -0
- package/dist/icons/src/chevrons-up-down.mjs +13 -0
- package/dist/icons/src/chevrons-up-down.mjs.map +1 -0
- package/dist/icons/src/close.mjs +13 -0
- package/dist/icons/src/close.mjs.map +1 -0
- package/dist/icons/src/copy.mjs +13 -0
- package/dist/icons/src/copy.mjs.map +1 -0
- package/dist/icons/src/edit.mjs +13 -0
- package/dist/icons/src/edit.mjs.map +1 -0
- package/dist/icons/src/error.mjs +13 -0
- package/dist/icons/src/error.mjs.map +1 -0
- package/dist/icons/src/eyedropper.mjs +13 -0
- package/dist/icons/src/eyedropper.mjs.map +1 -0
- package/dist/icons/src/file.mjs +13 -0
- package/dist/icons/src/file.mjs.map +1 -0
- package/dist/icons/src/hide.mjs +13 -0
- package/dist/icons/src/hide.mjs.map +1 -0
- package/dist/icons/src/index.mjs +58 -0
- package/dist/icons/src/index.mjs.map +1 -0
- package/dist/icons/src/info.mjs +13 -0
- package/dist/icons/src/info.mjs.map +1 -0
- package/dist/icons/src/maximize.mjs +13 -0
- package/dist/icons/src/maximize.mjs.map +1 -0
- package/dist/icons/src/minus.mjs +13 -0
- package/dist/icons/src/minus.mjs.map +1 -0
- package/dist/icons/src/pause.mjs +13 -0
- package/dist/icons/src/pause.mjs.map +1 -0
- package/dist/icons/src/play.mjs +13 -0
- package/dist/icons/src/play.mjs.map +1 -0
- package/dist/icons/src/reset.mjs +13 -0
- package/dist/icons/src/reset.mjs.map +1 -0
- package/dist/icons/src/restore.mjs +13 -0
- package/dist/icons/src/restore.mjs.map +1 -0
- package/dist/icons/src/show.mjs +13 -0
- package/dist/icons/src/show.mjs.map +1 -0
- package/dist/icons/src/star.mjs +13 -0
- package/dist/icons/src/star.mjs.map +1 -0
- package/dist/icons/src/success.mjs +2 -0
- package/dist/icons/src/trash.mjs +13 -0
- package/dist/icons/src/trash.mjs.map +1 -0
- package/dist/icons/src/user.mjs +13 -0
- package/dist/icons/src/user.mjs.map +1 -0
- package/dist/icons/src/warning.mjs +13 -0
- package/dist/icons/src/warning.mjs.map +1 -0
- package/dist/index.d.mts +139 -0
- package/dist/index.mjs +71 -0
- package/dist/preset.d.mts +2 -0
- package/dist/preset.mjs +2 -0
- package/dist/provider/locale-context.mjs +36 -0
- package/dist/provider/locale-context.mjs.map +1 -0
- package/dist/provider/synapse-provider.d.mts +17 -0
- package/dist/provider/synapse-provider.d.mts.map +1 -0
- package/dist/provider/synapse-provider.mjs +59 -0
- package/dist/provider/synapse-provider.mjs.map +1 -0
- package/dist/provider/translations.d.mts +179 -0
- package/dist/provider/translations.d.mts.map +1 -0
- package/dist/provider/translations.mjs +201 -0
- package/dist/provider/translations.mjs.map +1 -0
- package/dist/provider/use-theme.d.mts +7 -0
- package/dist/provider/use-theme.d.mts.map +1 -0
- package/dist/provider/use-theme.mjs +37 -0
- package/dist/provider/use-theme.mjs.map +1 -0
- package/dist/react/styled-system/css/conditions.mjs +29 -0
- package/dist/react/styled-system/css/conditions.mjs.map +1 -0
- package/dist/react/styled-system/css/css.mjs +39 -0
- package/dist/react/styled-system/css/css.mjs.map +1 -0
- package/dist/react/styled-system/css/cva.mjs +66 -0
- package/dist/react/styled-system/css/cva.mjs.map +1 -0
- package/dist/react/styled-system/css/cx.mjs +13 -0
- package/dist/react/styled-system/css/cx.mjs.map +1 -0
- package/dist/react/styled-system/css/sva.mjs +44 -0
- package/dist/react/styled-system/css/sva.mjs.map +1 -0
- package/dist/react/styled-system/helpers.mjs +231 -0
- package/dist/react/styled-system/helpers.mjs.map +1 -0
- package/dist/shared/button-style.mjs +10 -0
- package/dist/shared/button-style.mjs.map +1 -0
- package/dist/shared/character-count.mjs +29 -0
- package/dist/shared/character-count.mjs.map +1 -0
- package/dist/shared/collection-internal.mjs +24 -0
- package/dist/shared/collection-internal.mjs.map +1 -0
- package/dist/shared/collection.d.mts +120 -0
- package/dist/shared/collection.d.mts.map +1 -0
- package/dist/shared/collection.mjs +395 -0
- package/dist/shared/collection.mjs.map +1 -0
- package/dist/shared/controller.d.mts +4 -0
- package/dist/shared/controller.d.mts.map +1 -0
- package/dist/shared/controller.mjs +53 -0
- package/dist/shared/controller.mjs.map +1 -0
- package/dist/shared/field-context.mjs +47 -0
- package/dist/shared/field-context.mjs.map +1 -0
- package/dist/shared/field-description.mjs +13 -0
- package/dist/shared/field-description.mjs.map +1 -0
- package/dist/shared/icon.mjs +23 -0
- package/dist/shared/icon.mjs.map +1 -0
- package/dist/shared/input-modality.mjs +47 -0
- package/dist/shared/input-modality.mjs.map +1 -0
- package/dist/shared/input-style.mjs +10 -0
- package/dist/shared/input-style.mjs.map +1 -0
- package/dist/shared/layering.d.mts +17 -0
- package/dist/shared/layering.d.mts.map +1 -0
- package/dist/shared/layering.mjs +37 -0
- package/dist/shared/layering.mjs.map +1 -0
- package/dist/shared/notification.d.mts +10 -0
- package/dist/shared/notification.d.mts.map +1 -0
- package/dist/shared/notification.mjs +105 -0
- package/dist/shared/notification.mjs.map +1 -0
- package/dist/shared/reduced-motion.mjs +19 -0
- package/dist/shared/reduced-motion.mjs.map +1 -0
- package/dist/shared/select-indicator.mjs +40 -0
- package/dist/shared/select-indicator.mjs.map +1 -0
- package/dist/shared/size-scale.d.mts +6 -0
- package/dist/shared/size-scale.d.mts.map +1 -0
- package/dist/shared/size-scale.mjs +28 -0
- package/dist/shared/size-scale.mjs.map +1 -0
- package/dist/shared/state-parts.mjs +123 -0
- package/dist/shared/state-parts.mjs.map +1 -0
- package/dist/shared/text-entry.mjs +54 -0
- package/dist/shared/text-entry.mjs.map +1 -0
- package/dist/styles.css +6238 -0
- package/dist/system/as-child.mjs +42 -0
- package/dist/system/as-child.mjs.map +1 -0
- package/dist/system/context.mjs +54 -0
- package/dist/system/context.mjs.map +1 -0
- package/dist/system/controlled.mjs +45 -0
- package/dist/system/controlled.mjs.map +1 -0
- package/dist/system/create-component.mjs +285 -0
- package/dist/system/create-component.mjs.map +1 -0
- package/dist/system/create-part.mjs +123 -0
- package/dist/system/create-part.mjs.map +1 -0
- package/dist/system/dev-warn.mjs +13 -0
- package/dist/system/dev-warn.mjs.map +1 -0
- package/dist/system/getters.mjs +24 -0
- package/dist/system/getters.mjs.map +1 -0
- package/dist/system/merge-props.d.mts +5 -0
- package/dist/system/merge-props.d.mts.map +1 -0
- package/dist/system/merge-props.mjs +95 -0
- package/dist/system/merge-props.mjs.map +1 -0
- package/dist/system/react-node.mjs +17 -0
- package/dist/system/react-node.mjs.map +1 -0
- package/dist/system/refs.mjs +21 -0
- package/dist/system/refs.mjs.map +1 -0
- package/dist/system/styled-component.mjs +15 -0
- package/dist/system/styled-component.mjs.map +1 -0
- package/dist/system/types.d.mts +47 -0
- package/dist/system/types.d.mts.map +1 -0
- package/dist/tokens/dist/preset.d.mts +6 -0
- package/dist/tokens/dist/preset.d.mts.map +1 -0
- package/dist/tokens/dist/preset.mjs +997 -0
- package/dist/tokens/dist/preset.mjs.map +1 -0
- package/package.json +409 -4
- package/skills/components/accordion/SKILL.md +138 -0
- package/skills/components/alert/SKILL.md +126 -0
- package/skills/components/angle-slider/SKILL.md +155 -0
- package/skills/components/avatar/SKILL.md +123 -0
- package/skills/components/badge/SKILL.md +117 -0
- package/skills/components/breadcrumb/SKILL.md +128 -0
- package/skills/components/button/SKILL.md +122 -0
- package/skills/components/card/SKILL.md +126 -0
- package/skills/components/carousel/SKILL.md +176 -0
- package/skills/components/cascade-select/SKILL.md +206 -0
- package/skills/components/checkbox/SKILL.md +149 -0
- package/skills/components/clipboard/SKILL.md +139 -0
- package/skills/components/collapsible/SKILL.md +130 -0
- package/skills/components/color-picker/SKILL.md +216 -0
- package/skills/components/combobox/SKILL.md +218 -0
- package/skills/components/date-input/SKILL.md +157 -0
- package/skills/components/date-picker/SKILL.md +235 -0
- package/skills/components/dialog/SKILL.md +159 -0
- package/skills/components/drawer/SKILL.md +192 -0
- package/skills/components/editable/SKILL.md +162 -0
- package/skills/components/empty-state/SKILL.md +125 -0
- package/skills/components/field/SKILL.md +133 -0
- package/skills/components/fieldset/SKILL.md +123 -0
- package/skills/components/file-upload/SKILL.md +184 -0
- package/skills/components/floating-panel/SKILL.md +206 -0
- package/skills/components/hover-card/SKILL.md +173 -0
- package/skills/components/image-cropper/SKILL.md +158 -0
- package/skills/components/input/SKILL.md +131 -0
- package/skills/components/kbd/SKILL.md +116 -0
- package/skills/components/listbox/SKILL.md +172 -0
- package/skills/components/marquee/SKILL.md +151 -0
- package/skills/components/menu/SKILL.md +202 -0
- package/skills/components/navigation-menu/SKILL.md +172 -0
- package/skills/components/number-input/SKILL.md +177 -0
- package/skills/components/pagination/SKILL.md +159 -0
- package/skills/components/password-input/SKILL.md +156 -0
- package/skills/components/pin-input/SKILL.md +157 -0
- package/skills/components/popover/SKILL.md +166 -0
- package/skills/components/progress/SKILL.md +144 -0
- package/skills/components/qr-code/SKILL.md +132 -0
- package/skills/components/radio-group/SKILL.md +153 -0
- package/skills/components/rating-group/SKILL.md +151 -0
- package/skills/components/scroll-area/SKILL.md +149 -0
- package/skills/components/select/SKILL.md +202 -0
- package/skills/components/separator/SKILL.md +114 -0
- package/skills/components/signature-pad/SKILL.md +161 -0
- package/skills/components/skeleton/SKILL.md +114 -0
- package/skills/components/slider/SKILL.md +178 -0
- package/skills/components/snackbar/SKILL.md +154 -0
- package/skills/components/spinner/SKILL.md +122 -0
- package/skills/components/splitter/SKILL.md +136 -0
- package/skills/components/steps/SKILL.md +150 -0
- package/skills/components/switch/SKILL.md +144 -0
- package/skills/components/table/SKILL.md +144 -0
- package/skills/components/tabs/SKILL.md +138 -0
- package/skills/components/tags-input/SKILL.md +194 -0
- package/skills/components/textarea/SKILL.md +131 -0
- package/skills/components/timer/SKILL.md +142 -0
- package/skills/components/toast/SKILL.md +129 -0
- package/skills/components/toc/SKILL.md +141 -0
- package/skills/components/toggle/SKILL.md +125 -0
- package/skills/components/toggle-group/SKILL.md +129 -0
- package/skills/components/tooltip/SKILL.md +188 -0
- package/skills/components/tour/SKILL.md +158 -0
- package/skills/components/tree-view/SKILL.md +180 -0
- package/skills/synapse/SKILL.md +301 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { mergeSynapseProps } from "../system/merge-props.mjs";
|
|
3
|
+
import { devWarn } from "../system/dev-warn.mjs";
|
|
4
|
+
import { SynapseDefinitionError, SynapseStructuralError } from "../system/context.mjs";
|
|
5
|
+
import { createContext, createElement, useContext } from "react";
|
|
6
|
+
import { visuallyHiddenStyle } from "@zag-js/dom-query";
|
|
7
|
+
//#region src/shared/state-parts.ts
|
|
8
|
+
const STATE_PARTS = [
|
|
9
|
+
"error",
|
|
10
|
+
"loading",
|
|
11
|
+
"empty"
|
|
12
|
+
];
|
|
13
|
+
const EMPTY_SLOTS = Object.freeze({});
|
|
14
|
+
const partNameFor = (state) => `${state.charAt(0).toUpperCase()}${state.slice(1)}`;
|
|
15
|
+
const scopeOf = (componentName) => componentName.replaceAll(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
16
|
+
const ANNOUNCEMENT = {
|
|
17
|
+
error: {
|
|
18
|
+
role: "alert",
|
|
19
|
+
live: "assertive"
|
|
20
|
+
},
|
|
21
|
+
loading: {
|
|
22
|
+
role: "status",
|
|
23
|
+
live: "polite"
|
|
24
|
+
},
|
|
25
|
+
empty: {
|
|
26
|
+
role: "status",
|
|
27
|
+
live: "polite"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
function hasContent(children) {
|
|
31
|
+
if (children === null || children === void 0 || children === false || children === true) return false;
|
|
32
|
+
if (typeof children === "string") return children !== "";
|
|
33
|
+
if (Array.isArray(children)) return children.some(hasContent);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
function hasEveryPart(parts, declared) {
|
|
37
|
+
return declared.every((state) => typeof parts[partNameFor(state)] === "function");
|
|
38
|
+
}
|
|
39
|
+
function createStateParts(definition) {
|
|
40
|
+
const { component, when, absent, slots } = definition;
|
|
41
|
+
const isDeclared = (state) => Object.hasOwn(when, state);
|
|
42
|
+
const reasonOf = (state) => {
|
|
43
|
+
const reason = Reflect.get(absent, state);
|
|
44
|
+
return typeof reason === "string" ? reason : void 0;
|
|
45
|
+
};
|
|
46
|
+
const scope = scopeOf(component);
|
|
47
|
+
for (const state of Object.keys(when)) if (!STATE_PARTS.some((known) => known === state)) throw new SynapseDefinitionError(`${component}: "${state}" is not a state part. The vocabulary is ${STATE_PARTS.join(", ")}, and it is a closed set so a consumer learns it once.`);
|
|
48
|
+
const declared = STATE_PARTS.filter(isDeclared);
|
|
49
|
+
for (const state of STATE_PARTS) {
|
|
50
|
+
const reason = reasonOf(state);
|
|
51
|
+
if (isDeclared(state) && reason !== void 0) throw new SynapseDefinitionError(`${component}: "${state}" is declared in both \`when\` and \`absent\`. One of them is describing a component that does not exist.`);
|
|
52
|
+
if (!isDeclared(state) && (reason === void 0 || reason.trim() === "")) throw new SynapseDefinitionError(`${component}: "${state}" is neither declared nor recorded as absent. A state a component does not have must SAY so with a reason — silence is indistinguishable from an oversight, and the Registry cannot tell a consumer which one it is looking at.`);
|
|
53
|
+
}
|
|
54
|
+
const Context = createContext(null);
|
|
55
|
+
Context.displayName = `${component}StateContext`;
|
|
56
|
+
const resolveActive = (props) => {
|
|
57
|
+
for (const state of STATE_PARTS) {
|
|
58
|
+
if (!isDeclared(state)) continue;
|
|
59
|
+
const predicate = when[state];
|
|
60
|
+
if (predicate(props)) return state;
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
};
|
|
64
|
+
function buildPart(state) {
|
|
65
|
+
const partName = partNameFor(state);
|
|
66
|
+
const displayName = `${component}.${partName}`;
|
|
67
|
+
const { role, live } = ANNOUNCEMENT[state];
|
|
68
|
+
function StatePart(props) {
|
|
69
|
+
const context = useContext(Context);
|
|
70
|
+
if (context === null) throw new SynapseStructuralError({
|
|
71
|
+
component,
|
|
72
|
+
part: partName,
|
|
73
|
+
requiredRoot: "Root",
|
|
74
|
+
reason: `must be rendered inside <${component}.Root>. A state part reads from the root whether its state applies, and has no way to know outside it.`
|
|
75
|
+
});
|
|
76
|
+
const { children, ref, asChild, ...rest } = props;
|
|
77
|
+
devWarn(asChild === true, `<${displayName}> does not support \`asChild\`. It is a live region wrapped around your content rather than an element standing in for one, and substituting it would move the announcement onto an element whose lifetime the consumer controls.`);
|
|
78
|
+
if (!hasContent(children)) return null;
|
|
79
|
+
const active = context.active === state;
|
|
80
|
+
const slotClass = active ? context.slotClasses[state] : void 0;
|
|
81
|
+
const behaviorProps = {
|
|
82
|
+
role,
|
|
83
|
+
"aria-live": live,
|
|
84
|
+
"data-scope": scope,
|
|
85
|
+
"data-part": state,
|
|
86
|
+
"data-state": active ? "active" : "inactive",
|
|
87
|
+
...active ? {} : { style: visuallyHiddenStyle }
|
|
88
|
+
};
|
|
89
|
+
const elementProps = mergeSynapseProps(behaviorProps, slotClass === void 0 ? void 0 : { className: slotClass }, rest);
|
|
90
|
+
elementProps["ref"] = ref;
|
|
91
|
+
return createElement("div", elementProps, active ? children : null);
|
|
92
|
+
}
|
|
93
|
+
StatePart.displayName = displayName;
|
|
94
|
+
return StatePart;
|
|
95
|
+
}
|
|
96
|
+
const parts = Object.fromEntries(declared.map((state) => [partNameFor(state), buildPart(state)]));
|
|
97
|
+
if (!hasEveryPart(parts, declared)) throw new SynapseDefinitionError(`${component}: a state part was not built.`);
|
|
98
|
+
function wrapRoot(root) {
|
|
99
|
+
function StateRoot(props) {
|
|
100
|
+
return createElement(Context.Provider, { value: {
|
|
101
|
+
active: resolveActive(props),
|
|
102
|
+
slotClasses: slots?.(props) ?? EMPTY_SLOTS
|
|
103
|
+
} }, createElement(root, props));
|
|
104
|
+
}
|
|
105
|
+
StateRoot.displayName = root.displayName ?? `${component}.Root`;
|
|
106
|
+
return StateRoot;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
parts,
|
|
110
|
+
wrapRoot,
|
|
111
|
+
meta: {
|
|
112
|
+
statePartNames: STATE_PARTS.filter(isDeclared).map(partNameFor),
|
|
113
|
+
stateAbsences: STATE_PARTS.filter((state) => !isDeclared(state)).map((state) => ({
|
|
114
|
+
state,
|
|
115
|
+
reason: reasonOf(state) ?? ""
|
|
116
|
+
}))
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
export { STATE_PARTS, createStateParts };
|
|
122
|
+
|
|
123
|
+
//# sourceMappingURL=state-parts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-parts.mjs","names":["consumerProps"],"sources":["../../src/shared/state-parts.ts"],"sourcesContent":["'use client'\n\nimport { visuallyHiddenStyle } from '@zag-js/dom-query'\nimport { createContext, createElement, useContext, type ReactNode, type Ref } from 'react'\n\nimport { SynapseStructuralError } from '#/system/context.ts'\nimport { SynapseDefinitionError } from '#/system/create-component.ts'\nimport { devWarn } from '#/system/dev-warn.ts'\nimport { mergeSynapseProps, type Props } from '#/system/merge-props.ts'\nimport type { PartComponent } from '#/system/types.ts'\n\nexport const STATE_PARTS: readonly ['error', 'loading', 'empty'] = ['error', 'loading', 'empty']\n\nexport type StateName = (typeof STATE_PARTS)[number]\n\nconst EMPTY_SLOTS: Readonly<Record<string, string | undefined>> = Object.freeze({})\n\nconst partNameFor = (state: StateName): string =>\n `${state.charAt(0).toUpperCase()}${state.slice(1)}`\n\nconst scopeOf = (componentName: string): string =>\n componentName.replaceAll(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()\n\nconst ANNOUNCEMENT: Readonly<Record<StateName, { role: string; live: 'polite' | 'assertive' }>> = {\n error: { role: 'alert', live: 'assertive' },\n loading: { role: 'status', live: 'polite' },\n empty: { role: 'status', live: 'polite' },\n}\n\ninterface StateContextValue {\n readonly active: StateName | null\n readonly slotClasses: Readonly<Record<string, string | undefined>>\n}\n\nexport interface StatePartsDefinition<TRootProps, TState extends StateName> {\n component: string\n when: Readonly<Record<TState, (props: TRootProps) => boolean>>\n absent: Readonly<Record<Exclude<StateName, TState>, string>>\n slots?: (props: TRootProps) => Record<string, string | undefined>\n}\n\nexport interface StatePartAbsence {\n readonly state: StateName\n readonly reason: string\n}\n\nexport interface StatePartsMeta {\n readonly statePartNames: readonly string[]\n readonly stateAbsences: readonly StatePartAbsence[]\n}\n\ntype StatePartComponents<TState extends StateName> = {\n [K in TState as Capitalize<K>]: PartComponent<HTMLElement, Record<string, unknown>>\n}\n\ntype StatePartRuntimeProps = Record<string, unknown> & {\n children?: ReactNode\n ref?: Ref<HTMLElement>\n asChild?: boolean\n}\n\nfunction hasContent(children: unknown): boolean {\n if (children === null || children === undefined || children === false || children === true) {\n return false\n }\n if (typeof children === 'string') return children !== ''\n if (Array.isArray(children)) return children.some(hasContent)\n return true\n}\n\ntype RootLike<TProps> = ((props: TProps) => ReactNode) & { readonly displayName?: string }\n\nfunction hasEveryPart<TState extends StateName>(\n parts: Readonly<Record<string, unknown>>,\n declared: readonly TState[],\n): parts is Readonly<Record<string, unknown>> & StatePartComponents<TState> {\n return declared.every((state) => typeof parts[partNameFor(state)] === 'function')\n}\n\nexport function createStateParts<TRootProps, TState extends StateName>(\n definition: StatePartsDefinition<TRootProps, TState>,\n): {\n parts: StatePartComponents<TState>\n wrapRoot: <TProps extends TRootProps & object>(\n root: RootLike<TProps>,\n ) => ((props: TProps) => ReactNode) & { readonly displayName: string }\n meta: StatePartsMeta\n} {\n const { component, when, absent, slots } = definition\n const isDeclared = (state: StateName): state is TState => Object.hasOwn(when, state)\n const reasonOf = (state: StateName): string | undefined => {\n const reason: unknown = Reflect.get(absent, state)\n return typeof reason === 'string' ? reason : undefined\n }\n const scope = scopeOf(component)\n\n for (const state of Object.keys(when)) {\n if (!STATE_PARTS.some((known) => known === state)) {\n throw new SynapseDefinitionError(\n `${component}: \"${state}\" is not a state part. The vocabulary is ` +\n `${STATE_PARTS.join(', ')}, and it is a closed set so a consumer learns it once.`,\n )\n }\n }\n\n const declared: readonly TState[] = STATE_PARTS.filter(isDeclared)\n\n for (const state of STATE_PARTS) {\n const reason = reasonOf(state)\n if (isDeclared(state) && reason !== undefined) {\n throw new SynapseDefinitionError(\n `${component}: \"${state}\" is declared in both \\`when\\` and \\`absent\\`. One of them is ` +\n `describing a component that does not exist.`,\n )\n }\n if (!isDeclared(state) && (reason === undefined || reason.trim() === '')) {\n throw new SynapseDefinitionError(\n `${component}: \"${state}\" is neither declared nor recorded as absent. A state a ` +\n `component does not have must SAY so with a reason — silence is ` +\n `indistinguishable from an oversight, and the Registry cannot tell a consumer which ` +\n `one it is looking at.`,\n )\n }\n }\n\n const Context = createContext<StateContextValue | null>(null)\n Context.displayName = `${component}StateContext`\n\n const resolveActive = (props: TRootProps): StateName | null => {\n for (const state of STATE_PARTS) {\n if (!isDeclared(state)) continue\n const predicate = when[state]\n if (predicate(props)) return state\n }\n return null\n }\n\n function buildPart(state: StateName): PartComponent<HTMLElement, Record<string, unknown>> {\n const partName = partNameFor(state)\n const displayName = `${component}.${partName}`\n const { role, live } = ANNOUNCEMENT[state]\n\n function StatePart(props: StatePartRuntimeProps): ReactNode {\n const context = useContext(Context)\n if (context === null) {\n throw new SynapseStructuralError({\n component,\n part: partName,\n requiredRoot: 'Root',\n reason:\n `must be rendered inside <${component}.Root>. A state part reads from the root ` +\n `whether its state applies, and has no way to know outside it.`,\n })\n }\n\n const { children, ref, asChild, ...rest } = props\n\n devWarn(\n asChild === true,\n `<${displayName}> does not support \\`asChild\\`. It is a live region wrapped around ` +\n `your content rather than an element standing in for one, and substituting it would ` +\n `move the announcement onto an element whose lifetime the consumer controls.`,\n )\n\n if (!hasContent(children)) return null\n\n const active = context.active === state\n const slotClass = active ? context.slotClasses[state] : undefined\n\n const behaviorProps: Props = {\n role,\n 'aria-live': live,\n 'data-scope': scope,\n 'data-part': state,\n 'data-state': active ? 'active' : 'inactive',\n ...(active ? {} : { style: visuallyHiddenStyle }),\n }\n const styleProps: Props | undefined =\n slotClass === undefined ? undefined : { className: slotClass }\n\n const consumerProps: Props = rest\n const elementProps = mergeSynapseProps(behaviorProps, styleProps, consumerProps)\n elementProps['ref'] = ref\n\n return createElement('div', elementProps, active ? children : null)\n }\n\n StatePart.displayName = displayName\n return StatePart\n }\n\n const parts: Record<string, unknown> = Object.fromEntries(\n declared.map((state) => [partNameFor(state), buildPart(state)]),\n )\n if (!hasEveryPart<TState>(parts, declared)) {\n throw new SynapseDefinitionError(`${component}: a state part was not built.`)\n }\n\n function wrapRoot<TProps extends TRootProps & object>(\n root: RootLike<TProps>,\n ): ((props: TProps) => ReactNode) & { readonly displayName: string } {\n function StateRoot(props: TProps): ReactNode {\n return createElement(\n Context.Provider,\n {\n value: {\n active: resolveActive(props),\n slotClasses: slots?.(props) ?? EMPTY_SLOTS,\n },\n },\n createElement(root, props),\n )\n }\n StateRoot.displayName = root.displayName ?? `${component}.Root`\n return StateRoot\n }\n\n const meta: StatePartsMeta = {\n statePartNames: STATE_PARTS.filter(isDeclared).map(partNameFor),\n stateAbsences: STATE_PARTS.filter((state) => !isDeclared(state)).map((state) => ({\n state,\n reason: reasonOf(state) ?? '',\n })),\n }\n\n return { parts, wrapRoot, meta }\n}\n"],"mappings":";;;;;;;AAWA,MAAa,cAAsD;CAAC;CAAS;CAAW;AAAO;AAI/F,MAAM,cAA4D,OAAO,OAAO,CAAC,CAAC;AAElF,MAAM,eAAe,UACnB,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,MAAM,MAAM,CAAC;AAElD,MAAM,WAAW,kBACf,cAAc,WAAW,sBAAsB,OAAO,CAAC,CAAC,YAAY;AAEtE,MAAM,eAA4F;CAChG,OAAO;EAAE,MAAM;EAAS,MAAM;CAAY;CAC1C,SAAS;EAAE,MAAM;EAAU,MAAM;CAAS;CAC1C,OAAO;EAAE,MAAM;EAAU,MAAM;CAAS;AAC1C;AAkCA,SAAS,WAAW,UAA4B;CAC9C,IAAI,aAAa,QAAQ,aAAa,KAAA,KAAa,aAAa,SAAS,aAAa,MACpF,OAAO;CAET,IAAI,OAAO,aAAa,UAAU,OAAO,aAAa;CACtD,IAAI,MAAM,QAAQ,QAAQ,GAAG,OAAO,SAAS,KAAK,UAAU;CAC5D,OAAO;AACT;AAIA,SAAS,aACP,OACA,UAC0E;CAC1E,OAAO,SAAS,OAAO,UAAU,OAAO,MAAM,YAAY,KAAK,OAAO,UAAU;AAClF;AAEA,SAAgB,iBACd,YAOA;CACA,MAAM,EAAE,WAAW,MAAM,QAAQ,UAAU;CAC3C,MAAM,cAAc,UAAsC,OAAO,OAAO,MAAM,KAAK;CACnF,MAAM,YAAY,UAAyC;EACzD,MAAM,SAAkB,QAAQ,IAAI,QAAQ,KAAK;EACjD,OAAO,OAAO,WAAW,WAAW,SAAS,KAAA;CAC/C;CACA,MAAM,QAAQ,QAAQ,SAAS;CAE/B,KAAK,MAAM,SAAS,OAAO,KAAK,IAAI,GAClC,IAAI,CAAC,YAAY,MAAM,UAAU,UAAU,KAAK,GAC9C,MAAM,IAAI,uBACR,GAAG,UAAU,KAAK,MAAM,2CACnB,YAAY,KAAK,IAAI,EAAE,uDAC9B;CAIJ,MAAM,WAA8B,YAAY,OAAO,UAAU;CAEjE,KAAK,MAAM,SAAS,aAAa;EAC/B,MAAM,SAAS,SAAS,KAAK;EAC7B,IAAI,WAAW,KAAK,KAAK,WAAW,KAAA,GAClC,MAAM,IAAI,uBACR,GAAG,UAAU,KAAK,MAAM,0GAE1B;EAEF,IAAI,CAAC,WAAW,KAAK,MAAM,WAAW,KAAA,KAAa,OAAO,KAAK,MAAM,KACnE,MAAM,IAAI,uBACR,GAAG,UAAU,KAAK,MAAM,gOAI1B;CAEJ;CAEA,MAAM,UAAU,cAAwC,IAAI;CAC5D,QAAQ,cAAc,GAAG,UAAU;CAEnC,MAAM,iBAAiB,UAAwC;EAC7D,KAAK,MAAM,SAAS,aAAa;GAC/B,IAAI,CAAC,WAAW,KAAK,GAAG;GACxB,MAAM,YAAY,KAAK;GACvB,IAAI,UAAU,KAAK,GAAG,OAAO;EAC/B;EACA,OAAO;CACT;CAEA,SAAS,UAAU,OAAuE;EACxF,MAAM,WAAW,YAAY,KAAK;EAClC,MAAM,cAAc,GAAG,UAAU,GAAG;EACpC,MAAM,EAAE,MAAM,SAAS,aAAa;EAEpC,SAAS,UAAU,OAAyC;GAC1D,MAAM,UAAU,WAAW,OAAO;GAClC,IAAI,YAAY,MACd,MAAM,IAAI,uBAAuB;IAC/B;IACA,MAAM;IACN,cAAc;IACd,QACE,4BAA4B,UAAU;GAE1C,CAAC;GAGH,MAAM,EAAE,UAAU,KAAK,SAAS,GAAG,SAAS;GAE5C,QACE,YAAY,MACZ,IAAI,YAAY,kOAGlB;GAEA,IAAI,CAAC,WAAW,QAAQ,GAAG,OAAO;GAElC,MAAM,SAAS,QAAQ,WAAW;GAClC,MAAM,YAAY,SAAS,QAAQ,YAAY,SAAS,KAAA;GAExD,MAAM,gBAAuB;IAC3B;IACA,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc,SAAS,WAAW;IAClC,GAAI,SAAS,CAAC,IAAI,EAAE,OAAO,oBAAoB;GACjD;GAKA,MAAM,eAAe,kBAAkB,eAHrC,cAAc,KAAA,IAAY,KAAA,IAAY,EAAE,WAAW,UAAU,GAGGA,IAAa;GAC/E,aAAa,SAAS;GAEtB,OAAO,cAAc,OAAO,cAAc,SAAS,WAAW,IAAI;EACpE;EAEA,UAAU,cAAc;EACxB,OAAO;CACT;CAEA,MAAM,QAAiC,OAAO,YAC5C,SAAS,KAAK,UAAU,CAAC,YAAY,KAAK,GAAG,UAAU,KAAK,CAAC,CAAC,CAChE;CACA,IAAI,CAAC,aAAqB,OAAO,QAAQ,GACvC,MAAM,IAAI,uBAAuB,GAAG,UAAU,8BAA8B;CAG9E,SAAS,SACP,MACmE;EACnE,SAAS,UAAU,OAA0B;GAC3C,OAAO,cACL,QAAQ,UACR,EACE,OAAO;IACL,QAAQ,cAAc,KAAK;IAC3B,aAAa,QAAQ,KAAK,KAAK;GACjC,EACF,GACA,cAAc,MAAM,KAAK,CAC3B;EACF;EACA,UAAU,cAAc,KAAK,eAAe,GAAG,UAAU;EACzD,OAAO;CACT;CAUA,OAAO;EAAE;EAAO;EAAU,MAAA;GAPxB,gBAAgB,YAAY,OAAO,UAAU,CAAC,CAAC,IAAI,WAAW;GAC9D,eAAe,YAAY,QAAQ,UAAU,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW;IAC/E;IACA,QAAQ,SAAS,KAAK,KAAK;GAC7B,EAAE;EAGyB;CAAE;AACjC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
3
|
+
//#region src/shared/text-entry.ts
|
|
4
|
+
const TEXT_ENTRY = "input:not([type=hidden], [type=checkbox], [type=radio], [type=range], [type=file], [type=password], [data-scope=password-input]), textarea";
|
|
5
|
+
const measure = (scope) => {
|
|
6
|
+
const control = scope?.querySelector(TEXT_ENTRY);
|
|
7
|
+
if (!(control instanceof HTMLInputElement) && !(control instanceof HTMLTextAreaElement)) return;
|
|
8
|
+
return {
|
|
9
|
+
length: control.value.length,
|
|
10
|
+
max: control.maxLength > 0 ? control.maxLength : void 0
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
const sameMeasure = (a, b) => a?.length === b?.length && a?.max === b?.max;
|
|
14
|
+
const pixels = (value) => {
|
|
15
|
+
const parsed = Number.parseFloat(value);
|
|
16
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
17
|
+
};
|
|
18
|
+
function fitToContent(node, maxRows) {
|
|
19
|
+
node.style.height = "auto";
|
|
20
|
+
const style = getComputedStyle(node);
|
|
21
|
+
const border = pixels(style.borderBlockStartWidth) + pixels(style.borderBlockEndWidth);
|
|
22
|
+
const padding = pixels(style.paddingBlockStart) + pixels(style.paddingBlockEnd);
|
|
23
|
+
const line = pixels(style.lineHeight) || pixels(style.fontSize) * 1.25;
|
|
24
|
+
const wanted = node.scrollHeight + border;
|
|
25
|
+
const limit = maxRows === void 0 ? Number.POSITIVE_INFINITY : line * maxRows + padding + border;
|
|
26
|
+
node.style.height = `${String(Math.min(wanted, limit))}px`;
|
|
27
|
+
node.style.overflowY = wanted > limit ? "auto" : "hidden";
|
|
28
|
+
}
|
|
29
|
+
function useTextEntry(props) {
|
|
30
|
+
const [typed, setTyped] = useState((props.value ?? props.defaultValue ?? "").length);
|
|
31
|
+
const length = props.value === void 0 ? typed : props.value.length;
|
|
32
|
+
const autoResize = props.autoResize === true;
|
|
33
|
+
const maxRows = props.maxRows;
|
|
34
|
+
const node = useRef(null);
|
|
35
|
+
useLayoutEffect(() => {
|
|
36
|
+
if (autoResize && node.current !== null) fitToContent(node.current, maxRows);
|
|
37
|
+
});
|
|
38
|
+
const resizeRef = useCallback((element) => {
|
|
39
|
+
node.current = element;
|
|
40
|
+
if (autoResize && element !== null) fitToContent(element, maxRows);
|
|
41
|
+
}, [autoResize, maxRows]);
|
|
42
|
+
return {
|
|
43
|
+
onLength: setTyped,
|
|
44
|
+
resizeRef: autoResize ? resizeRef : void 0,
|
|
45
|
+
autoResize,
|
|
46
|
+
showCount: props.showCount === true,
|
|
47
|
+
countLength: length,
|
|
48
|
+
countMax: props.maxLength
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
export { TEXT_ENTRY, fitToContent, measure, sameMeasure, useTextEntry };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=text-entry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-entry.mjs","names":[],"sources":["../../src/shared/text-entry.ts"],"sourcesContent":["'use client'\n\nimport { useCallback, useLayoutEffect, useRef, useState } from 'react'\n\nexport interface TextEntryProps {\n value?: string | undefined\n defaultValue?: string | undefined\n autoResize?: boolean | undefined\n maxRows?: number | undefined\n maxLength?: number | undefined\n showCount?: boolean | undefined\n}\n\nexport const TEXT_ENTRY =\n 'input:not([type=hidden], [type=checkbox], [type=radio], [type=range], [type=file], [type=password], [data-scope=password-input]), textarea'\n\nexport interface Measure {\n readonly length: number\n readonly max: number | undefined\n}\n\nexport const measure = (scope: Element | null | undefined): Measure | undefined => {\n const control = scope?.querySelector(TEXT_ENTRY)\n if (!(control instanceof HTMLInputElement) && !(control instanceof HTMLTextAreaElement)) {\n return undefined\n }\n return {\n length: control.value.length,\n max: control.maxLength > 0 ? control.maxLength : undefined,\n }\n}\n\nexport const sameMeasure = (a: Measure | undefined, b: Measure | undefined): boolean =>\n a?.length === b?.length && a?.max === b?.max\n\nconst pixels = (value: string): number => {\n const parsed = Number.parseFloat(value)\n return Number.isFinite(parsed) ? parsed : 0\n}\n\nexport function fitToContent(node: HTMLElement, maxRows: number | undefined): void {\n node.style.height = 'auto'\n const style = getComputedStyle(node)\n const border = pixels(style.borderBlockStartWidth) + pixels(style.borderBlockEndWidth)\n const padding = pixels(style.paddingBlockStart) + pixels(style.paddingBlockEnd)\n const line = pixels(style.lineHeight) || pixels(style.fontSize) * 1.25\n const wanted = node.scrollHeight + border\n const limit = maxRows === undefined ? Number.POSITIVE_INFINITY : line * maxRows + padding + border\n node.style.height = `${String(Math.min(wanted, limit))}px`\n node.style.overflowY = wanted > limit ? 'auto' : 'hidden'\n}\n\nexport function useTextEntry(props: TextEntryProps): Record<string, unknown> {\n const [typed, setTyped] = useState((props.value ?? props.defaultValue ?? '').length)\n const length = props.value === undefined ? typed : props.value.length\n const autoResize = props.autoResize === true\n const maxRows = props.maxRows\n const node = useRef<HTMLElement | null>(null)\n\n useLayoutEffect(() => {\n if (autoResize && node.current !== null) fitToContent(node.current, maxRows)\n })\n\n const resizeRef = useCallback(\n (element: HTMLElement | null) => {\n node.current = element\n if (autoResize && element !== null) fitToContent(element, maxRows)\n },\n [autoResize, maxRows],\n )\n\n return {\n onLength: setTyped,\n resizeRef: autoResize ? resizeRef : undefined,\n autoResize,\n showCount: props.showCount === true,\n countLength: length,\n countMax: props.maxLength,\n }\n}\n"],"mappings":";;;AAaA,MAAa,aACX;AAOF,MAAa,WAAW,UAA2D;CACjF,MAAM,UAAU,OAAO,cAAc,UAAU;CAC/C,IAAI,EAAE,mBAAmB,qBAAqB,EAAE,mBAAmB,sBACjE;CAEF,OAAO;EACL,QAAQ,QAAQ,MAAM;EACtB,KAAK,QAAQ,YAAY,IAAI,QAAQ,YAAY,KAAA;CACnD;AACF;AAEA,MAAa,eAAe,GAAwB,MAClD,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG;AAE3C,MAAM,UAAU,UAA0B;CACxC,MAAM,SAAS,OAAO,WAAW,KAAK;CACtC,OAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAC5C;AAEA,SAAgB,aAAa,MAAmB,SAAmC;CACjF,KAAK,MAAM,SAAS;CACpB,MAAM,QAAQ,iBAAiB,IAAI;CACnC,MAAM,SAAS,OAAO,MAAM,qBAAqB,IAAI,OAAO,MAAM,mBAAmB;CACrF,MAAM,UAAU,OAAO,MAAM,iBAAiB,IAAI,OAAO,MAAM,eAAe;CAC9E,MAAM,OAAO,OAAO,MAAM,UAAU,KAAK,OAAO,MAAM,QAAQ,IAAI;CAClE,MAAM,SAAS,KAAK,eAAe;CACnC,MAAM,QAAQ,YAAY,KAAA,IAAY,OAAO,oBAAoB,OAAO,UAAU,UAAU;CAC5F,KAAK,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,QAAQ,KAAK,CAAC,EAAE;CACvD,KAAK,MAAM,YAAY,SAAS,QAAQ,SAAS;AACnD;AAEA,SAAgB,aAAa,OAAgD;CAC3E,MAAM,CAAC,OAAO,YAAY,UAAU,MAAM,SAAS,MAAM,gBAAgB,GAAA,CAAI,MAAM;CACnF,MAAM,SAAS,MAAM,UAAU,KAAA,IAAY,QAAQ,MAAM,MAAM;CAC/D,MAAM,aAAa,MAAM,eAAe;CACxC,MAAM,UAAU,MAAM;CACtB,MAAM,OAAO,OAA2B,IAAI;CAE5C,sBAAsB;EACpB,IAAI,cAAc,KAAK,YAAY,MAAM,aAAa,KAAK,SAAS,OAAO;CAC7E,CAAC;CAED,MAAM,YAAY,aACf,YAAgC;EAC/B,KAAK,UAAU;EACf,IAAI,cAAc,YAAY,MAAM,aAAa,SAAS,OAAO;CACnE,GACA,CAAC,YAAY,OAAO,CACtB;CAEA,OAAO;EACL,UAAU;EACV,WAAW,aAAa,YAAY,KAAA;EACpC;EACA,WAAW,MAAM,cAAc;EAC/B,aAAa;EACb,UAAU,MAAM;CAClB;AACF"}
|