@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,282 @@
|
|
|
1
|
+
import { AriaForwardController, HelixFormElement } from '@fusion.dev/helix-core';
|
|
2
|
+
import { nothing, type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
declare const HelixHeadlessNumberInput_base: (new (...args: any[]) => import("@fusion.dev/helix-core").MixinControllerValueInterface) & (new (...args: any[]) => import("@fusion.dev/helix-core").MixinFieldInterface) & typeof HelixFormElement;
|
|
4
|
+
/**
|
|
5
|
+
* @summary A number a reader types or steps to.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* **A family rather than `Input`'s `type="number"`, and rather than a part of
|
|
9
|
+
* it.** `Input` already takes that type and will keep it: a bare numeric field
|
|
10
|
+
* in a form is a text field with a different keyboard, and that is all it needs
|
|
11
|
+
* to be. This is a different control. It renders two buttons, binds four keys
|
|
12
|
+
* that `Input` does not, and owns clamping and stepping, so it is an alternative
|
|
13
|
+
* and not a variant. Namespacing it under `Input` would say it is contained by
|
|
14
|
+
* one, which is what `IconButton` is top-level for.
|
|
15
|
+
*
|
|
16
|
+
* **The field is `type="text"` with `inputmode="decimal"`, and that is a
|
|
17
|
+
* measurement rather than a preference.** Asked of a real browser, `type=number`
|
|
18
|
+
* fails three ways this control cannot live with:
|
|
19
|
+
*
|
|
20
|
+
* ```
|
|
21
|
+
* typed "12e" into type=number → .value === ""
|
|
22
|
+
* focused, wheeled over it → 5 became 4
|
|
23
|
+
* selectionStart on type=number → null
|
|
24
|
+
* same keystrokes into type=text → .value === "12e"
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* The first is fatal on its own: the element cannot see what the reader typed,
|
|
28
|
+
* so a controlled value is destroyed by a keystroke and there is nothing left to
|
|
29
|
+
* correct or to report. The second changes a value because a page scrolled past.
|
|
30
|
+
* The third means the caret cannot be managed at all, which any correcting or
|
|
31
|
+
* formatting field needs. `inputmode` is what keeps the phone keypad, which is
|
|
32
|
+
* the one thing `type=number` was giving.
|
|
33
|
+
*
|
|
34
|
+
* Validity is still the platform's, through `min`, `max` and `step` mirrored
|
|
35
|
+
* onto the host's own `setValidity`. What is not mirrored is the field's
|
|
36
|
+
* `type`, because a text field has no opinion about numbers.
|
|
37
|
+
*
|
|
38
|
+
* **Stepping is separate from typing.** A reader mid-way through "1" of "12"
|
|
39
|
+
* has not asked for anything to be clamped, so the value is only pulled into
|
|
40
|
+
* range when they step, blur, or the form asks. Clamping on every keystroke is
|
|
41
|
+
* what makes a field that cannot be typed backwards into.
|
|
42
|
+
*
|
|
43
|
+
* @since 0.1.0
|
|
44
|
+
* @status experimental
|
|
45
|
+
* @category forms
|
|
46
|
+
* @aliases NumberField, Stepper, InputNumber
|
|
47
|
+
* @documentation https://helix.fusion.dev/components/number-input
|
|
48
|
+
*
|
|
49
|
+
* @slot end - After it.
|
|
50
|
+
* @slot start - Before the number, for a unit or an icon.
|
|
51
|
+
*
|
|
52
|
+
* @event {Event} change - Relayed from the field once the reader has finished.
|
|
53
|
+
* @event {HelixBeforeChangeEvent} helix-before-change - Fired as the value changes, and cancelable.
|
|
54
|
+
* @event {Event} input - Announced once the value has moved.
|
|
55
|
+
*
|
|
56
|
+
* @csspart control - The field itself.
|
|
57
|
+
* @csspart decrement - The control that steps down.
|
|
58
|
+
* @csspart decrement-mark - The glyph on the step down control.
|
|
59
|
+
* @csspart feedback - What is wrong with it.
|
|
60
|
+
* @csspart field - The box holding everything.
|
|
61
|
+
* @csspart hint - Help under the field, while nothing is wrong.
|
|
62
|
+
* @csspart increment - The control that steps up.
|
|
63
|
+
* @csspart increment-mark - The glyph on the step up control.
|
|
64
|
+
* @csspart label - The name over the field, which is also the scrub grip.
|
|
65
|
+
*/
|
|
66
|
+
export declare class HelixHeadlessNumberInput extends HelixHeadlessNumberInput_base {
|
|
67
|
+
protected readonly aria: AriaForwardController;
|
|
68
|
+
/** Typed or dragged, so every edit is announced. See `announcesInput`. */
|
|
69
|
+
protected readonly announcesInput = true;
|
|
70
|
+
/**
|
|
71
|
+
* What the browser may autofill here, as one of the platform's own tokens.
|
|
72
|
+
*
|
|
73
|
+
* Empty leaves the attribute off, which is the browser's default and is what
|
|
74
|
+
* lets autofill work at all. This used to be hardcoded `off`, so a reader
|
|
75
|
+
* could never have a birthday or a postal code filled in for them and a
|
|
76
|
+
* consumer had no way to ask for it. See 295.
|
|
77
|
+
*/
|
|
78
|
+
autocomplete: string;
|
|
79
|
+
/**
|
|
80
|
+
* Smallest value the reader may reach.
|
|
81
|
+
*
|
|
82
|
+
* Absent has no floor.
|
|
83
|
+
*/
|
|
84
|
+
min?: number;
|
|
85
|
+
/**
|
|
86
|
+
* Largest value the reader may reach.
|
|
87
|
+
*
|
|
88
|
+
* Absent has no ceiling.
|
|
89
|
+
*/
|
|
90
|
+
max?: number;
|
|
91
|
+
/**
|
|
92
|
+
* How far one step moves.
|
|
93
|
+
*/
|
|
94
|
+
step: number;
|
|
95
|
+
/**
|
|
96
|
+
* How far `PageUp` and `PageDown` move.
|
|
97
|
+
*
|
|
98
|
+
* Ten steps, which is the convention every spinner on the platform follows,
|
|
99
|
+
* and a property because ten of a step of `0.01` is a hundredth and rarely
|
|
100
|
+
* what a reader wants from a whole key.
|
|
101
|
+
*/
|
|
102
|
+
largeStep?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Shown while the field is empty.
|
|
105
|
+
*
|
|
106
|
+
* Not a label: it goes when typing starts.
|
|
107
|
+
*/
|
|
108
|
+
placeholder: string;
|
|
109
|
+
/**
|
|
110
|
+
* Whether the field refuses input while still submitting its value.
|
|
111
|
+
*/
|
|
112
|
+
readOnly: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Whether a grip is shown that changes the value when it is dragged.
|
|
115
|
+
*
|
|
116
|
+
* The label is what is dragged, so this adds no chrome at all. Still opt-in,
|
|
117
|
+
* because it changes what a press on the label does and a reader who drags
|
|
118
|
+
* across a word expecting to select it should get that everywhere it has not
|
|
119
|
+
* been asked for. Where it earns its place is a value a reader tunes rather
|
|
120
|
+
* than states: a duration, a weight, a count they are looking for rather than
|
|
121
|
+
* one they already know.
|
|
122
|
+
*/
|
|
123
|
+
scrub: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Accessible name for the control that steps down.
|
|
126
|
+
*/
|
|
127
|
+
decrementLabel: string;
|
|
128
|
+
/**
|
|
129
|
+
* Accessible name for the control that steps up.
|
|
130
|
+
*/
|
|
131
|
+
incrementLabel: string;
|
|
132
|
+
/** Focus is delegated to the field, so the host is never the focus target. */
|
|
133
|
+
static shadowRootOptions: ShadowRootInit;
|
|
134
|
+
private get control();
|
|
135
|
+
/** The value as a number, or `null` where the field holds nothing usable. */
|
|
136
|
+
private get numeric();
|
|
137
|
+
/**
|
|
138
|
+
* A value pulled into range and onto the step grid.
|
|
139
|
+
*
|
|
140
|
+
* The grid is anchored at `min` where there is one, so `min="1" step="2"`
|
|
141
|
+
* gives 1, 3, 5 rather than 0, 2, 4. Rounded to the step's own precision,
|
|
142
|
+
* because stepping 0.1 in binary floating point otherwise produces
|
|
143
|
+
* `0.30000000000000004` and puts it in the field.
|
|
144
|
+
*/
|
|
145
|
+
private clamp;
|
|
146
|
+
/**
|
|
147
|
+
* Moves by whole steps, from where the reader is.
|
|
148
|
+
*
|
|
149
|
+
* From `min` when the field is empty, so the first press of an arrow lands
|
|
150
|
+
* somewhere meaningful rather than on zero: an empty field with `min="1"`
|
|
151
|
+
* stepping to 0 would be out of range before the reader had typed anything.
|
|
152
|
+
*/
|
|
153
|
+
private nudge;
|
|
154
|
+
/** One step up, or `PageUp`'s larger one. */
|
|
155
|
+
stepUp(large?: boolean): void;
|
|
156
|
+
/**
|
|
157
|
+
* Steps the value down, by `largeStep` when `large` is set.
|
|
158
|
+
*
|
|
159
|
+
* The same path a press of the down arrow takes, so a consumer driving this
|
|
160
|
+
* from their own control gets the clamping and the announcement rather than
|
|
161
|
+
* having to repeat both.
|
|
162
|
+
*/
|
|
163
|
+
stepDown(large?: boolean): void;
|
|
164
|
+
/**
|
|
165
|
+
* The label is the surface, which is where the convention already is.
|
|
166
|
+
*
|
|
167
|
+
* A grip was drawn first, an icon of its own at the leading edge, and it was
|
|
168
|
+
* a second control in a field that already has three. Every tool that does
|
|
169
|
+
* this well drags the *name* of the value: the label is present on every
|
|
170
|
+
* field, costs no chrome, and a reader who wants to know what they are
|
|
171
|
+
* dragging is already looking at it.
|
|
172
|
+
*
|
|
173
|
+
* Overridden rather than handled on the host, because the handlers have to
|
|
174
|
+
* sit on the element that takes the capture. The markup is the mixin's, said
|
|
175
|
+
* again here, which is the duplication #76 exists to remove: when base
|
|
176
|
+
* renders break into methods a styled tier can extend, this becomes a call to
|
|
177
|
+
* `super` with three listeners added.
|
|
178
|
+
*
|
|
179
|
+
* A label with nothing in it is still nothing. `scrub` on a field whose label
|
|
180
|
+
* is empty leaves no surface, which is honest: there is nowhere to put the
|
|
181
|
+
* gesture and inventing somewhere is how the grip happened.
|
|
182
|
+
*/
|
|
183
|
+
protected renderLabel(): TemplateResult | typeof nothing;
|
|
184
|
+
/** Where the pointer went down, and what the value was there. */
|
|
185
|
+
private scrubFrom;
|
|
186
|
+
private scrubValue;
|
|
187
|
+
/**
|
|
188
|
+
* Press, and the value follows the pointer.
|
|
189
|
+
*
|
|
190
|
+
* Captured, so a drag that leaves the grip keeps going: a reader tuning a
|
|
191
|
+
* number moves further than a 20 pixel handle and the gesture ending because
|
|
192
|
+
* they overshot it would be the control refusing the very thing it offered.
|
|
193
|
+
* `preventDefault` because a press inside a field otherwise starts a text
|
|
194
|
+
* selection, which drags a blue wash across the label at the same time.
|
|
195
|
+
*/
|
|
196
|
+
private readonly handleScrubDown;
|
|
197
|
+
/**
|
|
198
|
+
* Read from where the press began, never from the last frame.
|
|
199
|
+
*
|
|
200
|
+
* Accumulating a delta per move drifts: every rounding to a step throws away
|
|
201
|
+
* the remainder, and a slow drag across a hundred events throws it away a
|
|
202
|
+
* hundred times, so the value and the pointer disagree by more the longer
|
|
203
|
+
* anyone holds. From the origin the arithmetic is the same on every frame and
|
|
204
|
+
* the value can only be where the pointer says it is.
|
|
205
|
+
*/
|
|
206
|
+
private readonly handleScrubMove;
|
|
207
|
+
/** Let go, and the capture goes with it. */
|
|
208
|
+
private readonly handleScrubEnd;
|
|
209
|
+
/**
|
|
210
|
+
* Every keystroke, cancelable, and put back where it is refused.
|
|
211
|
+
*
|
|
212
|
+
* Not clamped here. A reader typing "12" is at "1" for one keystroke, and a
|
|
213
|
+
* field with `min="10"` that corrected them at that moment could never be
|
|
214
|
+
* typed into at all. Range is settled on blur, on a step, and at submit.
|
|
215
|
+
*/
|
|
216
|
+
private readonly handleInput;
|
|
217
|
+
/**
|
|
218
|
+
* Leaving the field is where a half-typed number becomes a number.
|
|
219
|
+
*
|
|
220
|
+
* Blank is left blank, because an empty optional field is a legitimate answer
|
|
221
|
+
* and filling it with `min` would put a number in a form the reader never
|
|
222
|
+
* gave.
|
|
223
|
+
*
|
|
224
|
+
* **And text that is not a number is left alone, which this cleared at
|
|
225
|
+
* first.** Typing `2.7e` and tabbing away emptied the field: the reader looks
|
|
226
|
+
* back and their entry is gone with nothing saying why, and the likeliest
|
|
227
|
+
* cause is a fat finger on a number they had almost finished. Nothing is lost
|
|
228
|
+
* by keeping it, because `sync` has already marked it `badInput`, so the field
|
|
229
|
+
* shows as wrong and the form refuses to submit. Destroying the evidence of a
|
|
230
|
+
* mistake is not the same as preventing one.
|
|
231
|
+
*/
|
|
232
|
+
private readonly handleBlur;
|
|
233
|
+
/** Relayed, because `change` does not cross a shadow boundary on its own. */
|
|
234
|
+
private readonly handleChange;
|
|
235
|
+
/**
|
|
236
|
+
* The four keys a spinner answers, which `Input` does not bind.
|
|
237
|
+
*
|
|
238
|
+
* `Home` and `End` only where there is a bound to go to: without one they are
|
|
239
|
+
* the text field's own keys and moving the caret to the start of the number is
|
|
240
|
+
* what a reader pressing them meant.
|
|
241
|
+
*/
|
|
242
|
+
private readonly handleKeydown;
|
|
243
|
+
/**
|
|
244
|
+
* Reports the value and a verdict on it.
|
|
245
|
+
*
|
|
246
|
+
* Computed here rather than copied off the field, which is the one place this
|
|
247
|
+
* differs from `Input`: the field is text, so the browser has no opinion about
|
|
248
|
+
* whether it is a number in range. The flags are the platform's own names, so
|
|
249
|
+
* a consumer reading `validity.rangeOverflow` finds what they expect and the
|
|
250
|
+
* message is what a native spinner would have said.
|
|
251
|
+
*/
|
|
252
|
+
private sync;
|
|
253
|
+
/** Puts the caret in the field, the way a label pointing at one would. */
|
|
254
|
+
focus(options?: FocusOptions): void;
|
|
255
|
+
/** Selects the number, so typing replaces it. */
|
|
256
|
+
select(): void;
|
|
257
|
+
/**
|
|
258
|
+
* The caret, held across a value the consumer wrote rather than the reader.
|
|
259
|
+
*
|
|
260
|
+
* Set in `willUpdate` and spent in `updated`, because Lit's `.value` binding
|
|
261
|
+
* lands between the two and takes the selection with it. See `holdCaret`.
|
|
262
|
+
*/
|
|
263
|
+
private releaseCaret;
|
|
264
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
265
|
+
protected updated(changed: PropertyValues): void;
|
|
266
|
+
protected render(): TemplateResult;
|
|
267
|
+
/**
|
|
268
|
+
* The value as a number, or `NaN` while the control is empty.
|
|
269
|
+
*
|
|
270
|
+
* `NaN` and not zero, which is the trap the platform already avoids: `Number('')`
|
|
271
|
+
* is zero, so an empty control would report a number it does not hold and a
|
|
272
|
+
* form would submit it.
|
|
273
|
+
*/
|
|
274
|
+
get valueAsNumber(): number;
|
|
275
|
+
set valueAsNumber(count: number);
|
|
276
|
+
}
|
|
277
|
+
declare global {
|
|
278
|
+
interface HTMLElementTagNameMap {
|
|
279
|
+
'helix-headless-number-input': HelixHeadlessNumberInput;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
export {};
|