@helixui/library 2.1.2-next.53 → 2.1.2-next.57
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/custom-elements.json +847 -1038
- package/dist/base/helix-element.d.ts +20 -8
- package/dist/base/helix-element.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion-item.d.ts +7 -2
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion.d.ts +3 -2
- package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
- package/dist/components/hx-accordion/index.d.ts +1 -0
- package/dist/components/hx-accordion/index.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 +2 -11
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
- package/dist/components/hx-action-bar/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.d.ts +7 -2
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
- package/dist/components/hx-alert/index.d.ts +1 -0
- package/dist/components/hx-alert/index.d.ts.map +1 -1
- package/dist/components/hx-alert/index.js +1 -1
- package/dist/components/hx-avatar/hx-avatar.d.ts +3 -2
- 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 +2 -9
- package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
- package/dist/components/hx-badge/index.d.ts +1 -1
- package/dist/components/hx-badge/index.d.ts.map +1 -1
- package/dist/components/hx-badge/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.d.ts +3 -2
- package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
- package/dist/components/hx-banner/index.js +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +2 -2
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +9 -12
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +22 -0
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/index.d.ts +1 -0
- package/dist/components/hx-button/index.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 +3 -2
- package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
- package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -1
- package/dist/components/hx-button-group/index.js +1 -1
- package/dist/components/hx-card/hx-card.d.ts +3 -2
- package/dist/components/hx-card/hx-card.d.ts.map +1 -1
- package/dist/components/hx-card/index.js +1 -1
- package/dist/components/hx-carousel/hx-carousel-item.d.ts +2 -2
- package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -1
- package/dist/components/hx-carousel/hx-carousel-item.styles.d.ts.map +1 -1
- package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
- 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 +44 -5
- package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
- package/dist/components/hx-checkbox/index.d.ts +1 -0
- package/dist/components/hx-checkbox/index.d.ts.map +1 -1
- package/dist/components/hx-checkbox/index.js +1 -1
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +9 -13
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/index.d.ts +1 -0
- package/dist/components/hx-checkbox-group/index.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/index.js +1 -1
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +0 -7
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/index.js +1 -1
- package/dist/components/hx-code-snippet/index.js +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +8 -11
- 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.d.ts +1 -0
- package/dist/components/hx-color-picker/index.d.ts.map +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts +32 -15
- 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.d.ts +1 -0
- package/dist/components/hx-combobox/index.d.ts.map +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-container/hx-container.d.ts +2 -4
- package/dist/components/hx-container/hx-container.d.ts.map +1 -1
- package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -1
- package/dist/components/hx-container/index.d.ts +0 -1
- package/dist/components/hx-container/index.d.ts.map +1 -1
- package/dist/components/hx-container/index.js +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts +2 -2
- 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 +3 -2
- package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
- package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
- package/dist/components/hx-counter/index.js +1 -1
- package/dist/components/hx-data-table/hx-data-table.d.ts +26 -2
- package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
- package/dist/components/hx-data-table/index.d.ts +1 -0
- package/dist/components/hx-data-table/index.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 +30 -19
- package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.d.ts +1 -0
- package/dist/components/hx-date-picker/index.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts +37 -5
- 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 +3 -4
- package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
- package/dist/components/hx-divider/index.d.ts +0 -1
- package/dist/components/hx-divider/index.d.ts.map +1 -1
- package/dist/components/hx-divider/index.js +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +32 -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 +3 -2
- package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
- package/dist/components/hx-dropdown/index.js +1 -1
- package/dist/components/hx-field/hx-field.d.ts +4 -3
- 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 +2 -2
- package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
- package/dist/components/hx-field-label/index.js +1 -1
- package/dist/components/hx-file-upload/hx-file-upload.d.ts +31 -5
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.d.ts +1 -0
- package/dist/components/hx-file-upload/index.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.js +1 -1
- package/dist/components/hx-form/hx-form.d.ts +2 -2
- package/dist/components/hx-form/hx-form.d.ts.map +1 -1
- package/dist/components/hx-form/hx-form.styles.d.ts +8 -0
- package/dist/components/hx-form/hx-form.styles.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 +2 -2
- package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
- package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -1
- package/dist/components/hx-format-date/index.js +1 -1
- package/dist/components/hx-grid/hx-grid.d.ts +4 -3
- package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
- package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -1
- package/dist/components/hx-grid/index.js +1 -1
- package/dist/components/hx-help-text/hx-help-text.d.ts +2 -4
- package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
- package/dist/components/hx-help-text/index.js +1 -1
- package/dist/components/hx-icon/hx-icon.d.ts +17 -2
- package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
- package/dist/components/hx-icon/index.js +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-image/hx-image.d.ts +2 -2
- package/dist/components/hx-image/hx-image.d.ts.map +1 -1
- package/dist/components/hx-image/index.js +1 -1
- package/dist/components/hx-link/hx-link.d.ts +2 -2
- package/dist/components/hx-link/hx-link.d.ts.map +1 -1
- package/dist/components/hx-link/index.js +1 -1
- package/dist/components/hx-list/hx-list-item.d.ts +3 -2
- package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
- package/dist/components/hx-list/hx-list.d.ts +3 -2
- package/dist/components/hx-list/hx-list.d.ts.map +1 -1
- package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -1
- package/dist/components/hx-list/index.js +1 -1
- package/dist/components/hx-menu/hx-menu-divider.d.ts +2 -2
- package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu-item.d.ts +2 -2
- package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu.d.ts +2 -2
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-meter/hx-meter.d.ts +3 -2
- 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 +2 -4
- package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
- package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-nav/index.d.ts +1 -1
- package/dist/components/hx-nav/index.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 +9 -13
- package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
- package/dist/components/hx-number-input/index.d.ts +1 -0
- package/dist/components/hx-number-input/index.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 +2 -2
- 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 +10 -2
- package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
- package/dist/components/hx-pagination/index.d.ts +1 -0
- package/dist/components/hx-pagination/index.d.ts.map +1 -1
- package/dist/components/hx-pagination/index.js +1 -1
- package/dist/components/hx-patient-banner/hx-patient-banner.d.ts +47 -5
- package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
- package/dist/components/hx-patient-banner/index.js +1 -1
- package/dist/components/hx-phi-field/hx-phi-field.d.ts +85 -5
- package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
- package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
- package/dist/components/hx-phi-field/index.js +1 -1
- package/dist/components/hx-popover/hx-popover.d.ts +3 -2
- 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 +7 -2
- package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
- package/dist/components/hx-popup/index.js +1 -1
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +3 -2
- 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 +3 -2
- package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
- package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -1
- package/dist/components/hx-progress-ring/index.js +1 -1
- package/dist/components/hx-prose/hx-prose.d.ts +3 -2
- package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
- package/dist/components/hx-prose/hx-prose.styles.d.ts +8 -0
- package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -1
- package/dist/components/hx-prose/index.js +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.d.ts +9 -29
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.d.ts +19 -4
- package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.d.ts +1 -0
- package/dist/components/hx-radio-group/index.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-rating/hx-rating.d.ts +4 -10
- package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
- package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
- package/dist/components/hx-rating/index.d.ts +1 -0
- package/dist/components/hx-rating/index.d.ts.map +1 -1
- package/dist/components/hx-rating/index.js +1 -1
- package/dist/components/hx-select/hx-select.d.ts +26 -25
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-select/index.d.ts +1 -0
- package/dist/components/hx-select/index.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 +2 -2
- package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +3 -2
- package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/index.js +1 -1
- package/dist/components/hx-skeleton/hx-skeleton.d.ts +3 -2
- package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
- package/dist/components/hx-skeleton/index.js +1 -1
- package/dist/components/hx-slider/hx-slider.d.ts +7 -11
- package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
- package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -1
- package/dist/components/hx-slider/index.d.ts +1 -0
- package/dist/components/hx-slider/index.d.ts.map +1 -1
- package/dist/components/hx-slider/index.js +1 -1
- package/dist/components/hx-spinner/hx-spinner.d.ts +2 -2
- package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
- package/dist/components/hx-spinner/index.js +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
- 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 -2
- package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
- package/dist/components/hx-split-panel/index.js +1 -1
- package/dist/components/hx-stack/hx-stack.d.ts +2 -2
- package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
- package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -1
- package/dist/components/hx-stack/index.js +1 -1
- package/dist/components/hx-stat/hx-stat.d.ts +3 -2
- package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
- package/dist/components/hx-stat/index.js +1 -1
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +3 -2
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
- package/dist/components/hx-status-indicator/index.js +1 -1
- package/dist/components/hx-steps/hx-step.d.ts +3 -2
- package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
- package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
- package/dist/components/hx-steps/hx-steps.d.ts +11 -4
- package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
- package/dist/components/hx-steps/hx-steps.styles.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 +3 -3
- 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-style-scope/hx-style-scope.d.ts +3 -2
- package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -1
- package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -1
- package/dist/components/hx-style-scope/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.d.ts +20 -21
- package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
- package/dist/components/hx-switch/index.d.ts +2 -1
- package/dist/components/hx-switch/index.d.ts.map +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-table/hx-table.d.ts +3 -2
- package/dist/components/hx-table/hx-table.d.ts.map +1 -1
- package/dist/components/hx-table/hx-tbody.d.ts +2 -2
- package/dist/components/hx-table/hx-tbody.d.ts.map +1 -1
- package/dist/components/hx-table/hx-td.d.ts +2 -2
- package/dist/components/hx-table/hx-td.d.ts.map +1 -1
- package/dist/components/hx-table/hx-tfoot.d.ts +2 -2
- package/dist/components/hx-table/hx-tfoot.d.ts.map +1 -1
- package/dist/components/hx-table/hx-th.d.ts +2 -2
- package/dist/components/hx-table/hx-th.d.ts.map +1 -1
- package/dist/components/hx-table/hx-thead.d.ts +2 -2
- package/dist/components/hx-table/hx-thead.d.ts.map +1 -1
- package/dist/components/hx-table/hx-tr.d.ts +2 -2
- package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
- package/dist/components/hx-table/index.js +1 -1
- package/dist/components/hx-tabs/hx-tab-panel.d.ts +2 -2
- package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.d.ts +2 -2
- package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +8 -2
- package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.d.ts +1 -0
- package/dist/components/hx-tabs/index.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.js +1 -1
- package/dist/components/hx-tag/hx-tag.d.ts +2 -4
- package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
- package/dist/components/hx-tag/index.d.ts +0 -2
- package/dist/components/hx-tag/index.d.ts.map +1 -1
- package/dist/components/hx-tag/index.js +1 -1
- package/dist/components/hx-text/hx-text.d.ts +2 -2
- package/dist/components/hx-text/hx-text.d.ts.map +1 -1
- package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -1
- package/dist/components/hx-text/index.js +1 -1
- package/dist/components/hx-text-input/hx-text-input.d.ts +29 -13
- package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.d.ts +1 -0
- package/dist/components/hx-text-input/index.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts +32 -24
- 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.d.ts +1 -0
- package/dist/components/hx-textarea/index.d.ts.map +1 -1
- package/dist/components/hx-textarea/index.js +1 -1
- package/dist/components/hx-theme/hx-theme.d.ts +3 -11
- package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
- package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -1
- package/dist/components/hx-theme/index.d.ts +0 -2
- package/dist/components/hx-theme/index.d.ts.map +1 -1
- package/dist/components/hx-theme/index.js +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.d.ts +8 -15
- package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-time-picker/index.d.ts +1 -0
- package/dist/components/hx-time-picker/index.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 +2 -2
- package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.d.ts +3 -2
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
- package/dist/components/hx-toast/index.js +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.d.ts +1 -0
- package/dist/components/hx-toggle-button/index.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 -2
- 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 +2 -2
- 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 +2 -4
- package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.d.ts +2 -4
- package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.d.ts +0 -4
- package/dist/components/hx-tree-view/index.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 +2 -2
- package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -1
- package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -1
- package/dist/components/hx-visually-hidden/index.js +1 -1
- package/dist/css/helix-all.css +2232 -680
- package/dist/css/helix-core.css +107 -49
- package/dist/css/helix-data.css +17 -7
- package/dist/css/helix-feedback.css +82 -61
- package/dist/css/helix-forms.css +1456 -131
- package/dist/css/helix-layout.css +31 -1
- package/dist/css/helix-media.css +16 -16
- package/dist/css/helix-navigation.css +99 -48
- package/dist/css/helix-overlay.css +12 -12
- package/dist/css/helix-tokens.css +30 -11
- package/dist/css/helix-utility.css +53 -10
- package/dist/css/hx-accordion.css +1 -1
- package/dist/css/hx-action-bar.css +17 -3
- package/dist/css/hx-alert.css +18 -18
- package/dist/css/hx-avatar.css +1 -1
- package/dist/css/hx-badge.css +15 -15
- package/dist/css/hx-banner.css +18 -18
- package/dist/css/hx-breadcrumb.css +27 -0
- package/dist/css/hx-button-group.css +13 -0
- package/dist/css/hx-button.css +2 -2
- package/dist/css/hx-card.css +6 -6
- package/dist/css/hx-carousel.css +16 -16
- package/dist/css/hx-checkbox-group.css +4 -4
- package/dist/css/hx-checkbox.css +8 -8
- package/dist/css/hx-clinical-status.css +23 -23
- package/dist/css/hx-code-snippet.css +3 -3
- package/dist/css/hx-color-picker.css +276 -1
- package/dist/css/hx-combobox.css +391 -1
- package/dist/css/hx-container.css +10 -0
- package/dist/css/hx-copy-button.css +3 -3
- package/dist/css/hx-counter.css +9 -2
- package/dist/css/hx-data-table.css +1 -1
- package/dist/css/hx-date-picker.css +437 -1
- package/dist/css/hx-dialog.css +2 -2
- package/dist/css/hx-drawer.css +1 -1
- package/dist/css/hx-dropdown.css +1 -1
- package/dist/css/hx-field-label.css +2 -2
- package/dist/css/hx-field.css +3 -3
- package/dist/css/hx-file-upload.css +12 -12
- package/dist/css/hx-format-date.css +11 -0
- package/dist/css/hx-grid.css +10 -0
- package/dist/css/hx-help-text.css +5 -5
- package/dist/css/hx-image.css +3 -3
- package/dist/css/hx-link.css +5 -5
- package/dist/css/hx-list.css +10 -0
- package/dist/css/hx-menu.css +1 -2
- package/dist/css/hx-meter.css +9 -9
- package/dist/css/hx-nav.css +11 -12
- package/dist/css/hx-overflow-menu.css +10 -10
- package/dist/css/hx-pagination.css +13 -13
- package/dist/css/hx-patient-banner.css +10 -10
- package/dist/css/hx-phi-field.css +5 -2
- package/dist/css/hx-popover.css +4 -4
- package/dist/css/hx-progress-bar.css +1 -1
- package/dist/css/hx-progress-ring.css +23 -1
- package/dist/css/hx-radio-group.css +3 -3
- package/dist/css/hx-rating.css +6 -4
- package/dist/css/hx-select.css +7 -7
- package/dist/css/hx-side-nav.css +5 -0
- package/dist/css/hx-slider.css +16 -11
- package/dist/css/hx-split-button.css +2 -2
- package/dist/css/hx-stack.css +10 -0
- package/dist/css/hx-stat.css +5 -5
- package/dist/css/hx-status-indicator.css +2 -2
- package/dist/css/hx-steps.css +12 -0
- package/dist/css/hx-structured-list.css +2 -2
- package/dist/css/hx-style-scope.css +11 -0
- package/dist/css/hx-switch.css +4 -4
- package/dist/css/hx-table.css +1 -1
- package/dist/css/hx-tabs.css +3 -3
- package/dist/css/hx-tag.css +12 -12
- package/dist/css/hx-text-input.css +9 -9
- package/dist/css/hx-text.css +38 -5
- package/dist/css/hx-textarea.css +9 -15
- package/dist/css/hx-theme.css +11 -0
- package/dist/css/hx-time-picker.css +224 -1
- package/dist/css/hx-toast.css +6 -7
- package/dist/css/hx-toggle-button.css +3 -3
- package/dist/css/hx-tooltip.css +4 -4
- package/dist/css/hx-top-nav.css +8 -8
- package/dist/css/hx-tree-view.css +9 -0
- package/dist/css/hx-visually-hidden.css +12 -0
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +39 -7
- package/dist/form-test-utils.d.ts +45 -0
- package/dist/form-test-utils.d.ts.map +1 -0
- package/dist/index.d.ts +28 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +189 -177
- package/dist/index.js.map +1 -1
- package/dist/mixins/FormMixin.d.ts +24 -5
- package/dist/mixins/FormMixin.d.ts.map +1 -1
- package/dist/mixins/aria-delegation.d.ts +0 -2
- package/dist/mixins/aria-delegation.d.ts.map +1 -1
- package/dist/mixins/index.d.ts +3 -1
- package/dist/mixins/index.d.ts.map +1 -1
- package/dist/shared/{FormMixin-Bjvw20G5.js → FormMixin-B8PXk5RQ.js} +31 -14
- package/dist/shared/FormMixin-B8PXk5RQ.js.map +1 -0
- package/dist/shared/aria-delegation-Doq6RRUy.js.map +1 -1
- package/dist/shared/{helix-element-BJh1Ffvi.js → helix-element-BNEYeiys.js} +30 -24
- package/dist/shared/helix-element-BNEYeiys.js.map +1 -0
- package/dist/shared/{hx-accordion-SlwR2C6S.js → hx-accordion-Wt52OOZD.js} +49 -49
- package/dist/shared/hx-accordion-Wt52OOZD.js.map +1 -0
- package/dist/shared/{hx-action-bar-CNLYufVd.js → hx-action-bar-BKMADbHj.js} +89 -85
- package/dist/shared/hx-action-bar-BKMADbHj.js.map +1 -0
- package/dist/shared/{hx-alert-DdlSyJGk.js → hx-alert-D7n94HwI.js} +26 -26
- package/dist/shared/hx-alert-D7n94HwI.js.map +1 -0
- package/dist/shared/{hx-avatar-an-WsuLl.js → hx-avatar-iLYzu8MJ.js} +10 -10
- package/dist/shared/hx-avatar-iLYzu8MJ.js.map +1 -0
- package/dist/shared/{hx-badge-B_PzGlUo.js → hx-badge-CVCmMPyW.js} +27 -27
- package/dist/shared/hx-badge-CVCmMPyW.js.map +1 -0
- package/dist/shared/{hx-banner-D8AxkCfc.js → hx-banner-C_He7Tr4.js} +51 -51
- package/dist/shared/hx-banner-C_He7Tr4.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-BCUIvpYX.js → hx-breadcrumb-item-CldCwD1d.js} +105 -82
- package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +1 -0
- package/dist/shared/{hx-button-BzqsDHmZ.js → hx-button-Ddl-T6T-.js} +110 -84
- package/dist/shared/hx-button-Ddl-T6T-.js.map +1 -0
- package/dist/shared/{hx-button-group-a5Pb_9fU.js → hx-button-group-BJOGWoMa.js} +30 -17
- package/dist/shared/hx-button-group-BJOGWoMa.js.map +1 -0
- package/dist/shared/{hx-card-DYlaxQy0.js → hx-card-ycveujjL.js} +13 -13
- package/dist/shared/hx-card-ycveujjL.js.map +1 -0
- package/dist/shared/{hx-carousel-item-KQfCekKF.js → hx-carousel-item-D_dCv61-.js} +37 -28
- package/dist/shared/hx-carousel-item-D_dCv61-.js.map +1 -0
- package/dist/shared/{hx-checkbox-DyDbR1B9.js → hx-checkbox-DkkoWoye.js} +77 -60
- package/dist/shared/hx-checkbox-DkkoWoye.js.map +1 -0
- package/dist/shared/{hx-checkbox-group-C8TaFqy0.js → hx-checkbox-group-C3poJ-Zw.js} +55 -64
- package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +1 -0
- package/dist/shared/{hx-clinical-status-dDyk5oj1.js → hx-clinical-status-BS5lcddT.js} +52 -53
- package/dist/shared/hx-clinical-status-BS5lcddT.js.map +1 -0
- package/dist/shared/{hx-code-snippet-DasrRF9k.js → hx-code-snippet-B7wUKzyb.js} +12 -13
- package/dist/shared/hx-code-snippet-B7wUKzyb.js.map +1 -0
- package/dist/shared/{hx-color-picker-zv6wtok4.js → hx-color-picker-DBaKTVLr.js} +318 -57
- package/dist/shared/hx-color-picker-DBaKTVLr.js.map +1 -0
- package/dist/shared/hx-combobox-BmgYT7Ar.js +929 -0
- package/dist/shared/hx-combobox-BmgYT7Ar.js.map +1 -0
- package/dist/shared/{hx-container-BwWbMPTH.js → hx-container-DVI7sxfX.js} +25 -15
- package/dist/shared/hx-container-DVI7sxfX.js.map +1 -0
- package/dist/shared/{hx-copy-button-DikpbhWY.js → hx-copy-button-8deNUdwP.js} +20 -20
- package/dist/shared/hx-copy-button-8deNUdwP.js.map +1 -0
- package/dist/shared/{hx-counter-_m4cq45V.js → hx-counter-CKfl_g8K.js} +36 -29
- package/dist/shared/hx-counter-CKfl_g8K.js.map +1 -0
- package/dist/shared/{hx-data-table-609C-e9w.js → hx-data-table-B6h0RPn0.js} +107 -101
- package/dist/shared/hx-data-table-B6h0RPn0.js.map +1 -0
- package/dist/shared/hx-date-picker-Dq2Nb68_.js +1077 -0
- package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +1 -0
- package/dist/shared/{hx-dialog-D_DeqcNS.js → hx-dialog-CvIlY0Tc.js} +66 -54
- package/dist/shared/hx-dialog-CvIlY0Tc.js.map +1 -0
- package/dist/shared/{hx-divider-lfOMElo2.js → hx-divider-DwpOrzMW.js} +7 -7
- package/dist/shared/hx-divider-DwpOrzMW.js.map +1 -0
- package/dist/shared/{hx-drawer-NleCbKuN.js → hx-drawer-Cx2ZJhBe.js} +14 -14
- package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +1 -0
- package/dist/shared/{hx-dropdown-CA9WYdhm.js → hx-dropdown-BjDrPUq5.js} +30 -31
- package/dist/shared/hx-dropdown-BjDrPUq5.js.map +1 -0
- package/dist/shared/{hx-field-Duiib9Bj.js → hx-field-Dp3qQMut.js} +15 -15
- package/dist/shared/hx-field-Dp3qQMut.js.map +1 -0
- package/dist/shared/{hx-field-label-Dud-psvE.js → hx-field-label-BC8QViXv.js} +8 -8
- package/dist/shared/hx-field-label-BC8QViXv.js.map +1 -0
- package/dist/shared/{hx-file-upload-CmCCAvej.js → hx-file-upload-B6Yl1u0i.js} +101 -84
- package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +1 -0
- package/dist/shared/{hx-form-BM6PHsw3.js → hx-form-ButQFt9A.js} +12 -11
- package/dist/shared/hx-form-ButQFt9A.js.map +1 -0
- package/dist/shared/{hx-format-date-B7L9odbA.js → hx-format-date-CKnlQOmV.js} +20 -9
- package/dist/shared/hx-format-date-CKnlQOmV.js.map +1 -0
- package/dist/shared/{hx-grid-BIAR5h9m.js → hx-grid-CXZf3jeK.js} +28 -18
- package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -0
- package/dist/shared/{hx-help-text-DARi-Pfp.js → hx-help-text-D7eytSim.js} +12 -12
- package/dist/shared/hx-help-text-D7eytSim.js.map +1 -0
- package/dist/shared/{hx-icon-jWcGmn66.js → hx-icon-CcyDPDYY.js} +96 -62
- package/dist/shared/hx-icon-CcyDPDYY.js.map +1 -0
- package/dist/shared/{hx-icon-button-BcZtVVtH.js → hx-icon-button-BHneqPCU.js} +2 -3
- package/dist/shared/{hx-icon-button-BcZtVVtH.js.map → hx-icon-button-BHneqPCU.js.map} +1 -1
- package/dist/shared/{hx-image-DOjPp-K5.js → hx-image-2gt14zZd.js} +9 -9
- package/dist/shared/hx-image-2gt14zZd.js.map +1 -0
- package/dist/shared/{hx-link-DCBct0f4.js → hx-link-BESrWK8M.js} +17 -17
- package/dist/shared/hx-link-BESrWK8M.js.map +1 -0
- package/dist/shared/{hx-list-Dnei26t4.js → hx-list-_9qVv02L.js} +32 -22
- package/dist/shared/hx-list-_9qVv02L.js.map +1 -0
- package/dist/shared/{hx-menu-divider-DVWER7iT.js → hx-menu-divider-Ck-9Os1t.js} +19 -19
- package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +1 -0
- package/dist/shared/{hx-meter-ChZdWNF2.js → hx-meter-TbROk-dw.js} +18 -18
- package/dist/shared/hx-meter-TbROk-dw.js.map +1 -0
- package/dist/shared/{hx-nav-CHX1JOWB.js → hx-nav-BcYDmjf7.js} +59 -60
- package/dist/shared/hx-nav-BcYDmjf7.js.map +1 -0
- package/dist/shared/{hx-nav-item-CRAESq9s.js → hx-nav-item-pqPasRUm.js} +33 -23
- package/dist/shared/hx-nav-item-pqPasRUm.js.map +1 -0
- package/dist/shared/{hx-number-input-Cm682AVP.js → hx-number-input-mOIZ3-46.js} +57 -66
- package/dist/shared/hx-number-input-mOIZ3-46.js.map +1 -0
- package/dist/shared/{hx-overflow-menu-BDl6QfUD.js → hx-overflow-menu-Dprb9lnT.js} +46 -47
- package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +1 -0
- package/dist/shared/{hx-pagination-BNtx-LG6.js → hx-pagination-AguTQjYC.js} +35 -35
- package/dist/shared/hx-pagination-AguTQjYC.js.map +1 -0
- package/dist/shared/{hx-patient-banner-B4IjHeTx.js → hx-patient-banner-uE6gqLpT.js} +16 -16
- package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +1 -0
- package/dist/shared/{hx-phi-field-DD1qcBSO.js → hx-phi-field-BC_XowhC.js} +138 -56
- package/dist/shared/hx-phi-field-BC_XowhC.js.map +1 -0
- package/dist/shared/{hx-popover-ZGRFgBbx.js → hx-popover-B2_203ct.js} +25 -25
- package/dist/shared/hx-popover-B2_203ct.js.map +1 -0
- package/dist/shared/{hx-popup-Cc4qz89i.js → hx-popup-DZXpsJ1R.js} +77 -64
- package/dist/shared/hx-popup-DZXpsJ1R.js.map +1 -0
- package/dist/shared/{hx-progress-bar-BY1uE6bN.js → hx-progress-bar-KjEkEJLy.js} +19 -19
- package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +1 -0
- package/dist/shared/{hx-progress-ring-Cs0WgWDJ.js → hx-progress-ring-3zMwvrwD.js} +53 -31
- package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +1 -0
- package/dist/shared/{hx-prose-Ml_L2zje.js → hx-prose-BCtK7YL6.js} +48 -15
- package/dist/shared/{hx-prose-Ml_L2zje.js.map → hx-prose-BCtK7YL6.js.map} +1 -1
- package/dist/shared/{hx-radio-YEEsbUPN.js → hx-radio-BBC5qZgE.js} +99 -105
- package/dist/shared/hx-radio-BBC5qZgE.js.map +1 -0
- package/dist/shared/{hx-rating-DjUJTT0M.js → hx-rating-C3E3ENJb.js} +42 -56
- package/dist/shared/hx-rating-C3E3ENJb.js.map +1 -0
- package/dist/shared/{hx-select-DZ7wfcJx.js → hx-select-CixTo7jp.js} +105 -116
- package/dist/shared/hx-select-CixTo7jp.js.map +1 -0
- package/dist/shared/{hx-skeleton-aqa-gr1S.js → hx-skeleton-LxkI0pxr.js} +15 -15
- package/dist/shared/hx-skeleton-LxkI0pxr.js.map +1 -0
- package/dist/shared/{hx-slider-DAilFrR_.js → hx-slider-DFHuzF3N.js} +74 -89
- package/dist/shared/hx-slider-DFHuzF3N.js.map +1 -0
- package/dist/shared/{hx-spinner-Dw3cRY-9.js → hx-spinner-BKjuCdZB.js} +9 -9
- package/dist/shared/hx-spinner-BKjuCdZB.js.map +1 -0
- package/dist/shared/{hx-split-button-Dk-zMDDo.js → hx-split-button-CGcJMmCG.js} +14 -14
- package/dist/shared/hx-split-button-CGcJMmCG.js.map +1 -0
- package/dist/shared/{hx-split-panel-Kdp4BiLz.js → hx-split-panel-C-1R10Mc.js} +57 -47
- package/dist/shared/hx-split-panel-C-1R10Mc.js.map +1 -0
- package/dist/shared/{hx-stack-B76_1O6g.js → hx-stack-DGfcOfWJ.js} +21 -11
- package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -0
- package/dist/shared/{hx-stat-DKlyBL_K.js → hx-stat-BTpykQAt.js} +14 -14
- package/dist/shared/hx-stat-BTpykQAt.js.map +1 -0
- package/dist/shared/{hx-status-indicator-DWSM0Ctm.js → hx-status-indicator-X2QEWNFt.js} +13 -13
- package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +1 -0
- package/dist/shared/{hx-step-CuoOvcI8.js → hx-step-CRNQlmSo.js} +47 -30
- package/dist/shared/hx-step-CRNQlmSo.js.map +1 -0
- package/dist/shared/{hx-structured-list-CQCD7bCT.js → hx-structured-list-CqNbaEXg.js} +12 -12
- package/dist/shared/hx-structured-list-CqNbaEXg.js.map +1 -0
- package/dist/shared/hx-style-scope-TDnR8H4O.js +251 -0
- package/dist/shared/hx-style-scope-TDnR8H4O.js.map +1 -0
- package/dist/shared/{hx-switch-BdxKN9WM.js → hx-switch-DqOD9JR7.js} +56 -72
- package/dist/shared/hx-switch-DqOD9JR7.js.map +1 -0
- package/dist/shared/{hx-tab-panel-CwClQoWP.js → hx-tab-panel-BIzKfW5i.js} +29 -28
- package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +1 -0
- package/dist/shared/{hx-tag-BL5qJJCN.js → hx-tag-CgnrNnte.js} +23 -23
- package/dist/shared/hx-tag-CgnrNnte.js.map +1 -0
- package/dist/shared/{hx-td-CzSvVKdp.js → hx-td-Bra35cH4.js} +37 -37
- package/dist/shared/hx-td-Bra35cH4.js.map +1 -0
- package/dist/shared/{hx-text-DcWBqZwx.js → hx-text-DMC2CPlL.js} +74 -41
- package/dist/shared/hx-text-DMC2CPlL.js.map +1 -0
- package/dist/shared/{hx-text-input-BfMrvN9N.js → hx-text-input--q0GH78x.js} +19 -20
- package/dist/shared/hx-text-input--q0GH78x.js.map +1 -0
- package/dist/shared/{hx-textarea-C-i_Vam6.js → hx-textarea-CK621vSL.js} +28 -54
- package/dist/shared/hx-textarea-CK621vSL.js.map +1 -0
- package/dist/shared/{hx-theme-pc1V7dyL.js → hx-theme-DfEy-SJA.js} +72 -64
- package/dist/shared/hx-theme-DfEy-SJA.js.map +1 -0
- package/dist/shared/{hx-time-picker-MZyLQPW9.js → hx-time-picker-tPUfgElQ.js} +264 -35
- package/dist/shared/hx-time-picker-tPUfgElQ.js.map +1 -0
- package/dist/shared/{hx-toggle-button-ClyNYNVI.js → hx-toggle-button-L-uBJr-a.js} +9 -10
- package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +1 -0
- package/dist/shared/{hx-tooltip-ByWT987R.js → hx-tooltip-B_zfKvwc.js} +22 -23
- package/dist/shared/hx-tooltip-B_zfKvwc.js.map +1 -0
- package/dist/shared/{hx-top-nav-k7hY78kt.js → hx-top-nav-CATbRvIv.js} +24 -22
- package/dist/shared/hx-top-nav-CATbRvIv.js.map +1 -0
- package/dist/shared/{hx-tree-item-D0ZphA45.js → hx-tree-item-A45WCiBu.js} +29 -9
- package/dist/shared/hx-tree-item-A45WCiBu.js.map +1 -0
- package/dist/shared/hx-visually-hidden-0bZKOWgT.js +66 -0
- package/dist/shared/hx-visually-hidden-0bZKOWgT.js.map +1 -0
- package/dist/shared/id-counter-DuX8vsui.js +11 -0
- package/dist/shared/{id-counter-PTgF-zcG.js.map → id-counter-DuX8vsui.js.map} +1 -1
- package/dist/shared/{toast-factory-Cwd0PihS.js → toast-factory-BPPnG3mM.js} +23 -24
- package/dist/shared/toast-factory-BPPnG3mM.js.map +1 -0
- package/dist/utilities/injectLightStyles.d.ts.map +1 -1
- package/dist/utilities/sanitizeCss.d.ts +43 -0
- package/dist/utilities/sanitizeCss.d.ts.map +1 -0
- package/package.json +29 -13
- package/dist/shared/FormMixin-Bjvw20G5.js.map +0 -1
- package/dist/shared/document-token-adoption-DuYNKd4k.js +0 -21
- package/dist/shared/document-token-adoption-DuYNKd4k.js.map +0 -1
- package/dist/shared/helix-element-BJh1Ffvi.js.map +0 -1
- package/dist/shared/hx-accordion-SlwR2C6S.js.map +0 -1
- package/dist/shared/hx-action-bar-CNLYufVd.js.map +0 -1
- package/dist/shared/hx-alert-DdlSyJGk.js.map +0 -1
- package/dist/shared/hx-avatar-an-WsuLl.js.map +0 -1
- package/dist/shared/hx-badge-B_PzGlUo.js.map +0 -1
- package/dist/shared/hx-banner-D8AxkCfc.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-BCUIvpYX.js.map +0 -1
- package/dist/shared/hx-button-BzqsDHmZ.js.map +0 -1
- package/dist/shared/hx-button-group-a5Pb_9fU.js.map +0 -1
- package/dist/shared/hx-card-DYlaxQy0.js.map +0 -1
- package/dist/shared/hx-carousel-item-KQfCekKF.js.map +0 -1
- package/dist/shared/hx-checkbox-DyDbR1B9.js.map +0 -1
- package/dist/shared/hx-checkbox-group-C8TaFqy0.js.map +0 -1
- package/dist/shared/hx-clinical-status-dDyk5oj1.js.map +0 -1
- package/dist/shared/hx-code-snippet-DasrRF9k.js.map +0 -1
- package/dist/shared/hx-color-picker-zv6wtok4.js.map +0 -1
- package/dist/shared/hx-combobox-C-DVLFpu.js +0 -535
- package/dist/shared/hx-combobox-C-DVLFpu.js.map +0 -1
- package/dist/shared/hx-container-BwWbMPTH.js.map +0 -1
- package/dist/shared/hx-copy-button-DikpbhWY.js.map +0 -1
- package/dist/shared/hx-counter-_m4cq45V.js.map +0 -1
- package/dist/shared/hx-data-table-609C-e9w.js.map +0 -1
- package/dist/shared/hx-date-picker-Bh8410Sf.js +0 -618
- package/dist/shared/hx-date-picker-Bh8410Sf.js.map +0 -1
- package/dist/shared/hx-dialog-D_DeqcNS.js.map +0 -1
- package/dist/shared/hx-divider-lfOMElo2.js.map +0 -1
- package/dist/shared/hx-drawer-NleCbKuN.js.map +0 -1
- package/dist/shared/hx-dropdown-CA9WYdhm.js.map +0 -1
- package/dist/shared/hx-field-Duiib9Bj.js.map +0 -1
- package/dist/shared/hx-field-label-Dud-psvE.js.map +0 -1
- package/dist/shared/hx-file-upload-CmCCAvej.js.map +0 -1
- package/dist/shared/hx-form-BM6PHsw3.js.map +0 -1
- package/dist/shared/hx-format-date-B7L9odbA.js.map +0 -1
- package/dist/shared/hx-grid-BIAR5h9m.js.map +0 -1
- package/dist/shared/hx-help-text-DARi-Pfp.js.map +0 -1
- package/dist/shared/hx-icon-jWcGmn66.js.map +0 -1
- package/dist/shared/hx-image-DOjPp-K5.js.map +0 -1
- package/dist/shared/hx-link-DCBct0f4.js.map +0 -1
- package/dist/shared/hx-list-Dnei26t4.js.map +0 -1
- package/dist/shared/hx-menu-divider-DVWER7iT.js.map +0 -1
- package/dist/shared/hx-meter-ChZdWNF2.js.map +0 -1
- package/dist/shared/hx-nav-CHX1JOWB.js.map +0 -1
- package/dist/shared/hx-nav-item-CRAESq9s.js.map +0 -1
- package/dist/shared/hx-number-input-Cm682AVP.js.map +0 -1
- package/dist/shared/hx-overflow-menu-BDl6QfUD.js.map +0 -1
- package/dist/shared/hx-pagination-BNtx-LG6.js.map +0 -1
- package/dist/shared/hx-patient-banner-B4IjHeTx.js.map +0 -1
- package/dist/shared/hx-phi-field-DD1qcBSO.js.map +0 -1
- package/dist/shared/hx-popover-ZGRFgBbx.js.map +0 -1
- package/dist/shared/hx-popup-Cc4qz89i.js.map +0 -1
- package/dist/shared/hx-progress-bar-BY1uE6bN.js.map +0 -1
- package/dist/shared/hx-progress-ring-Cs0WgWDJ.js.map +0 -1
- package/dist/shared/hx-radio-YEEsbUPN.js.map +0 -1
- package/dist/shared/hx-rating-DjUJTT0M.js.map +0 -1
- package/dist/shared/hx-select-DZ7wfcJx.js.map +0 -1
- package/dist/shared/hx-skeleton-aqa-gr1S.js.map +0 -1
- package/dist/shared/hx-slider-DAilFrR_.js.map +0 -1
- package/dist/shared/hx-spinner-Dw3cRY-9.js.map +0 -1
- package/dist/shared/hx-split-button-Dk-zMDDo.js.map +0 -1
- package/dist/shared/hx-split-panel-Kdp4BiLz.js.map +0 -1
- package/dist/shared/hx-stack-B76_1O6g.js.map +0 -1
- package/dist/shared/hx-stat-DKlyBL_K.js.map +0 -1
- package/dist/shared/hx-status-indicator-DWSM0Ctm.js.map +0 -1
- package/dist/shared/hx-step-CuoOvcI8.js.map +0 -1
- package/dist/shared/hx-structured-list-CQCD7bCT.js.map +0 -1
- package/dist/shared/hx-style-scope-CsQ2Phf_.js +0 -126
- package/dist/shared/hx-style-scope-CsQ2Phf_.js.map +0 -1
- package/dist/shared/hx-switch-BdxKN9WM.js.map +0 -1
- package/dist/shared/hx-tab-panel-CwClQoWP.js.map +0 -1
- package/dist/shared/hx-tag-BL5qJJCN.js.map +0 -1
- package/dist/shared/hx-td-CzSvVKdp.js.map +0 -1
- package/dist/shared/hx-text-DcWBqZwx.js.map +0 -1
- package/dist/shared/hx-text-input-BfMrvN9N.js.map +0 -1
- package/dist/shared/hx-textarea-C-i_Vam6.js.map +0 -1
- package/dist/shared/hx-theme-pc1V7dyL.js.map +0 -1
- package/dist/shared/hx-time-picker-MZyLQPW9.js.map +0 -1
- package/dist/shared/hx-toggle-button-ClyNYNVI.js.map +0 -1
- package/dist/shared/hx-tooltip-ByWT987R.js.map +0 -1
- package/dist/shared/hx-top-nav-k7hY78kt.js.map +0 -1
- package/dist/shared/hx-tree-item-D0ZphA45.js.map +0 -1
- package/dist/shared/hx-visually-hidden-vKX8QjeX.js +0 -54
- package/dist/shared/hx-visually-hidden-vKX8QjeX.js.map +0 -1
- package/dist/shared/id-counter-PTgF-zcG.js +0 -15
- package/dist/shared/toast-factory-Cwd0PihS.js.map +0 -1
- package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts +0 -12
- package/dist/tools/cem-a11y-analyzer/analyzers/aria-analyzer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts +0 -13
- package/dist/tools/cem-a11y-analyzer/analyzers/focus-analyzer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts +0 -13
- package/dist/tools/cem-a11y-analyzer/analyzers/form-analyzer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts +0 -12
- package/dist/tools/cem-a11y-analyzer/analyzers/keyboard-analyzer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts +0 -13
- package/dist/tools/cem-a11y-analyzer/analyzers/label-analyzer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts +0 -12
- package/dist/tools/cem-a11y-analyzer/analyzers/motion-analyzer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/index.d.ts +0 -14
- package/dist/tools/cem-a11y-analyzer/index.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/reporter.d.ts +0 -6
- package/dist/tools/cem-a11y-analyzer/reporter.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/scorer.d.ts +0 -22
- package/dist/tools/cem-a11y-analyzer/scorer.d.ts.map +0 -1
- package/dist/tools/cem-a11y-analyzer/types.d.ts +0 -171
- package/dist/tools/cem-a11y-analyzer/types.d.ts.map +0 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { css as b, html as u, nothing as
|
|
2
|
-
import "
|
|
3
|
-
import { query as g, property as s, customElement as c } from "lit/decorators.js";
|
|
1
|
+
import { css as b, html as u, nothing as g } from "lit";
|
|
2
|
+
import { query as d, property as s, customElement as c } from "lit/decorators.js";
|
|
4
3
|
import { classMap as p } from "lit/directives/class-map.js";
|
|
5
|
-
import { H as x } from "./helix-element-
|
|
4
|
+
import { H as x } from "./helix-element-BNEYeiys.js";
|
|
6
5
|
const f = b`
|
|
7
6
|
:host {
|
|
8
7
|
display: inline-block;
|
|
@@ -134,7 +133,7 @@ const f = b`
|
|
|
134
133
|
* to give clear visual feedback without introducing a new color.
|
|
135
134
|
*/
|
|
136
135
|
.button--primary.button--pressed {
|
|
137
|
-
--hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-700, #
|
|
136
|
+
--hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-700, #1e40af));
|
|
138
137
|
--hx-toggle-button-color: var(
|
|
139
138
|
--hx-toggle-button-pressed-color,
|
|
140
139
|
var(--hx-color-neutral-0, #ffffff)
|
|
@@ -160,7 +159,7 @@ const f = b`
|
|
|
160
159
|
--hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-100, #dbeafe));
|
|
161
160
|
--hx-toggle-button-color: var(
|
|
162
161
|
--hx-toggle-button-pressed-color,
|
|
163
|
-
var(--hx-color-primary-700, #
|
|
162
|
+
var(--hx-color-primary-700, #1e40af)
|
|
164
163
|
);
|
|
165
164
|
--hx-toggle-button-border-color: var(--hx-color-primary-400, #60a5fa);
|
|
166
165
|
box-shadow: inset 0 0 0 1px var(--hx-color-primary-400, #60a5fa);
|
|
@@ -171,7 +170,7 @@ const f = b`
|
|
|
171
170
|
--hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-100, #dbeafe));
|
|
172
171
|
--hx-toggle-button-color: var(
|
|
173
172
|
--hx-toggle-button-pressed-color,
|
|
174
|
-
var(--hx-color-primary-700, #
|
|
173
|
+
var(--hx-color-primary-700, #1e40af)
|
|
175
174
|
);
|
|
176
175
|
--hx-toggle-button-border-color: transparent;
|
|
177
176
|
}
|
|
@@ -357,7 +356,7 @@ let e = class extends x {
|
|
|
357
356
|
?disabled=${this.disabled}
|
|
358
357
|
type="button"
|
|
359
358
|
aria-pressed=${this.pressed ? "true" : "false"}
|
|
360
|
-
aria-label=${this.label ??
|
|
359
|
+
aria-label=${this.label ?? g}
|
|
361
360
|
@click=${this._handleClick}
|
|
362
361
|
>
|
|
363
362
|
${this._renderInner()}
|
|
@@ -368,7 +367,7 @@ let e = class extends x {
|
|
|
368
367
|
e.styles = [f];
|
|
369
368
|
e.formAssociated = !0;
|
|
370
369
|
r([
|
|
371
|
-
|
|
370
|
+
d("slot:not([name])")
|
|
372
371
|
], e.prototype, "_defaultSlot", 2);
|
|
373
372
|
r([
|
|
374
373
|
s({ type: Boolean, reflect: !0 })
|
|
@@ -400,4 +399,4 @@ e = r([
|
|
|
400
399
|
export {
|
|
401
400
|
e as H
|
|
402
401
|
};
|
|
403
|
-
//# sourceMappingURL=hx-toggle-button-
|
|
402
|
+
//# sourceMappingURL=hx-toggle-button-L-uBJr-a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-toggle-button-L-uBJr-a.js","sources":["../../src/components/hx-toggle-button/hx-toggle-button.styles.ts","../../src/components/hx-toggle-button/hx-toggle-button.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixToggleButtonStyles = css`\n :host {\n display: inline-block;\n }\n\n :host([disabled]) {\n pointer-events: none;\n opacity: var(--hx-opacity-disabled, 0.5);\n }\n\n /* ─── Base Button ─── */\n\n .button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid var(--hx-toggle-button-border-color, transparent);\n border-radius: var(--hx-toggle-button-border-radius, var(--hx-border-radius-md, 0.375rem));\n background-color: var(--hx-toggle-button-bg, var(--hx-color-primary-500, #2563eb));\n color: var(--hx-toggle-button-color, var(--hx-color-neutral-0, #ffffff));\n font-family: var(--hx-toggle-button-font-family, var(--hx-font-family-sans, sans-serif));\n font-weight: var(--hx-toggle-button-font-weight, var(--hx-font-weight-semibold, 600));\n line-height: var(--hx-line-height-tight, 1.25);\n cursor: pointer;\n transition:\n background-color var(--hx-transition-fast, 150ms ease),\n color var(--hx-transition-fast, 150ms ease),\n border-color var(--hx-transition-fast, 150ms ease),\n box-shadow var(--hx-transition-fast, 150ms ease);\n text-decoration: none;\n white-space: nowrap;\n user-select: none;\n -webkit-user-select: none;\n }\n\n .button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-toggle-button-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #60a5fa))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .button:hover {\n filter: brightness(var(--hx-filter-brightness-hover, 0.9));\n }\n\n .button:active {\n filter: brightness(var(--hx-filter-brightness-active, 0.8));\n }\n\n /* ─── Size Variants ─── */\n\n /* WCAG 2.5.5 (healthcare mandate): minimum 44px touch target for sm variant.\n min-height uses --hx-touch-target-min to guarantee the interactive area\n meets the threshold even though the visual size token is smaller. */\n .button--sm {\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-3, 0.75rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n min-height: var(--hx-touch-target-min, 2.75rem);\n }\n\n .button--md {\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);\n font-size: var(--hx-font-size-md, 1rem);\n min-height: var(--hx-size-10, 2.5rem);\n }\n\n .button--lg {\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-6, 1.5rem);\n font-size: var(--hx-font-size-lg, 1.125rem);\n min-height: var(--hx-size-12, 3rem);\n }\n\n /* ─── Style Variants ─── */\n\n .button--primary {\n --hx-toggle-button-bg: var(--hx-color-primary-500, #2563eb);\n --hx-toggle-button-color: var(--hx-color-neutral-0, #ffffff);\n --hx-toggle-button-border-color: transparent;\n }\n\n .button--secondary {\n --hx-toggle-button-bg: transparent;\n --hx-toggle-button-color: var(--hx-color-primary-500, #2563eb);\n --hx-toggle-button-border-color: var(--hx-color-primary-500, #2563eb);\n }\n\n .button--secondary:hover {\n --hx-toggle-button-bg: var(--hx-color-primary-50, #eff6ff);\n }\n\n .button--tertiary {\n --hx-toggle-button-bg: var(--hx-color-neutral-100, #f1f5f9);\n --hx-toggle-button-color: var(--hx-color-neutral-900, #0f172a);\n --hx-toggle-button-border-color: transparent;\n }\n\n .button--tertiary:hover {\n --hx-toggle-button-bg: var(--hx-color-neutral-200, #e2e8f0);\n }\n\n .button--ghost {\n --hx-toggle-button-bg: transparent;\n --hx-toggle-button-color: var(--hx-color-primary-500, #2563eb);\n --hx-toggle-button-border-color: transparent;\n }\n\n .button--ghost:hover {\n --hx-toggle-button-bg: var(--hx-color-neutral-100, #f1f5f9);\n }\n\n .button--outline {\n --hx-toggle-button-bg: transparent;\n --hx-toggle-button-color: var(--hx-color-neutral-900, #0f172a);\n --hx-toggle-button-border-color: var(--hx-color-neutral-300, #cbd5e1);\n }\n\n .button--outline:hover {\n --hx-toggle-button-bg: var(--hx-color-neutral-50, #f8fafc);\n }\n\n /* ─── Pressed State ─── */\n\n /*\n * Primary: already uses solid primary bg; pressed deepens to primary-700\n * to give clear visual feedback without introducing a new color.\n */\n .button--primary.button--pressed {\n --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-700, #1e40af));\n --hx-toggle-button-color: var(\n --hx-toggle-button-pressed-color,\n var(--hx-color-neutral-0, #ffffff)\n );\n --hx-toggle-button-border-color: transparent;\n }\n\n /*\n * Secondary: unpressed is outlined/transparent; pressed fills with primary bg\n * so the state change is immediately legible.\n */\n .button--secondary.button--pressed {\n --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-500, #2563eb));\n --hx-toggle-button-color: var(\n --hx-toggle-button-pressed-color,\n var(--hx-color-neutral-0, #ffffff)\n );\n --hx-toggle-button-border-color: var(--hx-color-primary-500, #2563eb);\n }\n\n /* Tertiary pressed: use primary-100 bg + primary-700 text + border for WCAG 3:1 non-text contrast. */\n .button--tertiary.button--pressed {\n --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-100, #dbeafe));\n --hx-toggle-button-color: var(\n --hx-toggle-button-pressed-color,\n var(--hx-color-primary-700, #1e40af)\n );\n --hx-toggle-button-border-color: var(--hx-color-primary-400, #60a5fa);\n box-shadow: inset 0 0 0 1px var(--hx-color-primary-400, #60a5fa);\n }\n\n /* Ghost pressed: subtle neutral fill, matching hover behavior as a baseline. */\n .button--ghost.button--pressed {\n --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-primary-100, #dbeafe));\n --hx-toggle-button-color: var(\n --hx-toggle-button-pressed-color,\n var(--hx-color-primary-700, #1e40af)\n );\n --hx-toggle-button-border-color: transparent;\n }\n\n /* Outline pressed: fills with a neutral tint, darkens the border, and adds an inset shadow for WCAG 3:1 non-text contrast. */\n .button--outline.button--pressed {\n --hx-toggle-button-bg: var(--hx-toggle-button-pressed-bg, var(--hx-color-neutral-100, #f1f5f9));\n --hx-toggle-button-color: var(\n --hx-toggle-button-pressed-color,\n var(--hx-color-neutral-900, #0f172a)\n );\n --hx-toggle-button-border-color: var(--hx-color-neutral-500, #64748b);\n box-shadow: inset 0 0 0 1px var(--hx-color-neutral-500, #64748b);\n }\n\n /* ─── Disabled ─── */\n\n .button[disabled] {\n cursor: not-allowed;\n }\n\n /* ─── Prefix / Suffix / Label ─── */\n\n .button__prefix,\n .button__suffix {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n .button__label {\n flex: 1 1 auto;\n }\n\n /* ─── Reduced Motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .button {\n transition: none;\n }\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .button {\n forced-color-adjust: none;\n background-color: ButtonFace;\n color: ButtonText;\n border: 2px solid ButtonText;\n }\n\n .button:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: 2px;\n }\n\n .button--pressed {\n background-color: Highlight;\n color: HighlightText;\n border-color: Highlight;\n box-shadow: none;\n }\n\n .button[disabled] {\n background-color: ButtonFace;\n color: GrayText;\n border-color: GrayText;\n opacity: 1;\n }\n\n :host([disabled]) {\n opacity: 1;\n }\n }\n`;\n","import { html, nothing, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixToggleButtonStyles } from './hx-toggle-button.styles.js';\n\n/** Detail for the hx-toggle event dispatched by hx-toggle-button. */\nexport interface HxToggleDetail {\n pressed: boolean;\n}\n\n/**\n * A two-state toggle button that communicates a pressed/unpressed status to\n * assistive technology via `aria-pressed`. Supports multiple visual variants\n * and sizes, prefix/suffix slots, full ElementInternals form association, and\n * a distinct pressed visual state for every variant.\n *\n * @summary Two-state toggle button with pressed/unpressed ARIA semantics.\n *\n * @tag hx-toggle-button\n *\n * @slot - Default slot for the button label text or content.\n * @slot prefix - Icon or content rendered before the label.\n * @slot suffix - Icon or content rendered after the label.\n *\n * @fires {CustomEvent<{pressed: boolean}>} hx-toggle - Dispatched when the\n * toggle state changes. Not dispatched when the button is disabled.\n *\n * @csspart button - The native `<button>` element.\n * @csspart label - The label text wrapper span.\n * @csspart prefix - The prefix slot container span.\n * @csspart suffix - The suffix slot container span.\n *\n * @cssprop [--hx-toggle-button-bg=var(--hx-color-primary-500)] - Button background color.\n * @cssprop [--hx-toggle-button-color=var(--hx-color-neutral-0)] - Button text color.\n * @cssprop [--hx-toggle-button-border-color=transparent] - Button border color.\n * @cssprop [--hx-toggle-button-border-radius=var(--hx-border-radius-md)] - Button border radius.\n * @cssprop [--hx-toggle-button-font-family=var(--hx-font-family-sans)] - Button font family.\n * @cssprop [--hx-toggle-button-font-weight=var(--hx-font-weight-semibold)] - Button font weight.\n * @cssprop [--hx-toggle-button-focus-ring-color=var(--hx-focus-ring-color)] - Focus ring color.\n * @cssprop [--hx-toggle-button-pressed-bg=var(--hx-color-primary-500)] - Background when pressed (variant-specific fallback applies).\n * @cssprop [--hx-toggle-button-pressed-color=var(--hx-color-neutral-0)] - Text color when pressed (variant-specific fallback applies).\n */\n@customElement('hx-toggle-button')\nexport class HelixToggleButton extends HelixElement {\n static override styles = [helixToggleButtonStyles];\n\n // ─── Form Association ───\n\n /** @internal */\n static override formAssociated = true;\n\n /** @internal */\n @query('slot:not([name])') private _defaultSlot!: HTMLSlotElement | null;\n\n // ─── Public Properties ───\n\n /**\n * Whether the toggle button is in the pressed state.\n * Reflected as an attribute so CSS selectors like `:host([pressed])` work.\n * @attr pressed\n */\n @property({ type: Boolean, reflect: true })\n pressed = false;\n\n /**\n * Visual style variant of the button.\n * @attr variant\n */\n @property({ type: String, reflect: true })\n variant: 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'outline' = 'secondary';\n\n /**\n * Size of the button.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Whether the button is disabled. Prevents all interaction and form actions.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Form field name submitted via ElementInternals when the button is pressed.\n * @attr name\n */\n @property({ type: String })\n name: string | undefined = undefined;\n\n /**\n * Form field value submitted via ElementInternals when the button is pressed.\n * @attr value\n */\n @property({ type: String })\n value: string | undefined = undefined;\n\n /**\n * Accessible label forwarded to the inner `<button>` as `aria-label`.\n * Required for icon-only toggle buttons where no visible text is present.\n * @attr label\n */\n @property({ type: String })\n label: string | undefined = undefined;\n\n /**\n * When true, the button must be in the pressed state for the form to be submitted.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n // ─── Form API ───\n\n /** Returns the ValidityState object. */\n override get validity(): ValidityState {\n return this._internals.validity;\n }\n\n /** Returns the current validation message. */\n override get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n /** Checks whether the button satisfies its constraints. */\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n /** Reports validity and shows the browser's constraint validation UI. */\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n // ─── Lifecycle ───\n\n override firstUpdated(changedProperties: PropertyValues<this>): void {\n super.firstUpdated(changedProperties);\n\n if (!this.label) {\n const slot = this._defaultSlot;\n const hasSlotText = slot\n ? slot.assignedNodes({ flatten: true }).some((n) => n.textContent?.trim())\n : false;\n if (!hasSlotText) {\n console.warn(\n '[hx-toggle-button] No accessible label found. Set the `label` attribute or provide slot text content for WCAG 4.1.2 compliance.',\n );\n }\n }\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n\n if (\n changedProperties.has('pressed') ||\n changedProperties.has('value') ||\n changedProperties.has('required')\n ) {\n this._syncFormValue();\n }\n }\n\n protected override _onFormReset(): void {\n this.pressed = false;\n }\n\n protected override _onFormStateRestore(\n state: string | File | FormData | null,\n _mode: 'restore' | 'autocomplete',\n ): void {\n this.pressed = typeof state === 'string' && state === 'pressed';\n }\n\n protected override _onFormDisabled(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n // ─── Private Helpers ───\n\n /** @internal */\n private _syncFormValue(): void {\n if (this.pressed && this.value !== undefined) {\n // Pass explicit state 'pressed' so formStateRestoreCallback can reliably detect it.\n this._internals.setFormValue(this.value, 'pressed');\n } else {\n this._internals.setFormValue(null);\n }\n this._updateValidity();\n }\n\n /** @internal */\n private _updateValidity(): void {\n if (this.required && !this.pressed) {\n this._internals.setValidity(\n { valueMissing: true },\n 'Please activate this toggle button.',\n this.shadowRoot?.querySelector<HTMLElement>('[part=\"button\"]') ?? undefined,\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleClick(e: MouseEvent): void {\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n this.pressed = !this.pressed;\n this._syncFormValue();\n\n /**\n * Dispatched when the toggle state changes.\n * @event hx-toggle\n */\n this.dispatchEvent(\n new CustomEvent<{ pressed: boolean }>('hx-toggle', {\n bubbles: true,\n composed: true,\n detail: { pressed: this.pressed },\n }),\n );\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderInner() {\n return html`\n <span part=\"prefix\" class=\"button__prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\" class=\"button__label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" class=\"button__suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n const classes = {\n button: true,\n [`button--${this.variant}`]: true,\n [`button--${this.size}`]: true,\n 'button--pressed': this.pressed,\n };\n\n return html`\n <button\n part=\"button\"\n class=${classMap(classes)}\n ?disabled=${this.disabled}\n type=\"button\"\n aria-pressed=${this.pressed ? 'true' : 'false'}\n aria-label=${this.label ?? nothing}\n @click=${this._handleClick}\n >\n ${this._renderInner()}\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-toggle-button': HelixToggleButton;\n }\n}\n"],"names":["helixToggleButtonStyles","css","HelixToggleButton","HelixElement","changedProperties","slot","_a","state","_mode","disabled","e","html","classes","classMap","nothing","__decorateClass","query","property","customElement"],"mappings":";;;;AAEO,MAAMA,IAA0BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const E = u`
|
|
1
|
+
import { css as g, html as y } from "lit";
|
|
2
|
+
import { property as d, state as b, query as p, customElement as w } from "lit/decorators.js";
|
|
3
|
+
import { H as T } from "./helix-element-BNEYeiys.js";
|
|
4
|
+
import { c as D } from "./id-counter-DuX8vsui.js";
|
|
5
|
+
const E = g`
|
|
7
6
|
:host {
|
|
8
7
|
display: inline-block;
|
|
9
8
|
}
|
|
@@ -17,9 +16,9 @@ const E = u`
|
|
|
17
16
|
z-index: var(--hx-tooltip-z-index, var(--hx-z-index-tooltip, 1600));
|
|
18
17
|
max-width: var(--hx-tooltip-max-width, 280px);
|
|
19
18
|
padding: var(--hx-tooltip-padding, var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem));
|
|
20
|
-
background: var(--hx-tooltip-bg, var(--hx-color-neutral-900, #
|
|
21
|
-
color: var(--hx-tooltip-color, var(--hx-color-neutral-50, #
|
|
22
|
-
font-family: var(--hx-font-family-sans, sans-serif);
|
|
19
|
+
background: var(--hx-tooltip-bg, var(--hx-color-neutral-900, #0f172a));
|
|
20
|
+
color: var(--hx-tooltip-color, var(--hx-color-neutral-50, #f8fafc));
|
|
21
|
+
font-family: var(--hx-tooltip-font-family, var(--hx-font-family-sans, sans-serif));
|
|
23
22
|
font-size: var(--hx-tooltip-font-size, var(--hx-font-size-xs, 0.75rem));
|
|
24
23
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
25
24
|
border-radius: var(--hx-tooltip-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
@@ -44,7 +43,7 @@ const E = u`
|
|
|
44
43
|
position: absolute;
|
|
45
44
|
width: var(--hx-tooltip-arrow-size, 8px);
|
|
46
45
|
height: var(--hx-tooltip-arrow-size, 8px);
|
|
47
|
-
background: var(--hx-tooltip-bg, var(--hx-color-neutral-900, #
|
|
46
|
+
background: var(--hx-tooltip-bg, var(--hx-color-neutral-900, #0f172a));
|
|
48
47
|
transform: rotate(45deg);
|
|
49
48
|
pointer-events: none;
|
|
50
49
|
}
|
|
@@ -73,7 +72,7 @@ var $ = Object.defineProperty, C = Object.getOwnPropertyDescriptor, r = (t, e, i
|
|
|
73
72
|
return a && s && $(e, i, s), s;
|
|
74
73
|
};
|
|
75
74
|
const S = D("hx-tooltip");
|
|
76
|
-
let o = class extends
|
|
75
|
+
let o = class extends T {
|
|
77
76
|
constructor() {
|
|
78
77
|
super(...arguments), this.placement = "top", this.showDelay = 300, this.hideDelay = 100, this._visible = !1, this._showTimer = null, this._hideTimer = null, this._tooltipId = S(), this._lightDomDescription = null, this._handleKeydown = (t) => {
|
|
79
78
|
t instanceof KeyboardEvent && t.key === "Escape" && this._visible && (this._clearTimers(), this._hide());
|
|
@@ -96,7 +95,7 @@ let o = class extends _ {
|
|
|
96
95
|
const t = this._defaultSlot;
|
|
97
96
|
if (!t) return;
|
|
98
97
|
const e = t.assignedElements()[0], i = this._contentSlot, a = (i == null ? void 0 : i.assignedElements().map((s) => s.textContent).join(" ").trim()) ?? "";
|
|
99
|
-
!this._lightDomDescription && typeof document < "u" && (this._lightDomDescription = document.createElement("span"), this._lightDomDescription.id = this._tooltipId, this._lightDomDescription.style.cssText = "position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",
|
|
98
|
+
!this._lightDomDescription && typeof document < "u" && (this._lightDomDescription = document.createElement("span"), this._lightDomDescription.id = this._tooltipId, this._lightDomDescription.style.cssText = "position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0", document.body.appendChild(this._lightDomDescription)), this._lightDomDescription && (this._lightDomDescription.textContent = a), e && e.setAttribute("aria-describedby", this._tooltipId);
|
|
100
99
|
}
|
|
101
100
|
// ─── Show/Hide ───
|
|
102
101
|
/** @internal */
|
|
@@ -128,27 +127,27 @@ let o = class extends _ {
|
|
|
128
127
|
async _updatePosition() {
|
|
129
128
|
const t = this._triggerWrapper, e = this._tooltipEl, i = this._arrowEl;
|
|
130
129
|
if (!t || !e || !i) return;
|
|
131
|
-
const {
|
|
130
|
+
const { computePosition: a, flip: s, shift: n, offset: h, arrow: c } = await import("@floating-ui/dom"), { x: m, y: u, placement: _, middlewareData: v } = await a(t, e, {
|
|
132
131
|
placement: this.placement,
|
|
133
132
|
strategy: "fixed",
|
|
134
|
-
middleware: [
|
|
133
|
+
middleware: [h(8), s(), n({ padding: 8 }), c({ element: i })]
|
|
135
134
|
});
|
|
136
135
|
Object.assign(e.style, {
|
|
137
|
-
left: `${
|
|
138
|
-
top: `${
|
|
136
|
+
left: `${m}px`,
|
|
137
|
+
top: `${u}px`
|
|
139
138
|
});
|
|
140
|
-
const l =
|
|
139
|
+
const l = v.arrow, f = _.split("-")[0] ?? "top", x = {
|
|
141
140
|
top: "bottom",
|
|
142
141
|
right: "left",
|
|
143
142
|
bottom: "top",
|
|
144
143
|
left: "right"
|
|
145
|
-
}[
|
|
144
|
+
}[f] ?? "bottom";
|
|
146
145
|
Object.assign(i.style, {
|
|
147
146
|
left: (l == null ? void 0 : l.x) != null ? `${l.x}px` : "",
|
|
148
147
|
top: (l == null ? void 0 : l.y) != null ? `${l.y}px` : "",
|
|
149
148
|
right: "",
|
|
150
149
|
bottom: "",
|
|
151
|
-
[
|
|
150
|
+
[x]: `${-(i.offsetWidth / 2)}px`
|
|
152
151
|
});
|
|
153
152
|
}
|
|
154
153
|
/**
|
|
@@ -164,7 +163,7 @@ let o = class extends _ {
|
|
|
164
163
|
}
|
|
165
164
|
// ─── Render ───
|
|
166
165
|
render() {
|
|
167
|
-
return
|
|
166
|
+
return y`
|
|
168
167
|
<div
|
|
169
168
|
class="trigger-wrapper"
|
|
170
169
|
@mouseenter=${this._scheduleShow}
|
|
@@ -200,7 +199,7 @@ r([
|
|
|
200
199
|
d({ type: Number, attribute: "hide-delay" })
|
|
201
200
|
], o.prototype, "hideDelay", 2);
|
|
202
201
|
r([
|
|
203
|
-
|
|
202
|
+
b()
|
|
204
203
|
], o.prototype, "_visible", 2);
|
|
205
204
|
r([
|
|
206
205
|
p("slot:not([name])")
|
|
@@ -218,9 +217,9 @@ r([
|
|
|
218
217
|
p('[part="arrow"]')
|
|
219
218
|
], o.prototype, "_arrowEl", 2);
|
|
220
219
|
o = r([
|
|
221
|
-
|
|
220
|
+
w("hx-tooltip")
|
|
222
221
|
], o);
|
|
223
222
|
export {
|
|
224
223
|
o as H
|
|
225
224
|
};
|
|
226
|
-
//# sourceMappingURL=hx-tooltip-
|
|
225
|
+
//# sourceMappingURL=hx-tooltip-B_zfKvwc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-tooltip-B_zfKvwc.js","sources":["../../src/components/hx-tooltip/hx-tooltip.styles.ts","../../src/components/hx-tooltip/hx-tooltip.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixTooltipStyles = css`\n :host {\n display: inline-block;\n }\n\n .trigger-wrapper {\n display: inline-block;\n }\n\n [part='tooltip'] {\n position: fixed;\n z-index: var(--hx-tooltip-z-index, var(--hx-z-index-tooltip, 1600));\n max-width: var(--hx-tooltip-max-width, 280px);\n padding: var(--hx-tooltip-padding, var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem));\n background: var(--hx-tooltip-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-tooltip-color, var(--hx-color-neutral-50, #f8fafc));\n font-family: var(--hx-tooltip-font-family, var(--hx-font-family-sans, sans-serif));\n font-size: var(--hx-tooltip-font-size, var(--hx-font-size-xs, 0.75rem));\n line-height: var(--hx-line-height-normal, 1.5);\n border-radius: var(--hx-tooltip-border-radius, var(--hx-border-radius-sm, 0.25rem));\n box-shadow: var(\n --hx-tooltip-shadow,\n var(--hx-shadow-sm, 0 2px 8px var(--hx-overlay-black-20, rgba(0, 0, 0, 0.2)))\n );\n visibility: hidden;\n opacity: 0;\n transition:\n opacity var(--hx-tooltip-transition-duration, var(--hx-transition-fast, 150ms ease)),\n visibility var(--hx-tooltip-transition-duration, var(--hx-transition-fast, 150ms ease));\n overflow-wrap: break-word;\n }\n\n [part='tooltip'].visible {\n visibility: visible;\n opacity: 1;\n }\n\n [part='arrow'] {\n position: absolute;\n width: var(--hx-tooltip-arrow-size, 8px);\n height: var(--hx-tooltip-arrow-size, 8px);\n background: var(--hx-tooltip-bg, var(--hx-color-neutral-900, #0f172a));\n transform: rotate(45deg);\n pointer-events: none;\n }\n\n @media (prefers-reduced-motion: reduce) {\n [part='tooltip'] {\n transition: none;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n [part='tooltip'] {\n border: 1px solid CanvasText;\n }\n\n [part='arrow'] {\n border: 1px solid CanvasText;\n }\n }\n`;\n","import { html } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\n\nimport { HelixElement, createIdCounter } from '../../base/index.js';\nimport { helixTooltipStyles } from './hx-tooltip.styles.js';\n\nconst _nextTooltipId = createIdCounter('hx-tooltip');\n\n/**\n * A tooltip that displays contextual help text on hover or focus.\n *\n * @summary Contextual help text and abbreviations with smart positioning.\n *\n * @tag hx-tooltip\n *\n * @slot - Default slot for the trigger element.\n * @slot content - Tooltip content to display.\n *\n * @csspart tooltip - The tooltip container element.\n * @csspart arrow - The arrow indicator element.\n *\n * @cssprop [--hx-tooltip-bg=var(--hx-color-neutral-900)] - Tooltip background color.\n * @cssprop [--hx-tooltip-color=var(--hx-color-neutral-50)] - Tooltip text color.\n * @cssprop [--hx-tooltip-font-size=var(--hx-font-size-xs)] - Tooltip font size.\n * @cssprop [--hx-tooltip-max-width=280px] - Maximum tooltip width.\n * @cssprop [--hx-tooltip-padding] - Tooltip padding.\n * @cssprop [--hx-tooltip-border-radius=var(--hx-border-radius-sm)] - Tooltip border radius.\n * @cssprop [--hx-tooltip-shadow] - Tooltip box shadow.\n * @cssprop [--hx-tooltip-z-index=9999] - Tooltip z-index.\n * @cssprop [--hx-tooltip-transition-duration=0.15s] - Show/hide transition duration.\n * @cssprop [--hx-tooltip-arrow-size=8px] - Size of the arrow indicator.\n *\n * @example\n * ```html\n * <hx-tooltip>\n * <button>Hover me</button>\n * <span slot=\"content\">Helpful context here</span>\n * </hx-tooltip>\n * ```\n *\n * @example Drupal/Twig usage\n * ```twig\n * <hx-tooltip>\n * <button type=\"button\">{{ trigger_label }}</button>\n * <span slot=\"content\">{{ tooltip_text }}</span>\n * </hx-tooltip>\n * ```\n */\n\n@customElement('hx-tooltip')\nexport class HelixTooltip extends HelixElement {\n static override styles = [helixTooltipStyles];\n\n /**\n * Preferred placement of the tooltip relative to the trigger.\n * Supports all Floating UI placement values including alignment variants\n * (e.g. 'top-start', 'bottom-end') and 'auto'.\n * @attr placement\n */\n @property({ type: String, reflect: true })\n placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n\n /**\n * Delay in milliseconds before the tooltip is shown.\n * @attr show-delay\n */\n @property({ type: Number, attribute: 'show-delay' })\n showDelay = 300;\n\n /**\n * Delay in milliseconds before the tooltip is hidden.\n * @attr hide-delay\n */\n @property({ type: Number, attribute: 'hide-delay' })\n hideDelay = 100;\n\n /** @internal */\n @state() private _visible = false;\n\n /** @internal */\n private _showTimer: ReturnType<typeof setTimeout> | null = null;\n /** @internal */\n private _hideTimer: ReturnType<typeof setTimeout> | null = null;\n\n /** @internal */\n private readonly _tooltipId = _nextTooltipId();\n\n /** @internal */\n @query('slot:not([name])') private _defaultSlot!: HTMLSlotElement | null;\n /** @internal */\n @query('slot[name=\"content\"]') private _contentSlot!: HTMLSlotElement | null;\n /** @internal */\n @query('.trigger-wrapper') private _triggerWrapper!: HTMLElement | null;\n /** @internal */\n @query('[part=\"tooltip\"]') private _tooltipEl!: HTMLElement | null;\n /** @internal */\n @query('[part=\"arrow\"]') private _arrowEl!: HTMLElement | null;\n\n /**\n * Visually-hidden description element in light DOM.\n * Necessary because aria-describedby cannot cross Shadow DOM boundaries —\n * ARIA ID references are scoped to the element's root node. This element\n * lives in the document scope so the trigger's aria-describedby resolves correctly.\n * @internal\n */\n private _lightDomDescription: HTMLSpanElement | null = null;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeydown);\n // Re-run ARIA setup on reconnection (firstUpdated does not re-run).\n // hasUpdated is true after the first update cycle completes.\n if (this.hasUpdated) {\n this._setupTriggerAria();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleKeydown);\n this._clearTimers();\n this._lightDomDescription?.remove();\n this._lightDomDescription = null;\n }\n\n override firstUpdated(): void {\n this._setupTriggerAria();\n }\n\n // ─── ARIA setup ───\n\n /** @internal */\n private _setupTriggerAria(): void {\n const slot = this._defaultSlot;\n if (!slot) return;\n const trigger = slot.assignedElements()[0] as HTMLElement | undefined;\n\n // Sync content from the content slot into a visually-hidden light DOM element.\n // aria-describedby cannot cross Shadow DOM boundaries, so the referenced element\n // must live in the document scope (light DOM), not inside the shadow root.\n const contentSlot = this._contentSlot;\n const contentText =\n contentSlot\n ?.assignedElements()\n .map((el) => el.textContent)\n .join(' ')\n .trim() ?? '';\n\n // Guard for SSR — document is unavailable server-side\n if (!this._lightDomDescription && typeof document !== 'undefined') {\n this._lightDomDescription = document.createElement('span');\n this._lightDomDescription.id = this._tooltipId;\n // Visually hidden but accessible to screen readers via aria-describedby.\n // Appended to document.body (not this element) so that the ID is in the\n // document scope and resolves correctly across shadow DOM boundaries.\n // Web components must not mutate their own light DOM children.\n this._lightDomDescription.style.cssText =\n 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0';\n document.body.appendChild(this._lightDomDescription);\n }\n if (this._lightDomDescription) {\n this._lightDomDescription.textContent = contentText;\n }\n\n if (trigger) {\n trigger.setAttribute('aria-describedby', this._tooltipId);\n }\n }\n\n // ─── Show/Hide ───\n\n /** @internal */\n private _scheduleShow(): void {\n this._clearTimers();\n this._showTimer = setTimeout(() => {\n void this._show();\n }, this.showDelay);\n }\n\n /** @internal */\n private _scheduleHide(): void {\n this._clearTimers();\n this._hideTimer = setTimeout(() => {\n this._hide();\n }, this.hideDelay);\n }\n\n /** @internal */\n private async _show(): Promise<void> {\n this._visible = true;\n await this.updateComplete;\n await this._updatePosition();\n }\n\n /** @internal */\n private _hide(): void {\n this._visible = false;\n }\n\n /** @internal */\n private _clearTimers(): void {\n if (this._showTimer !== null) {\n clearTimeout(this._showTimer);\n this._showTimer = null;\n }\n if (this._hideTimer !== null) {\n clearTimeout(this._hideTimer);\n this._hideTimer = null;\n }\n }\n\n // ─── Positioning ───\n\n /** @internal */\n private async _updatePosition(): Promise<void> {\n const reference = this._triggerWrapper;\n const tooltipEl = this._tooltipEl;\n const arrowEl = this._arrowEl;\n\n if (!reference || !tooltipEl || !arrowEl) return;\n\n const { computePosition, flip, shift, offset, arrow } = await import('@floating-ui/dom');\n const { x, y, placement, middlewareData } = await computePosition(reference, tooltipEl, {\n placement: this.placement,\n strategy: 'fixed',\n middleware: [offset(8), flip(), shift({ padding: 8 }), arrow({ element: arrowEl })],\n });\n\n Object.assign(tooltipEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n const arrowData = middlewareData.arrow;\n const basePlacement = placement.split('-')[0] ?? 'top';\n const oppositeSide: Record<string, string> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n };\n const staticSide = oppositeSide[basePlacement] ?? 'bottom';\n\n // Offset is derived from the arrow element's actual size so that custom\n // --hx-tooltip-arrow-size values position the arrow correctly.\n Object.assign(arrowEl.style, {\n left: arrowData?.x != null ? `${arrowData.x}px` : '',\n top: arrowData?.y != null ? `${arrowData.y}px` : '',\n right: '',\n bottom: '',\n [staticSide]: `${-(arrowEl.offsetWidth / 2)}px`,\n });\n }\n\n // ─── Events ───\n\n /** @internal */\n private _handleKeydown = (e: Event): void => {\n if (!(e instanceof KeyboardEvent)) return;\n if (e.key === 'Escape' && this._visible) {\n this._clearTimers();\n this._hide();\n }\n };\n\n /**\n * Handle mouseleave on the trigger wrapper.\n * Does not schedule hide if keyboard focus is still on the trigger element,\n * preventing mixed keyboard+mouse interactions from dismissing the tooltip\n * while the user is still navigating by keyboard.\n * @internal\n */\n private _handleTriggerMouseleave(): void {\n const slot = this._defaultSlot;\n const trigger = slot?.assignedElements()[0] as HTMLElement | undefined;\n // Guard for SSR — document is unavailable server-side\n const active = typeof document !== 'undefined' ? document.activeElement : null;\n if (trigger && (trigger === active || trigger.contains(active))) {\n return;\n }\n this._scheduleHide();\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div\n class=\"trigger-wrapper\"\n @mouseenter=${this._scheduleShow}\n @mouseleave=${this._handleTriggerMouseleave}\n @focusin=${this._scheduleShow}\n @focusout=${this._scheduleHide}\n >\n <slot @slotchange=${this._setupTriggerAria}></slot>\n </div>\n <div\n part=\"tooltip\"\n id=${this._tooltipId}\n role=\"tooltip\"\n aria-hidden=${String(!this._visible)}\n class=${this._visible ? 'visible' : ''}\n @mouseenter=${this._clearTimers}\n @mouseleave=${this._scheduleHide}\n >\n <slot name=\"content\" @slotchange=${this._setupTriggerAria}></slot>\n <div part=\"arrow\"></div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-tooltip': HelixTooltip;\n }\n}\n"],"names":["helixTooltipStyles","css","_nextTooltipId","createIdCounter","HelixTooltip","HelixElement","e","_a","slot","trigger","contentSlot","contentText","el","reference","tooltipEl","arrowEl","computePosition","flip","shift","offset","arrow","x","y","placement","middlewareData","arrowData","basePlacement","staticSide","active","html","__decorateClass","property","state","query","customElement"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { css as v,
|
|
2
|
-
import "
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { css as v, svg as p, html as d } from "lit";
|
|
2
|
+
import { property as c, state as h, customElement as m } from "lit/decorators.js";
|
|
3
|
+
import { classMap as b } from "lit/directives/class-map.js";
|
|
4
|
+
import { H as x } from "./helix-element-BNEYeiys.js";
|
|
5
5
|
const g = v`
|
|
6
6
|
/* ─── Host ─── */
|
|
7
7
|
|
|
@@ -30,10 +30,10 @@ const g = v`
|
|
|
30
30
|
|
|
31
31
|
.nav {
|
|
32
32
|
background-color: var(--hx-top-nav-bg, var(--hx-color-neutral-0, #ffffff));
|
|
33
|
-
color: var(--hx-top-nav-color, var(--hx-color-neutral-800, #
|
|
33
|
+
color: var(--hx-top-nav-color, var(--hx-color-neutral-800, #1e293b));
|
|
34
34
|
border-bottom: var(--hx-border-width-thin, 1px) solid
|
|
35
|
-
var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #
|
|
36
|
-
font-family: var(--hx-font-family-sans, sans-serif);
|
|
35
|
+
var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #e2e8f0));
|
|
36
|
+
font-family: var(--hx-top-nav-font-family, var(--hx-font-family-sans, sans-serif));
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/* ─── Bar row (always visible) ─── */
|
|
@@ -66,13 +66,13 @@ const g = v`
|
|
|
66
66
|
background: transparent;
|
|
67
67
|
border: none;
|
|
68
68
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
69
|
-
color: var(--hx-top-nav-toggle-color, var(--hx-color-neutral-700, #
|
|
69
|
+
color: var(--hx-top-nav-toggle-color, var(--hx-color-neutral-700, #334155));
|
|
70
70
|
cursor: pointer;
|
|
71
71
|
line-height: 0;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
.mobile-toggle:hover {
|
|
75
|
-
background: var(--hx-color-neutral-100, #
|
|
75
|
+
background: var(--hx-color-neutral-100, #f1f5f9);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
.mobile-toggle:focus-visible {
|
|
@@ -94,12 +94,12 @@ const g = v`
|
|
|
94
94
|
width: 100%;
|
|
95
95
|
padding-block: var(--hx-space-3, 0.75rem);
|
|
96
96
|
border-top: var(--hx-border-width-thin, 1px) solid
|
|
97
|
-
var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #
|
|
97
|
+
var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #e2e8f0));
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.nav__collapsible--open {
|
|
101
101
|
display: flex;
|
|
102
|
-
animation: hx-mobile-nav-open var(--hx-duration-fast,
|
|
102
|
+
animation: hx-mobile-nav-open var(--hx-duration-fast, 100ms) ease-out;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
/* ─── Menu and actions in collapsible (mobile) ─── */
|
|
@@ -116,7 +116,7 @@ const g = v`
|
|
|
116
116
|
margin-top: var(--hx-space-3, 0.75rem);
|
|
117
117
|
padding-top: var(--hx-space-3, 0.75rem);
|
|
118
118
|
border-top: var(--hx-border-width-thin, 1px) solid
|
|
119
|
-
var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #
|
|
119
|
+
var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #e2e8f0));
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
/* ─── Desktop breakpoint ─── */
|
|
@@ -227,22 +227,24 @@ const g = v`
|
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
`;
|
|
230
|
-
var
|
|
231
|
-
for (var a = o > 1 ? void 0 : o ?
|
|
230
|
+
var f = Object.defineProperty, u = Object.getOwnPropertyDescriptor, s = (n, e, i, o) => {
|
|
231
|
+
for (var a = o > 1 ? void 0 : o ? u(e, i) : e, t = n.length - 1, r; t >= 0; t--)
|
|
232
232
|
(r = n[t]) && (a = (o ? r(e, i, a) : r(a)) || a);
|
|
233
|
-
return o && a &&
|
|
233
|
+
return o && a && f(e, i, a), a;
|
|
234
234
|
};
|
|
235
|
-
let l = class extends
|
|
235
|
+
let l = class extends x {
|
|
236
236
|
constructor() {
|
|
237
237
|
super(...arguments), this.sticky = !1, this.label = "Site Navigation", this._mobileOpen = !1, this._handleKeydown = (n) => {
|
|
238
|
-
var e, i;
|
|
239
238
|
n.key === "Escape" && this._mobileOpen && (this._mobileOpen = !1, this.dispatchEvent(
|
|
240
239
|
new CustomEvent("hx-mobile-toggle", {
|
|
241
240
|
bubbles: !0,
|
|
242
241
|
composed: !0,
|
|
243
242
|
detail: { open: !1 }
|
|
244
243
|
})
|
|
245
|
-
),
|
|
244
|
+
), this.updateComplete.then(() => {
|
|
245
|
+
var e, i;
|
|
246
|
+
(i = (e = this.shadowRoot) == null ? void 0 : e.querySelector('[part="mobile-toggle"]')) == null || i.focus();
|
|
247
|
+
}));
|
|
246
248
|
};
|
|
247
249
|
}
|
|
248
250
|
// ─── Lifecycle ───
|
|
@@ -332,7 +334,7 @@ let l = class extends h {
|
|
|
332
334
|
</button>
|
|
333
335
|
</div>
|
|
334
336
|
|
|
335
|
-
<div id="nav-menu" class=${
|
|
337
|
+
<div id="nav-menu" class=${b(n)}>
|
|
336
338
|
<div part="menu" class="nav__menu">
|
|
337
339
|
<slot></slot>
|
|
338
340
|
</div>
|
|
@@ -354,12 +356,12 @@ s([
|
|
|
354
356
|
c({ type: String })
|
|
355
357
|
], l.prototype, "label", 2);
|
|
356
358
|
s([
|
|
357
|
-
|
|
359
|
+
h()
|
|
358
360
|
], l.prototype, "_mobileOpen", 2);
|
|
359
361
|
l = s([
|
|
360
|
-
|
|
362
|
+
m("hx-top-nav")
|
|
361
363
|
], l);
|
|
362
364
|
export {
|
|
363
365
|
l as H
|
|
364
366
|
};
|
|
365
|
-
//# sourceMappingURL=hx-top-nav-
|
|
367
|
+
//# sourceMappingURL=hx-top-nav-CATbRvIv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-top-nav-CATbRvIv.js","sources":["../../src/components/hx-top-nav/hx-top-nav.styles.ts","../../src/components/hx-top-nav/hx-top-nav.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixTopNavStyles = css`\n /* ─── Host ─── */\n\n :host {\n display: block;\n }\n\n /* ─── Header wrapper (landmark) ─── */\n\n header {\n display: block;\n margin: 0;\n padding: 0;\n }\n\n /* ─── Sticky mode ─── */\n\n :host([sticky]) .nav {\n position: sticky;\n top: 0;\n /* Fallback 1000 is appropriate for sticky navbars (below modals ~1300, above content) */\n z-index: var(--hx-top-nav-z-index, var(--hx-z-index-sticky, 1000));\n }\n\n /* ─── Nav container ─── */\n\n .nav {\n background-color: var(--hx-top-nav-bg, var(--hx-color-neutral-0, #ffffff));\n color: var(--hx-top-nav-color, var(--hx-color-neutral-800, #1e293b));\n border-bottom: var(--hx-border-width-thin, 1px) solid\n var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #e2e8f0));\n font-family: var(--hx-top-nav-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n /* ─── Bar row (always visible) ─── */\n\n .nav__bar {\n display: flex;\n align-items: center;\n min-height: var(--hx-top-nav-height, var(--hx-space-16, 4rem));\n padding-inline: var(--hx-top-nav-padding-x, var(--hx-space-6, 1.5rem));\n gap: var(--hx-space-4, 1rem);\n }\n\n /* ─── Logo ─── */\n\n .nav__logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n\n /* ─── Mobile toggle (hamburger) ─── */\n\n .mobile-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-inline-start: auto;\n /* var(--hx-space-3, 0.75rem) padding + 24px icon = 48×48px touch target (exceeds WCAG 2.5.5 44×44px) */\n padding: var(--hx-space-3, 0.75rem);\n background: transparent;\n border: none;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n color: var(--hx-top-nav-toggle-color, var(--hx-color-neutral-700, #334155));\n cursor: pointer;\n line-height: 0;\n }\n\n .mobile-toggle:hover {\n background: var(--hx-color-neutral-100, #f1f5f9);\n }\n\n .mobile-toggle:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-focus-ring-color, var(--hx-color-primary-500, #2563eb));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .mobile-toggle__icon {\n width: var(--hx-space-6, 1.5rem);\n height: var(--hx-space-6, 1.5rem);\n }\n\n /* ─── Collapsible panel (mobile) ─── */\n\n .nav__collapsible {\n display: none;\n flex-direction: column;\n width: 100%;\n padding-block: var(--hx-space-3, 0.75rem);\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #e2e8f0));\n }\n\n .nav__collapsible--open {\n display: flex;\n animation: hx-mobile-nav-open var(--hx-duration-fast, 100ms) ease-out;\n }\n\n /* ─── Menu and actions in collapsible (mobile) ─── */\n\n .nav__menu,\n .nav__actions {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-1, 0.25rem);\n padding-inline: var(--hx-top-nav-padding-x, var(--hx-space-6, 1.5rem));\n }\n\n .nav__actions {\n margin-top: var(--hx-space-3, 0.75rem);\n padding-top: var(--hx-space-3, 0.75rem);\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-top-nav-border-color, var(--hx-color-neutral-200, #e2e8f0));\n }\n\n /* ─── Desktop breakpoint ─── */\n\n /* NOTE: CSS @media queries do not support custom properties.\n This value corresponds to --hx-breakpoint-md (768px). */\n @media (min-width: 768px) {\n /* Make nav a flex row so bar and collapsible sit side-by-side */\n .nav {\n display: flex;\n align-items: center;\n padding-inline: var(--hx-top-nav-padding-x, var(--hx-space-6, 1.5rem));\n }\n\n .nav__bar {\n flex-shrink: 0;\n padding-inline: 0;\n min-height: var(--hx-top-nav-height, var(--hx-space-16, 4rem));\n }\n\n /* Hide hamburger on desktop */\n .mobile-toggle {\n display: none;\n }\n\n /* Collapsible becomes a standard inline flex row */\n .nav__collapsible {\n display: flex;\n flex-direction: row;\n align-items: center;\n flex: 1;\n padding-block: 0;\n border-top: none;\n margin-inline-start: auto;\n gap: var(--hx-space-4, 1rem);\n animation: none;\n }\n\n /* Override open modifier — always visible on desktop regardless of state */\n .nav__collapsible--open {\n display: flex;\n animation: none;\n }\n\n /* Menu grows to fill available space */\n .nav__menu {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n flex: 1;\n padding-inline: 0;\n }\n\n /* Actions sit at the far right */\n .nav__actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n margin-top: 0;\n padding-top: 0;\n padding-inline: 0;\n border-top: none;\n flex-shrink: 0;\n }\n }\n\n /* ─── Mobile menu open animation ─── */\n\n @keyframes hx-mobile-nav-open {\n from {\n opacity: 0;\n transform: translateY(-0.25rem);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* ─── Reduced motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .nav__collapsible--open {\n animation: none;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n .nav {\n border-bottom-color: CanvasText;\n }\n\n .mobile-toggle {\n color: ButtonText;\n border: 1px solid ButtonText;\n }\n\n .nav__collapsible {\n border-top-color: CanvasText;\n }\n\n .nav__actions {\n border-top-color: CanvasText;\n }\n }\n`;\n","import { html, svg } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixTopNavStyles } from './hx-top-nav.styles.js';\n\n/**\n * Top-of-page site navigation bar with logo, menu items, and utility area.\n * Supports sticky positioning, responsive hamburger menu, and full slot-driven\n * content composition for Drupal and other CMS consumers.\n *\n * @summary Site-level navigation bar with logo, nav items, and action slots.\n *\n * @tag hx-top-nav\n *\n * @slot logo - Brand area rendered on the left side.\n * @slot - Default slot for primary navigation items rendered in the center.\n * IMPORTANT: Do NOT place a `<nav>` element in this slot — the component\n * already renders a `<nav>` landmark internally. Use a `<div>` or bare links.\n * @slot actions - Utility area rendered on the right side (search, user menu, etc.).\n *\n * @fires {CustomEvent<{open: boolean}>} hx-mobile-toggle - Dispatched when the\n * hamburger button is toggled. Detail contains the new open state.\n *\n * @csspart header - The outer `<header>` landmark element.\n * @csspart nav - The `<nav>` element inside the header.\n * @csspart logo - The logo slot container.\n * @csspart menu - The primary navigation slot container.\n * @csspart actions - The actions slot container.\n * @csspart mobile-toggle - The hamburger toggle button.\n *\n * @cssprop [--hx-top-nav-bg=var(--hx-color-neutral-0)] - Navigation bar background color.\n * @cssprop [--hx-top-nav-color=var(--hx-color-neutral-800)] - Navigation bar text color.\n * @cssprop [--hx-top-nav-border-color=var(--hx-color-neutral-200)] - Bottom border color.\n * @cssprop [--hx-top-nav-height=var(--hx-space-16)] - Navigation bar height.\n * @cssprop [--hx-top-nav-padding-x=var(--hx-space-6)] - Horizontal padding.\n * @cssprop [--hx-top-nav-z-index=var(--hx-z-index-sticky)] - Z-index for sticky mode.\n * @cssprop [--hx-top-nav-toggle-color=var(--hx-color-neutral-700)] - Hamburger icon color.\n */\n@customElement('hx-top-nav')\nexport class HelixTopNav extends HelixElement {\n static override styles = [helixTopNavStyles];\n\n // ─── Public Properties ───\n\n /**\n * When true, the navigation bar sticks to the top of the viewport during scroll.\n * @attr sticky\n */\n @property({ type: Boolean, reflect: true })\n sticky = false;\n\n /**\n * Accessible label applied to the `<nav>` element via `aria-label`.\n * @attr label\n */\n @property({ type: String })\n label = 'Site Navigation';\n\n // ─── Private State ───\n\n /** Whether the mobile collapsible menu is currently open. */\n /** @internal */\n @state() private _mobileOpen = false;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleKeydown);\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleMobileToggle(): void {\n this._mobileOpen = !this._mobileOpen;\n\n /**\n * Dispatched when the hamburger button is toggled.\n * @event hx-mobile-toggle\n */\n this.dispatchEvent(\n new CustomEvent<{ open: boolean }>('hx-mobile-toggle', {\n bubbles: true,\n composed: true,\n detail: { open: this._mobileOpen },\n }),\n );\n\n if (this._mobileOpen) {\n // Move focus to first truly interactive element in the default slot (WCAG 2.4.3).\n // A plain HTMLElement (e.g. <div>) is not keyboard-reachable; we must find a\n // focusable descendant to avoid trapping focus on a non-interactive node.\n void this.updateComplete.then(() => {\n const FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), [tabindex=\"0\"]';\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n const assigned = slot?.assignedElements({ flatten: true }) ?? [];\n let firstFocusable: HTMLElement | null = null;\n for (const el of assigned) {\n if (!(el instanceof HTMLElement)) continue;\n if (el.matches(FOCUSABLE_SELECTOR)) {\n firstFocusable = el;\n break;\n }\n const found = el.querySelector<HTMLElement>(FOCUSABLE_SELECTOR);\n if (found) {\n firstFocusable = found;\n break;\n }\n }\n firstFocusable?.focus();\n });\n }\n }\n\n /** @internal */\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this._mobileOpen) {\n this._mobileOpen = false;\n this.dispatchEvent(\n new CustomEvent<{ open: boolean }>('hx-mobile-toggle', {\n bubbles: true,\n composed: true,\n detail: { open: false },\n }),\n );\n // Return focus to the toggle button after Lit re-render completes\n void this.updateComplete.then(() => {\n this.shadowRoot?.querySelector<HTMLButtonElement>('[part=\"mobile-toggle\"]')?.focus();\n });\n }\n };\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderHamburgerIcon() {\n return html`\n <svg\n class=\"mobile-toggle__icon\"\n aria-hidden=\"true\"\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 ${this._mobileOpen\n ? svg`\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n `\n : svg`\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line>\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"></line>\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"></line>\n `}\n </svg>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n const menuClasses = {\n nav__collapsible: true,\n 'nav__collapsible--open': this._mobileOpen,\n };\n\n return html`\n <header part=\"header\">\n <nav part=\"nav\" class=\"nav\" aria-label=${this.label}>\n <div class=\"nav__bar\">\n <div part=\"logo\" class=\"nav__logo\">\n <slot name=\"logo\"></slot>\n </div>\n\n <button\n part=\"mobile-toggle\"\n class=\"mobile-toggle\"\n type=\"button\"\n aria-expanded=${String(this._mobileOpen)}\n aria-controls=\"nav-menu\"\n aria-label=${this._mobileOpen ? 'Close navigation' : 'Open navigation'}\n @click=${this._handleMobileToggle}\n >\n ${this._renderHamburgerIcon()}\n </button>\n </div>\n\n <div id=\"nav-menu\" class=${classMap(menuClasses)}>\n <div part=\"menu\" class=\"nav__menu\">\n <slot></slot>\n </div>\n\n <div part=\"actions\" class=\"nav__actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n </nav>\n </header>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-top-nav': HelixTopNav;\n }\n}\n"],"names":["helixTopNavStyles","css","HelixTopNav","HelixElement","e","_b","_a","FOCUSABLE_SELECTOR","slot","assigned","firstFocusable","el","found","html","svg","menuClasses","classMap","__decorateClass","property","state","customElement"],"mappings":";;;;AAEO,MAAMA,IAAoBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACuC1B,IAAMC,IAAN,cAA0BC,EAAa;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA,GAUL,KAAA,SAAS,IAOT,KAAA,QAAQ,mBAMC,KAAQ,cAAc,IA2D/B,KAAQ,iBAAiB,CAACC,MAA2B;AACnD,MAAIA,EAAE,QAAQ,YAAY,KAAK,gBAC7B,KAAK,cAAc,IACnB,KAAK;AAAA,QACH,IAAI,YAA+B,oBAAoB;AAAA,UACrD,SAAS;AAAA,UACT,UAAU;AAAA,UACV,QAAQ,EAAE,MAAM,GAAA;AAAA,QAAM,CACvB;AAAA,MAAA,GAGE,KAAK,eAAe,KAAK,MAAM;;AAClC,SAAAC,KAAAC,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAAiC,8BAAlD,QAAAD,EAA6E;AAAA,MAC/E,CAAC;AAAA,IAEL;AAAA,EAAA;AAAA;AAAA,EAtES,oBAA0B;AACjC,UAAM,kBAAA,GACN,KAAK,iBAAiB,WAAW,KAAK,cAAc;AAAA,EACtD;AAAA,EAES,uBAA6B;AACpC,UAAM,qBAAA,GACN,KAAK,oBAAoB,WAAW,KAAK,cAAc;AAAA,EACzD;AAAA;AAAA;AAAA,EAKQ,sBAA4B;AAClC,SAAK,cAAc,CAAC,KAAK,aAMzB,KAAK;AAAA,MACH,IAAI,YAA+B,oBAAoB;AAAA,QACrD,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,EAAE,MAAM,KAAK,YAAA;AAAA,MAAY,CAClC;AAAA,IAAA,GAGC,KAAK,eAIF,KAAK,eAAe,KAAK,MAAM;;AAClC,YAAME,IAAqB,mDACrBC,KAAOF,IAAA,KAAK,eAAL,gBAAAA,EAAiB,cAA+B,qBACvDG,KAAWD,KAAA,gBAAAA,EAAM,iBAAiB,EAAE,SAAS,GAAA,OAAW,CAAA;AAC9D,UAAIE,IAAqC;AACzC,iBAAWC,KAAMF,GAAU;AACzB,YAAI,EAAEE,aAAc,aAAc;AAClC,YAAIA,EAAG,QAAQJ,CAAkB,GAAG;AAClC,UAAAG,IAAiBC;AACjB;AAAA,QACF;AACA,cAAMC,IAAQD,EAAG,cAA2BJ,CAAkB;AAC9D,YAAIK,GAAO;AACT,UAAAF,IAAiBE;AACjB;AAAA,QACF;AAAA,MACF;AACA,MAAAF,KAAA,QAAAA,EAAgB;AAAA,IAClB,CAAC;AAAA,EAEL;AAAA;AAAA;AAAA,EAuBQ,uBAAuB;AAC7B,WAAOG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAWD,KAAK,cACHC;AAAA;AAAA;AAAA,gBAIAA;AAAA;AAAA;AAAA;AAAA,aAIC;AAAA;AAAA;AAAA,EAGX;AAAA;AAAA,EAIS,SAAS;AAChB,UAAMC,IAAc;AAAA,MAClB,kBAAkB;AAAA,MAClB,0BAA0B,KAAK;AAAA,IAAA;AAGjC,WAAOF;AAAA;AAAA,iDAEsC,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAU7B,OAAO,KAAK,WAAW,CAAC;AAAA;AAAA,2BAE3B,KAAK,cAAc,qBAAqB,iBAAiB;AAAA,uBAC7D,KAAK,mBAAmB;AAAA;AAAA,gBAE/B,KAAK,sBAAsB;AAAA;AAAA;AAAA;AAAA,qCAING,EAASD,CAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYxD;AACF;AA1Kab,EACK,SAAS,CAACF,CAAiB;AAS3CiB,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAT/BhB,EAUX,WAAA,UAAA,CAAA;AAOAe,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAhBfhB,EAiBX,WAAA,SAAA,CAAA;AAMiBe,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAvBIjB,EAuBM,WAAA,eAAA,CAAA;AAvBNA,IAANe,EAAA;AAAA,EADNG,EAAc,YAAY;AAAA,GACdlB,CAAA;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { css as b,
|
|
2
|
-
import "./document-token-adoption-DuYNKd4k.js";
|
|
1
|
+
import { css as b, nothing as p, html as x } from "lit";
|
|
3
2
|
import { property as m, state as c, customElement as g, query as y } from "lit/decorators.js";
|
|
3
|
+
import { H as _ } from "./helix-element-BNEYeiys.js";
|
|
4
4
|
import { classMap as w } from "lit/directives/class-map.js";
|
|
5
5
|
const I = b`
|
|
6
6
|
:host {
|
|
@@ -24,6 +24,15 @@ const I = b`
|
|
|
24
24
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
25
25
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
29
|
+
|
|
30
|
+
@media (forced-colors: active) {
|
|
31
|
+
.tree:focus-visible {
|
|
32
|
+
outline: 3px solid Highlight;
|
|
33
|
+
outline-offset: 2px;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
27
36
|
`;
|
|
28
37
|
var C = Object.defineProperty, k = Object.getOwnPropertyDescriptor, f = (e, t, i, s) => {
|
|
29
38
|
for (var r = s > 1 ? void 0 : s ? k(t, i) : t, n = e.length - 1, o; n >= 0; n--)
|
|
@@ -279,8 +288,9 @@ const S = b`
|
|
|
279
288
|
.item-row {
|
|
280
289
|
display: flex;
|
|
281
290
|
align-items: center;
|
|
291
|
+
min-height: var(--hx-touch-target-min, 44px);
|
|
282
292
|
gap: var(--hx-tree-item-gap, var(--hx-space-2, 0.5rem));
|
|
283
|
-
padding: var(--hx-tree-item-padding-y, var(--hx-space-
|
|
293
|
+
padding: var(--hx-tree-item-padding-y, var(--hx-space-2, 0.5rem))
|
|
284
294
|
var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem));
|
|
285
295
|
padding-inline-start: calc(
|
|
286
296
|
var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem)) + var(--_indent-level, 0) *
|
|
@@ -289,7 +299,7 @@ const S = b`
|
|
|
289
299
|
border-radius: var(--hx-tree-item-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
290
300
|
cursor: pointer;
|
|
291
301
|
outline: none;
|
|
292
|
-
color: var(--hx-tree-item-color, var(--hx-color-neutral-900, #
|
|
302
|
+
color: var(--hx-tree-item-color, var(--hx-color-neutral-900, #0f172a));
|
|
293
303
|
font-family: var(--hx-tree-item-font-family, var(--hx-font-family-sans, sans-serif));
|
|
294
304
|
font-size: var(--hx-tree-item-font-size, var(--hx-font-size-sm, 0.875rem));
|
|
295
305
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
@@ -298,7 +308,7 @@ const S = b`
|
|
|
298
308
|
}
|
|
299
309
|
|
|
300
310
|
.item-row:hover {
|
|
301
|
-
background-color: var(--hx-tree-item-hover-bg, var(--hx-color-neutral-100, #
|
|
311
|
+
background-color: var(--hx-tree-item-hover-bg, var(--hx-color-neutral-100, #f1f5f9));
|
|
302
312
|
}
|
|
303
313
|
|
|
304
314
|
.item-row:focus-visible {
|
|
@@ -311,7 +321,7 @@ const S = b`
|
|
|
311
321
|
|
|
312
322
|
:host([selected]) .item-row {
|
|
313
323
|
background-color: var(--hx-tree-item-selected-bg, var(--hx-color-primary-100, #dbeafe));
|
|
314
|
-
color: var(--hx-tree-item-selected-color, var(--hx-color-primary-800, #
|
|
324
|
+
color: var(--hx-tree-item-selected-color, var(--hx-color-primary-800, #1e3a8a));
|
|
315
325
|
}
|
|
316
326
|
|
|
317
327
|
:host([selected]) .item-row:hover {
|
|
@@ -346,7 +356,7 @@ const S = b`
|
|
|
346
356
|
padding: 0;
|
|
347
357
|
border: none;
|
|
348
358
|
background: transparent;
|
|
349
|
-
color: var(--hx-tree-item-expand-icon-color, var(--hx-color-neutral-500, #
|
|
359
|
+
color: var(--hx-tree-item-expand-icon-color, var(--hx-color-neutral-500, #64748b));
|
|
350
360
|
cursor: pointer;
|
|
351
361
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
352
362
|
transition: transform var(--hx-transition-fast, 150ms ease);
|
|
@@ -393,7 +403,7 @@ const S = b`
|
|
|
393
403
|
display: flex;
|
|
394
404
|
align-items: center;
|
|
395
405
|
flex-shrink: 0;
|
|
396
|
-
color: var(--hx-tree-item-icon-color, var(--hx-color-neutral-500, #
|
|
406
|
+
color: var(--hx-tree-item-icon-color, var(--hx-color-neutral-500, #64748b));
|
|
397
407
|
}
|
|
398
408
|
|
|
399
409
|
.item-icon:empty {
|
|
@@ -435,6 +445,16 @@ const S = b`
|
|
|
435
445
|
/* ─── Forced Colors (Windows High Contrast) ─── */
|
|
436
446
|
|
|
437
447
|
@media (forced-colors: active) {
|
|
448
|
+
.item-row:focus-visible {
|
|
449
|
+
outline: 3px solid Highlight;
|
|
450
|
+
outline-offset: -2px;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.expand-btn:focus-visible {
|
|
454
|
+
outline: 3px solid Highlight;
|
|
455
|
+
outline-offset: 2px;
|
|
456
|
+
}
|
|
457
|
+
|
|
438
458
|
:host([selected]) .item-row {
|
|
439
459
|
outline: 2px solid Highlight;
|
|
440
460
|
}
|
|
@@ -680,4 +700,4 @@ export {
|
|
|
680
700
|
l as H,
|
|
681
701
|
d as a
|
|
682
702
|
};
|
|
683
|
-
//# sourceMappingURL=hx-tree-item-
|
|
703
|
+
//# sourceMappingURL=hx-tree-item-A45WCiBu.js.map
|