@fusion.dev/helix-headless 0.0.0-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/custom-elements.json +75202 -0
- package/dist/accordion/index.d.ts +2 -0
- package/dist/accordion/index.js +2 -0
- package/dist/accordion/item/accordion-item.d.ts +141 -0
- package/dist/accordion/item/accordion-item.js +214 -0
- package/dist/accordion/root/accordion-root.d.ts +57 -0
- package/dist/accordion/root/accordion-root.js +96 -0
- package/dist/announcement/index.d.ts +1 -0
- package/dist/announcement/index.js +1 -0
- package/dist/announcement/root/announcement-root.d.ts +106 -0
- package/dist/announcement/root/announcement-root.js +144 -0
- package/dist/app-header/index.d.ts +1 -0
- package/dist/app-header/index.js +1 -0
- package/dist/app-header/root/app-header-root.d.ts +113 -0
- package/dist/app-header/root/app-header-root.js +147 -0
- package/dist/avatar/group/avatar-group.d.ts +116 -0
- package/dist/avatar/group/avatar-group.js +136 -0
- package/dist/avatar/index.d.ts +2 -0
- package/dist/avatar/index.js +2 -0
- package/dist/avatar/root/avatar-root.d.ts +71 -0
- package/dist/avatar/root/avatar-root.js +147 -0
- package/dist/badge/index.d.ts +1 -0
- package/dist/badge/index.js +1 -0
- package/dist/badge/root/badge-root.d.ts +61 -0
- package/dist/badge/root/badge-root.js +121 -0
- package/dist/bar-chart/index.d.ts +1 -0
- package/dist/bar-chart/index.js +1 -0
- package/dist/bar-chart/root/bar-chart-root.d.ts +266 -0
- package/dist/bar-chart/root/bar-chart-root.js +515 -0
- package/dist/blockquote/index.d.ts +1 -0
- package/dist/blockquote/index.js +1 -0
- package/dist/blockquote/root/blockquote-root.d.ts +51 -0
- package/dist/blockquote/root/blockquote-root.js +84 -0
- package/dist/breadcrumbs/breadcrumb/breadcrumb.d.ts +104 -0
- package/dist/breadcrumbs/breadcrumb/breadcrumb.js +137 -0
- package/dist/breadcrumbs/index.d.ts +2 -0
- package/dist/breadcrumbs/index.js +2 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +77 -0
- package/dist/breadcrumbs/root/breadcrumbs-root.js +94 -0
- package/dist/button/index.d.ts +1 -0
- package/dist/button/index.js +1 -0
- package/dist/button/root/button-root.d.ts +251 -0
- package/dist/button/root/button-root.js +401 -0
- package/dist/button-group/index.d.ts +1 -0
- package/dist/button-group/index.js +1 -0
- package/dist/button-group/root/button-group-root.d.ts +62 -0
- package/dist/button-group/root/button-group-root.js +62 -0
- package/dist/callout/index.d.ts +1 -0
- package/dist/callout/index.js +1 -0
- package/dist/callout/root/callout-root.d.ts +72 -0
- package/dist/callout/root/callout-root.js +90 -0
- package/dist/card/index.d.ts +1 -0
- package/dist/card/index.js +1 -0
- package/dist/card/root/card-root.d.ts +54 -0
- package/dist/card/root/card-root.js +71 -0
- package/dist/carousel/index.d.ts +1 -0
- package/dist/carousel/index.js +1 -0
- package/dist/carousel/root/carousel-root.d.ts +399 -0
- package/dist/carousel/root/carousel-root.js +723 -0
- package/dist/chat/composer/chat-composer.d.ts +160 -0
- package/dist/chat/composer/chat-composer.js +273 -0
- package/dist/chat/index.d.ts +3 -0
- package/dist/chat/index.js +3 -0
- package/dist/chat/message/chat-message.d.ts +170 -0
- package/dist/chat/message/chat-message.js +271 -0
- package/dist/chat/root/chat-root.d.ts +216 -0
- package/dist/chat/root/chat-root.js +389 -0
- package/dist/checkbox/index.d.ts +1 -0
- package/dist/checkbox/index.js +1 -0
- package/dist/checkbox/root/checkbox-root.d.ts +108 -0
- package/dist/checkbox/root/checkbox-root.js +207 -0
- package/dist/checkbox-group/index.d.ts +1 -0
- package/dist/checkbox-group/index.js +1 -0
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +155 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +293 -0
- package/dist/code/index.d.ts +1 -0
- package/dist/code/index.js +1 -0
- package/dist/code/root/code-root.d.ts +36 -0
- package/dist/code/root/code-root.js +43 -0
- package/dist/code-block/index.d.ts +1 -0
- package/dist/code-block/index.js +1 -0
- package/dist/code-block/root/code-block-root.d.ts +112 -0
- package/dist/code-block/root/code-block-root.js +155 -0
- package/dist/color-input/index.d.ts +1 -0
- package/dist/color-input/index.js +1 -0
- package/dist/color-input/root/color-input-root.d.ts +227 -0
- package/dist/color-input/root/color-input-root.js +456 -0
- package/dist/color-picker/color.d.ts +74 -0
- package/dist/color-picker/color.js +238 -0
- package/dist/color-picker/index.d.ts +2 -0
- package/dist/color-picker/index.js +2 -0
- package/dist/color-picker/root/color-picker-root.d.ts +303 -0
- package/dist/color-picker/root/color-picker-root.js +576 -0
- package/dist/combobox/index.d.ts +1 -0
- package/dist/combobox/index.js +1 -0
- package/dist/combobox/root/combobox-root.d.ts +396 -0
- package/dist/combobox/root/combobox-root.js +808 -0
- package/dist/command/index.d.ts +1 -0
- package/dist/command/index.js +1 -0
- package/dist/command/root/command-root.d.ts +166 -0
- package/dist/command/root/command-root.js +353 -0
- package/dist/copy-button/index.d.ts +1 -0
- package/dist/copy-button/index.js +1 -0
- package/dist/copy-button/root/copy-button-root.d.ts +154 -0
- package/dist/copy-button/root/copy-button-root.js +225 -0
- package/dist/data-table/index.d.ts +2 -0
- package/dist/data-table/index.js +2 -0
- package/dist/data-table/root/data-table-root.d.ts +392 -0
- package/dist/data-table/root/data-table-root.js +729 -0
- package/dist/data-table/root/order.d.ts +116 -0
- package/dist/data-table/root/order.js +175 -0
- package/dist/date-input/index.d.ts +1 -0
- package/dist/date-input/index.js +1 -0
- package/dist/date-input/root/date-input-root.d.ts +361 -0
- package/dist/date-input/root/date-input-root.js +791 -0
- package/dist/date-picker/index.d.ts +1 -0
- package/dist/date-picker/index.js +1 -0
- package/dist/date-picker/root/date-picker-root.d.ts +361 -0
- package/dist/date-picker/root/date-picker-root.js +837 -0
- package/dist/dialog/index.d.ts +1 -0
- package/dist/dialog/index.js +1 -0
- package/dist/dialog/root/dialog-root.d.ts +185 -0
- package/dist/dialog/root/dialog-root.js +319 -0
- package/dist/divider/index.d.ts +1 -0
- package/dist/divider/index.js +1 -0
- package/dist/divider/root/divider-root.d.ts +68 -0
- package/dist/divider/root/divider-root.js +116 -0
- package/dist/donut-chart/index.d.ts +1 -0
- package/dist/donut-chart/index.js +1 -0
- package/dist/donut-chart/root/donut-chart-root.d.ts +209 -0
- package/dist/donut-chart/root/donut-chart-root.js +395 -0
- package/dist/drawer/index.d.ts +1 -0
- package/dist/drawer/index.js +1 -0
- package/dist/drawer/root/drawer-root.d.ts +144 -0
- package/dist/drawer/root/drawer-root.js +222 -0
- package/dist/drilldown/index.d.ts +2 -0
- package/dist/drilldown/index.js +2 -0
- package/dist/drilldown/item/drilldown-item.d.ts +87 -0
- package/dist/drilldown/item/drilldown-item.js +152 -0
- package/dist/drilldown/root/drilldown-root.d.ts +115 -0
- package/dist/drilldown/root/drilldown-root.js +263 -0
- package/dist/element-events.generated.d.ts +1 -0
- package/dist/element-events.generated.js +125 -0
- package/dist/empty/index.d.ts +1 -0
- package/dist/empty/index.js +1 -0
- package/dist/empty/root/empty-root.d.ts +47 -0
- package/dist/empty/root/empty-root.js +68 -0
- package/dist/file-input/index.d.ts +1 -0
- package/dist/file-input/index.js +1 -0
- package/dist/file-input/root/file-input-root.d.ts +196 -0
- package/dist/file-input/root/file-input-root.js +488 -0
- package/dist/format-date/index.d.ts +1 -0
- package/dist/format-date/index.js +1 -0
- package/dist/format-date/root/format-date-root.d.ts +151 -0
- package/dist/format-date/root/format-date-root.js +266 -0
- package/dist/heatmap/index.d.ts +2 -0
- package/dist/heatmap/index.js +2 -0
- package/dist/heatmap/root/buckets.d.ts +62 -0
- package/dist/heatmap/root/buckets.js +85 -0
- package/dist/heatmap/root/heatmap-root.d.ts +330 -0
- package/dist/heatmap/root/heatmap-root.js +526 -0
- package/dist/icon/index.d.ts +1 -0
- package/dist/icon/index.js +1 -0
- package/dist/icon/root/icon-root.d.ts +53 -0
- package/dist/icon/root/icon-root.js +93 -0
- package/dist/icon-button/index.d.ts +1 -0
- package/dist/icon-button/index.js +1 -0
- package/dist/icon-button/root/icon-button-root.d.ts +40 -0
- package/dist/icon-button/root/icon-button-root.js +46 -0
- package/dist/image/index.d.ts +1 -0
- package/dist/image/index.js +1 -0
- package/dist/image/root/image-root.d.ts +213 -0
- package/dist/image/root/image-root.js +335 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.js +99 -0
- package/dist/input/index.d.ts +1 -0
- package/dist/input/index.js +1 -0
- package/dist/input/root/input-root.d.ts +281 -0
- package/dist/input/root/input-root.js +472 -0
- package/dist/kbd/index.d.ts +1 -0
- package/dist/kbd/index.js +1 -0
- package/dist/kbd/root/kbd-root.d.ts +98 -0
- package/dist/kbd/root/kbd-root.js +230 -0
- package/dist/legend/index.d.ts +1 -0
- package/dist/legend/index.js +1 -0
- package/dist/legend/root/legend-root.d.ts +83 -0
- package/dist/legend/root/legend-root.js +125 -0
- package/dist/line-chart/index.d.ts +1 -0
- package/dist/line-chart/index.js +1 -0
- package/dist/line-chart/root/line-chart-root.d.ts +238 -0
- package/dist/line-chart/root/line-chart-root.js +365 -0
- package/dist/list/index.d.ts +2 -0
- package/dist/list/index.js +2 -0
- package/dist/list/item/list-item.d.ts +95 -0
- package/dist/list/item/list-item.js +148 -0
- package/dist/list/root/list-root.d.ts +72 -0
- package/dist/list/root/list-root.js +61 -0
- package/dist/listbox/index.d.ts +1 -0
- package/dist/listbox/index.js +1 -0
- package/dist/listbox/root/listbox-root.d.ts +357 -0
- package/dist/listbox/root/listbox-root.js +890 -0
- package/dist/loader/index.d.ts +1 -0
- package/dist/loader/index.js +1 -0
- package/dist/loader/root/loader-root.d.ts +52 -0
- package/dist/loader/root/loader-root.js +74 -0
- package/dist/megamenu/index.d.ts +1 -0
- package/dist/megamenu/index.js +1 -0
- package/dist/megamenu/root/megamenu-root.d.ts +254 -0
- package/dist/megamenu/root/megamenu-root.js +526 -0
- package/dist/menu/index.d.ts +2 -0
- package/dist/menu/index.js +2 -0
- package/dist/menu/item/menu-item.d.ts +231 -0
- package/dist/menu/item/menu-item.js +405 -0
- package/dist/menu/root/menu-root.d.ts +158 -0
- package/dist/menu/root/menu-root.js +422 -0
- package/dist/meter/index.d.ts +1 -0
- package/dist/meter/index.js +1 -0
- package/dist/meter/root/meter-root.d.ts +234 -0
- package/dist/meter/root/meter-root.js +316 -0
- package/dist/navigation/index.d.ts +1 -0
- package/dist/navigation/index.js +1 -0
- package/dist/navigation/root/navigation-root.d.ts +55 -0
- package/dist/navigation/root/navigation-root.js +130 -0
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.js +2 -0
- package/dist/notifications/notification/notification.d.ts +181 -0
- package/dist/notifications/notification/notification.js +305 -0
- package/dist/notifications/root/notifications-root.d.ts +168 -0
- package/dist/notifications/root/notifications-root.js +291 -0
- package/dist/number-input/index.d.ts +1 -0
- package/dist/number-input/index.js +1 -0
- package/dist/number-input/root/number-input-root.d.ts +282 -0
- package/dist/number-input/root/number-input-root.js +592 -0
- package/dist/option/group/option-group.d.ts +38 -0
- package/dist/option/group/option-group.js +58 -0
- package/dist/option/index.d.ts +2 -0
- package/dist/option/index.js +2 -0
- package/dist/option/root/option-root.d.ts +194 -0
- package/dist/option/root/option-root.js +247 -0
- package/dist/outline/index.d.ts +1 -0
- package/dist/outline/index.js +1 -0
- package/dist/outline/root/outline-root.d.ts +237 -0
- package/dist/outline/root/outline-root.js +519 -0
- package/dist/pagination/index.d.ts +3 -0
- package/dist/pagination/index.js +3 -0
- package/dist/pagination/root/pagination-root.d.ts +390 -0
- package/dist/pagination/root/pagination-root.js +695 -0
- package/dist/pagination/size/pagination-size.d.ts +127 -0
- package/dist/pagination/size/pagination-size.js +232 -0
- package/dist/pagination/summary/pagination-summary.d.ts +90 -0
- package/dist/pagination/summary/pagination-summary.js +145 -0
- package/dist/pin-input/index.d.ts +1 -0
- package/dist/pin-input/index.js +1 -0
- package/dist/pin-input/root/pin-input-root.d.ts +292 -0
- package/dist/pin-input/root/pin-input-root.js +553 -0
- package/dist/popover/index.d.ts +1 -0
- package/dist/popover/index.js +1 -0
- package/dist/popover/root/popover-root.d.ts +108 -0
- package/dist/popover/root/popover-root.js +231 -0
- package/dist/progress/index.d.ts +1 -0
- package/dist/progress/index.js +1 -0
- package/dist/progress/root/progress-root.d.ts +125 -0
- package/dist/progress/root/progress-root.js +212 -0
- package/dist/qr-code/index.d.ts +1 -0
- package/dist/qr-code/index.js +1 -0
- package/dist/qr-code/root/qr-code-root.d.ts +93 -0
- package/dist/qr-code/root/qr-code-root.js +233 -0
- package/dist/quote/index.d.ts +1 -0
- package/dist/quote/index.js +1 -0
- package/dist/quote/root/quote-root.d.ts +36 -0
- package/dist/quote/root/quote-root.js +50 -0
- package/dist/radio/group/radio-group.d.ts +84 -0
- package/dist/radio/group/radio-group.js +170 -0
- package/dist/radio/index.d.ts +2 -0
- package/dist/radio/index.js +2 -0
- package/dist/radio/root/radio-root.d.ts +102 -0
- package/dist/radio/root/radio-root.js +151 -0
- package/dist/rating/index.d.ts +1 -0
- package/dist/rating/index.js +1 -0
- package/dist/rating/root/rating-root.d.ts +242 -0
- package/dist/rating/root/rating-root.js +484 -0
- package/dist/scroll-area/index.d.ts +1 -0
- package/dist/scroll-area/index.js +1 -0
- package/dist/scroll-area/root/scroll-area-root.d.ts +96 -0
- package/dist/scroll-area/root/scroll-area-root.js +215 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.js +1 -0
- package/dist/select/root/select-root.d.ts +170 -0
- package/dist/select/root/select-root.js +419 -0
- package/dist/skeleton/index.d.ts +1 -0
- package/dist/skeleton/index.js +1 -0
- package/dist/skeleton/root/skeleton-root.d.ts +31 -0
- package/dist/skeleton/root/skeleton-root.js +42 -0
- package/dist/slider/index.d.ts +1 -0
- package/dist/slider/index.js +1 -0
- package/dist/slider/root/slider-root.d.ts +235 -0
- package/dist/slider/root/slider-root.js +488 -0
- package/dist/sparkline/index.d.ts +1 -0
- package/dist/sparkline/index.js +1 -0
- package/dist/sparkline/root/sparkline-root.d.ts +147 -0
- package/dist/sparkline/root/sparkline-root.js +278 -0
- package/dist/speed-dial/index.d.ts +2 -0
- package/dist/speed-dial/index.js +2 -0
- package/dist/speed-dial/item/speed-dial-item.d.ts +71 -0
- package/dist/speed-dial/item/speed-dial-item.js +113 -0
- package/dist/speed-dial/root/speed-dial-root.d.ts +122 -0
- package/dist/speed-dial/root/speed-dial-root.js +251 -0
- package/dist/splitter/index.d.ts +1 -0
- package/dist/splitter/index.js +1 -0
- package/dist/splitter/root/splitter-root.d.ts +491 -0
- package/dist/splitter/root/splitter-root.js +1030 -0
- package/dist/stat/group/stat-group.d.ts +30 -0
- package/dist/stat/group/stat-group.js +47 -0
- package/dist/stat/index.d.ts +2 -0
- package/dist/stat/index.js +2 -0
- package/dist/stat/root/stat-root.d.ts +62 -0
- package/dist/stat/root/stat-root.js +51 -0
- package/dist/steps/index.d.ts +2 -0
- package/dist/steps/index.js +2 -0
- package/dist/steps/root/steps-root.d.ts +110 -0
- package/dist/steps/root/steps-root.js +130 -0
- package/dist/steps/step/step.d.ts +139 -0
- package/dist/steps/step/step.js +215 -0
- package/dist/switch/index.d.ts +1 -0
- package/dist/switch/index.js +1 -0
- package/dist/switch/root/switch-root.d.ts +74 -0
- package/dist/switch/root/switch-root.js +153 -0
- package/dist/table/cell/table-cell.d.ts +34 -0
- package/dist/table/cell/table-cell.js +52 -0
- package/dist/table/column/table-column.d.ts +165 -0
- package/dist/table/column/table-column.js +222 -0
- package/dist/table/index.d.ts +4 -0
- package/dist/table/index.js +4 -0
- package/dist/table/root/table-root.d.ts +98 -0
- package/dist/table/root/table-root.js +161 -0
- package/dist/table/row/table-row.d.ts +27 -0
- package/dist/table/row/table-row.js +42 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.js +3 -0
- package/dist/tabs/panel/tab-panel.d.ts +67 -0
- package/dist/tabs/panel/tab-panel.js +98 -0
- package/dist/tabs/root/tabs-root.d.ts +123 -0
- package/dist/tabs/root/tabs-root.js +217 -0
- package/dist/tabs/tab/tab.d.ts +64 -0
- package/dist/tabs/tab/tab.js +116 -0
- package/dist/tag/index.d.ts +1 -0
- package/dist/tag/index.js +1 -0
- package/dist/tag/root/tag-root.d.ts +41 -0
- package/dist/tag/root/tag-root.js +67 -0
- package/dist/textarea/index.d.ts +1 -0
- package/dist/textarea/index.js +1 -0
- package/dist/textarea/root/textarea-root.d.ts +215 -0
- package/dist/textarea/root/textarea-root.js +380 -0
- package/dist/time-input/index.d.ts +1 -0
- package/dist/time-input/index.js +1 -0
- package/dist/time-input/root/time-input-root.d.ts +322 -0
- package/dist/time-input/root/time-input-root.js +661 -0
- package/dist/time-picker/index.d.ts +1 -0
- package/dist/time-picker/index.js +1 -0
- package/dist/time-picker/root/time-picker-root.d.ts +380 -0
- package/dist/time-picker/root/time-picker-root.js +669 -0
- package/dist/timeline/index.d.ts +2 -0
- package/dist/timeline/index.js +2 -0
- package/dist/timeline/item/timeline-item.d.ts +81 -0
- package/dist/timeline/item/timeline-item.js +128 -0
- package/dist/timeline/root/timeline-root.d.ts +52 -0
- package/dist/timeline/root/timeline-root.js +72 -0
- package/dist/toast/index.d.ts +2 -0
- package/dist/toast/index.js +2 -0
- package/dist/toast/item/toast-item.d.ts +183 -0
- package/dist/toast/item/toast-item.js +345 -0
- package/dist/toast/root/toast-root.d.ts +72 -0
- package/dist/toast/root/toast-root.js +87 -0
- package/dist/toggle/group/toggle-group.d.ts +140 -0
- package/dist/toggle/group/toggle-group.js +278 -0
- package/dist/toggle/index.d.ts +2 -0
- package/dist/toggle/index.js +2 -0
- package/dist/toggle/root/toggle-root.d.ts +99 -0
- package/dist/toggle/root/toggle-root.js +146 -0
- package/dist/toolbar/index.d.ts +1 -0
- package/dist/toolbar/index.js +1 -0
- package/dist/toolbar/root/toolbar-root.d.ts +105 -0
- package/dist/toolbar/root/toolbar-root.js +260 -0
- package/dist/tooltip/index.d.ts +1 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/tooltip/root/tooltip-root.d.ts +388 -0
- package/dist/tooltip/root/tooltip-root.js +707 -0
- package/dist/tour/index.d.ts +2 -0
- package/dist/tour/index.js +2 -0
- package/dist/tour/root/tour-root.d.ts +161 -0
- package/dist/tour/root/tour-root.js +351 -0
- package/dist/tour/stop/tour-stop.d.ts +131 -0
- package/dist/tour/stop/tour-stop.js +249 -0
- package/dist/tree/index.d.ts +2 -0
- package/dist/tree/index.js +2 -0
- package/dist/tree/item/tree-item.d.ts +208 -0
- package/dist/tree/item/tree-item.js +381 -0
- package/dist/tree/root/tree-root.d.ts +88 -0
- package/dist/tree/root/tree-root.js +287 -0
- package/dist/trend/index.d.ts +1 -0
- package/dist/trend/index.js +1 -0
- package/dist/trend/root/trend-root.d.ts +67 -0
- package/dist/trend/root/trend-root.js +106 -0
- package/dist/video/index.d.ts +1 -0
- package/dist/video/index.js +1 -0
- package/dist/video/root/video-root.d.ts +711 -0
- package/dist/video/root/video-root.js +1821 -0
- package/dist/video-playlist/index.d.ts +3 -0
- package/dist/video-playlist/index.js +3 -0
- package/dist/video-playlist/item/video-playlist-item.d.ts +101 -0
- package/dist/video-playlist/item/video-playlist-item.js +162 -0
- package/dist/video-playlist/menu/video-playlist-menu.d.ts +121 -0
- package/dist/video-playlist/menu/video-playlist-menu.js +237 -0
- package/dist/video-playlist/root/video-playlist-root.d.ts +108 -0
- package/dist/video-playlist/root/video-playlist-root.js +218 -0
- package/dist/virtual-list/index.d.ts +1 -0
- package/dist/virtual-list/index.js +1 -0
- package/dist/virtual-list/root/virtual-list-root.d.ts +121 -0
- package/dist/virtual-list/root/virtual-list-root.js +221 -0
- package/jsx.d.ts +49767 -0
- package/package.json +77 -0
- package/svelte.d.ts +129 -0
- package/vue.d.ts +9242 -0
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
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 { AriaForwardController, customElement, HelixFormElement, holdCaret, MixinControllerValue, MixinField, restoreValue, } from '@fusion.dev/helix-core';
|
|
8
|
+
import { html, nothing } from 'lit';
|
|
9
|
+
import { property } from 'lit/decorators.js';
|
|
10
|
+
/**
|
|
11
|
+
* @summary Several lines of text a reader types into.
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* A real `<textarea>`, so the caret, the selection, spellcheck, the resize
|
|
15
|
+
* handle and the keyboard a phone chooses are all the platform's, and it
|
|
16
|
+
* serializes into the server's markup so the field is usable before any script
|
|
17
|
+
* loads.
|
|
18
|
+
*
|
|
19
|
+
* **Not an Input with a taller box.** The difference is the Enter key: in a
|
|
20
|
+
* single-line field it submits the form, and here it inserts a line. That is a
|
|
21
|
+
* behavioral difference the platform owns and cannot be styled into existence,
|
|
22
|
+
* which is why this is its own element rather than `Input` with a property.
|
|
23
|
+
*
|
|
24
|
+
* `rows` sets the height it starts at, and `auto-grow` lets it follow its own
|
|
25
|
+
* content. They are not alternatives: `rows` is where an empty field begins and
|
|
26
|
+
* `auto-grow` is what happens after, so a field that grows still has to start
|
|
27
|
+
* somewhere.
|
|
28
|
+
*
|
|
29
|
+
* @since 0.1.0
|
|
30
|
+
* @status stable
|
|
31
|
+
* @category forms
|
|
32
|
+
* @aliases Multiline, TextArea
|
|
33
|
+
* @documentation https://helix.fusion.dev/components/textarea
|
|
34
|
+
*
|
|
35
|
+
* @event {Event} change - Relayed from the textarea once the reader has finished.
|
|
36
|
+
* @event {HelixBeforeChangeEvent} helix-before-change - Fired as the text changes, and cancelable.
|
|
37
|
+
* @event {Event} input - Announced once the value has moved.
|
|
38
|
+
*
|
|
39
|
+
* @csspart control - The textarea itself.
|
|
40
|
+
* @csspart feedback - What is wrong with it.
|
|
41
|
+
* @csspart field - The box holding the control.
|
|
42
|
+
* @csspart hint - Help under the field, while nothing is wrong.
|
|
43
|
+
* @csspart label - The question, over the field.
|
|
44
|
+
*/
|
|
45
|
+
let HelixHeadlessTextarea = class HelixHeadlessTextarea extends MixinControllerValue(MixinField(HelixFormElement)) {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
/* A consumer's `aria-describedby` names ids in their own tree and the control
|
|
49
|
+
is in this shadow root, so the reference has to be carried down as an
|
|
50
|
+
element rather than copied as an id. See `AriaForwardController`: measured
|
|
51
|
+
in Chrome's own tree, the host held the description and the control the
|
|
52
|
+
reader is actually on was exposed without it. */
|
|
53
|
+
this.aria = new AriaForwardController(this, {
|
|
54
|
+
target: () => this.renderRoot?.querySelector('[part="control"]') ?? null,
|
|
55
|
+
});
|
|
56
|
+
/** Typed or dragged, so every edit is announced. See `announcesInput`. */
|
|
57
|
+
this.announcesInput = true;
|
|
58
|
+
/**
|
|
59
|
+
* What the browser may autofill here, as one of the platform's own tokens.
|
|
60
|
+
*
|
|
61
|
+
* Empty leaves the attribute off, which is the browser's default. Set it to
|
|
62
|
+
* a token like `email` or `bday` to ask for autofill, or to `off` to refuse.
|
|
63
|
+
*/
|
|
64
|
+
this.autocomplete = '';
|
|
65
|
+
/**
|
|
66
|
+
* Whether the box follows its own content rather than scrolling.
|
|
67
|
+
*/
|
|
68
|
+
this.autoGrow = false;
|
|
69
|
+
/**
|
|
70
|
+
* Shown while the field is empty.
|
|
71
|
+
*
|
|
72
|
+
* Not a label: it goes when typing starts.
|
|
73
|
+
*/
|
|
74
|
+
this.placeholder = '';
|
|
75
|
+
/**
|
|
76
|
+
* Whether the field refuses input while still submitting its value.
|
|
77
|
+
*/
|
|
78
|
+
this.readOnly = false;
|
|
79
|
+
/**
|
|
80
|
+
* How many lines the box is before anything is typed.
|
|
81
|
+
*/
|
|
82
|
+
this.rows = 3;
|
|
83
|
+
/**
|
|
84
|
+
* The name a second entry carries, holding which way the text runs.
|
|
85
|
+
*
|
|
86
|
+
* **Submitted through `setFormValue`, because the inner control's own
|
|
87
|
+
* `dirname` cannot reach the form.** This host is form-associated and reports
|
|
88
|
+
* its value itself, so the `<textarea>` inside the shadow root participates in
|
|
89
|
+
* no form at all and forwarding the attribute would have looked right and
|
|
90
|
+
* submitted nothing. `ElementInternals` takes a `FormData`, which is how one
|
|
91
|
+
* element sends two entries, and that is what this does.
|
|
92
|
+
*/
|
|
93
|
+
this.dirName = '';
|
|
94
|
+
/**
|
|
95
|
+
* How the browser wraps the text, and whether the breaks are submitted with
|
|
96
|
+
* it.
|
|
97
|
+
*/
|
|
98
|
+
this.wrap = 'soft';
|
|
99
|
+
/**
|
|
100
|
+
* Every keystroke, cancelable, and put back where it is refused.
|
|
101
|
+
*
|
|
102
|
+
* The control has already taken the character by the time this runs, so
|
|
103
|
+
* refusing has to restore it, or what is on screen and what the form would
|
|
104
|
+
* submit disagree.
|
|
105
|
+
*/
|
|
106
|
+
this.handleInput = (event) => {
|
|
107
|
+
// Stopped for the reason `Input.handleInput` gives: the inner control's own
|
|
108
|
+
// `input` is composed and would reach a consumer beside this element's.
|
|
109
|
+
event.stopPropagation();
|
|
110
|
+
const control = event.target;
|
|
111
|
+
const next = control.value;
|
|
112
|
+
/* Through the mixin, which announces and then applies only if the value is
|
|
113
|
+
the element's to move. The native control has already changed either way,
|
|
114
|
+
so wherever the answer does not follow it has to be put back: that is a
|
|
115
|
+
refusal, and it is equally a consumer who owns the value and has not
|
|
116
|
+
given a new one yet. Both are "what is on screen is not the answer". */
|
|
117
|
+
this.requestValue(next);
|
|
118
|
+
restoreValue(control, this.value);
|
|
119
|
+
this.grow();
|
|
120
|
+
};
|
|
121
|
+
/** Relayed, because `change` does not cross a shadow boundary on its own. */
|
|
122
|
+
this.handleChange = (event) => {
|
|
123
|
+
event.stopPropagation();
|
|
124
|
+
this.dispatchEvent(new Event('change', { bubbles: true, composed: false }));
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** Focus is delegated to the control, so the host is never the target. */
|
|
128
|
+
static { this.shadowRootOptions = {
|
|
129
|
+
...HelixFormElement.shadowRootOptions,
|
|
130
|
+
delegatesFocus: true,
|
|
131
|
+
}; }
|
|
132
|
+
get control() {
|
|
133
|
+
return this.renderRoot.querySelector('[part="control"]');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Follows the content, by measuring rather than by counting.
|
|
137
|
+
*
|
|
138
|
+
* `scrollHeight` is what the text actually needs, which no arithmetic over
|
|
139
|
+
* line count and line height gets right: a wrapped line, a pasted paragraph
|
|
140
|
+
* and a font that has not loaded yet all break the arithmetic and none of
|
|
141
|
+
* them break the measurement.
|
|
142
|
+
*
|
|
143
|
+
* Reset to `auto` first, because `scrollHeight` of an element already sized to
|
|
144
|
+
* its content is that size, so without the reset the box can only ever grow.
|
|
145
|
+
*/
|
|
146
|
+
grow() {
|
|
147
|
+
const control = this.control;
|
|
148
|
+
if (!this.autoGrow || !control) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
control.style.blockSize = 'auto';
|
|
152
|
+
/* Zero is not a height, it is the absence of a layout box.
|
|
153
|
+
*
|
|
154
|
+
* An element with `display: none` anywhere above it reports `scrollHeight`
|
|
155
|
+
* as zero, and this wrote that straight back as a fixed `block-size`. The
|
|
156
|
+
* field then had a real inline height of zero pixels and stayed there:
|
|
157
|
+
* every later call measured a control pinned to zero and measured zero
|
|
158
|
+
* again. A textarea inside a tab panel, an accordion, or anything else that
|
|
159
|
+
* renders shut and opens later came out as a hairline with the text hidden
|
|
160
|
+
* behind it. `tabs-root` refuses zero for the same reason.
|
|
161
|
+
*
|
|
162
|
+
* The reset to `auto` above has already been written by this point, which
|
|
163
|
+
* is the right state to leave it in: an ungrown auto-grow field is the
|
|
164
|
+
* browser's own height, not a stale number from the last time it had one. */
|
|
165
|
+
const next = control.scrollHeight;
|
|
166
|
+
if (next === 0) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
control.style.blockSize = `${next}px`;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* What the form receives, which is two entries where `dirName` asks for it.
|
|
173
|
+
*
|
|
174
|
+
* A plain string otherwise, because that is the common case and a `FormData`
|
|
175
|
+
* of one entry says the same thing at more cost. The direction is read off
|
|
176
|
+
* the control rather than assumed, so a field a consumer set `dir="rtl"` on,
|
|
177
|
+
* or one inside an RTL document, submits what the reader actually saw.
|
|
178
|
+
*/
|
|
179
|
+
formValue() {
|
|
180
|
+
const control = this.control;
|
|
181
|
+
if (!this.dirName || !this.name || !control) {
|
|
182
|
+
return this.value;
|
|
183
|
+
}
|
|
184
|
+
const data = new FormData();
|
|
185
|
+
data.append(this.name, this.value);
|
|
186
|
+
data.append(this.dirName, getComputedStyle(control).direction === 'rtl' ? 'rtl' : 'ltr');
|
|
187
|
+
return data;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The caret and the selection, under the platform's own names.
|
|
191
|
+
*
|
|
192
|
+
* **The whole reason this renders a real `<textarea>` is the caret**, and the
|
|
193
|
+
* caret was the one thing a consumer could not reach: the control is inside
|
|
194
|
+
* this shadow root, so `querySelector` does not find it and there was no way
|
|
195
|
+
* to ask where the selection is, let alone move it. A field that cannot be
|
|
196
|
+
* scripted at the caret cannot do an insert-at-cursor toolbar, which is the
|
|
197
|
+
* first thing anybody builds on a textarea.
|
|
198
|
+
*
|
|
199
|
+
* Written through to the control, and answering zero before there is one,
|
|
200
|
+
* which is where an empty field's caret would be anyway.
|
|
201
|
+
*/
|
|
202
|
+
get selectionDirection() {
|
|
203
|
+
return this.control?.selectionDirection ?? 'none';
|
|
204
|
+
}
|
|
205
|
+
set selectionDirection(direction) {
|
|
206
|
+
const control = this.control;
|
|
207
|
+
if (control) {
|
|
208
|
+
control.selectionDirection = direction;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/** Where the selection ends, as an offset into the value. */
|
|
212
|
+
get selectionEnd() {
|
|
213
|
+
return this.control?.selectionEnd ?? 0;
|
|
214
|
+
}
|
|
215
|
+
set selectionEnd(at) {
|
|
216
|
+
const control = this.control;
|
|
217
|
+
if (control) {
|
|
218
|
+
control.selectionEnd = at;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/** Where the selection starts, as an offset into the value. */
|
|
222
|
+
get selectionStart() {
|
|
223
|
+
return this.control?.selectionStart ?? 0;
|
|
224
|
+
}
|
|
225
|
+
set selectionStart(at) {
|
|
226
|
+
const control = this.control;
|
|
227
|
+
if (control) {
|
|
228
|
+
control.selectionStart = at;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Selects a range, which is the one operation the three accessors above
|
|
233
|
+
* cannot express between them.
|
|
234
|
+
*
|
|
235
|
+
* Setting `selectionStart` past the current `selectionEnd` drags the end
|
|
236
|
+
* along, so the two writes a consumer would make in sequence do not compose
|
|
237
|
+
* into the range they asked for. The platform has this method for that reason
|
|
238
|
+
* and so does this.
|
|
239
|
+
*/
|
|
240
|
+
setSelectionRange(start, end, direction) {
|
|
241
|
+
this.control?.setSelectionRange(start, end, direction);
|
|
242
|
+
}
|
|
243
|
+
/** How many characters the value holds. */
|
|
244
|
+
get textLength() {
|
|
245
|
+
return this.value.length;
|
|
246
|
+
}
|
|
247
|
+
/** What kind of control this is, which for a textarea is always the one word. */
|
|
248
|
+
get type() {
|
|
249
|
+
return 'textarea';
|
|
250
|
+
}
|
|
251
|
+
/** Puts the caret in the field, the way a label pointing at one would. */
|
|
252
|
+
focus(options) {
|
|
253
|
+
this.control?.focus(options);
|
|
254
|
+
}
|
|
255
|
+
/** Reports the value and the validity the host stands behind. */
|
|
256
|
+
sync() {
|
|
257
|
+
this.internals.setFormValue(this.formValue());
|
|
258
|
+
const control = this.control;
|
|
259
|
+
if (!control) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
// The platform's verdict, copied rather than recomputed, with the control as
|
|
263
|
+
// the anchor so a validity bubble points at the text and not at the host.
|
|
264
|
+
this.internals.setValidity(control.validity, control.validationMessage, control);
|
|
265
|
+
this.refreshFeedback();
|
|
266
|
+
}
|
|
267
|
+
/* Rebuilt on reconnection, because nothing else does it.
|
|
268
|
+
*
|
|
269
|
+
* `firstUpdated` runs once for the life of the element and
|
|
270
|
+
* `disconnectedCallback` runs every time it moves, so a framework reordering
|
|
271
|
+
* a list left this permanently dead: the observer gone, nothing to rebuild
|
|
272
|
+
* it, and the component still rendering as though it were watching. Guarded
|
|
273
|
+
* on `hasUpdated`, because the first connection happens before the first
|
|
274
|
+
* render and there is nothing to watch yet. `check:observers` holds it. */
|
|
275
|
+
connectedCallback() {
|
|
276
|
+
super.connectedCallback();
|
|
277
|
+
if (this.hasUpdated) {
|
|
278
|
+
this.watchControl();
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
disconnectedCallback() {
|
|
282
|
+
super.disconnectedCallback();
|
|
283
|
+
this.resize?.disconnect();
|
|
284
|
+
this.resize = undefined;
|
|
285
|
+
}
|
|
286
|
+
firstUpdated(changed) {
|
|
287
|
+
super.firstUpdated(changed);
|
|
288
|
+
this.watchControl();
|
|
289
|
+
}
|
|
290
|
+
/** Watches the control so the box grows with what is typed into it. */
|
|
291
|
+
watchControl() {
|
|
292
|
+
const control = this.control;
|
|
293
|
+
if (!control) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
this.resize?.disconnect();
|
|
297
|
+
this.resize = new ResizeObserver(() => this.grow());
|
|
298
|
+
this.resize.observe(control);
|
|
299
|
+
}
|
|
300
|
+
willUpdate(changed) {
|
|
301
|
+
super.willUpdate(changed);
|
|
302
|
+
/* Never before the first update, which is the one the server does: there is
|
|
303
|
+
no render root to query there, and `querySelector` is not merely empty on
|
|
304
|
+
Lit's element shim, it is undefined. There is also no caret to keep before
|
|
305
|
+
anything has rendered. */
|
|
306
|
+
if (!this.hasUpdated) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const control = this.control;
|
|
310
|
+
if (changed.has('value') && control && this.shadowRoot?.activeElement === control) {
|
|
311
|
+
this.releaseCaret = holdCaret(control);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
updated(changed) {
|
|
315
|
+
super.updated(changed);
|
|
316
|
+
this.releaseCaret?.();
|
|
317
|
+
this.releaseCaret = undefined;
|
|
318
|
+
this.sync();
|
|
319
|
+
this.grow();
|
|
320
|
+
}
|
|
321
|
+
render() {
|
|
322
|
+
return html `${this.renderLabel()}
|
|
323
|
+
<div part="field">
|
|
324
|
+
<textarea
|
|
325
|
+
part="control"
|
|
326
|
+
id="control"
|
|
327
|
+
.value=${this.value}
|
|
328
|
+
rows=${this.rows}
|
|
329
|
+
cols=${this.cols ?? nothing}
|
|
330
|
+
wrap=${this.wrap}
|
|
331
|
+
name=${this.name || nothing}
|
|
332
|
+
placeholder=${this.placeholder || nothing}
|
|
333
|
+
autocomplete=${this.autocomplete || nothing}
|
|
334
|
+
minlength=${this.minLength ?? nothing}
|
|
335
|
+
maxlength=${this.maxLength ?? nothing}
|
|
336
|
+
aria-describedby=${this.describedBy ?? nothing}
|
|
337
|
+
?disabled=${this.isDisabled}
|
|
338
|
+
?readonly=${this.readOnly}
|
|
339
|
+
?required=${this.required}
|
|
340
|
+
@input=${this.handleInput}
|
|
341
|
+
@change=${this.handleChange}
|
|
342
|
+
></textarea>
|
|
343
|
+
</div>
|
|
344
|
+
${this.renderHint()}${this.renderFeedback()}`;
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
__decorate([
|
|
348
|
+
property()
|
|
349
|
+
], HelixHeadlessTextarea.prototype, "autocomplete", void 0);
|
|
350
|
+
__decorate([
|
|
351
|
+
property({ attribute: 'auto-grow', reflect: true, type: Boolean })
|
|
352
|
+
], HelixHeadlessTextarea.prototype, "autoGrow", void 0);
|
|
353
|
+
__decorate([
|
|
354
|
+
property()
|
|
355
|
+
], HelixHeadlessTextarea.prototype, "placeholder", void 0);
|
|
356
|
+
__decorate([
|
|
357
|
+
property({ attribute: 'readonly', reflect: true, type: Boolean })
|
|
358
|
+
], HelixHeadlessTextarea.prototype, "readOnly", void 0);
|
|
359
|
+
__decorate([
|
|
360
|
+
property({ type: Number })
|
|
361
|
+
], HelixHeadlessTextarea.prototype, "rows", void 0);
|
|
362
|
+
__decorate([
|
|
363
|
+
property({ type: Number })
|
|
364
|
+
], HelixHeadlessTextarea.prototype, "cols", void 0);
|
|
365
|
+
__decorate([
|
|
366
|
+
property({ attribute: 'dirname' })
|
|
367
|
+
], HelixHeadlessTextarea.prototype, "dirName", void 0);
|
|
368
|
+
__decorate([
|
|
369
|
+
property()
|
|
370
|
+
], HelixHeadlessTextarea.prototype, "wrap", void 0);
|
|
371
|
+
__decorate([
|
|
372
|
+
property({ attribute: 'minlength', type: Number })
|
|
373
|
+
], HelixHeadlessTextarea.prototype, "minLength", void 0);
|
|
374
|
+
__decorate([
|
|
375
|
+
property({ attribute: 'maxlength', type: Number })
|
|
376
|
+
], HelixHeadlessTextarea.prototype, "maxLength", void 0);
|
|
377
|
+
HelixHeadlessTextarea = __decorate([
|
|
378
|
+
customElement('helix-headless-textarea')
|
|
379
|
+
], HelixHeadlessTextarea);
|
|
380
|
+
export { HelixHeadlessTextarea };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/time-input-root.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './root/time-input-root.js';
|