@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 @@
|
|
|
1
|
+
{"version":3,"file":"field.connect.mjs","names":[],"sources":["../../../src/components/field/field.connect.ts"],"sourcesContent":["import type { MouseEvent } from 'react'\n\nimport { parts } from '#/components/field/field.anatomy.ts'\nimport type { DescriptionRegistry, FieldContextValue } from '#/shared/field-context.ts'\n\nexport { anatomy } from '#/components/field/field.anatomy.ts'\n\nexport const machine = null\n\nexport const props: readonly string[] = [\n 'id',\n 'invalid',\n 'required',\n 'disabled',\n 'readOnly',\n 'registry',\n 'labelable',\n 'markUnlabelable',\n 'showCount',\n 'count',\n 'rootRef',\n 'recount',\n]\n\nexport interface FieldApi {\n field: FieldContextValue\n registry: DescriptionRegistry\n getRootProps: () => Record<string, unknown>\n getLabelProps: () => Record<string, unknown>\n getRequiredIndicatorProps: () => Record<string, unknown>\n getHelperTextProps: () => Record<string, unknown>\n getErrorTextProps: () => Record<string, unknown>\n getCharacterCountProps: () => Record<string, unknown>\n count: FieldCount | undefined\n}\n\nexport interface FieldCount {\n readonly id: string\n readonly length: number\n readonly max: number | undefined\n}\n\nconst EMPTY_REGISTRY: DescriptionRegistry = {\n describedBy: undefined,\n register: () => () => {},\n}\n\nconst noUnlabeling = (): (() => void) => () => {}\n\nconst isRegistry = (value: unknown): value is DescriptionRegistry =>\n typeof value === 'object' &&\n value !== null &&\n 'register' in value &&\n typeof value.register === 'function'\n\nconst isUnlabeling = (value: unknown): value is () => () => void => typeof value === 'function'\n\nconst flag = (value: boolean): '' | undefined => (value ? '' : undefined)\n\nconst isMeasure = (value: unknown): value is Omit<FieldCount, 'id'> =>\n typeof value === 'object' &&\n value !== null &&\n 'length' in value &&\n typeof value.length === 'number' &&\n 'max' in value &&\n (value.max === undefined || typeof value.max === 'number')\n\nconst isRecount = (value: unknown): value is () => void => typeof value === 'function'\n\nexport function connect(machineProps: Readonly<Record<string, unknown>>): FieldApi {\n const base = typeof machineProps['id'] === 'string' ? machineProps['id'] : 'field'\n const invalid = machineProps['invalid'] === true\n const required = machineProps['required'] === true\n const disabled = machineProps['disabled'] === true\n const readOnly = machineProps['readOnly'] === true\n const labelable = machineProps['labelable'] !== false\n const registry = isRegistry(machineProps['registry']) ? machineProps['registry'] : EMPTY_REGISTRY\n const markUnlabelable = isUnlabeling(machineProps['markUnlabelable'])\n ? machineProps['markUnlabelable']\n : noUnlabeling\n const ids = {\n label: `field:${base}:label`,\n control: `field:${base}:control`,\n helperText: `field:${base}:helper-text`,\n errorText: `field:${base}:error-text`,\n characterCount: `field:${base}:character-count`,\n }\n const measured = isMeasure(machineProps['count']) ? machineProps['count'] : undefined\n const recount = isRecount(machineProps['recount']) ? machineProps['recount'] : undefined\n const rootRef = machineProps['rootRef']\n const errorShown = invalid && (registry.describedBy?.split(' ').includes(ids.errorText) ?? false)\n const state = {\n 'data-invalid': flag(invalid),\n 'data-required': flag(required),\n 'data-disabled': flag(disabled),\n 'data-readonly': flag(readOnly),\n }\n\n return {\n field: {\n ids: { label: ids.label, control: ids.control },\n invalid,\n required,\n disabled,\n readOnly,\n describedBy: errorShown\n ? registry.describedBy\n ?.split(' ')\n .filter((id) => id !== ids.helperText)\n .join(' ')\n : registry.describedBy,\n markUnlabelable,\n },\n registry,\n count:\n machineProps['showCount'] === true && measured !== undefined\n ? { id: ids.characterCount, length: measured.length, max: measured.max }\n : undefined,\n getRootProps: () => ({\n ...parts.root.attrs,\n ...(typeof rootRef === 'function' ? { ref: rootRef } : {}),\n ...(recount === undefined ? {} : { onInput: recount }),\n ...state,\n }),\n getCharacterCountProps: () => ({ id: ids.characterCount }),\n getLabelProps: () => ({\n ...parts.label.attrs,\n id: ids.label,\n htmlFor: labelable ? ids.control : undefined,\n onClick: labelable\n ? undefined\n : (event: MouseEvent<HTMLElement>) => {\n event.currentTarget.ownerDocument.getElementById(ids.control)?.focus()\n },\n ...state,\n }),\n getRequiredIndicatorProps: () => ({\n ...parts.requiredIndicator.attrs,\n 'aria-hidden': true,\n hidden: !required,\n }),\n getHelperTextProps: () => ({ ...parts.helperText.attrs, id: ids.helperText, ...state }),\n getErrorTextProps: () => ({\n ...parts.errorText.attrs,\n id: ids.errorText,\n 'aria-live': 'polite',\n hidden: !invalid,\n ...state,\n }),\n }\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,QAA2B;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAoBA,MAAM,iBAAsC;CAC1C,aAAa,KAAA;CACb,sBAAsB,CAAC;AACzB;AAEA,MAAM,2BAAyC,CAAC;AAEhD,MAAM,cAAc,UAClB,OAAO,UAAU,YACjB,UAAU,QACV,cAAc,SACd,OAAO,MAAM,aAAa;AAE5B,MAAM,gBAAgB,UAA8C,OAAO,UAAU;AAErF,MAAM,QAAQ,UAAoC,QAAQ,KAAK,KAAA;AAE/D,MAAM,aAAa,UACjB,OAAO,UAAU,YACjB,UAAU,QACV,YAAY,SACZ,OAAO,MAAM,WAAW,YACxB,SAAS,UACR,MAAM,QAAQ,KAAA,KAAa,OAAO,MAAM,QAAQ;AAEnD,MAAM,aAAa,UAAwC,OAAO,UAAU;AAE5E,SAAgB,QAAQ,cAA2D;CACjF,MAAM,OAAO,OAAO,aAAa,UAAU,WAAW,aAAa,QAAQ;CAC3E,MAAM,UAAU,aAAa,eAAe;CAC5C,MAAM,WAAW,aAAa,gBAAgB;CAC9C,MAAM,WAAW,aAAa,gBAAgB;CAC9C,MAAM,WAAW,aAAa,gBAAgB;CAC9C,MAAM,YAAY,aAAa,iBAAiB;CAChD,MAAM,WAAW,WAAW,aAAa,WAAW,IAAI,aAAa,cAAc;CACnF,MAAM,kBAAkB,aAAa,aAAa,kBAAkB,IAChE,aAAa,qBACb;CACJ,MAAM,MAAM;EACV,OAAO,SAAS,KAAK;EACrB,SAAS,SAAS,KAAK;EACvB,YAAY,SAAS,KAAK;EAC1B,WAAW,SAAS,KAAK;EACzB,gBAAgB,SAAS,KAAK;CAChC;CACA,MAAM,WAAW,UAAU,aAAa,QAAQ,IAAI,aAAa,WAAW,KAAA;CAC5E,MAAM,UAAU,UAAU,aAAa,UAAU,IAAI,aAAa,aAAa,KAAA;CAC/E,MAAM,UAAU,aAAa;CAC7B,MAAM,aAAa,YAAY,SAAS,aAAa,MAAM,GAAG,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK;CAC3F,MAAM,QAAQ;EACZ,gBAAgB,KAAK,OAAO;EAC5B,iBAAiB,KAAK,QAAQ;EAC9B,iBAAiB,KAAK,QAAQ;EAC9B,iBAAiB,KAAK,QAAQ;CAChC;CAEA,OAAO;EACL,OAAO;GACL,KAAK;IAAE,OAAO,IAAI;IAAO,SAAS,IAAI;GAAQ;GAC9C;GACA;GACA;GACA;GACA,aAAa,aACT,SAAS,aACL,MAAM,GAAG,CAAC,CACX,QAAQ,OAAO,OAAO,IAAI,UAAU,CAAC,CACrC,KAAK,GAAG,IACX,SAAS;GACb;EACF;EACA;EACA,OACE,aAAa,iBAAiB,QAAQ,aAAa,KAAA,IAC/C;GAAE,IAAI,IAAI;GAAgB,QAAQ,SAAS;GAAQ,KAAK,SAAS;EAAI,IACrE,KAAA;EACN,qBAAqB;GACnB,GAAG,MAAM,KAAK;GACd,GAAI,OAAO,YAAY,aAAa,EAAE,KAAK,QAAQ,IAAI,CAAC;GACxD,GAAI,YAAY,KAAA,IAAY,CAAC,IAAI,EAAE,SAAS,QAAQ;GACpD,GAAG;EACL;EACA,+BAA+B,EAAE,IAAI,IAAI,eAAe;EACxD,sBAAsB;GACpB,GAAG,MAAM,MAAM;GACf,IAAI,IAAI;GACR,SAAS,YAAY,IAAI,UAAU,KAAA;GACnC,SAAS,YACL,KAAA,KACC,UAAmC;IAClC,MAAM,cAAc,cAAc,eAAe,IAAI,OAAO,CAAC,EAAE,MAAM;GACvE;GACJ,GAAG;EACL;EACA,kCAAkC;GAChC,GAAG,MAAM,kBAAkB;GAC3B,eAAe;GACf,QAAQ,CAAC;EACX;EACA,2BAA2B;GAAE,GAAG,MAAM,WAAW;GAAO,IAAI,IAAI;GAAY,GAAG;EAAM;EACrF,0BAA0B;GACxB,GAAG,MAAM,UAAU;GACnB,IAAI,IAAI;GACR,aAAa;GACb,QAAQ,CAAC;GACT,GAAG;EACL;CACF;AACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SynapseComponent } from "../../system/types.mjs";
|
|
2
|
+
//#region src/components/field/field.d.ts
|
|
3
|
+
export interface FieldRootProps {
|
|
4
|
+
/** 안쪽 컨트롤이 물려받는 오류 상태. `true`이면 `Field.ErrorText`가 나타나고 컨트롤에 `aria-invalid`가 붙습니다. */
|
|
5
|
+
invalid?: boolean;
|
|
6
|
+
/** 안쪽 컨트롤이 물려받는 필수 상태. `Field.RequiredIndicator`가 나타납니다. */
|
|
7
|
+
required?: boolean;
|
|
8
|
+
/** 안쪽 컨트롤이 물려받는 비활성 상태. */
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
/** 안쪽 컨트롤이 물려받는 읽기 전용 상태. */
|
|
11
|
+
readOnly?: boolean;
|
|
12
|
+
/** 레이블, 설명, 오류와 컨트롤을 잇는 식별자들의 바탕. 서버와 클라이언트에서 같습니다. */
|
|
13
|
+
id?: string;
|
|
14
|
+
/** 안쪽 텍스트 입력의 글자 수를 메시지 줄 오른쪽에 보여 줍니다. 입력에 `maxLength`가 있으면 "12 / 280"처럼 한도와 함께 보이고, 한도에 가까워지면 남은 글자 수를 스크린 리더에 알립니다. */
|
|
15
|
+
showCount?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const Field: SynapseComponent<"errorText" | "helperText" | "label" | "requiredIndicator" | "root", "root", FieldRootProps, never>;
|
|
18
|
+
//#endregion
|
|
19
|
+
//# sourceMappingURL=field.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.mts","names":[],"sources":["../../../src/components/field/field.tsx"],"mappings":";;iBAYiB;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;qBAgCW,OAAK,8FAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { DescriptionContext, FieldContext, useDescriptionRegistry } from "../../shared/field-context.mjs";
|
|
3
|
+
import { defineComponent } from "../../system/create-component.mjs";
|
|
4
|
+
import { field_connect_exports } from "./field.connect.mjs";
|
|
5
|
+
import { fieldCountClass, fieldRecipe } from "./field.recipe.mjs";
|
|
6
|
+
import { CharacterCount } from "../../shared/character-count.mjs";
|
|
7
|
+
import { FieldDescription } from "../../shared/field-description.mjs";
|
|
8
|
+
import { measure, sameMeasure } from "../../shared/text-entry.mjs";
|
|
9
|
+
import { createElement, useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
10
|
+
//#region src/components/field/field.tsx
|
|
11
|
+
function useCount(showCount) {
|
|
12
|
+
const root = useRef(null);
|
|
13
|
+
const [count, setCount] = useState(void 0);
|
|
14
|
+
const recount = useCallback(() => {
|
|
15
|
+
const next = measure(root.current);
|
|
16
|
+
setCount((current) => sameMeasure(current, next) ? current : next);
|
|
17
|
+
}, []);
|
|
18
|
+
const rootRef = useCallback((element) => {
|
|
19
|
+
root.current = element;
|
|
20
|
+
}, []);
|
|
21
|
+
useLayoutEffect(() => {
|
|
22
|
+
if (showCount) recount();
|
|
23
|
+
});
|
|
24
|
+
return showCount ? {
|
|
25
|
+
showCount,
|
|
26
|
+
count,
|
|
27
|
+
rootRef,
|
|
28
|
+
recount
|
|
29
|
+
} : {};
|
|
30
|
+
}
|
|
31
|
+
function useFieldMachineProps(props) {
|
|
32
|
+
const counting = useCount(props.showCount === true);
|
|
33
|
+
const registry = useDescriptionRegistry();
|
|
34
|
+
const [unlabelable, setUnlabelable] = useState(0);
|
|
35
|
+
const markUnlabelable = useCallback(() => {
|
|
36
|
+
setUnlabelable((count) => count + 1);
|
|
37
|
+
return () => {
|
|
38
|
+
setUnlabelable((count) => count - 1);
|
|
39
|
+
};
|
|
40
|
+
}, []);
|
|
41
|
+
return {
|
|
42
|
+
registry,
|
|
43
|
+
labelable: unlabelable === 0,
|
|
44
|
+
markUnlabelable,
|
|
45
|
+
...counting
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const Field = defineComponent()({
|
|
49
|
+
name: "Field",
|
|
50
|
+
module: field_connect_exports,
|
|
51
|
+
rootPart: "root",
|
|
52
|
+
rootElement: "div",
|
|
53
|
+
elements: {
|
|
54
|
+
label: "label",
|
|
55
|
+
requiredIndicator: "span",
|
|
56
|
+
helperText: FieldDescription,
|
|
57
|
+
errorText: FieldDescription
|
|
58
|
+
},
|
|
59
|
+
defaultContent: { requiredIndicator: () => "*" },
|
|
60
|
+
rootOwnedGetters: [{
|
|
61
|
+
name: "characterCount",
|
|
62
|
+
getter: "getCharacterCountProps",
|
|
63
|
+
render: (_props, api) => api.count === void 0 ? null : createElement(CharacterCount, {
|
|
64
|
+
id: api.count.id,
|
|
65
|
+
className: fieldCountClass,
|
|
66
|
+
length: api.count.length,
|
|
67
|
+
max: api.count.max
|
|
68
|
+
})
|
|
69
|
+
}],
|
|
70
|
+
useMachineProps: useFieldMachineProps,
|
|
71
|
+
wrapRoot: (api, node) => createElement(DescriptionContext.Provider, { value: api.registry }, createElement(FieldContext.Provider, { value: api.field }, node)),
|
|
72
|
+
slots: () => fieldRecipe()
|
|
73
|
+
});
|
|
74
|
+
//#endregion
|
|
75
|
+
export { Field };
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=field.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.mjs","names":["field","countClass"],"sources":["../../../src/components/field/field.tsx"],"sourcesContent":["'use client'\n\nimport { createElement, useCallback, useLayoutEffect, useRef, useState } from 'react'\n\nimport * as field from '#/components/field/field.connect.ts'\nimport { fieldCountClass as countClass, fieldRecipe } from '#/components/field/field.recipe.ts'\nimport { CharacterCount } from '#/shared/character-count.tsx'\nimport { DescriptionContext, FieldContext, useDescriptionRegistry } from '#/shared/field-context.ts'\nimport { FieldDescription } from '#/shared/field-description.tsx'\nimport { measure, type Measure, sameMeasure } from '#/shared/text-entry.ts'\nimport { defineComponent } from '#/system/create-component.ts'\n\nexport interface FieldRootProps {\n /** 안쪽 컨트롤이 물려받는 오류 상태. `true`이면 `Field.ErrorText`가 나타나고 컨트롤에 `aria-invalid`가 붙습니다. */\n invalid?: boolean\n /** 안쪽 컨트롤이 물려받는 필수 상태. `Field.RequiredIndicator`가 나타납니다. */\n required?: boolean\n /** 안쪽 컨트롤이 물려받는 비활성 상태. */\n disabled?: boolean\n /** 안쪽 컨트롤이 물려받는 읽기 전용 상태. */\n readOnly?: boolean\n /** 레이블, 설명, 오류와 컨트롤을 잇는 식별자들의 바탕. 서버와 클라이언트에서 같습니다. */\n id?: string\n /** 안쪽 텍스트 입력의 글자 수를 메시지 줄 오른쪽에 보여 줍니다. 입력에 `maxLength`가 있으면 \"12 / 280\"처럼 한도와 함께 보이고, 한도에 가까워지면 남은 글자 수를 스크린 리더에 알립니다. */\n showCount?: boolean\n}\n\nfunction useCount(showCount: boolean): Record<string, unknown> {\n const root = useRef<HTMLElement | null>(null)\n const [count, setCount] = useState<Measure | undefined>(undefined)\n const recount = useCallback(() => {\n const next = measure(root.current)\n setCount((current) => (sameMeasure(current, next) ? current : next))\n }, [])\n const rootRef = useCallback((element: HTMLElement | null) => {\n root.current = element\n }, [])\n useLayoutEffect(() => {\n if (showCount) recount()\n })\n return showCount ? { showCount, count, rootRef, recount } : {}\n}\n\nfunction useFieldMachineProps(props: FieldRootProps): Record<string, unknown> {\n const counting = useCount(props.showCount === true)\n const registry = useDescriptionRegistry()\n const [unlabelable, setUnlabelable] = useState(0)\n const markUnlabelable = useCallback(() => {\n setUnlabelable((count) => count + 1)\n return () => {\n setUnlabelable((count) => count - 1)\n }\n }, [])\n return { registry, labelable: unlabelable === 0, markUnlabelable, ...counting }\n}\n\nexport const Field = defineComponent<FieldRootProps>()({\n name: 'Field',\n module: field,\n rootPart: 'root',\n rootElement: 'div',\n elements: {\n label: 'label',\n requiredIndicator: 'span',\n helperText: FieldDescription,\n errorText: FieldDescription,\n },\n defaultContent: { requiredIndicator: () => '*' },\n rootOwnedGetters: [\n {\n name: 'characterCount',\n getter: 'getCharacterCountProps',\n render: (_props, api) =>\n api.count === undefined\n ? null\n : createElement(CharacterCount, {\n id: api.count.id,\n className: countClass,\n length: api.count.length,\n max: api.count.max,\n }),\n },\n ],\n useMachineProps: useFieldMachineProps,\n wrapRoot: (api, node) =>\n createElement(\n DescriptionContext.Provider,\n { value: api.registry },\n createElement(FieldContext.Provider, { value: api.field }, node),\n ),\n slots: () => fieldRecipe(),\n})\n"],"mappings":";;;;;;;;;;AA2BA,SAAS,SAAS,WAA6C;CAC7D,MAAM,OAAO,OAA2B,IAAI;CAC5C,MAAM,CAAC,OAAO,YAAY,SAA8B,KAAA,CAAS;CACjE,MAAM,UAAU,kBAAkB;EAChC,MAAM,OAAO,QAAQ,KAAK,OAAO;EACjC,UAAU,YAAa,YAAY,SAAS,IAAI,IAAI,UAAU,IAAK;CACrE,GAAG,CAAC,CAAC;CACL,MAAM,UAAU,aAAa,YAAgC;EAC3D,KAAK,UAAU;CACjB,GAAG,CAAC,CAAC;CACL,sBAAsB;EACpB,IAAI,WAAW,QAAQ;CACzB,CAAC;CACD,OAAO,YAAY;EAAE;EAAW;EAAO;EAAS;CAAQ,IAAI,CAAC;AAC/D;AAEA,SAAS,qBAAqB,OAAgD;CAC5E,MAAM,WAAW,SAAS,MAAM,cAAc,IAAI;CAClD,MAAM,WAAW,uBAAuB;CACxC,MAAM,CAAC,aAAa,kBAAkB,SAAS,CAAC;CAChD,MAAM,kBAAkB,kBAAkB;EACxC,gBAAgB,UAAU,QAAQ,CAAC;EACnC,aAAa;GACX,gBAAgB,UAAU,QAAQ,CAAC;EACrC;CACF,GAAG,CAAC,CAAC;CACL,OAAO;EAAE;EAAU,WAAW,gBAAgB;EAAG;EAAiB,GAAG;CAAS;AAChF;AAEA,MAAa,QAAQ,gBAAgC,CAAC,CAAC;CACrD,MAAM;CACN,QAAQA;CACR,UAAU;CACV,aAAa;CACb,UAAU;EACR,OAAO;EACP,mBAAmB;EACnB,YAAY;EACZ,WAAW;CACb;CACA,gBAAgB,EAAE,yBAAyB,IAAI;CAC/C,kBAAkB,CAChB;EACE,MAAM;EACN,QAAQ;EACR,SAAS,QAAQ,QACf,IAAI,UAAU,KAAA,IACV,OACA,cAAc,gBAAgB;GAC5B,IAAI,IAAI,MAAM;GACd,WAAWC;GACX,QAAQ,IAAI,MAAM;GAClB,KAAK,IAAI,MAAM;EACjB,CAAC;CACT,CACF;CACA,iBAAiB;CACjB,WAAW,KAAK,SACd,cACE,mBAAmB,UACnB,EAAE,OAAO,IAAI,SAAS,GACtB,cAAc,aAAa,UAAU,EAAE,OAAO,IAAI,MAAM,GAAG,IAAI,CACjE;CACF,aAAa,YAAY;AAC3B,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { css } from "../../react/styled-system/css/css.mjs";
|
|
2
|
+
import { sva } from "../../react/styled-system/css/sva.mjs";
|
|
3
|
+
//#region src/components/field/field.recipe.ts
|
|
4
|
+
const fieldCountClass = css({
|
|
5
|
+
alignSelf: "start",
|
|
6
|
+
textAlign: "end",
|
|
7
|
+
textStyle: "detail",
|
|
8
|
+
color: "foreground.muted",
|
|
9
|
+
fontVariantNumeric: "tabular-nums",
|
|
10
|
+
whiteSpace: "nowrap",
|
|
11
|
+
"&[data-near-limit]": { color: "foreground.default" }
|
|
12
|
+
});
|
|
13
|
+
const fieldRecipe = sva({
|
|
14
|
+
slots: [
|
|
15
|
+
"root",
|
|
16
|
+
"label",
|
|
17
|
+
"requiredIndicator",
|
|
18
|
+
"helperText",
|
|
19
|
+
"errorText"
|
|
20
|
+
],
|
|
21
|
+
base: {
|
|
22
|
+
root: {
|
|
23
|
+
display: "grid",
|
|
24
|
+
gridTemplateColumns: "minmax(0, 1fr) auto",
|
|
25
|
+
gridAutoFlow: "row dense",
|
|
26
|
+
columnGap: "gap.related",
|
|
27
|
+
rowGap: "gap.inline",
|
|
28
|
+
width: "fill",
|
|
29
|
+
"& > *": { gridColumn: "1 / -1" },
|
|
30
|
+
"& > [data-part=helper-text], & > [data-part=error-text]": { gridColumn: "1" },
|
|
31
|
+
"& > [data-part=character-count]": { gridColumn: "2" },
|
|
32
|
+
"&:has(> [data-part=error-text]) > [data-part=helper-text]": { display: "none" }
|
|
33
|
+
},
|
|
34
|
+
label: {
|
|
35
|
+
display: "inline-flex",
|
|
36
|
+
alignItems: "baseline",
|
|
37
|
+
gap: "gap.inline",
|
|
38
|
+
justifySelf: "start",
|
|
39
|
+
textStyle: "label",
|
|
40
|
+
color: "foreground.default",
|
|
41
|
+
_disabled: { color: "foreground.disabled" }
|
|
42
|
+
},
|
|
43
|
+
requiredIndicator: { color: "error.default" },
|
|
44
|
+
helperText: {
|
|
45
|
+
textStyle: "detail",
|
|
46
|
+
color: "foreground.muted",
|
|
47
|
+
margin: "inset.none",
|
|
48
|
+
_disabled: { color: "foreground.disabled" }
|
|
49
|
+
},
|
|
50
|
+
errorText: {
|
|
51
|
+
textStyle: "detail",
|
|
52
|
+
color: "error.default",
|
|
53
|
+
margin: "inset.none"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//#endregion
|
|
58
|
+
export { fieldCountClass, fieldRecipe };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=field.recipe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.recipe.mjs","names":[],"sources":["../../../src/components/field/field.recipe.ts"],"sourcesContent":["import { css, sva } from '#styled-system/css/index.js'\n\nexport const fieldCountClass = css({\n alignSelf: 'start',\n textAlign: 'end',\n textStyle: 'detail',\n color: 'foreground.muted',\n fontVariantNumeric: 'tabular-nums',\n whiteSpace: 'nowrap',\n '&[data-near-limit]': { color: 'foreground.default' },\n})\n\nexport const fieldRecipe = sva({\n slots: ['root', 'label', 'requiredIndicator', 'helperText', 'errorText'],\n base: {\n root: {\n display: 'grid',\n gridTemplateColumns: 'minmax(0, 1fr) auto',\n gridAutoFlow: 'row dense',\n columnGap: 'gap.related',\n rowGap: 'gap.inline',\n width: 'fill',\n '& > *': { gridColumn: '1 / -1' },\n '& > [data-part=helper-text], & > [data-part=error-text]': { gridColumn: '1' },\n '& > [data-part=character-count]': { gridColumn: '2' },\n '&:has(> [data-part=error-text]) > [data-part=helper-text]': { display: 'none' },\n },\n label: {\n display: 'inline-flex',\n alignItems: 'baseline',\n gap: 'gap.inline',\n justifySelf: 'start',\n textStyle: 'label',\n color: 'foreground.default',\n _disabled: { color: 'foreground.disabled' },\n },\n requiredIndicator: {\n color: 'error.default',\n },\n helperText: {\n textStyle: 'detail',\n color: 'foreground.muted',\n margin: 'inset.none',\n _disabled: { color: 'foreground.disabled' },\n },\n errorText: {\n textStyle: 'detail',\n color: 'error.default',\n margin: 'inset.none',\n },\n },\n})\n"],"mappings":";;;AAEA,MAAa,kBAAkB,IAAI;CACjC,WAAW;CACX,WAAW;CACX,WAAW;CACX,OAAO;CACP,oBAAoB;CACpB,YAAY;CACZ,sBAAsB,EAAE,OAAO,qBAAqB;AACtD,CAAC;AAED,MAAa,cAAc,IAAI;CAC7B,OAAO;EAAC;EAAQ;EAAS;EAAqB;EAAc;CAAW;CACvE,MAAM;EACJ,MAAM;GACJ,SAAS;GACT,qBAAqB;GACrB,cAAc;GACd,WAAW;GACX,QAAQ;GACR,OAAO;GACP,SAAS,EAAE,YAAY,SAAS;GAChC,2DAA2D,EAAE,YAAY,IAAI;GAC7E,mCAAmC,EAAE,YAAY,IAAI;GACrD,6DAA6D,EAAE,SAAS,OAAO;EACjF;EACA,OAAO;GACL,SAAS;GACT,YAAY;GACZ,KAAK;GACL,aAAa;GACb,WAAW;GACX,OAAO;GACP,WAAW,EAAE,OAAO,sBAAsB;EAC5C;EACA,mBAAmB,EACjB,OAAO,gBACT;EACA,YAAY;GACV,WAAW;GACX,OAAO;GACP,QAAQ;GACR,WAAW,EAAE,OAAO,sBAAsB;EAC5C;EACA,WAAW;GACT,WAAW;GACX,OAAO;GACP,QAAQ;EACV;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createAnatomy } from "@zag-js/anatomy";
|
|
2
|
+
//#region src/components/fieldset/fieldset.anatomy.ts
|
|
3
|
+
const anatomy = createAnatomy("fieldset").parts("root", "legend", "helperText", "errorText");
|
|
4
|
+
const parts = anatomy.build();
|
|
5
|
+
//#endregion
|
|
6
|
+
export { anatomy, parts };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=fieldset.anatomy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldset.anatomy.mjs","names":[],"sources":["../../../src/components/fieldset/fieldset.anatomy.ts"],"sourcesContent":["import { createAnatomy } from '@zag-js/anatomy'\n\nexport const anatomy = createAnatomy('fieldset').parts('root', 'legend', 'helperText', 'errorText')\n\nexport const parts = anatomy.build()\n"],"mappings":";;AAEA,MAAa,UAAU,cAAc,UAAU,CAAC,CAAC,MAAM,QAAQ,UAAU,cAAc,WAAW;AAElG,MAAa,QAAQ,QAAQ,MAAM"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { __exportAll } from "../../_virtual/_rolldown/runtime.mjs";
|
|
2
|
+
import { anatomy, parts } from "./fieldset.anatomy.mjs";
|
|
3
|
+
//#region src/components/fieldset/fieldset.connect.ts
|
|
4
|
+
var fieldset_connect_exports = /* @__PURE__ */ __exportAll({
|
|
5
|
+
anatomy: () => anatomy,
|
|
6
|
+
connect: () => connect,
|
|
7
|
+
machine: () => null,
|
|
8
|
+
props: () => props
|
|
9
|
+
});
|
|
10
|
+
const props = [
|
|
11
|
+
"id",
|
|
12
|
+
"invalid",
|
|
13
|
+
"disabled",
|
|
14
|
+
"registry"
|
|
15
|
+
];
|
|
16
|
+
const EMPTY_REGISTRY = {
|
|
17
|
+
describedBy: void 0,
|
|
18
|
+
register: () => () => {}
|
|
19
|
+
};
|
|
20
|
+
const isRegistry = (value) => typeof value === "object" && value !== null && "register" in value && typeof value.register === "function";
|
|
21
|
+
const flag = (value) => value ? "" : void 0;
|
|
22
|
+
function connect(machineProps) {
|
|
23
|
+
const base = typeof machineProps["id"] === "string" ? machineProps["id"] : "fieldset";
|
|
24
|
+
const invalid = machineProps["invalid"] === true;
|
|
25
|
+
const disabled = machineProps["disabled"] === true;
|
|
26
|
+
const registry = isRegistry(machineProps["registry"]) ? machineProps["registry"] : EMPTY_REGISTRY;
|
|
27
|
+
const state = {
|
|
28
|
+
"data-invalid": flag(invalid),
|
|
29
|
+
"data-disabled": flag(disabled)
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
registry,
|
|
33
|
+
getRootProps: () => ({
|
|
34
|
+
...parts.root.attrs,
|
|
35
|
+
disabled,
|
|
36
|
+
"aria-describedby": registry.describedBy,
|
|
37
|
+
...state
|
|
38
|
+
}),
|
|
39
|
+
getLegendProps: () => ({
|
|
40
|
+
...parts.legend.attrs,
|
|
41
|
+
...state
|
|
42
|
+
}),
|
|
43
|
+
getHelperTextProps: () => ({
|
|
44
|
+
...parts.helperText.attrs,
|
|
45
|
+
id: `fieldset:${base}:helper-text`,
|
|
46
|
+
...state
|
|
47
|
+
}),
|
|
48
|
+
getErrorTextProps: () => ({
|
|
49
|
+
...parts.errorText.attrs,
|
|
50
|
+
id: `fieldset:${base}:error-text`,
|
|
51
|
+
"aria-live": "polite",
|
|
52
|
+
hidden: !invalid,
|
|
53
|
+
...state
|
|
54
|
+
})
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
export { anatomy, connect, fieldset_connect_exports, props };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=fieldset.connect.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldset.connect.mjs","names":[],"sources":["../../../src/components/fieldset/fieldset.connect.ts"],"sourcesContent":["import { parts } from '#/components/fieldset/fieldset.anatomy.ts'\nimport type { DescriptionRegistry } from '#/shared/field-context.ts'\n\nexport { anatomy } from '#/components/fieldset/fieldset.anatomy.ts'\n\nexport const machine = null\n\nexport const props: readonly string[] = ['id', 'invalid', 'disabled', 'registry']\n\nexport interface FieldsetApi {\n registry: DescriptionRegistry\n getRootProps: () => Record<string, unknown>\n getLegendProps: () => Record<string, unknown>\n getHelperTextProps: () => Record<string, unknown>\n getErrorTextProps: () => Record<string, unknown>\n}\n\nconst EMPTY_REGISTRY: DescriptionRegistry = {\n describedBy: undefined,\n register: () => () => {},\n}\n\nconst isRegistry = (value: unknown): value is DescriptionRegistry =>\n typeof value === 'object' &&\n value !== null &&\n 'register' in value &&\n typeof value.register === 'function'\n\nconst flag = (value: boolean): '' | undefined => (value ? '' : undefined)\n\nexport function connect(machineProps: Readonly<Record<string, unknown>>): FieldsetApi {\n const base = typeof machineProps['id'] === 'string' ? machineProps['id'] : 'fieldset'\n const invalid = machineProps['invalid'] === true\n const disabled = machineProps['disabled'] === true\n const registry = isRegistry(machineProps['registry']) ? machineProps['registry'] : EMPTY_REGISTRY\n const state = { 'data-invalid': flag(invalid), 'data-disabled': flag(disabled) }\n\n return {\n registry,\n getRootProps: () => ({\n ...parts.root.attrs,\n disabled,\n 'aria-describedby': registry.describedBy,\n ...state,\n }),\n getLegendProps: () => ({ ...parts.legend.attrs, ...state }),\n getHelperTextProps: () => ({\n ...parts.helperText.attrs,\n id: `fieldset:${base}:helper-text`,\n ...state,\n }),\n getErrorTextProps: () => ({\n ...parts.errorText.attrs,\n id: `fieldset:${base}:error-text`,\n 'aria-live': 'polite',\n hidden: !invalid,\n ...state,\n }),\n }\n}\n"],"mappings":";;;;;;;;;AAOA,MAAa,QAA2B;CAAC;CAAM;CAAW;CAAY;AAAU;AAUhF,MAAM,iBAAsC;CAC1C,aAAa,KAAA;CACb,sBAAsB,CAAC;AACzB;AAEA,MAAM,cAAc,UAClB,OAAO,UAAU,YACjB,UAAU,QACV,cAAc,SACd,OAAO,MAAM,aAAa;AAE5B,MAAM,QAAQ,UAAoC,QAAQ,KAAK,KAAA;AAE/D,SAAgB,QAAQ,cAA8D;CACpF,MAAM,OAAO,OAAO,aAAa,UAAU,WAAW,aAAa,QAAQ;CAC3E,MAAM,UAAU,aAAa,eAAe;CAC5C,MAAM,WAAW,aAAa,gBAAgB;CAC9C,MAAM,WAAW,WAAW,aAAa,WAAW,IAAI,aAAa,cAAc;CACnF,MAAM,QAAQ;EAAE,gBAAgB,KAAK,OAAO;EAAG,iBAAiB,KAAK,QAAQ;CAAE;CAE/E,OAAO;EACL;EACA,qBAAqB;GACnB,GAAG,MAAM,KAAK;GACd;GACA,oBAAoB,SAAS;GAC7B,GAAG;EACL;EACA,uBAAuB;GAAE,GAAG,MAAM,OAAO;GAAO,GAAG;EAAM;EACzD,2BAA2B;GACzB,GAAG,MAAM,WAAW;GACpB,IAAI,YAAY,KAAK;GACrB,GAAG;EACL;EACA,0BAA0B;GACxB,GAAG,MAAM,UAAU;GACnB,IAAI,YAAY,KAAK;GACrB,aAAa;GACb,QAAQ,CAAC;GACT,GAAG;EACL;CACF;AACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SynapseComponent } from "../../system/types.mjs";
|
|
2
|
+
//#region src/components/fieldset/fieldset.d.ts
|
|
3
|
+
export interface FieldsetRootProps {
|
|
4
|
+
/** 묶음 전체의 오류 상태. `true`이면 `Fieldset.ErrorText`가 나타납니다. */
|
|
5
|
+
invalid?: boolean;
|
|
6
|
+
/** 네이티브 `<fieldset disabled>`로 안쪽의 모든 컨트롤을 한 번에 비활성화합니다. */
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
/** 설명과 오류 문구의 식별자 바탕. 서버와 클라이언트에서 같습니다. */
|
|
9
|
+
id?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const Fieldset: SynapseComponent<"errorText" | "helperText" | "legend" | "root", "root", FieldsetRootProps, never>;
|
|
12
|
+
//#endregion
|
|
13
|
+
//# sourceMappingURL=fieldset.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldset.d.mts","names":[],"sources":["../../../src/components/fieldset/fieldset.tsx"],"mappings":";;iBAUiB;;EAEf;;EAEA;;EAEA;;qBAGW,UAAQ,yEAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { DescriptionContext, useDescriptionRegistry } from "../../shared/field-context.mjs";
|
|
3
|
+
import { defineComponent } from "../../system/create-component.mjs";
|
|
4
|
+
import { FieldDescription } from "../../shared/field-description.mjs";
|
|
5
|
+
import { fieldset_connect_exports } from "./fieldset.connect.mjs";
|
|
6
|
+
import { fieldsetRecipe } from "./fieldset.recipe.mjs";
|
|
7
|
+
import { createElement } from "react";
|
|
8
|
+
//#region src/components/fieldset/fieldset.tsx
|
|
9
|
+
const Fieldset = defineComponent()({
|
|
10
|
+
name: "Fieldset",
|
|
11
|
+
module: fieldset_connect_exports,
|
|
12
|
+
rootPart: "root",
|
|
13
|
+
rootElement: "fieldset",
|
|
14
|
+
elements: {
|
|
15
|
+
legend: "legend",
|
|
16
|
+
helperText: FieldDescription,
|
|
17
|
+
errorText: FieldDescription
|
|
18
|
+
},
|
|
19
|
+
useMachineProps: () => ({ registry: useDescriptionRegistry() }),
|
|
20
|
+
wrapRoot: (api, node) => createElement(DescriptionContext.Provider, { value: api.registry }, node),
|
|
21
|
+
slots: () => fieldsetRecipe()
|
|
22
|
+
});
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Fieldset };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=fieldset.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldset.mjs","names":["fieldset"],"sources":["../../../src/components/fieldset/fieldset.tsx"],"sourcesContent":["'use client'\n\nimport { createElement } from 'react'\n\nimport * as fieldset from '#/components/fieldset/fieldset.connect.ts'\nimport { fieldsetRecipe } from '#/components/fieldset/fieldset.recipe.ts'\nimport { DescriptionContext, useDescriptionRegistry } from '#/shared/field-context.ts'\nimport { FieldDescription } from '#/shared/field-description.tsx'\nimport { defineComponent } from '#/system/create-component.ts'\n\nexport interface FieldsetRootProps {\n /** 묶음 전체의 오류 상태. `true`이면 `Fieldset.ErrorText`가 나타납니다. */\n invalid?: boolean\n /** 네이티브 `<fieldset disabled>`로 안쪽의 모든 컨트롤을 한 번에 비활성화합니다. */\n disabled?: boolean\n /** 설명과 오류 문구의 식별자 바탕. 서버와 클라이언트에서 같습니다. */\n id?: string\n}\n\nexport const Fieldset = defineComponent<FieldsetRootProps>()({\n name: 'Fieldset',\n module: fieldset,\n rootPart: 'root',\n rootElement: 'fieldset',\n elements: { legend: 'legend', helperText: FieldDescription, errorText: FieldDescription },\n useMachineProps: () => ({ registry: useDescriptionRegistry() }),\n wrapRoot: (api, node) =>\n createElement(DescriptionContext.Provider, { value: api.registry }, node),\n slots: () => fieldsetRecipe(),\n})\n"],"mappings":";;;;;;;;AAmBA,MAAa,WAAW,gBAAmC,CAAC,CAAC;CAC3D,MAAM;CACN,QAAQA;CACR,UAAU;CACV,aAAa;CACb,UAAU;EAAE,QAAQ;EAAU,YAAY;EAAkB,WAAW;CAAiB;CACxF,wBAAwB,EAAE,UAAU,uBAAuB,EAAE;CAC7D,WAAW,KAAK,SACd,cAAc,mBAAmB,UAAU,EAAE,OAAO,IAAI,SAAS,GAAG,IAAI;CAC1E,aAAa,eAAe;AAC9B,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { sva } from "../../react/styled-system/css/sva.mjs";
|
|
2
|
+
//#region src/components/fieldset/fieldset.recipe.ts
|
|
3
|
+
const fieldsetRecipe = sva({
|
|
4
|
+
slots: [
|
|
5
|
+
"root",
|
|
6
|
+
"legend",
|
|
7
|
+
"helperText",
|
|
8
|
+
"errorText"
|
|
9
|
+
],
|
|
10
|
+
base: {
|
|
11
|
+
root: {
|
|
12
|
+
display: "flex",
|
|
13
|
+
flexDirection: "column",
|
|
14
|
+
gap: "gap.related",
|
|
15
|
+
margin: "inset.none",
|
|
16
|
+
padding: "inset.none",
|
|
17
|
+
borderWidth: "0"
|
|
18
|
+
},
|
|
19
|
+
legend: {
|
|
20
|
+
padding: "inset.none",
|
|
21
|
+
marginBlockEnd: "gap.inline",
|
|
22
|
+
textStyle: "label",
|
|
23
|
+
color: "foreground.default",
|
|
24
|
+
_disabled: { color: "foreground.disabled" }
|
|
25
|
+
},
|
|
26
|
+
helperText: {
|
|
27
|
+
textStyle: "detail",
|
|
28
|
+
color: "foreground.muted",
|
|
29
|
+
margin: "inset.none",
|
|
30
|
+
_disabled: { color: "foreground.disabled" }
|
|
31
|
+
},
|
|
32
|
+
errorText: {
|
|
33
|
+
textStyle: "detail",
|
|
34
|
+
color: "error.default",
|
|
35
|
+
margin: "inset.none"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
//#endregion
|
|
40
|
+
export { fieldsetRecipe };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=fieldset.recipe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldset.recipe.mjs","names":[],"sources":["../../../src/components/fieldset/fieldset.recipe.ts"],"sourcesContent":["import { sva } from '#styled-system/css/index.js'\n\nexport const fieldsetRecipe = sva({\n slots: ['root', 'legend', 'helperText', 'errorText'],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 'gap.related',\n margin: 'inset.none',\n padding: 'inset.none',\n borderWidth: '0',\n },\n legend: {\n padding: 'inset.none',\n marginBlockEnd: 'gap.inline',\n textStyle: 'label',\n color: 'foreground.default',\n _disabled: { color: 'foreground.disabled' },\n },\n helperText: {\n textStyle: 'detail',\n color: 'foreground.muted',\n margin: 'inset.none',\n _disabled: { color: 'foreground.disabled' },\n },\n errorText: {\n textStyle: 'detail',\n color: 'error.default',\n margin: 'inset.none',\n },\n },\n})\n"],"mappings":";;AAEA,MAAa,iBAAiB,IAAI;CAChC,OAAO;EAAC;EAAQ;EAAU;EAAc;CAAW;CACnD,MAAM;EACJ,MAAM;GACJ,SAAS;GACT,eAAe;GACf,KAAK;GACL,QAAQ;GACR,SAAS;GACT,aAAa;EACf;EACA,QAAQ;GACN,SAAS;GACT,gBAAgB;GAChB,WAAW;GACX,OAAO;GACP,WAAW,EAAE,OAAO,sBAAsB;EAC5C;EACA,YAAY;GACV,WAAW;GACX,OAAO;GACP,QAAQ;GACR,WAAW,EAAE,OAAO,sBAAsB;EAC5C;EACA,WAAW;GACT,WAAW;GACX,OAAO;GACP,QAAQ;EACV;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { TranslationOverrides } from "../../provider/translations.mjs";
|
|
2
|
+
import { DomAttributes, PartComponent, PartOwnProps, RootOwnProps, SynapseComponentMeta } from "../../system/types.mjs";
|
|
3
|
+
import { Size } from "../../shared/size-scale.mjs";
|
|
4
|
+
import { ReactNode } from "react";
|
|
5
|
+
//#region src/components/file-upload/file-upload.d.ts
|
|
6
|
+
export type FileUploadRejectReason = 'TOO_MANY_FILES' | 'FILE_INVALID_TYPE' | 'FILE_TOO_LARGE' | 'FILE_TOO_SMALL' | 'FILE_INVALID' | 'FILE_EXISTS';
|
|
7
|
+
export interface FileUploadRejection {
|
|
8
|
+
readonly file: File;
|
|
9
|
+
readonly errors: readonly FileUploadRejectReason[];
|
|
10
|
+
}
|
|
11
|
+
export interface FileUploadChangeDetails {
|
|
12
|
+
readonly acceptedFiles: readonly File[];
|
|
13
|
+
readonly rejectedFiles: readonly FileUploadRejection[];
|
|
14
|
+
}
|
|
15
|
+
export interface FileUploadAcceptDetails {
|
|
16
|
+
readonly files: readonly File[];
|
|
17
|
+
}
|
|
18
|
+
export interface FileUploadRejectDetails {
|
|
19
|
+
readonly files: readonly FileUploadRejection[];
|
|
20
|
+
}
|
|
21
|
+
export interface FileUploadRootProps {
|
|
22
|
+
/** 제어되는 수락된 파일. */
|
|
23
|
+
acceptedFiles?: readonly File[];
|
|
24
|
+
/** 비제어 초기 파일. `acceptedFiles`가 주어지면 무시됩니다. */
|
|
25
|
+
defaultAcceptedFiles?: readonly File[];
|
|
26
|
+
/** 쥐고 있는 파일이 바뀔 때마다 알림을 받으며, 수락이든 거부든 마찬가지입니다. */
|
|
27
|
+
onFileChange?: (details: FileUploadChangeDetails) => void;
|
|
28
|
+
/** 파일이 수락될 때 알림을 받습니다. */
|
|
29
|
+
onFileAccept?: (details: FileUploadAcceptDetails) => void;
|
|
30
|
+
/** 파일이 거부될 때 각각의 이유와 함께 알림을 받습니다. */
|
|
31
|
+
onFileReject?: (details: FileUploadRejectDetails) => void;
|
|
32
|
+
/**
|
|
33
|
+
* 업로드가 진행 중입니다.
|
|
34
|
+
*
|
|
35
|
+
* 컴포넌트는 파일을 받아들이고 업로드는 사용처가 하므로, 이 사실은 사용처만 압니다.
|
|
36
|
+
* `FileUpload.Loading`을 움직입니다.
|
|
37
|
+
*/
|
|
38
|
+
loading?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* 업로드가 실패했습니다.
|
|
41
|
+
*
|
|
42
|
+
* `FileUpload.Error`를 움직이며, `loading`보다 우선합니다 — 실패한 요청은 대기 중인 요청이
|
|
43
|
+
* 아닙니다. 문구는 사용처의 몫이며, 이 컴포넌트는 문구를 싣지 않습니다.
|
|
44
|
+
*/
|
|
45
|
+
error?: boolean;
|
|
46
|
+
/** 선택기가 무엇을 제시하는지이며, MIME 타입이나 확장자로 줍니다. */
|
|
47
|
+
accept?: string | readonly string[] | Record<string, readonly string[]>;
|
|
48
|
+
/** 쥘 수 있는 파일의 최대 개수. 기본값은 1입니다. */
|
|
49
|
+
maxFiles?: number;
|
|
50
|
+
/** 파일 하나의 최대 크기이며, 단위는 바이트입니다. */
|
|
51
|
+
maxFileSize?: number;
|
|
52
|
+
/** 파일 하나의 최소 크기이며, 단위는 바이트입니다. */
|
|
53
|
+
minFileSize?: number;
|
|
54
|
+
/** 파일이 수락되기 전에 거부합니다. 이유를 돌려주거나, 수락하려면 null을 돌려줍니다. */
|
|
55
|
+
validate?: (file: File) => readonly FileUploadRejectReason[] | null;
|
|
56
|
+
/** 들어오는 파일을 다시 씁니다 — 이를테면 압축하거나 이름을 바꿉니다. */
|
|
57
|
+
transformFiles?: (files: readonly File[]) => Promise<readonly File[]>;
|
|
58
|
+
/** 파일뿐 아니라 끌어다 놓은 디렉터리도 받아들입니다. */
|
|
59
|
+
directory?: boolean;
|
|
60
|
+
/** 모바일 선택기가 어느 카메라를 여는지. */
|
|
61
|
+
capture?: 'user' | 'environment';
|
|
62
|
+
/** 끌어다 놓기를 허용합니다. 기본값은 true입니다. */
|
|
63
|
+
allowDrop?: boolean;
|
|
64
|
+
/** 페이지의 다른 곳에 파일을 떨어뜨렸을 때 페이지가 이동해 버리는 것을 막습니다. */
|
|
65
|
+
preventDocumentDrop?: boolean;
|
|
66
|
+
/** 폼 필드 이름. 이것이 없으면 컨트롤은 아무것도 제출하지 않습니다. */
|
|
67
|
+
name?: string;
|
|
68
|
+
/** 비활성화된 FileUpload는 제출되지 않고 반응하지도 않습니다. */
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
/** 읽기 전용 FileUpload는 가진 파일을 보여 주지만 더 받아들이지는 않습니다. */
|
|
71
|
+
readOnly?: boolean;
|
|
72
|
+
/** 보조 기술에 `aria-invalid`로 알려집니다. */
|
|
73
|
+
invalid?: boolean;
|
|
74
|
+
/** 제약 검증: 폼이 제출되려면 파일이 있어야 합니다. */
|
|
75
|
+
required?: boolean;
|
|
76
|
+
/** 파일 크기를 표기할 때 쓰는 로캘. 기본값은 provider의 로캘입니다. */
|
|
77
|
+
locale?: string;
|
|
78
|
+
/** 이 FileUpload에만 적용되는 접근성 문자열이며, provider의 것보다 우선합니다. */
|
|
79
|
+
translations?: TranslationOverrides;
|
|
80
|
+
/** 하나의 공유 척도에서 옵니다. 모든 컴포넌트가 그렇듯 기본값은 `md`입니다. */
|
|
81
|
+
size?: Size;
|
|
82
|
+
/** 팩토리가 생성하는 식별자를 덮어씁니다. 서버와 클라이언트에서 동일합니다. */
|
|
83
|
+
id?: string;
|
|
84
|
+
}
|
|
85
|
+
export declare const FileUpload: {
|
|
86
|
+
meta: SynapseComponentMeta;
|
|
87
|
+
Root: ((props: FileUploadRootProps & RootOwnProps & PartOwnProps<HTMLElement> & DomAttributes) => ReactNode) & {
|
|
88
|
+
readonly displayName: string;
|
|
89
|
+
};
|
|
90
|
+
ClearTrigger: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
91
|
+
Dropzone: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
92
|
+
Error: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
93
|
+
Item: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
94
|
+
ItemDeleteTrigger: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
95
|
+
ItemGroup: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
96
|
+
ItemName: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
97
|
+
ItemPreview: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
98
|
+
ItemPreviewImage: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
99
|
+
ItemSizeText: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
100
|
+
Label: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
101
|
+
Loading: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
102
|
+
Trigger: PartComponent<HTMLElement, Record<string, unknown>>;
|
|
103
|
+
};
|
|
104
|
+
//#endregion
|
|
105
|
+
//# sourceMappingURL=file-upload.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload.d.mts","names":[],"sources":["../../../src/components/file-upload/file-upload.tsx"],"mappings":";;;;;YAoBY;iBAQK;WACN,MAAM;WACN,iBAAiB;;iBAGX;WACN,wBAAwB;WACxB,wBAAwB;;iBAGlB;WACN,gBAAgB;;iBAGV;WACN,gBAAgB;;iBAGV;;EAEf,yBAAyB;;EAEzB,gCAAgC;;EAEhC,gBAAgB,SAAS;;EAEzB,gBAAgB,SAAS;;EAEzB,gBAAgB,SAAS;;;;;;;EAOzB;;;;;;;EAOA;;EAEA,sCAAsC;;EAEtC;;EAEA;;EAEA;;EAEA,YAAY,MAAM,kBAAkB;;EAEpC,kBAAkB,gBAAgB,WAAW,iBAAiB;;EAE9D;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,eAAe;;EAEf,OAAO;;EAEP;;qBA2GW;QAAA"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { resolveSize, sizeBelow } from "../../shared/size-scale.mjs";
|
|
3
|
+
import { useTranslations } from "../../provider/locale-context.mjs";
|
|
4
|
+
import { close } from "../../icons/src/close.mjs";
|
|
5
|
+
import { file } from "../../icons/src/file.mjs";
|
|
6
|
+
import { trash } from "../../icons/src/trash.mjs";
|
|
7
|
+
import "../../icons/src/index.mjs";
|
|
8
|
+
import { Icon } from "../../shared/icon.mjs";
|
|
9
|
+
import { useFieldContext } from "../../shared/field-context.mjs";
|
|
10
|
+
import { defineComponent } from "../../system/create-component.mjs";
|
|
11
|
+
import { buttonPartClass } from "../../shared/button-style.mjs";
|
|
12
|
+
import { resolveMachineTranslations } from "../machine-translations.mjs";
|
|
13
|
+
import { fileUploadRecipe, fileUploadStateSlots } from "./file-upload.recipe.mjs";
|
|
14
|
+
import { createStateParts } from "../../shared/state-parts.mjs";
|
|
15
|
+
import { createElement } from "react";
|
|
16
|
+
import { jsx } from "react/jsx-runtime";
|
|
17
|
+
import * as fileUpload from "@zag-js/file-upload";
|
|
18
|
+
//#region src/components/file-upload/file-upload.tsx
|
|
19
|
+
const MACHINE_STRINGS = { dropzone: "fileUpload.dropzone.label" };
|
|
20
|
+
function FileUploadDropzone(props) {
|
|
21
|
+
const field = useFieldContext();
|
|
22
|
+
return createElement("div", {
|
|
23
|
+
...props,
|
|
24
|
+
"aria-labelledby": props["aria-labelledby"] ?? field?.ids.label
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const base = defineComponent()({
|
|
28
|
+
name: "FileUpload",
|
|
29
|
+
module: fileUpload,
|
|
30
|
+
rootPart: "root",
|
|
31
|
+
elements: {
|
|
32
|
+
dropzone: FileUploadDropzone,
|
|
33
|
+
itemPreviewImage: "img",
|
|
34
|
+
itemName: "span",
|
|
35
|
+
itemSizeText: "span"
|
|
36
|
+
},
|
|
37
|
+
defaultContent: {
|
|
38
|
+
clearTrigger: () => /* @__PURE__ */ jsx(Icon, { icon: close }),
|
|
39
|
+
itemDeleteTrigger: () => /* @__PURE__ */ jsx(Icon, { icon: trash }),
|
|
40
|
+
itemPreview: () => /* @__PURE__ */ jsx(Icon, { icon: file }),
|
|
41
|
+
itemName: (_api, _t, args) => args["file"] instanceof File ? args["file"].name : null,
|
|
42
|
+
itemSizeText: (api, _t, args) => args["file"] instanceof File ? api.getFileSize(args["file"]) : null
|
|
43
|
+
},
|
|
44
|
+
getterProps: {
|
|
45
|
+
dropzone: ["disableClick"],
|
|
46
|
+
itemGroup: ["type"],
|
|
47
|
+
item: ["file", "type"],
|
|
48
|
+
itemName: ["file", "type"],
|
|
49
|
+
itemPreview: ["file", "type"],
|
|
50
|
+
itemPreviewImage: [
|
|
51
|
+
"file",
|
|
52
|
+
"type",
|
|
53
|
+
"url"
|
|
54
|
+
],
|
|
55
|
+
itemSizeText: ["file", "type"],
|
|
56
|
+
itemDeleteTrigger: ["file", "type"]
|
|
57
|
+
},
|
|
58
|
+
rootOwnedGetters: [{
|
|
59
|
+
name: "hiddenInput",
|
|
60
|
+
getter: "getHiddenInputProps",
|
|
61
|
+
render: (props) => createElement("input", {
|
|
62
|
+
...props,
|
|
63
|
+
"data-synapse-form-field": ""
|
|
64
|
+
})
|
|
65
|
+
}],
|
|
66
|
+
amendBehaviorProps: {
|
|
67
|
+
dropzone: (behaviorProps) => ({ "aria-invalid": behaviorProps["data-invalid"] === "" ? true : void 0 }),
|
|
68
|
+
trigger: (behaviorProps) => ({ "aria-invalid": behaviorProps["data-invalid"] === "" ? true : void 0 }),
|
|
69
|
+
clearTrigger: (_behaviorProps, _api, _args, translate) => ({ "aria-label": translate("fileUpload.clearTrigger.label") })
|
|
70
|
+
},
|
|
71
|
+
machineTranslations: MACHINE_STRINGS,
|
|
72
|
+
field: {
|
|
73
|
+
ids: (field) => ({ label: field.label }),
|
|
74
|
+
describe: ["dropzone", "trigger"],
|
|
75
|
+
labelable: false
|
|
76
|
+
},
|
|
77
|
+
useMachineProps: (props) => {
|
|
78
|
+
const translate = useTranslations(props.translations);
|
|
79
|
+
return { translations: {
|
|
80
|
+
...resolveMachineTranslations(MACHINE_STRINGS, translate),
|
|
81
|
+
itemPreview: (file) => translate("fileUpload.item.preview", { name: file.name }),
|
|
82
|
+
deleteFile: (file) => translate("fileUpload.deleteTrigger.label", { name: file.name })
|
|
83
|
+
} };
|
|
84
|
+
},
|
|
85
|
+
variantProps: [
|
|
86
|
+
"size",
|
|
87
|
+
"loading",
|
|
88
|
+
"error"
|
|
89
|
+
],
|
|
90
|
+
slots: (props) => {
|
|
91
|
+
const size = resolveSize(props.size, "FileUpload");
|
|
92
|
+
const own = fileUploadRecipe.raw({ size });
|
|
93
|
+
const compact = {
|
|
94
|
+
variant: "ghost",
|
|
95
|
+
tone: "neutral",
|
|
96
|
+
size: sizeBelow(size)
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
...fileUploadRecipe({ size }),
|
|
100
|
+
trigger: buttonPartClass({
|
|
101
|
+
variant: "outline",
|
|
102
|
+
tone: "neutral",
|
|
103
|
+
size
|
|
104
|
+
}, own.trigger),
|
|
105
|
+
clearTrigger: buttonPartClass(compact, own.clearTrigger),
|
|
106
|
+
itemDeleteTrigger: buttonPartClass(compact, own.itemDeleteTrigger)
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
const state = createStateParts({
|
|
111
|
+
component: "FileUpload",
|
|
112
|
+
when: {
|
|
113
|
+
error: (props) => props.error === true,
|
|
114
|
+
loading: (props) => props.loading === true
|
|
115
|
+
},
|
|
116
|
+
absent: { empty: "A FileUpload with no files is not an empty state: the dropzone is already on the page telling the user what to do, and a second region saying the same thing would tell them twice that they have not yet done it. The list of chosen files simply has no rows." },
|
|
117
|
+
slots: () => fileUploadStateSlots
|
|
118
|
+
});
|
|
119
|
+
const FileUpload = {
|
|
120
|
+
...base,
|
|
121
|
+
...state.parts,
|
|
122
|
+
Root: state.wrapRoot(base.Root)
|
|
123
|
+
};
|
|
124
|
+
//#endregion
|
|
125
|
+
export { FileUpload };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=file-upload.mjs.map
|