@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":"select.js","names":["<ListStateContext value={null}>\n <CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={content()}\n >\n {(collection) => (\n <SelectInner\n props={props}\n collection={collection}\n selectRef={setRef}\n />\n )}\n </CollectionBuilder>\n </ListStateContext>","value={null}","<CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={content()}\n >\n {(collection) => (\n <SelectInner\n props={props}\n collection={collection}\n selectRef={setRef}\n />\n )}\n </CollectionBuilder>","createCollection={() => new BaseCollection<T>()}","<SelectInner\n props={props}\n collection={collection}\n selectRef={setRef}\n />","selectRef={setRef}","<SelectContext value={props}>\n <SelectStateContext value={state}>\n <SelectValueContext value={aria.valueProps}>\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.triggerProps ?? {}),\n {\n get autoFocus() {\n return props.autoFocus;\n },\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </ButtonContext>\n </LabelContext>\n </SelectValueContext>\n </SelectStateContext>\n </SelectContext>","value={props}","<SelectStateContext value={state}>\n <SelectValueContext value={aria.valueProps}>\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.triggerProps ?? {}),\n {\n get autoFocus() {\n return props.autoFocus;\n },\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </ButtonContext>\n </LabelContext>\n </SelectValueContext>\n </SelectStateContext>","value={state}","<SelectValueContext value={aria.valueProps}>\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.triggerProps ?? {}),\n {\n get autoFocus() {\n return props.autoFocus;\n },\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </ButtonContext>\n </LabelContext>\n </SelectValueContext>","<LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.triggerProps ?? {}),\n {\n get autoFocus() {\n return props.autoFocus;\n },\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </ButtonContext>\n </LabelContext>","<ButtonContext\n value={mergeProps(\n merge(() => aria.triggerProps ?? {}),\n {\n get autoFocus() {\n return props.autoFocus;\n },\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </ButtonContext>","<OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>","<PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>","<ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>","value={{\n slots: {\n get description() {\n return aria.descriptionProps;\n },\n get errorMessage() {\n return aria.errorMessageProps;\n },\n },\n }}","<FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>","value={aria}","<dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>","dom.div","ref={input.selectRef}","render.children","<HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />","<dom.span\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLElement) => {\n setRef(element);\n }}\n data-placeholder={values.isPlaceholder || undefined}\n >\n <TextContext value={null}>{render.children}</TextContext>\n </dom.span>","dom.span","ref={(element: HTMLElement) => {\n setRef(element);\n }}","<TextContext value={null}>{render.children}</TextContext>","_$createComponent","mergeProps","_$mergeProps","_$applyRef","_$memo","intlMessages","render"],"sources":["../../src/select.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/Select.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 { 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 { createFocusRing } from \"@solid2-aria/core/focus/create-focus-ring\";\nimport { createListFormatter } from \"@solid2-aria/core/i18n/create-list-formatter\";\nimport { createLocalizedStringFormatter } from \"@solid2-aria/core/i18n/create-localized-string-formatter\";\nimport { createSelect } from \"@solid2-aria/core/select/create-select\";\nimport type { AriaSelectProps } from \"@solid2-aria/core/select/create-select\";\nimport { HiddenSelect } from \"@solid2-aria/core/select/hidden-select\";\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 { createSelectState } from \"@solid2-aria/stately/select/create-select-state\";\nimport type { SelectState } from \"@solid2-aria/stately/select/create-select-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} from \"solid-js\";\n\nimport intlMessages from \"../intl/index\";\nimport { ButtonContext } from \"./button\";\nimport { OverlayTriggerStateContext } from \"./dialog\";\nimport { FieldErrorContext } from \"./field-error\";\nimport { FormContext } from \"./form\";\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 SelectContext = createContext<\n ContextValue<\n // oxlint-disable-next-line typescript/no-explicit-any -- Collection contexts erase item types; each typed factory restores its owner's item contract.\n Omit<SelectProps<any, SelectionMode>, \"validate\" | \"onChange\">,\n HTMLDivElement\n >\n>(null);\n\nexport const SelectStateContext = createContext<SelectState<\n unknown,\n SelectionMode\n> | null>(null);\n\nexport const SelectValueContext =\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<SelectValueProps<any>, HTMLSpanElement>>(null);\n\ntype SelectionMode = \"single\" | \"multiple\";\n\nexport interface SelectRenderProps {\n /**\n * Whether the select is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the select is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the select is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the select is currently open.\n *\n * @selector [data-open]\n */\n isOpen: boolean;\n /**\n * Whether the select is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the select is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface SelectProps<T = object, M extends SelectionMode = \"single\">\n extends\n Omit<\n AriaSelectProps<T, M>,\n | \"children\"\n | \"label\"\n | \"description\"\n | \"errorMessage\"\n | \"validationState\"\n | \"validationBehavior\"\n | \"items\"\n >,\n RACValidation,\n RenderProps<SelectRenderProps>,\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-Select'\n */\n class?: ClassOrFunction<SelectRenderProps>;\n /**\n * Temporary text that occupies the select when it is empty.\n *\n * @default 'Select an item' (localized)\n */\n placeholder?: string;\n}\n\nexport interface SelectValueRenderProps<T> {\n /**\n * Whether the value is a placeholder.\n *\n * @selector [data-placeholder]\n */\n isPlaceholder: boolean;\n /**\n * The object value of the first selected item.\n *\n * @deprecated\n */\n selectedItem: T | null;\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 select. */\n state: SelectState<T, \"single\" | \"multiple\">;\n}\n\nexport interface SelectValueProps<T>\n extends\n Omit<JSX.HTMLAttributes<HTMLElement>, keyof RenderProps<unknown>>,\n RenderProps<SelectValueRenderProps<T>, \"span\"> {\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-SelectValue'\n */\n class?: ClassOrFunction<SelectValueRenderProps<T>>;\n}\n\nexport function Select<T extends object, M extends SelectionMode = \"single\">(\n input: SelectProps<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 SelectContext\n );\n\n const contentValues: SelectRenderProps = {\n get isDisabled() {\n return props.isDisabled === true;\n },\n isFocusVisible: false,\n isFocused: false,\n get isInvalid() {\n return props.isInvalid === true;\n },\n isOpen: false,\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({ ...contentValues, defaultChildren: undefined })\n : child;\n };\n\n return (\n <ListStateContext value={null}>\n <CollectionBuilder\n createCollection={() => new BaseCollection<T>()}\n content={content()}\n >\n {(collection) => (\n <SelectInner\n props={props}\n collection={collection}\n selectRef={setRef}\n />\n )}\n </CollectionBuilder>\n </ListStateContext>\n );\n}\n\nfunction SelectInner<T extends object, M extends SelectionMode>(input: {\n props: SelectProps<T, M>;\n collection: BaseCollection<T>;\n selectRef: (element: HTMLDivElement) => void;\n}): JSX.Element {\n const [scrollRef, setScrollRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const { props } = untrack(() => input);\n const form = createSlottedContext(FormContext);\n\n const validationBehavior = () =>\n props.validationBehavior ?? form?.validationBehavior ?? \"native\";\n\n const state = createSelectState(\n mergeProps(props, {\n children: undefined,\n get collection() {\n return input.collection;\n },\n get validationBehavior() {\n return validationBehavior();\n },\n })\n );\n\n const focus = createFocusRing({ within: true });\n\n const [buttonRef, setButtonRef] = createSignal<HTMLButtonElement | 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 aria = createSelect(\n mergeProps(props, {\n get label() {\n return label();\n },\n get validationBehavior() {\n return validationBehavior();\n },\n }),\n state,\n buttonRef\n );\n\n const values: SelectRenderProps = {\n get isDisabled() {\n return props.isDisabled === true;\n },\n get isFocusVisible() {\n return focus.isFocusVisible;\n },\n get isFocused() {\n return state.isFocused;\n },\n get isInvalid() {\n return aria.isInvalid;\n },\n get isOpen() {\n return state.isOpen;\n },\n get isRequired() {\n return props.isRequired === true;\n },\n };\n\n const render = createRenderProps(\n mergeProps(props, { defaultClass: \"solid2-aria-Select\", values })\n );\n\n return (\n <SelectContext value={props}>\n <SelectStateContext value={state}>\n <SelectValueContext value={aria.valueProps}>\n <LabelContext\n value={mergeProps(\n merge(() => aria.labelProps ?? {}),\n {\n get elementType(): \"span\" {\n return \"span\";\n },\n registerSlot: registerLabel,\n }\n )}\n >\n <ButtonContext\n value={mergeProps(\n merge(() => aria.triggerProps ?? {}),\n {\n get autoFocus() {\n return props.autoFocus;\n },\n get isPressed() {\n return state.isOpen;\n },\n ref: (element: HTMLButtonElement) => {\n setButtonRef(element);\n },\n }\n )}\n >\n <OverlayTriggerStateContext value={state}>\n <PopoverContext\n value={mergeProps(\n {\n clearContexts: [LabelContext, ButtonContext, TextContext],\n get placement(): \"bottom start\" {\n return \"bottom start\";\n },\n scrollRef,\n trigger: \"Select\",\n triggerRef: buttonRef,\n },\n {\n get \"aria-labelledby\"() {\n return aria.menuProps[\"aria-labelledby\"];\n },\n }\n )}\n >\n <ListBoxContext\n value={mergeProps(\n merge(() => aria.menuProps ?? {}),\n {\n ref: (element: HTMLDivElement) => {\n setScrollRef(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 <FieldErrorContext value={aria}>\n <dom.div\n {...mergeProps(\n omit(\n filterDOMProps(props, { global: true }),\n \"id\"\n ),\n render,\n merge(() => focus.focusProps ?? {})\n )}\n ref={input.selectRef}\n slot={props.slot ?? undefined}\n data-focused={state.isFocused || undefined}\n data-focus-visible={\n focus.isFocusVisible || undefined\n }\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 >\n {render.children}\n <HiddenSelect\n {...aria.hiddenSelectProps}\n autoComplete={props.autoComplete}\n />\n </dom.div>\n </FieldErrorContext>\n </TextContext>\n </ListStateContext>\n </ListBoxContext>\n </PopoverContext>\n </OverlayTriggerStateContext>\n </ButtonContext>\n </LabelContext>\n </SelectValueContext>\n </SelectStateContext>\n </SelectContext>\n );\n}\n\nexport function SelectValue<T>(\n input: SelectValueProps<T> & { ref?: Ref<HTMLSpanElement> }\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 SelectValueContext\n );\n\n const current = useContext(SelectStateContext);\n\n if (!current) {\n throw new Error(\"SelectValue must be rendered in a Select.\");\n }\n\n // The context erases the item type; it comes from the same Select owner as these render props.\n // SAFETY: The Select 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 = current as SelectState<T, SelectionMode>;\n const context = createSlottedContext(SelectContext);\n const formatter = createListFormatter();\n\n const strings = createLocalizedStringFormatter(\n intlMessages,\n \"@solid2-aria/components\"\n );\n\n const text = createMemo(() =>\n state.selectedItems.map((item) => item.textValue)\n );\n\n const selectedText = createMemo(() =>\n state.selectionManager.selectionMode === \"single\"\n ? (text()[0] ?? \"\")\n : formatter.format(text())\n );\n\n const defaults = createMemo(() => {\n const rendered = state.selectedItems.map((item) => {\n const content: unknown = item.rendered;\n\n if (typeof content === \"function\") {\n // SAFETY: Item render functions are stored by the typed collection factory and return Solid children.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- Collection storage erases the render callback signature.\n const render = content as (...values: unknown[]) => JSX.Element;\n\n return render({\n defaultChildren: undefined,\n isDisabled: false,\n isFocusVisible: false,\n isFocused: false,\n isHovered: false,\n isPressed: false,\n isSelected: false,\n selectionBehavior: \"toggle\",\n selectionMode: \"single\",\n });\n }\n\n return item.rendered;\n });\n\n if (!rendered.length) {\n return context?.placeholder ?? strings.format(\"selectPlaceholder\");\n }\n\n if (state.selectionManager.selectionMode === \"single\") {\n return rendered[0];\n }\n\n let index = 0;\n\n return formatter\n .formatToParts(text())\n .map((part) =>\n part.type === \"element\" ? rendered[(index += 1)] : part.value\n );\n });\n\n const values: SelectValueRenderProps<T> = {\n get isPlaceholder() {\n return state.selectedItems.length === 0;\n },\n // oxlint-disable-next-line typescript/no-deprecated -- Preserve the upstream public getter while selectedItems remains the preferred API.\n get selectedItem() {\n return state.selectedItems[0]?.value ?? null;\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 defaults();\n },\n defaultClass: \"solid2-aria-SelectValue\",\n values,\n })\n );\n\n return (\n <dom.span\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={(element: HTMLElement) => {\n setRef(element);\n }}\n data-placeholder={values.isPlaceholder || undefined}\n >\n <TextContext value={null}>{render.children}</TextContext>\n </dom.span>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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/SelectionIndicator.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; 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, SlotProps } from "./utils.js";
|
|
18
|
+
import { SharedElementPropsBase } from "./shared-element-transition.js";
|
|
19
|
+
import { JSX } from "@solidjs/web";
|
|
20
|
+
export interface SelectionIndicatorProps extends SharedElementPropsBase, SlotProps {
|
|
21
|
+
isSelected?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare const SelectionIndicatorContext: import("solid-js").Context<ContextValue<SelectionIndicatorProps, HTMLDivElement>>;
|
|
24
|
+
export declare function SelectionIndicator(input: SelectionIndicatorProps): JSX.Element;
|
|
25
|
+
//# sourceMappingURL=selection-indicator.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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/SelectionIndicator.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; 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 { createContextProps } from "./utils.js";
|
|
18
|
+
import { SharedElement } from "./shared-element-transition.js";
|
|
19
|
+
import { createComponent, mergeProps } from "@solidjs/web";
|
|
20
|
+
import { createContext, untrack } from "solid-js";
|
|
21
|
+
// src/selection-indicator.tsx
|
|
22
|
+
const SelectionIndicatorContext = createContext({ isSelected: false });
|
|
23
|
+
function SelectionIndicator(input) {
|
|
24
|
+
const [props, , setRef] = createContextProps(input, untrack(() => input.ref), SelectionIndicatorContext);
|
|
25
|
+
return createComponent(SharedElement, mergeProps(props, {
|
|
26
|
+
get "class"() {
|
|
27
|
+
return props.class ?? "solid2-aria-SelectionIndicator";
|
|
28
|
+
},
|
|
29
|
+
name: "SelectionIndicator",
|
|
30
|
+
get isVisible() {
|
|
31
|
+
return props.isSelected;
|
|
32
|
+
},
|
|
33
|
+
ref: (element) => {
|
|
34
|
+
setRef(element);
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
export { SelectionIndicator, SelectionIndicatorContext };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=selection-indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-indicator.js","names":["<SharedElement\n {...props}\n class={props.class ?? \"solid2-aria-SelectionIndicator\"}\n name=\"SelectionIndicator\"\n isVisible={props.isSelected}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n />","name=\"SelectionIndicator\"","ref={(element: HTMLDivElement) => {\n setRef(element);\n }}","_$createComponent","_$mergeProps"],"sources":["../../src/selection-indicator.tsx"],"sourcesContent":["/*\n * Copyright 2025 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/SelectionIndicator.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, 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 { JSX } from \"@solidjs/web\";\nimport { untrack, createContext } from \"solid-js\";\n\nimport { SharedElement } from \"./shared-element-transition\";\nimport type { SharedElementPropsBase } from \"./shared-element-transition\";\nimport { createContextProps } from \"./utils\";\nimport type { ContextValue, SlotProps } from \"./utils\";\n\nexport interface SelectionIndicatorProps\n extends SharedElementPropsBase, SlotProps {\n isSelected?: boolean;\n}\n\nexport const SelectionIndicatorContext = createContext<\n ContextValue<SelectionIndicatorProps, HTMLDivElement>\n>({ isSelected: false });\n\nexport function SelectionIndicator(\n input: SelectionIndicatorProps\n): JSX.Element {\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n SelectionIndicatorContext\n );\n\n return (\n <SharedElement\n {...props}\n class={props.class ?? \"solid2-aria-SelectionIndicator\"}\n name=\"SelectionIndicator\"\n isVisible={props.isSelected}\n ref={(element: HTMLDivElement) => {\n setRef(element);\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA8BA,MAAa,4BAA4B,cAEvC,EAAE,YAAY,MAAM,CAAC;AAEvB,SAAgB,mBACd,OACa;CACb,MAAM,CAAC,SAAS,UAAU,mBACxB,OACA,cAAc,MAAM,GAAG,GACvB,yBACF;CAEA,OACEA,gBAAAA,eAAAA,WACM,OADN;EAEE,IAAA,UAAA;GAAO,OAAA,MAAM,SAAS;EAAgC;EACtDC,MAAK;EACL,IAAA,YAAA;GAAW,OAAA,MAAM;EAAU;EAC3BC,MAAM,YAA4B;GAChC,OAAO,OAAO;EAChB;CACD,CAAA,CAAA;AAEL"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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/Separator.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; 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, DOMRenderProps, Ref, SlotProps, StyleProps } from "./utils.js";
|
|
18
|
+
import { JSX } from "@solidjs/web";
|
|
19
|
+
import { BaseCollection, CollectionNode } from "@solid2-aria/core/collections/base-collection";
|
|
20
|
+
import { SeparatorProps as SeparatorProps$1 } from "@solid2-aria/core/separator/create-separator";
|
|
21
|
+
export interface SeparatorProps extends SeparatorProps$1, StyleProps, SlotProps, DOMRenderProps<"hr" | "div", undefined> {
|
|
22
|
+
ref?: Ref<HTMLElement>;
|
|
23
|
+
}
|
|
24
|
+
export declare const SeparatorContext: import("solid-js").Context<ContextValue<SeparatorProps, HTMLElement>>;
|
|
25
|
+
export declare class SeparatorNode extends CollectionNode<unknown> {
|
|
26
|
+
static readonly type = "separator";
|
|
27
|
+
filter(collection: BaseCollection<unknown>, next: BaseCollection<unknown>): this | null;
|
|
28
|
+
}
|
|
29
|
+
export declare function Separator(props: SeparatorProps): JSX.Element;
|
|
30
|
+
//# sourceMappingURL=separator.d.ts.map
|
|
@@ -0,0 +1,68 @@
|
|
|
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/Separator.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; 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 { assignRef, createContextProps, dom } from "./utils.js";
|
|
18
|
+
import { createComponent, dynamic, mergeProps } from "@solidjs/web";
|
|
19
|
+
import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
|
|
20
|
+
import { createContext, merge, untrack } from "solid-js";
|
|
21
|
+
import { CollectionNode } from "@solid2-aria/core/collections/base-collection";
|
|
22
|
+
import { createLeafComponent } from "@solid2-aria/core/collections/collection-builder";
|
|
23
|
+
import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
|
|
24
|
+
import { createSeparator } from "@solid2-aria/core/separator/create-separator";
|
|
25
|
+
// src/separator.tsx
|
|
26
|
+
const SeparatorContext = createContext({});
|
|
27
|
+
var SeparatorNode = class extends CollectionNode {
|
|
28
|
+
static type = "separator";
|
|
29
|
+
filter(collection, next) {
|
|
30
|
+
const prev = this.prevKey === null ? null : next.getItem(this.prevKey);
|
|
31
|
+
if (!prev || prev.type === "separator") return null;
|
|
32
|
+
const clone = this.clone();
|
|
33
|
+
next.addDescendants(clone, collection);
|
|
34
|
+
return clone;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const SeparatorComponent = createLeafComponent(SeparatorNode, (input) => {
|
|
38
|
+
const [props, , setRef] = createContextProps(input, untrack(() => input.ref), SeparatorContext);
|
|
39
|
+
const aria = createSeparator(props);
|
|
40
|
+
const Element = dynamic(() => dom[props.elementType === "div" || props.orientation === "vertical" ? "div" : "hr"]);
|
|
41
|
+
return createComponent(Element, mergeProps(() => {
|
|
42
|
+
return mergeProps$1(filterDOMProps(props, { global: true }), merge(() => aria.separatorProps ?? {}));
|
|
43
|
+
}, {
|
|
44
|
+
get "class"() {
|
|
45
|
+
return props.class ?? "solid2-aria-Separator";
|
|
46
|
+
},
|
|
47
|
+
get style() {
|
|
48
|
+
return props.style;
|
|
49
|
+
},
|
|
50
|
+
get render() {
|
|
51
|
+
return props.render;
|
|
52
|
+
},
|
|
53
|
+
ref: (element) => {
|
|
54
|
+
setRef(element);
|
|
55
|
+
},
|
|
56
|
+
get slot() {
|
|
57
|
+
return props.slot ?? void 0;
|
|
58
|
+
}
|
|
59
|
+
}));
|
|
60
|
+
});
|
|
61
|
+
function Separator(props) {
|
|
62
|
+
return createComponent(SeparatorComponent, mergeProps(props, { ref: (element) => {
|
|
63
|
+
assignRef(untrack(() => props.ref), element);
|
|
64
|
+
} }));
|
|
65
|
+
}
|
|
66
|
+
export { Separator, SeparatorContext, SeparatorNode };
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=separator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"separator.js","names":["<Element\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => aria.separatorProps ?? {})\n )}\n class={props.class ?? \"solid2-aria-Separator\"}\n style={props.style}\n render={props.render}\n ref={(element: HTMLElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n />","ref={(element: HTMLElement) => {\n setRef(element);\n }}","<SeparatorComponent\n {...props}\n ref={(element: HTMLElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />","ref={(element: HTMLElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}","_$createComponent","_$mergeProps","mergeProps"],"sources":["../../src/separator.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/Separator.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, 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 { CollectionNode } from \"@solid2-aria/core/collections/base-collection\";\nimport type { BaseCollection } from \"@solid2-aria/core/collections/base-collection\";\nimport { createLeafComponent } from \"@solid2-aria/core/collections/collection-builder\";\nimport { createSeparator } from \"@solid2-aria/core/separator/create-separator\";\nimport type { SeparatorProps as AriaSeparatorProps } from \"@solid2-aria/core/separator/create-separator\";\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport { dynamic } from \"@solidjs/web\";\nimport type { JSX } from \"@solidjs/web\";\nimport { merge, untrack, createContext } from \"solid-js\";\n\nimport { assignRef, dom, createContextProps } from \"./utils\";\nimport type {\n ContextValue,\n Ref,\n StyleProps,\n SlotProps,\n DOMRenderProps,\n} from \"./utils\";\n\nexport interface SeparatorProps\n extends\n AriaSeparatorProps,\n StyleProps,\n SlotProps,\n DOMRenderProps<\"hr\" | \"div\", undefined> {\n ref?: Ref<HTMLElement>;\n}\n\nexport const SeparatorContext = createContext<\n ContextValue<SeparatorProps, HTMLElement>\n>({});\n\nexport class SeparatorNode extends CollectionNode<unknown> {\n static override readonly type = \"separator\";\n override filter(\n collection: BaseCollection<unknown>,\n next: BaseCollection<unknown>\n ): this | null {\n const prev = this.prevKey === null ? null : next.getItem(this.prevKey);\n\n if (!prev || prev.type === \"separator\") {\n return null;\n }\n\n const clone = this.clone();\n next.addDescendants(clone, collection);\n\n return clone;\n }\n}\n\nconst SeparatorComponent = createLeafComponent<SeparatorProps, HTMLElement>(\n SeparatorNode,\n (input: SeparatorProps): JSX.Element => {\n const [props, , setRef] = createContextProps(\n input,\n untrack(() => input.ref),\n SeparatorContext\n );\n\n const aria = createSeparator(props);\n\n const Element = dynamic(\n () =>\n dom[\n props.elementType === \"div\" || props.orientation === \"vertical\"\n ? \"div\"\n : \"hr\"\n ]\n );\n\n return (\n <Element\n {...mergeProps(\n filterDOMProps(props, { global: true }),\n merge(() => aria.separatorProps ?? {})\n )}\n class={props.class ?? \"solid2-aria-Separator\"}\n style={props.style}\n render={props.render}\n ref={(element: HTMLElement) => {\n setRef(element);\n }}\n slot={props.slot ?? undefined}\n />\n );\n }\n);\n\nexport function Separator(props: SeparatorProps): JSX.Element {\n return (\n <SeparatorComponent\n {...props}\n ref={(element: HTMLElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,MAAa,mBAAmB,cAE9B,CAAC,CAAC;AAEJ,IAAa,gBAAb,cAAmC,eAAwB;CACzD,OAAyB,OAAO;CAChC,OACE,YACA,MACa;EACb,MAAM,OAAO,KAAK,YAAY,OAAO,OAAO,KAAK,QAAQ,KAAK,OAAO;EAErE,IAAI,CAAC,QAAQ,KAAK,SAAS,aACzB,OAAO;EAGT,MAAM,QAAQ,KAAK,MAAM;EACzB,KAAK,eAAe,OAAO,UAAU;EAErC,OAAO;CACT;AACF;AAEA,MAAM,qBAAqB,oBACzB,gBACC,UAAuC;CACtC,MAAM,CAAC,SAAS,UAAU,mBACxB,OACA,cAAc,MAAM,GAAG,GACvB,gBACF;CAEA,MAAM,OAAO,gBAAgB,KAAK;CAElC,MAAM,UAAU,cAEZ,IACE,MAAM,gBAAgB,SAAS,MAAM,gBAAgB,aACjD,QACA,KAEV;CAEA,OACEA,gBAAAA,SAAAA,iBACE;EAAI,OAAAM,aACF,eAAe,OAAO,EAAE,QAAQ,KAAK,CAAC,GACtC,YAAY,KAAK,kBAAkB,CAAC,CAAC,CACvC;CAAC,GAJH;EAKE,IAAA,UAAA;GAAO,OAAA,MAAM,SAAS;EAAuB;EAC7C,IAAA,QAAA;GAAO,OAAA,MAAM;EAAK;EAClB,IAAA,SAAA;GAAQ,OAAA,MAAM;EAAM;EACpBL,MAAM,YAAyB;GAC7B,OAAO,OAAO;EAChB;EACA,IAAA,OAAA;GAAM,OAAA,MAAM,QAAQ,KAAA;EAAS;CAC9B,CAAA,CAAA;AAEL,CACF;AAEA,SAAgB,UAAU,OAAoC;CAC5D,OACEC,gBAAAA,oBAAAA,WACM,OADN,EAEEC,MAAM,YAAyB;EAC7B,UACE,cAAc,MAAM,GAAG,GACvB,OACF;CACF,EACD,CAAA,CAAA;AAEL"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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/SharedElementTransition.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2.
|
|
15
|
+
* Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
|
|
16
|
+
*/
|
|
17
|
+
import { Ref, RenderProps, SlotProps } from "./utils.js";
|
|
18
|
+
import { JSX } from "@solidjs/web";
|
|
19
|
+
export interface SharedElementTransitionProps {
|
|
20
|
+
children?: JSX.Element;
|
|
21
|
+
}
|
|
22
|
+
export declare function SharedElementTransition(props: SharedElementTransitionProps): JSX.Element;
|
|
23
|
+
export interface SharedElementRenderProps {
|
|
24
|
+
isEntering: boolean;
|
|
25
|
+
isExiting: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface SharedElementPropsBase extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "children" | "class" | "style" | "ref" | "slot">, SlotProps, RenderProps<SharedElementRenderProps> {
|
|
28
|
+
ref?: Ref<HTMLDivElement>;
|
|
29
|
+
}
|
|
30
|
+
export interface SharedElementProps extends SharedElementPropsBase {
|
|
31
|
+
name: string;
|
|
32
|
+
isVisible?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export declare function SharedElement(props: SharedElementProps): JSX.Element;
|
|
35
|
+
//# sourceMappingURL=shared-element-transition.d.ts.map
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 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/SharedElementTransition.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2.
|
|
15
|
+
* Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
|
|
16
|
+
*/
|
|
17
|
+
import { assignRef, createRenderProps, dom } from "./utils.js";
|
|
18
|
+
import { createComponent, mergeProps } from "@solidjs/web";
|
|
19
|
+
import { mergeProps as mergeProps$1 } from "@solid2-aria/core/utils/merge-props";
|
|
20
|
+
import { Show, createContext, createEffect, createSignal, onSettled, untrack, useContext } from "solid-js";
|
|
21
|
+
import { filterDOMProps } from "@solid2-aria/core/utils/filter-dom-props";
|
|
22
|
+
// src/shared-element-transition.tsx
|
|
23
|
+
const SharedElementContext = createContext(null);
|
|
24
|
+
function SharedElementTransition(props) {
|
|
25
|
+
return createComponent(SharedElementContext, {
|
|
26
|
+
value: /* @__PURE__ */ new Map(),
|
|
27
|
+
get children() {
|
|
28
|
+
return props.children;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function SharedElement(props) {
|
|
33
|
+
const scope = useContext(SharedElementContext);
|
|
34
|
+
if (!scope) throw new Error("SharedElement must be inside SharedElementTransition.");
|
|
35
|
+
const [ref, setRef] = createSignal(null, { ownedWrite: true });
|
|
36
|
+
const [state, setState] = createSignal(untrack(() => props.isVisible === false ? "hidden" : "visible"), { ownedWrite: true });
|
|
37
|
+
let frame;
|
|
38
|
+
let generation = 0;
|
|
39
|
+
const snapshot = () => {
|
|
40
|
+
const el = ref();
|
|
41
|
+
if (!(el?.isConnected === true) || Object.hasOwn(el.dataset, "exiting")) return;
|
|
42
|
+
const style = getComputedStyle(el);
|
|
43
|
+
if (style.transitionProperty !== "none") scope.set(props.name, {
|
|
44
|
+
rect: el.getBoundingClientRect(),
|
|
45
|
+
style: style.transitionProperty.split(/\s*,\s*/u).map((property) => [property, style.getPropertyValue(property)])
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
createEffect(() => ({
|
|
49
|
+
element: ref(),
|
|
50
|
+
name: props.name,
|
|
51
|
+
visible: props.isVisible !== false
|
|
52
|
+
}), ({ visible, name, element }) => {
|
|
53
|
+
generation += 1;
|
|
54
|
+
const current = generation;
|
|
55
|
+
if (frame !== void 0) cancelAnimationFrame(frame);
|
|
56
|
+
if (visible && !element) {
|
|
57
|
+
setState("visible");
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (!element) return;
|
|
61
|
+
const previous = scope.get(name);
|
|
62
|
+
if (visible && previous) {
|
|
63
|
+
scope.delete(name);
|
|
64
|
+
setState("visible");
|
|
65
|
+
const animations = element.getAnimations?.() ?? [];
|
|
66
|
+
const values = previous.style.map(([property, value]) => {
|
|
67
|
+
const currentValue = element.style.getPropertyValue(property);
|
|
68
|
+
if (property === "translate") {
|
|
69
|
+
const rect = element.getBoundingClientRect();
|
|
70
|
+
element.style.setProperty(property, `${previous.rect.left - rect.left}px ${previous.rect.top - rect.top}px`);
|
|
71
|
+
} else element.style.setProperty(property, value);
|
|
72
|
+
return [property, currentValue];
|
|
73
|
+
});
|
|
74
|
+
for (const animation of element.getAnimations?.() ?? []) if (!animations.includes(animation)) animation.cancel();
|
|
75
|
+
frame = requestAnimationFrame(() => {
|
|
76
|
+
for (const [property, value] of values) element.style.setProperty(property, value);
|
|
77
|
+
frame = void 0;
|
|
78
|
+
});
|
|
79
|
+
} else if (visible) {
|
|
80
|
+
setState("entering");
|
|
81
|
+
frame = requestAnimationFrame(() => {
|
|
82
|
+
frame = void 0;
|
|
83
|
+
if (current === generation) setState("visible");
|
|
84
|
+
});
|
|
85
|
+
} else {
|
|
86
|
+
snapshot();
|
|
87
|
+
queueMicrotask(() => {
|
|
88
|
+
if (current !== generation) return;
|
|
89
|
+
if (scope.has(name)) {
|
|
90
|
+
scope.delete(name);
|
|
91
|
+
setState("exiting");
|
|
92
|
+
const hide = async () => {
|
|
93
|
+
await Promise.allSettled((element.getAnimations?.() ?? []).map((animation) => animation.finished));
|
|
94
|
+
if (current === generation) setState("hidden");
|
|
95
|
+
};
|
|
96
|
+
hide();
|
|
97
|
+
} else setState("hidden");
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return snapshot;
|
|
101
|
+
});
|
|
102
|
+
onSettled(() => () => {
|
|
103
|
+
generation += 1;
|
|
104
|
+
snapshot();
|
|
105
|
+
if (frame !== void 0) cancelAnimationFrame(frame);
|
|
106
|
+
});
|
|
107
|
+
const values = {
|
|
108
|
+
get isEntering() {
|
|
109
|
+
return state() === "entering";
|
|
110
|
+
},
|
|
111
|
+
get isExiting() {
|
|
112
|
+
return state() === "exiting";
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const render = createRenderProps(mergeProps$1(props, { values }));
|
|
116
|
+
return createComponent(Show, {
|
|
117
|
+
get when() {
|
|
118
|
+
return state() !== "hidden";
|
|
119
|
+
},
|
|
120
|
+
get children() {
|
|
121
|
+
return createComponent(dom.div, mergeProps(() => {
|
|
122
|
+
return filterDOMProps(props, { global: true });
|
|
123
|
+
}, render, {
|
|
124
|
+
ref: [(element) => {
|
|
125
|
+
setRef(element);
|
|
126
|
+
}, (element) => {
|
|
127
|
+
assignRef(untrack(() => props.ref), element);
|
|
128
|
+
}],
|
|
129
|
+
get "data-entering"() {
|
|
130
|
+
return values.isEntering || void 0;
|
|
131
|
+
},
|
|
132
|
+
get "data-exiting"() {
|
|
133
|
+
return values.isExiting || void 0;
|
|
134
|
+
}
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
export { SharedElement, SharedElementTransition };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=shared-element-transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-element-transition.js","names":["<SharedElementContext value={new Map()}>\n {props.children}\n </SharedElementContext>","value={new Map()}","<Show when={state() !== \"hidden\"}>\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={[\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n />\n </Show>","<dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={[\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n />","dom.div","ref={[\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}","_$createComponent","mergeProps","_$mergeProps"],"sources":["../../src/shared-element-transition.tsx"],"sourcesContent":["/*\n * Copyright 2025 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/SharedElementTransition.tsx.\n * Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2.\n * Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.\n */\n\nimport { filterDOMProps } from \"@solid2-aria/core/utils/filter-dom-props\";\nimport { mergeProps } from \"@solid2-aria/core/utils/merge-props\";\nimport type { JSX } from \"@solidjs/web\";\nimport {\n createSignal,\n createContext,\n createEffect,\n onSettled,\n Show,\n useContext,\n untrack,\n} from \"solid-js\";\n\nimport { assignRef, dom, createRenderProps } from \"./utils\";\nimport type { Ref, SlotProps, RenderProps } from \"./utils\";\n\ninterface Snapshot {\n rect: DOMRect;\n style: [string, string][];\n}\n\nconst SharedElementContext = createContext<Map<string, Snapshot> | null>(null);\n\nexport interface SharedElementTransitionProps {\n children?: JSX.Element;\n}\n\nexport function SharedElementTransition(\n props: SharedElementTransitionProps\n): JSX.Element {\n return (\n <SharedElementContext value={new Map()}>\n {props.children}\n </SharedElementContext>\n );\n}\n\nexport interface SharedElementRenderProps {\n isEntering: boolean;\n isExiting: boolean;\n}\n\nexport interface SharedElementPropsBase\n extends\n Omit<\n JSX.HTMLAttributes<HTMLDivElement>,\n \"children\" | \"class\" | \"style\" | \"ref\" | \"slot\"\n >,\n SlotProps,\n RenderProps<SharedElementRenderProps> {\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface SharedElementProps extends SharedElementPropsBase {\n name: string;\n isVisible?: boolean;\n}\n\nexport function SharedElement(props: SharedElementProps): JSX.Element {\n const scope = useContext(SharedElementContext);\n\n if (!scope) {\n throw new Error(\"SharedElement must be inside SharedElementTransition.\");\n }\n\n const [ref, setRef] = createSignal<HTMLDivElement | null>(null, {\n ownedWrite: true,\n });\n\n const [state, setState] = createSignal<\n \"visible\" | \"hidden\" | \"entering\" | \"exiting\"\n >(\n untrack(() => (props.isVisible === false ? \"hidden\" : \"visible\")),\n { ownedWrite: true }\n );\n\n let frame: number | undefined;\n let generation = 0;\n\n const snapshot = () => {\n const el = ref();\n\n if (!(el?.isConnected === true) || Object.hasOwn(el.dataset, \"exiting\")) {\n return;\n }\n\n const style = getComputedStyle(el);\n\n if (style.transitionProperty !== \"none\") {\n scope.set(props.name, {\n rect: el.getBoundingClientRect(),\n style: style.transitionProperty\n .split(/\\s*,\\s*/u)\n .map((property) => [property, style.getPropertyValue(property)]),\n });\n }\n };\n\n createEffect(\n () => ({\n element: ref(),\n name: props.name,\n visible: props.isVisible !== false,\n }),\n ({ visible, name, element }): undefined | (() => void) => {\n generation += 1;\n const current = generation;\n\n if (frame !== undefined) {\n cancelAnimationFrame(frame);\n }\n\n if (visible && !element) {\n setState(\"visible\");\n\n return undefined;\n }\n\n if (!element) {\n return undefined;\n }\n\n const previous = scope.get(name);\n\n if (visible && previous) {\n scope.delete(name);\n setState(\"visible\");\n const animations = element.getAnimations?.() ?? [];\n\n const values = previous.style.map(([property, value]) => {\n const currentValue = element.style.getPropertyValue(property);\n\n if (property === \"translate\") {\n const rect = element.getBoundingClientRect();\n element.style.setProperty(\n property,\n `${previous.rect.left - rect.left}px ${previous.rect.top - rect.top}px`\n );\n } else {\n element.style.setProperty(property, value);\n }\n\n return [property, currentValue] as const;\n });\n\n for (const animation of element.getAnimations?.() ?? []) {\n if (!animations.includes(animation)) {\n animation.cancel();\n }\n }\n\n frame = requestAnimationFrame(() => {\n for (const [property, value] of values) {\n element.style.setProperty(property, value);\n }\n\n frame = undefined;\n });\n } else if (visible) {\n setState(\"entering\");\n frame = requestAnimationFrame(() => {\n frame = undefined;\n\n if (current === generation) {\n setState(\"visible\");\n }\n });\n } else {\n snapshot();\n queueMicrotask(() => {\n if (current !== generation) {\n return;\n }\n\n if (scope.has(name)) {\n scope.delete(name);\n setState(\"exiting\");\n\n const hide = async () => {\n await Promise.allSettled(\n (element.getAnimations?.() ?? []).map(\n // oxlint-disable-next-line typescript/promise-function-async -- Wait on existing animation promises without wrapping them.\n (animation) => animation.finished\n )\n );\n\n if (current === generation) {\n setState(\"hidden\");\n }\n };\n\n void hide();\n } else {\n setState(\"hidden\");\n }\n });\n }\n\n return snapshot;\n }\n );\n onSettled(() => () => {\n generation += 1;\n snapshot();\n\n if (frame !== undefined) {\n cancelAnimationFrame(frame);\n }\n });\n\n const values: SharedElementRenderProps = {\n get isEntering() {\n return state() === \"entering\";\n },\n get isExiting() {\n return state() === \"exiting\";\n },\n };\n\n const render = createRenderProps(mergeProps(props, { values }));\n\n return (\n <Show when={state() !== \"hidden\"}>\n <dom.div\n {...filterDOMProps(props, { global: true })}\n {...render}\n ref={[\n (element: HTMLDivElement) => {\n setRef(element);\n },\n (element: HTMLDivElement) => {\n assignRef(\n untrack(() => props.ref),\n element\n );\n },\n ]}\n data-entering={values.isEntering || undefined}\n data-exiting={values.isExiting || undefined}\n />\n </Show>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 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/Sheet.tsx.
|
|
14
|
+
* Modified for Solid Aria: adapted components, contexts, refs, and reactive properties for Solid 2; measures rendered CSS snap lengths, tracks page offsets, preserves native scrolling, defers focus until entry, and settles handle gestures on release.
|
|
15
|
+
* Licensed under Apache-2.0. See LICENSES/Apache-2.0.txt and NOTICE.txt at the repository root.
|
|
16
|
+
*/
|
|
17
|
+
import { Ref, RenderProps } from "./utils.js";
|
|
18
|
+
import { DialogProps, DialogTriggerProps } from "./dialog.js";
|
|
19
|
+
import { ModalOverlayProps, ModalRenderProps } from "./modal.js";
|
|
20
|
+
import { JSX } from "@solidjs/web";
|
|
21
|
+
import { GlobalDOMAttributes } from "@solid2-aria/types-shared-web";
|
|
22
|
+
type SheetPosition = "bottom" | "top" | "left" | "right" | "center";
|
|
23
|
+
type SheetSwipeDirection = Exclude<SheetPosition, "center"> | "vertical" | "horizontal";
|
|
24
|
+
export interface SheetRenderProps extends ModalRenderProps {
|
|
25
|
+
position: SheetPosition;
|
|
26
|
+
swipeDirection: SheetSwipeDirection;
|
|
27
|
+
stackIndex: number;
|
|
28
|
+
hasDescendants: boolean;
|
|
29
|
+
isExpanded: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface SheetOverlayProps extends Omit<ModalOverlayProps, "class" | "style" | "children" | "render" | "onEnter" | "onExit" | "isEntering" | "isExiting" | "isDismissable" | "isKeyboardDismissDisabled">, RenderProps<SheetRenderProps> {
|
|
32
|
+
position?: SheetPosition | "start" | "end";
|
|
33
|
+
swipeDirection?: SheetSwipeDirection | "start" | "end";
|
|
34
|
+
snapPoints?: (number | string)[];
|
|
35
|
+
preventDismissal?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export type SheetTriggerProps = DialogTriggerProps;
|
|
38
|
+
export interface SheetProps extends Omit<ModalOverlayProps, "class" | "style" | "children" | "render" | "onEnter" | "onExit" | "isEntering" | "isExiting" | "isDismissable" | "isOpen" | "defaultOpen" | "onOpenChange" | "isKeyboardDismissDisabled" | "shouldCloseOnInteractOutside">, RenderProps<SheetRenderProps> {
|
|
39
|
+
swipeAnimation?: string;
|
|
40
|
+
swipeAnimationRange?: {
|
|
41
|
+
start?: number;
|
|
42
|
+
end?: number;
|
|
43
|
+
};
|
|
44
|
+
stackAnimation?: string;
|
|
45
|
+
overscrollPadding?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface SheetBackdropProps extends RenderProps<SheetRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
48
|
+
ref?: Ref<HTMLDivElement>;
|
|
49
|
+
swipeAnimation?: string;
|
|
50
|
+
swipeAnimationRange?: {
|
|
51
|
+
start?: number;
|
|
52
|
+
end?: number;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export interface SheetContentProps extends Omit<DialogProps, "class" | "isEntering"> {
|
|
56
|
+
class?: JSX.ClassValue;
|
|
57
|
+
}
|
|
58
|
+
export declare function SheetTrigger(props: SheetTriggerProps): JSX.Element;
|
|
59
|
+
export declare function SheetOverlay(props: SheetOverlayProps): JSX.Element;
|
|
60
|
+
export declare function Sheet(props: SheetProps): JSX.Element;
|
|
61
|
+
export declare function SheetBackdrop(props: SheetBackdropProps): JSX.Element;
|
|
62
|
+
export declare function SheetContent(props: SheetContentProps): JSX.Element;
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=sheet.d.ts.map
|