@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,249 @@
|
|
|
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, HelixTourAskEvent, hostAria, PopoverController, } from '@fusion.dev/helix-core';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { html } from 'lit/static-html.js';
|
|
10
|
+
import '../../button/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* @summary One stop on a tour: what it points at, and a panel to say it in.
|
|
13
|
+
*
|
|
14
|
+
* @description
|
|
15
|
+
* A stop names a target with `for` and holds whatever the consumer puts in it.
|
|
16
|
+
* It owns no content of its own, which is the whole shape of this family: the
|
|
17
|
+
* tour abstracts the three things that are genuinely hard, and the words are
|
|
18
|
+
* the consumer's.
|
|
19
|
+
*
|
|
20
|
+
* What it does own:
|
|
21
|
+
*
|
|
22
|
+
* - **Where the panel goes.** Anchored to the target through the same floating
|
|
23
|
+
* pass every other overlay here uses.
|
|
24
|
+
* - **That it is on top.** A popover, so it is in the top layer. A tour points
|
|
25
|
+
* at things inside dialogs, inside scrollers, inside anything with a stacking
|
|
26
|
+
* context, and a panel in the ordinary flow loses to all three.
|
|
27
|
+
* - **When it shows.** Which is `current`, and which the root decides.
|
|
28
|
+
*
|
|
29
|
+
* What it does not own is the heading, the paragraph, the picture and the
|
|
30
|
+
* layout. Slot a `helix-card`, or a heading and a line of prose, or anything
|
|
31
|
+
* else. This was written the other way first, with `title` and `body` parts and
|
|
32
|
+
* a fixed arrangement, which is a component deciding what a tour is allowed to
|
|
33
|
+
* say.
|
|
34
|
+
*
|
|
35
|
+
* **The buttons are slot fallback, so the common case costs nothing and the
|
|
36
|
+
* uncommon one is possible.** Write nothing and get Back, Next and Skip already
|
|
37
|
+
* wired. Slot `actions` and they are yours, driven by `next()`, `back()` and
|
|
38
|
+
* `skip()` on the root, which are public for exactly that.
|
|
39
|
+
*
|
|
40
|
+
* **`for` is an id, the same as `Tooltip`'s.** The target is elsewhere on the
|
|
41
|
+
* page, and an id is the one reference a consumer can write in markup without
|
|
42
|
+
* holding an element. Resolved against the root node, so a stop inside a shadow
|
|
43
|
+
* tree points at a target in that tree.
|
|
44
|
+
*
|
|
45
|
+
* @since 0.1.0
|
|
46
|
+
* @status experimental
|
|
47
|
+
* @category overlays
|
|
48
|
+
* @documentation https://helix.fusion.dev/components/tour
|
|
49
|
+
*
|
|
50
|
+
* @slot - What this stop says. A card, a heading and a line, anything.
|
|
51
|
+
* @slot actions - Replaces the controls, which are Back, Next and Skip.
|
|
52
|
+
*
|
|
53
|
+
* @event {HelixTourAskEvent} helix-tour-ask - A stop asking the tour to move, from its own controls.
|
|
54
|
+
*
|
|
55
|
+
* @csspart actions - The row the controls sit in.
|
|
56
|
+
* @csspart arrow - The point, which the floating pass places against the target.
|
|
57
|
+
* @csspart back - The control that goes to the previous stop.
|
|
58
|
+
* @csspart back-button - The inner control.
|
|
59
|
+
* @csspart bubble - The panel that points at the target.
|
|
60
|
+
* @csspart content - The region holding the slotted content.
|
|
61
|
+
* @csspart next - The control that goes on, and finishes on the last stop.
|
|
62
|
+
* @csspart next-button - The inner control.
|
|
63
|
+
* @csspart skip - The control that leaves the tour.
|
|
64
|
+
* @csspart skip-button - The inner control.
|
|
65
|
+
*/
|
|
66
|
+
let HelixHeadlessTourStop = class HelixHeadlessTourStop extends HelixElement {
|
|
67
|
+
constructor() {
|
|
68
|
+
super(...arguments);
|
|
69
|
+
/**
|
|
70
|
+
* The id of the element this stop is about.
|
|
71
|
+
*/
|
|
72
|
+
this.for = '';
|
|
73
|
+
/**
|
|
74
|
+
* Which side of the target the panel prefers.
|
|
75
|
+
*/
|
|
76
|
+
this.placement = 'bottom';
|
|
77
|
+
/**
|
|
78
|
+
* Whether this is the stop the reader is on.
|
|
79
|
+
*
|
|
80
|
+
* Written by the root rather than by a consumer, which is the one place this
|
|
81
|
+
* family writes onto markup it does not own. It is acceptable here for a
|
|
82
|
+
* reason that did not hold for the trail or the avatar group: a tour starts
|
|
83
|
+
* closed, so there is no server state to get wrong. The server renders a
|
|
84
|
+
* closed tour, a closed tour shows nothing, and nothing can disagree.
|
|
85
|
+
*/
|
|
86
|
+
this.current = false;
|
|
87
|
+
/**
|
|
88
|
+
* Whether this is the last stop, so the control says Done.
|
|
89
|
+
*/
|
|
90
|
+
this.last = false;
|
|
91
|
+
/**
|
|
92
|
+
* Whether this is the first stop, so there is nowhere back to.
|
|
93
|
+
*/
|
|
94
|
+
this.first = false;
|
|
95
|
+
/**
|
|
96
|
+
* Label for the control that goes back.
|
|
97
|
+
*/
|
|
98
|
+
this.backLabel = 'Back';
|
|
99
|
+
/**
|
|
100
|
+
* Label for the control that goes on.
|
|
101
|
+
*/
|
|
102
|
+
this.nextLabel = 'Next';
|
|
103
|
+
/**
|
|
104
|
+
* Label for the control that goes on from the last stop.
|
|
105
|
+
*/
|
|
106
|
+
this.doneLabel = 'Done';
|
|
107
|
+
/**
|
|
108
|
+
* Label for the control that leaves the tour.
|
|
109
|
+
*/
|
|
110
|
+
this.skipLabel = 'Skip';
|
|
111
|
+
this.floating = new PopoverController(this, {
|
|
112
|
+
anchor: () => this.target,
|
|
113
|
+
arrow: () => this.renderRoot?.querySelector('[part="arrow"]'),
|
|
114
|
+
/* A press outside does not end a tour, and this is the decision rather than
|
|
115
|
+
a stub. Everywhere else a surface closes on an outside press because
|
|
116
|
+
pressing elsewhere means the reader is finished with it. Here elsewhere
|
|
117
|
+
is the thing being pointed at: the scrim lets the pointer through on
|
|
118
|
+
purpose, so the first press a reader makes on the button the tour is
|
|
119
|
+
describing would be the press that ends the tour. Leaving is the skip
|
|
120
|
+
control and `Escape`, both of which say so. */
|
|
121
|
+
onDismiss: () => { },
|
|
122
|
+
placement: () => this.placement,
|
|
123
|
+
surface: () => this.renderRoot?.querySelector('[part="bubble"]'),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/** The element this stop is about, or null where the id resolves to nothing. */
|
|
127
|
+
get target() {
|
|
128
|
+
const scope = this.getRootNode();
|
|
129
|
+
return this.for === '' ? null : (scope.getElementById?.(this.for) ?? null);
|
|
130
|
+
}
|
|
131
|
+
willUpdate(changed) {
|
|
132
|
+
super.willUpdate(changed);
|
|
133
|
+
/* `group`, not `dialog`, and this is a decision rather than a shortcut. A
|
|
134
|
+
tour must not trap focus: the reader has to be able to look at the thing
|
|
135
|
+
being pointed at, and an overlay that will not let them has hidden its
|
|
136
|
+
own subject. */
|
|
137
|
+
hostAria(this.internals, { role: 'group' });
|
|
138
|
+
}
|
|
139
|
+
updated(changed) {
|
|
140
|
+
super.updated(changed);
|
|
141
|
+
/* Shown and hidden from here rather than by a controller reading a
|
|
142
|
+
property, because `current` is written onto this element by the root and
|
|
143
|
+
is not a property this element decides. The controller does the top layer
|
|
144
|
+
and the placement; when is ours. */
|
|
145
|
+
if (this.current) {
|
|
146
|
+
this.floating.show();
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.floating.hide();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Skip, back and next, behind a seam the styled tier can move.
|
|
154
|
+
*
|
|
155
|
+
* They are slot fallback rather than markup a consumer has to write, so a
|
|
156
|
+
* tour with nothing slotted still has the three controls a tour needs; and
|
|
157
|
+
* they are a method as well, so a tier above can render its own three without
|
|
158
|
+
* reimplementing the panel around them. Both are needed: the slot is for the
|
|
159
|
+
* consumer and the method is for the tier.
|
|
160
|
+
*/
|
|
161
|
+
renderActions() {
|
|
162
|
+
return html `<slot name="actions">
|
|
163
|
+
<${this.tag('button')}
|
|
164
|
+
part="skip"
|
|
165
|
+
exportparts="button: skip-button" appearance="ghost" @click=${() => this.ask('skip')}>
|
|
166
|
+
${this.skipLabel}
|
|
167
|
+
</${this.tag('button')}>
|
|
168
|
+
${this.first
|
|
169
|
+
? ''
|
|
170
|
+
: html `<${this.tag('button')}
|
|
171
|
+
part="back"
|
|
172
|
+
exportparts="button: back-button"
|
|
173
|
+
appearance="outlined"
|
|
174
|
+
@click=${() => this.ask('back')}
|
|
175
|
+
>
|
|
176
|
+
${this.backLabel}
|
|
177
|
+
</${this.tag('button')}>`}
|
|
178
|
+
<${this.tag('button')}
|
|
179
|
+
part="next"
|
|
180
|
+
exportparts="button: next-button"
|
|
181
|
+
appearance="solid"
|
|
182
|
+
tone="primary"
|
|
183
|
+
@click=${() => this.ask('next')}
|
|
184
|
+
>
|
|
185
|
+
${this.last ? this.doneLabel : this.nextLabel}
|
|
186
|
+
</${this.tag('button')}>
|
|
187
|
+
</slot>`;
|
|
188
|
+
}
|
|
189
|
+
render() {
|
|
190
|
+
return html `<div part="bubble" popover="manual" ?hidden=${!this.current}>
|
|
191
|
+
${
|
|
192
|
+
/* The one surface in this library that draws one, and the reason is
|
|
193
|
+
worth stating because everything else here deliberately does not.
|
|
194
|
+
An arrow says which thing a panel is describing, and a menu or a
|
|
195
|
+
select does not need one: it hangs off its trigger and adjacency says
|
|
196
|
+
it. A tour panel is anchored to something it did not open, on a page
|
|
197
|
+
full of other things, and it may be flipped to the far side of its
|
|
198
|
+
target by collision. Fusion's own taste is to leave arrows off, which
|
|
199
|
+
is a fact about the house style rather than about the system. */
|
|
200
|
+
''}
|
|
201
|
+
<div part="arrow" aria-hidden="true"></div>
|
|
202
|
+
<div part="content"><slot></slot></div>
|
|
203
|
+
<div part="actions">
|
|
204
|
+
${this.renderActions()}
|
|
205
|
+
</div>
|
|
206
|
+
</div>`;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Says what the reader pressed and lets the root decide.
|
|
210
|
+
*
|
|
211
|
+
* A stop cannot move a tour: it does not know what is after it, and a stop
|
|
212
|
+
* that reached up to its parent to find out would be a stop that only works
|
|
213
|
+
* inside one. Composed, so the root hears it through its own slot.
|
|
214
|
+
*/
|
|
215
|
+
ask(what) {
|
|
216
|
+
this.dispatchEvent(new HelixTourAskEvent({ what }));
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
__decorate([
|
|
220
|
+
property()
|
|
221
|
+
], HelixHeadlessTourStop.prototype, "for", void 0);
|
|
222
|
+
__decorate([
|
|
223
|
+
property()
|
|
224
|
+
], HelixHeadlessTourStop.prototype, "placement", void 0);
|
|
225
|
+
__decorate([
|
|
226
|
+
property({ reflect: true, type: Boolean })
|
|
227
|
+
], HelixHeadlessTourStop.prototype, "current", void 0);
|
|
228
|
+
__decorate([
|
|
229
|
+
property({ reflect: true, type: Boolean })
|
|
230
|
+
], HelixHeadlessTourStop.prototype, "last", void 0);
|
|
231
|
+
__decorate([
|
|
232
|
+
property({ reflect: true, type: Boolean })
|
|
233
|
+
], HelixHeadlessTourStop.prototype, "first", void 0);
|
|
234
|
+
__decorate([
|
|
235
|
+
property({ attribute: 'back-label' })
|
|
236
|
+
], HelixHeadlessTourStop.prototype, "backLabel", void 0);
|
|
237
|
+
__decorate([
|
|
238
|
+
property({ attribute: 'next-label' })
|
|
239
|
+
], HelixHeadlessTourStop.prototype, "nextLabel", void 0);
|
|
240
|
+
__decorate([
|
|
241
|
+
property({ attribute: 'done-label' })
|
|
242
|
+
], HelixHeadlessTourStop.prototype, "doneLabel", void 0);
|
|
243
|
+
__decorate([
|
|
244
|
+
property({ attribute: 'skip-label' })
|
|
245
|
+
], HelixHeadlessTourStop.prototype, "skipLabel", void 0);
|
|
246
|
+
HelixHeadlessTourStop = __decorate([
|
|
247
|
+
customElement('helix-headless-tour-stop')
|
|
248
|
+
], HelixHeadlessTourStop);
|
|
249
|
+
export { HelixHeadlessTourStop };
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
declare const HelixHeadlessTreeItem_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerOpenInterface) & typeof HelixElement;
|
|
4
|
+
/**
|
|
5
|
+
* @summary One node in a tree.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* **`open`, on `MixinControllerOpen`, where it was a bare `expanded` boolean.**
|
|
9
|
+
* A branch showing its children is the same state a disclosure holds, and
|
|
10
|
+
* `AccordionItem` has been on that mixin all along. Written here by hand it had
|
|
11
|
+
* neither half of what the mixin gives: `this.expanded = !this.expanded`
|
|
12
|
+
* announced nothing, so a consumer could not know a branch had opened, and
|
|
13
|
+
* could not own the state either. `aria-expanded` is still what the row
|
|
14
|
+
* renders, because that is the attribute a tree uses; the property is what
|
|
15
|
+
* changed, not the semantics.
|
|
16
|
+
*
|
|
17
|
+
* An element rather than a slot because it owns state: whether it is open,
|
|
18
|
+
* whether it is selected, and whether it is the one holding focus.
|
|
19
|
+
*
|
|
20
|
+
* A branch is any item with something slotted into `children`, detected in
|
|
21
|
+
* `firstUpdated` rather than declared by the consumer. That is a client-side
|
|
22
|
+
* enhancement by necessity, since the server cannot inspect children, so the
|
|
23
|
+
* server renders the node as a leaf and the twisty appears on hydration. It
|
|
24
|
+
* appears rather than disappearing, which is the harmless direction.
|
|
25
|
+
*
|
|
26
|
+
* **`href` makes the row itself the link.** A tree used as navigation is a list
|
|
27
|
+
* of links, and the row is what a reader presses: with the anchor slotted into
|
|
28
|
+
* the name instead, everything outside the words is dead, Enter does nothing,
|
|
29
|
+
* and there is no middle-click, no status bar and no open-in-new-tab. Given an
|
|
30
|
+
* `href` the row *is* an `<a>`, so the platform provides all of that and the
|
|
31
|
+
* keyboard needs no handler at all.
|
|
32
|
+
*
|
|
33
|
+
* It changes the shape of the ARIA, which is why it is a property and not the
|
|
34
|
+
* default. An anchor cannot contain the group, since the group holds more
|
|
35
|
+
* anchors and nesting them is invalid, so the row carries `treeitem` and the
|
|
36
|
+
* group becomes its sibling under a presentational wrapper. That is exactly the
|
|
37
|
+
* navigation flavor of the tree pattern, and the arrangement without an `href`
|
|
38
|
+
* stays as it was: `treeitem` containing `group`, which is what an `<li>`
|
|
39
|
+
* holding a `<ul>` is.
|
|
40
|
+
*
|
|
41
|
+
* A consumer whose framework owns routing slots its own link instead and leaves
|
|
42
|
+
* `href` unset. The row follows that one too, so the whole row works either
|
|
43
|
+
* way; what the anchor adds is what only a real anchor can give.
|
|
44
|
+
*
|
|
45
|
+
* The properties below are written by this component and read by whoever draws
|
|
46
|
+
* it. A consumer sets none of them: they carry a number this element computed
|
|
47
|
+
* and CSS cannot, which is what lets a stylesheet on this tier draw the thing
|
|
48
|
+
* without measuring anything itself.
|
|
49
|
+
*
|
|
50
|
+
* @since 0.1.0
|
|
51
|
+
* @status experimental
|
|
52
|
+
* @aliases TreeNode, Branch, Leaf
|
|
53
|
+
* @documentation https://helix.fusion.dev/components/tree
|
|
54
|
+
*
|
|
55
|
+
* @slot - The item's label.
|
|
56
|
+
* @slot children - Nested items, which make this a branch.
|
|
57
|
+
* @slot end - After the label, at the row's far side. A count, or a state.
|
|
58
|
+
* @slot start - Before the label, after the chevron. A mark about the item.
|
|
59
|
+
*
|
|
60
|
+
* @event {HelixBeforeCloseEvent} helix-before-close - Fired before a branch closes, and cancelable.
|
|
61
|
+
* @event {HelixBeforeOpenEvent} helix-before-open - Fired before a branch opens, and cancelable.
|
|
62
|
+
* @event {HelixSelectEvent} helix-select - Fired when the item is chosen. Cancelable: refusing it takes the decision and nothing moves.
|
|
63
|
+
* @event {Event} toggle - Says the state moved, carrying `newState` and `oldState`.
|
|
64
|
+
*
|
|
65
|
+
* @csspart group - The container for nested items.
|
|
66
|
+
* @csspart item - The node, and the focus target unless `href` moves it to the row.
|
|
67
|
+
* @csspart label - The label text.
|
|
68
|
+
* @csspart row - The clickable label row, which is an `<a>` where `href` is set.
|
|
69
|
+
* @csspart toggle - The expand and collapse control.
|
|
70
|
+
*
|
|
71
|
+
* @cssproperty --tree-level - How deep this row sits, counting from zero, for the indent.
|
|
72
|
+
*/
|
|
73
|
+
export declare class HelixHeadlessTreeItem extends HelixHeadlessTreeItem_base {
|
|
74
|
+
/**
|
|
75
|
+
* Identifies the item to the consumer, carried in `helix-select`.
|
|
76
|
+
*/
|
|
77
|
+
value: string;
|
|
78
|
+
/**
|
|
79
|
+
* Where this node goes, which makes its row a real link.
|
|
80
|
+
*
|
|
81
|
+
* Unset by default, and unreflected: a tree of choosable nodes is not a tree
|
|
82
|
+
* of links, and an empty `href` written onto every row would be a link to the
|
|
83
|
+
* current page on every item a consumer never asked to be one.
|
|
84
|
+
*/
|
|
85
|
+
href: string;
|
|
86
|
+
/**
|
|
87
|
+
* Where the link opens, for the rare row that leaves the site.
|
|
88
|
+
*/
|
|
89
|
+
target: string;
|
|
90
|
+
/**
|
|
91
|
+
* What the link declares about where it goes.
|
|
92
|
+
*
|
|
93
|
+
* Set by the consumer rather than derived from `target`: `noreferrer` is a
|
|
94
|
+
* decision about their own analytics and a component should not make it for
|
|
95
|
+
* them. `noopener` is not needed as a default either, since every browser
|
|
96
|
+
* this library supports implies it for `target="_blank"` already.
|
|
97
|
+
*/
|
|
98
|
+
rel: string;
|
|
99
|
+
/**
|
|
100
|
+
* Whether this item is the current one.
|
|
101
|
+
*
|
|
102
|
+
* Not reflected, for the reason `level` below gives in full: the tree assigns
|
|
103
|
+
* this after it upgrades, so the attribute would be a change to markup the
|
|
104
|
+
* consumer rendered and hydration would report it. It reflected, one line
|
|
105
|
+
* from the paragraph saying why it must not.
|
|
106
|
+
*
|
|
107
|
+
* The stylesheet reads it from the row inside this shadow root, which is the
|
|
108
|
+
* answer `level` gives one paragraph down: the indent it drives is written
|
|
109
|
+
* onto the row rather than onto the host, because the row is not part of the
|
|
110
|
+
* tree React hydrates. Mirroring to `data-selected` on the host instead was
|
|
111
|
+
* the same fault with a different name, and React said so.
|
|
112
|
+
*/
|
|
113
|
+
selected: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Depth from the root, set by the tree so indentation needs no CSS nesting.
|
|
116
|
+
*
|
|
117
|
+
* Not reflected. The tree assigns this after it upgrades, so an attribute
|
|
118
|
+
* here would be a change to markup the consumer rendered and hydration would
|
|
119
|
+
* report it. The indent it drives is written onto the row instead, inside the
|
|
120
|
+
* shadow root, which is not part of the tree React hydrates.
|
|
121
|
+
*/
|
|
122
|
+
level?: number;
|
|
123
|
+
/**
|
|
124
|
+
* Whether this item holds the tree's single tab stop.
|
|
125
|
+
*/
|
|
126
|
+
focusable: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Whether anything is slotted into `children`.
|
|
129
|
+
*
|
|
130
|
+
* Read after first render.
|
|
131
|
+
*/
|
|
132
|
+
private branch;
|
|
133
|
+
protected firstUpdated(changed: PropertyValues): void;
|
|
134
|
+
/**
|
|
135
|
+
* @internal Read by the tree to identify a branch across the light DOM,
|
|
136
|
+
* which is cheaper than `instanceof` and is why this is public rather than
|
|
137
|
+
* protected. A consumer asks `branch`, which is the property they set.
|
|
138
|
+
*/
|
|
139
|
+
get isBranch(): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Moves focus to this node.
|
|
142
|
+
*
|
|
143
|
+
* Which element that is moves with `href`: the thing carrying `treeitem` is
|
|
144
|
+
* the thing the tree's roving tab stop lives on, and with a link that is the
|
|
145
|
+
* row rather than the wrapper around it.
|
|
146
|
+
*/
|
|
147
|
+
focusItem(): void;
|
|
148
|
+
/** Selects this node and announces it. */
|
|
149
|
+
select(): void;
|
|
150
|
+
/**
|
|
151
|
+
* Chooses this node the way a reader does, from a press or from Enter.
|
|
152
|
+
*
|
|
153
|
+
* Selecting and following are two things and this is where they meet, so the
|
|
154
|
+
* pointer and the keyboard take one path to the same end. The tree calls this
|
|
155
|
+
* rather than `select` for the keyboard, which is what fixes Enter: a nav
|
|
156
|
+
* tree whose rows are links could be walked with the arrows and not entered,
|
|
157
|
+
* because choosing announced a value and nothing listened for it.
|
|
158
|
+
*/
|
|
159
|
+
activate(): void;
|
|
160
|
+
/**
|
|
161
|
+
* Follows a link slotted into the name, if there is one.
|
|
162
|
+
*
|
|
163
|
+
* A row is wider than the words in it: the indent, the padding, and with the
|
|
164
|
+
* chevron at the far end most of the row's width are all outside the anchor,
|
|
165
|
+
* so a reader who pressed the row anywhere but on the text got nothing. The
|
|
166
|
+
* words are the consumer's own content and this does not rewrite them, so
|
|
167
|
+
* what it does instead is press the link they put there.
|
|
168
|
+
*
|
|
169
|
+
* The consumer's anchor rather than an `href` of this element's own,
|
|
170
|
+
* deliberately: a framework's link component is what carries prefetching and
|
|
171
|
+
* client-side routing, and a plain `<a href>` rendered in here would be a
|
|
172
|
+
* full page load on a site that had neither. A synthetic click is what those
|
|
173
|
+
* components listen for, so both keep working.
|
|
174
|
+
*
|
|
175
|
+
* `querySelector` on the light DOM, not the render root: the link is the
|
|
176
|
+
* consumer's, and it is scoped to this item's own name rather than to the
|
|
177
|
+
* whole subtree, or a branch would follow the first link belonging to one of
|
|
178
|
+
* its children.
|
|
179
|
+
*/
|
|
180
|
+
private follow;
|
|
181
|
+
private readonly handleToggleClick;
|
|
182
|
+
private readonly handleRowClick;
|
|
183
|
+
/** Everything inside the row, which is the same whichever element it is. */
|
|
184
|
+
private renderRow;
|
|
185
|
+
/**
|
|
186
|
+
* Mirrors the chosen state where a stylesheet can select on it.
|
|
187
|
+
*
|
|
188
|
+
* **A custom state and not the `selected` attribute it used to reflect.** The
|
|
189
|
+
* parent writes this: a listbox choosing a row, a tab strip moving the tab, a
|
|
190
|
+
* radio group answering for its set. Reflected, that put the element's own
|
|
191
|
+
* bookkeeping onto markup a consumer wrote and a consumer's server never sent,
|
|
192
|
+
* which React reconciles and reports as a mismatch, and which a serialized
|
|
193
|
+
* element pasted back declares as a choice nobody made. `ElementInternals`
|
|
194
|
+
* holds it instead, where it is not in the DOM at all.
|
|
195
|
+
*
|
|
196
|
+
* Reading `selected` is unaffected and so is writing it: the attribute still
|
|
197
|
+
* seeds the property, which is what `<helix-tree-item selected>` in a consumer's
|
|
198
|
+
* markup means. What stops is the write back. See 302 and 304.
|
|
199
|
+
*/
|
|
200
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
201
|
+
protected render(): TemplateResult;
|
|
202
|
+
}
|
|
203
|
+
declare global {
|
|
204
|
+
interface HTMLElementTagNameMap {
|
|
205
|
+
'helix-headless-tree-item': HelixHeadlessTreeItem;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
export {};
|