@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,81 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary One event on a timeline: when it happened, and what it was.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* **The time is a `<time>`, and only when there is a time to put in it.** Given
|
|
8
|
+
* `datetime`, the label a consumer wrote is wrapped in the element the platform
|
|
9
|
+
* has for exactly this, so the machine-readable instant travels with the human
|
|
10
|
+
* one: a crawler, a reader's own tooling and a copy-paste all get "2026-08-19",
|
|
11
|
+
* where "yesterday" on its own is a word. Given no `datetime`, it stays a span,
|
|
12
|
+
* because a `<time>` with nothing to be precise about is markup pretending.
|
|
13
|
+
*
|
|
14
|
+
* **The connector is this element's, not the list's.** Each entry draws the line
|
|
15
|
+
* that arrives at it and hides it when it is first, which `:host(:first-child)`
|
|
16
|
+
* settles with no index, no counting parent and no script. `Steps` and
|
|
17
|
+
* `Breadcrumbs` both do it this way and for the same reason.
|
|
18
|
+
*
|
|
19
|
+
* `tone` says what kind of event it was, and it is the only thing that colours
|
|
20
|
+
* the mark. It takes `Announcement`'s vocabulary rather than a second one.
|
|
21
|
+
*
|
|
22
|
+
* @since 0.1.0
|
|
23
|
+
* @status stable
|
|
24
|
+
* @category data
|
|
25
|
+
* @aliases Activity item, History entry, Event
|
|
26
|
+
* @documentation https://helix.fusion.dev/components/timeline
|
|
27
|
+
*
|
|
28
|
+
* @slot - What happened.
|
|
29
|
+
* @slot marker - The mark on the line. Falls back to a dot, which is the slot's
|
|
30
|
+
* own fallback content rather than anything this element works out: whether a
|
|
31
|
+
* consumer slotted a mark is a question only the platform can answer, and it
|
|
32
|
+
* answers it by rendering what is inside the slot when nothing replaced it.
|
|
33
|
+
* @slot time - When it happened, as a reader should see it written.
|
|
34
|
+
*
|
|
35
|
+
* @csspart connector - The line arriving at this entry.
|
|
36
|
+
* @csspart content - What happened, and the time above it.
|
|
37
|
+
* @csspart dot - The mark drawn where nothing was slotted for one.
|
|
38
|
+
* @csspart marker - The mark on the line.
|
|
39
|
+
* @csspart rail - The column holding the mark and the line.
|
|
40
|
+
* @csspart time - When it happened.
|
|
41
|
+
*/
|
|
42
|
+
export declare class HelixHeadlessTimelineItem extends HelixElement {
|
|
43
|
+
/**
|
|
44
|
+
* When it happened, machine-readable.
|
|
45
|
+
*
|
|
46
|
+
* Whatever `<time>` accepts, which is a date, a time, both, a duration or a
|
|
47
|
+
* week. Unset, the label is written as it was given and nothing claims to
|
|
48
|
+
* know what instant it names.
|
|
49
|
+
*/
|
|
50
|
+
datetime: string;
|
|
51
|
+
/**
|
|
52
|
+
* What kind of event it was, which decides the mark's color and nothing else.
|
|
53
|
+
*/
|
|
54
|
+
tone?: 'danger' | 'info' | 'neutral' | 'primary' | 'success' | 'warning';
|
|
55
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
56
|
+
/**
|
|
57
|
+
* The mark for an entry that slotted none, which the tone decides.
|
|
58
|
+
*
|
|
59
|
+
* **A `protected render…()` and not a getter, which is what it was.** A slot's
|
|
60
|
+
* fallback answers a consumer and a seam answers the tier above, and a getter
|
|
61
|
+
* answers neither: `check:fallbacks` permits `${this.x}` because a property is
|
|
62
|
+
* not markup a tier would redraw, and it tests for parentheses, so a getter
|
|
63
|
+
* returning a template reads as a bare reference and was let through. That is
|
|
64
|
+
* the same hole the check's own comment records closing for a static helper,
|
|
65
|
+
* reopened by a different spelling of the same thing.
|
|
66
|
+
*
|
|
67
|
+
* Toned entries are reporting something, so they take the circle with a
|
|
68
|
+
* center, which is `Steps` drawing the stage a reader is standing on. Untoned
|
|
69
|
+
* ones are just things that happened and take the open circle, which is
|
|
70
|
+
* `Steps` drawing a stage nobody has reached. The same two glyphs in both
|
|
71
|
+
* components rather than two that resemble each other: a shape drawn twice
|
|
72
|
+
* drifts, and these are already the marks a reader has learned one page over.
|
|
73
|
+
*/
|
|
74
|
+
protected renderMarker(): TemplateResult;
|
|
75
|
+
protected render(): TemplateResult;
|
|
76
|
+
}
|
|
77
|
+
declare global {
|
|
78
|
+
interface HTMLElementTagNameMap {
|
|
79
|
+
'helix-headless-timeline-item': HelixHeadlessTimelineItem;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
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, hostAria } from '@fusion.dev/helix-core';
|
|
8
|
+
import { circle, record } from '@fusion.dev/helix-icons';
|
|
9
|
+
import { html } from 'lit';
|
|
10
|
+
import { property } from 'lit/decorators.js';
|
|
11
|
+
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
|
|
12
|
+
/**
|
|
13
|
+
* @summary One event on a timeline: when it happened, and what it was.
|
|
14
|
+
*
|
|
15
|
+
* @description
|
|
16
|
+
* **The time is a `<time>`, and only when there is a time to put in it.** Given
|
|
17
|
+
* `datetime`, the label a consumer wrote is wrapped in the element the platform
|
|
18
|
+
* has for exactly this, so the machine-readable instant travels with the human
|
|
19
|
+
* one: a crawler, a reader's own tooling and a copy-paste all get "2026-08-19",
|
|
20
|
+
* where "yesterday" on its own is a word. Given no `datetime`, it stays a span,
|
|
21
|
+
* because a `<time>` with nothing to be precise about is markup pretending.
|
|
22
|
+
*
|
|
23
|
+
* **The connector is this element's, not the list's.** Each entry draws the line
|
|
24
|
+
* that arrives at it and hides it when it is first, which `:host(:first-child)`
|
|
25
|
+
* settles with no index, no counting parent and no script. `Steps` and
|
|
26
|
+
* `Breadcrumbs` both do it this way and for the same reason.
|
|
27
|
+
*
|
|
28
|
+
* `tone` says what kind of event it was, and it is the only thing that colours
|
|
29
|
+
* the mark. It takes `Announcement`'s vocabulary rather than a second one.
|
|
30
|
+
*
|
|
31
|
+
* @since 0.1.0
|
|
32
|
+
* @status stable
|
|
33
|
+
* @category data
|
|
34
|
+
* @aliases Activity item, History entry, Event
|
|
35
|
+
* @documentation https://helix.fusion.dev/components/timeline
|
|
36
|
+
*
|
|
37
|
+
* @slot - What happened.
|
|
38
|
+
* @slot marker - The mark on the line. Falls back to a dot, which is the slot's
|
|
39
|
+
* own fallback content rather than anything this element works out: whether a
|
|
40
|
+
* consumer slotted a mark is a question only the platform can answer, and it
|
|
41
|
+
* answers it by rendering what is inside the slot when nothing replaced it.
|
|
42
|
+
* @slot time - When it happened, as a reader should see it written.
|
|
43
|
+
*
|
|
44
|
+
* @csspart connector - The line arriving at this entry.
|
|
45
|
+
* @csspart content - What happened, and the time above it.
|
|
46
|
+
* @csspart dot - The mark drawn where nothing was slotted for one.
|
|
47
|
+
* @csspart marker - The mark on the line.
|
|
48
|
+
* @csspart rail - The column holding the mark and the line.
|
|
49
|
+
* @csspart time - When it happened.
|
|
50
|
+
*/
|
|
51
|
+
let HelixHeadlessTimelineItem = class HelixHeadlessTimelineItem extends HelixElement {
|
|
52
|
+
constructor() {
|
|
53
|
+
super(...arguments);
|
|
54
|
+
/**
|
|
55
|
+
* When it happened, machine-readable.
|
|
56
|
+
*
|
|
57
|
+
* Whatever `<time>` accepts, which is a date, a time, both, a duration or a
|
|
58
|
+
* week. Unset, the label is written as it was given and nothing claims to
|
|
59
|
+
* know what instant it names.
|
|
60
|
+
*/
|
|
61
|
+
this.datetime = '';
|
|
62
|
+
}
|
|
63
|
+
willUpdate(changed) {
|
|
64
|
+
super.willUpdate(changed);
|
|
65
|
+
hostAria(this.internals, { role: 'listitem' });
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The mark for an entry that slotted none, which the tone decides.
|
|
69
|
+
*
|
|
70
|
+
* **A `protected render…()` and not a getter, which is what it was.** A slot's
|
|
71
|
+
* fallback answers a consumer and a seam answers the tier above, and a getter
|
|
72
|
+
* answers neither: `check:fallbacks` permits `${this.x}` because a property is
|
|
73
|
+
* not markup a tier would redraw, and it tests for parentheses, so a getter
|
|
74
|
+
* returning a template reads as a bare reference and was let through. That is
|
|
75
|
+
* the same hole the check's own comment records closing for a static helper,
|
|
76
|
+
* reopened by a different spelling of the same thing.
|
|
77
|
+
*
|
|
78
|
+
* Toned entries are reporting something, so they take the circle with a
|
|
79
|
+
* center, which is `Steps` drawing the stage a reader is standing on. Untoned
|
|
80
|
+
* ones are just things that happened and take the open circle, which is
|
|
81
|
+
* `Steps` drawing a stage nobody has reached. The same two glyphs in both
|
|
82
|
+
* components rather than two that resemble each other: a shape drawn twice
|
|
83
|
+
* drifts, and these are already the marks a reader has learned one page over.
|
|
84
|
+
*/
|
|
85
|
+
renderMarker() {
|
|
86
|
+
const icon = this.tone === undefined ? circle : record;
|
|
87
|
+
return html `<span part="marker"
|
|
88
|
+
><slot name="marker"
|
|
89
|
+
><svg part="dot" fill="currentColor" viewBox=${icon.viewBox} aria-hidden="true">
|
|
90
|
+
${unsafeSVG(icon.content)}
|
|
91
|
+
</svg></slot
|
|
92
|
+
></span
|
|
93
|
+
>`;
|
|
94
|
+
}
|
|
95
|
+
render() {
|
|
96
|
+
const when = html `<slot name="time"></slot>`;
|
|
97
|
+
/* The time is a sibling of the content rather than the first thing inside
|
|
98
|
+
it, so the two are separate rows and the rail can align its mark to the
|
|
99
|
+
second of them. Nested, the mark could only ever be a fixed distance from
|
|
100
|
+
the top of the entry, which is the time's height on a good day and wrong
|
|
101
|
+
the moment a consumer writes two lines of it. */
|
|
102
|
+
return html `<div part="rail">
|
|
103
|
+
<div
|
|
104
|
+
part="connector"
|
|
105
|
+
aria-hidden="true"
|
|
106
|
+
></div>
|
|
107
|
+
${this.renderMarker()}
|
|
108
|
+
</div>
|
|
109
|
+
${this.datetime === ''
|
|
110
|
+
? html `<span part="time">${when}</span>`
|
|
111
|
+
: html `<time
|
|
112
|
+
part="time"
|
|
113
|
+
datetime=${this.datetime}
|
|
114
|
+
>${when}</time
|
|
115
|
+
>`}
|
|
116
|
+
<div part="content"><slot></slot></div>`;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
__decorate([
|
|
120
|
+
property()
|
|
121
|
+
], HelixHeadlessTimelineItem.prototype, "datetime", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
property({ reflect: true })
|
|
124
|
+
], HelixHeadlessTimelineItem.prototype, "tone", void 0);
|
|
125
|
+
HelixHeadlessTimelineItem = __decorate([
|
|
126
|
+
customElement('helix-headless-timeline-item')
|
|
127
|
+
], HelixHeadlessTimelineItem);
|
|
128
|
+
export { HelixHeadlessTimelineItem };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary A record of what happened, in the order it happened.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* **Not `Steps`, and the difference is what the thing is for.** A stepper is a
|
|
8
|
+
* process a reader is moving through: it has a stage they are on, stages they
|
|
9
|
+
* have finished, and stages ahead, so it carries `active` and `complete` and
|
|
10
|
+
* numbers itself. A timeline is a record of events that already happened, or are
|
|
11
|
+
* scheduled to. Nothing is current, nothing is complete, and what each entry
|
|
12
|
+
* carries instead is a time. Building this as an appearance of `Steps` would
|
|
13
|
+
* have meant a stepper with no step you are on.
|
|
14
|
+
*
|
|
15
|
+
* What it does take from `Steps` is the connector. Each entry draws the line
|
|
16
|
+
* that arrives at it and hides it when it is first, which needs neither an index
|
|
17
|
+
* nor a parent that counts: `:host(:first-child)` is the whole of it, resolved
|
|
18
|
+
* at layout with no script, so a server's markup is right before anything runs.
|
|
19
|
+
*
|
|
20
|
+
* `role="list"` on the host rather than an `<ol>` in the shadow root, for the
|
|
21
|
+
* reason `Steps` gives: the entries are the consumer's elements in the light
|
|
22
|
+
* DOM, so a list element here would be a list whose items are somewhere else.
|
|
23
|
+
*
|
|
24
|
+
* **It runs down the page and has no horizontal form.** There was one, and it
|
|
25
|
+
* was removed rather than tuned: laid along a line there is no room for the
|
|
26
|
+
* time or the sentence that are the whole reason to reach for a timeline, so
|
|
27
|
+
* what survives is a mark and a short label, and that is a stepper. `Steps` is
|
|
28
|
+
* already horizontal by default and already draws it, so the horizontal version
|
|
29
|
+
* of this was a second component rendering the same picture from thinner data.
|
|
30
|
+
* A run of stages along a page is `Steps`.
|
|
31
|
+
*
|
|
32
|
+
* @since 0.1.0
|
|
33
|
+
* @status stable
|
|
34
|
+
* @category data
|
|
35
|
+
* @aliases Activity feed, History, Changelog, Audit trail
|
|
36
|
+
* @documentation https://helix.fusion.dev/components/timeline
|
|
37
|
+
*
|
|
38
|
+
* @slot - The entries.
|
|
39
|
+
*/
|
|
40
|
+
export declare class HelixHeadlessTimeline extends HelixElement {
|
|
41
|
+
/**
|
|
42
|
+
* Names the record, for a reader arriving at it out of context.
|
|
43
|
+
*/
|
|
44
|
+
label: string;
|
|
45
|
+
protected render(): TemplateResult;
|
|
46
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
47
|
+
}
|
|
48
|
+
declare global {
|
|
49
|
+
interface HTMLElementTagNameMap {
|
|
50
|
+
'helix-headless-timeline': HelixHeadlessTimeline;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
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, hostAria } from '@fusion.dev/helix-core';
|
|
8
|
+
import { html } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
/**
|
|
11
|
+
* @summary A record of what happened, in the order it happened.
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* **Not `Steps`, and the difference is what the thing is for.** A stepper is a
|
|
15
|
+
* process a reader is moving through: it has a stage they are on, stages they
|
|
16
|
+
* have finished, and stages ahead, so it carries `active` and `complete` and
|
|
17
|
+
* numbers itself. A timeline is a record of events that already happened, or are
|
|
18
|
+
* scheduled to. Nothing is current, nothing is complete, and what each entry
|
|
19
|
+
* carries instead is a time. Building this as an appearance of `Steps` would
|
|
20
|
+
* have meant a stepper with no step you are on.
|
|
21
|
+
*
|
|
22
|
+
* What it does take from `Steps` is the connector. Each entry draws the line
|
|
23
|
+
* that arrives at it and hides it when it is first, which needs neither an index
|
|
24
|
+
* nor a parent that counts: `:host(:first-child)` is the whole of it, resolved
|
|
25
|
+
* at layout with no script, so a server's markup is right before anything runs.
|
|
26
|
+
*
|
|
27
|
+
* `role="list"` on the host rather than an `<ol>` in the shadow root, for the
|
|
28
|
+
* reason `Steps` gives: the entries are the consumer's elements in the light
|
|
29
|
+
* DOM, so a list element here would be a list whose items are somewhere else.
|
|
30
|
+
*
|
|
31
|
+
* **It runs down the page and has no horizontal form.** There was one, and it
|
|
32
|
+
* was removed rather than tuned: laid along a line there is no room for the
|
|
33
|
+
* time or the sentence that are the whole reason to reach for a timeline, so
|
|
34
|
+
* what survives is a mark and a short label, and that is a stepper. `Steps` is
|
|
35
|
+
* already horizontal by default and already draws it, so the horizontal version
|
|
36
|
+
* of this was a second component rendering the same picture from thinner data.
|
|
37
|
+
* A run of stages along a page is `Steps`.
|
|
38
|
+
*
|
|
39
|
+
* @since 0.1.0
|
|
40
|
+
* @status stable
|
|
41
|
+
* @category data
|
|
42
|
+
* @aliases Activity feed, History, Changelog, Audit trail
|
|
43
|
+
* @documentation https://helix.fusion.dev/components/timeline
|
|
44
|
+
*
|
|
45
|
+
* @slot - The entries.
|
|
46
|
+
*/
|
|
47
|
+
let HelixHeadlessTimeline = class HelixHeadlessTimeline extends HelixElement {
|
|
48
|
+
constructor() {
|
|
49
|
+
super(...arguments);
|
|
50
|
+
/**
|
|
51
|
+
* Names the record, for a reader arriving at it out of context.
|
|
52
|
+
*/
|
|
53
|
+
this.label = '';
|
|
54
|
+
}
|
|
55
|
+
render() {
|
|
56
|
+
return html `<slot></slot>`;
|
|
57
|
+
}
|
|
58
|
+
willUpdate(changed) {
|
|
59
|
+
super.willUpdate(changed);
|
|
60
|
+
/* On the host through internals rather than as an attribute, so the role is
|
|
61
|
+
there for a screen reader without being markup the server never wrote.
|
|
62
|
+
`Steps` says the same about its own list. */
|
|
63
|
+
hostAria(this.internals, { label: this.label, role: 'list' });
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
__decorate([
|
|
67
|
+
property()
|
|
68
|
+
], HelixHeadlessTimeline.prototype, "label", void 0);
|
|
69
|
+
HelixHeadlessTimeline = __decorate([
|
|
70
|
+
customElement('helix-headless-timeline')
|
|
71
|
+
], HelixHeadlessTimeline);
|
|
72
|
+
export { HelixHeadlessTimeline };
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { HelixElement, type ToneMark } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
declare const HelixHeadlessToastItem_base: (new (...args: any[]) => import("@fusion.dev/helix-core").DismissibleElement) & typeof HelixElement;
|
|
4
|
+
/**
|
|
5
|
+
* @summary One message in the toast region.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* An element rather than a slot, because it carries a timeout, a tone, a
|
|
9
|
+
* dismiss control and a lifetime that pauses: behavior, state and API, which
|
|
10
|
+
* is the test for whether a region becomes an element in this library.
|
|
11
|
+
*
|
|
12
|
+
* **The timer is the item's own.** Held by the region, one message arriving
|
|
13
|
+
* would restart another's, so a stack of three would go from three seconds each
|
|
14
|
+
* to nine for the last one. Each message is on its own clock from the moment it
|
|
15
|
+
* is rendered.
|
|
16
|
+
*
|
|
17
|
+
* **A message is the opposite of the page it is over.** Inverted by default,
|
|
18
|
+
* because a thing arriving in a corner has to be told apart from the page in
|
|
19
|
+
* the moment before it is read, and inverting does that without spending a
|
|
20
|
+
* color that means something. It is a flip of `color-scheme` rather than a
|
|
21
|
+
* named inverse surface: every token in the subtree re-resolves, so a `Retry`
|
|
22
|
+
* a consumer slots in comes out right without knowing where it is. `Tooltip`
|
|
23
|
+
* can name the inverse surface directly because it holds no controls; this
|
|
24
|
+
* cannot. Set `data-color-mode` on the region to take the page's mode instead.
|
|
25
|
+
*
|
|
26
|
+
* **No duration means it stays.** That is the safe default rather than the
|
|
27
|
+
* common one: anything carrying an action has to still be there when the reader
|
|
28
|
+
* decides to take it, and a component cannot tell from the outside whether the
|
|
29
|
+
* message it was given is disposable.
|
|
30
|
+
*
|
|
31
|
+
* **The clock stops while it is being read.** Hover pauses it, and so does
|
|
32
|
+
* focus landing anywhere inside, which is the case that matters more: a
|
|
33
|
+
* keyboard reader tabbing towards the action in a toast is exactly the person a
|
|
34
|
+
* timer must not race. Both resume where they left off rather than starting
|
|
35
|
+
* again, so a message half-read does not get a full second life every time a
|
|
36
|
+
* pointer crosses it.
|
|
37
|
+
*
|
|
38
|
+
* **Going away is a request, never an act.** It dispatches a cancelable
|
|
39
|
+
* `helix-dismiss` and does nothing else: the consumer owns the list, so the
|
|
40
|
+
* item removing itself would leave the two disagreeing. Auto-dismiss and the
|
|
41
|
+
* dismiss control raise the same event, so a consumer handles one path and not
|
|
42
|
+
* two.
|
|
43
|
+
*
|
|
44
|
+
* The properties below are written by this component and read by whoever draws
|
|
45
|
+
* it. A consumer sets none of them: they carry a number this element computed
|
|
46
|
+
* and CSS cannot, which is what lets a stylesheet on this tier draw the thing
|
|
47
|
+
* without measuring anything itself.
|
|
48
|
+
*
|
|
49
|
+
* @since 0.1.0
|
|
50
|
+
* @status experimental
|
|
51
|
+
* @documentation https://helix.fusion.dev/components/toast
|
|
52
|
+
*
|
|
53
|
+
* @slot - The message.
|
|
54
|
+
* @slot actions - What to do about it, usually a button or a link.
|
|
55
|
+
* @slot dismiss-icon - Replaces the glyph inside the dismiss control.
|
|
56
|
+
* @slot icon - Replaces the tone mark. Matches `Callout`, which is why the
|
|
57
|
+
* dismiss control's own glyph is `dismiss-icon` rather than this: two slots
|
|
58
|
+
* cannot share a name, assignment goes to whichever comes first in the tree,
|
|
59
|
+
* and the tone mark is the one a consumer reaches for.
|
|
60
|
+
*
|
|
61
|
+
* @event {HelixDismissEvent} helix-dismiss - Fired when it asks to go, whether by the control or by its timer. Cancelable: refusing it takes the decision and nothing moves.
|
|
62
|
+
*
|
|
63
|
+
* @csspart actions - The region holding what to do about it.
|
|
64
|
+
* @csspart content - The message.
|
|
65
|
+
* @csspart dismiss - The control that asks to close.
|
|
66
|
+
* @csspart dismiss-mark - The glyph on the dismiss control, where none is slotted.
|
|
67
|
+
* @csspart icon - The tone mark, where the message has one.
|
|
68
|
+
* @csspart icon-mark - The tone glyph, where none is slotted.
|
|
69
|
+
* @csspart item - The message's own surface.
|
|
70
|
+
* @csspart timer - The bar showing how long is left, where a duration was given.
|
|
71
|
+
*
|
|
72
|
+
* @cssproperty --toast-duration - How long this message stays, in milliseconds, for a progress hint.
|
|
73
|
+
*/
|
|
74
|
+
export declare class HelixHeadlessToastItem extends HelixHeadlessToastItem_base {
|
|
75
|
+
/**
|
|
76
|
+
* How long it stays, in milliseconds. Absent means until it is dismissed.
|
|
77
|
+
*
|
|
78
|
+
* Read once when the item is first rendered. Changing it afterwards does not
|
|
79
|
+
* restart a message the reader is already partway through.
|
|
80
|
+
*/
|
|
81
|
+
duration?: number;
|
|
82
|
+
/**
|
|
83
|
+
* What kind of message it is, which picks the mark and its name.
|
|
84
|
+
*
|
|
85
|
+
* `severity` was a sixth spelling of `tone`, and a subset of it: a toast
|
|
86
|
+
* reports a status and never a brand role.
|
|
87
|
+
*/
|
|
88
|
+
tone?: 'danger' | 'info' | 'success' | 'warning';
|
|
89
|
+
/** When the current run of the timer began, or nothing while it is paused. */
|
|
90
|
+
private startedAt;
|
|
91
|
+
/** What is left of the duration, so resuming continues rather than restarts. */
|
|
92
|
+
private remaining;
|
|
93
|
+
private timer;
|
|
94
|
+
/**
|
|
95
|
+
* Whether the message is still showing.
|
|
96
|
+
*
|
|
97
|
+
* The same decide-once contract every other stateful thing here carries, and
|
|
98
|
+
* it was the one exception: this waited to be told in every case, so
|
|
99
|
+
* `duration` did nothing at all without consumer script and the dismiss
|
|
100
|
+
* control looked broken to anyone who pressed it. `Dialog` closes itself,
|
|
101
|
+
* `Accordion` closes itself, and there was no reason a message should not.
|
|
102
|
+
*
|
|
103
|
+
* Declared by the markup and it is the consumer's: the item announces and
|
|
104
|
+
* waits. Not declared and it is the item's: it goes when it is asked to, and
|
|
105
|
+
* the consumer still hears `helix-dismiss` and takes it out of their own
|
|
106
|
+
* list. Read once, at the first update.
|
|
107
|
+
*
|
|
108
|
+
* **No `default-open`, unlike the four mixins.** A `default-` seed exists so
|
|
109
|
+
* markup can choose a starting state without claiming ownership, and there is
|
|
110
|
+
* only one starting state that makes sense: a message that has been rendered
|
|
111
|
+
* is showing. An attribute whose only legal value is the default is an
|
|
112
|
+
* attribute nobody can use.
|
|
113
|
+
*
|
|
114
|
+
*
|
|
115
|
+
*/
|
|
116
|
+
get open(): boolean;
|
|
117
|
+
set open(next: boolean);
|
|
118
|
+
/** Whether it is showing, whoever said so, and `undefined` until somebody has. */
|
|
119
|
+
private openState;
|
|
120
|
+
/**
|
|
121
|
+
* Asks to be taken away, and reports whether the request stood.
|
|
122
|
+
*
|
|
123
|
+
* Announced before anything happens, so `preventDefault()` is a refusal and
|
|
124
|
+
* the message stays. The event still carries the label, because a consumer
|
|
125
|
+
* removing this from their own state has to know which one went, and that is
|
|
126
|
+
* true whether or not the item hid itself first.
|
|
127
|
+
*/
|
|
128
|
+
dismiss(): boolean;
|
|
129
|
+
/** Stops the clock, leaving whatever is left of it. */
|
|
130
|
+
pause(): void;
|
|
131
|
+
/** Starts it again from where it stopped. */
|
|
132
|
+
resume(): void;
|
|
133
|
+
/**
|
|
134
|
+
* How many reasons there are to hold the clock, rather than whether there is
|
|
135
|
+
* one.
|
|
136
|
+
*
|
|
137
|
+
* Hover and focus both stopped the same timer with nothing counting them, so
|
|
138
|
+
* a reader who tabbed into a message and then moved the pointer off it had
|
|
139
|
+
* the clock restarted underneath them while they were still reading it. That
|
|
140
|
+
* is the case the pause exists for, and it was the case that broke it.
|
|
141
|
+
*
|
|
142
|
+
* The two are genuinely independent: a pointer can leave while focus stays,
|
|
143
|
+
* and focus can leave while the pointer stays. Only the last one out starts
|
|
144
|
+
* it again.
|
|
145
|
+
*/
|
|
146
|
+
private holds;
|
|
147
|
+
private readonly handlePause;
|
|
148
|
+
private readonly handleResume;
|
|
149
|
+
disconnectedCallback(): void;
|
|
150
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
151
|
+
protected firstUpdated(changed: PropertyValues): void;
|
|
152
|
+
/**
|
|
153
|
+
* The mark for the message's tone, behind a seam.
|
|
154
|
+
*
|
|
155
|
+
* Slot fallback, so a consumer replaces it by slotting; and a method, so the
|
|
156
|
+
* tier above replaces it by overriding. Those answer different people: the
|
|
157
|
+
* slot is for the page and the method is for whoever is building the styled
|
|
158
|
+
* layer, and a fallback with only the first is one a tier can restyle and
|
|
159
|
+
* cannot change.
|
|
160
|
+
*
|
|
161
|
+
* The mark is passed in rather than looked up again, since `render` has
|
|
162
|
+
* already resolved the tone and a second lookup is a second place for the
|
|
163
|
+
* fallback to disagree with the tone around it.
|
|
164
|
+
*/
|
|
165
|
+
protected renderIcon(mark: ToneMark): TemplateResult;
|
|
166
|
+
/**
|
|
167
|
+
* The mark on the dismiss control, behind a seam.
|
|
168
|
+
*
|
|
169
|
+
* Slot fallback, so a consumer replaces it by slotting; and a method, so the
|
|
170
|
+
* tier above replaces it by overriding. Those answer different people: the
|
|
171
|
+
* slot is for the page and the method is for whoever is building the styled
|
|
172
|
+
* layer, and a fallback with only the first is one a tier can restyle and
|
|
173
|
+
* cannot change.
|
|
174
|
+
*/
|
|
175
|
+
protected renderDismissIcon(): TemplateResult;
|
|
176
|
+
protected render(): TemplateResult;
|
|
177
|
+
}
|
|
178
|
+
declare global {
|
|
179
|
+
interface HTMLElementTagNameMap {
|
|
180
|
+
'helix-headless-toast-item': HelixHeadlessToastItem;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
export {};
|