@helixui/library 0.3.3 → 1.0.0
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 +13178 -12195
- package/dist/components/hx-accordion/hx-accordion-item.d.ts +3 -1
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion.d.ts +9 -1
- package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
- package/dist/components/hx-accordion/index.js +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.d.ts +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
- package/dist/components/hx-action-bar/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.d.ts +3 -6
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
- package/dist/components/hx-alert/index.js +1 -1
- package/dist/components/hx-avatar/hx-avatar.d.ts +1 -1
- package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -1
- package/dist/components/hx-avatar/index.js +1 -1
- package/dist/components/hx-badge/hx-badge.d.ts +1 -1
- package/dist/components/hx-banner/hx-banner.d.ts +99 -0
- package/dist/components/hx-banner/hx-banner.d.ts.map +1 -0
- package/dist/components/hx-banner/hx-banner.styles.d.ts +2 -0
- package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -0
- package/dist/components/hx-banner/index.d.ts +3 -0
- package/dist/components/hx-banner/index.d.ts.map +1 -0
- package/dist/components/hx-banner/index.js +5 -0
- package/dist/components/hx-banner/index.js.map +1 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +6 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +17 -0
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
- package/dist/components/hx-button/index.js +1 -1
- package/dist/components/hx-button-group/hx-button-group.d.ts +9 -1
- package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
- package/dist/components/hx-button-group/index.js +1 -1
- package/dist/components/hx-card/hx-card.d.ts +17 -1
- package/dist/components/hx-card/hx-card.d.ts.map +1 -1
- package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
- package/dist/components/hx-card/index.js +1 -1
- package/dist/components/hx-carousel/hx-carousel-item.d.ts +1 -1
- package/dist/components/hx-carousel/hx-carousel.d.ts +123 -1
- package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
- package/dist/components/hx-carousel/index.js +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.d.ts +4 -2
- package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +6 -2
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/index.js +1 -1
- package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +21 -6
- package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
- package/dist/components/hx-code-snippet/index.js +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +14 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts +25 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
- package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-container/hx-container.d.ts +4 -2
- package/dist/components/hx-container/hx-container.d.ts.map +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts +7 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
- package/dist/components/hx-copy-button/index.js +1 -1
- package/dist/components/hx-counter/hx-counter.d.ts +79 -0
- package/dist/components/hx-counter/hx-counter.d.ts.map +1 -0
- package/dist/components/hx-counter/hx-counter.styles.d.ts +2 -0
- package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -0
- package/dist/components/hx-counter/index.d.ts +3 -0
- package/dist/components/hx-counter/index.d.ts.map +1 -0
- package/dist/components/hx-counter/index.js +5 -0
- package/dist/components/hx-counter/index.js.map +1 -0
- package/dist/components/hx-data-table/hx-data-table.d.ts +7 -1
- package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
- package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
- package/dist/components/hx-data-table/index.js +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.d.ts +125 -1
- package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts +1 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
- package/dist/components/hx-dialog/index.js +1 -1
- package/dist/components/hx-divider/hx-divider.d.ts +4 -1
- package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +55 -2
- package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
- package/dist/components/hx-drawer/index.js +1 -1
- package/dist/components/hx-dropdown/hx-dropdown.d.ts +6 -1
- package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
- package/dist/components/hx-field/hx-field.d.ts +32 -2
- package/dist/components/hx-field/hx-field.d.ts.map +1 -1
- package/dist/components/hx-field/index.js +1 -1
- package/dist/components/hx-field-label/hx-field-label.d.ts +1 -1
- package/dist/components/hx-file-upload/hx-file-upload.d.ts +13 -1
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.js +1 -1
- package/dist/components/hx-form/hx-form.d.ts +25 -1
- package/dist/components/hx-form/hx-form.d.ts.map +1 -1
- package/dist/components/hx-form/index.js +1 -1
- package/dist/components/hx-format-date/hx-format-date.d.ts +1 -1
- package/dist/components/hx-grid/hx-grid.d.ts +2 -2
- package/dist/components/hx-help-text/hx-help-text.d.ts +4 -1
- package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
- package/dist/components/hx-icon/hx-icon.d.ts +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.d.ts +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-image/hx-image.d.ts +1 -1
- package/dist/components/hx-link/hx-link.d.ts +1 -1
- package/dist/components/hx-list/hx-list-item.d.ts +1 -1
- package/dist/components/hx-list/hx-list.d.ts +1 -1
- package/dist/components/hx-list/hx-list.d.ts.map +1 -1
- package/dist/components/hx-list/index.js +1 -1
- package/dist/components/hx-menu/hx-menu-divider.d.ts +1 -1
- package/dist/components/hx-menu/hx-menu-item.d.ts +1 -1
- package/dist/components/hx-menu/hx-menu.d.ts +13 -1
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-meter/hx-meter.d.ts +3 -1
- package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
- package/dist/components/hx-meter/index.js +1 -1
- package/dist/components/hx-nav/hx-nav.d.ts +16 -2
- package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
- package/dist/components/hx-nav/index.js +1 -1
- package/dist/components/hx-number-input/hx-number-input.d.ts +3 -1
- package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
- package/dist/components/hx-number-input/index.js +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +15 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/index.js +1 -1
- package/dist/components/hx-pagination/hx-pagination.d.ts +6 -1
- package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
- package/dist/components/hx-pagination/index.js +1 -1
- package/dist/components/hx-popover/hx-popover.d.ts +11 -39
- package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
- package/dist/components/hx-popover/index.js +1 -1
- package/dist/components/hx-popup/hx-popup.d.ts +1 -1
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +11 -1
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
- package/dist/components/hx-progress-bar/index.js +1 -1
- package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
- package/dist/components/hx-progress-ring/index.js +1 -1
- package/dist/components/hx-prose/hx-prose.d.ts +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.d.ts +76 -4
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.d.ts +4 -2
- package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-rating/hx-rating.d.ts +19 -4
- package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
- package/dist/components/hx-rating/index.js +1 -1
- package/dist/components/hx-select/hx-select.d.ts +10 -1
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-select/index.js +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.d.ts +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
- package/dist/components/hx-side-nav/index.js +1 -1
- package/dist/components/hx-skeleton/hx-skeleton.d.ts +1 -1
- package/dist/components/hx-slider/hx-slider.d.ts +2 -0
- package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
- package/dist/components/hx-slider/index.js +1 -1
- package/dist/components/hx-spinner/hx-spinner.d.ts +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +17 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
- package/dist/components/hx-split-button/index.js +1 -1
- package/dist/components/hx-split-panel/hx-split-panel.d.ts +12 -1
- package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
- package/dist/components/hx-stack/hx-stack.d.ts +1 -1
- package/dist/components/hx-stat/hx-stat.d.ts +71 -0
- package/dist/components/hx-stat/hx-stat.d.ts.map +1 -0
- package/dist/components/hx-stat/hx-stat.styles.d.ts +2 -0
- package/dist/components/hx-stat/hx-stat.styles.d.ts.map +1 -0
- package/dist/components/hx-stat/index.d.ts +3 -0
- package/dist/components/hx-stat/index.d.ts.map +1 -0
- package/dist/components/hx-stat/index.js +5 -0
- package/dist/components/hx-stat/index.js.map +1 -0
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +1 -1
- package/dist/components/hx-steps/hx-step.d.ts +1 -1
- package/dist/components/hx-steps/hx-steps.d.ts +6 -1
- package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
- package/dist/components/hx-steps/index.js +1 -1
- package/dist/components/hx-structured-list/hx-structured-list.d.ts +4 -2
- package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
- package/dist/components/hx-structured-list/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.d.ts +3 -1
- package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-table/hx-table.d.ts +60 -0
- package/dist/components/hx-table/hx-table.d.ts.map +1 -0
- package/dist/components/hx-table/hx-table.styles.d.ts +9 -0
- package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -0
- package/dist/components/hx-table/hx-tbody.d.ts +23 -0
- package/dist/components/hx-table/hx-tbody.d.ts.map +1 -0
- package/dist/components/hx-table/hx-td.d.ts +46 -0
- package/dist/components/hx-table/hx-td.d.ts.map +1 -0
- package/dist/components/hx-table/hx-tfoot.d.ts +23 -0
- package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -0
- package/dist/components/hx-table/hx-th.d.ts +61 -0
- package/dist/components/hx-table/hx-th.d.ts.map +1 -0
- package/dist/components/hx-table/hx-thead.d.ts +23 -0
- package/dist/components/hx-table/hx-thead.d.ts.map +1 -0
- package/dist/components/hx-table/hx-tr.d.ts +33 -0
- package/dist/components/hx-table/hx-tr.d.ts.map +1 -0
- package/dist/components/hx-table/index.d.ts +9 -0
- package/dist/components/hx-table/index.d.ts.map +1 -0
- package/dist/components/hx-table/index.js +11 -0
- package/dist/components/hx-table/index.js.map +1 -0
- package/dist/components/hx-tabs/hx-tab-panel.d.ts +1 -1
- package/dist/components/hx-tabs/hx-tab.d.ts +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.js +1 -1
- package/dist/components/hx-tag/hx-tag.d.ts +1 -1
- package/dist/components/hx-text/hx-text.d.ts +1 -1
- package/dist/components/hx-text-input/hx-text-input.d.ts +2 -1
- package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts +15 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
- package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
- package/dist/components/hx-textarea/index.js +1 -1
- package/dist/components/hx-theme/hx-theme.d.ts +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.d.ts +23 -2
- package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
- package/dist/components/hx-time-picker/index.js +1 -1
- package/dist/components/hx-toast/hx-toast-stack.d.ts +36 -0
- package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -0
- package/dist/components/hx-toast/hx-toast.d.ts +1 -53
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/index.d.ts +6 -2
- package/dist/components/hx-toast/index.d.ts.map +1 -1
- package/dist/components/hx-toast/index.js +1 -1
- package/dist/components/hx-toast/toast-factory.d.ts +25 -0
- package/dist/components/hx-toast/toast-factory.d.ts.map +1 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +2 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.js +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.d.ts +2 -46
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
- package/dist/components/hx-tooltip/index.js +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.d.ts +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
- package/dist/components/hx-top-nav/index.js +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.d.ts +51 -1
- package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.d.ts +16 -1
- package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +1 -1
- package/dist/index.d.ts +20 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -154
- package/dist/index.js.map +1 -1
- package/dist/shared/body-scroll-lock-VBa5TFP-.js +12 -0
- package/dist/shared/body-scroll-lock-VBa5TFP-.js.map +1 -0
- package/dist/shared/dev-warn-YlwPHjtX.js +6 -0
- package/dist/shared/dev-warn-YlwPHjtX.js.map +1 -0
- package/dist/shared/{hx-accordion-D95XSAft.js → hx-accordion-Cyswa6J3.js} +46 -43
- package/dist/shared/hx-accordion-Cyswa6J3.js.map +1 -0
- package/dist/shared/{hx-action-bar-B4i9tBCP.js → hx-action-bar-we_WJety.js} +41 -40
- package/dist/shared/hx-action-bar-we_WJety.js.map +1 -0
- package/dist/shared/{hx-alert-BQpT4gL3.js → hx-alert-Cg-zxRiU.js} +2 -2
- package/dist/shared/hx-alert-Cg-zxRiU.js.map +1 -0
- package/dist/shared/{hx-avatar-yHjmNdtf.js → hx-avatar-Cep6Urm3.js} +62 -65
- package/dist/shared/hx-avatar-Cep6Urm3.js.map +1 -0
- package/dist/shared/hx-banner-lxAIJ2kR.js +349 -0
- package/dist/shared/hx-banner-lxAIJ2kR.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-DtSxRZ_W.js → hx-breadcrumb-item-C0rz0fzV.js} +46 -44
- package/dist/shared/hx-breadcrumb-item-C0rz0fzV.js.map +1 -0
- package/dist/shared/{hx-button-CtiJsmOg.js → hx-button-Cbhqpm5i.js} +111 -28
- package/dist/shared/hx-button-Cbhqpm5i.js.map +1 -0
- package/dist/shared/{hx-button-group-BMV5qFs4.js → hx-button-group-CWjWv-wS.js} +10 -10
- package/dist/shared/hx-button-group-CWjWv-wS.js.map +1 -0
- package/dist/shared/{hx-card-DAkEfpJd.js → hx-card-Bg4W4uXC.js} +16 -16
- package/dist/shared/hx-card-Bg4W4uXC.js.map +1 -0
- package/dist/shared/{hx-carousel-item-C2yBnM0r.js → hx-carousel-item-BKpmFbUT.js} +101 -63
- package/dist/shared/hx-carousel-item-BKpmFbUT.js.map +1 -0
- package/dist/shared/hx-checkbox-BMayOpAM.js.map +1 -1
- package/dist/shared/{hx-checkbox-group-DTS9iT4b.js → hx-checkbox-group-ydUdV9Sx.js} +7 -7
- package/dist/shared/hx-checkbox-group-ydUdV9Sx.js.map +1 -0
- package/dist/shared/{hx-code-snippet-DdEqy-1B.js → hx-code-snippet-B4hV7rWG.js} +65 -53
- package/dist/shared/hx-code-snippet-B4hV7rWG.js.map +1 -0
- package/dist/shared/{hx-color-picker-K2x_dyeG.js → hx-color-picker-BvfJ_h16.js} +100 -90
- package/dist/shared/hx-color-picker-BvfJ_h16.js.map +1 -0
- package/dist/shared/{hx-combobox-DjMigccw.js → hx-combobox-BBi3izKJ.js} +80 -44
- package/dist/shared/hx-combobox-BBi3izKJ.js.map +1 -0
- package/dist/shared/hx-container-DLUKnTi9.js.map +1 -1
- package/dist/shared/{hx-copy-button-BXL1xkxb.js → hx-copy-button-CLBA31to.js} +45 -50
- package/dist/shared/hx-copy-button-CLBA31to.js.map +1 -0
- package/dist/shared/hx-counter-D-1NXzGs.js +138 -0
- package/dist/shared/hx-counter-D-1NXzGs.js.map +1 -0
- package/dist/shared/{hx-data-table-D3NZvc3P.js → hx-data-table-DNiDVWR2.js} +100 -95
- package/dist/shared/hx-data-table-DNiDVWR2.js.map +1 -0
- package/dist/shared/{hx-date-picker-CIHwx9b3.js → hx-date-picker-D7yCK0nk.js} +17 -12
- package/dist/shared/hx-date-picker-D7yCK0nk.js.map +1 -0
- package/dist/shared/{hx-dialog-e4CSD8xX.js → hx-dialog-Z7Ou_AZ9.js} +37 -36
- package/dist/shared/hx-dialog-Z7Ou_AZ9.js.map +1 -0
- package/dist/shared/hx-divider-XgWIz4Mr.js.map +1 -1
- package/dist/shared/{hx-drawer-bTF0nbrg.js → hx-drawer-Dk-_xzy0.js} +59 -58
- package/dist/shared/hx-drawer-Dk-_xzy0.js.map +1 -0
- package/dist/shared/hx-dropdown-DnjLnkTj.js.map +1 -1
- package/dist/shared/{hx-field-Dz-7M_SC.js → hx-field-CDP8EXuj.js} +22 -19
- package/dist/shared/hx-field-CDP8EXuj.js.map +1 -0
- package/dist/shared/{hx-file-upload-DnYiIhyN.js → hx-file-upload-CUORgnKc.js} +17 -14
- package/dist/shared/hx-file-upload-CUORgnKc.js.map +1 -0
- package/dist/shared/{hx-form-BJeLK34m.js → hx-form-BFv_N1dm.js} +9 -1
- package/dist/shared/{hx-form-BJeLK34m.js.map → hx-form-BFv_N1dm.js.map} +1 -1
- package/dist/shared/hx-help-text-DaOPN1iB.js.map +1 -1
- package/dist/shared/{hx-icon-button-C_fsUJW4.js → hx-icon-button-C83bCR0K.js} +2 -4
- package/dist/shared/hx-icon-button-C83bCR0K.js.map +1 -0
- package/dist/shared/{hx-list-CF-AAnp-.js → hx-list-CdRNgeoP.js} +7 -9
- package/dist/shared/{hx-list-CF-AAnp-.js.map → hx-list-CdRNgeoP.js.map} +1 -1
- package/dist/shared/{hx-menu-divider-Buc5XA9E.js → hx-menu-divider-11Dp2VfM.js} +50 -48
- package/dist/shared/hx-menu-divider-11Dp2VfM.js.map +1 -0
- package/dist/shared/{hx-meter-qcXl0zCL.js → hx-meter-UinDQjl6.js} +43 -37
- package/dist/shared/hx-meter-UinDQjl6.js.map +1 -0
- package/dist/shared/{hx-nav-CWwByFdq.js → hx-nav-DSpwWYUX.js} +81 -81
- package/dist/shared/hx-nav-DSpwWYUX.js.map +1 -0
- package/dist/shared/{hx-nav-item-DItaMWl0.js → hx-nav-item-D54-5eUM.js} +12 -12
- package/dist/shared/hx-nav-item-D54-5eUM.js.map +1 -0
- package/dist/shared/{hx-number-input-CS6_w1lT.js → hx-number-input-BP6TIA92.js} +5 -1
- package/dist/shared/hx-number-input-BP6TIA92.js.map +1 -0
- package/dist/shared/{hx-overflow-menu-CAS1Mlus.js → hx-overflow-menu-C7k5wlZy.js} +39 -34
- package/dist/shared/hx-overflow-menu-C7k5wlZy.js.map +1 -0
- package/dist/shared/{hx-pagination-DNFgXQm3.js → hx-pagination-BQ0cLTuB.js} +65 -62
- package/dist/shared/hx-pagination-BQ0cLTuB.js.map +1 -0
- package/dist/shared/{hx-popover-BjAyLbzp.js → hx-popover-BQsgrJCW.js} +7 -7
- package/dist/shared/hx-popover-BQsgrJCW.js.map +1 -0
- package/dist/shared/{hx-progress-bar-b3_m1hna.js → hx-progress-bar-C_mdPVF-.js} +61 -52
- package/dist/shared/hx-progress-bar-C_mdPVF-.js.map +1 -0
- package/dist/shared/{hx-progress-ring-wOSv2y_I.js → hx-progress-ring-BHJBaXNk.js} +2 -4
- package/dist/shared/hx-progress-ring-BHJBaXNk.js.map +1 -0
- package/dist/shared/{hx-radio-CGtFKls2.js → hx-radio-Bqyi8re3.js} +44 -12
- package/dist/shared/hx-radio-Bqyi8re3.js.map +1 -0
- package/dist/shared/{hx-rating-C4kTOyHF.js → hx-rating-Y_t7Z4qb.js} +104 -67
- package/dist/shared/hx-rating-Y_t7Z4qb.js.map +1 -0
- package/dist/shared/{hx-select-D9bYJcDv.js → hx-select-BBae2LqN.js} +16 -10
- package/dist/shared/hx-select-BBae2LqN.js.map +1 -0
- package/dist/shared/{hx-slider-Duzmuid9.js → hx-slider-CpnxH2UP.js} +9 -5
- package/dist/shared/{hx-slider-Duzmuid9.js.map → hx-slider-CpnxH2UP.js.map} +1 -1
- package/dist/shared/{hx-split-button-DhncgAtZ.js → hx-split-button-BvwoG8h2.js} +14 -13
- package/dist/shared/hx-split-button-BvwoG8h2.js.map +1 -0
- package/dist/shared/hx-split-panel-Cxkeauwe.js.map +1 -1
- package/dist/shared/hx-stat-C2wfph8W.js +212 -0
- package/dist/shared/hx-stat-C2wfph8W.js.map +1 -0
- package/dist/shared/{hx-step-nMT0fHEn.js → hx-step-DYoIumpR.js} +29 -29
- package/dist/shared/hx-step-DYoIumpR.js.map +1 -0
- package/dist/shared/{hx-structured-list-CMja1VXz.js → hx-structured-list-CMWllxGg.js} +23 -17
- package/dist/shared/{hx-structured-list-CMja1VXz.js.map → hx-structured-list-CMWllxGg.js.map} +1 -1
- package/dist/shared/{hx-switch-BPvIcDpM.js → hx-switch-DkKchcuP.js} +8 -3
- package/dist/shared/{hx-switch-BPvIcDpM.js.map → hx-switch-DkKchcuP.js.map} +1 -1
- package/dist/shared/{hx-tab-panel-C7h5lRpw.js → hx-tab-panel-CHB0u1zF.js} +91 -85
- package/dist/shared/hx-tab-panel-CHB0u1zF.js.map +1 -0
- package/dist/shared/hx-td-CVwCGBYf.js +604 -0
- package/dist/shared/hx-td-CVwCGBYf.js.map +1 -0
- package/dist/shared/{hx-text-input-BUMgOQHX.js → hx-text-input-BrCjo4fJ.js} +5 -1
- package/dist/shared/hx-text-input-BrCjo4fJ.js.map +1 -0
- package/dist/shared/{hx-textarea-B_nmxzhC.js → hx-textarea-BsQdB1Rk.js} +51 -18
- package/dist/shared/hx-textarea-BsQdB1Rk.js.map +1 -0
- package/dist/shared/{hx-time-picker-a-BCkecJ.js → hx-time-picker-DRRAFuVd.js} +62 -54
- package/dist/shared/hx-time-picker-DRRAFuVd.js.map +1 -0
- package/dist/shared/{hx-toggle-button--xCXWRJW.js → hx-toggle-button-D4F1soEM.js} +34 -22
- package/dist/shared/{hx-toggle-button--xCXWRJW.js.map → hx-toggle-button-D4F1soEM.js.map} +1 -1
- package/dist/shared/{hx-tooltip-DN6lMlP5.js → hx-tooltip-Bk1iQRHs.js} +23 -23
- package/dist/shared/hx-tooltip-Bk1iQRHs.js.map +1 -0
- package/dist/shared/{hx-top-nav-8lDKNZUj.js → hx-top-nav-DzW7XLv-.js} +42 -29
- package/dist/shared/{hx-top-nav-8lDKNZUj.js.map → hx-top-nav-DzW7XLv-.js.map} +1 -1
- package/dist/shared/{hx-tree-item-Cesh_du5.js → hx-tree-item-DdH6RbMs.js} +170 -111
- package/dist/shared/hx-tree-item-DdH6RbMs.js.map +1 -0
- package/dist/shared/{hx-toast-ikwh9Y03.js → toast-factory-B8jicczW.js} +69 -66
- package/dist/shared/toast-factory-B8jicczW.js.map +1 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +12 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +13 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +13 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +12 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +13 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +12 -0
- package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/index.d.ts +14 -0
- package/dist/tools/cem-a11y-analyzer/index.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/reporter.d.ts +6 -0
- package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/scorer.d.ts +22 -0
- package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +1 -0
- package/dist/tools/cem-a11y-analyzer/types.d.ts +171 -0
- package/dist/tools/cem-a11y-analyzer/types.d.ts.map +1 -0
- package/dist/utils/body-scroll-lock.d.ts +34 -0
- package/dist/utils/body-scroll-lock.d.ts.map +1 -0
- package/dist/utils/dev-warn.d.ts +19 -0
- package/dist/utils/dev-warn.d.ts.map +1 -0
- package/package.json +33 -27
- package/dist/shared/hx-accordion-D95XSAft.js.map +0 -1
- package/dist/shared/hx-action-bar-B4i9tBCP.js.map +0 -1
- package/dist/shared/hx-alert-BQpT4gL3.js.map +0 -1
- package/dist/shared/hx-avatar-yHjmNdtf.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-DtSxRZ_W.js.map +0 -1
- package/dist/shared/hx-button-CtiJsmOg.js.map +0 -1
- package/dist/shared/hx-button-group-BMV5qFs4.js.map +0 -1
- package/dist/shared/hx-card-DAkEfpJd.js.map +0 -1
- package/dist/shared/hx-carousel-item-C2yBnM0r.js.map +0 -1
- package/dist/shared/hx-checkbox-group-DTS9iT4b.js.map +0 -1
- package/dist/shared/hx-code-snippet-DdEqy-1B.js.map +0 -1
- package/dist/shared/hx-color-picker-K2x_dyeG.js.map +0 -1
- package/dist/shared/hx-combobox-DjMigccw.js.map +0 -1
- package/dist/shared/hx-copy-button-BXL1xkxb.js.map +0 -1
- package/dist/shared/hx-data-table-D3NZvc3P.js.map +0 -1
- package/dist/shared/hx-date-picker-CIHwx9b3.js.map +0 -1
- package/dist/shared/hx-dialog-e4CSD8xX.js.map +0 -1
- package/dist/shared/hx-drawer-bTF0nbrg.js.map +0 -1
- package/dist/shared/hx-field-Dz-7M_SC.js.map +0 -1
- package/dist/shared/hx-file-upload-DnYiIhyN.js.map +0 -1
- package/dist/shared/hx-icon-button-C_fsUJW4.js.map +0 -1
- package/dist/shared/hx-menu-divider-Buc5XA9E.js.map +0 -1
- package/dist/shared/hx-meter-qcXl0zCL.js.map +0 -1
- package/dist/shared/hx-nav-CWwByFdq.js.map +0 -1
- package/dist/shared/hx-nav-item-DItaMWl0.js.map +0 -1
- package/dist/shared/hx-number-input-CS6_w1lT.js.map +0 -1
- package/dist/shared/hx-overflow-menu-CAS1Mlus.js.map +0 -1
- package/dist/shared/hx-pagination-DNFgXQm3.js.map +0 -1
- package/dist/shared/hx-popover-BjAyLbzp.js.map +0 -1
- package/dist/shared/hx-progress-bar-b3_m1hna.js.map +0 -1
- package/dist/shared/hx-progress-ring-wOSv2y_I.js.map +0 -1
- package/dist/shared/hx-radio-CGtFKls2.js.map +0 -1
- package/dist/shared/hx-rating-C4kTOyHF.js.map +0 -1
- package/dist/shared/hx-select-D9bYJcDv.js.map +0 -1
- package/dist/shared/hx-split-button-DhncgAtZ.js.map +0 -1
- package/dist/shared/hx-step-nMT0fHEn.js.map +0 -1
- package/dist/shared/hx-tab-panel-C7h5lRpw.js.map +0 -1
- package/dist/shared/hx-text-input-BUMgOQHX.js.map +0 -1
- package/dist/shared/hx-textarea-B_nmxzhC.js.map +0 -1
- package/dist/shared/hx-time-picker-a-BCkecJ.js.map +0 -1
- package/dist/shared/hx-toast-ikwh9Y03.js.map +0 -1
- package/dist/shared/hx-tooltip-DN6lMlP5.js.map +0 -1
- package/dist/shared/hx-tree-item-Cesh_du5.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
3
|
-
import { classMap as
|
|
4
|
-
import { tokenStyles as
|
|
5
|
-
const
|
|
1
|
+
import { css as u, LitElement as d, nothing as b, html as m } from "lit";
|
|
2
|
+
import { property as l, customElement as f } from "lit/decorators.js";
|
|
3
|
+
import { classMap as x } from "lit/directives/class-map.js";
|
|
4
|
+
import { tokenStyles as v } from "@helixui/tokens/lit";
|
|
5
|
+
const g = u`
|
|
6
6
|
/* ─── hx-toast host ─── */
|
|
7
7
|
|
|
8
8
|
:host {
|
|
@@ -134,7 +134,7 @@ const b = p`
|
|
|
134
134
|
transition: none;
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
`,
|
|
137
|
+
`, y = u`
|
|
138
138
|
:host {
|
|
139
139
|
display: block;
|
|
140
140
|
position: fixed;
|
|
@@ -208,18 +208,18 @@ const b = p`
|
|
|
208
208
|
--hx-toast-enter-translate: calc(var(--hx-space-2, 0.5rem) * -1);
|
|
209
209
|
}
|
|
210
210
|
`;
|
|
211
|
-
var
|
|
212
|
-
for (var t =
|
|
213
|
-
(
|
|
214
|
-
return
|
|
211
|
+
var w = Object.defineProperty, T = Object.getOwnPropertyDescriptor, h = (a, o, s, e) => {
|
|
212
|
+
for (var t = e > 1 ? void 0 : e ? T(o, s) : o, r = a.length - 1, i; r >= 0; r--)
|
|
213
|
+
(i = a[r]) && (t = (e ? i(o, s, t) : i(t)) || t);
|
|
214
|
+
return e && t && w(o, s, t), t;
|
|
215
215
|
};
|
|
216
|
-
let
|
|
216
|
+
let n = class extends d {
|
|
217
217
|
constructor() {
|
|
218
218
|
super(...arguments), this.variant = "default", this.duration = 3e3, this.closable = !1, this.open = !1, this.closeLabel = "Dismiss notification", this._timer = null, this._timerStartedAt = null, this._timerRemaining = null;
|
|
219
219
|
}
|
|
220
220
|
// ─── Lifecycle ───
|
|
221
|
-
updated(
|
|
222
|
-
|
|
221
|
+
updated(a) {
|
|
222
|
+
a.has("open") && (this.open ? (this.removeAttribute("aria-hidden"), this._emitShow(), this.duration > 0 && this._startTimer()) : (this.setAttribute("aria-hidden", "true"), this._clearTimer(), this._emitHide()));
|
|
223
223
|
}
|
|
224
224
|
disconnectedCallback() {
|
|
225
225
|
super.disconnectedCallback(), this._clearTimer();
|
|
@@ -235,11 +235,9 @@ let i = class extends u {
|
|
|
235
235
|
}
|
|
236
236
|
// ─── Private Helpers ───
|
|
237
237
|
/** @internal */
|
|
238
|
-
_startTimer(
|
|
239
|
-
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches)
|
|
240
|
-
return;
|
|
238
|
+
_startTimer(a) {
|
|
241
239
|
this._clearTimerHandle();
|
|
242
|
-
const o =
|
|
240
|
+
const o = a ?? this.duration;
|
|
243
241
|
this._timerStartedAt = Date.now(), this._timerRemaining = o, this._timer = setTimeout(() => {
|
|
244
242
|
this.open = !1;
|
|
245
243
|
}, o);
|
|
@@ -248,8 +246,8 @@ let i = class extends u {
|
|
|
248
246
|
_pauseTimer() {
|
|
249
247
|
if (this._timer === null || this._timerStartedAt === null || this._timerRemaining === null)
|
|
250
248
|
return;
|
|
251
|
-
const
|
|
252
|
-
this._timerRemaining = Math.max(0, this._timerRemaining -
|
|
249
|
+
const a = Date.now() - this._timerStartedAt;
|
|
250
|
+
this._timerRemaining = Math.max(0, this._timerRemaining - a), this._clearTimerHandle();
|
|
253
251
|
}
|
|
254
252
|
/** @internal */
|
|
255
253
|
_clearTimerHandle() {
|
|
@@ -265,13 +263,13 @@ let i = class extends u {
|
|
|
265
263
|
}
|
|
266
264
|
/** @internal */
|
|
267
265
|
_emitHide() {
|
|
268
|
-
var
|
|
266
|
+
var e;
|
|
269
267
|
this.dispatchEvent(new CustomEvent("hx-hide", { bubbles: !0, composed: !0 }));
|
|
270
|
-
let
|
|
268
|
+
let a = !1;
|
|
271
269
|
const o = () => {
|
|
272
|
-
|
|
273
|
-
},
|
|
274
|
-
|
|
270
|
+
a || (a = !0, this.dispatchEvent(new CustomEvent("hx-after-hide", { bubbles: !0, composed: !0 })));
|
|
271
|
+
}, s = (e = this.shadowRoot) == null ? void 0 : e.querySelector(".toast");
|
|
272
|
+
s && s.addEventListener("transitionend", o, { once: !0 }), setTimeout(o, 300);
|
|
275
273
|
}
|
|
276
274
|
// ─── Event Handlers ───
|
|
277
275
|
/** @internal */
|
|
@@ -308,7 +306,7 @@ let i = class extends u {
|
|
|
308
306
|
return m`
|
|
309
307
|
<div
|
|
310
308
|
part="base"
|
|
311
|
-
class=${
|
|
309
|
+
class=${x({
|
|
312
310
|
toast: !0,
|
|
313
311
|
[`toast--${this.variant}`]: !0
|
|
314
312
|
})}
|
|
@@ -350,31 +348,36 @@ let i = class extends u {
|
|
|
350
348
|
<path d="M18 6L6 18M6 6l12 12" />
|
|
351
349
|
</svg>
|
|
352
350
|
</button>
|
|
353
|
-
` :
|
|
351
|
+
` : b}
|
|
354
352
|
</div>
|
|
355
353
|
`;
|
|
356
354
|
}
|
|
357
355
|
};
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
],
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
],
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
],
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
],
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
],
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
],
|
|
377
|
-
|
|
356
|
+
n.styles = [v, g];
|
|
357
|
+
h([
|
|
358
|
+
l({ type: String, reflect: !0 })
|
|
359
|
+
], n.prototype, "variant", 2);
|
|
360
|
+
h([
|
|
361
|
+
l({ type: Number })
|
|
362
|
+
], n.prototype, "duration", 2);
|
|
363
|
+
h([
|
|
364
|
+
l({ type: Boolean, reflect: !0 })
|
|
365
|
+
], n.prototype, "closable", 2);
|
|
366
|
+
h([
|
|
367
|
+
l({ type: Boolean, reflect: !0 })
|
|
368
|
+
], n.prototype, "open", 2);
|
|
369
|
+
h([
|
|
370
|
+
l({ attribute: "close-label" })
|
|
371
|
+
], n.prototype, "closeLabel", 2);
|
|
372
|
+
n = h([
|
|
373
|
+
f("hx-toast")
|
|
374
|
+
], n);
|
|
375
|
+
var k = Object.defineProperty, S = Object.getOwnPropertyDescriptor, p = (a, o, s, e) => {
|
|
376
|
+
for (var t = e > 1 ? void 0 : e ? S(o, s) : o, r = a.length - 1, i; r >= 0; r--)
|
|
377
|
+
(i = a[r]) && (t = (e ? i(o, s, t) : i(t)) || t);
|
|
378
|
+
return e && t && k(o, s, t), t;
|
|
379
|
+
};
|
|
380
|
+
let c = class extends d {
|
|
378
381
|
constructor() {
|
|
379
382
|
super(...arguments), this.placement = "bottom-end", this.stackLimit = 3;
|
|
380
383
|
}
|
|
@@ -382,7 +385,7 @@ let c = class extends u {
|
|
|
382
385
|
return m`
|
|
383
386
|
<div
|
|
384
387
|
part="base"
|
|
385
|
-
class=${
|
|
388
|
+
class=${x({
|
|
386
389
|
"toast-stack": !0,
|
|
387
390
|
[`toast-stack--${this.placement}`]: !0
|
|
388
391
|
})}
|
|
@@ -392,32 +395,32 @@ let c = class extends u {
|
|
|
392
395
|
`;
|
|
393
396
|
}
|
|
394
397
|
};
|
|
395
|
-
c.styles = [
|
|
396
|
-
|
|
397
|
-
|
|
398
|
+
c.styles = [v, y];
|
|
399
|
+
p([
|
|
400
|
+
l({ type: String, reflect: !0 })
|
|
398
401
|
], c.prototype, "placement", 2);
|
|
399
|
-
|
|
400
|
-
|
|
402
|
+
p([
|
|
403
|
+
l({ type: Number, attribute: "stack-limit" })
|
|
401
404
|
], c.prototype, "stackLimit", 2);
|
|
402
|
-
c =
|
|
403
|
-
|
|
405
|
+
c = p([
|
|
406
|
+
f("hx-toast-stack")
|
|
404
407
|
], c);
|
|
405
|
-
function
|
|
406
|
-
var
|
|
407
|
-
const o =
|
|
408
|
-
let
|
|
409
|
-
if (
|
|
410
|
-
const
|
|
411
|
-
|
|
408
|
+
function A(a) {
|
|
409
|
+
var r;
|
|
410
|
+
const o = a.placement ?? "bottom-end", s = `hx-toast-stack[placement="${o}"]`;
|
|
411
|
+
let e = document.querySelector(s);
|
|
412
|
+
if (e || (e = document.createElement("hx-toast-stack"), e.placement = o, document.body.appendChild(e)), e.stackLimit > 0) {
|
|
413
|
+
const i = [...e.querySelectorAll("hx-toast")].filter((_) => _.open);
|
|
414
|
+
i.length >= e.stackLimit && ((r = i[0]) == null || r.hide());
|
|
412
415
|
}
|
|
413
416
|
const t = document.createElement("hx-toast");
|
|
414
|
-
return t.variant =
|
|
417
|
+
return t.variant = a.variant ?? "default", t.duration = a.duration ?? 3e3, t.closable = !0, t.textContent = a.message, t.addEventListener("hx-after-hide", () => {
|
|
415
418
|
t.remove();
|
|
416
|
-
}),
|
|
419
|
+
}), e.appendChild(t), t.show(), t;
|
|
417
420
|
}
|
|
418
421
|
export {
|
|
419
|
-
|
|
422
|
+
n as H,
|
|
420
423
|
c as a,
|
|
421
|
-
|
|
424
|
+
A as t
|
|
422
425
|
};
|
|
423
|
-
//# sourceMappingURL=
|
|
426
|
+
//# sourceMappingURL=toast-factory-B8jicczW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-factory-B8jicczW.js","sources":["../../src/components/hx-toast/hx-toast.styles.ts","../../src/components/hx-toast/hx-toast.ts","../../src/components/hx-toast/hx-toast-stack.ts","../../src/components/hx-toast/toast-factory.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixToastStyles = css`\n /* ─── hx-toast host ─── */\n\n :host {\n display: block;\n pointer-events: none;\n }\n\n :host([open]) {\n pointer-events: auto;\n }\n\n /* ─── Toast base ─── */\n\n .toast {\n display: flex;\n align-items: flex-start;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\n border-radius: var(--hx-toast-border-radius, var(--hx-border-radius-md, 0.375rem));\n background-color: var(--hx-toast-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-toast-color, var(--hx-color-neutral-0, #ffffff));\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-sm, 0.875rem);\n line-height: var(--hx-line-height-normal, 1.5);\n box-shadow: var(\n --hx-toast-shadow,\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1)\n );\n opacity: 0;\n transform: translateY(var(--hx-toast-enter-translate, var(--hx-space-2, 0.5rem)));\n transition:\n opacity var(--hx-transition-normal, 250ms ease),\n transform var(--hx-transition-normal, 250ms ease);\n width: var(--hx-toast-width, 20rem);\n max-width: 100%;\n pointer-events: auto;\n }\n\n :host([open]) .toast {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* ─── Variant overrides ─── */\n\n .toast--success {\n --hx-toast-bg: var(--hx-color-success-600, #16a34a);\n --hx-toast-color: var(--hx-color-neutral-0, #ffffff);\n }\n\n .toast--warning {\n --hx-toast-bg: var(--hx-color-warning-500, #f59e0b);\n --hx-toast-color: var(--hx-color-neutral-900, #0f172a);\n }\n\n .toast--danger {\n --hx-toast-bg: var(--hx-color-error-600, #dc2626);\n --hx-toast-color: var(--hx-color-neutral-0, #ffffff);\n }\n\n .toast--info {\n --hx-toast-bg: var(--hx-color-primary-600, #2563eb);\n --hx-toast-color: var(--hx-color-neutral-0, #ffffff);\n }\n\n /* ─── Icon ─── */\n\n .toast__icon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n line-height: 1;\n }\n\n .toast__icon:empty {\n display: none;\n }\n\n /* ─── Message ─── */\n\n .toast__message {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n /* ─── Action slot ─── */\n\n .toast__action {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n }\n\n .toast__action:empty {\n display: none;\n }\n\n /* ─── Close button ─── */\n\n .toast__close {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--hx-space-1, 0.25rem);\n background: transparent;\n border: none;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n color: inherit;\n cursor: pointer;\n opacity: 0.7;\n transition: opacity var(--hx-transition-fast, 150ms ease);\n }\n\n .toast__close:hover {\n opacity: 1;\n }\n\n .toast__close:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid currentColor;\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Reduced motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .toast {\n transition: none;\n }\n }\n`;\n\nexport const helixToastStackStyles = css`\n :host {\n display: block;\n position: fixed;\n z-index: var(--hx-z-index-toast, 9000);\n pointer-events: none;\n }\n\n .toast-stack {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-space-4, 1rem);\n pointer-events: none;\n }\n\n /* ─── Placements ─── */\n\n :host([placement='top-start']) {\n top: 0;\n left: 0;\n right: auto;\n bottom: auto;\n }\n\n :host([placement='top-center']) {\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n right: auto;\n bottom: auto;\n }\n\n :host([placement='top-end']) {\n top: 0;\n right: 0;\n left: auto;\n bottom: auto;\n }\n\n :host([placement='bottom-start']) {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n }\n\n :host([placement='bottom-center']) {\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n right: auto;\n top: auto;\n }\n\n :host([placement='bottom-end']) {\n bottom: 0;\n right: 0;\n left: auto;\n top: auto;\n }\n\n /* ─── Bottom placements: reverse order so newest is on top ─── */\n\n :host([placement^='bottom']) .toast-stack {\n flex-direction: column-reverse;\n }\n\n /* ─── Slide direction by placement ─── */\n\n :host([placement^='top']) ::slotted(hx-toast) {\n --hx-toast-enter-translate: calc(var(--hx-space-2, 0.5rem) * -1);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixToastStyles } from './hx-toast.styles.js';\n\nexport type ToastVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';\n\n/**\n * A transient notification message that auto-dismisses after a configurable duration.\n * Supports multiple visual variants, a closable button, icon/action slots, and full\n * ARIA live region semantics for screen readers.\n *\n * @summary Transient notification toast component.\n *\n * @tag hx-toast\n *\n * @slot - Default slot for the notification message.\n * @slot icon - Optional icon rendered before the message.\n * @slot action - Optional action button rendered after the message.\n *\n * @fires {CustomEvent} hx-show - Dispatched when the toast becomes visible.\n * @fires {CustomEvent} hx-hide - Dispatched when the toast begins hiding.\n * @fires {CustomEvent} hx-after-hide - Dispatched after the hide animation completes.\n *\n * @csspart base - The inner toast container div.\n * @csspart icon - The icon slot wrapper.\n * @csspart message - The message slot wrapper.\n * @csspart close-button - The dismiss button (only when closable).\n * @csspart action - The action slot wrapper.\n *\n * @cssprop [--hx-toast-bg=var(--hx-color-neutral-900)] - Toast background color.\n * @cssprop [--hx-toast-color=var(--hx-color-neutral-0)] - Toast text color.\n * @cssprop [--hx-toast-border-radius=var(--hx-border-radius-md)] - Toast border radius.\n * @cssprop [--hx-toast-shadow] - Toast box shadow.\n * @cssprop [--hx-toast-width=20rem] - Toast width.\n */\n@customElement('hx-toast')\nexport class HelixToast extends LitElement {\n static override styles = [tokenStyles, helixToastStyles];\n\n // ─── Public Properties ───\n\n /**\n * Visual style variant.\n * @attr variant\n */\n @property({ type: String, reflect: true })\n variant: ToastVariant = 'default';\n\n /**\n * Auto-dismiss duration in milliseconds. Set to 0 for persistent toasts.\n * @attr duration\n */\n @property({ type: Number })\n duration = 3000;\n\n /**\n * Whether to show a close button.\n * @attr closable\n */\n @property({ type: Boolean, reflect: true })\n closable = false;\n\n /**\n * Whether the toast is currently visible.\n * @attr open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Accessible label for the close button. Override for localization.\n * @attr close-label\n */\n @property({ attribute: 'close-label' })\n closeLabel = 'Dismiss notification';\n\n // ─── Private State ───\n\n /** @internal */\n private _timer: ReturnType<typeof setTimeout> | null = null;\n\n /** @internal */\n private _timerStartedAt: number | null = null;\n\n /** @internal */\n private _timerRemaining: number | null = null;\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: Map<PropertyKey, unknown>): void {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.removeAttribute('aria-hidden');\n this._emitShow();\n if (this.duration > 0) {\n this._startTimer();\n }\n } else {\n this.setAttribute('aria-hidden', 'true');\n this._clearTimer();\n this._emitHide();\n }\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._clearTimer();\n }\n\n // ─── Public API ───\n\n /** Show the toast. */\n show(): void {\n if (!this.open) {\n this.open = true;\n }\n }\n\n /** Hide the toast. */\n hide(): void {\n if (this.open) {\n this.open = false;\n }\n }\n\n // ─── Private Helpers ───\n\n /** @internal */\n private _startTimer(remaining?: number): void {\n this._clearTimerHandle();\n const delay = remaining ?? this.duration;\n this._timerStartedAt = Date.now();\n this._timerRemaining = delay;\n this._timer = setTimeout(() => {\n this.open = false;\n }, delay);\n }\n\n /** @internal */\n private _pauseTimer(): void {\n if (this._timer === null || this._timerStartedAt === null || this._timerRemaining === null) {\n return;\n }\n const elapsed = Date.now() - this._timerStartedAt;\n this._timerRemaining = Math.max(0, this._timerRemaining - elapsed);\n this._clearTimerHandle();\n }\n\n /** @internal */\n private _clearTimerHandle(): void {\n if (this._timer !== null) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n }\n\n /** @internal */\n private _clearTimer(): void {\n this._clearTimerHandle();\n this._timerStartedAt = null;\n this._timerRemaining = null;\n }\n\n /** @internal */\n private _emitShow(): void {\n this.dispatchEvent(new CustomEvent('hx-show', { bubbles: true, composed: true }));\n }\n\n /** @internal */\n private _emitHide(): void {\n this.dispatchEvent(new CustomEvent('hx-hide', { bubbles: true, composed: true }));\n\n let fired = false;\n const fireAfterHide = () => {\n if (fired) return;\n fired = true;\n this.dispatchEvent(new CustomEvent('hx-after-hide', { bubbles: true, composed: true }));\n };\n\n // Fire on transitionend if available; fallback ensures it fires in test environments\n // and when transitions are disabled (prefers-reduced-motion, no CSS transitions).\n const base = this.shadowRoot?.querySelector('.toast');\n if (base) {\n base.addEventListener('transitionend', fireAfterHide, { once: true });\n }\n // Fallback fires after the CSS transition duration (250ms) plus a small buffer.\n setTimeout(fireAfterHide, 300);\n }\n\n // ─── Event Handlers ───\n\n /** @internal */\n private _handleMouseEnter(): void {\n this._pauseTimer();\n }\n\n /** @internal */\n private _handleMouseLeave(): void {\n if (this.open && this.duration > 0) {\n this._startTimer(this._timerRemaining ?? undefined);\n }\n }\n\n /** @internal */\n private _handleFocusIn(): void {\n this._pauseTimer();\n }\n\n /** @internal */\n private _handleFocusOut(): void {\n if (this.open && this.duration > 0) {\n this._startTimer(this._timerRemaining ?? undefined);\n }\n }\n\n /** @internal */\n private _handleClose(): void {\n this.hide();\n }\n\n // ─── ARIA Helpers ───\n\n /** @internal */\n private get _role(): 'alert' | 'status' {\n return this.variant === 'danger' ? 'alert' : 'status';\n }\n\n /** @internal */\n private get _ariaLive(): 'assertive' | 'polite' {\n return this.variant === 'danger' ? 'assertive' : 'polite';\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n toast: true,\n [`toast--${this.variant}`]: true,\n })}\n role=${this._role}\n aria-live=${this._ariaLive}\n aria-atomic=\"true\"\n @mouseenter=${this._handleMouseEnter}\n @mouseleave=${this._handleMouseLeave}\n @focusin=${this._handleFocusIn}\n @focusout=${this._handleFocusOut}\n >\n <span part=\"icon\" class=\"toast__icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"message\" class=\"toast__message\">\n <slot></slot>\n </span>\n <span part=\"action\" class=\"toast__action\">\n <slot name=\"action\"></slot>\n </span>\n ${this.closable\n ? html`\n <button\n part=\"close-button\"\n class=\"toast__close\"\n aria-label=${this.closeLabel}\n @click=${this._handleClose}\n >\n <svg\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\n// ─── Declarative Global Types ───\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-toast': HelixToast;\n }\n}\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixToastStackStyles } from './hx-toast.styles.js';\n\nexport type ToastStackPlacement =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end';\n\n/**\n * A fixed-position container that stacks `hx-toast` elements at the specified\n * corner of the viewport. Enforces a maximum visible toast count via `stack-limit`.\n *\n * @summary Toast stack container managing position and count limits.\n *\n * @tag hx-toast-stack\n *\n * @slot - Accepts `hx-toast` elements.\n *\n * @csspart base - The inner stack container div.\n *\n * @cssprop [--hx-z-index-toast=9000] - Z-index for the fixed stack.\n */\n@customElement('hx-toast-stack')\nexport class HelixToastStack extends LitElement {\n static override styles = [tokenStyles, helixToastStackStyles];\n\n /**\n * Corner of the viewport where toasts appear.\n * @attr placement\n */\n @property({ type: String, reflect: true })\n placement: ToastStackPlacement = 'bottom-end';\n\n /**\n * Maximum number of simultaneously visible toasts. 0 = unlimited.\n * @attr stack-limit\n */\n @property({ type: Number, attribute: 'stack-limit' })\n stackLimit = 3;\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'toast-stack': true,\n [`toast-stack--${this.placement}`]: true,\n })}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\n// ─── Declarative Global Types ───\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-toast-stack': HelixToastStack;\n }\n}\n","import { HelixToast } from './hx-toast.js';\nimport { HelixToastStack } from './hx-toast-stack.js';\nimport type { ToastVariant } from './hx-toast.js';\nimport type { ToastStackPlacement } from './hx-toast-stack.js';\n\nexport interface ToastOptions {\n /** The notification message text. */\n message: string;\n /** Visual variant. Defaults to 'default'. */\n variant?: ToastVariant;\n /** Auto-dismiss duration in ms. 0 = persistent. Defaults to 3000. */\n duration?: number;\n /** Placement of the shared stack. Defaults to 'bottom-end'. */\n placement?: ToastStackPlacement;\n}\n\n/**\n * Imperatively create and display a toast notification.\n *\n * Creates a shared `hx-toast-stack` on `document.body` if one does not exist,\n * then appends a new `hx-toast` with the given options. Respects the stack's\n * `stackLimit` by hiding the oldest visible toast when the limit is exceeded.\n *\n * @example\n * import { toast } from '@helixui/library/components/hx-toast/index.js';\n * toast({ message: 'Patient record saved.', variant: 'success' });\n */\nexport function toast(options: ToastOptions): HelixToast {\n const placement = options.placement ?? 'bottom-end';\n\n // Find or create a dedicated stack for this placement\n const stackSelector = `hx-toast-stack[placement=\"${placement}\"]`;\n let stack = document.querySelector<HelixToastStack>(stackSelector);\n if (!stack) {\n stack = document.createElement('hx-toast-stack') as HelixToastStack;\n stack.placement = placement;\n // Intentional design decision: the toast stack is appended to document.body rather\n // than inserted near the caller. This is required so that the fixed-position overlay\n // is not clipped by an ancestor with `overflow: hidden`, `transform`, or `filter`\n // (all of which create a new stacking context and break fixed positioning).\n // Drupal compatibility note: Drupal's BigPipe / AJAX behaviors can re-attach the\n // document body without removing these stacks. The selector check above\n // (`document.querySelector`) ensures only one stack per placement is ever created,\n // preventing duplicates on re-attach cycles.\n document.body.appendChild(stack);\n }\n\n // Enforce stack limit: hide oldest open toast if at capacity\n if (stack.stackLimit > 0) {\n const openToasts = [...stack.querySelectorAll<HelixToast>('hx-toast')].filter((t) => t.open);\n if (openToasts.length >= stack.stackLimit) {\n openToasts[0]?.hide();\n }\n }\n\n // Create toast element\n const toastEl = document.createElement('hx-toast') as HelixToast;\n toastEl.variant = options.variant ?? 'default';\n toastEl.duration = options.duration ?? 3000;\n toastEl.closable = true;\n toastEl.textContent = options.message;\n\n // Remove from DOM after hiding\n toastEl.addEventListener('hx-after-hide', () => {\n toastEl.remove();\n });\n\n stack.appendChild(toastEl);\n toastEl.show();\n\n return toastEl;\n}\n"],"names":["helixToastStyles","css","helixToastStackStyles","HelixToast","LitElement","changedProperties","remaining","delay","elapsed","fired","fireAfterHide","base","_a","html","classMap","nothing","tokenStyles","__decorateClass","property","customElement","HelixToastStack","toast","options","placement","stackSelector","stack","openToasts","t","toastEl"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnalyzerResult, AnalysisOptions, CemDeclaration } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze ARIA support from CEM declaration.
|
|
4
|
+
*
|
|
5
|
+
* Checks for:
|
|
6
|
+
* - role property/attribute
|
|
7
|
+
* - aria-* properties (ariaLabel, ariaDescribedBy, etc.)
|
|
8
|
+
* - ARIA attribute bindings
|
|
9
|
+
* - ARIA documentation in member descriptions
|
|
10
|
+
*/
|
|
11
|
+
export declare function analyzeAria(declaration: CemDeclaration, _modulePath: string, _options: AnalysisOptions): Promise<AnalyzerResult>;
|
|
12
|
+
//# sourceMappingURL=aria-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aria-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/tools/cem-a11y-analyzer/analyzers/aria-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EAGf,MAAM,aAAa,CAAC;AAKrB;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,cAAc,EAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAmFzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AnalyzerResult, AnalysisOptions, CemDeclaration } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze focus management from CEM declaration and optional source.
|
|
4
|
+
*
|
|
5
|
+
* Checks for:
|
|
6
|
+
* - tabindex property
|
|
7
|
+
* - Focus-related CSS parts (focus-ring, focus-visible)
|
|
8
|
+
* - Focus-related CSS custom properties (--*-focus-*)
|
|
9
|
+
* - delegatesFocus in shadow root options
|
|
10
|
+
* - Focus trap patterns in source (optional)
|
|
11
|
+
*/
|
|
12
|
+
export declare function analyzeFocus(declaration: CemDeclaration, modulePath: string, options: AnalysisOptions): Promise<AnalyzerResult>;
|
|
13
|
+
//# sourceMappingURL=focus-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/tools/cem-a11y-analyzer/analyzers/focus-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAYnG;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA6EzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AnalyzerResult, AnalysisOptions, CemDeclaration } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze form association support from CEM declaration.
|
|
4
|
+
*
|
|
5
|
+
* Checks for:
|
|
6
|
+
* - static formAssociated = true
|
|
7
|
+
* - ElementInternals (_internals)
|
|
8
|
+
* - form property (returns associated form)
|
|
9
|
+
* - validity/validationMessage properties
|
|
10
|
+
* - formResetCallback, formDisabledCallback, formStateRestoreCallback
|
|
11
|
+
*/
|
|
12
|
+
export declare function analyzeForm(declaration: CemDeclaration, _modulePath: string, _options: AnalysisOptions): Promise<AnalyzerResult>;
|
|
13
|
+
//# sourceMappingURL=form-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/tools/cem-a11y-analyzer/analyzers/form-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAEnG;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,cAAc,EAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAoFzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnalyzerResult, AnalysisOptions, CemDeclaration } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze keyboard accessibility from CEM declaration and optional source.
|
|
4
|
+
*
|
|
5
|
+
* Checks for:
|
|
6
|
+
* - Keyboard event handler references in CEM descriptions
|
|
7
|
+
* - Methods named with keyboard patterns (handleKeydown, _onKeyDown)
|
|
8
|
+
* - Source code keyboard event listeners (optional)
|
|
9
|
+
* - Roving tabindex patterns
|
|
10
|
+
*/
|
|
11
|
+
export declare function analyzeKeyboard(declaration: CemDeclaration, modulePath: string, options: AnalysisOptions): Promise<AnalyzerResult>;
|
|
12
|
+
//# sourceMappingURL=keyboard-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAwBnG;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA8EzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AnalyzerResult, AnalysisOptions, CemDeclaration } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze label support from CEM declaration.
|
|
4
|
+
*
|
|
5
|
+
* Checks for:
|
|
6
|
+
* - label property
|
|
7
|
+
* - ariaLabel / aria-label property
|
|
8
|
+
* - ariaLabelledBy / aria-labelledby references
|
|
9
|
+
* - Label slot definition
|
|
10
|
+
* - Label-related documentation warnings
|
|
11
|
+
*/
|
|
12
|
+
export declare function analyzeLabel(declaration: CemDeclaration, _modulePath: string, _options: AnalysisOptions): Promise<AnalyzerResult>;
|
|
13
|
+
//# sourceMappingURL=label-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/tools/cem-a11y-analyzer/analyzers/label-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAEnG;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,cAAc,EAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CA2FzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnalyzerResult, AnalysisOptions, CemDeclaration } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze motion safety from CEM declaration and optional source.
|
|
4
|
+
*
|
|
5
|
+
* Checks for:
|
|
6
|
+
* - prefers-reduced-motion media query in source/styles
|
|
7
|
+
* - Animation-related CSS custom properties
|
|
8
|
+
* - Documentation of motion behavior
|
|
9
|
+
* - matchMedia usage for motion preferences
|
|
10
|
+
*/
|
|
11
|
+
export declare function analyzeMotion(declaration: CemDeclaration, modulePath: string, options: AnalysisOptions): Promise<AnalyzerResult>;
|
|
12
|
+
//# sourceMappingURL=motion-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion-analyzer.d.ts","sourceRoot":"","sources":["../../../../src/tools/cem-a11y-analyzer/analyzers/motion-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAiBnG;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA8EzB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { A11yReport, AnalysisOptions, CustomElementsManifest } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyze a Custom Elements Manifest for accessibility patterns.
|
|
4
|
+
*
|
|
5
|
+
* @param manifest - Parsed CEM JSON object
|
|
6
|
+
* @param options - Optional configuration for source analysis and dimension filtering
|
|
7
|
+
* @returns Structured accessibility report with scores and recommendations
|
|
8
|
+
* @throws Error if the manifest is malformed (missing modules array)
|
|
9
|
+
*/
|
|
10
|
+
export declare function analyzeCEM(manifest: CustomElementsManifest, options?: AnalysisOptions): Promise<A11yReport>;
|
|
11
|
+
export type { A11yDimension, A11yReport, AnalysisOptions, AnalyzerResult, ComponentA11yProfile, CustomElementsManifest, DimensionScore, Grade, Recommendation, ReportSummary, Severity, } from './types.js';
|
|
12
|
+
export { scoreToGrade } from './scorer.js';
|
|
13
|
+
export { generateReport } from './reporter.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/cem-a11y-analyzer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EAGf,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAYpB;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,sBAAsB,EAChC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,UAAU,CAAC,CA+BrB;AAgBD,YAAY,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,KAAK,EACL,cAAc,EACd,aAAa,EACb,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../src/tools/cem-a11y-analyzer/reporter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EAIrB,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAiB7E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { A11yDimension, AnalyzerResult, ComponentA11yProfile, Grade } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Compute a letter grade from a numeric score (0–100).
|
|
4
|
+
*/
|
|
5
|
+
export declare function scoreToGrade(score: number): Grade;
|
|
6
|
+
/**
|
|
7
|
+
* Build a ComponentA11yProfile from a set of analyzer results.
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildComponentProfile(tagName: string, className: string, results: AnalyzerResult[]): ComponentA11yProfile;
|
|
10
|
+
/**
|
|
11
|
+
* Compute an aggregate library score from component profiles.
|
|
12
|
+
*/
|
|
13
|
+
export declare function computeLibraryScore(components: ComponentA11yProfile[]): number;
|
|
14
|
+
/**
|
|
15
|
+
* Compute average scores per dimension across all components.
|
|
16
|
+
*/
|
|
17
|
+
export declare function computeDimensionAverages(components: ComponentA11yProfile[]): Record<A11yDimension, number>;
|
|
18
|
+
/**
|
|
19
|
+
* Compute grade distribution across components.
|
|
20
|
+
*/
|
|
21
|
+
export declare function computeGradeDistribution(components: ComponentA11yProfile[]): Record<Grade, number>;
|
|
22
|
+
//# sourceMappingURL=scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../../src/tools/cem-a11y-analyzer/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,EAEpB,KAAK,EAEN,MAAM,YAAY,CAAC;AAWpB;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAMjD;AASD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EAAE,GACxB,oBAAoB,CAuCtB;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAI9E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,oBAAoB,EAAE,GACjC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAa/B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,oBAAoB,EAAE,GACjC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAcvB"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CEM Accessibility Analyzer — Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* All types for the accessibility analysis system that scores
|
|
5
|
+
* Custom Elements Manifest data against WCAG 2.1 AA criteria.
|
|
6
|
+
*/
|
|
7
|
+
/** A CEM member (field or method) on a custom element declaration. */
|
|
8
|
+
export interface CemMember {
|
|
9
|
+
kind: 'field' | 'method';
|
|
10
|
+
name: string;
|
|
11
|
+
type?: {
|
|
12
|
+
text: string;
|
|
13
|
+
};
|
|
14
|
+
default?: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
privacy?: 'private' | 'protected' | 'public';
|
|
17
|
+
static?: boolean;
|
|
18
|
+
attribute?: string;
|
|
19
|
+
reflects?: boolean;
|
|
20
|
+
parameters?: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
type?: {
|
|
23
|
+
text: string;
|
|
24
|
+
};
|
|
25
|
+
}>;
|
|
26
|
+
return?: {
|
|
27
|
+
type?: {
|
|
28
|
+
text: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** A CSS custom property on a custom element declaration. */
|
|
33
|
+
export interface CemCssProperty {
|
|
34
|
+
name: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
default?: string;
|
|
37
|
+
}
|
|
38
|
+
/** A CSS part on a custom element declaration. */
|
|
39
|
+
export interface CemCssPart {
|
|
40
|
+
name: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
}
|
|
43
|
+
/** A slot on a custom element declaration. */
|
|
44
|
+
export interface CemSlot {
|
|
45
|
+
name: string;
|
|
46
|
+
description?: string;
|
|
47
|
+
}
|
|
48
|
+
/** An event on a custom element declaration. */
|
|
49
|
+
export interface CemEvent {
|
|
50
|
+
name: string;
|
|
51
|
+
type?: {
|
|
52
|
+
text: string;
|
|
53
|
+
};
|
|
54
|
+
description?: string;
|
|
55
|
+
}
|
|
56
|
+
/** A custom element declaration within a CEM module. */
|
|
57
|
+
export interface CemDeclaration {
|
|
58
|
+
kind: 'class' | 'mixin' | 'variable';
|
|
59
|
+
name: string;
|
|
60
|
+
description?: string;
|
|
61
|
+
tagName?: string;
|
|
62
|
+
customElement?: boolean;
|
|
63
|
+
members?: CemMember[];
|
|
64
|
+
attributes?: Array<{
|
|
65
|
+
name: string;
|
|
66
|
+
type?: {
|
|
67
|
+
text: string;
|
|
68
|
+
};
|
|
69
|
+
description?: string;
|
|
70
|
+
default?: string;
|
|
71
|
+
fieldName?: string;
|
|
72
|
+
}>;
|
|
73
|
+
events?: CemEvent[];
|
|
74
|
+
slots?: CemSlot[];
|
|
75
|
+
cssParts?: CemCssPart[];
|
|
76
|
+
cssProperties?: CemCssProperty[];
|
|
77
|
+
superclass?: {
|
|
78
|
+
name: string;
|
|
79
|
+
package?: string;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** A module in the CEM manifest. */
|
|
83
|
+
export interface CemModule {
|
|
84
|
+
kind: 'javascript-module';
|
|
85
|
+
path: string;
|
|
86
|
+
declarations?: CemDeclaration[];
|
|
87
|
+
exports?: Array<{
|
|
88
|
+
kind: string;
|
|
89
|
+
name: string;
|
|
90
|
+
declaration: {
|
|
91
|
+
name: string;
|
|
92
|
+
module?: string;
|
|
93
|
+
};
|
|
94
|
+
}>;
|
|
95
|
+
}
|
|
96
|
+
/** Root Custom Elements Manifest structure. */
|
|
97
|
+
export interface CustomElementsManifest {
|
|
98
|
+
schemaVersion: string;
|
|
99
|
+
readme?: string;
|
|
100
|
+
modules: CemModule[];
|
|
101
|
+
}
|
|
102
|
+
/** The six accessibility dimensions scored by the analyzer. */
|
|
103
|
+
export type A11yDimension = 'ariaSupport' | 'formAssociation' | 'keyboardAccess' | 'focusManagement' | 'labelSupport' | 'motionSafety';
|
|
104
|
+
/** Score for a single accessibility dimension (0–100). */
|
|
105
|
+
export interface DimensionScore {
|
|
106
|
+
dimension: A11yDimension;
|
|
107
|
+
score: number;
|
|
108
|
+
maxScore: number;
|
|
109
|
+
findings: string[];
|
|
110
|
+
recommendations: string[];
|
|
111
|
+
}
|
|
112
|
+
/** Accessibility profile for a single component. */
|
|
113
|
+
export interface ComponentA11yProfile {
|
|
114
|
+
tagName: string;
|
|
115
|
+
className: string;
|
|
116
|
+
overallScore: number;
|
|
117
|
+
grade: Grade;
|
|
118
|
+
dimensions: Record<A11yDimension, DimensionScore>;
|
|
119
|
+
recommendations: Recommendation[];
|
|
120
|
+
}
|
|
121
|
+
/** Letter grade derived from a numeric score. */
|
|
122
|
+
export type Grade = 'A' | 'B' | 'C' | 'D' | 'F';
|
|
123
|
+
/** Severity level for recommendations. */
|
|
124
|
+
export type Severity = 'critical' | 'major' | 'minor' | 'info';
|
|
125
|
+
/** An actionable recommendation for improving accessibility. */
|
|
126
|
+
export interface Recommendation {
|
|
127
|
+
component: string;
|
|
128
|
+
dimension: A11yDimension;
|
|
129
|
+
severity: Severity;
|
|
130
|
+
message: string;
|
|
131
|
+
suggestion?: string;
|
|
132
|
+
}
|
|
133
|
+
/** Aggregate report for an entire library. */
|
|
134
|
+
export interface A11yReport {
|
|
135
|
+
libraryScore: number;
|
|
136
|
+
libraryGrade: Grade;
|
|
137
|
+
componentCount: number;
|
|
138
|
+
components: ComponentA11yProfile[];
|
|
139
|
+
recommendations: Recommendation[];
|
|
140
|
+
summary: ReportSummary;
|
|
141
|
+
}
|
|
142
|
+
/** High-level summary statistics. */
|
|
143
|
+
export interface ReportSummary {
|
|
144
|
+
totalComponents: number;
|
|
145
|
+
averageScore: number;
|
|
146
|
+
gradeDistribution: Record<Grade, number>;
|
|
147
|
+
dimensionAverages: Record<A11yDimension, number>;
|
|
148
|
+
topIssues: Recommendation[];
|
|
149
|
+
}
|
|
150
|
+
/** Options for configuring the analysis run. */
|
|
151
|
+
export interface AnalysisOptions {
|
|
152
|
+
/** Source file root for optional deeper analysis. */
|
|
153
|
+
sourceRoot?: string;
|
|
154
|
+
/** Function to read source file contents (for testability). */
|
|
155
|
+
readFile?: (path: string) => Promise<string | null>;
|
|
156
|
+
/** Dimensions to skip during analysis. */
|
|
157
|
+
skipDimensions?: A11yDimension[];
|
|
158
|
+
/** Minimum score threshold to flag a recommendation. */
|
|
159
|
+
recommendationThreshold?: number;
|
|
160
|
+
}
|
|
161
|
+
/** Result from a single analyzer dimension. */
|
|
162
|
+
export interface AnalyzerResult {
|
|
163
|
+
dimension: A11yDimension;
|
|
164
|
+
score: number;
|
|
165
|
+
maxScore: number;
|
|
166
|
+
findings: string[];
|
|
167
|
+
recommendations: Recommendation[];
|
|
168
|
+
}
|
|
169
|
+
/** Signature for an analyzer function. */
|
|
170
|
+
export type AnalyzerFn = (declaration: CemDeclaration, modulePath: string, options: AnalysisOptions) => Promise<AnalyzerResult>;
|
|
171
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/cem-a11y-analyzer/types.ts"],"names":[],"mappings":"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"}
|