@fusion.dev/helix-headless 0.0.0-dev
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/custom-elements.json +75202 -0
- package/dist/accordion/index.d.ts +2 -0
- package/dist/accordion/index.js +2 -0
- package/dist/accordion/item/accordion-item.d.ts +141 -0
- package/dist/accordion/item/accordion-item.js +214 -0
- package/dist/accordion/root/accordion-root.d.ts +57 -0
- package/dist/accordion/root/accordion-root.js +96 -0
- package/dist/announcement/index.d.ts +1 -0
- package/dist/announcement/index.js +1 -0
- package/dist/announcement/root/announcement-root.d.ts +106 -0
- package/dist/announcement/root/announcement-root.js +144 -0
- package/dist/app-header/index.d.ts +1 -0
- package/dist/app-header/index.js +1 -0
- package/dist/app-header/root/app-header-root.d.ts +113 -0
- package/dist/app-header/root/app-header-root.js +147 -0
- package/dist/avatar/group/avatar-group.d.ts +116 -0
- package/dist/avatar/group/avatar-group.js +136 -0
- package/dist/avatar/index.d.ts +2 -0
- package/dist/avatar/index.js +2 -0
- package/dist/avatar/root/avatar-root.d.ts +71 -0
- package/dist/avatar/root/avatar-root.js +147 -0
- package/dist/badge/index.d.ts +1 -0
- package/dist/badge/index.js +1 -0
- package/dist/badge/root/badge-root.d.ts +61 -0
- package/dist/badge/root/badge-root.js +121 -0
- package/dist/bar-chart/index.d.ts +1 -0
- package/dist/bar-chart/index.js +1 -0
- package/dist/bar-chart/root/bar-chart-root.d.ts +266 -0
- package/dist/bar-chart/root/bar-chart-root.js +515 -0
- package/dist/blockquote/index.d.ts +1 -0
- package/dist/blockquote/index.js +1 -0
- package/dist/blockquote/root/blockquote-root.d.ts +51 -0
- package/dist/blockquote/root/blockquote-root.js +84 -0
- package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +104 -0
- package/dist/breadcrumbs/breadcrumb/breadcrumb.js +137 -0
- package/dist/breadcrumbs/index.d.ts +2 -0
- package/dist/breadcrumbs/index.js +2 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +77 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.js +94 -0
- package/dist/button/index.d.ts +1 -0
- package/dist/button/index.js +1 -0
- package/dist/button/root/button-root.d.ts +251 -0
- package/dist/button/root/button-root.js +401 -0
- package/dist/button-group/index.d.ts +1 -0
- package/dist/button-group/index.js +1 -0
- package/dist/button-group/root/button-group-root.d.ts +62 -0
- package/dist/button-group/root/button-group-root.js +62 -0
- package/dist/callout/index.d.ts +1 -0
- package/dist/callout/index.js +1 -0
- package/dist/callout/root/callout-root.d.ts +72 -0
- package/dist/callout/root/callout-root.js +90 -0
- package/dist/card/index.d.ts +1 -0
- package/dist/card/index.js +1 -0
- package/dist/card/root/card-root.d.ts +54 -0
- package/dist/card/root/card-root.js +71 -0
- package/dist/carousel/index.d.ts +1 -0
- package/dist/carousel/index.js +1 -0
- package/dist/carousel/root/carousel-root.d.ts +399 -0
- package/dist/carousel/root/carousel-root.js +723 -0
- package/dist/chat/composer/chat-composer.d.ts +160 -0
- package/dist/chat/composer/chat-composer.js +273 -0
- package/dist/chat/index.d.ts +3 -0
- package/dist/chat/index.js +3 -0
- package/dist/chat/message/chat-message.d.ts +170 -0
- package/dist/chat/message/chat-message.js +271 -0
- package/dist/chat/root/chat-root.d.ts +216 -0
- package/dist/chat/root/chat-root.js +389 -0
- package/dist/checkbox/index.d.ts +1 -0
- package/dist/checkbox/index.js +1 -0
- package/dist/checkbox/root/checkbox-root.d.ts +108 -0
- package/dist/checkbox/root/checkbox-root.js +207 -0
- package/dist/checkbox-group/index.d.ts +1 -0
- package/dist/checkbox-group/index.js +1 -0
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +155 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +293 -0
- package/dist/code/index.d.ts +1 -0
- package/dist/code/index.js +1 -0
- package/dist/code/root/code-root.d.ts +36 -0
- package/dist/code/root/code-root.js +43 -0
- package/dist/code-block/index.d.ts +1 -0
- package/dist/code-block/index.js +1 -0
- package/dist/code-block/root/code-block-root.d.ts +112 -0
- package/dist/code-block/root/code-block-root.js +155 -0
- package/dist/color-input/index.d.ts +1 -0
- package/dist/color-input/index.js +1 -0
- package/dist/color-input/root/color-input-root.d.ts +227 -0
- package/dist/color-input/root/color-input-root.js +456 -0
- package/dist/color-picker/color.d.ts +74 -0
- package/dist/color-picker/color.js +238 -0
- package/dist/color-picker/index.d.ts +2 -0
- package/dist/color-picker/index.js +2 -0
- package/dist/color-picker/root/color-picker-root.d.ts +303 -0
- package/dist/color-picker/root/color-picker-root.js +576 -0
- package/dist/combobox/index.d.ts +1 -0
- package/dist/combobox/index.js +1 -0
- package/dist/combobox/root/combobox-root.d.ts +396 -0
- package/dist/combobox/root/combobox-root.js +808 -0
- package/dist/command/index.d.ts +1 -0
- package/dist/command/index.js +1 -0
- package/dist/command/root/command-root.d.ts +166 -0
- package/dist/command/root/command-root.js +353 -0
- package/dist/copy-button/index.d.ts +1 -0
- package/dist/copy-button/index.js +1 -0
- package/dist/copy-button/root/copy-button-root.d.ts +154 -0
- package/dist/copy-button/root/copy-button-root.js +225 -0
- package/dist/data-table/index.d.ts +2 -0
- package/dist/data-table/index.js +2 -0
- package/dist/data-table/root/data-table-root.d.ts +392 -0
- package/dist/data-table/root/data-table-root.js +729 -0
- package/dist/data-table/root/order.d.ts +116 -0
- package/dist/data-table/root/order.js +175 -0
- package/dist/date-input/index.d.ts +1 -0
- package/dist/date-input/index.js +1 -0
- package/dist/date-input/root/date-input-root.d.ts +361 -0
- package/dist/date-input/root/date-input-root.js +791 -0
- package/dist/date-picker/index.d.ts +1 -0
- package/dist/date-picker/index.js +1 -0
- package/dist/date-picker/root/date-picker-root.d.ts +361 -0
- package/dist/date-picker/root/date-picker-root.js +837 -0
- package/dist/dialog/index.d.ts +1 -0
- package/dist/dialog/index.js +1 -0
- package/dist/dialog/root/dialog-root.d.ts +185 -0
- package/dist/dialog/root/dialog-root.js +319 -0
- package/dist/divider/index.d.ts +1 -0
- package/dist/divider/index.js +1 -0
- package/dist/divider/root/divider-root.d.ts +68 -0
- package/dist/divider/root/divider-root.js +116 -0
- package/dist/donut-chart/index.d.ts +1 -0
- package/dist/donut-chart/index.js +1 -0
- package/dist/donut-chart/root/donut-chart-root.d.ts +209 -0
- package/dist/donut-chart/root/donut-chart-root.js +395 -0
- package/dist/drawer/index.d.ts +1 -0
- package/dist/drawer/index.js +1 -0
- package/dist/drawer/root/drawer-root.d.ts +144 -0
- package/dist/drawer/root/drawer-root.js +222 -0
- package/dist/drilldown/index.d.ts +2 -0
- package/dist/drilldown/index.js +2 -0
- package/dist/drilldown/item/drilldown-item.d.ts +87 -0
- package/dist/drilldown/item/drilldown-item.js +152 -0
- package/dist/drilldown/root/drilldown-root.d.ts +115 -0
- package/dist/drilldown/root/drilldown-root.js +263 -0
- package/dist/element-events.generated.d.ts +1 -0
- package/dist/element-events.generated.js +125 -0
- package/dist/empty/index.d.ts +1 -0
- package/dist/empty/index.js +1 -0
- package/dist/empty/root/empty-root.d.ts +47 -0
- package/dist/empty/root/empty-root.js +68 -0
- package/dist/file-input/index.d.ts +1 -0
- package/dist/file-input/index.js +1 -0
- package/dist/file-input/root/file-input-root.d.ts +196 -0
- package/dist/file-input/root/file-input-root.js +488 -0
- package/dist/format-date/index.d.ts +1 -0
- package/dist/format-date/index.js +1 -0
- package/dist/format-date/root/format-date-root.d.ts +151 -0
- package/dist/format-date/root/format-date-root.js +266 -0
- package/dist/heatmap/index.d.ts +2 -0
- package/dist/heatmap/index.js +2 -0
- package/dist/heatmap/root/buckets.d.ts +62 -0
- package/dist/heatmap/root/buckets.js +85 -0
- package/dist/heatmap/root/heatmap-root.d.ts +330 -0
- package/dist/heatmap/root/heatmap-root.js +526 -0
- package/dist/icon/index.d.ts +1 -0
- package/dist/icon/index.js +1 -0
- package/dist/icon/root/icon-root.d.ts +53 -0
- package/dist/icon/root/icon-root.js +93 -0
- package/dist/icon-button/index.d.ts +1 -0
- package/dist/icon-button/index.js +1 -0
- package/dist/icon-button/root/icon-button-root.d.ts +40 -0
- package/dist/icon-button/root/icon-button-root.js +46 -0
- package/dist/image/index.d.ts +1 -0
- package/dist/image/index.js +1 -0
- package/dist/image/root/image-root.d.ts +213 -0
- package/dist/image/root/image-root.js +335 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.js +99 -0
- package/dist/input/index.d.ts +1 -0
- package/dist/input/index.js +1 -0
- package/dist/input/root/input-root.d.ts +281 -0
- package/dist/input/root/input-root.js +472 -0
- package/dist/kbd/index.d.ts +1 -0
- package/dist/kbd/index.js +1 -0
- package/dist/kbd/root/kbd-root.d.ts +98 -0
- package/dist/kbd/root/kbd-root.js +230 -0
- package/dist/legend/index.d.ts +1 -0
- package/dist/legend/index.js +1 -0
- package/dist/legend/root/legend-root.d.ts +83 -0
- package/dist/legend/root/legend-root.js +125 -0
- package/dist/line-chart/index.d.ts +1 -0
- package/dist/line-chart/index.js +1 -0
- package/dist/line-chart/root/line-chart-root.d.ts +238 -0
- package/dist/line-chart/root/line-chart-root.js +365 -0
- package/dist/list/index.d.ts +2 -0
- package/dist/list/index.js +2 -0
- package/dist/list/item/list-item.d.ts +95 -0
- package/dist/list/item/list-item.js +148 -0
- package/dist/list/root/list-root.d.ts +72 -0
- package/dist/list/root/list-root.js +61 -0
- package/dist/listbox/index.d.ts +1 -0
- package/dist/listbox/index.js +1 -0
- package/dist/listbox/root/listbox-root.d.ts +357 -0
- package/dist/listbox/root/listbox-root.js +890 -0
- package/dist/loader/index.d.ts +1 -0
- package/dist/loader/index.js +1 -0
- package/dist/loader/root/loader-root.d.ts +52 -0
- package/dist/loader/root/loader-root.js +74 -0
- package/dist/megamenu/index.d.ts +1 -0
- package/dist/megamenu/index.js +1 -0
- package/dist/megamenu/root/megamenu-root.d.ts +254 -0
- package/dist/megamenu/root/megamenu-root.js +526 -0
- package/dist/menu/index.d.ts +2 -0
- package/dist/menu/index.js +2 -0
- package/dist/menu/item/menu-item.d.ts +231 -0
- package/dist/menu/item/menu-item.js +405 -0
- package/dist/menu/root/menu-root.d.ts +158 -0
- package/dist/menu/root/menu-root.js +422 -0
- package/dist/meter/index.d.ts +1 -0
- package/dist/meter/index.js +1 -0
- package/dist/meter/root/meter-root.d.ts +234 -0
- package/dist/meter/root/meter-root.js +316 -0
- package/dist/navigation/index.d.ts +1 -0
- package/dist/navigation/index.js +1 -0
- package/dist/navigation/root/navigation-root.d.ts +55 -0
- package/dist/navigation/root/navigation-root.js +130 -0
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.js +2 -0
- package/dist/notifications/notification/notification.d.ts +181 -0
- package/dist/notifications/notification/notification.js +305 -0
- package/dist/notifications/root/notifications-root.d.ts +168 -0
- package/dist/notifications/root/notifications-root.js +291 -0
- package/dist/number-input/index.d.ts +1 -0
- package/dist/number-input/index.js +1 -0
- package/dist/number-input/root/number-input-root.d.ts +282 -0
- package/dist/number-input/root/number-input-root.js +592 -0
- package/dist/option/group/option-group.d.ts +38 -0
- package/dist/option/group/option-group.js +58 -0
- package/dist/option/index.d.ts +2 -0
- package/dist/option/index.js +2 -0
- package/dist/option/root/option-root.d.ts +194 -0
- package/dist/option/root/option-root.js +247 -0
- package/dist/outline/index.d.ts +1 -0
- package/dist/outline/index.js +1 -0
- package/dist/outline/root/outline-root.d.ts +237 -0
- package/dist/outline/root/outline-root.js +519 -0
- package/dist/pagination/index.d.ts +3 -0
- package/dist/pagination/index.js +3 -0
- package/dist/pagination/root/pagination-root.d.ts +390 -0
- package/dist/pagination/root/pagination-root.js +695 -0
- package/dist/pagination/size/pagination-size.d.ts +127 -0
- package/dist/pagination/size/pagination-size.js +232 -0
- package/dist/pagination/summary/pagination-summary.d.ts +90 -0
- package/dist/pagination/summary/pagination-summary.js +145 -0
- package/dist/pin-input/index.d.ts +1 -0
- package/dist/pin-input/index.js +1 -0
- package/dist/pin-input/root/pin-input-root.d.ts +292 -0
- package/dist/pin-input/root/pin-input-root.js +553 -0
- package/dist/popover/index.d.ts +1 -0
- package/dist/popover/index.js +1 -0
- package/dist/popover/root/popover-root.d.ts +108 -0
- package/dist/popover/root/popover-root.js +231 -0
- package/dist/progress/index.d.ts +1 -0
- package/dist/progress/index.js +1 -0
- package/dist/progress/root/progress-root.d.ts +125 -0
- package/dist/progress/root/progress-root.js +212 -0
- package/dist/qr-code/index.d.ts +1 -0
- package/dist/qr-code/index.js +1 -0
- package/dist/qr-code/root/qr-code-root.d.ts +93 -0
- package/dist/qr-code/root/qr-code-root.js +233 -0
- package/dist/quote/index.d.ts +1 -0
- package/dist/quote/index.js +1 -0
- package/dist/quote/root/quote-root.d.ts +36 -0
- package/dist/quote/root/quote-root.js +50 -0
- package/dist/radio/group/radio-group.d.ts +84 -0
- package/dist/radio/group/radio-group.js +170 -0
- package/dist/radio/index.d.ts +2 -0
- package/dist/radio/index.js +2 -0
- package/dist/radio/root/radio-root.d.ts +102 -0
- package/dist/radio/root/radio-root.js +151 -0
- package/dist/rating/index.d.ts +1 -0
- package/dist/rating/index.js +1 -0
- package/dist/rating/root/rating-root.d.ts +242 -0
- package/dist/rating/root/rating-root.js +484 -0
- package/dist/scroll-area/index.d.ts +1 -0
- package/dist/scroll-area/index.js +1 -0
- package/dist/scroll-area/root/scroll-area-root.d.ts +96 -0
- package/dist/scroll-area/root/scroll-area-root.js +215 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.js +1 -0
- package/dist/select/root/select-root.d.ts +170 -0
- package/dist/select/root/select-root.js +419 -0
- package/dist/skeleton/index.d.ts +1 -0
- package/dist/skeleton/index.js +1 -0
- package/dist/skeleton/root/skeleton-root.d.ts +31 -0
- package/dist/skeleton/root/skeleton-root.js +42 -0
- package/dist/slider/index.d.ts +1 -0
- package/dist/slider/index.js +1 -0
- package/dist/slider/root/slider-root.d.ts +235 -0
- package/dist/slider/root/slider-root.js +488 -0
- package/dist/sparkline/index.d.ts +1 -0
- package/dist/sparkline/index.js +1 -0
- package/dist/sparkline/root/sparkline-root.d.ts +147 -0
- package/dist/sparkline/root/sparkline-root.js +278 -0
- package/dist/speed-dial/index.d.ts +2 -0
- package/dist/speed-dial/index.js +2 -0
- package/dist/speed-dial/item/speed-dial-item.d.ts +71 -0
- package/dist/speed-dial/item/speed-dial-item.js +113 -0
- package/dist/speed-dial/root/speed-dial-root.d.ts +122 -0
- package/dist/speed-dial/root/speed-dial-root.js +251 -0
- package/dist/splitter/index.d.ts +1 -0
- package/dist/splitter/index.js +1 -0
- package/dist/splitter/root/splitter-root.d.ts +491 -0
- package/dist/splitter/root/splitter-root.js +1030 -0
- package/dist/stat/group/stat-group.d.ts +30 -0
- package/dist/stat/group/stat-group.js +47 -0
- package/dist/stat/index.d.ts +2 -0
- package/dist/stat/index.js +2 -0
- package/dist/stat/root/stat-root.d.ts +62 -0
- package/dist/stat/root/stat-root.js +51 -0
- package/dist/steps/index.d.ts +2 -0
- package/dist/steps/index.js +2 -0
- package/dist/steps/root/steps-root.d.ts +110 -0
- package/dist/steps/root/steps-root.js +130 -0
- package/dist/steps/step/step.d.ts +139 -0
- package/dist/steps/step/step.js +215 -0
- package/dist/switch/index.d.ts +1 -0
- package/dist/switch/index.js +1 -0
- package/dist/switch/root/switch-root.d.ts +74 -0
- package/dist/switch/root/switch-root.js +153 -0
- package/dist/table/cell/table-cell.d.ts +34 -0
- package/dist/table/cell/table-cell.js +52 -0
- package/dist/table/column/table-column.d.ts +165 -0
- package/dist/table/column/table-column.js +222 -0
- package/dist/table/index.d.ts +4 -0
- package/dist/table/index.js +4 -0
- package/dist/table/root/table-root.d.ts +98 -0
- package/dist/table/root/table-root.js +161 -0
- package/dist/table/row/table-row.d.ts +27 -0
- package/dist/table/row/table-row.js +42 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.js +3 -0
- package/dist/tabs/panel/tab-panel.d.ts +67 -0
- package/dist/tabs/panel/tab-panel.js +98 -0
- package/dist/tabs/root/tabs-root.d.ts +123 -0
- package/dist/tabs/root/tabs-root.js +217 -0
- package/dist/tabs/tab/tab.d.ts +64 -0
- package/dist/tabs/tab/tab.js +116 -0
- package/dist/tag/index.d.ts +1 -0
- package/dist/tag/index.js +1 -0
- package/dist/tag/root/tag-root.d.ts +41 -0
- package/dist/tag/root/tag-root.js +67 -0
- package/dist/textarea/index.d.ts +1 -0
- package/dist/textarea/index.js +1 -0
- package/dist/textarea/root/textarea-root.d.ts +215 -0
- package/dist/textarea/root/textarea-root.js +380 -0
- package/dist/time-input/index.d.ts +1 -0
- package/dist/time-input/index.js +1 -0
- package/dist/time-input/root/time-input-root.d.ts +322 -0
- package/dist/time-input/root/time-input-root.js +661 -0
- package/dist/time-picker/index.d.ts +1 -0
- package/dist/time-picker/index.js +1 -0
- package/dist/time-picker/root/time-picker-root.d.ts +380 -0
- package/dist/time-picker/root/time-picker-root.js +669 -0
- package/dist/timeline/index.d.ts +2 -0
- package/dist/timeline/index.js +2 -0
- package/dist/timeline/item/timeline-item.d.ts +81 -0
- package/dist/timeline/item/timeline-item.js +128 -0
- package/dist/timeline/root/timeline-root.d.ts +52 -0
- package/dist/timeline/root/timeline-root.js +72 -0
- package/dist/toast/index.d.ts +2 -0
- package/dist/toast/index.js +2 -0
- package/dist/toast/item/toast-item.d.ts +183 -0
- package/dist/toast/item/toast-item.js +345 -0
- package/dist/toast/root/toast-root.d.ts +72 -0
- package/dist/toast/root/toast-root.js +87 -0
- package/dist/toggle/group/toggle-group.d.ts +140 -0
- package/dist/toggle/group/toggle-group.js +278 -0
- package/dist/toggle/index.d.ts +2 -0
- package/dist/toggle/index.js +2 -0
- package/dist/toggle/root/toggle-root.d.ts +99 -0
- package/dist/toggle/root/toggle-root.js +146 -0
- package/dist/toolbar/index.d.ts +1 -0
- package/dist/toolbar/index.js +1 -0
- package/dist/toolbar/root/toolbar-root.d.ts +105 -0
- package/dist/toolbar/root/toolbar-root.js +260 -0
- package/dist/tooltip/index.d.ts +1 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/tooltip/root/tooltip-root.d.ts +388 -0
- package/dist/tooltip/root/tooltip-root.js +707 -0
- package/dist/tour/index.d.ts +2 -0
- package/dist/tour/index.js +2 -0
- package/dist/tour/root/tour-root.d.ts +161 -0
- package/dist/tour/root/tour-root.js +351 -0
- package/dist/tour/stop/tour-stop.d.ts +131 -0
- package/dist/tour/stop/tour-stop.js +249 -0
- package/dist/tree/index.d.ts +2 -0
- package/dist/tree/index.js +2 -0
- package/dist/tree/item/tree-item.d.ts +208 -0
- package/dist/tree/item/tree-item.js +381 -0
- package/dist/tree/root/tree-root.d.ts +88 -0
- package/dist/tree/root/tree-root.js +287 -0
- package/dist/trend/index.d.ts +1 -0
- package/dist/trend/index.js +1 -0
- package/dist/trend/root/trend-root.d.ts +67 -0
- package/dist/trend/root/trend-root.js +106 -0
- package/dist/video/index.d.ts +1 -0
- package/dist/video/index.js +1 -0
- package/dist/video/root/video-root.d.ts +711 -0
- package/dist/video/root/video-root.js +1821 -0
- package/dist/video-playlist/index.d.ts +3 -0
- package/dist/video-playlist/index.js +3 -0
- package/dist/video-playlist/item/video-playlist-item.d.ts +101 -0
- package/dist/video-playlist/item/video-playlist-item.js +162 -0
- package/dist/video-playlist/menu/video-playlist-menu.d.ts +121 -0
- package/dist/video-playlist/menu/video-playlist-menu.js +237 -0
- package/dist/video-playlist/root/video-playlist-root.d.ts +108 -0
- package/dist/video-playlist/root/video-playlist-root.js +218 -0
- package/dist/virtual-list/index.d.ts +1 -0
- package/dist/virtual-list/index.js +1 -0
- package/dist/virtual-list/root/virtual-list-root.d.ts +121 -0
- package/dist/virtual-list/root/virtual-list-root.js +221 -0
- package/jsx.d.ts +49767 -0
- package/package.json +77 -0
- package/svelte.d.ts +129 -0
- package/vue.d.ts +9242 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { customElement, HelixElement } from '@fusion.dev/helix-core';
|
|
8
|
+
import { html, nothing } from 'lit';
|
|
9
|
+
import { property, state } from 'lit/decorators.js';
|
|
10
|
+
/** Which edges have something past them, as a set of tokens. */
|
|
11
|
+
const EDGES = ['block-start', 'block-end', 'inline-start', 'inline-end'];
|
|
12
|
+
/**
|
|
13
|
+
* @summary A scrolling box that says there is more.
|
|
14
|
+
*
|
|
15
|
+
* @description
|
|
16
|
+
* **The whole component is one fact a stylesheet cannot work out for itself:
|
|
17
|
+
* which edges have content past them.** A fade at the bottom of a list is easy
|
|
18
|
+
* to draw and impossible to decide, because CSS has no reading of scroll
|
|
19
|
+
* position. So this measures and says, in `data-more`, and the styled tier
|
|
20
|
+
* draws whatever it likes on the edges named.
|
|
21
|
+
*
|
|
22
|
+
* **Tokens rather than four attributes**, so a stylesheet asks
|
|
23
|
+
* `[data-more~="block-end"]` the way it would ask about a class. Four booleans
|
|
24
|
+
* say the same thing in four selectors and read worse at every use.
|
|
25
|
+
*
|
|
26
|
+
* **A scrolling region takes the keyboard when it scrolls, and not before.**
|
|
27
|
+
* A box a reader can only reach with a pointer is a box some readers cannot
|
|
28
|
+
* read at all, which is what `tabindex` answers here. Only while it overflows:
|
|
29
|
+
* a tab stop on a box with nothing to scroll is a stop that does nothing, and a
|
|
30
|
+
* form full of them is worse than the problem.
|
|
31
|
+
*
|
|
32
|
+
* `role="region"` only with a `label`, because an unnamed region is an
|
|
33
|
+
* announcement with no content: a screen reader says "region" and the reader
|
|
34
|
+
* has learned nothing they did not already know.
|
|
35
|
+
*
|
|
36
|
+
* @since 0.1.0
|
|
37
|
+
* @status stable
|
|
38
|
+
* @category layout
|
|
39
|
+
* @aliases Scroller, Overflow, Scroll container
|
|
40
|
+
* @documentation https://helix.fusion.dev/components/scroll-area
|
|
41
|
+
*
|
|
42
|
+
* @slot - What scrolls.
|
|
43
|
+
*
|
|
44
|
+
* @csspart edges - Where the sideways edge cues are drawn.
|
|
45
|
+
* @csspart viewport - The scrolling box.
|
|
46
|
+
*/
|
|
47
|
+
let HelixHeadlessScrollArea = class HelixHeadlessScrollArea extends HelixElement {
|
|
48
|
+
constructor() {
|
|
49
|
+
super(...arguments);
|
|
50
|
+
/**
|
|
51
|
+
* Names the region, for a reader arriving at it out of context.
|
|
52
|
+
*
|
|
53
|
+
* Without one there is no region: see the note on the class.
|
|
54
|
+
*/
|
|
55
|
+
this.label = '';
|
|
56
|
+
/**
|
|
57
|
+
* Which edges have content past them, measured rather than guessed.
|
|
58
|
+
*/
|
|
59
|
+
this.more = [];
|
|
60
|
+
/**
|
|
61
|
+
* Whether there is anything to scroll at all, which decides the tab stop.
|
|
62
|
+
*/
|
|
63
|
+
this.scrolls = false;
|
|
64
|
+
/**
|
|
65
|
+
* Reads the four edges off the box.
|
|
66
|
+
*
|
|
67
|
+
* A pixel of slack on each, because a scroller at its end is routinely a
|
|
68
|
+
* fraction short of it: browsers round scroll positions differently under
|
|
69
|
+
* zoom and on a display that is not at one to one, and a fade that never
|
|
70
|
+
* quite goes out at the bottom of a fully scrolled list is the bug that
|
|
71
|
+
* costs.
|
|
72
|
+
*/
|
|
73
|
+
this.measure = () => {
|
|
74
|
+
const box = this.scroller;
|
|
75
|
+
if (!box) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const slack = 1;
|
|
79
|
+
const found = [];
|
|
80
|
+
if (box.scrollTop > slack) {
|
|
81
|
+
found.push('block-start');
|
|
82
|
+
}
|
|
83
|
+
if (box.scrollTop + box.clientHeight < box.scrollHeight - slack) {
|
|
84
|
+
found.push('block-end');
|
|
85
|
+
}
|
|
86
|
+
if (box.scrollLeft > slack) {
|
|
87
|
+
found.push('inline-start');
|
|
88
|
+
}
|
|
89
|
+
if (box.scrollLeft + box.clientWidth < box.scrollWidth - slack) {
|
|
90
|
+
found.push('inline-end');
|
|
91
|
+
}
|
|
92
|
+
this.more = found;
|
|
93
|
+
this.scrolls = box.scrollHeight > box.clientHeight || box.scrollWidth > box.clientWidth;
|
|
94
|
+
};
|
|
95
|
+
this.handleSlotChange = (event) => {
|
|
96
|
+
const slot = event.target;
|
|
97
|
+
for (const assigned of slot.assignedElements({ flatten: true })) {
|
|
98
|
+
this.watcher?.observe(assigned);
|
|
99
|
+
}
|
|
100
|
+
this.measure();
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The box that actually scrolls, for anything that needs to move it.
|
|
105
|
+
*
|
|
106
|
+
* **Public because the alternative is silence.** Bringing a row into view
|
|
107
|
+
* means telling a scroll utility which box to scroll, and the scrolling box
|
|
108
|
+
* here is inside a shadow root: a consumer holding a reference to this
|
|
109
|
+
* element holds the host, which does not scroll, and `scrollBy` on it is a
|
|
110
|
+
* no-op that reports nothing. That is exactly how `scrollItemIntoView`'s
|
|
111
|
+
* `offsetParent` default fails, and the sandbox sidebar spent an afternoon
|
|
112
|
+
* scrolled to zero because of it.
|
|
113
|
+
*
|
|
114
|
+
* The element rather than a method of our own, because the utilities that
|
|
115
|
+
* want it already take one, and `Tree`, `Combobox` and anything windowing a
|
|
116
|
+
* long list all want the same thing from it.
|
|
117
|
+
*/
|
|
118
|
+
get scroller() {
|
|
119
|
+
return this.renderRoot?.querySelector('[part="viewport"]') ?? null;
|
|
120
|
+
}
|
|
121
|
+
connectedCallback() {
|
|
122
|
+
super.connectedCallback();
|
|
123
|
+
/* Both the box and what is in it. The box changing size is a layout change
|
|
124
|
+
and the content changing size is a data change, and a fade that only
|
|
125
|
+
answered one of them was wrong every time a list was filtered. */
|
|
126
|
+
this.watcher = new ResizeObserver(this.measure);
|
|
127
|
+
/* And what it watches, which was registered only in `firstUpdated`.
|
|
128
|
+
*
|
|
129
|
+
* The observer was already rebuilt here, so this looked like the one
|
|
130
|
+
* component that had the lifecycle right, and it was half right. A fresh
|
|
131
|
+
* observer watches nothing until something calls `observe`, and only
|
|
132
|
+
* `firstUpdated` did, which runs once for the life of the element. So a
|
|
133
|
+
* scroll area moved in the DOM came back with a new observer registered on
|
|
134
|
+
* no targets: the fades stopped answering a resize or a filtered list, and
|
|
135
|
+
* the component went on rendering.
|
|
136
|
+
*
|
|
137
|
+
* Guarded on `hasUpdated`, because the first connection happens before the
|
|
138
|
+
* first render and there is no scroller to find yet. `check:observers`
|
|
139
|
+
* holds it, and had to be tightened to see it: asking for `new` *or*
|
|
140
|
+
* `observe` passed this on the half that was fine. */
|
|
141
|
+
if (this.hasUpdated) {
|
|
142
|
+
this.watchContent();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
disconnectedCallback() {
|
|
146
|
+
super.disconnectedCallback();
|
|
147
|
+
this.watcher?.disconnect();
|
|
148
|
+
this.watcher = undefined;
|
|
149
|
+
}
|
|
150
|
+
firstUpdated(changed) {
|
|
151
|
+
super.firstUpdated?.(changed);
|
|
152
|
+
this.watchContent();
|
|
153
|
+
this.measure();
|
|
154
|
+
}
|
|
155
|
+
/** Registers the box and everything slotted into it, which is what resizes. */
|
|
156
|
+
watchContent() {
|
|
157
|
+
const box = this.scroller;
|
|
158
|
+
if (!box || !this.watcher) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this.watcher.observe(box);
|
|
162
|
+
for (const child of box.querySelectorAll('slot')) {
|
|
163
|
+
for (const assigned of child.assignedElements({ flatten: true })) {
|
|
164
|
+
this.watcher.observe(assigned);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
updated(changed) {
|
|
169
|
+
super.updated?.(changed);
|
|
170
|
+
/* On the host rather than the viewport, so a consumer can style from the
|
|
171
|
+
outside without reaching through a part. */
|
|
172
|
+
this.toggleAttribute('data-scrolls', this.scrolls);
|
|
173
|
+
if (this.more.length > 0) {
|
|
174
|
+
this.setAttribute('data-more', this.more.join(' '));
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.removeAttribute('data-more');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
render() {
|
|
181
|
+
return html `<div
|
|
182
|
+
data-scroller
|
|
183
|
+
part="viewport"
|
|
184
|
+
role=${this.label ? 'region' : nothing}
|
|
185
|
+
aria-label=${this.label || nothing}
|
|
186
|
+
tabindex=${this.scrolls ? '0' : nothing}
|
|
187
|
+
@scroll=${this.measure}
|
|
188
|
+
>
|
|
189
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
190
|
+
</div>
|
|
191
|
+
<!-- The block edges are drawn on the host, which has two pseudo-elements and
|
|
192
|
+
no more. The sideways pair needs two of its own, and an element to hang
|
|
193
|
+
them on is cheaper than the arithmetic that would fit four edges into
|
|
194
|
+
two: they can then be placed with logical properties, which is what
|
|
195
|
+
makes inline-start the right-hand edge when the reader reads that way. -->
|
|
196
|
+
<div
|
|
197
|
+
part="edges"
|
|
198
|
+
aria-hidden="true"
|
|
199
|
+
></div>`;
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
__decorate([
|
|
203
|
+
property()
|
|
204
|
+
], HelixHeadlessScrollArea.prototype, "label", void 0);
|
|
205
|
+
__decorate([
|
|
206
|
+
state()
|
|
207
|
+
], HelixHeadlessScrollArea.prototype, "more", void 0);
|
|
208
|
+
__decorate([
|
|
209
|
+
state()
|
|
210
|
+
], HelixHeadlessScrollArea.prototype, "scrolls", void 0);
|
|
211
|
+
HelixHeadlessScrollArea = __decorate([
|
|
212
|
+
customElement('helix-headless-scroll-area')
|
|
213
|
+
], HelixHeadlessScrollArea);
|
|
214
|
+
export { HelixHeadlessScrollArea };
|
|
215
|
+
export { EDGES };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/select-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/select-root.js';
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { AriaForwardController, HelixFormElement, PopoverController } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
import '../../listbox/index.js';
|
|
4
|
+
declare const HelixHeadlessSelect_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerOpenInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
5
|
+
/**
|
|
6
|
+
* @summary A closed list that opens to be chosen from.
|
|
7
|
+
*
|
|
8
|
+
* @description
|
|
9
|
+
* **A trigger and a `Listbox`, not a listbox reimplemented behind a button.**
|
|
10
|
+
* The list this opens is the same element a consumer can use on its own, with
|
|
11
|
+
* the same keyboard, the same filtering and the same multi-select rules. What
|
|
12
|
+
* Select adds is the closing: a trigger that says what is chosen, a surface
|
|
13
|
+
* that floats, and somewhere for focus to go back to.
|
|
14
|
+
*
|
|
15
|
+
* The options are the consumer's, in the consumer's light DOM, slotted through
|
|
16
|
+
* into the listbox. That is why the listbox walks through slots to find them:
|
|
17
|
+
* from its point of view the options belong to something else.
|
|
18
|
+
*
|
|
19
|
+
* **What it does not do is duplicate the value.** `Select` owns it, hands it
|
|
20
|
+
* down, and takes changes back; the listbox is the thing being operated and not
|
|
21
|
+
* a second place the answer lives.
|
|
22
|
+
*
|
|
23
|
+
* @since 0.1.0
|
|
24
|
+
* @status experimental
|
|
25
|
+
* @category forms
|
|
26
|
+
* @aliases Dropdown, Picker
|
|
27
|
+
* @documentation https://helix.fusion.dev/components/select
|
|
28
|
+
*
|
|
29
|
+
* @slot - The options, and any groups of them.
|
|
30
|
+
* @slot end - After it, for a count, a unit, or a clear button.
|
|
31
|
+
* @slot hint - Richer than a string.
|
|
32
|
+
* @slot indicator - The mark on the trigger saying this opens, usually a caret.
|
|
33
|
+
* @slot label - Richer than a string.
|
|
34
|
+
* @slot start - Before the chosen value, for an icon or a prefix.
|
|
35
|
+
*
|
|
36
|
+
* @event {Event} change - Announced once the value has moved.
|
|
37
|
+
* @event {HelixBeforeChangeEvent} helix-before-change - Relayed from the listbox when the answer changes. Cancelable: refusing it takes the decision and nothing moves.
|
|
38
|
+
* @event {HelixBeforeCloseEvent} helix-before-close - Fired before it closes. Cancelable: refusing it takes the decision and nothing moves.
|
|
39
|
+
* @event {HelixBeforeOpenEvent} helix-before-open - Fired before the list opens. Cancelable: refusing it takes the decision and nothing moves.
|
|
40
|
+
* @event {Event} input - Announced once the value has moved.
|
|
41
|
+
* @event {Event} toggle - Says the state moved, carrying `newState` and `oldState`.
|
|
42
|
+
*
|
|
43
|
+
* @csspart feedback - What is wrong with it.
|
|
44
|
+
* @csspart hint - Help under the trigger.
|
|
45
|
+
* @csspart indicator - The caret saying the control opens. Replaced by slotting one.
|
|
46
|
+
* @csspart label - The question, over the trigger.
|
|
47
|
+
* @csspart listbox - The list inside it.
|
|
48
|
+
* @csspart listbox-empty - Shown when a filter has hidden everything.
|
|
49
|
+
* @csspart listbox-feedback - What is wrong with it.
|
|
50
|
+
* @csspart listbox-filter-icon - The mark beside that field.
|
|
51
|
+
* @csspart listbox-filter-mark - The glyph beside the filter field, where none is slotted.
|
|
52
|
+
* @csspart listbox-hint - Help under the list.
|
|
53
|
+
* @csspart listbox-items - The list itself.
|
|
54
|
+
* @csspart listbox-label - The question, over the list.
|
|
55
|
+
* @csspart listbox-loading - Shown while the options are still on their way.
|
|
56
|
+
* @csspart listbox-search - The region holding the field that narrows the list.
|
|
57
|
+
* @csspart listbox-search-field - The field itself.
|
|
58
|
+
* @csspart surface - The floating panel.
|
|
59
|
+
* @csspart trigger - The closed control, which says what is chosen.
|
|
60
|
+
* @csspart value - The chosen option's text inside the trigger.
|
|
61
|
+
*/
|
|
62
|
+
export declare class HelixHeadlessSelect extends HelixHeadlessSelect_base {
|
|
63
|
+
protected readonly aria: AriaForwardController;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the list can be narrowed by typing.
|
|
66
|
+
*
|
|
67
|
+
* Passed to the listbox rather than acted on here, because the listbox owns
|
|
68
|
+
* the filtering, the empty state and the keyboard. This property existed and
|
|
69
|
+
* was never read: it reflected, it type-checked, and nothing anywhere
|
|
70
|
+
* rendered a field. API that does nothing is worse than API that is missing,
|
|
71
|
+
* because a consumer sets it and believes it.
|
|
72
|
+
*/
|
|
73
|
+
filterable: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Whether the options are still on their way.
|
|
76
|
+
*
|
|
77
|
+
* Passed straight to the list, which is where the rows are and so where the
|
|
78
|
+
* message belongs. Two components saying "Loading" about one request is a
|
|
79
|
+
* consumer wiring the same flag twice.
|
|
80
|
+
*/
|
|
81
|
+
loading: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* What the list says while they are on their way.
|
|
84
|
+
*/
|
|
85
|
+
loadingText: string;
|
|
86
|
+
/**
|
|
87
|
+
* What it says where there are none.
|
|
88
|
+
*/
|
|
89
|
+
emptyText: string;
|
|
90
|
+
/**
|
|
91
|
+
* Whether more than one option can be the answer.
|
|
92
|
+
*/
|
|
93
|
+
multiple: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Shown on the trigger while nothing is chosen.
|
|
96
|
+
*/
|
|
97
|
+
placeholder: string;
|
|
98
|
+
/**
|
|
99
|
+
* Which option is chosen, as an index, or `-1` where none is.
|
|
100
|
+
*
|
|
101
|
+
* Read off the listbox this renders, which owns the options and is where the
|
|
102
|
+
* same two properties are implemented. Delegating rather than recomputing is
|
|
103
|
+
* what keeps a composed control and the control inside it from answering
|
|
104
|
+
* differently: they are one chooser to a consumer.
|
|
105
|
+
*/
|
|
106
|
+
get selectedIndex(): number;
|
|
107
|
+
set selectedIndex(at: number);
|
|
108
|
+
/** Which kind of chooser this is, in the platform's two words. */
|
|
109
|
+
get type(): string;
|
|
110
|
+
/**
|
|
111
|
+
* The list inside the surface, or nothing where there is no DOM to hold one.
|
|
112
|
+
*
|
|
113
|
+
* The optional chain is the server. `renderRoot` is a property Lit's element
|
|
114
|
+
* shim does not carry, and this getter is reached from `display`, which is
|
|
115
|
+
* read during `render`: without it the select threw on every server render
|
|
116
|
+
* and could not be served at all. Found by writing its SSR spec, which is
|
|
117
|
+
* the only thing that would have found it, because the client is where every
|
|
118
|
+
* other path runs and the client always has a root.
|
|
119
|
+
*
|
|
120
|
+
* The other reads of `renderRoot` here are inside callbacks the controllers
|
|
121
|
+
* invoke, and a controller only runs on a connected element, so they cannot
|
|
122
|
+
* be reached from the server and are left plain.
|
|
123
|
+
*/
|
|
124
|
+
private get listbox();
|
|
125
|
+
protected readonly panel: PopoverController;
|
|
126
|
+
/**
|
|
127
|
+
* What the trigger says: the chosen options' words, or the placeholder.
|
|
128
|
+
*
|
|
129
|
+
* Read off the options rather than stored, because the words are the
|
|
130
|
+
* consumer's content and storing a copy is storing something that goes stale
|
|
131
|
+
* the moment they change it.
|
|
132
|
+
*/
|
|
133
|
+
private get display();
|
|
134
|
+
/** Closes the list and puts focus back where it came from. */
|
|
135
|
+
private close;
|
|
136
|
+
private readonly handleChange;
|
|
137
|
+
private readonly handleTriggerKeydown;
|
|
138
|
+
/** Reports the answer and the verdict on it. */
|
|
139
|
+
private sync;
|
|
140
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
141
|
+
protected updated(changed: PropertyValues): void;
|
|
142
|
+
/**
|
|
143
|
+
* The list the trigger opens, behind a seam the styled tier can move.
|
|
144
|
+
*
|
|
145
|
+
* A method rather than a fragment inline, so a tier above can render its own
|
|
146
|
+
* list, wrap this one, or pass it a property the base does not know about,
|
|
147
|
+
* without reimplementing the whole template. The tag is interpolated rather
|
|
148
|
+
* than written, so `tier` resolves it: this renders the base listbox, and a
|
|
149
|
+
* styled subclass that sets `tier` renders the styled one from the same
|
|
150
|
+
* template.
|
|
151
|
+
*/
|
|
152
|
+
protected renderListbox(): TemplateResult;
|
|
153
|
+
/**
|
|
154
|
+
* The caret saying the control opens, behind a seam.
|
|
155
|
+
*
|
|
156
|
+
* Slot fallback, so a consumer replaces it by slotting; and a method, so the
|
|
157
|
+
* tier above replaces it by overriding. Those answer different people: the
|
|
158
|
+
* slot is for the page and the method is for whoever is building the styled
|
|
159
|
+
* layer, and a fallback with only the first is one a tier can restyle and
|
|
160
|
+
* cannot change.
|
|
161
|
+
*/
|
|
162
|
+
protected renderIndicator(): TemplateResult;
|
|
163
|
+
protected render(): TemplateResult;
|
|
164
|
+
}
|
|
165
|
+
declare global {
|
|
166
|
+
interface HTMLElementTagNameMap {
|
|
167
|
+
'helix-headless-select': HelixHeadlessSelect;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
export {};
|