@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,95 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary One row of a list.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Layout and semantics, and deliberately not a target.
|
|
8
|
+
*
|
|
9
|
+
* **`href` makes the row itself the link.** *Corrected 19 Aug 2026.* This said a
|
|
10
|
+
* row could not become one, on the grounds that "a whole-row target needs the
|
|
11
|
+
* anchor to wrap the layout, and the layout is what this component is." That is
|
|
12
|
+
* true of the *consumer's* anchor, which cannot wrap slots it does not own, and
|
|
13
|
+
* it is not true of the component's: an `<a part="row">` wraps this component's
|
|
14
|
+
* own layout perfectly well. `Tree.Item` does exactly that, and the two were
|
|
15
|
+
* refusing and accepting `href` on the same argument.
|
|
16
|
+
*
|
|
17
|
+
* What the anchor buys is what the row could not fake: the whole row is a
|
|
18
|
+
* target, Enter follows it, middle click opens a tab, the status bar shows the
|
|
19
|
+
* destination, and it all works before any JavaScript runs.
|
|
20
|
+
*
|
|
21
|
+
* What it costs is client-side routing, and that is the consumer's to restore.
|
|
22
|
+
* A router renders its own anchor and cannot render one inside this shadow
|
|
23
|
+
* root, so a framework wanting a soft navigation intercepts the click on the
|
|
24
|
+
* way out: the anchor is in `composedPath()`, and taking only a plain primary
|
|
25
|
+
* press leaves every native gesture alone.
|
|
26
|
+
*
|
|
27
|
+
* **`data-list-item` is still the answer for a row that is not a destination.**
|
|
28
|
+
* A list row is often a container of controls rather than a place to go, and a
|
|
29
|
+
* row with `href` unset behaves exactly as it always did.
|
|
30
|
+
*
|
|
31
|
+
* @since 0.1.0
|
|
32
|
+
* @status stable
|
|
33
|
+
* @aliases Row, Entry
|
|
34
|
+
* @documentation https://helix.fusion.dev/components/list
|
|
35
|
+
*
|
|
36
|
+
* @slot - The label.
|
|
37
|
+
* @slot end - Trailing content.
|
|
38
|
+
* @slot start - Leading content, usually an icon or an avatar.
|
|
39
|
+
* @slot supporting - Secondary text under the label.
|
|
40
|
+
*
|
|
41
|
+
* @csspart row - The layout, held off the host so the host can carry a marker.
|
|
42
|
+
*/
|
|
43
|
+
export declare class HelixHeadlessListItem extends HelixElement {
|
|
44
|
+
/**
|
|
45
|
+
* Where the row goes, and nothing when it goes nowhere.
|
|
46
|
+
*
|
|
47
|
+
* Empty rather than optional, and unset by default: a list is not always a
|
|
48
|
+
* list of links, and an empty `href` written onto every row would be a link
|
|
49
|
+
* to the current page on every row a consumer never asked to be one.
|
|
50
|
+
*/
|
|
51
|
+
href: string;
|
|
52
|
+
/**
|
|
53
|
+
* Where the link opens, for the rare row that leaves the site.
|
|
54
|
+
*/
|
|
55
|
+
target: string;
|
|
56
|
+
/**
|
|
57
|
+
* What the link declares about where it goes. The consumer's decision rather
|
|
58
|
+
* than one derived from `target`, for the reason `Tree.Item` gives.
|
|
59
|
+
*/
|
|
60
|
+
rel: string;
|
|
61
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
62
|
+
/**
|
|
63
|
+
* The cell before the row's content, which this tier leaves empty.
|
|
64
|
+
*
|
|
65
|
+
* A railed list puts its number at the block's own start edge, in a track of
|
|
66
|
+
* its own ahead of the words, and the native `::marker` cannot reach there:
|
|
67
|
+
* `outside` hangs the marker just clear of the row's content box, which is
|
|
68
|
+
* beside the words rather than at the edge of the block. A number that has to
|
|
69
|
+
* sit in a track has to be a box in that track.
|
|
70
|
+
*
|
|
71
|
+
* **The box belongs to the styled tier, which is why this returns `nothing`.**
|
|
72
|
+
* It was rendered here, on the argument that the template lives here, and that
|
|
73
|
+
* put an unstyled empty box in front of every headless row. A row styled with
|
|
74
|
+
* `display: flex` and a `gap` draws that gap beside the empty child: measured
|
|
75
|
+
* on this tier's own example, which is exactly such a row, 1384 pixels moved
|
|
76
|
+
* and every label sat half a rem further in. It is the fault the styled row's
|
|
77
|
+
* own comment already records about a column gap beside a zero-width column,
|
|
78
|
+
* and the one the toast had before it.
|
|
79
|
+
*
|
|
80
|
+
* A tier that ships no CSS cannot make a box it renders cost nothing, so it
|
|
81
|
+
* does not render one. `marker="rail"` is a styled-tier attribute for the same
|
|
82
|
+
* reason: *that* a list is numbered is a fact about the content and *where the
|
|
83
|
+
* numbers are drawn* is not. A headless consumer wanting a rail writes the
|
|
84
|
+
* cell they were going to style anyway.
|
|
85
|
+
*
|
|
86
|
+
* `protected` rather than `private`, so the tier above can reach it.
|
|
87
|
+
*/
|
|
88
|
+
protected renderRail(): TemplateResult | typeof nothing;
|
|
89
|
+
protected render(): TemplateResult;
|
|
90
|
+
}
|
|
91
|
+
declare global {
|
|
92
|
+
interface HTMLElementTagNameMap {
|
|
93
|
+
'helix-headless-list-item': HelixHeadlessListItem;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
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, nothing } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
/**
|
|
11
|
+
* @summary One row of a list.
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* Layout and semantics, and deliberately not a target.
|
|
15
|
+
*
|
|
16
|
+
* **`href` makes the row itself the link.** *Corrected 19 Aug 2026.* This said a
|
|
17
|
+
* row could not become one, on the grounds that "a whole-row target needs the
|
|
18
|
+
* anchor to wrap the layout, and the layout is what this component is." That is
|
|
19
|
+
* true of the *consumer's* anchor, which cannot wrap slots it does not own, and
|
|
20
|
+
* it is not true of the component's: an `<a part="row">` wraps this component's
|
|
21
|
+
* own layout perfectly well. `Tree.Item` does exactly that, and the two were
|
|
22
|
+
* refusing and accepting `href` on the same argument.
|
|
23
|
+
*
|
|
24
|
+
* What the anchor buys is what the row could not fake: the whole row is a
|
|
25
|
+
* target, Enter follows it, middle click opens a tab, the status bar shows the
|
|
26
|
+
* destination, and it all works before any JavaScript runs.
|
|
27
|
+
*
|
|
28
|
+
* What it costs is client-side routing, and that is the consumer's to restore.
|
|
29
|
+
* A router renders its own anchor and cannot render one inside this shadow
|
|
30
|
+
* root, so a framework wanting a soft navigation intercepts the click on the
|
|
31
|
+
* way out: the anchor is in `composedPath()`, and taking only a plain primary
|
|
32
|
+
* press leaves every native gesture alone.
|
|
33
|
+
*
|
|
34
|
+
* **`data-list-item` is still the answer for a row that is not a destination.**
|
|
35
|
+
* A list row is often a container of controls rather than a place to go, and a
|
|
36
|
+
* row with `href` unset behaves exactly as it always did.
|
|
37
|
+
*
|
|
38
|
+
* @since 0.1.0
|
|
39
|
+
* @status stable
|
|
40
|
+
* @aliases Row, Entry
|
|
41
|
+
* @documentation https://helix.fusion.dev/components/list
|
|
42
|
+
*
|
|
43
|
+
* @slot - The label.
|
|
44
|
+
* @slot end - Trailing content.
|
|
45
|
+
* @slot start - Leading content, usually an icon or an avatar.
|
|
46
|
+
* @slot supporting - Secondary text under the label.
|
|
47
|
+
*
|
|
48
|
+
* @csspart row - The layout, held off the host so the host can carry a marker.
|
|
49
|
+
*/
|
|
50
|
+
let HelixHeadlessListItem = class HelixHeadlessListItem extends HelixElement {
|
|
51
|
+
constructor() {
|
|
52
|
+
super(...arguments);
|
|
53
|
+
/**
|
|
54
|
+
* Where the row goes, and nothing when it goes nowhere.
|
|
55
|
+
*
|
|
56
|
+
* Empty rather than optional, and unset by default: a list is not always a
|
|
57
|
+
* list of links, and an empty `href` written onto every row would be a link
|
|
58
|
+
* to the current page on every row a consumer never asked to be one.
|
|
59
|
+
*/
|
|
60
|
+
this.href = '';
|
|
61
|
+
/**
|
|
62
|
+
* Where the link opens, for the rare row that leaves the site.
|
|
63
|
+
*/
|
|
64
|
+
this.target = '';
|
|
65
|
+
/**
|
|
66
|
+
* What the link declares about where it goes. The consumer's decision rather
|
|
67
|
+
* than one derived from `target`, for the reason `Tree.Item` gives.
|
|
68
|
+
*/
|
|
69
|
+
this.rel = '';
|
|
70
|
+
}
|
|
71
|
+
willUpdate(changed) {
|
|
72
|
+
super.willUpdate(changed);
|
|
73
|
+
hostAria(this.internals, { role: 'listitem' });
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The cell before the row's content, which this tier leaves empty.
|
|
77
|
+
*
|
|
78
|
+
* A railed list puts its number at the block's own start edge, in a track of
|
|
79
|
+
* its own ahead of the words, and the native `::marker` cannot reach there:
|
|
80
|
+
* `outside` hangs the marker just clear of the row's content box, which is
|
|
81
|
+
* beside the words rather than at the edge of the block. A number that has to
|
|
82
|
+
* sit in a track has to be a box in that track.
|
|
83
|
+
*
|
|
84
|
+
* **The box belongs to the styled tier, which is why this returns `nothing`.**
|
|
85
|
+
* It was rendered here, on the argument that the template lives here, and that
|
|
86
|
+
* put an unstyled empty box in front of every headless row. A row styled with
|
|
87
|
+
* `display: flex` and a `gap` draws that gap beside the empty child: measured
|
|
88
|
+
* on this tier's own example, which is exactly such a row, 1384 pixels moved
|
|
89
|
+
* and every label sat half a rem further in. It is the fault the styled row's
|
|
90
|
+
* own comment already records about a column gap beside a zero-width column,
|
|
91
|
+
* and the one the toast had before it.
|
|
92
|
+
*
|
|
93
|
+
* A tier that ships no CSS cannot make a box it renders cost nothing, so it
|
|
94
|
+
* does not render one. `marker="rail"` is a styled-tier attribute for the same
|
|
95
|
+
* reason: *that* a list is numbered is a fact about the content and *where the
|
|
96
|
+
* numbers are drawn* is not. A headless consumer wanting a rail writes the
|
|
97
|
+
* cell they were going to style anyway.
|
|
98
|
+
*
|
|
99
|
+
* `protected` rather than `private`, so the tier above can reach it.
|
|
100
|
+
*/
|
|
101
|
+
renderRail() {
|
|
102
|
+
return nothing;
|
|
103
|
+
}
|
|
104
|
+
render() {
|
|
105
|
+
/* One wrapper, and it earns its place rather than breaking the bare-slot
|
|
106
|
+
rule. That rule is about optional *regions*, which generate an empty box
|
|
107
|
+
when nothing fills them; this is a single always-present container whose
|
|
108
|
+
job is to hold the layout somewhere other than the host.
|
|
109
|
+
*
|
|
110
|
+
* The host has to be free for `display: list-item`, which is how an ordered
|
|
111
|
+
or unordered list gets its marker: native numbering, native counters,
|
|
112
|
+
native RTL, and nothing written by script or counted on the server. But
|
|
113
|
+
`list-item` cannot combine with `grid`, so a row whose host carried the
|
|
114
|
+
grid lost it the moment the list asked for a marker. Measured before this
|
|
115
|
+
wrapper: a row with a leading icon put the icon 32px in instead of 16 and
|
|
116
|
+
its supporting text beside the label instead of under it. */
|
|
117
|
+
const content = html `${this.renderRail()}<slot name="start"></slot>
|
|
118
|
+
<slot></slot>
|
|
119
|
+
<slot name="supporting"></slot>
|
|
120
|
+
<slot name="end"></slot>`;
|
|
121
|
+
/* An anchor where there is somewhere to go, and the same box either way.
|
|
122
|
+
The host keeps `role="listitem"`, so the row inside it is the link and
|
|
123
|
+
not the item: an `<a>` carrying `listitem` would be a link that claims to
|
|
124
|
+
be a list entry, and the list would have one fewer entry than it has. */
|
|
125
|
+
return this.href === ''
|
|
126
|
+
? html `<div part="row">${content}</div>`
|
|
127
|
+
: html `<a
|
|
128
|
+
part="row"
|
|
129
|
+
href=${this.href}
|
|
130
|
+
target=${this.target || nothing}
|
|
131
|
+
rel=${this.rel || nothing}
|
|
132
|
+
>${content}</a
|
|
133
|
+
>`;
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
__decorate([
|
|
137
|
+
property()
|
|
138
|
+
], HelixHeadlessListItem.prototype, "href", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
property()
|
|
141
|
+
], HelixHeadlessListItem.prototype, "target", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
property()
|
|
144
|
+
], HelixHeadlessListItem.prototype, "rel", void 0);
|
|
145
|
+
HelixHeadlessListItem = __decorate([
|
|
146
|
+
customElement('helix-headless-list-item')
|
|
147
|
+
], HelixHeadlessListItem);
|
|
148
|
+
export { HelixHeadlessListItem };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary A set of rows, read as a set.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* `role="list"` on the host, so the rows are counted and announced as "1 of 7"
|
|
8
|
+
* rather than as seven unrelated passages. That count is the whole reason to
|
|
9
|
+
* use a list rather than a stack of divs.
|
|
10
|
+
*
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
* @status stable
|
|
13
|
+
* @category data
|
|
14
|
+
* @aliases Rows, Stack, Menu
|
|
15
|
+
* @documentation https://helix.fusion.dev/components/list
|
|
16
|
+
*
|
|
17
|
+
* @slot - The rows.
|
|
18
|
+
*/
|
|
19
|
+
export declare class HelixHeadlessList extends HelixElement {
|
|
20
|
+
/**
|
|
21
|
+
* Accessible name for the set.
|
|
22
|
+
*/
|
|
23
|
+
label: string;
|
|
24
|
+
/**
|
|
25
|
+
* What kind of list this is, which is a fact about the content.
|
|
26
|
+
*
|
|
27
|
+
* On the headless tier because it is meaning rather than decoration, the same
|
|
28
|
+
* argument `severity` makes on `Callout`. A numbered list is numbered because
|
|
29
|
+
* the order carries information; a bulleted one is bulleted because the items
|
|
30
|
+
* are a set and the order does not. That distinction is the reader's, and it
|
|
31
|
+
* has to survive with the stylesheet turned off.
|
|
32
|
+
*
|
|
33
|
+
* - `default` is a run of rows and takes no marker. It is what a list of
|
|
34
|
+
* settings or files is: neither ordered nor a set to be counted.
|
|
35
|
+
* - `ordered` numbers them, for steps.
|
|
36
|
+
* - `unordered` bullets them, for a set.
|
|
37
|
+
* - `description` pairs each row's label with its supporting text as a term
|
|
38
|
+
* and what the term means.
|
|
39
|
+
*
|
|
40
|
+
* **`description` reuses the row's existing slots rather than inventing a
|
|
41
|
+
* second kind of row.** A term and its description is exactly the label and
|
|
42
|
+
* the supporting text `List.Item` already has, so the kind changes how the
|
|
43
|
+
* pair is drawn and nothing about what a consumer writes. A separate
|
|
44
|
+
* `List.Term` element would be a second row shape for one attribute's sake.
|
|
45
|
+
*/
|
|
46
|
+
kind?: 'default' | 'description' | 'ordered' | 'unordered';
|
|
47
|
+
/**
|
|
48
|
+
* Which markers an ordered list draws, in `<ol type>`'s own five values.
|
|
49
|
+
*
|
|
50
|
+
* Reflected, because this is one of the things a stylesheet selects on and
|
|
51
|
+
* the styled tier maps each to a `list-style-type`. The platform's spellings
|
|
52
|
+
* rather than the CSS ones, so `<helix-list kind="ordered" type="i">` is what
|
|
53
|
+
* a consumer would have written on an `<ol>`.
|
|
54
|
+
*
|
|
55
|
+
* **`start` and `reversed` are both absent and neither can be done here.**
|
|
56
|
+
* This renders no `<ol>`: the rows are slotted and numbered by the CSS
|
|
57
|
+
* `list-item` counter, and that counter is not author-resettable. Measured in
|
|
58
|
+
* Chrome 148, `counter-reset: list-item 4` moves nothing on a `<div>`, on a
|
|
59
|
+
* `<ul>`, or even on a real `<ol>`, while `<ol start="5">` does and a *named*
|
|
60
|
+
* counter with explicit `::before` content does. So the markers would have to
|
|
61
|
+
* be rebuilt out of generated content to gain a start, which is a different
|
|
62
|
+
* component. `type` is only `list-style-type` and works.
|
|
63
|
+
*/
|
|
64
|
+
type?: '1' | 'a' | 'A' | 'i' | 'I';
|
|
65
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
66
|
+
protected render(): TemplateResult;
|
|
67
|
+
}
|
|
68
|
+
declare global {
|
|
69
|
+
interface HTMLElementTagNameMap {
|
|
70
|
+
'helix-headless-list': HelixHeadlessList;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
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 set of rows, read as a set.
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* `role="list"` on the host, so the rows are counted and announced as "1 of 7"
|
|
15
|
+
* rather than as seven unrelated passages. That count is the whole reason to
|
|
16
|
+
* use a list rather than a stack of divs.
|
|
17
|
+
*
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
* @status stable
|
|
20
|
+
* @category data
|
|
21
|
+
* @aliases Rows, Stack, Menu
|
|
22
|
+
* @documentation https://helix.fusion.dev/components/list
|
|
23
|
+
*
|
|
24
|
+
* @slot - The rows.
|
|
25
|
+
*/
|
|
26
|
+
let HelixHeadlessList = class HelixHeadlessList extends HelixElement {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
/**
|
|
30
|
+
* Accessible name for the set.
|
|
31
|
+
*/
|
|
32
|
+
this.label = '';
|
|
33
|
+
}
|
|
34
|
+
willUpdate(changed) {
|
|
35
|
+
super.willUpdate(changed);
|
|
36
|
+
hostAria(this.internals, { label: this.label, role: 'list' });
|
|
37
|
+
/* `role="list"` at every kind, including `description`. A description list
|
|
38
|
+
has its own native role, but this renders divs rather than `<dl>`, and
|
|
39
|
+
claiming `term`/`definition` without the owning `list` those roles
|
|
40
|
+
require is worse than a plain list: an invented role that resolves to
|
|
41
|
+
nothing tells a reader less than an honest generic one. The pairing is
|
|
42
|
+
carried by the markup being a label and its supporting text, which is
|
|
43
|
+
what it already was. */
|
|
44
|
+
}
|
|
45
|
+
render() {
|
|
46
|
+
return html `<slot></slot>`;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
__decorate([
|
|
50
|
+
property()
|
|
51
|
+
], HelixHeadlessList.prototype, "label", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
property({ reflect: true })
|
|
54
|
+
], HelixHeadlessList.prototype, "kind", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
property({ reflect: true })
|
|
57
|
+
], HelixHeadlessList.prototype, "type", void 0);
|
|
58
|
+
HelixHeadlessList = __decorate([
|
|
59
|
+
customElement('helix-headless-list')
|
|
60
|
+
], HelixHeadlessList);
|
|
61
|
+
export { HelixHeadlessList };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/listbox-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/listbox-root.js';
|