@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,380 @@
|
|
|
1
|
+
import { HelixFormElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
import '../../listbox/index.js';
|
|
4
|
+
import '../../option/index.js';
|
|
5
|
+
/** Whether a string is a time the rest of this component can reason about. */
|
|
6
|
+
export declare const isTime: (value: string) => boolean;
|
|
7
|
+
/** Minutes since midnight, or `null` where it is not a time. */
|
|
8
|
+
export declare const toMinutes: (value: string) => number | null;
|
|
9
|
+
/** Minutes since midnight back to `HH:mm`, which is the value shape throughout. */
|
|
10
|
+
export declare const fromMinutes: (minutes: number) => string;
|
|
11
|
+
/**
|
|
12
|
+
* A time written the way the reader's locale writes one.
|
|
13
|
+
*
|
|
14
|
+
* `Intl` decides between a twelve and a twenty-four hour clock, because that is
|
|
15
|
+
* a property of the locale rather than of this component: `en-US` gets
|
|
16
|
+
* `2:30 PM` and `en-GB` gets `14:30` without either being configured. There is
|
|
17
|
+
* no flag to force one, deliberately. A product that needs to override its
|
|
18
|
+
* reader's own convention has a locale problem rather than a component one, and
|
|
19
|
+
* the value is 24 hour regardless.
|
|
20
|
+
*/
|
|
21
|
+
export declare const writeTime: (value: string, locale?: string) => string;
|
|
22
|
+
declare const HelixHeadlessTimePicker_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & typeof HelixFormElement;
|
|
23
|
+
/**
|
|
24
|
+
* @summary Picks a time, from a list of them.
|
|
25
|
+
*
|
|
26
|
+
* @description
|
|
27
|
+
* **A list rather than three wheels**, and the reason is what a list already
|
|
28
|
+
* is. `helix-listbox` brings the keyboard, the typeahead, the scroll into view
|
|
29
|
+
* and the announcement of a set of options, and a time at a step is a set of
|
|
30
|
+
* options. Three little wheels for hours, minutes and a meridiem are three
|
|
31
|
+
* controls to build, three to test, and a tab stop each for something a reader
|
|
32
|
+
* answers once.
|
|
33
|
+
*
|
|
34
|
+
* **A step is what makes it a list at all.** Fifteen minutes is ninety-six rows,
|
|
35
|
+
* which a reader scrolls or types into; one minute is one thousand four hundred
|
|
36
|
+
* and forty, which is a listbox in name only. So the list is for the times a
|
|
37
|
+
* product actually offers, and arbitrary times are the field's job in Input
|
|
38
|
+
* Time, the same division Date Input draws between typing a date and using the
|
|
39
|
+
* calendar.
|
|
40
|
+
*
|
|
41
|
+
* **The value is `HH:mm` on a twenty-four hour clock, always.** That is what a
|
|
42
|
+
* form submits and what `min` and `max` compare against, and it sorts as a
|
|
43
|
+
* string, which is the whole reason the shape is that one. What each row *says*
|
|
44
|
+
* is the reader's own convention, from `Intl`.
|
|
45
|
+
*
|
|
46
|
+
* @since 0.1.0
|
|
47
|
+
* @status experimental
|
|
48
|
+
* @category forms
|
|
49
|
+
* @aliases Time, TimeList
|
|
50
|
+
* @documentation https://helix.fusion.dev/components/time-picker
|
|
51
|
+
*
|
|
52
|
+
* @event {Event} change - Announced once the value has moved.
|
|
53
|
+
* @event {HelixBeforeChangeEvent} helix-before-change - Fired before the time changes. Cancelable: refusing it takes the decision and nothing moves.
|
|
54
|
+
* @event {Event} input - Announced once the value has moved.
|
|
55
|
+
*
|
|
56
|
+
* @csspart column - One of them.
|
|
57
|
+
* @csspart column-empty - Shown when a filter has hidden everything.
|
|
58
|
+
* @csspart column-feedback - What is wrong with it.
|
|
59
|
+
* @csspart column-filter-icon - The mark beside that field.
|
|
60
|
+
* @csspart column-filter-mark - The glyph beside the filter field, where none is slotted.
|
|
61
|
+
* @csspart column-hint - Help under the list.
|
|
62
|
+
* @csspart column-items - The list itself.
|
|
63
|
+
* @csspart column-label - The question, over the list.
|
|
64
|
+
* @csspart column-loading - Shown while the options are still on their way.
|
|
65
|
+
* @csspart column-search - The region holding the field that narrows the list.
|
|
66
|
+
* @csspart column-search-field - The field itself.
|
|
67
|
+
* @csspart columns - The row of columns, in `wheels`.
|
|
68
|
+
* @csspart list - The listbox holding the times, in `list`.
|
|
69
|
+
* @csspart list-empty - Shown when a filter has hidden everything.
|
|
70
|
+
* @csspart list-feedback - What is wrong with it.
|
|
71
|
+
* @csspart list-filter-icon - The mark beside that field.
|
|
72
|
+
* @csspart list-filter-mark - The glyph beside the filter field, where none is slotted.
|
|
73
|
+
* @csspart list-hint - Help under the list.
|
|
74
|
+
* @csspart list-items - The list itself.
|
|
75
|
+
* @csspart list-label - The question, over the list.
|
|
76
|
+
* @csspart list-loading - Shown while the options are still on their way.
|
|
77
|
+
* @csspart list-search - The region holding the field that narrows the list.
|
|
78
|
+
* @csspart list-search-field - The field itself.
|
|
79
|
+
* @csspart option - One time in it. Carries `data-between` inside a range.
|
|
80
|
+
* @csspart option-description - The caption under the words, when there is one.
|
|
81
|
+
* @csspart option-item - The row.
|
|
82
|
+
* @csspart option-label - The words.
|
|
83
|
+
* @csspart option-text - The words and the caption, as one column.
|
|
84
|
+
*/
|
|
85
|
+
export declare class HelixHeadlessTimePicker extends HelixHeadlessTimePicker_base {
|
|
86
|
+
/**
|
|
87
|
+
* Whether the current selection fails validation.
|
|
88
|
+
*
|
|
89
|
+
* A flag rather than a message, which is the split Date Picker already drew and
|
|
90
|
+
* these two now follow. A flat picker has no room of its own for a sentence:
|
|
91
|
+
* the field that wraps one owns the label, the hint and the feedback, and a
|
|
92
|
+
* second message inside the panel would be the same error said twice. What is
|
|
93
|
+
* left for the picker is the one thing the field cannot draw from outside, the
|
|
94
|
+
* mark on the answer itself.
|
|
95
|
+
*/
|
|
96
|
+
invalid: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* How far apart the offered times are, in minutes.
|
|
99
|
+
*
|
|
100
|
+
* Fifteen, which is four rows an hour and ninety-six in a day: enough that a
|
|
101
|
+
* reader scrolls rather than hunts, and few enough that the list is a list.
|
|
102
|
+
* Anything under five is a thousand rows and wants a field instead.
|
|
103
|
+
*/
|
|
104
|
+
step: number;
|
|
105
|
+
/**
|
|
106
|
+
* Earliest time offered, as `HH:mm`.
|
|
107
|
+
*/
|
|
108
|
+
min: string;
|
|
109
|
+
/**
|
|
110
|
+
* Latest time offered, as `HH:mm`.
|
|
111
|
+
*/
|
|
112
|
+
max: string;
|
|
113
|
+
/**
|
|
114
|
+
* Times that cannot be chosen, comma separated, as `HH:mm`.
|
|
115
|
+
*
|
|
116
|
+
* The counterpart to Date Picker's `disable-dates`, and it exists for the same
|
|
117
|
+
* shape of problem: `min` and `max` take away a span, and what a booking
|
|
118
|
+
* usually has to take away is a scatter. A morning with 09:30 and 11:00
|
|
119
|
+
* already gone is not two bounds.
|
|
120
|
+
*
|
|
121
|
+
* A time not on the step is simply never offered, so it is not an error to
|
|
122
|
+
* name one, and naming every time in the list is how the empty state is
|
|
123
|
+
* reached honestly rather than by handing over an empty range.
|
|
124
|
+
*/
|
|
125
|
+
disableTimes: string;
|
|
126
|
+
/**
|
|
127
|
+
* Language tag the times are written in.
|
|
128
|
+
*
|
|
129
|
+
* Absent uses the runtime's own.
|
|
130
|
+
*/
|
|
131
|
+
locale: string;
|
|
132
|
+
/**
|
|
133
|
+
* Accessible name for the list, which has no visible one of its own.
|
|
134
|
+
*/
|
|
135
|
+
label: string;
|
|
136
|
+
/**
|
|
137
|
+
* How many times can be held at once.
|
|
138
|
+
*
|
|
139
|
+
* Absent is one. `range` holds a start and an end with everything between
|
|
140
|
+
* them shown as part of the answer, `multiple` holds any number, and both are
|
|
141
|
+
* carried as one comma-separated value: the same shape `helix-date-picker` uses,
|
|
142
|
+
* because it is the same question asked of a different unit.
|
|
143
|
+
*
|
|
144
|
+
* **A range is two picks, and a third starts over.** That is the calendar's
|
|
145
|
+
* behavior and a reader who has met one has met both. The alternative, a
|
|
146
|
+
* separate "from" and "to" control, is two answers to what a product asks as
|
|
147
|
+
* one, and it makes the between part impossible to show.
|
|
148
|
+
*
|
|
149
|
+
* **Neither works on wheels and the appearance falls back.** A range on
|
|
150
|
+
* wheels is two sets of wheels, which is two controls; a multiple is a set,
|
|
151
|
+
* and a wheel has exactly one value by construction. Rather than draw
|
|
152
|
+
* something that cannot say what it holds, `wheels` renders as a list
|
|
153
|
+
* whenever a mode is set.
|
|
154
|
+
*/
|
|
155
|
+
mode?: 'multiple' | 'range';
|
|
156
|
+
/**
|
|
157
|
+
* Whether the times are one list or a column each.
|
|
158
|
+
*
|
|
159
|
+
* `list` is the default and offers whole times, which is what a product with
|
|
160
|
+
* opening hours or slots actually has. `wheels` splits them into an hour, a
|
|
161
|
+
* minute and, where the locale uses one, a meridiem: three short columns
|
|
162
|
+
* instead of ninety-six rows, and the only way to reach `23:45` without
|
|
163
|
+
* scrolling most of a day.
|
|
164
|
+
*
|
|
165
|
+
* The trade is that a wheel cannot say which *combinations* are on offer. A
|
|
166
|
+
* list of half hours from nine to five is seventeen rows and every one of them
|
|
167
|
+
* is a time the product has; the same thing as columns is an hour column and a
|
|
168
|
+
* minute column, and nothing in either says the two are only valid together.
|
|
169
|
+
* The bounds are still enforced, so a reader can be refused after the fact,
|
|
170
|
+
* which is worse than not being offered it.
|
|
171
|
+
*
|
|
172
|
+
* So: `list` where the set is the point, `wheels` where any time is allowed
|
|
173
|
+
* and the range is a whole day.
|
|
174
|
+
*
|
|
175
|
+
* **Optional rather than defaulted, which is not a style preference.** A
|
|
176
|
+
* reflecting property with a default writes its attribute onto every host the
|
|
177
|
+
* moment the element upgrades, including the ones a consumer rendered and did
|
|
178
|
+
* not touch, and React reads that as a hydration mismatch. The absent
|
|
179
|
+
* attribute *is* the list, which the stylesheet reads as the base rule, so
|
|
180
|
+
* only the departure has to be named.
|
|
181
|
+
*/
|
|
182
|
+
variant?: 'list' | 'wheels';
|
|
183
|
+
/**
|
|
184
|
+
* Every time on offer, as minutes since midnight.
|
|
185
|
+
*
|
|
186
|
+
* Built from `min` upward rather than from midnight, so a list that starts at
|
|
187
|
+
* `09:00` steps from nine rather than offering `09:15` because that is where
|
|
188
|
+
* the quarter hours from midnight happen to land. A step that does not divide
|
|
189
|
+
* the hour is a real thing to want, twenty minutes being the obvious one, and
|
|
190
|
+
* this is the reading that makes it behave.
|
|
191
|
+
*/
|
|
192
|
+
private get times();
|
|
193
|
+
/**
|
|
194
|
+
* Whether a time is barred by name.
|
|
195
|
+
*
|
|
196
|
+
* `barred`, not `disabled`, for the reason Date Picker records: this is a form
|
|
197
|
+
* control and `HelixFormElement.disabled` is a boolean about the whole of it,
|
|
198
|
+
* so a method and a flag cannot share the name.
|
|
199
|
+
*
|
|
200
|
+
* Only the named list. `min` and `max` are not consulted here because they
|
|
201
|
+
* never produce a row to bar: `times` builds the list between them, so a time
|
|
202
|
+
* outside the bounds is absent rather than present and refused.
|
|
203
|
+
*/
|
|
204
|
+
private barred;
|
|
205
|
+
/**
|
|
206
|
+
* Whether every offered time in an hour is barred.
|
|
207
|
+
*
|
|
208
|
+
* `shown` is the meridiem the wheel is on, so `1` means 01:00 under AM and
|
|
209
|
+
* 13:00 under PM. Absent is a 24 hour clock, where the number is the hour.
|
|
210
|
+
*/
|
|
211
|
+
private wholeHourBarred;
|
|
212
|
+
/** Whether every offered time in a half of the clock is barred. */
|
|
213
|
+
private halfBarred;
|
|
214
|
+
/** The times held, which is a list whether or not a mode is set. */
|
|
215
|
+
private get held();
|
|
216
|
+
/**
|
|
217
|
+
* Takes what the list announced and constrains it to what the mode allows.
|
|
218
|
+
*
|
|
219
|
+
* The listbox is put in `multiple` for both modes, because that is what marks
|
|
220
|
+
* more than one row and toggles on press. A range then differs only in what is
|
|
221
|
+
* kept: two, and a third pick starts again from that third one. Working out
|
|
222
|
+
* which is newest by difference rather than by position, since a toggle can
|
|
223
|
+
* remove as easily as add and the announced list is a set rather than a
|
|
224
|
+
* sequence.
|
|
225
|
+
*/
|
|
226
|
+
private readonly handleChange;
|
|
227
|
+
/** Whether a time falls inside a range, which is what gets banded. */
|
|
228
|
+
private between;
|
|
229
|
+
/** The three readings a wheel shows, from the value or from `min`. */
|
|
230
|
+
private get parts();
|
|
231
|
+
/** Puts a changed column back together into a whole time. */
|
|
232
|
+
private readonly moveColumn;
|
|
233
|
+
/** Every whole hour that has at least one offered time in it. */
|
|
234
|
+
private get hours();
|
|
235
|
+
/** Every minute offered within the hour currently shown. */
|
|
236
|
+
private get minutes();
|
|
237
|
+
/**
|
|
238
|
+
* Each wheel comes to rest on its own answer.
|
|
239
|
+
*
|
|
240
|
+
* A dial that opens at midnight when it holds ten in the evening is a dial
|
|
241
|
+
* showing the wrong thing, and CSS cannot fix it: `scroll-snap-type` chooses a
|
|
242
|
+
* snap point when something scrolls, and nothing has. Measured before this,
|
|
243
|
+
* with the value at 22:00, the hour wheel sat 288 pixels above its answer.
|
|
244
|
+
*
|
|
245
|
+
* On every update rather than on the first, because the columns re-render as
|
|
246
|
+
* the value moves and the minute column's contents change with the hour.
|
|
247
|
+
*
|
|
248
|
+
* **And it is public, because an update is not the only moment that matters.**
|
|
249
|
+
* Inside a panel this element renders while the panel is still
|
|
250
|
+
* `display: none`, so every box measures zero and there is nothing to center
|
|
251
|
+
* against: measured, the hour wheel stayed 288 pixels off its answer because
|
|
252
|
+
* the only call happened before anything had a size. Whatever shows the panel
|
|
253
|
+
* calls this again afterwards. The guard below makes the early call harmless
|
|
254
|
+
* rather than wrong, which is why it can be left in.
|
|
255
|
+
*/
|
|
256
|
+
reveal(): void;
|
|
257
|
+
/**
|
|
258
|
+
* Whether the control refuses changes while still submitting its value.
|
|
259
|
+
*
|
|
260
|
+
* **Enforced by refusing every request in one place**, which is the seam this
|
|
261
|
+
* component already has: `requestValue` is what every path here comes through,
|
|
262
|
+
* and gating it once is what stops the next call site from being written
|
|
263
|
+
* without the check.
|
|
264
|
+
*
|
|
265
|
+
* Not `disabled`, which is the confusion worth naming: a disabled control
|
|
266
|
+
* submits nothing and leaves the tab order, and a read-only one submits its
|
|
267
|
+
* value and stays reachable, which is what a form showing a value somebody
|
|
268
|
+
* else set needs.
|
|
269
|
+
*/
|
|
270
|
+
readOnly: boolean;
|
|
271
|
+
/** Refuses every change while read-only. See `readOnly`. */
|
|
272
|
+
requestValue(next: string): boolean;
|
|
273
|
+
/**
|
|
274
|
+
* Whether the form refuses to submit while nothing is chosen.
|
|
275
|
+
*/
|
|
276
|
+
required: boolean;
|
|
277
|
+
/**
|
|
278
|
+
* Reports "required and empty", or clears it.
|
|
279
|
+
*
|
|
280
|
+
* Written out rather than taken from `MixinField`, which is where the seven
|
|
281
|
+
* form controls get this. That mixin brings a label, a hint and a feedback
|
|
282
|
+
* region with it, and this is a grid rather than a field: it is composed
|
|
283
|
+
* *into* the field that has those, so taking the mixin would give one control
|
|
284
|
+
* two of each. What is shared is five lines, and the anchor is what the
|
|
285
|
+
* browser points its bubble at.
|
|
286
|
+
*/
|
|
287
|
+
private reportRequired;
|
|
288
|
+
/**
|
|
289
|
+
* Reports the times to the form, one entry each.
|
|
290
|
+
*
|
|
291
|
+
* **This element was form-associated, took a `name`, held a `value` and
|
|
292
|
+
* reported `valueMissing`, and never called `setFormValue` at all.** So
|
|
293
|
+
* `<helix-time-picker name="start" required>` refused the submit until a
|
|
294
|
+
* reader filled it and then submitted nothing, which is the worst shape the
|
|
295
|
+
* omission takes: every visible signal says the control is participating.
|
|
296
|
+
* Measured before the fix, one form holding both pickers, both named and
|
|
297
|
+
* both seeded: the entry list carried the date and no time.
|
|
298
|
+
*
|
|
299
|
+
* `FormData` and one entry per time, which is `DatePicker.report` exactly.
|
|
300
|
+
* `mode="multiple"` is genuinely several answers, and a server reading
|
|
301
|
+
* `times=09:00,17:00` would have to split it on a convention this library
|
|
302
|
+
* invented; `range` sends its two in order, so start and end arrive as the
|
|
303
|
+
* pair they already are.
|
|
304
|
+
*
|
|
305
|
+
* **Nothing at all without a `name`.** A `FormData` carries its own names and
|
|
306
|
+
* its entries are appended whatever the element is called, so an unnamed
|
|
307
|
+
* picker would submit empty-named times rather than being skipped the way a
|
|
308
|
+
* control reporting a plain string is. That is the same guard, for the same
|
|
309
|
+
* reason, that the calendar's own note spells out.
|
|
310
|
+
*/
|
|
311
|
+
private report;
|
|
312
|
+
/**
|
|
313
|
+
* Reveals once the wheels have rendered themselves.
|
|
314
|
+
*
|
|
315
|
+
* `updated` is this element's own moment, and each wheel is a `helix-listbox`
|
|
316
|
+
* that was created during this very render: its first update has been
|
|
317
|
+
* scheduled and has not run, so it has no rows and no height and `reveal`
|
|
318
|
+
* measures zero and gives up. Measured on a standalone picker, every column
|
|
319
|
+
* sat at `scrollTop: 0` with the answer nine rows down, which reads as a wheel
|
|
320
|
+
* showing the wrong time rather than as one that failed to scroll.
|
|
321
|
+
*
|
|
322
|
+
* It survived because the case that was tested was the panel, and whatever
|
|
323
|
+
* opens a panel calls `reveal` again afterwards for the separate reason the
|
|
324
|
+
* method documents. Flat on a page there is no panel and no second call.
|
|
325
|
+
*
|
|
326
|
+
* Safe to run on every update: the listbox stops as soon as the chosen row is
|
|
327
|
+
* within a pixel of center, so a call with nothing to do costs two rect reads
|
|
328
|
+
* and changes nothing. It cannot fight a reader mid-scroll either, since
|
|
329
|
+
* scrolling a wheel changes no property and so schedules no update.
|
|
330
|
+
*/
|
|
331
|
+
private revealWhenSettled;
|
|
332
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
333
|
+
protected updated(changed: PropertyValues): void;
|
|
334
|
+
/** Puts the keyboard on the list, which is the only control here. */
|
|
335
|
+
focus(options?: FocusOptions): void;
|
|
336
|
+
/**
|
|
337
|
+
* One wheel.
|
|
338
|
+
*
|
|
339
|
+
* `barred` is passed per column rather than read from `disableTimes` here,
|
|
340
|
+
* because a column holds a third of a time and only the caller knows the
|
|
341
|
+
* other two thirds. What that means differs by column and the difference is
|
|
342
|
+
* not a detail: a minute is barred when *this* hour plus it is, and an hour is
|
|
343
|
+
* barred only when every minute in it is, since one free minute is a reason to
|
|
344
|
+
* open the wheel rather than to close it.
|
|
345
|
+
*/
|
|
346
|
+
protected renderColumn(part: 'hour' | 'meridiem' | 'minute', label: string, values: string[], written: (one: string) => string, value: string, barred?: (one: string) => boolean): TemplateResult;
|
|
347
|
+
private renderSpinner;
|
|
348
|
+
/**
|
|
349
|
+
* The flat list of times, for the appearance that is not wheels, behind a seam the styled tier can move.
|
|
350
|
+
*
|
|
351
|
+
* A method rather than a fragment inline, so a tier above can render its own,
|
|
352
|
+
* wrap this one, pass it a property the base does not know about, or leave it
|
|
353
|
+
* out, without reimplementing the whole template to do any of them. The tag is
|
|
354
|
+
* interpolated rather than written, so `tier` resolves it: this renders the
|
|
355
|
+
* headless element, and a styled subclass that sets `tier` renders the styled one
|
|
356
|
+
* from the same template.
|
|
357
|
+
*/
|
|
358
|
+
protected renderList(): TemplateResult;
|
|
359
|
+
protected render(): TemplateResult;
|
|
360
|
+
/**
|
|
361
|
+
* The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
362
|
+
*
|
|
363
|
+
* The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
364
|
+
* is an offset into a day rather than an instant, and putting it on the epoch
|
|
365
|
+
* is what makes `valueAsNumber` come out as milliseconds since midnight rather
|
|
366
|
+
* than as a moment nobody meant. Assigning any date reads the clock off it, so
|
|
367
|
+
* a consumer handing over `new Date()` gets the time of day they expected.
|
|
368
|
+
*/
|
|
369
|
+
get valueAsDate(): Date | null;
|
|
370
|
+
set valueAsDate(date: Date | null);
|
|
371
|
+
/** The value as milliseconds since midnight, or `NaN` while there is no time. */
|
|
372
|
+
get valueAsNumber(): number;
|
|
373
|
+
set valueAsNumber(ms: number);
|
|
374
|
+
}
|
|
375
|
+
declare global {
|
|
376
|
+
interface HTMLElementTagNameMap {
|
|
377
|
+
'helix-headless-time-picker': HelixHeadlessTimePicker;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
export {};
|