@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,230 @@
|
|
|
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, HelixShortcutEvent } from '@fusion.dev/helix-core';
|
|
8
|
+
import { html } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
/**
|
|
11
|
+
* How each name in a chord is drawn, per platform.
|
|
12
|
+
*
|
|
13
|
+
* Apple keyboards label their modifiers with glyphs and print no separator
|
|
14
|
+
* between them, so `⌘K` is the whole of it. Everywhere else the words are the
|
|
15
|
+
* label and the plus is part of the convention rather than prose. That is the
|
|
16
|
+
* one separator this component is willing to supply: the class docstring says
|
|
17
|
+
* a separator between keys is prose because it is "then" in a sequence and
|
|
18
|
+
* "plus" in a simultaneous press, and `keys` is only ever the second of those.
|
|
19
|
+
*/
|
|
20
|
+
const APPLE = {
|
|
21
|
+
alt: '⌥',
|
|
22
|
+
backspace: '⌫',
|
|
23
|
+
cmd: '⌘',
|
|
24
|
+
ctrl: '⌃',
|
|
25
|
+
del: '⌦',
|
|
26
|
+
down: '↓',
|
|
27
|
+
enter: '↵',
|
|
28
|
+
esc: 'Esc',
|
|
29
|
+
left: '←',
|
|
30
|
+
meta: '⌘',
|
|
31
|
+
mod: '⌘',
|
|
32
|
+
opt: '⌥',
|
|
33
|
+
right: '→',
|
|
34
|
+
shift: '⇧',
|
|
35
|
+
space: 'Space',
|
|
36
|
+
tab: '⇥',
|
|
37
|
+
up: '↑',
|
|
38
|
+
};
|
|
39
|
+
const ELSEWHERE = {
|
|
40
|
+
alt: 'Alt',
|
|
41
|
+
backspace: 'Backspace',
|
|
42
|
+
cmd: 'Win',
|
|
43
|
+
ctrl: 'Ctrl',
|
|
44
|
+
del: 'Del',
|
|
45
|
+
down: '↓',
|
|
46
|
+
enter: 'Enter',
|
|
47
|
+
esc: 'Esc',
|
|
48
|
+
left: '←',
|
|
49
|
+
meta: 'Win',
|
|
50
|
+
mod: 'Ctrl',
|
|
51
|
+
opt: 'Alt',
|
|
52
|
+
right: '→',
|
|
53
|
+
shift: 'Shift',
|
|
54
|
+
space: 'Space',
|
|
55
|
+
tab: 'Tab',
|
|
56
|
+
up: '↑',
|
|
57
|
+
};
|
|
58
|
+
/** Whether the keyboard in front of the reader labels its modifiers with glyphs. */
|
|
59
|
+
const onApple = () => typeof navigator !== 'undefined' && /mac|iphone|ipad|ipod/i.test(navigator.userAgent);
|
|
60
|
+
/**
|
|
61
|
+
* @summary A keyboard key or chord, set inline with text.
|
|
62
|
+
*
|
|
63
|
+
* @description
|
|
64
|
+
* Renders a real `<kbd>`, so the passage still means "press this" to anything
|
|
65
|
+
* reading the markup rather than only to a reader looking at it.
|
|
66
|
+
*
|
|
67
|
+
* **One key per element, with `keys` as the stated exception.** A *sequence* is
|
|
68
|
+
* several of these with the separator written between them as ordinary text,
|
|
69
|
+
* because that separator is prose: it is "then" in a sequence and "plus" in a
|
|
70
|
+
* simultaneous press, and a component that inserted one would have to guess
|
|
71
|
+
* which. `keys` cannot be guessing, since a chord written `mod+k` has said
|
|
72
|
+
* which it is.
|
|
73
|
+
*
|
|
74
|
+
* **`keys` exists because the glyphs were being typed by hand and were wrong.**
|
|
75
|
+
* A literal `⌘K` in a template tells a reader on Windows to press a key their
|
|
76
|
+
* keyboard does not have, and nothing catches it, a string being a string.
|
|
77
|
+
* Given `mod` this renders `⌘K` on Apple and `Ctrl+K` everywhere else.
|
|
78
|
+
*
|
|
79
|
+
* **`within` is what binds it, and it is absent by default.** Without it this
|
|
80
|
+
* draws a key and listens for nothing, which is what every existing use of this
|
|
81
|
+
* component wants. The two values are the two honest lifetimes:
|
|
82
|
+
*
|
|
83
|
+
* - `control` listens within the element's own parent, which is the case this
|
|
84
|
+
* is mostly for: a hint sitting inside the control it belongs to, where the
|
|
85
|
+
* shortcut should work while that control has focus and stop existing when
|
|
86
|
+
* the control does.
|
|
87
|
+
* - `document` listens on the document, for a chord that works from anywhere.
|
|
88
|
+
*
|
|
89
|
+
* *Corrected 25 Aug 2026: this said `scope`, `self` and `global` until then,
|
|
90
|
+
* naming a property that has never existed under that name. The rename is
|
|
91
|
+
* explained on the property itself, twenty lines below, and this paragraph
|
|
92
|
+
* above it went on teaching the old one. A reader who trusted the class doc
|
|
93
|
+
* wrote an attribute that binds nothing, which is also what an unset `within`
|
|
94
|
+
* does, so nothing about the mistake looked like one.*
|
|
95
|
+
*
|
|
96
|
+
* **A hidden `kbd` is a dead shortcut, and that is the point rather than a
|
|
97
|
+
* trap.** Binding here ties the key to its own advertisement, so a hint that is
|
|
98
|
+
* not rendered is a shortcut that is not offered. A chord that must outlive its
|
|
99
|
+
* label is a chord whose owner is not a label: give it to whatever owns the
|
|
100
|
+
* action and let this element only describe it.
|
|
101
|
+
*
|
|
102
|
+
* Nothing binds until this upgrades, so a shortcut is not available in the
|
|
103
|
+
* moments before hydration.
|
|
104
|
+
*
|
|
105
|
+
* @since 0.1.0
|
|
106
|
+
* @status stable
|
|
107
|
+
* @category typography
|
|
108
|
+
* @aliases Key, Shortcut, Hotkey
|
|
109
|
+
* @documentation https://helix.fusion.dev/components/kbd
|
|
110
|
+
*
|
|
111
|
+
* @slot - The key's label, where `keys` is not set.
|
|
112
|
+
*
|
|
113
|
+
* @event {HelixShortcutEvent} helix-shortcut - Fired when the chord is pressed, and cancelable.
|
|
114
|
+
*
|
|
115
|
+
* @csspart kbd - The key.
|
|
116
|
+
*/
|
|
117
|
+
let HelixHeadlessKbd = class HelixHeadlessKbd extends HelixElement {
|
|
118
|
+
constructor() {
|
|
119
|
+
super(...arguments);
|
|
120
|
+
/**
|
|
121
|
+
* The chord, written plainly: `mod+k`, `shift+?`, `/`.
|
|
122
|
+
*
|
|
123
|
+
* `mod` is the platform's own command modifier, which is the reason to write
|
|
124
|
+
* a chord here rather than a glyph: it is the one token whose right answer
|
|
125
|
+
* differs per reader.
|
|
126
|
+
*/
|
|
127
|
+
this.keys = '';
|
|
128
|
+
this.handleKeydown = (event) => {
|
|
129
|
+
const press = event;
|
|
130
|
+
/* Mid-composition is not a chord. An IME sends keystrokes that belong to
|
|
131
|
+
the text being composed, and taking one is how a shortcut eats a
|
|
132
|
+
character the reader was trying to type. */
|
|
133
|
+
if (press.isComposing) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (!this.matches_(press)) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
/* Announced before it is consumed, so a consumer can refuse it: the key
|
|
140
|
+
goes on to whatever would have had it wherever this is prevented. */
|
|
141
|
+
const shortcut = new HelixShortcutEvent({ keys: this.keys });
|
|
142
|
+
this.dispatchEvent(shortcut);
|
|
143
|
+
if (!shortcut.defaultPrevented) {
|
|
144
|
+
press.preventDefault();
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
connectedCallback() {
|
|
149
|
+
super.connectedCallback();
|
|
150
|
+
this.listen();
|
|
151
|
+
}
|
|
152
|
+
disconnectedCallback() {
|
|
153
|
+
super.disconnectedCallback();
|
|
154
|
+
this.deafen();
|
|
155
|
+
}
|
|
156
|
+
updated(changed) {
|
|
157
|
+
super.updated(changed);
|
|
158
|
+
/* The target changes with `within` and the chord changes with `keys`, and
|
|
159
|
+
the second matters as much as the first: a listener holding the old chord
|
|
160
|
+
answers to a key the element no longer advertises. */
|
|
161
|
+
if (changed.has('within') || changed.has('keys')) {
|
|
162
|
+
this.deafen();
|
|
163
|
+
this.listen();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** The chord as this reader's keyboard labels it. */
|
|
167
|
+
get label() {
|
|
168
|
+
const names = onApple() ? APPLE : ELSEWHERE;
|
|
169
|
+
const parts = this.keys
|
|
170
|
+
.split('+')
|
|
171
|
+
.map((part) => part.trim())
|
|
172
|
+
.filter((part) => part !== '')
|
|
173
|
+
.map((part) => names[part.toLowerCase()] ?? (part.length === 1 ? part.toUpperCase() : part));
|
|
174
|
+
return parts.join(onApple() ? '' : '+');
|
|
175
|
+
}
|
|
176
|
+
listen() {
|
|
177
|
+
if (!this.within || this.keys === '') {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const target = this.within === 'document' ? this.ownerDocument : this.parentElement;
|
|
181
|
+
if (!target) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
this.listening = target;
|
|
185
|
+
target.addEventListener('keydown', this.handleKeydown);
|
|
186
|
+
}
|
|
187
|
+
deafen() {
|
|
188
|
+
this.listening?.removeEventListener('keydown', this.handleKeydown);
|
|
189
|
+
this.listening = undefined;
|
|
190
|
+
}
|
|
191
|
+
/** Whether a press is this chord, modifiers and all. */
|
|
192
|
+
matches_(press) {
|
|
193
|
+
const parts = this.keys
|
|
194
|
+
.split('+')
|
|
195
|
+
.map((part) => part.trim().toLowerCase())
|
|
196
|
+
.filter((part) => part !== '');
|
|
197
|
+
if (parts.length === 0) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
const wanted = parts[parts.length - 1] ?? '';
|
|
201
|
+
const modifiers = new Set(parts.slice(0, -1));
|
|
202
|
+
const mod = onApple() ? press.metaKey : press.ctrlKey;
|
|
203
|
+
/* Every modifier is checked in both directions, so `mod+k` is not answered
|
|
204
|
+
by `shift+mod+k`: a chord a reader did not press is a chord that should
|
|
205
|
+
go to whatever did want it. */
|
|
206
|
+
return (press.key.toLowerCase() === wanted &&
|
|
207
|
+
(modifiers.has('mod') ? mod : true) &&
|
|
208
|
+
(modifiers.has('shift') ? press.shiftKey : !press.shiftKey) &&
|
|
209
|
+
(modifiers.has('alt') || modifiers.has('opt') ? press.altKey : !press.altKey) &&
|
|
210
|
+
(modifiers.has('ctrl') ? press.ctrlKey : modifiers.has('mod') ? true : !press.ctrlKey) &&
|
|
211
|
+
(modifiers.has('cmd') || modifiers.has('meta')
|
|
212
|
+
? press.metaKey
|
|
213
|
+
: modifiers.has('mod')
|
|
214
|
+
? true
|
|
215
|
+
: !press.metaKey));
|
|
216
|
+
}
|
|
217
|
+
render() {
|
|
218
|
+
return html `<kbd part="kbd">${this.keys === '' ? html `<slot></slot>` : this.label}</kbd>`;
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
__decorate([
|
|
222
|
+
property()
|
|
223
|
+
], HelixHeadlessKbd.prototype, "keys", void 0);
|
|
224
|
+
__decorate([
|
|
225
|
+
property({ reflect: true })
|
|
226
|
+
], HelixHeadlessKbd.prototype, "within", void 0);
|
|
227
|
+
HelixHeadlessKbd = __decorate([
|
|
228
|
+
customElement('helix-headless-kbd')
|
|
229
|
+
], HelixHeadlessKbd);
|
|
230
|
+
export { HelixHeadlessKbd };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/legend-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/legend-root.js';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { HelixElement, SourceController } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
/**
|
|
4
|
+
* @summary The names a chart draws, each beside the color it is drawn in.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* A legend is a list, so it is a list: not part of a chart, and shared by
|
|
8
|
+
* whichever of them needs one. It takes its entries from the same table the
|
|
9
|
+
* chart reads, through `for`, so the two cannot disagree about how many series
|
|
10
|
+
* there are or what they are called.
|
|
11
|
+
*
|
|
12
|
+
* `entries` picks which way to read that table, and the two ways are the two
|
|
13
|
+
* shapes a chart comes in. `series` is one entry per data column, named by the
|
|
14
|
+
* header row, which is a line or a bar chart. `categories` is one entry per
|
|
15
|
+
* body row, named by its row header, which is a donut: its slices are the rows,
|
|
16
|
+
* and it has no axis to write their names along.
|
|
17
|
+
*
|
|
18
|
+
* **The table is resolved on the client and there is no server pass.** `for` is
|
|
19
|
+
* an id and resolving it wants a document, which the server render does not
|
|
20
|
+
* have, so a legend ships empty and fills in on hydration. The table itself is
|
|
21
|
+
* ordinary markup and is served whole, so nothing is missing from the page
|
|
22
|
+
* before then, only from this list.
|
|
23
|
+
*
|
|
24
|
+
* The table is watched, because a legend that goes stale when its data changes
|
|
25
|
+
* is a legend that has to be told, and nothing else in the page would know to
|
|
26
|
+
* tell it.
|
|
27
|
+
*
|
|
28
|
+
* **Not hidden from a screen reader, though the mapping it draws is a color
|
|
29
|
+
* one.** The argument for hiding it is real: the colours mean nothing to a
|
|
30
|
+
* reader who cannot see them, and the names are already in the table. It stays
|
|
31
|
+
* because the cost of being wrong runs one way. A duplicated list of three
|
|
32
|
+
* words is noise; a consumer who took the table out of the accessibility tree
|
|
33
|
+
* and then found the legend hidden too has a chart nobody can read, and neither
|
|
34
|
+
* decision announces itself.
|
|
35
|
+
*
|
|
36
|
+
* @since 0.1.0
|
|
37
|
+
* @status experimental
|
|
38
|
+
* @category charts
|
|
39
|
+
* @aliases Key, Series Key
|
|
40
|
+
* @documentation https://helix.fusion.dev/components/legend
|
|
41
|
+
*
|
|
42
|
+
* @csspart entry - One name and its swatch.
|
|
43
|
+
* @csspart list - The list itself.
|
|
44
|
+
* @csspart name - One series name.
|
|
45
|
+
* @csspart swatch - The color a series is drawn in.
|
|
46
|
+
*/
|
|
47
|
+
export declare class HelixHeadlessLegend extends HelixElement {
|
|
48
|
+
/**
|
|
49
|
+
* Which way to read the table.
|
|
50
|
+
*
|
|
51
|
+
* Absent is `series`, one entry per data column. `categories` reads one entry
|
|
52
|
+
* per body row instead, for a donut, whose slices are the rows.
|
|
53
|
+
*/
|
|
54
|
+
entries?: 'categories' | 'series';
|
|
55
|
+
/**
|
|
56
|
+
* The id of the table to take the names from.
|
|
57
|
+
*
|
|
58
|
+
* Resolved through `getRootNode()`, so a legend inside another component's
|
|
59
|
+
* shadow root names a table in that root rather than in the document.
|
|
60
|
+
*
|
|
61
|
+
* **In React this arrives as a property and not as an attribute**, the way
|
|
62
|
+
* `Tooltip.for` does, so it does not reflect and nothing styles on it.
|
|
63
|
+
*/
|
|
64
|
+
for: string;
|
|
65
|
+
protected readonly source: SourceController;
|
|
66
|
+
protected willUpdate(changed: PropertyValues<this>): void;
|
|
67
|
+
/**
|
|
68
|
+
* The names, in the order the chart will draw them.
|
|
69
|
+
*
|
|
70
|
+
* `protected` rather than private because the styled tier has to match a
|
|
71
|
+
* per-series treatment against them, the way `BarChart` matches `outlined` and
|
|
72
|
+
* `subtle` against the headings its table gives. A legend keys a chart, so the
|
|
73
|
+
* two answer the same question about the same series, and the tier that paints
|
|
74
|
+
* cannot do that without knowing which entry is which.
|
|
75
|
+
*/
|
|
76
|
+
protected names(): string[];
|
|
77
|
+
protected render(): TemplateResult;
|
|
78
|
+
}
|
|
79
|
+
declare global {
|
|
80
|
+
interface HTMLElementTagNameMap {
|
|
81
|
+
'helix-headless-legend': HelixHeadlessLegend;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
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, SourceController } from '@fusion.dev/helix-core';
|
|
8
|
+
import { html } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
/** How many colours the series palette has, and so where it starts over. */
|
|
11
|
+
const PALETTE = 24;
|
|
12
|
+
/**
|
|
13
|
+
* @summary The names a chart draws, each beside the color it is drawn in.
|
|
14
|
+
*
|
|
15
|
+
* @description
|
|
16
|
+
* A legend is a list, so it is a list: not part of a chart, and shared by
|
|
17
|
+
* whichever of them needs one. It takes its entries from the same table the
|
|
18
|
+
* chart reads, through `for`, so the two cannot disagree about how many series
|
|
19
|
+
* there are or what they are called.
|
|
20
|
+
*
|
|
21
|
+
* `entries` picks which way to read that table, and the two ways are the two
|
|
22
|
+
* shapes a chart comes in. `series` is one entry per data column, named by the
|
|
23
|
+
* header row, which is a line or a bar chart. `categories` is one entry per
|
|
24
|
+
* body row, named by its row header, which is a donut: its slices are the rows,
|
|
25
|
+
* and it has no axis to write their names along.
|
|
26
|
+
*
|
|
27
|
+
* **The table is resolved on the client and there is no server pass.** `for` is
|
|
28
|
+
* an id and resolving it wants a document, which the server render does not
|
|
29
|
+
* have, so a legend ships empty and fills in on hydration. The table itself is
|
|
30
|
+
* ordinary markup and is served whole, so nothing is missing from the page
|
|
31
|
+
* before then, only from this list.
|
|
32
|
+
*
|
|
33
|
+
* The table is watched, because a legend that goes stale when its data changes
|
|
34
|
+
* is a legend that has to be told, and nothing else in the page would know to
|
|
35
|
+
* tell it.
|
|
36
|
+
*
|
|
37
|
+
* **Not hidden from a screen reader, though the mapping it draws is a color
|
|
38
|
+
* one.** The argument for hiding it is real: the colours mean nothing to a
|
|
39
|
+
* reader who cannot see them, and the names are already in the table. It stays
|
|
40
|
+
* because the cost of being wrong runs one way. A duplicated list of three
|
|
41
|
+
* words is noise; a consumer who took the table out of the accessibility tree
|
|
42
|
+
* and then found the legend hidden too has a chart nobody can read, and neither
|
|
43
|
+
* decision announces itself.
|
|
44
|
+
*
|
|
45
|
+
* @since 0.1.0
|
|
46
|
+
* @status experimental
|
|
47
|
+
* @category charts
|
|
48
|
+
* @aliases Key, Series Key
|
|
49
|
+
* @documentation https://helix.fusion.dev/components/legend
|
|
50
|
+
*
|
|
51
|
+
* @csspart entry - One name and its swatch.
|
|
52
|
+
* @csspart list - The list itself.
|
|
53
|
+
* @csspart name - One series name.
|
|
54
|
+
* @csspart swatch - The color a series is drawn in.
|
|
55
|
+
*/
|
|
56
|
+
let HelixHeadlessLegend = class HelixHeadlessLegend extends HelixElement {
|
|
57
|
+
constructor() {
|
|
58
|
+
super(...arguments);
|
|
59
|
+
/**
|
|
60
|
+
* The id of the table to take the names from.
|
|
61
|
+
*
|
|
62
|
+
* Resolved through `getRootNode()`, so a legend inside another component's
|
|
63
|
+
* shadow root names a table in that root rather than in the document.
|
|
64
|
+
*
|
|
65
|
+
* **In React this arrives as a property and not as an attribute**, the way
|
|
66
|
+
* `Tooltip.for` does, so it does not reflect and nothing styles on it.
|
|
67
|
+
*/
|
|
68
|
+
this.for = '';
|
|
69
|
+
/* One controller rather than the resolve-and-watch each chart had written
|
|
70
|
+
out for itself. Three copies had already drifted into two names for the
|
|
71
|
+
same lookup. */
|
|
72
|
+
this.source = new SourceController(this);
|
|
73
|
+
}
|
|
74
|
+
willUpdate(changed) {
|
|
75
|
+
if (changed.has('for')) {
|
|
76
|
+
this.source.watch();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The names, in the order the chart will draw them.
|
|
81
|
+
*
|
|
82
|
+
* `protected` rather than private because the styled tier has to match a
|
|
83
|
+
* per-series treatment against them, the way `BarChart` matches `outlined` and
|
|
84
|
+
* `subtle` against the headings its table gives. A legend keys a chart, so the
|
|
85
|
+
* two answer the same question about the same series, and the tier that paints
|
|
86
|
+
* cannot do that without knowing which entry is which.
|
|
87
|
+
*/
|
|
88
|
+
names() {
|
|
89
|
+
const series = this.source.series;
|
|
90
|
+
return this.entries === 'categories'
|
|
91
|
+
? (series[0]?.points.map((point) => point.label) ?? [])
|
|
92
|
+
: series.map((one) => one.name);
|
|
93
|
+
}
|
|
94
|
+
render() {
|
|
95
|
+
/* The index rather than the color, because a color is a token and the
|
|
96
|
+
headless tier holds none. The styled tier maps one to the other, and it
|
|
97
|
+
starts over after twenty-four.
|
|
98
|
+
*
|
|
99
|
+
* The palette is eight hues in three tones, so a legend of nine repeats the
|
|
100
|
+
* first hue in a brighter tone rather than repeating a color outright. It
|
|
101
|
+
* is still a hue collision and a chart with nine series has a worse problem
|
|
102
|
+
* than the palette does; twenty-four is where it stops being able to help. */
|
|
103
|
+
return html `<ul part="list" role="list">
|
|
104
|
+
${this.names().map((name, index) => html `<li
|
|
105
|
+
data-series=${(index % PALETTE) + 1}
|
|
106
|
+
part="entry"
|
|
107
|
+
style="--chart-series: var(--chart-series-${(index % PALETTE) + 1})"
|
|
108
|
+
role="listitem"
|
|
109
|
+
>
|
|
110
|
+
<span aria-hidden="true" part="swatch"></span>
|
|
111
|
+
<span part="name">${name}</span>
|
|
112
|
+
</li>`)}
|
|
113
|
+
</ul>`;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
__decorate([
|
|
117
|
+
property({ reflect: true })
|
|
118
|
+
], HelixHeadlessLegend.prototype, "entries", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
property()
|
|
121
|
+
], HelixHeadlessLegend.prototype, "for", void 0);
|
|
122
|
+
HelixHeadlessLegend = __decorate([
|
|
123
|
+
customElement('helix-headless-legend')
|
|
124
|
+
], HelixHeadlessLegend);
|
|
125
|
+
export { HelixHeadlessLegend };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/line-chart-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/line-chart-root.js';
|