@helixui/library 3.1.0 → 3.2.0-next.76
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 +6810 -579
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion.d.ts +3 -0
- package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
- package/dist/components/hx-accordion/index.js +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.d.ts +14 -0
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
- package/dist/components/hx-action-bar/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.d.ts +36 -0
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
- package/dist/components/hx-alert/hx-alert.styles.d.ts +12 -0
- package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
- package/dist/components/hx-alert/index.js +1 -1
- package/dist/components/hx-avatar/hx-avatar.d.ts +17 -0
- 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 +35 -0
- package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
- package/dist/components/hx-badge/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.d.ts +34 -0
- package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
- package/dist/components/hx-banner/hx-banner.styles.d.ts +12 -0
- package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
- package/dist/components/hx-banner/index.js +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +3 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +42 -0
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
- package/dist/components/hx-button/index.js +1 -1
- package/dist/components/hx-button-group/hx-button-group.d.ts +2 -0
- 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 +28 -0
- package/dist/components/hx-card/hx-card.d.ts.map +1 -1
- package/dist/components/hx-card/hx-card.styles.d.ts +9 -0
- package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
- package/dist/components/hx-card/index.js +1 -1
- package/dist/components/hx-carousel/hx-carousel.d.ts +25 -0
- package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -1
- package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
- package/dist/components/hx-carousel/index.js +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.d.ts +38 -7
- package/dist/components/hx-checkbox/hx-checkbox.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 +16 -2
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/index.js +1 -1
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +37 -0
- 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/hx-code-snippet.d.ts +35 -0
- package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -1
- package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
- package/dist/components/hx-code-snippet/index.js +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +29 -0
- package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts +49 -0
- package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-container/hx-container.d.ts +5 -0
- package/dist/components/hx-container/hx-container.d.ts.map +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts +24 -0
- package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
- package/dist/components/hx-copy-button/index.js +1 -1
- package/dist/components/hx-counter/hx-counter.d.ts +7 -0
- package/dist/components/hx-counter/hx-counter.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 +29 -0
- package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
- package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
- package/dist/components/hx-data-table/index.js +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.d.ts +44 -0
- package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts +31 -0
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
- package/dist/components/hx-dialog/hx-dialog.styles.d.ts +10 -0
- package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -1
- package/dist/components/hx-dialog/index.js +1 -1
- package/dist/components/hx-divider/hx-divider.d.ts +9 -0
- package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
- package/dist/components/hx-divider/index.js +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +30 -0
- package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
- package/dist/components/hx-drawer/hx-drawer.styles.d.ts +10 -0
- package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
- package/dist/components/hx-drawer/index.js +1 -1
- package/dist/components/hx-dropdown/hx-dropdown.d.ts +6 -0
- 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 +15 -0
- 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 +11 -0
- 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 +35 -0
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.js +1 -1
- package/dist/components/hx-form/index.js +1 -1
- package/dist/components/hx-grid/hx-grid.d.ts +5 -0
- package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
- package/dist/components/hx-help-text/hx-help-text.d.ts +8 -0
- 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 +5 -0
- 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/hx-icon-button.d.ts +27 -0
- package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-image/hx-image.d.ts +4 -0
- 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 +15 -0
- 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.map +1 -1
- package/dist/components/hx-list/hx-list.d.ts +3 -0
- package/dist/components/hx-list/hx-list.d.ts.map +1 -1
- package/dist/components/hx-list/index.js +1 -1
- package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
- 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 +6 -0
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-meter/hx-meter.d.ts +23 -0
- package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
- package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
- package/dist/components/hx-meter/index.js +1 -1
- package/dist/components/hx-nav/hx-nav.d.ts +29 -0
- 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.js +1 -1
- package/dist/components/hx-number-input/hx-number-input.d.ts +34 -0
- package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
- package/dist/components/hx-number-input/index.js +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +26 -0
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/index.js +1 -1
- package/dist/components/hx-pagination/hx-pagination.d.ts +21 -0
- package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -1
- package/dist/components/hx-pagination/hx-pagination.styles.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 +23 -0
- package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -1
- package/dist/components/hx-patient-banner/hx-patient-banner.styles.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 +19 -5
- package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
- package/dist/components/hx-phi-field/index.js +1 -1
- package/dist/components/hx-popover/hx-popover.d.ts +15 -0
- package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
- package/dist/components/hx-popover/hx-popover.styles.d.ts +9 -0
- package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
- package/dist/components/hx-popover/index.js +1 -1
- package/dist/components/hx-popup/hx-popup.d.ts +1 -0
- package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
- package/dist/components/hx-popup/hx-popup.styles.d.ts +9 -0
- package/dist/components/hx-popup/hx-popup.styles.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 +17 -0
- 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 +15 -0
- package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
- package/dist/components/hx-progress-ring/index.js +1 -1
- package/dist/components/hx-prose/hx-prose.d.ts +2 -0
- package/dist/components/hx-prose/hx-prose.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 +17 -3
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.d.ts +5 -5
- package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-rating/hx-rating.d.ts +13 -0
- package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
- package/dist/components/hx-rating/index.js +1 -1
- package/dist/components/hx-select/hx-select.d.ts +43 -0
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-select/hx-select.styles.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.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 +19 -0
- 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 +5 -0
- 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 +38 -0
- 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.js +1 -1
- package/dist/components/hx-spinner/hx-spinner.d.ts +10 -0
- 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 +39 -0
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
- package/dist/components/hx-split-button/hx-split-button.styles.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 -0
- package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -1
- package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -1
- package/dist/components/hx-split-panel/index.js +1 -1
- package/dist/components/hx-stack/hx-stack.d.ts +5 -0
- package/dist/components/hx-stack/hx-stack.d.ts.map +1 -1
- package/dist/components/hx-stat/hx-stat.d.ts +24 -0
- 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 +13 -0
- 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.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 +15 -0
- package/dist/components/hx-steps/hx-steps.d.ts.map +1 -1
- package/dist/components/hx-steps/index.js +1 -1
- package/dist/components/hx-structured-list/hx-structured-list.d.ts +7 -0
- package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
- package/dist/components/hx-structured-list/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.d.ts +42 -0
- package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
- package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-table/hx-table.d.ts +20 -6
- package/dist/components/hx-table/hx-table.d.ts.map +1 -1
- package/dist/components/hx-table/hx-td.d.ts +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 +6 -6
- package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +12 -8
- package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.js +1 -1
- package/dist/components/hx-tag/hx-tag.d.ts +36 -0
- package/dist/components/hx-tag/hx-tag.d.ts.map +1 -1
- package/dist/components/hx-tag/index.js +1 -1
- package/dist/components/hx-text/hx-text.d.ts +22 -0
- 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 +30 -0
- package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts +12 -0
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts +27 -0
- package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
- package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -1
- package/dist/components/hx-textarea/index.js +1 -1
- package/dist/components/hx-theme/hx-theme.d.ts +3 -0
- package/dist/components/hx-theme/hx-theme.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 +32 -0
- 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.js +1 -1
- package/dist/components/hx-toast/hx-toast.d.ts +24 -0
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.styles.d.ts +10 -0
- 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 +35 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.js +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.d.ts +13 -0
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts +8 -0
- package/dist/components/hx-tooltip/hx-tooltip.styles.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 +21 -0
- package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.styles.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.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 +6 -0
- package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/css/helix-all.css +1173 -828
- package/dist/css/helix-core.css +215 -154
- package/dist/css/helix-data.css +58 -45
- package/dist/css/helix-feedback.css +119 -92
- package/dist/css/helix-forms.css +502 -332
- package/dist/css/helix-layout.css +9 -6
- package/dist/css/helix-media.css +13 -9
- package/dist/css/helix-navigation.css +86 -59
- package/dist/css/helix-overlay.css +65 -50
- package/dist/css/helix-tokens.css +113 -101
- package/dist/css/helix-utility.css +57 -40
- package/dist/css/hx-action-bar.css +5 -5
- package/dist/css/hx-alert.css +27 -23
- package/dist/css/hx-avatar.css +3 -3
- package/dist/css/hx-badge.css +22 -22
- package/dist/css/hx-banner.css +31 -24
- package/dist/css/hx-button-group.css +31 -14
- package/dist/css/hx-button.css +38 -21
- package/dist/css/hx-card.css +26 -12
- package/dist/css/hx-carousel.css +13 -9
- package/dist/css/hx-checkbox-group.css +5 -5
- package/dist/css/hx-checkbox.css +19 -19
- package/dist/css/hx-clinical-status.css +28 -28
- package/dist/css/hx-code-snippet.css +24 -18
- package/dist/css/hx-color-picker.css +30 -13
- package/dist/css/hx-combobox.css +28 -28
- package/dist/css/hx-copy-button.css +6 -3
- package/dist/css/hx-counter.css +1 -1
- package/dist/css/hx-data-table.css +22 -15
- package/dist/css/hx-date-picker.css +34 -34
- package/dist/css/hx-dialog.css +31 -24
- package/dist/css/hx-divider.css +2 -2
- package/dist/css/hx-drawer.css +18 -15
- package/dist/css/hx-dropdown.css +2 -2
- package/dist/css/hx-field-label.css +3 -3
- package/dist/css/hx-field.css +6 -6
- package/dist/css/hx-file-upload.css +18 -18
- package/dist/css/hx-help-text.css +5 -5
- package/dist/css/hx-icon-button.css +49 -38
- package/dist/css/hx-image.css +3 -3
- package/dist/css/hx-link.css +9 -9
- package/dist/css/hx-list.css +1 -1
- package/dist/css/hx-menu.css +2 -2
- package/dist/css/hx-meter.css +11 -10
- package/dist/css/hx-nav.css +17 -11
- package/dist/css/hx-number-input.css +18 -18
- package/dist/css/hx-overflow-menu.css +18 -9
- package/dist/css/hx-pagination.css +21 -15
- package/dist/css/hx-patient-banner.css +17 -9
- package/dist/css/hx-phi-field.css +4 -4
- package/dist/css/hx-popover.css +10 -6
- package/dist/css/hx-progress-bar.css +7 -7
- package/dist/css/hx-progress-ring.css +6 -6
- package/dist/css/hx-radio-group.css +5 -5
- package/dist/css/hx-rating.css +5 -5
- package/dist/css/hx-select.css +17 -14
- package/dist/css/hx-side-nav.css +13 -10
- package/dist/css/hx-skeleton.css +1 -1
- package/dist/css/hx-slider.css +15 -12
- package/dist/css/hx-spinner.css +4 -4
- package/dist/css/hx-split-button.css +45 -31
- package/dist/css/hx-split-panel.css +9 -6
- package/dist/css/hx-stat.css +8 -8
- package/dist/css/hx-status-indicator.css +7 -7
- package/dist/css/hx-structured-list.css +5 -5
- package/dist/css/hx-switch.css +16 -8
- package/dist/css/hx-table.css +6 -6
- package/dist/css/hx-tabs.css +3 -3
- package/dist/css/hx-tag.css +18 -18
- package/dist/css/hx-text-input.css +139 -61
- package/dist/css/hx-text.css +9 -7
- package/dist/css/hx-textarea.css +66 -27
- package/dist/css/hx-time-picker.css +27 -21
- package/dist/css/hx-toast.css +22 -7
- package/dist/css/hx-toggle-button.css +46 -30
- package/dist/css/hx-tooltip.css +4 -3
- package/dist/css/hx-top-nav.css +11 -8
- package/dist/css/hx-tree-view.css +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +280 -194
- package/dist/index.js +75 -75
- package/dist/shared/forced-colors-CTEDFRGa.js +117 -0
- package/dist/shared/forced-colors-CTEDFRGa.js.map +1 -0
- package/dist/shared/{hx-accordion-Wt52OOZD.js → hx-accordion-cnKg4_la.js} +31 -30
- package/dist/shared/hx-accordion-cnKg4_la.js.map +1 -0
- package/dist/shared/{hx-action-bar-BKMADbHj.js → hx-action-bar-CitgcpGv.js} +38 -37
- package/dist/shared/hx-action-bar-CitgcpGv.js.map +1 -0
- package/dist/shared/{hx-alert-D7n94HwI.js → hx-alert-BZH8iHQf.js} +36 -31
- package/dist/shared/hx-alert-BZH8iHQf.js.map +1 -0
- package/dist/shared/{hx-avatar-iLYzu8MJ.js → hx-avatar-C9hOmlAb.js} +19 -18
- package/dist/shared/hx-avatar-C9hOmlAb.js.map +1 -0
- package/dist/shared/{hx-badge-CVCmMPyW.js → hx-badge-CQXgOXJM.js} +65 -64
- package/dist/shared/hx-badge-CQXgOXJM.js.map +1 -0
- package/dist/shared/{hx-banner-C_He7Tr4.js → hx-banner-DT7Zn9Bo.js} +43 -35
- package/dist/shared/hx-banner-DT7Zn9Bo.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-CldCwD1d.js → hx-breadcrumb-item-COeYcB2x.js} +24 -23
- package/dist/shared/hx-breadcrumb-item-COeYcB2x.js.map +1 -0
- package/dist/shared/{hx-button-group-BJOGWoMa.js → hx-button-group-BI-QBqmO.js} +45 -27
- package/dist/shared/hx-button-group-BI-QBqmO.js.map +1 -0
- package/dist/shared/{hx-button-Ddl-T6T-.js → hx-button-modUSOpY.js} +50 -32
- package/dist/shared/hx-button-modUSOpY.js.map +1 -0
- package/dist/shared/{hx-card-ycveujjL.js → hx-card-CU1QnjNb.js} +54 -39
- package/dist/shared/hx-card-CU1QnjNb.js.map +1 -0
- package/dist/shared/{hx-carousel-item-D_dCv61-.js → hx-carousel-item-BaE4hpLl.js} +38 -33
- package/dist/shared/hx-carousel-item-BaE4hpLl.js.map +1 -0
- package/dist/shared/{hx-checkbox-DkkoWoye.js → hx-checkbox-C46TyXhM.js} +42 -41
- package/dist/shared/hx-checkbox-C46TyXhM.js.map +1 -0
- package/dist/shared/{hx-checkbox-group-C3poJ-Zw.js → hx-checkbox-group-C9n315Ju.js} +20 -19
- package/dist/shared/hx-checkbox-group-C9n315Ju.js.map +1 -0
- package/dist/shared/{hx-clinical-status-BS5lcddT.js → hx-clinical-status-BmSjfSEN.js} +55 -54
- package/dist/shared/hx-clinical-status-BmSjfSEN.js.map +1 -0
- package/dist/shared/{hx-code-snippet-B7wUKzyb.js → hx-code-snippet-CJ0FbQYG.js} +39 -32
- package/dist/shared/hx-code-snippet-CJ0FbQYG.js.map +1 -0
- package/dist/shared/{hx-color-picker-DBaKTVLr.js → hx-color-picker-DiDLZyvK.js} +74 -56
- package/dist/shared/hx-color-picker-DiDLZyvK.js.map +1 -0
- package/dist/shared/{hx-combobox-BmgYT7Ar.js → hx-combobox-DaA5dBC4.js} +43 -42
- package/dist/shared/hx-combobox-DaA5dBC4.js.map +1 -0
- package/dist/shared/hx-container-DVI7sxfX.js.map +1 -1
- package/dist/shared/{hx-copy-button-8deNUdwP.js → hx-copy-button-sUVuikyH.js} +23 -19
- package/dist/shared/hx-copy-button-sUVuikyH.js.map +1 -0
- package/dist/shared/{hx-counter-CKfl_g8K.js → hx-counter-0zYapFhf.js} +10 -9
- package/dist/shared/hx-counter-0zYapFhf.js.map +1 -0
- package/dist/shared/{hx-data-table-B6h0RPn0.js → hx-data-table-Cq3t86Ic.js} +55 -47
- package/dist/shared/hx-data-table-Cq3t86Ic.js.map +1 -0
- package/dist/shared/{hx-date-picker-Dq2Nb68_.js → hx-date-picker-DMqRQNSB.js} +45 -44
- package/dist/shared/hx-date-picker-DMqRQNSB.js.map +1 -0
- package/dist/shared/{hx-dialog-CvIlY0Tc.js → hx-dialog-eIS8tcDm.js} +68 -60
- package/dist/shared/hx-dialog-eIS8tcDm.js.map +1 -0
- package/dist/shared/{hx-divider-DwpOrzMW.js → hx-divider-CYfcUjcr.js} +18 -17
- package/dist/shared/hx-divider-CYfcUjcr.js.map +1 -0
- package/dist/shared/{hx-drawer-Cx2ZJhBe.js → hx-drawer-DDhDz7RI.js} +31 -27
- package/dist/shared/hx-drawer-DDhDz7RI.js.map +1 -0
- package/dist/shared/{hx-dropdown-BjDrPUq5.js → hx-dropdown-LyaRc8Rf.js} +16 -15
- package/dist/shared/hx-dropdown-LyaRc8Rf.js.map +1 -0
- package/dist/shared/{hx-field-Dp3qQMut.js → hx-field-B3Qo8OLS.js} +15 -15
- package/dist/shared/hx-field-B3Qo8OLS.js.map +1 -0
- package/dist/shared/{hx-field-label-BC8QViXv.js → hx-field-label-BVRyyKeh.js} +8 -7
- package/dist/shared/hx-field-label-BVRyyKeh.js.map +1 -0
- package/dist/shared/{hx-file-upload-B6Yl1u0i.js → hx-file-upload-zTDbjsRw.js} +42 -41
- package/dist/shared/hx-file-upload-zTDbjsRw.js.map +1 -0
- package/dist/shared/hx-form-CkChEATa.js +257 -0
- package/dist/shared/hx-form-CkChEATa.js.map +1 -0
- package/dist/shared/hx-grid-CXZf3jeK.js.map +1 -1
- package/dist/shared/{hx-help-text-D7eytSim.js → hx-help-text-Xb2Yr8x2.js} +30 -29
- package/dist/shared/hx-help-text-Xb2Yr8x2.js.map +1 -0
- package/dist/shared/{hx-icon-button-BHneqPCU.js → hx-icon-button-BmV97nqz.js} +81 -69
- package/dist/shared/hx-icon-button-BmV97nqz.js.map +1 -0
- package/dist/shared/{hx-icon-CcyDPDYY.js → hx-icon-fuVm4-bk.js} +15 -14
- package/dist/shared/hx-icon-fuVm4-bk.js.map +1 -0
- package/dist/shared/{hx-image-2gt14zZd.js → hx-image-Ben_4yM5.js} +18 -17
- package/dist/shared/hx-image-Ben_4yM5.js.map +1 -0
- package/dist/shared/{hx-link-BESrWK8M.js → hx-link-DmiV-mPw.js} +21 -20
- package/dist/shared/hx-link-DmiV-mPw.js.map +1 -0
- package/dist/shared/{hx-list-_9qVv02L.js → hx-list-CkphGi9T.js} +22 -21
- package/dist/shared/hx-list-CkphGi9T.js.map +1 -0
- package/dist/shared/{hx-menu-divider-Ck-9Os1t.js → hx-menu-divider-j__TZjH2.js} +53 -49
- package/dist/shared/hx-menu-divider-j__TZjH2.js.map +1 -0
- package/dist/shared/{hx-meter-TbROk-dw.js → hx-meter-Cm7k_Ro8.js} +42 -40
- package/dist/shared/hx-meter-Cm7k_Ro8.js.map +1 -0
- package/dist/shared/{hx-nav-BcYDmjf7.js → hx-nav-LoyEKZQC.js} +30 -23
- package/dist/shared/hx-nav-LoyEKZQC.js.map +1 -0
- package/dist/shared/{hx-nav-item-pqPasRUm.js → hx-nav-item-D8xHLVOs.js} +89 -77
- package/dist/shared/hx-nav-item-D8xHLVOs.js.map +1 -0
- package/dist/shared/{hx-number-input-mOIZ3-46.js → hx-number-input-yUzFOSC1.js} +68 -67
- package/dist/shared/hx-number-input-yUzFOSC1.js.map +1 -0
- package/dist/shared/{hx-overflow-menu-Dprb9lnT.js → hx-overflow-menu-BmKyAp5D.js} +33 -23
- package/dist/shared/hx-overflow-menu-BmKyAp5D.js.map +1 -0
- package/dist/shared/{hx-pagination-AguTQjYC.js → hx-pagination-Dqw5dorC.js} +72 -65
- package/dist/shared/hx-pagination-Dqw5dorC.js.map +1 -0
- package/dist/shared/{hx-patient-banner-uE6gqLpT.js → hx-patient-banner-CkS-Lmj4.js} +29 -20
- package/dist/shared/hx-patient-banner-CkS-Lmj4.js.map +1 -0
- package/dist/shared/{hx-phi-field-BC_XowhC.js → hx-phi-field-Bf9TdtC1.js} +13 -12
- package/dist/shared/hx-phi-field-Bf9TdtC1.js.map +1 -0
- package/dist/shared/{hx-popover-B2_203ct.js → hx-popover-B93rTAfr.js} +29 -24
- package/dist/shared/hx-popover-B93rTAfr.js.map +1 -0
- package/dist/shared/{hx-popup-DZXpsJ1R.js → hx-popup-COUXXZ9X.js} +8 -7
- package/dist/shared/hx-popup-COUXXZ9X.js.map +1 -0
- package/dist/shared/{hx-progress-bar-KjEkEJLy.js → hx-progress-bar-Bn3JEPUf.js} +28 -27
- package/dist/shared/hx-progress-bar-Bn3JEPUf.js.map +1 -0
- package/dist/shared/{hx-progress-ring-3zMwvrwD.js → hx-progress-ring-TwHyXeEp.js} +15 -14
- package/dist/shared/hx-progress-ring-TwHyXeEp.js.map +1 -0
- package/dist/shared/{hx-prose-BCtK7YL6.js → hx-prose-BThYcASV.js} +12 -12
- package/dist/shared/{hx-prose-BCtK7YL6.js.map → hx-prose-BThYcASV.js.map} +1 -1
- package/dist/shared/{hx-radio-BBC5qZgE.js → hx-radio-N8xgDd_5.js} +38 -37
- package/dist/shared/hx-radio-N8xgDd_5.js.map +1 -0
- package/dist/shared/{hx-rating-C3E3ENJb.js → hx-rating-i2FL1WUN.js} +38 -37
- package/dist/shared/hx-rating-i2FL1WUN.js.map +1 -0
- package/dist/shared/{hx-select-CixTo7jp.js → hx-select-vgaBo1Ai.js} +63 -59
- package/dist/shared/hx-select-vgaBo1Ai.js.map +1 -0
- package/dist/shared/{hx-skeleton-LxkI0pxr.js → hx-skeleton-Cnieh5Uc.js} +14 -13
- package/dist/shared/hx-skeleton-Cnieh5Uc.js.map +1 -0
- package/dist/shared/{hx-slider-DFHuzF3N.js → hx-slider-ydBamYhd.js} +83 -79
- package/dist/shared/hx-slider-ydBamYhd.js.map +1 -0
- package/dist/shared/{hx-spinner-BKjuCdZB.js → hx-spinner-DL5AYr16.js} +18 -17
- package/dist/shared/hx-spinner-DL5AYr16.js.map +1 -0
- package/dist/shared/{hx-split-button-CGcJMmCG.js → hx-split-button-BeMsmS6N.js} +74 -59
- package/dist/shared/hx-split-button-BeMsmS6N.js.map +1 -0
- package/dist/shared/{hx-split-panel-C-1R10Mc.js → hx-split-panel-BVG1VWNT.js} +16 -12
- package/dist/shared/hx-split-panel-BVG1VWNT.js.map +1 -0
- package/dist/shared/hx-stack-DGfcOfWJ.js.map +1 -1
- package/dist/shared/{hx-stat-BTpykQAt.js → hx-stat-WOcNV1Ry.js} +16 -15
- package/dist/shared/hx-stat-WOcNV1Ry.js.map +1 -0
- package/dist/shared/{hx-status-indicator-X2QEWNFt.js → hx-status-indicator-BlQyen43.js} +17 -16
- package/dist/shared/hx-status-indicator-BlQyen43.js.map +1 -0
- package/dist/shared/{hx-step-CRNQlmSo.js → hx-step-DL3PbOzm.js} +63 -50
- package/dist/shared/hx-step-DL3PbOzm.js.map +1 -0
- package/dist/shared/{hx-structured-list-CqNbaEXg.js → hx-structured-list-m_-dMJbC.js} +18 -17
- package/dist/shared/hx-structured-list-m_-dMJbC.js.map +1 -0
- package/dist/shared/{hx-switch-DqOD9JR7.js → hx-switch-Dougzsgp.js} +29 -20
- package/dist/shared/hx-switch-Dougzsgp.js.map +1 -0
- package/dist/shared/{hx-tab-panel-BIzKfW5i.js → hx-tab-panel-CbkO9VKu.js} +45 -44
- package/dist/shared/hx-tab-panel-CbkO9VKu.js.map +1 -0
- package/dist/shared/{hx-tag-CgnrNnte.js → hx-tag-CNSmdyaK.js} +63 -62
- package/dist/shared/hx-tag-CNSmdyaK.js.map +1 -0
- package/dist/shared/{hx-td-Bra35cH4.js → hx-td-1zwTFLRw.js} +62 -61
- package/dist/shared/hx-td-1zwTFLRw.js.map +1 -0
- package/dist/shared/{hx-text-DMC2CPlL.js → hx-text-Bz_9fJ3J.js} +28 -25
- package/dist/shared/hx-text-Bz_9fJ3J.js.map +1 -0
- package/dist/shared/{hx-text-input--q0GH78x.js → hx-text-input-B-caO5fI.js} +159 -80
- package/dist/shared/hx-text-input-B-caO5fI.js.map +1 -0
- package/dist/shared/{hx-textarea-CK621vSL.js → hx-textarea-D9O4U8cb.js} +110 -70
- package/dist/shared/hx-textarea-D9O4U8cb.js.map +1 -0
- package/dist/shared/{hx-theme-DfEy-SJA.js → hx-theme-BiyQ7UUK.js} +46 -35
- package/dist/shared/hx-theme-BiyQ7UUK.js.map +1 -0
- package/dist/shared/{hx-time-picker-tPUfgElQ.js → hx-time-picker-m0z4nFB-.js} +59 -52
- package/dist/shared/hx-time-picker-m0z4nFB-.js.map +1 -0
- package/dist/shared/{hx-toggle-button-L-uBJr-a.js → hx-toggle-button-Dd8clXB4.js} +75 -58
- package/dist/shared/hx-toggle-button-Dd8clXB4.js.map +1 -0
- package/dist/shared/{hx-tooltip-B_zfKvwc.js → hx-tooltip-nYOv9OLu.js} +18 -16
- package/dist/shared/hx-tooltip-nYOv9OLu.js.map +1 -0
- package/dist/shared/{hx-top-nav-CATbRvIv.js → hx-top-nav-CchPYaiV.js} +36 -32
- package/dist/shared/hx-top-nav-CchPYaiV.js.map +1 -0
- package/dist/shared/{hx-tree-item-A45WCiBu.js → hx-tree-item-DtMC3DTa.js} +35 -28
- package/dist/shared/hx-tree-item-DtMC3DTa.js.map +1 -0
- package/dist/shared/{toast-factory-BPPnG3mM.js → toast-factory-DvDRAh0l.js} +77 -61
- package/dist/shared/toast-factory-DvDRAh0l.js.map +1 -0
- package/dist/styles/forced-colors.d.ts +60 -0
- package/dist/styles/forced-colors.d.ts.map +1 -0
- package/figma-inventory.json +8606 -591
- package/package.json +2 -2
- package/dist/shared/hx-accordion-Wt52OOZD.js.map +0 -1
- package/dist/shared/hx-action-bar-BKMADbHj.js.map +0 -1
- package/dist/shared/hx-alert-D7n94HwI.js.map +0 -1
- package/dist/shared/hx-avatar-iLYzu8MJ.js.map +0 -1
- package/dist/shared/hx-badge-CVCmMPyW.js.map +0 -1
- package/dist/shared/hx-banner-C_He7Tr4.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-CldCwD1d.js.map +0 -1
- package/dist/shared/hx-button-Ddl-T6T-.js.map +0 -1
- package/dist/shared/hx-button-group-BJOGWoMa.js.map +0 -1
- package/dist/shared/hx-card-ycveujjL.js.map +0 -1
- package/dist/shared/hx-carousel-item-D_dCv61-.js.map +0 -1
- package/dist/shared/hx-checkbox-DkkoWoye.js.map +0 -1
- package/dist/shared/hx-checkbox-group-C3poJ-Zw.js.map +0 -1
- package/dist/shared/hx-clinical-status-BS5lcddT.js.map +0 -1
- package/dist/shared/hx-code-snippet-B7wUKzyb.js.map +0 -1
- package/dist/shared/hx-color-picker-DBaKTVLr.js.map +0 -1
- package/dist/shared/hx-combobox-BmgYT7Ar.js.map +0 -1
- package/dist/shared/hx-copy-button-8deNUdwP.js.map +0 -1
- package/dist/shared/hx-counter-CKfl_g8K.js.map +0 -1
- package/dist/shared/hx-data-table-B6h0RPn0.js.map +0 -1
- package/dist/shared/hx-date-picker-Dq2Nb68_.js.map +0 -1
- package/dist/shared/hx-dialog-CvIlY0Tc.js.map +0 -1
- package/dist/shared/hx-divider-DwpOrzMW.js.map +0 -1
- package/dist/shared/hx-drawer-Cx2ZJhBe.js.map +0 -1
- package/dist/shared/hx-dropdown-BjDrPUq5.js.map +0 -1
- package/dist/shared/hx-field-Dp3qQMut.js.map +0 -1
- package/dist/shared/hx-field-label-BC8QViXv.js.map +0 -1
- package/dist/shared/hx-file-upload-B6Yl1u0i.js.map +0 -1
- package/dist/shared/hx-form-ButQFt9A.js +0 -257
- package/dist/shared/hx-form-ButQFt9A.js.map +0 -1
- package/dist/shared/hx-help-text-D7eytSim.js.map +0 -1
- package/dist/shared/hx-icon-CcyDPDYY.js.map +0 -1
- package/dist/shared/hx-icon-button-BHneqPCU.js.map +0 -1
- package/dist/shared/hx-image-2gt14zZd.js.map +0 -1
- package/dist/shared/hx-link-BESrWK8M.js.map +0 -1
- package/dist/shared/hx-list-_9qVv02L.js.map +0 -1
- package/dist/shared/hx-menu-divider-Ck-9Os1t.js.map +0 -1
- package/dist/shared/hx-meter-TbROk-dw.js.map +0 -1
- package/dist/shared/hx-nav-BcYDmjf7.js.map +0 -1
- package/dist/shared/hx-nav-item-pqPasRUm.js.map +0 -1
- package/dist/shared/hx-number-input-mOIZ3-46.js.map +0 -1
- package/dist/shared/hx-overflow-menu-Dprb9lnT.js.map +0 -1
- package/dist/shared/hx-pagination-AguTQjYC.js.map +0 -1
- package/dist/shared/hx-patient-banner-uE6gqLpT.js.map +0 -1
- package/dist/shared/hx-phi-field-BC_XowhC.js.map +0 -1
- package/dist/shared/hx-popover-B2_203ct.js.map +0 -1
- package/dist/shared/hx-popup-DZXpsJ1R.js.map +0 -1
- package/dist/shared/hx-progress-bar-KjEkEJLy.js.map +0 -1
- package/dist/shared/hx-progress-ring-3zMwvrwD.js.map +0 -1
- package/dist/shared/hx-radio-BBC5qZgE.js.map +0 -1
- package/dist/shared/hx-rating-C3E3ENJb.js.map +0 -1
- package/dist/shared/hx-select-CixTo7jp.js.map +0 -1
- package/dist/shared/hx-skeleton-LxkI0pxr.js.map +0 -1
- package/dist/shared/hx-slider-DFHuzF3N.js.map +0 -1
- package/dist/shared/hx-spinner-BKjuCdZB.js.map +0 -1
- package/dist/shared/hx-split-button-CGcJMmCG.js.map +0 -1
- package/dist/shared/hx-split-panel-C-1R10Mc.js.map +0 -1
- package/dist/shared/hx-stat-BTpykQAt.js.map +0 -1
- package/dist/shared/hx-status-indicator-X2QEWNFt.js.map +0 -1
- package/dist/shared/hx-step-CRNQlmSo.js.map +0 -1
- package/dist/shared/hx-structured-list-CqNbaEXg.js.map +0 -1
- package/dist/shared/hx-switch-DqOD9JR7.js.map +0 -1
- package/dist/shared/hx-tab-panel-BIzKfW5i.js.map +0 -1
- package/dist/shared/hx-tag-CgnrNnte.js.map +0 -1
- package/dist/shared/hx-td-Bra35cH4.js.map +0 -1
- package/dist/shared/hx-text-DMC2CPlL.js.map +0 -1
- package/dist/shared/hx-text-input--q0GH78x.js.map +0 -1
- package/dist/shared/hx-textarea-CK621vSL.js.map +0 -1
- package/dist/shared/hx-theme-DfEy-SJA.js.map +0 -1
- package/dist/shared/hx-time-picker-tPUfgElQ.js.map +0 -1
- package/dist/shared/hx-toggle-button-L-uBJr-a.js.map +0 -1
- package/dist/shared/hx-tooltip-B_zfKvwc.js.map +0 -1
- package/dist/shared/hx-top-nav-CATbRvIv.js.map +0 -1
- package/dist/shared/hx-tree-item-A45WCiBu.js.map +0 -1
- package/dist/shared/toast-factory-BPPnG3mM.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { css as A, html as c, nothing as h } from "lit";
|
|
2
2
|
import { property as p, customElement as $, state as T } from "lit/decorators.js";
|
|
3
|
+
import { f as I } from "./forced-colors-CTEDFRGa.js";
|
|
3
4
|
import { H as E } from "./helix-element-BNEYeiys.js";
|
|
4
|
-
import { c as
|
|
5
|
-
const
|
|
5
|
+
import { c as S } from "./id-counter-DuX8vsui.js";
|
|
6
|
+
const D = A`
|
|
6
7
|
:host {
|
|
7
8
|
display: block;
|
|
8
9
|
height: 100%;
|
|
@@ -11,8 +12,8 @@ const S = A`
|
|
|
11
12
|
Without this, axe-core cannot resolve the background for slotted nodes
|
|
12
13
|
and evaluates their text against the page white background, producing
|
|
13
14
|
false-positive color-contrast violations (WCAG 2.1 AA). */
|
|
14
|
-
background-color: var(--hx-side-nav-bg, var(--hx-color-
|
|
15
|
-
color: var(--hx-side-nav-color, var(--hx-color-
|
|
15
|
+
background-color: var(--hx-side-nav-bg, var(--hx-color-surface-inverse, #0d1825));
|
|
16
|
+
color: var(--hx-side-nav-color, var(--hx-color-text-inverse, #ebeee9));
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
* {
|
|
@@ -26,12 +27,12 @@ const S = A`
|
|
|
26
27
|
flex-direction: column;
|
|
27
28
|
height: 100%;
|
|
28
29
|
width: var(--hx-side-nav-width, 16rem);
|
|
29
|
-
background-color: var(--hx-side-nav-bg, var(--hx-color-
|
|
30
|
-
color: var(--hx-side-nav-color, var(--hx-color-
|
|
30
|
+
background-color: var(--hx-side-nav-bg, var(--hx-color-surface-inverse, #0d1825));
|
|
31
|
+
color: var(--hx-side-nav-color, var(--hx-color-text-inverse, #ebeee9));
|
|
31
32
|
transition: width var(--hx-transition-normal, 300ms) ease;
|
|
32
33
|
overflow: hidden;
|
|
33
34
|
border-inline-end: var(--hx-border-width-thin, 1px) solid
|
|
34
|
-
var(--hx-side-nav-border-color, var(--hx-color-
|
|
35
|
+
var(--hx-side-nav-border-color, var(--hx-color-border-strong, #313e4b));
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
/* ─── Collapsed State ─── */
|
|
@@ -49,7 +50,7 @@ const S = A`
|
|
|
49
50
|
flex-shrink: 0;
|
|
50
51
|
min-height: var(--hx-space-14, 3.5rem);
|
|
51
52
|
border-bottom: var(--hx-border-width-thin, 1px) solid
|
|
52
|
-
var(--hx-side-nav-border-color, var(--hx-color-
|
|
53
|
+
var(--hx-side-nav-border-color, var(--hx-color-border-strong, #313e4b));
|
|
53
54
|
overflow: hidden;
|
|
54
55
|
}
|
|
55
56
|
|
|
@@ -76,7 +77,7 @@ const S = A`
|
|
|
76
77
|
flex-shrink: 0;
|
|
77
78
|
min-height: var(--hx-space-14, 3.5rem);
|
|
78
79
|
border-top: var(--hx-border-width-thin, 1px) solid
|
|
79
|
-
var(--hx-side-nav-border-color, var(--hx-color-
|
|
80
|
+
var(--hx-side-nav-border-color, var(--hx-color-border-strong, #313e4b));
|
|
80
81
|
overflow: hidden;
|
|
81
82
|
}
|
|
82
83
|
|
|
@@ -99,7 +100,7 @@ const S = A`
|
|
|
99
100
|
border: none;
|
|
100
101
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
101
102
|
background: transparent;
|
|
102
|
-
color: var(--hx-side-nav-toggle-color, var(--hx-color-
|
|
103
|
+
color: var(--hx-side-nav-toggle-color, var(--hx-color-text-inverse, #b6bfb9));
|
|
103
104
|
cursor: pointer;
|
|
104
105
|
transition:
|
|
105
106
|
background-color var(--hx-transition-fast, 150ms) ease,
|
|
@@ -111,7 +112,7 @@ const S = A`
|
|
|
111
112
|
--hx-overlay-white-10,
|
|
112
113
|
rgba(255, 255, 255, 0.1)
|
|
113
114
|
); /* fallback for browsers without color-mix() */
|
|
114
|
-
color: var(--hx-color-
|
|
115
|
+
color: var(--hx-color-text-inverse, #ebeee9);
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
@supports (color: color-mix(in srgb, red 50%, blue)) {
|
|
@@ -122,7 +123,10 @@ const S = A`
|
|
|
122
123
|
|
|
123
124
|
.side-nav__toggle:focus-visible {
|
|
124
125
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
125
|
-
var(
|
|
126
|
+
var(
|
|
127
|
+
--hx-side-nav-focus-ring-color,
|
|
128
|
+
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
129
|
+
);
|
|
126
130
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
127
131
|
}
|
|
128
132
|
|
|
@@ -178,10 +182,10 @@ const S = A`
|
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
184
|
`;
|
|
181
|
-
var
|
|
182
|
-
for (var t = i > 1 ? void 0 : i ?
|
|
183
|
-
(n = e[l]) && (t = (i ? n(
|
|
184
|
-
return i && t &&
|
|
185
|
+
var N = Object.defineProperty, H = Object.getOwnPropertyDescriptor, u = (e, r, o, i) => {
|
|
186
|
+
for (var t = i > 1 ? void 0 : i ? H(r, o) : r, l = e.length - 1, n; l >= 0; l--)
|
|
187
|
+
(n = e[l]) && (t = (i ? n(r, o, t) : n(t)) || t);
|
|
188
|
+
return i && t && N(r, o, t), t;
|
|
185
189
|
};
|
|
186
190
|
let x = class extends E {
|
|
187
191
|
constructor() {
|
|
@@ -202,8 +206,8 @@ let x = class extends E {
|
|
|
202
206
|
var o;
|
|
203
207
|
const e = (o = this.shadowRoot) == null ? void 0 : o.querySelector("slot:not([name])");
|
|
204
208
|
if (!e) return;
|
|
205
|
-
const
|
|
206
|
-
for (const i of
|
|
209
|
+
const r = e.assignedElements({ flatten: !0 }).filter((i) => i.tagName.toLowerCase() === "hx-nav-item");
|
|
210
|
+
for (const i of r)
|
|
207
211
|
i instanceof HTMLElement && (this.collapsed ? i.setAttribute("data-collapsed", "") : i.removeAttribute("data-collapsed"));
|
|
208
212
|
}
|
|
209
213
|
/**
|
|
@@ -228,53 +232,53 @@ let x = class extends E {
|
|
|
228
232
|
const o = (b = this.shadowRoot) == null ? void 0 : b.querySelector("slot:not([name])");
|
|
229
233
|
if (!o) return;
|
|
230
234
|
const i = o.assignedElements({ flatten: !0 }).filter(
|
|
231
|
-
(
|
|
235
|
+
(a) => a.tagName.toLowerCase() === "hx-nav-item" && !a.hasAttribute("disabled")
|
|
232
236
|
);
|
|
233
237
|
if (i.length === 0) return;
|
|
234
238
|
const t = [];
|
|
235
|
-
for (const
|
|
236
|
-
if (t.push(
|
|
237
|
-
const s = (w =
|
|
239
|
+
for (const a of i)
|
|
240
|
+
if (t.push(a), a.hasAttribute("expanded")) {
|
|
241
|
+
const s = (w = a.shadowRoot) == null ? void 0 : w.querySelector('slot[name="children"]');
|
|
238
242
|
if (s) {
|
|
239
|
-
const
|
|
243
|
+
const g = s.assignedElements({ flatten: !0 }).filter(
|
|
240
244
|
(m) => m.tagName.toLowerCase() === "hx-nav-item" && !m.hasAttribute("disabled")
|
|
241
245
|
);
|
|
242
|
-
t.push(...
|
|
246
|
+
t.push(...g);
|
|
243
247
|
}
|
|
244
248
|
}
|
|
245
249
|
if (t.length === 0) return;
|
|
246
250
|
const l = document.activeElement;
|
|
247
251
|
let n = -1;
|
|
248
|
-
for (let
|
|
249
|
-
const s = t[
|
|
252
|
+
for (let a = 0; a < t.length; a++) {
|
|
253
|
+
const s = t[a];
|
|
250
254
|
if (s && (s === l || s.contains(l) || ((y = s.shadowRoot) == null ? void 0 : y.contains(l)) === !0)) {
|
|
251
|
-
n =
|
|
255
|
+
n = a;
|
|
252
256
|
break;
|
|
253
257
|
}
|
|
254
258
|
}
|
|
255
259
|
if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
|
|
256
260
|
e.preventDefault();
|
|
257
|
-
const
|
|
258
|
-
if (!
|
|
261
|
+
const a = n >= 0 ? t[n] : null;
|
|
262
|
+
if (!a) return;
|
|
259
263
|
if (e.key === "ArrowRight") {
|
|
260
|
-
if (
|
|
261
|
-
|
|
262
|
-
else if (
|
|
263
|
-
const s = (C =
|
|
264
|
+
if (a.hasAttribute("expanded") === !1 && a.querySelector('[slot="children"]'))
|
|
265
|
+
a.setAttribute("expanded", ""), a.expanded = !0;
|
|
266
|
+
else if (a.hasAttribute("expanded")) {
|
|
267
|
+
const s = (C = a.shadowRoot) == null ? void 0 : C.querySelector('slot[name="children"]');
|
|
264
268
|
if (s) {
|
|
265
|
-
const
|
|
269
|
+
const g = s.assignedElements({ flatten: !0 }).find(
|
|
266
270
|
(m) => m.tagName.toLowerCase() === "hx-nav-item" && !m.hasAttribute("disabled")
|
|
267
271
|
);
|
|
268
|
-
if (
|
|
269
|
-
|
|
272
|
+
if (g) {
|
|
273
|
+
g.focus();
|
|
270
274
|
return;
|
|
271
275
|
}
|
|
272
276
|
}
|
|
273
277
|
}
|
|
274
|
-
} else if (
|
|
275
|
-
|
|
278
|
+
} else if (a.hasAttribute("expanded"))
|
|
279
|
+
a.removeAttribute("expanded"), a.expanded = !1;
|
|
276
280
|
else {
|
|
277
|
-
const s =
|
|
281
|
+
const s = a.closest("hx-nav-item:not(:scope)") ?? ((k = a.parentElement) == null ? void 0 : k.closest("hx-nav-item")) ?? null;
|
|
278
282
|
s && !s.hasAttribute("disabled") && s.focus();
|
|
279
283
|
}
|
|
280
284
|
return;
|
|
@@ -338,24 +342,25 @@ let x = class extends E {
|
|
|
338
342
|
`;
|
|
339
343
|
}
|
|
340
344
|
};
|
|
341
|
-
x.styles = [
|
|
342
|
-
|
|
345
|
+
x.styles = [D, I];
|
|
346
|
+
u([
|
|
343
347
|
p({ type: Boolean, reflect: !0 })
|
|
344
348
|
], x.prototype, "collapsed", 2);
|
|
345
|
-
|
|
349
|
+
u([
|
|
346
350
|
p({ type: String })
|
|
347
351
|
], x.prototype, "label", 2);
|
|
348
|
-
x =
|
|
352
|
+
x = u([
|
|
349
353
|
$("hx-side-nav")
|
|
350
354
|
], x);
|
|
351
|
-
const
|
|
355
|
+
const B = A`
|
|
352
356
|
:host {
|
|
353
357
|
display: block;
|
|
354
358
|
/* The host background must be a concrete color so that axe-core can
|
|
355
359
|
resolve text contrast ratios for shadow-DOM content correctly.
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
color: var(--hx-nav-item-
|
|
360
|
+
surface-inverse + text-inverse flip per mode: dark-on-light in dark
|
|
361
|
+
mode, light-on-dark in light mode. */
|
|
362
|
+
background-color: var(--hx-nav-item-host-bg, var(--hx-color-surface-inverse, #0d1825));
|
|
363
|
+
color: var(--hx-nav-item-color, var(--hx-color-text-inverse, #ffffff));
|
|
359
364
|
}
|
|
360
365
|
|
|
361
366
|
* {
|
|
@@ -378,7 +383,7 @@ const H = A`
|
|
|
378
383
|
padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem));
|
|
379
384
|
min-height: var(--hx-space-10, 2.5rem);
|
|
380
385
|
text-decoration: none;
|
|
381
|
-
color: var(--hx-nav-item-color, var(--hx-color-
|
|
386
|
+
color: var(--hx-nav-item-color, var(--hx-color-text-inverse, #ffffff));
|
|
382
387
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
383
388
|
margin: 0 var(--hx-space-2, 0.5rem);
|
|
384
389
|
transition:
|
|
@@ -408,7 +413,7 @@ const H = A`
|
|
|
408
413
|
--hx-nav-item-hover-bg,
|
|
409
414
|
var(--hx-overlay-white-8, rgba(255, 255, 255, 0.08))
|
|
410
415
|
); /* fallback for browsers without color-mix() */
|
|
411
|
-
color: var(--hx-nav-item-hover-color, var(--hx-color-
|
|
416
|
+
color: var(--hx-nav-item-hover-color, var(--hx-color-text-inverse, #ffffff));
|
|
412
417
|
}
|
|
413
418
|
|
|
414
419
|
@supports (color: color-mix(in srgb, red 50%, blue)) {
|
|
@@ -422,21 +427,27 @@ const H = A`
|
|
|
422
427
|
|
|
423
428
|
.nav-item__link:focus-visible {
|
|
424
429
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
425
|
-
var(
|
|
430
|
+
var(
|
|
431
|
+
--hx-nav-item-focus-ring-color,
|
|
432
|
+
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
433
|
+
);
|
|
426
434
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
427
435
|
}
|
|
428
436
|
|
|
429
437
|
/* ─── Active State ─── */
|
|
430
438
|
|
|
431
439
|
:host([active]) .nav-item__link {
|
|
432
|
-
/*
|
|
433
|
-
|
|
434
|
-
|
|
440
|
+
/* Active state sits on the darker primary-600 (#0F7078) fill. White text
|
|
441
|
+
(#ffffff) on primary-600 = 5.39:1 WCAG AA pass. text-on-primary now
|
|
442
|
+
resolves to neutral-900 (intended for the lighter primary-500 surface)
|
|
443
|
+
which would fail here, so we hold the active fg at neutral-0. */
|
|
444
|
+
background-color: var(--hx-nav-item-active-bg, var(--hx-color-primary-600, #0f7078));
|
|
445
|
+
color: var(--hx-nav-item-active-color, var(--hx-color-neutral-0, #ffffff));
|
|
435
446
|
}
|
|
436
447
|
|
|
437
448
|
:host([active]) .nav-item__link:hover {
|
|
438
|
-
/*
|
|
439
|
-
background-color: var(--hx-nav-item-active-hover-bg, var(--hx-color-primary-700, #
|
|
449
|
+
/* text-on-primary (#ffffff) on primary-700 (#0F6363) = WCAG AA ✓ */
|
|
450
|
+
background-color: var(--hx-nav-item-active-hover-bg, var(--hx-color-primary-700, #0f6363));
|
|
440
451
|
}
|
|
441
452
|
|
|
442
453
|
/* ─── Disabled State ─── */
|
|
@@ -526,9 +537,10 @@ const H = A`
|
|
|
526
537
|
left: calc(100% + var(--hx-space-2, 0.5rem));
|
|
527
538
|
top: 50%;
|
|
528
539
|
transform: translateY(-50%);
|
|
529
|
-
/*
|
|
530
|
-
|
|
531
|
-
color: var(--hx-color-
|
|
540
|
+
/* tooltip is an inverted surface — flips per mode via surface-inverse /
|
|
541
|
+
text-inverse. */
|
|
542
|
+
background-color: var(--hx-color-surface-inverse, #0d1825);
|
|
543
|
+
color: var(--hx-color-text-inverse, #ebeee9);
|
|
532
544
|
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
533
545
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
534
546
|
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
@@ -605,22 +617,22 @@ const H = A`
|
|
|
605
617
|
}
|
|
606
618
|
}
|
|
607
619
|
`;
|
|
608
|
-
var
|
|
609
|
-
for (var t = i > 1 ? void 0 : i ?
|
|
610
|
-
(n = e[l]) && (t = (i ? n(
|
|
611
|
-
return i && t &&
|
|
620
|
+
var L = Object.defineProperty, j = Object.getOwnPropertyDescriptor, v = (e, r, o, i) => {
|
|
621
|
+
for (var t = i > 1 ? void 0 : i ? j(r, o) : r, l = e.length - 1, n; l >= 0; l--)
|
|
622
|
+
(n = e[l]) && (t = (i ? n(r, o, t) : n(t)) || t);
|
|
623
|
+
return i && t && L(r, o, t), t;
|
|
612
624
|
};
|
|
613
|
-
const
|
|
625
|
+
const O = S("hx-nav-item");
|
|
614
626
|
let d = class extends E {
|
|
615
627
|
constructor() {
|
|
616
|
-
super(...arguments), this._tooltipId = `${
|
|
628
|
+
super(...arguments), this._tooltipId = `${O()}-tooltip`, this.href = "", this.active = !1, this.expanded = !1, this.disabled = !1, this._hasChildren = !1, this._isCollapsed = !1;
|
|
617
629
|
}
|
|
618
630
|
// ─── Attribute Observer ───
|
|
619
631
|
static get observedAttributes() {
|
|
620
632
|
return [...super.observedAttributes, "data-collapsed"];
|
|
621
633
|
}
|
|
622
|
-
attributeChangedCallback(e,
|
|
623
|
-
super.attributeChangedCallback(e,
|
|
634
|
+
attributeChangedCallback(e, r, o) {
|
|
635
|
+
super.attributeChangedCallback(e, r, o), e === "data-collapsed" && (this._isCollapsed = o !== null);
|
|
624
636
|
}
|
|
625
637
|
// ─── Public API ───
|
|
626
638
|
/**
|
|
@@ -631,21 +643,21 @@ let d = class extends E {
|
|
|
631
643
|
*/
|
|
632
644
|
focus(e) {
|
|
633
645
|
var o;
|
|
634
|
-
const
|
|
635
|
-
|
|
646
|
+
const r = (o = this.shadowRoot) == null ? void 0 : o.querySelector('[part="link"]');
|
|
647
|
+
r ? r.focus(e) : super.focus(e);
|
|
636
648
|
}
|
|
637
649
|
// ─── Slot Change Handler ───
|
|
638
650
|
/** @internal */
|
|
639
651
|
_onChildrenSlotChange(e) {
|
|
640
|
-
const
|
|
641
|
-
this._hasChildren =
|
|
652
|
+
const r = e.target;
|
|
653
|
+
this._hasChildren = r.assignedNodes({ flatten: !0 }).length > 0;
|
|
642
654
|
}
|
|
643
655
|
// ─── Private Helpers ───
|
|
644
656
|
/** @internal */
|
|
645
657
|
_getDirectText() {
|
|
646
658
|
return Array.from(this.childNodes).filter((e) => e.nodeType === Node.TEXT_NODE).map((e) => {
|
|
647
|
-
var
|
|
648
|
-
return ((
|
|
659
|
+
var r;
|
|
660
|
+
return ((r = e.textContent) == null ? void 0 : r.trim()) ?? "";
|
|
649
661
|
}).filter(Boolean).join(" ");
|
|
650
662
|
}
|
|
651
663
|
/** @internal */
|
|
@@ -664,7 +676,7 @@ let d = class extends E {
|
|
|
664
676
|
}
|
|
665
677
|
// ─── Render ───
|
|
666
678
|
render() {
|
|
667
|
-
const e = this._getDirectText(),
|
|
679
|
+
const e = this._getDirectText(), r = c`
|
|
668
680
|
<span part="icon" class="nav-item__icon">
|
|
669
681
|
<slot name="icon"></slot>
|
|
670
682
|
</span>
|
|
@@ -685,7 +697,7 @@ let d = class extends E {
|
|
|
685
697
|
aria-describedby=${this._isCollapsed ? this._tooltipId : h}
|
|
686
698
|
tabindex=${this.disabled ? "-1" : "0"}
|
|
687
699
|
>
|
|
688
|
-
${
|
|
700
|
+
${r}
|
|
689
701
|
</a>` : c`<button
|
|
690
702
|
part="link"
|
|
691
703
|
class="nav-item__link"
|
|
@@ -695,7 +707,7 @@ let d = class extends E {
|
|
|
695
707
|
tabindex=${this.disabled ? "-1" : "0"}
|
|
696
708
|
@click=${this._handleToggle}
|
|
697
709
|
>
|
|
698
|
-
${
|
|
710
|
+
${r}
|
|
699
711
|
</button>`;
|
|
700
712
|
return c`
|
|
701
713
|
<div class="nav-item">
|
|
@@ -709,7 +721,7 @@ let d = class extends E {
|
|
|
709
721
|
`;
|
|
710
722
|
}
|
|
711
723
|
};
|
|
712
|
-
d.styles = [
|
|
724
|
+
d.styles = [B, I];
|
|
713
725
|
v([
|
|
714
726
|
p({ type: String })
|
|
715
727
|
], d.prototype, "href", 2);
|
|
@@ -735,4 +747,4 @@ export {
|
|
|
735
747
|
d as H,
|
|
736
748
|
x as a
|
|
737
749
|
};
|
|
738
|
-
//# sourceMappingURL=hx-nav-item-
|
|
750
|
+
//# sourceMappingURL=hx-nav-item-D8xHLVOs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-nav-item-D8xHLVOs.js","sources":["../../src/components/hx-side-nav/hx-side-nav.styles.ts","../../src/components/hx-side-nav/hx-side-nav.ts","../../src/components/hx-side-nav/hx-nav-item.styles.ts","../../src/components/hx-side-nav/hx-nav-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixSideNavStyles = css`\n :host {\n display: block;\n height: 100%;\n /* Mirror the nav background and text on the host so slotted light-DOM\n content (header, footer slots) inherits the correct dark surface color.\n Without this, axe-core cannot resolve the background for slotted nodes\n and evaluates their text against the page white background, producing\n false-positive color-contrast violations (WCAG 2.1 AA). */\n background-color: var(--hx-side-nav-bg, var(--hx-color-surface-inverse, #0d1825));\n color: var(--hx-side-nav-color, var(--hx-color-text-inverse, #ebeee9));\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Nav Container ─── */\n\n .side-nav {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: var(--hx-side-nav-width, 16rem);\n background-color: var(--hx-side-nav-bg, var(--hx-color-surface-inverse, #0d1825));\n color: var(--hx-side-nav-color, var(--hx-color-text-inverse, #ebeee9));\n transition: width var(--hx-transition-normal, 300ms) ease;\n overflow: hidden;\n border-inline-end: var(--hx-border-width-thin, 1px) solid\n var(--hx-side-nav-border-color, var(--hx-color-border-strong, #313e4b));\n }\n\n /* ─── Collapsed State ─── */\n\n :host([collapsed]) .side-nav {\n width: var(--hx-side-nav-collapsed-width, 3.5rem);\n }\n\n /* ─── Header ─── */\n\n .side-nav__header {\n display: flex;\n align-items: center;\n padding: var(--hx-side-nav-header-padding, var(--hx-space-4, 1rem));\n flex-shrink: 0;\n min-height: var(--hx-space-14, 3.5rem);\n border-bottom: var(--hx-border-width-thin, 1px) solid\n var(--hx-side-nav-border-color, var(--hx-color-border-strong, #313e4b));\n overflow: hidden;\n }\n\n :host([collapsed]) .side-nav__header {\n justify-content: center;\n padding: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Body ─── */\n\n .side-nav__body {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: var(--hx-space-2, 0.5rem) 0;\n }\n\n /* ─── Footer ─── */\n\n .side-nav__footer {\n display: flex;\n align-items: center;\n padding: var(--hx-side-nav-footer-padding, var(--hx-space-4, 1rem));\n flex-shrink: 0;\n min-height: var(--hx-space-14, 3.5rem);\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-side-nav-border-color, var(--hx-color-border-strong, #313e4b));\n overflow: hidden;\n }\n\n :host([collapsed]) .side-nav__footer {\n justify-content: center;\n padding: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Toggle Button ─── */\n\n .side-nav__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--hx-space-8, 2rem);\n height: var(--hx-space-8, 2rem);\n margin-inline-start: auto;\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n background: transparent;\n color: var(--hx-side-nav-toggle-color, var(--hx-color-text-inverse, #b6bfb9));\n cursor: pointer;\n transition:\n background-color var(--hx-transition-fast, 150ms) ease,\n color var(--hx-transition-fast, 150ms) ease;\n }\n\n .side-nav__toggle:hover {\n background-color: var(\n --hx-overlay-white-10,\n rgba(255, 255, 255, 0.1)\n ); /* fallback for browsers without color-mix() */\n color: var(--hx-color-text-inverse, #ebeee9);\n }\n\n @supports (color: color-mix(in srgb, red 50%, blue)) {\n .side-nav__toggle:hover {\n background-color: color-mix(in srgb, currentColor 15%, transparent);\n }\n }\n\n .side-nav__toggle:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-side-nav-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .side-nav__toggle svg {\n width: var(--hx-space-5, 1.25rem);\n height: var(--hx-space-5, 1.25rem);\n fill: currentColor;\n flex-shrink: 0;\n transition: transform var(--hx-transition-normal, 300ms) ease;\n }\n\n :host([collapsed]) .side-nav__toggle svg {\n transform: rotate(180deg);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .side-nav {\n transition: none;\n }\n\n .side-nav__toggle {\n transition: none;\n }\n\n .side-nav__toggle svg {\n transition: none;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n .side-nav {\n border-inline-end-color: CanvasText;\n }\n\n .side-nav__header {\n border-bottom-color: CanvasText;\n }\n\n .side-nav__footer {\n border-top-color: CanvasText;\n }\n\n .side-nav__toggle {\n color: ButtonText;\n border: 1px solid ButtonText;\n }\n\n .side-nav__toggle:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: 2px;\n }\n }\n`;\n","import { html, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { HelixElement } from '../../base/index.js';\nimport { forcedColorsInteractive } from '../../styles/forced-colors.js';\nimport { helixSideNavStyles } from './hx-side-nav.styles.js';\n\n/**\n * A collapsible left-side navigation panel with nested menu item support.\n * Designed for clinical portals, admin dashboards, and department navigation.\n *\n * @summary Collapsible side navigation panel for enterprise healthcare applications.\n *\n * @tag hx-side-nav\n *\n * @slot - Default slot for hx-nav-item children.\n * @slot header - Logo or branding content.\n * @slot footer - User profile or settings content.\n *\n * @fires {CustomEvent<{ collapsed: boolean }>} hx-collapse - Dispatched when the nav collapses to icon-only mode.\n * @fires {CustomEvent<{ collapsed: boolean }>} hx-expand - Dispatched when the nav expands to full width.\n *\n * @csspart nav - The outer nav element.\n * @csspart header - The header section.\n * @csspart body - The scrollable body section.\n * @csspart footer - The footer section.\n * @csspart toggle - The collapse/expand toggle button.\n *\n * @cssprop [--hx-side-nav-width=16rem] - Full expanded width.\n * @cssprop [--hx-side-nav-collapsed-width=3.5rem] - Collapsed icon-only width.\n * @cssprop [--hx-side-nav-bg=var(--hx-color-neutral-900)] - Background color.\n * @cssprop [--hx-side-nav-color=var(--hx-color-neutral-100)] - Text color.\n * @cssprop [--hx-side-nav-border-color=var(--hx-color-neutral-700)] - Border color.\n * @cssprop [--hx-side-nav-header-padding=var(--hx-space-4)] - Header padding.\n * @cssprop [--hx-side-nav-footer-padding=var(--hx-space-4)] - Footer padding.\n * @cssprop [--hx-side-nav-toggle-color=var(--hx-color-neutral-400)] - Toggle button icon color.\n * @cssprop [--hx-color-neutral-900] - Color.\n * @cssprop [--hx-color-neutral-100] - Color.\n * @cssprop [--hx-transition-normal] - Transition timing.\n * @cssprop [--hx-border-width-thin] - Width.\n * @cssprop [--hx-color-neutral-700] - Color.\n * @cssprop [--hx-space-4] - Spacing token.\n * @cssprop [--hx-space-14] - Spacing token.\n * @cssprop [--hx-space-3] - Spacing token.\n * @cssprop [--hx-space-2] - Spacing token.\n * @cssprop [--hx-space-8] - Spacing token.\n * @cssprop [--hx-border-radius-sm] - CSS custom property.\n * @cssprop [--hx-color-neutral-400] - Color.\n * @cssprop [--hx-transition-fast] - Transition timing.\n * @cssprop [--hx-overlay-white-10] - Overlay color.\n * @cssprop [--hx-focus-ring-width] - Width.\n * @cssprop [--hx-focus-ring-color] - Color.\n * @cssprop [--hx-color-primary-400] - Color.\n * @cssprop [--hx-focus-ring-offset] - CSS custom property.\n * @cssprop [--hx-space-5] - Spacing token.\n */\n@customElement('hx-side-nav')\nexport class HelixSideNav extends HelixElement {\n static override styles = [helixSideNavStyles, forcedColorsInteractive];\n\n // ─── Properties ───\n\n /**\n * When true, the nav collapses to show icons only.\n * @attr collapsed\n */\n @property({ type: Boolean, reflect: true })\n collapsed = false;\n\n /**\n * The accessible label for the nav landmark.\n * @attr label\n */\n @property({ type: String })\n label = 'Main Navigation';\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('collapsed')) {\n this._propagateCollapsedToChildren();\n }\n }\n\n // ─── Collapsed State Propagation ───\n\n /**\n * Propagates the collapsed state to all slotted hx-nav-item children by\n * setting or removing the `data-collapsed` attribute. This allows child\n * items to respond to collapsed mode via their CSS selectors.\n */\n /** @internal */\n private _propagateCollapsedToChildren(): void {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return;\n\n const navItems = slot\n .assignedElements({ flatten: true })\n .filter((el) => el.tagName.toLowerCase() === 'hx-nav-item');\n\n for (const item of navItems) {\n if (!(item instanceof HTMLElement)) continue;\n if (this.collapsed) {\n item.setAttribute('data-collapsed', '');\n } else {\n item.removeAttribute('data-collapsed');\n }\n }\n }\n\n /**\n * Handles the default slot's slotchange event so that if items are added\n * after initial render, they immediately receive the correct collapsed state.\n */\n /** @internal */\n private _onDefaultSlotChange(): void {\n this._propagateCollapsedToChildren();\n }\n\n // ─── Keyboard Navigation ───\n\n /**\n * Implements roving tabindex-style ArrowUp/ArrowDown keyboard navigation\n * among direct hx-nav-item children in the body slot. Disabled items are\n * skipped. Focus is applied to the interactive element inside the shadow DOM\n * of each item (anchor or button with part=\"link\").\n */\n /** @internal */\n private _handleKeydown(e: KeyboardEvent): void {\n const validKeys = ['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End'];\n if (!validKeys.includes(e.key)) return;\n\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return;\n\n const topLevelItems = slot\n .assignedElements({ flatten: true })\n .filter(\n (el): el is HTMLElement =>\n el.tagName.toLowerCase() === 'hx-nav-item' && !el.hasAttribute('disabled'),\n );\n\n if (topLevelItems.length === 0) return;\n\n // Build a flattened list of navigable items: direct children plus visible\n // child items from expanded parent items (per ARIA APG tree pattern).\n const navItems: HTMLElement[] = [];\n for (const item of topLevelItems) {\n navItems.push(item);\n // If this item is expanded, include its non-disabled children\n if (item.hasAttribute('expanded')) {\n const childrenSlot =\n item.shadowRoot?.querySelector<HTMLSlotElement>('slot[name=\"children\"]');\n if (childrenSlot) {\n const childItems = childrenSlot\n .assignedElements({ flatten: true })\n .filter(\n (el): el is HTMLElement =>\n el.tagName.toLowerCase() === 'hx-nav-item' && !el.hasAttribute('disabled'),\n );\n navItems.push(...childItems);\n }\n }\n }\n\n if (navItems.length === 0) return;\n\n // Find which item currently contains focus\n const activeEl = document.activeElement;\n let currentIndex = -1;\n for (let i = 0; i < navItems.length; i++) {\n const item = navItems[i];\n if (!item) continue;\n if (\n item === activeEl ||\n item.contains(activeEl) ||\n item.shadowRoot?.contains(activeEl) === true\n ) {\n currentIndex = i;\n break;\n }\n }\n\n // Handle ArrowRight/ArrowLeft for expand/collapse (ARIA APG tree pattern)\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\n e.preventDefault();\n const currentItem = currentIndex >= 0 ? navItems[currentIndex] : null;\n if (!currentItem) return;\n\n if (e.key === 'ArrowRight') {\n // If the item has children and is collapsed, expand it\n if (\n currentItem.hasAttribute('expanded') === false &&\n currentItem.querySelector('[slot=\"children\"]')\n ) {\n currentItem.setAttribute('expanded', '');\n (currentItem as HTMLElement & { expanded?: boolean }).expanded = true;\n } else if (currentItem.hasAttribute('expanded')) {\n // Already expanded: move focus to first child item\n const childrenSlot =\n currentItem.shadowRoot?.querySelector<HTMLSlotElement>('slot[name=\"children\"]');\n if (childrenSlot) {\n const firstChild = childrenSlot\n .assignedElements({ flatten: true })\n .find(\n (el): el is HTMLElement =>\n el.tagName.toLowerCase() === 'hx-nav-item' && !el.hasAttribute('disabled'),\n );\n if (firstChild) {\n firstChild.focus();\n return;\n }\n }\n }\n } else {\n // ArrowLeft: if expanded, collapse; if collapsed or non-expandable, find parent\n if (currentItem.hasAttribute('expanded')) {\n currentItem.removeAttribute('expanded');\n (currentItem as HTMLElement & { expanded?: boolean }).expanded = false;\n } else {\n // Move focus to parent item if this item is a child in another item's slot\n const parentNavItem =\n currentItem.closest<HTMLElement>('hx-nav-item:not(:scope)') ??\n currentItem.parentElement?.closest<HTMLElement>('hx-nav-item') ??\n null;\n if (parentNavItem && !parentNavItem.hasAttribute('disabled')) {\n parentNavItem.focus();\n }\n }\n }\n return;\n }\n\n e.preventDefault();\n\n let nextIndex: number;\n if (e.key === 'ArrowDown') {\n nextIndex = currentIndex < navItems.length - 1 ? currentIndex + 1 : 0;\n } else if (e.key === 'ArrowUp') {\n nextIndex = currentIndex > 0 ? currentIndex - 1 : navItems.length - 1;\n } else if (e.key === 'Home') {\n nextIndex = 0;\n } else {\n nextIndex = navItems.length - 1;\n }\n\n const targetItem = navItems[nextIndex];\n if (!targetItem) return;\n // WCAG 2.1.1: call the public focus() method on the nav item rather than\n // piercing its Shadow DOM directly. hx-nav-item.focus() delegates to the\n // internal [part=\"link\"] element, preserving shadow encapsulation.\n targetItem.focus();\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleToggle(): void {\n this.collapsed = !this.collapsed;\n\n if (this.collapsed) {\n /**\n * Dispatched when the nav collapses to icon-only mode.\n * @event hx-collapse\n */\n this.dispatchEvent(\n new CustomEvent<{ collapsed: boolean }>('hx-collapse', {\n bubbles: true,\n composed: true,\n detail: { collapsed: true },\n }),\n );\n } else {\n /**\n * Dispatched when the nav expands to full width.\n * @event hx-expand\n */\n this.dispatchEvent(\n new CustomEvent<{ collapsed: boolean }>('hx-expand', {\n bubbles: true,\n composed: true,\n detail: { collapsed: false },\n }),\n );\n }\n }\n\n // ─── Render ───\n\n /** @internal */\n private _renderToggleIcon() {\n return html`<svg viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n <path\n d=\"M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z\"\n />\n </svg>`;\n }\n\n override render() {\n return html`\n <nav part=\"nav\" class=\"side-nav\" aria-label=${this.label}>\n <div part=\"header\" class=\"side-nav__header\">\n <slot name=\"header\"></slot>\n <button\n part=\"toggle\"\n class=\"side-nav__toggle\"\n aria-label=${this.collapsed ? 'Expand navigation' : 'Collapse navigation'}\n aria-expanded=${!this.collapsed}\n @click=${this._handleToggle}\n >\n ${this._renderToggleIcon()}\n </button>\n </div>\n\n <div part=\"body\" class=\"side-nav__body\" id=\"side-nav-body\" @keydown=${this._handleKeydown}>\n <slot @slotchange=${this._onDefaultSlotChange}></slot>\n </div>\n\n <div part=\"footer\" class=\"side-nav__footer\">\n <slot name=\"footer\"></slot>\n </div>\n </nav>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-side-nav': HelixSideNav;\n }\n}\n\nexport type { HelixSideNav as HxSideNav };\n","import { css } from 'lit';\n\nexport const helixNavItemStyles = css`\n :host {\n display: block;\n /* The host background must be a concrete color so that axe-core can\n resolve text contrast ratios for shadow-DOM content correctly.\n surface-inverse + text-inverse flip per mode: dark-on-light in dark\n mode, light-on-dark in light mode. */\n background-color: var(--hx-nav-item-host-bg, var(--hx-color-surface-inverse, #0d1825));\n color: var(--hx-nav-item-color, var(--hx-color-text-inverse, #ffffff));\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Nav Item ─── */\n\n .nav-item {\n display: flex;\n flex-direction: column;\n }\n\n /* ─── Link / Button ─── */\n\n .nav-item__link {\n display: flex;\n align-items: center;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem));\n min-height: var(--hx-space-10, 2.5rem);\n text-decoration: none;\n color: var(--hx-nav-item-color, var(--hx-color-text-inverse, #ffffff));\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n margin: 0 var(--hx-space-2, 0.5rem);\n transition:\n background-color var(--hx-transition-fast, 150ms) ease,\n color var(--hx-transition-fast, 150ms) ease;\n white-space: nowrap;\n overflow: hidden;\n cursor: pointer;\n font-family: var(--hx-nav-item-font-family, var(--hx-font-family-sans, sans-serif));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n line-height: var(--hx-line-height-normal, 1.5);\n position: relative;\n border: none;\n background: transparent;\n width: calc(100% - var(--hx-space-4, 1rem));\n text-align: start;\n }\n\n /* Link variant */\n a.nav-item__link {\n display: flex;\n }\n\n .nav-item__link:hover {\n background-color: var(\n --hx-nav-item-hover-bg,\n var(--hx-overlay-white-8, rgba(255, 255, 255, 0.08))\n ); /* fallback for browsers without color-mix() */\n color: var(--hx-nav-item-hover-color, var(--hx-color-text-inverse, #ffffff));\n }\n\n @supports (color: color-mix(in srgb, red 50%, blue)) {\n .nav-item__link:hover {\n background-color: var(\n --hx-nav-item-hover-bg,\n color-mix(in srgb, currentColor 10%, transparent)\n );\n }\n }\n\n .nav-item__link:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(\n --hx-nav-item-focus-ring-color,\n var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))\n );\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Active State ─── */\n\n :host([active]) .nav-item__link {\n /* Active state sits on the darker primary-600 (#0F7078) fill. White text\n (#ffffff) on primary-600 = 5.39:1 WCAG AA pass. text-on-primary now\n resolves to neutral-900 (intended for the lighter primary-500 surface)\n which would fail here, so we hold the active fg at neutral-0. */\n background-color: var(--hx-nav-item-active-bg, var(--hx-color-primary-600, #0f7078));\n color: var(--hx-nav-item-active-color, var(--hx-color-neutral-0, #ffffff));\n }\n\n :host([active]) .nav-item__link:hover {\n /* text-on-primary (#ffffff) on primary-700 (#0F6363) = WCAG AA ✓ */\n background-color: var(--hx-nav-item-active-hover-bg, var(--hx-color-primary-700, #0f6363));\n }\n\n /* ─── Disabled State ─── */\n\n :host([disabled]) .nav-item__link {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n cursor: not-allowed;\n }\n\n /* ─── Icon ─── */\n\n .nav-item__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--hx-space-5, 1.25rem);\n height: var(--hx-space-5, 1.25rem);\n }\n\n /* ─── Label ─── */\n\n .nav-item__label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: opacity var(--hx-transition-fast, 150ms) ease;\n }\n\n /* ─── Badge ─── */\n\n .nav-item__badge {\n margin-inline-start: auto;\n flex-shrink: 0;\n }\n\n /* ─── Expand Arrow ─── */\n\n .nav-item__arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin-inline-start: auto;\n width: var(--hx-space-5, 1.25rem);\n height: var(--hx-space-5, 1.25rem);\n transition: transform var(--hx-transition-normal, 300ms) ease;\n }\n\n .nav-item__arrow svg {\n width: var(--hx-space-4, 1rem);\n height: var(--hx-space-4, 1rem);\n fill: currentColor;\n }\n\n :host([expanded]) .nav-item__arrow {\n transform: rotate(90deg);\n }\n\n /* ─── Children (sub-nav) ─── */\n\n .nav-item__children {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--hx-transition-normal, 300ms ease);\n overflow: hidden;\n }\n\n :host([expanded]) .nav-item__children {\n grid-template-rows: 1fr;\n }\n\n .nav-item__children-inner {\n overflow: hidden;\n min-height: 0;\n display: flex;\n flex-direction: column;\n padding-inline-start: var(--hx-space-6, 1.5rem);\n }\n\n /* ─── Tooltip (collapsed mode) ─── */\n\n .nav-item__tooltip {\n position: absolute;\n left: calc(100% + var(--hx-space-2, 0.5rem));\n top: 50%;\n transform: translateY(-50%);\n /* tooltip is an inverted surface — flips per mode via surface-inverse /\n text-inverse. */\n background-color: var(--hx-color-surface-inverse, #0d1825);\n color: var(--hx-color-text-inverse, #ebeee9);\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n font-size: var(--hx-font-size-xs, 0.75rem);\n white-space: nowrap;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--hx-transition-fast, 150ms) ease;\n z-index: var(--hx-z-index-tooltip, 1600);\n box-shadow: var(--hx-shadow-md, 0 2px 8px rgb(0 0 0 / 0.2));\n }\n\n :host([data-collapsed]) .nav-item__link:hover .nav-item__tooltip,\n :host([data-collapsed]) .nav-item__link:focus-visible .nav-item__tooltip {\n opacity: 1;\n }\n\n /* ─── Collapsed host state (propagated from parent) ─── */\n\n :host([data-collapsed]) .nav-item__label {\n width: 0;\n overflow: hidden;\n opacity: 0;\n }\n\n :host([data-collapsed]) .nav-item__badge {\n display: none;\n }\n\n :host([data-collapsed]) .nav-item__arrow {\n display: none;\n }\n\n :host([data-collapsed]) .nav-item__children {\n display: none !important;\n }\n\n :host([data-collapsed]) .nav-item__link {\n justify-content: center;\n margin: 0 var(--hx-space-1, 0.25rem);\n width: calc(100% - var(--hx-space-2, 0.5rem));\n padding: var(--hx-space-2, 0.5rem);\n position: relative;\n overflow: visible;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .nav-item__link,\n .nav-item__label,\n .nav-item__arrow,\n .nav-item__children,\n .nav-item__tooltip {\n transition: none;\n }\n\n :host([expanded]) .nav-item__children {\n grid-template-rows: 1fr;\n }\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n :host([active]) .nav-item__link {\n border: 1px solid Highlight;\n }\n\n .nav-item__link:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: 2px;\n }\n\n .nav-item__tooltip {\n border: 1px solid CanvasText;\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { HelixElement, createIdCounter } from '../../base/index.js';\nimport { forcedColorsInteractive } from '../../styles/forced-colors.js';\nimport { helixNavItemStyles } from './hx-nav-item.styles.js';\n\nconst _nextNavItemId = createIdCounter('hx-nav-item');\n\n/**\n * A navigation item for use inside hx-side-nav.\n * Supports icons, badges, sub-navigation, and active/disabled states.\n *\n * @summary Navigation item for hx-side-nav with support for icons, badges, and nested children.\n *\n * @tag hx-nav-item\n *\n * @slot - Default slot for item label text.\n * @slot icon - Icon to display before the label.\n * @slot badge - Badge content (e.g., notification count).\n * @slot children - Nested hx-nav-item children for sub-navigation.\n *\n * @csspart link - The anchor or button element.\n * @csspart icon - The icon container.\n * @csspart label - The label container.\n * @csspart badge - The badge container.\n * @csspart children - The children container.\n *\n * @cssprop [--hx-nav-item-color=var(--hx-color-neutral-300)] - Item text color.\n * @cssprop [--hx-nav-item-hover-bg] - Item hover background.\n * @cssprop [--hx-nav-item-hover-color=var(--hx-color-neutral-100)] - Item hover text color.\n * @cssprop [--hx-nav-item-active-bg=var(--hx-color-primary-600)] - Active item background.\n * @cssprop [--hx-nav-item-active-color=var(--hx-color-neutral-50)] - Active item text color.\n * @cssprop [--hx-nav-item-padding] - Item padding.\n * @cssprop [--hx-nav-item-host-bg=var(--hx-color-neutral-900)] - Component host background color.\n */\n@customElement('hx-nav-item')\nexport class HelixNavItem extends HelixElement {\n static override styles = [helixNavItemStyles, forcedColorsInteractive];\n\n /** @internal — per-instance tooltip ID */\n private _tooltipId = `${_nextNavItemId()}-tooltip`;\n\n // ─── Properties ───\n\n /**\n * The URL this nav item links to.\n * @attr href\n */\n @property({ type: String })\n href = '';\n\n /**\n * Whether this item is the current/active page.\n * @attr active\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * Whether the sub-navigation is expanded.\n * @attr expanded\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Whether this nav item is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n // ─── State ───\n\n /** Whether the children slot has assigned nodes. Updated via slotchange. */\n /** @internal */\n @state() private _hasChildren = false;\n\n /** Whether this item is in collapsed mode. Set externally by hx-side-nav via data-collapsed attribute. */\n /** @internal */\n @state() private _isCollapsed = false;\n\n // ─── Attribute Observer ───\n\n static override get observedAttributes(): string[] {\n return [...super.observedAttributes, 'data-collapsed'];\n }\n\n override attributeChangedCallback(name: string, old: string | null, value: string | null): void {\n super.attributeChangedCallback(name, old, value);\n if (name === 'data-collapsed') {\n this._isCollapsed = value !== null;\n }\n }\n\n // ─── Public API ───\n\n /**\n * Delegates focus to the internal link or button element (part=\"link\").\n * Allows parent components to focus nav items without piercing the Shadow DOM.\n * WCAG 2.1.1: keyboard navigation must not cross shadow boundaries via\n * direct shadowRoot queries.\n */\n override focus(options?: FocusOptions): void {\n const inner = this.shadowRoot?.querySelector<HTMLElement>('[part=\"link\"]');\n if (inner) {\n inner.focus(options);\n } else {\n super.focus(options);\n }\n }\n\n // ─── Slot Change Handler ───\n\n /** @internal */\n private _onChildrenSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasChildren = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Private Helpers ───\n\n /** @internal */\n private _getDirectText(): string {\n return Array.from(this.childNodes)\n .filter((n) => n.nodeType === Node.TEXT_NODE)\n .map((n) => n.textContent?.trim() ?? '')\n .filter(Boolean)\n .join(' ');\n }\n\n /** @internal */\n private _handleToggle(e: Event): void {\n if (this.disabled) return;\n e.preventDefault();\n this.expanded = !this.expanded;\n }\n\n /** @internal */\n private _renderExpandArrow() {\n return html`<span class=\"nav-item__arrow\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 20 20\">\n <path\n d=\"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z\"\n />\n </svg>\n </span>`;\n }\n\n // ─── Render ───\n\n override render() {\n const label = this._getDirectText();\n\n const innerContent = html`\n <span part=\"icon\" class=\"nav-item__icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"label\" class=\"nav-item__label\">\n <slot></slot>\n </span>\n <span part=\"badge\" class=\"nav-item__badge\">\n <slot name=\"badge\"></slot>\n </span>\n ${this._hasChildren ? this._renderExpandArrow() : nothing}\n ${this._isCollapsed\n ? html`<span id=${this._tooltipId} class=\"nav-item__tooltip\" role=\"tooltip\">${label}</span>`\n : nothing}\n `;\n\n // Render as anchor when href provided and no expandable children\n const linkEl =\n this.href && !this._hasChildren\n ? html`<a\n part=\"link\"\n class=\"nav-item__link\"\n href=${this.href}\n aria-current=${this.active ? 'page' : nothing}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-describedby=${this._isCollapsed ? this._tooltipId : nothing}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n ${innerContent}\n </a>`\n : html`<button\n part=\"link\"\n class=\"nav-item__link\"\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-expanded=${this._hasChildren ? String(this.expanded) : nothing}\n aria-describedby=${this._isCollapsed ? this._tooltipId : nothing}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this._handleToggle}\n >\n ${innerContent}\n </button>`;\n\n return html`\n <div class=\"nav-item\">\n ${linkEl}\n <div part=\"children\" class=\"nav-item__children\" role=\"group\">\n <div class=\"nav-item__children-inner\">\n <slot name=\"children\" @slotchange=${this._onChildrenSlotChange}></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-nav-item': HelixNavItem;\n }\n}\n\nexport type { HelixNavItem as HxNavItem };\n"],"names":["helixSideNavStyles","css","HelixSideNav","HelixElement","changedProperties","slot","_a","navItems","el","item","topLevelItems","childrenSlot","_b","childItems","activeEl","currentIndex","i","_c","currentItem","_d","firstChild","parentNavItem","_e","nextIndex","targetItem","html","forcedColorsInteractive","__decorateClass","property","customElement","helixNavItemStyles","_nextNavItemId","createIdCounter","HelixNavItem","name","old","value","options","inner","n","label","innerContent","nothing","linkEl","state"],"mappings":"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"}
|