@solid2-aria/components 0.0.0-stage → 0.0.1
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 +58 -2
- package/dist/LICENSES/Apache-2.0.txt +201 -0
- package/dist/LICENSES/react-spectrum-NOTICE.txt +242 -0
- package/dist/NOTICE.txt +636 -0
- package/dist/browser/autocomplete.d.ts +35 -0
- package/dist/browser/autocomplete.js +69 -0
- package/dist/browser/autocomplete.js.map +1 -0
- package/dist/browser/breadcrumbs.d.ts +71 -0
- package/dist/browser/breadcrumbs.js +121 -0
- package/dist/browser/breadcrumbs.js.map +1 -0
- package/dist/browser/button.d.ts +36 -0
- package/dist/browser/button.js +156 -0
- package/dist/browser/button.js.map +1 -0
- package/dist/browser/calendar.d.ts +103 -0
- package/dist/browser/calendar.js +581 -0
- package/dist/browser/calendar.js.map +1 -0
- package/dist/browser/checkbox.d.ts +67 -0
- package/dist/browser/checkbox.js +345 -0
- package/dist/browser/checkbox.js.map +1 -0
- package/dist/browser/collection-dnd.d.ts +56 -0
- package/dist/browser/collection-dnd.js +156 -0
- package/dist/browser/collection-dnd.js.map +1 -0
- package/dist/browser/collection.d.ts +153 -0
- package/dist/browser/collection.js +106 -0
- package/dist/browser/collection.js.map +1 -0
- package/dist/browser/color-area.d.ts +21 -0
- package/dist/browser/color-area.js +94 -0
- package/dist/browser/color-area.js.map +1 -0
- package/dist/browser/color-field.d.ts +39 -0
- package/dist/browser/color-field.js +232 -0
- package/dist/browser/color-field.js.map +1 -0
- package/dist/browser/color-picker.d.ts +30 -0
- package/dist/browser/color-picker.js +84 -0
- package/dist/browser/color-picker.js.map +1 -0
- package/dist/browser/color-slider.d.ts +23 -0
- package/dist/browser/color-slider.js +132 -0
- package/dist/browser/color-slider.js.map +1 -0
- package/dist/browser/color-swatch-picker.d.ts +29 -0
- package/dist/browser/color-swatch-picker.js +131 -0
- package/dist/browser/color-swatch-picker.js.map +1 -0
- package/dist/browser/color-swatch.d.ts +19 -0
- package/dist/browser/color-swatch.js +42 -0
- package/dist/browser/color-swatch.js.map +1 -0
- package/dist/browser/color-thumb.d.ts +42 -0
- package/dist/browser/color-thumb.js +114 -0
- package/dist/browser/color-thumb.js.map +1 -0
- package/dist/browser/color-wheel.d.ts +29 -0
- package/dist/browser/color-wheel.js +109 -0
- package/dist/browser/color-wheel.js.map +1 -0
- package/dist/browser/combo-box.d.ts +113 -0
- package/dist/browser/combo-box.js +394 -0
- package/dist/browser/combo-box.js.map +1 -0
- package/dist/browser/create-drag-and-drop.d.ts +61 -0
- package/dist/browser/create-drag-and-drop.js +56 -0
- package/dist/browser/create-drag-and-drop.js.map +1 -0
- package/dist/browser/date-field.d.ts +71 -0
- package/dist/browser/date-field.js +508 -0
- package/dist/browser/date-field.js.map +1 -0
- package/dist/browser/date-picker.d.ts +50 -0
- package/dist/browser/date-picker.js +403 -0
- package/dist/browser/date-picker.js.map +1 -0
- package/dist/browser/dialog.d.ts +35 -0
- package/dist/browser/dialog.js +148 -0
- package/dist/browser/dialog.js.map +1 -0
- package/dist/browser/disclosure.d.ts +56 -0
- package/dist/browser/disclosure.js +180 -0
- package/dist/browser/disclosure.js.map +1 -0
- package/dist/browser/drag-and-drop.d.ts +43 -0
- package/dist/browser/drag-and-drop.js +66 -0
- package/dist/browser/drag-and-drop.js.map +1 -0
- package/dist/browser/drop-zone.d.ts +33 -0
- package/dist/browser/drop-zone.js +161 -0
- package/dist/browser/drop-zone.js.map +1 -0
- package/dist/browser/field-error.d.ts +28 -0
- package/dist/browser/field-error.js +60 -0
- package/dist/browser/field-error.js.map +1 -0
- package/dist/browser/file-trigger.d.ts +30 -0
- package/dist/browser/file-trigger.js +66 -0
- package/dist/browser/file-trigger.js.map +1 -0
- package/dist/browser/form.d.ts +28 -0
- package/dist/browser/form.js +64 -0
- package/dist/browser/form.js.map +1 -0
- package/dist/browser/grid-layout.d.ts +22 -0
- package/dist/browser/grid-layout.js +30 -0
- package/dist/browser/grid-layout.js.map +1 -0
- package/dist/browser/grid-list.d.ts +95 -0
- package/dist/browser/grid-list.js +609 -0
- package/dist/browser/grid-list.js.map +1 -0
- package/dist/browser/group.d.ts +35 -0
- package/dist/browser/group.js +92 -0
- package/dist/browser/group.js.map +1 -0
- package/dist/browser/header.d.ts +25 -0
- package/dist/browser/header.js +57 -0
- package/dist/browser/header.js.map +1 -0
- package/dist/browser/heading.d.ts +26 -0
- package/dist/browser/heading.js +53 -0
- package/dist/browser/heading.js.map +1 -0
- package/dist/browser/hidden-date-input.d.ts +34 -0
- package/dist/browser/hidden-date-input.js +84 -0
- package/dist/browser/hidden-date-input.js.map +1 -0
- package/dist/browser/index.d.ts +133 -0
- package/dist/browser/index.js +98 -0
- package/dist/browser/input.d.ts +33 -0
- package/dist/browser/input.js +94 -0
- package/dist/browser/input.js.map +1 -0
- package/dist/browser/intl/ar-AE.js +11 -0
- package/dist/browser/intl/ar-AE.js.map +1 -0
- package/dist/browser/intl/bg-BG.js +11 -0
- package/dist/browser/intl/bg-BG.js.map +1 -0
- package/dist/browser/intl/cs-CZ.js +11 -0
- package/dist/browser/intl/cs-CZ.js.map +1 -0
- package/dist/browser/intl/da-DK.js +11 -0
- package/dist/browser/intl/da-DK.js.map +1 -0
- package/dist/browser/intl/de-DE.js +11 -0
- package/dist/browser/intl/de-DE.js.map +1 -0
- package/dist/browser/intl/el-GR.js +11 -0
- package/dist/browser/intl/el-GR.js.map +1 -0
- package/dist/browser/intl/en-US.js +11 -0
- package/dist/browser/intl/en-US.js.map +1 -0
- package/dist/browser/intl/es-ES.js +11 -0
- package/dist/browser/intl/es-ES.js.map +1 -0
- package/dist/browser/intl/et-EE.js +11 -0
- package/dist/browser/intl/et-EE.js.map +1 -0
- package/dist/browser/intl/fi-FI.js +11 -0
- package/dist/browser/intl/fi-FI.js.map +1 -0
- package/dist/browser/intl/fr-FR.js +11 -0
- package/dist/browser/intl/fr-FR.js.map +1 -0
- package/dist/browser/intl/he-IL.js +11 -0
- package/dist/browser/intl/he-IL.js.map +1 -0
- package/dist/browser/intl/hr-HR.js +11 -0
- package/dist/browser/intl/hr-HR.js.map +1 -0
- package/dist/browser/intl/hu-HU.js +11 -0
- package/dist/browser/intl/hu-HU.js.map +1 -0
- package/dist/browser/intl/index.js +75 -0
- package/dist/browser/intl/index.js.map +1 -0
- package/dist/browser/intl/it-IT.js +11 -0
- package/dist/browser/intl/it-IT.js.map +1 -0
- package/dist/browser/intl/ja-JP.js +11 -0
- package/dist/browser/intl/ja-JP.js.map +1 -0
- package/dist/browser/intl/ko-KR.js +11 -0
- package/dist/browser/intl/ko-KR.js.map +1 -0
- package/dist/browser/intl/lt-LT.js +11 -0
- package/dist/browser/intl/lt-LT.js.map +1 -0
- package/dist/browser/intl/lv-LV.js +11 -0
- package/dist/browser/intl/lv-LV.js.map +1 -0
- package/dist/browser/intl/nb-NO.js +11 -0
- package/dist/browser/intl/nb-NO.js.map +1 -0
- package/dist/browser/intl/nl-NL.js +11 -0
- package/dist/browser/intl/nl-NL.js.map +1 -0
- package/dist/browser/intl/pl-PL.js +11 -0
- package/dist/browser/intl/pl-PL.js.map +1 -0
- package/dist/browser/intl/pt-BR.js +11 -0
- package/dist/browser/intl/pt-BR.js.map +1 -0
- package/dist/browser/intl/pt-PT.js +11 -0
- package/dist/browser/intl/pt-PT.js.map +1 -0
- package/dist/browser/intl/ro-RO.js +11 -0
- package/dist/browser/intl/ro-RO.js.map +1 -0
- package/dist/browser/intl/ru-RU.js +11 -0
- package/dist/browser/intl/ru-RU.js.map +1 -0
- package/dist/browser/intl/sk-SK.js +11 -0
- package/dist/browser/intl/sk-SK.js.map +1 -0
- package/dist/browser/intl/sl-SI.js +11 -0
- package/dist/browser/intl/sl-SI.js.map +1 -0
- package/dist/browser/intl/sr-SP.js +11 -0
- package/dist/browser/intl/sr-SP.js.map +1 -0
- package/dist/browser/intl/sv-SE.js +11 -0
- package/dist/browser/intl/sv-SE.js.map +1 -0
- package/dist/browser/intl/tr-TR.js +11 -0
- package/dist/browser/intl/tr-TR.js.map +1 -0
- package/dist/browser/intl/uk-UA.js +11 -0
- package/dist/browser/intl/uk-UA.js.map +1 -0
- package/dist/browser/intl/zh-CN.js +11 -0
- package/dist/browser/intl/zh-CN.js.map +1 -0
- package/dist/browser/intl/zh-TW.js +11 -0
- package/dist/browser/intl/zh-TW.js.map +1 -0
- package/dist/browser/keyboard.d.ts +25 -0
- package/dist/browser/keyboard.js +50 -0
- package/dist/browser/keyboard.js.map +1 -0
- package/dist/browser/label.d.ts +26 -0
- package/dist/browser/label.js +53 -0
- package/dist/browser/label.js.map +1 -0
- package/dist/browser/link.d.ts +34 -0
- package/dist/browser/link.js +92 -0
- package/dist/browser/link.js.map +1 -0
- package/dist/browser/list-box.d.ts +171 -0
- package/dist/browser/list-box.js +547 -0
- package/dist/browser/list-box.js.map +1 -0
- package/dist/browser/menu.d.ts +150 -0
- package/dist/browser/menu.js +597 -0
- package/dist/browser/menu.js.map +1 -0
- package/dist/browser/meter.d.ts +29 -0
- package/dist/browser/meter.js +73 -0
- package/dist/browser/meter.js.map +1 -0
- package/dist/browser/modal.d.ts +48 -0
- package/dist/browser/modal.js +190 -0
- package/dist/browser/modal.js.map +1 -0
- package/dist/browser/navigation-tree.d.ts +54 -0
- package/dist/browser/navigation-tree.js +233 -0
- package/dist/browser/navigation-tree.js.map +1 -0
- package/dist/browser/number-field.d.ts +36 -0
- package/dist/browser/number-field.js +179 -0
- package/dist/browser/number-field.js.map +1 -0
- package/dist/browser/overlay-arrow.d.ts +32 -0
- package/dist/browser/overlay-arrow.js +65 -0
- package/dist/browser/overlay-arrow.js.map +1 -0
- package/dist/browser/overlay-contexts.d.ts +22 -0
- package/dist/browser/overlay-contexts.js +24 -0
- package/dist/browser/overlay-contexts.js.map +1 -0
- package/dist/browser/popover.d.ts +50 -0
- package/dist/browser/popover.js +255 -0
- package/dist/browser/popover.js.map +1 -0
- package/dist/browser/preview-trigger.d.ts +25 -0
- package/dist/browser/preview-trigger.js +93 -0
- package/dist/browser/preview-trigger.js.map +1 -0
- package/dist/browser/progress-bar.d.ts +30 -0
- package/dist/browser/progress-bar.js +76 -0
- package/dist/browser/progress-bar.js.map +1 -0
- package/dist/browser/radio-group.d.ts +67 -0
- package/dist/browser/radio-group.js +336 -0
- package/dist/browser/radio-group.js.map +1 -0
- package/dist/browser/search-field.d.ts +34 -0
- package/dist/browser/search-field.js +156 -0
- package/dist/browser/search-field.js.map +1 -0
- package/dist/browser/select.d.ts +115 -0
- package/dist/browser/select.js +351 -0
- package/dist/browser/select.js.map +1 -0
- package/dist/browser/selection-indicator.d.ts +25 -0
- package/dist/browser/selection-indicator.js +40 -0
- package/dist/browser/selection-indicator.js.map +1 -0
- package/dist/browser/separator.d.ts +30 -0
- package/dist/browser/separator.js +68 -0
- package/dist/browser/separator.js.map +1 -0
- package/dist/browser/shared-element-transition.d.ts +35 -0
- package/dist/browser/shared-element-transition.js +141 -0
- package/dist/browser/shared-element-transition.js.map +1 -0
- package/dist/browser/sheet.d.ts +64 -0
- package/dist/browser/sheet.js +982 -0
- package/dist/browser/sheet.js.map +1 -0
- package/dist/browser/slider.d.ts +77 -0
- package/dist/browser/slider.js +318 -0
- package/dist/browser/slider.js.map +1 -0
- package/dist/browser/switch.d.ts +54 -0
- package/dist/browser/switch.js +240 -0
- package/dist/browser/switch.js.map +1 -0
- package/dist/browser/table-layout.d.ts +22 -0
- package/dist/browser/table-layout.js +31 -0
- package/dist/browser/table-layout.js.map +1 -0
- package/dist/browser/table.d.ts +184 -0
- package/dist/browser/table.js +1268 -0
- package/dist/browser/table.js.map +1 -0
- package/dist/browser/tabs.d.ts +194 -0
- package/dist/browser/tabs.js +378 -0
- package/dist/browser/tabs.js.map +1 -0
- package/dist/browser/tag-group.d.ts +112 -0
- package/dist/browser/tag-group.js +291 -0
- package/dist/browser/tag-group.js.map +1 -0
- package/dist/browser/text-area.d.ts +16 -0
- package/dist/browser/text-area.js +75 -0
- package/dist/browser/text-area.js.map +1 -0
- package/dist/browser/text-field.d.ts +31 -0
- package/dist/browser/text-field.js +152 -0
- package/dist/browser/text-field.js.map +1 -0
- package/dist/browser/text.d.ts +25 -0
- package/dist/browser/text.js +52 -0
- package/dist/browser/text.js.map +1 -0
- package/dist/browser/toast.d.ts +66 -0
- package/dist/browser/toast.js +226 -0
- package/dist/browser/toast.js.map +1 -0
- package/dist/browser/toggle-button-group.d.ts +32 -0
- package/dist/browser/toggle-button-group.js +74 -0
- package/dist/browser/toggle-button-group.js.map +1 -0
- package/dist/browser/toggle-button.d.ts +33 -0
- package/dist/browser/toggle-button.js +119 -0
- package/dist/browser/toggle-button.js.map +1 -0
- package/dist/browser/token-field.d.ts +124 -0
- package/dist/browser/token-field.js +277 -0
- package/dist/browser/token-field.js.map +1 -0
- package/dist/browser/toolbar.d.ts +28 -0
- package/dist/browser/toolbar.js +51 -0
- package/dist/browser/toolbar.js.map +1 -0
- package/dist/browser/tooltip.d.ts +44 -0
- package/dist/browser/tooltip.js +183 -0
- package/dist/browser/tooltip.js.map +1 -0
- package/dist/browser/tree-drop-target-delegate.d.ts +33 -0
- package/dist/browser/tree-drop-target-delegate.js +178 -0
- package/dist/browser/tree-drop-target-delegate.js.map +1 -0
- package/dist/browser/tree.d.ts +98 -0
- package/dist/browser/tree.js +699 -0
- package/dist/browser/tree.js.map +1 -0
- package/dist/browser/utils.d.ts +94 -0
- package/dist/browser/utils.js +173 -0
- package/dist/browser/utils.js.map +1 -0
- package/dist/browser/virtualizer.d.ts +33 -0
- package/dist/browser/virtualizer.js +179 -0
- package/dist/browser/virtualizer.js.map +1 -0
- package/dist/server/autocomplete.js +125 -0
- package/dist/server/autocomplete.js.map +1 -0
- package/dist/server/breadcrumbs.js +185 -0
- package/dist/server/breadcrumbs.js.map +1 -0
- package/dist/server/button.js +252 -0
- package/dist/server/button.js.map +1 -0
- package/dist/server/calendar.js +1054 -0
- package/dist/server/calendar.js.map +1 -0
- package/dist/server/checkbox.js +595 -0
- package/dist/server/checkbox.js.map +1 -0
- package/dist/server/collection-dnd.js +217 -0
- package/dist/server/collection-dnd.js.map +1 -0
- package/dist/server/collection.js +106 -0
- package/dist/server/collection.js.map +1 -0
- package/dist/server/color-area.js +142 -0
- package/dist/server/color-area.js.map +1 -0
- package/dist/server/color-field.js +394 -0
- package/dist/server/color-field.js.map +1 -0
- package/dist/server/color-picker.js +170 -0
- package/dist/server/color-picker.js.map +1 -0
- package/dist/server/color-slider.js +328 -0
- package/dist/server/color-slider.js.map +1 -0
- package/dist/server/color-swatch-picker.js +234 -0
- package/dist/server/color-swatch-picker.js.map +1 -0
- package/dist/server/color-swatch.js +52 -0
- package/dist/server/color-swatch.js.map +1 -0
- package/dist/server/color-thumb.js +132 -0
- package/dist/server/color-thumb.js.map +1 -0
- package/dist/server/color-wheel.js +188 -0
- package/dist/server/color-wheel.js.map +1 -0
- package/dist/server/combo-box.js +914 -0
- package/dist/server/combo-box.js.map +1 -0
- package/dist/server/create-drag-and-drop.js +56 -0
- package/dist/server/create-drag-and-drop.js.map +1 -0
- package/dist/server/date-field.js +1055 -0
- package/dist/server/date-field.js.map +1 -0
- package/dist/server/date-picker.js +1079 -0
- package/dist/server/date-picker.js.map +1 -0
- package/dist/server/dialog.js +295 -0
- package/dist/server/dialog.js.map +1 -0
- package/dist/server/disclosure.js +292 -0
- package/dist/server/disclosure.js.map +1 -0
- package/dist/server/drag-and-drop.js +66 -0
- package/dist/server/drag-and-drop.js.map +1 -0
- package/dist/server/drop-zone.js +241 -0
- package/dist/server/drop-zone.js.map +1 -0
- package/dist/server/field-error.js +90 -0
- package/dist/server/field-error.js.map +1 -0
- package/dist/server/file-trigger.js +98 -0
- package/dist/server/file-trigger.js.map +1 -0
- package/dist/server/form.js +116 -0
- package/dist/server/form.js.map +1 -0
- package/dist/server/grid-layout.js +30 -0
- package/dist/server/grid-layout.js.map +1 -0
- package/dist/server/grid-list.js +1015 -0
- package/dist/server/grid-list.js.map +1 -0
- package/dist/server/group.js +146 -0
- package/dist/server/group.js.map +1 -0
- package/dist/server/header.js +72 -0
- package/dist/server/header.js.map +1 -0
- package/dist/server/heading.js +68 -0
- package/dist/server/heading.js.map +1 -0
- package/dist/server/hidden-date-input.js +79 -0
- package/dist/server/hidden-date-input.js.map +1 -0
- package/dist/server/index.js +98 -0
- package/dist/server/input.js +134 -0
- package/dist/server/input.js.map +1 -0
- package/dist/server/intl/ar-AE.js +11 -0
- package/dist/server/intl/ar-AE.js.map +1 -0
- package/dist/server/intl/bg-BG.js +11 -0
- package/dist/server/intl/bg-BG.js.map +1 -0
- package/dist/server/intl/cs-CZ.js +11 -0
- package/dist/server/intl/cs-CZ.js.map +1 -0
- package/dist/server/intl/da-DK.js +11 -0
- package/dist/server/intl/da-DK.js.map +1 -0
- package/dist/server/intl/de-DE.js +11 -0
- package/dist/server/intl/de-DE.js.map +1 -0
- package/dist/server/intl/el-GR.js +11 -0
- package/dist/server/intl/el-GR.js.map +1 -0
- package/dist/server/intl/en-US.js +11 -0
- package/dist/server/intl/en-US.js.map +1 -0
- package/dist/server/intl/es-ES.js +11 -0
- package/dist/server/intl/es-ES.js.map +1 -0
- package/dist/server/intl/et-EE.js +11 -0
- package/dist/server/intl/et-EE.js.map +1 -0
- package/dist/server/intl/fi-FI.js +11 -0
- package/dist/server/intl/fi-FI.js.map +1 -0
- package/dist/server/intl/fr-FR.js +11 -0
- package/dist/server/intl/fr-FR.js.map +1 -0
- package/dist/server/intl/he-IL.js +11 -0
- package/dist/server/intl/he-IL.js.map +1 -0
- package/dist/server/intl/hr-HR.js +11 -0
- package/dist/server/intl/hr-HR.js.map +1 -0
- package/dist/server/intl/hu-HU.js +11 -0
- package/dist/server/intl/hu-HU.js.map +1 -0
- package/dist/server/intl/index.js +75 -0
- package/dist/server/intl/index.js.map +1 -0
- package/dist/server/intl/it-IT.js +11 -0
- package/dist/server/intl/it-IT.js.map +1 -0
- package/dist/server/intl/ja-JP.js +11 -0
- package/dist/server/intl/ja-JP.js.map +1 -0
- package/dist/server/intl/ko-KR.js +11 -0
- package/dist/server/intl/ko-KR.js.map +1 -0
- package/dist/server/intl/lt-LT.js +11 -0
- package/dist/server/intl/lt-LT.js.map +1 -0
- package/dist/server/intl/lv-LV.js +11 -0
- package/dist/server/intl/lv-LV.js.map +1 -0
- package/dist/server/intl/nb-NO.js +11 -0
- package/dist/server/intl/nb-NO.js.map +1 -0
- package/dist/server/intl/nl-NL.js +11 -0
- package/dist/server/intl/nl-NL.js.map +1 -0
- package/dist/server/intl/pl-PL.js +11 -0
- package/dist/server/intl/pl-PL.js.map +1 -0
- package/dist/server/intl/pt-BR.js +11 -0
- package/dist/server/intl/pt-BR.js.map +1 -0
- package/dist/server/intl/pt-PT.js +11 -0
- package/dist/server/intl/pt-PT.js.map +1 -0
- package/dist/server/intl/ro-RO.js +11 -0
- package/dist/server/intl/ro-RO.js.map +1 -0
- package/dist/server/intl/ru-RU.js +11 -0
- package/dist/server/intl/ru-RU.js.map +1 -0
- package/dist/server/intl/sk-SK.js +11 -0
- package/dist/server/intl/sk-SK.js.map +1 -0
- package/dist/server/intl/sl-SI.js +11 -0
- package/dist/server/intl/sl-SI.js.map +1 -0
- package/dist/server/intl/sr-SP.js +11 -0
- package/dist/server/intl/sr-SP.js.map +1 -0
- package/dist/server/intl/sv-SE.js +11 -0
- package/dist/server/intl/sv-SE.js.map +1 -0
- package/dist/server/intl/tr-TR.js +11 -0
- package/dist/server/intl/tr-TR.js.map +1 -0
- package/dist/server/intl/uk-UA.js +11 -0
- package/dist/server/intl/uk-UA.js.map +1 -0
- package/dist/server/intl/zh-CN.js +11 -0
- package/dist/server/intl/zh-CN.js.map +1 -0
- package/dist/server/intl/zh-TW.js +11 -0
- package/dist/server/intl/zh-TW.js.map +1 -0
- package/dist/server/keyboard.js +65 -0
- package/dist/server/keyboard.js.map +1 -0
- package/dist/server/label.js +68 -0
- package/dist/server/label.js.map +1 -0
- package/dist/server/link.js +138 -0
- package/dist/server/link.js.map +1 -0
- package/dist/server/list-box.js +906 -0
- package/dist/server/list-box.js.map +1 -0
- package/dist/server/menu.js +1188 -0
- package/dist/server/menu.js.map +1 -0
- package/dist/server/meter.js +101 -0
- package/dist/server/meter.js.map +1 -0
- package/dist/server/modal.js +360 -0
- package/dist/server/modal.js.map +1 -0
- package/dist/server/navigation-tree.js +316 -0
- package/dist/server/navigation-tree.js.map +1 -0
- package/dist/server/number-field.js +371 -0
- package/dist/server/number-field.js.map +1 -0
- package/dist/server/overlay-arrow.js +81 -0
- package/dist/server/overlay-arrow.js.map +1 -0
- package/dist/server/overlay-contexts.js +24 -0
- package/dist/server/overlay-contexts.js.map +1 -0
- package/dist/server/popover.js +455 -0
- package/dist/server/popover.js.map +1 -0
- package/dist/server/preview-trigger.js +153 -0
- package/dist/server/preview-trigger.js.map +1 -0
- package/dist/server/progress-bar.js +104 -0
- package/dist/server/progress-bar.js.map +1 -0
- package/dist/server/radio-group.js +586 -0
- package/dist/server/radio-group.js.map +1 -0
- package/dist/server/search-field.js +288 -0
- package/dist/server/search-field.js.map +1 -0
- package/dist/server/select.js +771 -0
- package/dist/server/select.js.map +1 -0
- package/dist/server/selection-indicator.js +54 -0
- package/dist/server/selection-indicator.js.map +1 -0
- package/dist/server/separator.js +91 -0
- package/dist/server/separator.js.map +1 -0
- package/dist/server/shared-element-transition.js +189 -0
- package/dist/server/shared-element-transition.js.map +1 -0
- package/dist/server/sheet.js +1197 -0
- package/dist/server/sheet.js.map +1 -0
- package/dist/server/slider.js +581 -0
- package/dist/server/slider.js.map +1 -0
- package/dist/server/switch.js +400 -0
- package/dist/server/switch.js.map +1 -0
- package/dist/server/table-layout.js +31 -0
- package/dist/server/table-layout.js.map +1 -0
- package/dist/server/table.js +2075 -0
- package/dist/server/table.js.map +1 -0
- package/dist/server/tabs.js +668 -0
- package/dist/server/tabs.js.map +1 -0
- package/dist/server/tag-group.js +538 -0
- package/dist/server/tag-group.js.map +1 -0
- package/dist/server/text-area.js +115 -0
- package/dist/server/text-area.js.map +1 -0
- package/dist/server/text-field.js +272 -0
- package/dist/server/text-field.js.map +1 -0
- package/dist/server/text.js +67 -0
- package/dist/server/text.js.map +1 -0
- package/dist/server/toast.js +449 -0
- package/dist/server/toast.js.map +1 -0
- package/dist/server/toggle-button-group.js +125 -0
- package/dist/server/toggle-button-group.js.map +1 -0
- package/dist/server/toggle-button.js +183 -0
- package/dist/server/toggle-button.js.map +1 -0
- package/dist/server/token-field.js +457 -0
- package/dist/server/token-field.js.map +1 -0
- package/dist/server/toolbar.js +67 -0
- package/dist/server/toolbar.js.map +1 -0
- package/dist/server/tooltip.js +331 -0
- package/dist/server/tooltip.js.map +1 -0
- package/dist/server/tree-drop-target-delegate.js +178 -0
- package/dist/server/tree-drop-target-delegate.js.map +1 -0
- package/dist/server/tree.js +1096 -0
- package/dist/server/tree.js.map +1 -0
- package/dist/server/utils.js +184 -0
- package/dist/server/utils.js.map +1 -0
- package/dist/server/virtualizer.js +254 -0
- package/dist/server/virtualizer.js.map +1 -0
- package/package.json +437 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combo-box.js","names":["<ListStateContext value={null}>\n <CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={\n <ListBoxContext\n value={{\n get items() {\n return props.items ?? props.defaultItems;\n },\n }}\n >\n {content()}\n </ListBoxContext>\n }\n >\n {(collection) => (\n <ComboBoxInner\n props={props}\n collection={collection}\n comboRef={setRef}\n />\n )}\n </CollectionBuilder>\n </ListStateContext>","value={null}","<CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={\n <ListBoxContext\n value={{\n get items() {\n return props.items ?? props.defaultItems;\n },\n }}\n >\n {content()}\n </ListBoxContext>\n }\n >\n {(collection) => (\n <ComboBoxInner\n props={props}\n collection={collection}\n comboRef={setRef}\n />\n )}\n </CollectionBuilder>","createCollection={() => new BaseCollection<T>()}","<ListBoxContext\n value={{\n get items() {\n return props.items ?? props.defaultItems;\n },\n }}\n >\n {content()}\n </ListBoxContext>","value={{\n get items() {\n return props.items ?? props.defaultItems;\n },\n }}","<ComboBoxInner\n props={props}\n collection={collection}\n comboRef={setRef}\n />","comboRef={setRef}","<ComboBoxStateContext value={state}>\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"label\" {\n return \"label\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.buttonProps ?? {}),\n {\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <InputContext\n value={mergeProps(\n merge(() => aria.inputProps ?? {}),\n {\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n }\n )}\n >\n <FieldInputContext\n value={\n // SAFETY: These props target the same native input; the text callback and ref replace the DOM-facing value handlers.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The autocomplete field context uses a renderer-neutral input contract.\n mergeProps(\n omit(\n merge(() => aria.inputProps),\n \"value\",\n \"onChange\",\n \"id\",\n \"onFocus\",\n \"onBlur\"\n ),\n {\n onChange: (value: string) => {\n state.setInputValue(value);\n },\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n get value() {\n return state.inputValue;\n },\n }\n ) as unknown as ContextValue<InputProps, HTMLElement>\n }\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </FieldInputContext>\n </InputContext>\n </ButtonContext>\n </LabelContext>\n </ComboBoxStateContext>","value={state}","<LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"label\" {\n return \"label\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.buttonProps ?? {}),\n {\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <InputContext\n value={mergeProps(\n merge(() => aria.inputProps ?? {}),\n {\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n }\n )}\n >\n <FieldInputContext\n value={\n // SAFETY: These props target the same native input; the text callback and ref replace the DOM-facing value handlers.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The autocomplete field context uses a renderer-neutral input contract.\n mergeProps(\n omit(\n merge(() => aria.inputProps),\n \"value\",\n \"onChange\",\n \"id\",\n \"onFocus\",\n \"onBlur\"\n ),\n {\n onChange: (value: string) => {\n state.setInputValue(value);\n },\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n get value() {\n return state.inputValue;\n },\n }\n ) as unknown as ContextValue<InputProps, HTMLElement>\n }\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </FieldInputContext>\n </InputContext>\n </ButtonContext>\n </LabelContext>","<ButtonContext\n value={mergeProps(\n merge(() => aria.buttonProps ?? {}),\n {\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <InputContext\n value={mergeProps(\n merge(() => aria.inputProps ?? {}),\n {\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n }\n )}\n >\n <FieldInputContext\n value={\n // SAFETY: These props target the same native input; the text callback and ref replace the DOM-facing value handlers.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The autocomplete field context uses a renderer-neutral input contract.\n mergeProps(\n omit(\n merge(() => aria.inputProps),\n \"value\",\n \"onChange\",\n \"id\",\n \"onFocus\",\n \"onBlur\"\n ),\n {\n onChange: (value: string) => {\n state.setInputValue(value);\n },\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n get value() {\n return state.inputValue;\n },\n }\n ) as unknown as ContextValue<InputProps, HTMLElement>\n }\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </FieldInputContext>\n </InputContext>\n </ButtonContext>","<InputContext\n value={mergeProps(\n merge(() => aria.inputProps ?? {}),\n {\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n }\n )}\n >\n <FieldInputContext\n value={\n // SAFETY: These props target the same native input; the text callback and ref replace the DOM-facing value handlers.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The autocomplete field context uses a renderer-neutral input contract.\n mergeProps(\n omit(\n merge(() => aria.inputProps),\n \"value\",\n \"onChange\",\n \"id\",\n \"onFocus\",\n \"onBlur\"\n ),\n {\n onChange: (value: string) => {\n state.setInputValue(value);\n },\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n get value() {\n return state.inputValue;\n },\n }\n ) as unknown as ContextValue<InputProps, HTMLElement>\n }\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </FieldInputContext>\n </InputContext>","<FieldInputContext\n value={\n // SAFETY: These props target the same native input; the text callback and ref replace the DOM-facing value handlers.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The autocomplete field context uses a renderer-neutral input contract.\n mergeProps(\n omit(\n merge(() => aria.inputProps),\n \"value\",\n \"onChange\",\n \"id\",\n \"onFocus\",\n \"onBlur\"\n ),\n {\n onChange: (value: string) => {\n state.setInputValue(value);\n },\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n get value() {\n return state.inputValue;\n },\n }\n ) as unknown as ContextValue<InputProps, HTMLElement>\n }\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </FieldInputContext>","<OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>","<PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>","value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}","<ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>","<ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>","<TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>","value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}","<GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>","value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}","<FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>","value={aria}","<ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>","<dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>","dom.div","ref={input.comboRef}","render.children","{Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}","<For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>","form={props.form}","<dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n data-placeholder={values.isPlaceholder || undefined}\n />","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","_$createComponent","mergeProps","_$mergeProps","_$applyRef","_$memo","_$getNextElement","_$setAttribute"],"sources":["../../src/combo-box.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/ComboBox.tsx.\n * Modified for Solid Aria: adapted collection ownership, contexts, accessibility primitives, and reactive properties for Solid 2; uses Solid class props.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport type { InputProps } from \"@solid2-aria/core/autocomplete/create-autocomplete\";\nimport { BaseCollection } from \"@solid2-aria/core/collections/base-collection\";\nimport { CollectionBuilder } from \"@solid2-aria/core/collections/collection-builder\";\nimport { createIsHidden } from \"@solid2-aria/core/collections/hidden\";\nimport { createComboBox } from \"@solid2-aria/core/combobox/create-combo-box\";\nimport type { AriaComboBoxProps } from \"@solid2-aria/core/combobox/create-combo-box\";\nimport { createFilter } from \"@solid2-aria/core/i18n/create-filter\";\nimport { createListFormatter } from \"@solid2-aria/core/i18n/create-list-formatter\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { isTruthy } from \"@solid2-aria/core/utils/truthy\";\nimport { createComboBoxState } from \"@solid2-aria/stately/combobox/create-combo-box-state\";\nimport type { ComboBoxState } from \"@solid2-aria/stately/combobox/create-combo-box-state\";\nimport type { GlobalDOMAttributes } from \"@solid2-aria/types-shared-web\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n merge,\n untrack,\n createSignal,\n createContext,\n createMemo,\n useContext,\n omit,\n For,\n} from \"solid-js\";\n\nimport { FieldInputContext } from \"./autocomplete\";\nimport { ButtonContext } from \"./button\";\nimport { OverlayTriggerStateContext } from \"./dialog\";\nimport { FieldErrorContext } from \"./field-error\";\nimport { FormContext } from \"./form\";\nimport { GroupContext } from \"./group\";\nimport { InputContext } from \"./input\";\nimport { LabelContext } from \"./label\";\nimport { ListBoxContext, ListStateContext } from \"./list-box\";\nimport { PopoverContext } from \"./popover\";\nimport { TextContext } from \"./text\";\nimport {\n dom,\n createContextProps,\n createRenderProps,\n createSlot,\n createSlottedContext,\n} from \"./utils\";\nimport type {\n Ref,\n ClassOrFunction,\n RACValidation,\n RenderProps,\n SlotProps,\n ContextValue,\n} from \"./utils\";\n\nexport const ComboBoxContext = createContext<\n // oxlint-disable-next-line typescript/no-explicit-any -- Collection contexts erase item types; each typed factory restores its owner's item contract.\n ContextValue<ComboBoxProps<any, SelectionMode>, HTMLDivElement>\n>(null);\n\nexport const ComboBoxStateContext = createContext<ComboBoxState<\n unknown,\n SelectionMode\n> | null>(null);\n\nexport const ComboBoxValueContext =\n // oxlint-disable-next-line typescript/no-explicit-any -- Collection contexts erase item types; each typed factory restores its owner's item contract.\n createContext<ContextValue<ComboBoxValueProps<any>, HTMLDivElement>>(null);\n\ntype SelectionMode = \"single\" | \"multiple\";\n\nexport interface ComboBoxRenderProps {\n /**\n * Whether the combobox is currently open.\n *\n * @selector [data-open]\n */\n isOpen: boolean;\n /**\n * Whether the combobox is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the combobox is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the combobox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the combobox is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n}\n\nexport interface ComboBoxProps<T, M extends SelectionMode = \"single\">\n extends\n Omit<\n AriaComboBoxProps<T, M>,\n | \"children\"\n | \"placeholder\"\n | \"label\"\n | \"description\"\n | \"errorMessage\"\n | \"validationState\"\n | \"validationBehavior\"\n >,\n RACValidation,\n RenderProps<ComboBoxRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-ComboBox'\n */\n class?: ClassOrFunction<ComboBoxRenderProps>;\n /**\n * The filter function used to determine if an option should be included in the combo box list.\n * By default, a language-sensitive \"contains\" filter from `createFilter` is used.\n */\n defaultFilter?: (textValue: string, inputValue: string) => boolean;\n /**\n * Whether the text or key of the selected item is submitted as part of an HTML form. When\n * `allowsCustomValue` is `true`, this option does not apply and the text is always submitted.\n *\n * @default 'key'\n */\n formValue?: \"text\" | \"key\";\n /** Whether the combo box allows the menu to be open when the collection is empty. */\n allowsEmptyCollection?: boolean;\n}\n\nexport interface ComboBoxValueRenderProps<T> {\n /**\n * Whether the value is a placeholder.\n *\n * @selector [data-placeholder]\n */\n isPlaceholder: boolean;\n /** The object values of the currently selected items. */\n selectedItems: (T | null)[];\n /** The textValue of the currently selected items. */\n selectedText: string;\n /** The state of the ComboBox. */\n state: ComboBoxState<T, \"single\" | \"multiple\">;\n}\n\nexport interface ComboBoxValueProps<T>\n extends\n Omit<JSX.HTMLAttributes<HTMLElement>, keyof RenderProps<unknown> | \"ref\">,\n RenderProps<ComboBoxValueRenderProps<T>> {\n /**\n * The CSS [class](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-ComboBoxValue'\n */\n class?: ClassOrFunction<ComboBoxValueRenderProps<T>>;\n /** A value to display when no items are selected. */\n placeholder?: JSX.Element;\n}\n\nexport function ComboBox<T extends object, M extends SelectionMode = \"single\">(\n input: ComboBoxProps<T, M> & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n if (createIsHidden()) {\n // oxlint-disable-next-line solid/components-return-once -- Static collection traversal and context registration are fixed when the owner is created.\n return null;\n }\n\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n ComboBoxContext\n );\n\n const values: ComboBoxRenderProps = {\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return props.isInvalid === true;\n },\n isOpen: false,\n get isReadOnly() {\n return props.isReadOnly === true;\n },\n get isRequired() {\n return props.isRequired === true;\n },\n };\n\n const content = () => {\n const child = props.children;\n\n return typeof child === \"function\"\n ? child({ ...values, defaultChildren: undefined })\n : child;\n };\n\n return (\n <ListStateContext value={null}>\n <CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={\n <ListBoxContext\n value={{\n get items() {\n return props.items ?? props.defaultItems;\n },\n }}\n >\n {content()}\n </ListBoxContext>\n }\n >\n {(collection) => (\n <ComboBoxInner\n props={props}\n collection={collection}\n comboRef={setRef}\n />\n )}\n </CollectionBuilder>\n </ListStateContext>\n );\n}\n\nfunction ComboBoxInner<T extends object, M extends SelectionMode>(input: {\n props: ComboBoxProps<T, M>;\n collection: BaseCollection<T>;\n comboRef: (element: HTMLDivElement) => void;\n}): JSX.Element {\n const [buttonRef, setButtonRef] = createSignal<HTMLButtonElement | null>(\n null,\n { ownedWrite: true }\n );\n\n const [popoverRef, setPopoverRef] = createSignal<HTMLElement | null>(null, {\n ownedWrite: true,\n });\n\n const { props } = untrack(() => input);\n const form = createSlottedContext(FormContext);\n const filter = createFilter({ sensitivity: \"base\" });\n\n const state = createComboBoxState(\n mergeProps(props, {\n children: undefined,\n get collection() {\n return input.collection;\n },\n get defaultFilter() {\n return props.defaultFilter ?? filter.contains;\n },\n get validationBehavior() {\n return props.validationBehavior ?? form?.validationBehavior ?? \"native\";\n },\n })\n );\n\n const [inputRef, setInputRef] = createSignal<HTMLInputElement | null>(null, {\n ownedWrite: true,\n });\n\n const [groupRef, setGroupRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const [listBoxRef, setListBoxRef] = createSignal<HTMLDivElement | null>(\n null,\n { ownedWrite: true }\n );\n\n const [registerLabel, label] = createSlot(\n () => !isTruthy(props[\"aria-label\"]) && !isTruthy(props[\"aria-labelledby\"])\n );\n\n const textFormValue = () =>\n props.allowsCustomValue ?? props.formValue === \"text\";\n\n const aria = createComboBox(\n mergeProps(props, {\n buttonRef,\n inputRef,\n get label() {\n return label();\n },\n listBoxRef,\n get name() {\n return textFormValue() ? props.name : undefined;\n },\n popoverRef,\n get validationBehavior() {\n return props.validationBehavior ?? form?.validationBehavior ?? \"native\";\n },\n }),\n state\n );\n\n const triggerRef = () => groupRef() ?? inputRef();\n\n const values: ComboBoxRenderProps = {\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n get isOpen() {\n return state.isOpen;\n },\n get isReadOnly() {\n return props.isReadOnly === true;\n },\n get isRequired() {\n return props.isRequired === true;\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-ComboBox\", values })\n );\n\n const hiddenValues = () => {\n if (Array.isArray(state.value)) {\n return state.value.length > 0 ? state.value : [null];\n }\n\n return [state.value];\n };\n\n return (\n <ComboBoxStateContext value={state}>\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"label\" {\n return \"label\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.buttonProps ?? {}),\n {\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <InputContext\n value={mergeProps(\n merge(() => aria.inputProps ?? {}),\n {\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n }\n )}\n >\n <FieldInputContext\n value={\n // SAFETY: These props target the same native input; the text callback and ref replace the DOM-facing value handlers.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion, anti-slop/no-chained-type-assertions -- The autocomplete field context uses a renderer-neutral input contract.\n mergeProps(\n omit(\n merge(() => aria.inputProps),\n \"value\",\n \"onChange\",\n \"id\",\n \"onFocus\",\n \"onBlur\"\n ),\n {\n onChange: (value: string) => {\n state.setInputValue(value);\n },\n ref: (element: HTMLInputElement) => {\n setInputRef(element);\n },\n get value() {\n return state.inputValue;\n },\n }\n ) as unknown as ContextValue<InputProps, HTMLElement>\n }\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={{\n clearContexts: [\n LabelContext,\n ButtonContext,\n InputContext,\n FieldInputContext,\n GroupContext,\n TextContext,\n ],\n isNonModal: true,\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n ref: (element: HTMLElement) => {\n setPopoverRef(element);\n },\n scrollRef: listBoxRef,\n trigger: \"ComboBox\",\n triggerRef,\n }}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.listBoxProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setListBoxRef(element);\n },\n }\n )}\n >\n <ListStateContext value={state}>\n <TextContext\n value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}\n >\n <GroupContext\n value={{\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n ref: (element: HTMLDivElement) => {\n setGroupRef(element);\n },\n }}\n >\n <FieldErrorContext value={aria}>\n <ComboBoxValueContext value={aria.valueProps}>\n <dom.div\n {\n // oxlint-disable solid/reactivity -- Keep prop filtering in the renderer's lazy evaluation.\n ...omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n )\n // oxlint-enable solid/reactivity\n }\n {...render}\n ref={input.comboRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-open={state.isOpen || undefined}\n data-disabled={props.isDisabled ?? undefined}\n data-invalid={aria.isInvalid || undefined}\n data-required={props.isRequired ?? undefined}\n data-readonly={props.isReadOnly ?? undefined}\n >\n {render.children}\n {Boolean(props.name) && !textFormValue() ? (\n <For each={hiddenValues()}>\n {(value) => (\n <input\n type=\"hidden\"\n name={props.name}\n form={props.form}\n value={value ?? \"\"}\n />\n )}\n </For>\n ) : null}\n </dom.div>\n </ComboBoxValueContext>\n </FieldErrorContext>\n </GroupContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </FieldInputContext>\n </InputContext>\n </ButtonContext>\n </LabelContext>\n </ComboBoxStateContext>\n );\n}\n\nexport function ComboBoxValue<T>(\n input: ComboBoxValueProps<T> & { ref?: Ref<HTMLDivElement> }\n): JSX.Element {\n if (createIsHidden()) {\n // oxlint-disable-next-line solid/components-return-once -- Static collection traversal and context registration are fixed when the owner is created.\n return null;\n }\n\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n ComboBoxValueContext\n );\n\n const context = useContext(ComboBoxStateContext);\n\n if (!context) {\n throw new Error(\"ComboBoxValue must be rendered in a ComboBox.\");\n }\n\n // The item type is erased only by the shared context and restored for the owner's render function.\n // SAFETY: The ComboBox owner provides the same T items consumed by this render callback.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- The context erases the owner's generic item type.\n const state = context as ComboBoxState<T, SelectionMode>;\n const formatter = createListFormatter();\n\n const selectedText = createMemo(() =>\n formatter.format(\n state.selectedItems.map((item) => item.textValue).filter(Boolean)\n )\n );\n\n const values: ComboBoxValueRenderProps<T> = {\n get isPlaceholder() {\n return state.selectedItems.length === 0;\n },\n get selectedItems() {\n return state.selectedItems.map((item) => item.value);\n },\n get selectedText() {\n return selectedText();\n },\n state,\n };\n\n const render = createRenderProps(\n mergeProps(props, {\n get defaultChildren() {\n return selectedText() || props.placeholder;\n },\n defaultClass: \"solid2-aria-ComboBoxValue\",\n values,\n })\n );\n\n return (\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n data-placeholder={values.isPlaceholder || undefined}\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
/*
|
|
13
|
+
* Derived from Adobe React Spectrum: packages/react-aria-components/src/useDragAndDrop.tsx.
|
|
14
|
+
* Modified for Solid Aria: compose owner-scoped Solid drag and drop factories with reactive options.
|
|
15
|
+
* Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
|
|
16
|
+
*/
|
|
17
|
+
import { DragAndDropContext, DropIndicator, DropIndicatorContext, DropIndicatorProps, DropIndicatorRenderProps } from "./drag-and-drop.js";
|
|
18
|
+
import { JSX } from "@solidjs/web";
|
|
19
|
+
import { createDraggableCollection } from "@solid2-aria/core/dnd/create-draggable-collection";
|
|
20
|
+
import { createDraggableItem } from "@solid2-aria/core/dnd/create-draggable-item";
|
|
21
|
+
import { createDropIndicator } from "@solid2-aria/core/dnd/create-drop-indicator";
|
|
22
|
+
import { createDroppableCollection } from "@solid2-aria/core/dnd/create-droppable-collection";
|
|
23
|
+
import { createDroppableItem } from "@solid2-aria/core/dnd/create-droppable-item";
|
|
24
|
+
import { isVirtualDragging } from "@solid2-aria/core/dnd/drag-manager";
|
|
25
|
+
import { DragPreview } from "@solid2-aria/core/dnd/drag-preview";
|
|
26
|
+
import { ListDropTargetDelegate } from "@solid2-aria/core/dnd/list-drop-target-delegate";
|
|
27
|
+
import { DraggableCollectionStateOptions, createDraggableCollectionState } from "@solid2-aria/stately/dnd/create-draggable-collection-state";
|
|
28
|
+
import { createDroppableCollectionState } from "@solid2-aria/stately/dnd/create-droppable-collection-state";
|
|
29
|
+
import { DragItem, DraggableCollectionProps, DropTarget, DropTargetDelegate, DroppableCollectionProps, Key } from "@solid2-aria/types-shared";
|
|
30
|
+
export interface DragAndDropOptions<T = object> extends Omit<DraggableCollectionProps<T>, "preview" | "getItems">, DroppableCollectionProps {
|
|
31
|
+
getItems?: (keys: Set<Key>, items: T[]) => DragItem[];
|
|
32
|
+
renderDragPreview?: (items: DragItem[]) => JSX.Element | {
|
|
33
|
+
element: JSX.Element;
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
};
|
|
37
|
+
renderDropIndicator?: (target: DropTarget) => JSX.Element;
|
|
38
|
+
dropTargetDelegate?: DropTargetDelegate;
|
|
39
|
+
isDisabled?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface DragAndDropHooks<T = object> {
|
|
42
|
+
createDraggableCollectionState?: (props: Omit<DraggableCollectionStateOptions<T>, "getItems">) => ReturnType<typeof createDraggableCollectionState>;
|
|
43
|
+
createDraggableCollection?: typeof createDraggableCollection;
|
|
44
|
+
createDraggableItem?: typeof createDraggableItem;
|
|
45
|
+
DragPreview?: typeof DragPreview;
|
|
46
|
+
renderDragPreview?: DragAndDropOptions<T>["renderDragPreview"];
|
|
47
|
+
isVirtualDragging?: typeof isVirtualDragging;
|
|
48
|
+
createDroppableCollectionState?: typeof createDroppableCollectionState;
|
|
49
|
+
createDroppableCollection?: typeof createDroppableCollection;
|
|
50
|
+
createDroppableItem?: typeof createDroppableItem;
|
|
51
|
+
createDropIndicator?: typeof createDropIndicator;
|
|
52
|
+
renderDropIndicator?: DragAndDropOptions<T>["renderDropIndicator"];
|
|
53
|
+
dropTargetDelegate?: DropTargetDelegate;
|
|
54
|
+
ListDropTargetDelegate: typeof ListDropTargetDelegate;
|
|
55
|
+
}
|
|
56
|
+
export interface DragAndDrop<T = object> {
|
|
57
|
+
dragAndDropHooks: DragAndDropHooks<T>;
|
|
58
|
+
}
|
|
59
|
+
export declare function createDragAndDrop<T = object>(options: DragAndDropOptions<T>): DragAndDrop<T>;
|
|
60
|
+
export { DragAndDropContext, DropIndicator, DropIndicatorContext, type DropIndicatorProps, type DropIndicatorRenderProps };
|
|
61
|
+
//# sourceMappingURL=create-drag-and-drop.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
/*
|
|
13
|
+
* Derived from Adobe React Spectrum: packages/react-aria-components/src/useDragAndDrop.tsx.
|
|
14
|
+
* Modified for Solid Aria: compose owner-scoped Solid drag and drop factories with reactive options.
|
|
15
|
+
* Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
|
|
16
|
+
*/
|
|
17
|
+
import { DragAndDropContext, DropIndicator, DropIndicatorContext } from "./drag-and-drop.js";
|
|
18
|
+
import { mergeProps } from "@solid2-aria/core/utils/merge-props";
|
|
19
|
+
import { createDraggableCollection } from "@solid2-aria/core/dnd/create-draggable-collection";
|
|
20
|
+
import { createDraggableItem } from "@solid2-aria/core/dnd/create-draggable-item";
|
|
21
|
+
import { createDropIndicator } from "@solid2-aria/core/dnd/create-drop-indicator";
|
|
22
|
+
import { createDroppableCollection } from "@solid2-aria/core/dnd/create-droppable-collection";
|
|
23
|
+
import { createDroppableItem } from "@solid2-aria/core/dnd/create-droppable-item";
|
|
24
|
+
import { isVirtualDragging } from "@solid2-aria/core/dnd/drag-manager";
|
|
25
|
+
import { DragPreview } from "@solid2-aria/core/dnd/drag-preview";
|
|
26
|
+
import { ListDropTargetDelegate } from "@solid2-aria/core/dnd/list-drop-target-delegate";
|
|
27
|
+
import { createDraggableCollectionState } from "@solid2-aria/stately/dnd/create-draggable-collection-state";
|
|
28
|
+
import { createDroppableCollectionState } from "@solid2-aria/stately/dnd/create-droppable-collection-state";
|
|
29
|
+
// src/create-drag-and-drop.tsx
|
|
30
|
+
function createDragAndDrop(options) {
|
|
31
|
+
const hooks = { ListDropTargetDelegate };
|
|
32
|
+
if (options.getItems) {
|
|
33
|
+
hooks.createDraggableCollectionState = (props) => createDraggableCollectionState(mergeProps(props, options, { get getItems() {
|
|
34
|
+
return options.getItems ?? (() => []);
|
|
35
|
+
} }));
|
|
36
|
+
hooks.createDraggableCollection = createDraggableCollection;
|
|
37
|
+
hooks.createDraggableItem = createDraggableItem;
|
|
38
|
+
hooks.DragPreview = DragPreview;
|
|
39
|
+
hooks.isVirtualDragging = isVirtualDragging;
|
|
40
|
+
Object.defineProperty(hooks, "renderDragPreview", { get: () => options.renderDragPreview });
|
|
41
|
+
}
|
|
42
|
+
if (options.onDrop || options.onInsert || options.onItemDrop || options.onReorder || options.onMove || options.onRootDrop) {
|
|
43
|
+
hooks.createDroppableCollectionState = (props) => createDroppableCollectionState(mergeProps(props, options));
|
|
44
|
+
hooks.createDroppableCollection = (props, state, ref) => createDroppableCollection(mergeProps(props, options), state, ref);
|
|
45
|
+
hooks.createDroppableItem = createDroppableItem;
|
|
46
|
+
hooks.createDropIndicator = createDropIndicator;
|
|
47
|
+
Object.defineProperties(hooks, {
|
|
48
|
+
dropTargetDelegate: { get: () => options.dropTargetDelegate },
|
|
49
|
+
renderDropIndicator: { get: () => options.renderDropIndicator }
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return { dragAndDropHooks: hooks };
|
|
53
|
+
}
|
|
54
|
+
export { DragAndDropContext, DropIndicator, DropIndicatorContext, createDragAndDrop };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=create-drag-and-drop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-drag-and-drop.js","names":[],"sources":["../../src/create-drag-and-drop.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/*\n * Derived from Adobe React Spectrum: packages/react-aria-components/src/useDragAndDrop.tsx.\n * Modified for Solid Aria: compose owner-scoped Solid drag and drop factories with reactive options.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { createDraggableCollection } from \"@solid2-aria/core/dnd/create-draggable-collection\";\nimport { createDraggableItem } from \"@solid2-aria/core/dnd/create-draggable-item\";\nimport { createDropIndicator } from \"@solid2-aria/core/dnd/create-drop-indicator\";\nimport { createDroppableCollection } from \"@solid2-aria/core/dnd/create-droppable-collection\";\nimport { createDroppableItem } from \"@solid2-aria/core/dnd/create-droppable-item\";\nimport { isVirtualDragging } from \"@solid2-aria/core/dnd/drag-manager\";\nimport { DragPreview } from \"@solid2-aria/core/dnd/drag-preview\";\nimport { ListDropTargetDelegate } from \"@solid2-aria/core/dnd/list-drop-target-delegate\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { createDraggableCollectionState } from \"@solid2-aria/stately/dnd/create-draggable-collection-state\";\nimport type { DraggableCollectionStateOptions } from \"@solid2-aria/stately/dnd/create-draggable-collection-state\";\nimport { createDroppableCollectionState } from \"@solid2-aria/stately/dnd/create-droppable-collection-state\";\nimport type {\n DraggableCollectionProps,\n DroppableCollectionProps,\n Key,\n DragItem,\n DropTarget,\n DropTargetDelegate,\n} from \"@solid2-aria/types-shared\";\nimport type { JSX } from \"@solidjs/web\";\n\nexport {\n DropIndicator,\n DropIndicatorContext,\n DragAndDropContext,\n} from \"./drag-and-drop\";\n\nexport type {\n DropIndicatorProps,\n DropIndicatorRenderProps,\n} from \"./drag-and-drop\";\n\nexport interface DragAndDropOptions<T = object>\n extends\n Omit<DraggableCollectionProps<T>, \"preview\" | \"getItems\">,\n DroppableCollectionProps {\n getItems?: (keys: Set<Key>, items: T[]) => DragItem[];\n renderDragPreview?: (\n items: DragItem[]\n ) => JSX.Element | { element: JSX.Element; x: number; y: number };\n renderDropIndicator?: (target: DropTarget) => JSX.Element;\n dropTargetDelegate?: DropTargetDelegate;\n isDisabled?: boolean;\n}\n\nexport interface DragAndDropHooks<T = object> {\n createDraggableCollectionState?: (\n props: Omit<DraggableCollectionStateOptions<T>, \"getItems\">\n ) => ReturnType<typeof createDraggableCollectionState>;\n createDraggableCollection?: typeof createDraggableCollection;\n createDraggableItem?: typeof createDraggableItem;\n DragPreview?: typeof DragPreview;\n renderDragPreview?: DragAndDropOptions<T>[\"renderDragPreview\"];\n isVirtualDragging?: typeof isVirtualDragging;\n createDroppableCollectionState?: typeof createDroppableCollectionState;\n createDroppableCollection?: typeof createDroppableCollection;\n createDroppableItem?: typeof createDroppableItem;\n createDropIndicator?: typeof createDropIndicator;\n renderDropIndicator?: DragAndDropOptions<T>[\"renderDropIndicator\"];\n dropTargetDelegate?: DropTargetDelegate;\n ListDropTargetDelegate: typeof ListDropTargetDelegate;\n}\n\nexport interface DragAndDrop<T = object> {\n dragAndDropHooks: DragAndDropHooks<T>;\n}\n\nexport function createDragAndDrop<T = object>(\n options: DragAndDropOptions<T>\n): DragAndDrop<T> {\n const hooks: DragAndDropHooks<T> = { ListDropTargetDelegate };\n\n if (options.getItems) {\n hooks.createDraggableCollectionState = (props) =>\n createDraggableCollectionState(\n mergeProps(props, options, {\n get getItems() {\n return options.getItems ?? (() => []);\n },\n })\n );\n hooks.createDraggableCollection = createDraggableCollection;\n hooks.createDraggableItem = createDraggableItem;\n hooks.DragPreview = DragPreview;\n hooks.isVirtualDragging = isVirtualDragging;\n Object.defineProperty(hooks, \"renderDragPreview\", {\n get: () => options.renderDragPreview,\n });\n }\n\n if (\n options.onDrop ||\n options.onInsert ||\n options.onItemDrop ||\n options.onReorder ||\n options.onMove ||\n options.onRootDrop\n ) {\n hooks.createDroppableCollectionState = (props) =>\n createDroppableCollectionState(mergeProps(props, options));\n hooks.createDroppableCollection = (props, state, ref) =>\n createDroppableCollection(mergeProps(props, options), state, ref);\n hooks.createDroppableItem = createDroppableItem;\n hooks.createDropIndicator = createDropIndicator;\n Object.defineProperties(hooks, {\n dropTargetDelegate: { get: () => options.dropTargetDelegate },\n renderDropIndicator: { get: () => options.renderDropIndicator },\n });\n }\n\n return { dragAndDropHooks: hooks };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA,SAAgB,kBACd,SACgB;CAChB,MAAM,QAA6B,EAAE,uBAAuB;CAE5D,IAAI,QAAQ,UAAU;EACpB,MAAM,kCAAkC,UACtC,+BACE,WAAW,OAAO,SAAS,EACzB,IAAI,WAAW;GACb,OAAO,QAAQ,mBAAmB,CAAC;EACrC,EACF,CAAC,CACH;EACF,MAAM,4BAA4B;EAClC,MAAM,sBAAsB;EAC5B,MAAM,cAAc;EACpB,MAAM,oBAAoB;EAC1B,OAAO,eAAe,OAAO,qBAAqB,EAChD,WAAW,QAAQ,kBACrB,CAAC;CACH;CAEA,IACE,QAAQ,UACR,QAAQ,YACR,QAAQ,cACR,QAAQ,aACR,QAAQ,UACR,QAAQ,YACR;EACA,MAAM,kCAAkC,UACtC,+BAA+B,WAAW,OAAO,OAAO,CAAC;EAC3D,MAAM,6BAA6B,OAAO,OAAO,QAC/C,0BAA0B,WAAW,OAAO,OAAO,GAAG,OAAO,GAAG;EAClE,MAAM,sBAAsB;EAC5B,MAAM,sBAAsB;EAC5B,OAAO,iBAAiB,OAAO;GAC7B,oBAAoB,EAAE,WAAW,QAAQ,mBAAmB;GAC5D,qBAAqB,EAAE,WAAW,QAAQ,oBAAoB;EAChE,CAAC;CACH;CAEA,OAAO,EAAE,kBAAkB,MAAM;AACnC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
/*
|
|
13
|
+
* Derived from Adobe React Spectrum: packages/react-aria-components/src/DateField.tsx.
|
|
14
|
+
* Modified for Solid Aria: composed Solid Aria and Stately primitives with Solid 2 contexts, reactive getters, and DOM refs; uses Solid class props.
|
|
15
|
+
* Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
|
|
16
|
+
*/
|
|
17
|
+
import { ContextValue, RACValidation, Ref, RenderProps, SlotProps, StyleRenderProps } from "./utils.js";
|
|
18
|
+
import { JSX } from "@solidjs/web";
|
|
19
|
+
import { AriaDateFieldProps, AriaTimeFieldProps } from "@solid2-aria/core/datepicker/create-date-field";
|
|
20
|
+
import { DateFieldState, DateSegment as DateSegment$1, DateSegmentType } from "@solid2-aria/stately/datepicker/create-date-field-state";
|
|
21
|
+
import { TimeFieldState } from "@solid2-aria/stately/datepicker/create-time-field-state";
|
|
22
|
+
import { HoverEvents } from "@solid2-aria/types-shared";
|
|
23
|
+
import { GlobalDOMAttributes } from "@solid2-aria/types-shared-web";
|
|
24
|
+
import { DateValue, TimeValue } from "@solid2-aria/stately/datepicker/types";
|
|
25
|
+
export interface DateFieldRenderProps {
|
|
26
|
+
state: DateFieldState;
|
|
27
|
+
isInvalid: boolean;
|
|
28
|
+
isDisabled: boolean;
|
|
29
|
+
isReadOnly: boolean;
|
|
30
|
+
isRequired: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface DateFieldProps<T extends DateValue> extends Omit<AriaDateFieldProps<T>, "label" | "description" | "errorMessage" | "validationState" | "validationBehavior">, RACValidation, RenderProps<DateFieldRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
33
|
+
ref?: Ref<HTMLDivElement>;
|
|
34
|
+
}
|
|
35
|
+
export interface TimeFieldProps<T extends TimeValue> extends Omit<AriaTimeFieldProps<T>, "label" | "description" | "errorMessage" | "validationState" | "validationBehavior">, RACValidation, RenderProps<DateFieldRenderProps>, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
36
|
+
ref?: Ref<HTMLDivElement>;
|
|
37
|
+
}
|
|
38
|
+
export declare const DateFieldContext: import("solid-js").Context<ContextValue<DateFieldProps<DateValue>, HTMLDivElement>>;
|
|
39
|
+
export declare const TimeFieldContext: import("solid-js").Context<ContextValue<TimeFieldProps<TimeValue>, HTMLDivElement>>;
|
|
40
|
+
export declare const DateFieldStateContext: import("solid-js").Context<DateFieldState | null>;
|
|
41
|
+
export declare const TimeFieldStateContext: import("solid-js").Context<TimeFieldState | null>;
|
|
42
|
+
export declare function DateField<T extends DateValue>(input: DateFieldProps<T>): JSX.Element;
|
|
43
|
+
export declare function TimeField<T extends TimeValue>(input: TimeFieldProps<T>): JSX.Element;
|
|
44
|
+
export interface DateInputRenderProps {
|
|
45
|
+
isHovered: boolean;
|
|
46
|
+
isFocusWithin: boolean;
|
|
47
|
+
isFocusVisible: boolean;
|
|
48
|
+
isDisabled: boolean;
|
|
49
|
+
isInvalid: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface DateInputProps extends SlotProps, StyleRenderProps<DateInputRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
52
|
+
children: (segment: DateSegment$1) => JSX.Element;
|
|
53
|
+
ref?: Ref<HTMLDivElement>;
|
|
54
|
+
}
|
|
55
|
+
export declare function DateInput(props: DateInputProps): JSX.Element;
|
|
56
|
+
export interface DateSegmentRenderProps extends Omit<DateSegment$1, "isEditable"> {
|
|
57
|
+
isHovered: boolean;
|
|
58
|
+
isFocused: boolean;
|
|
59
|
+
isFocusVisible: boolean;
|
|
60
|
+
isPlaceholder: boolean;
|
|
61
|
+
isReadOnly: boolean;
|
|
62
|
+
isDisabled: boolean;
|
|
63
|
+
isInvalid: boolean;
|
|
64
|
+
type: DateSegmentType;
|
|
65
|
+
}
|
|
66
|
+
export interface DateSegmentProps extends RenderProps<DateSegmentRenderProps, "span">, HoverEvents, GlobalDOMAttributes<HTMLSpanElement> {
|
|
67
|
+
segment: DateSegment$1;
|
|
68
|
+
ref?: Ref<HTMLSpanElement>;
|
|
69
|
+
}
|
|
70
|
+
export declare function DateSegment(props: DateSegmentProps): JSX.Element;
|
|
71
|
+
//# sourceMappingURL=date-field.d.ts.map
|