@helixui/library 3.1.0 → 3.2.0-next.100
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 +6407 -339
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion-item.styles.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-item.styles.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 +44 -7
- 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/hx-clinical-status.styles.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/hx-file-upload.styles.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.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/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/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/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/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 +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 +7 -5
- 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 +9 -4
- 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 +40 -1
- 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-table.styles.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 +18 -5
- 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 +30 -2
- 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/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-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 +1286 -889
- package/dist/css/helix-core.css +322 -167
- package/dist/css/helix-data.css +54 -46
- package/dist/css/helix-feedback.css +132 -95
- package/dist/css/helix-forms.css +499 -349
- package/dist/css/helix-layout.css +9 -12
- package/dist/css/helix-media.css +16 -12
- package/dist/css/helix-navigation.css +86 -66
- package/dist/css/helix-overlay.css +62 -56
- package/dist/css/helix-tokens.css +173 -106
- 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 +151 -34
- package/dist/css/hx-card.css +23 -12
- package/dist/css/hx-carousel.css +16 -12
- 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 -30
- package/dist/css/hx-code-snippet.css +26 -18
- package/dist/css/hx-color-picker.css +20 -13
- package/dist/css/hx-combobox.css +31 -31
- package/dist/css/hx-copy-button.css +6 -3
- package/dist/css/hx-counter.css +1 -1
- package/dist/css/hx-data-table.css +16 -15
- package/dist/css/hx-date-picker.css +34 -34
- package/dist/css/hx-dialog.css +31 -27
- package/dist/css/hx-divider.css +2 -2
- package/dist/css/hx-drawer.css +18 -18
- 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 +21 -30
- package/dist/css/hx-help-text.css +5 -5
- package/dist/css/hx-icon-button.css +46 -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 +10 -10
- package/dist/css/hx-nav.css +11 -11
- package/dist/css/hx-number-input.css +18 -18
- package/dist/css/hx-overflow-menu.css +18 -15
- package/dist/css/hx-pagination.css +15 -15
- package/dist/css/hx-patient-banner.css +17 -9
- package/dist/css/hx-phi-field.css +4 -7
- package/dist/css/hx-popover.css +7 -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 +18 -16
- package/dist/css/hx-side-nav.css +28 -11
- 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 -12
- 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 -7
- 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 +36 -10
- package/dist/css/hx-toggle-button.css +46 -30
- package/dist/css/hx-tooltip.css +4 -3
- package/dist/css/hx-top-nav.css +8 -8
- package/dist/css/hx-tree-view.css +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +330 -230
- 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-ZVzgDzTG.js} +29 -29
- package/dist/shared/hx-accordion-ZVzgDzTG.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-C597yHpD.js} +36 -31
- package/dist/shared/hx-alert-C597yHpD.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-Cxd7eFUP.js} +43 -35
- package/dist/shared/hx-banner-Cxd7eFUP.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-CldCwD1d.js → hx-breadcrumb-item-3tKppF9h.js} +24 -26
- package/dist/shared/hx-breadcrumb-item-3tKppF9h.js.map +1 -0
- package/dist/shared/{hx-button-Ddl-T6T-.js → hx-button-9OUjJnk7.js} +172 -55
- package/dist/shared/hx-button-9OUjJnk7.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-card-ycveujjL.js → hx-card-qNAM2QNV.js} +49 -37
- package/dist/shared/hx-card-qNAM2QNV.js.map +1 -0
- package/dist/shared/{hx-carousel-item-D_dCv61-.js → hx-carousel-item-z1Lc24op.js} +41 -36
- package/dist/shared/hx-carousel-item-z1Lc24op.js.map +1 -0
- package/dist/shared/{hx-checkbox-DkkoWoye.js → hx-checkbox-DBD-gMoz.js} +42 -41
- package/dist/shared/hx-checkbox-DBD-gMoz.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-D3XQIOqX.js} +55 -56
- package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +1 -0
- package/dist/shared/{hx-code-snippet-B7wUKzyb.js → hx-code-snippet-B26RM1_C.js} +41 -32
- package/dist/shared/hx-code-snippet-B26RM1_C.js.map +1 -0
- package/dist/shared/{hx-color-picker-DBaKTVLr.js → hx-color-picker-uRc865FJ.js} +54 -46
- package/dist/shared/hx-color-picker-uRc865FJ.js.map +1 -0
- package/dist/shared/{hx-combobox-BmgYT7Ar.js → hx-combobox-ClhNRAS5.js} +46 -45
- package/dist/shared/hx-combobox-ClhNRAS5.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-CLqVqdxr.js} +49 -47
- package/dist/shared/hx-data-table-CLqVqdxr.js.map +1 -0
- package/dist/shared/{hx-date-picker-Dq2Nb68_.js → hx-date-picker-BJm7Yrda.js} +45 -44
- package/dist/shared/hx-date-picker-BJm7Yrda.js.map +1 -0
- package/dist/shared/{hx-dialog-CvIlY0Tc.js → hx-dialog-DRN_1-Y-.js} +68 -63
- package/dist/shared/hx-dialog-DRN_1-Y-.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-Y1Ui2IWJ.js} +31 -30
- package/dist/shared/hx-drawer-Y1Ui2IWJ.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-D3rKROK5.js} +51 -59
- package/dist/shared/hx-file-upload-D3rKROK5.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-CGNdQSFM.js} +78 -69
- package/dist/shared/hx-icon-button-CGNdQSFM.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-9Ig2DW6L.js} +20 -19
- package/dist/shared/hx-link-9Ig2DW6L.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-C2omnPtj.js} +50 -49
- package/dist/shared/hx-menu-divider-C2omnPtj.js.map +1 -0
- package/dist/shared/{hx-meter-TbROk-dw.js → hx-meter-BPscsw5t.js} +41 -40
- package/dist/shared/{hx-meter-TbROk-dw.js.map → hx-meter-BPscsw5t.js.map} +1 -1
- package/dist/shared/{hx-nav-item-pqPasRUm.js → hx-nav-item-CqbO5-T5.js} +143 -81
- package/dist/shared/hx-nav-item-CqbO5-T5.js.map +1 -0
- package/dist/shared/{hx-nav-BcYDmjf7.js → hx-nav-ldFM3Fle.js} +54 -53
- package/dist/shared/hx-nav-ldFM3Fle.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-DCLsdIBy.js} +33 -29
- package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +1 -0
- package/dist/shared/{hx-pagination-AguTQjYC.js → hx-pagination-C7y8GVyU.js} +43 -42
- package/dist/shared/hx-pagination-C7y8GVyU.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-C19oxlrr.js} +13 -15
- package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -0
- package/dist/shared/{hx-popover-B2_203ct.js → hx-popover-B-FP3-wW.js} +31 -29
- package/dist/shared/hx-popover-B-FP3-wW.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-dFjUAost.js} +38 -37
- package/dist/shared/hx-radio-dFjUAost.js.map +1 -0
- package/dist/shared/{hx-rating-C3E3ENJb.js → hx-rating-CGtsejNf.js} +38 -37
- package/dist/shared/hx-rating-CGtsejNf.js.map +1 -0
- package/dist/shared/{hx-select-CixTo7jp.js → hx-select-Bf4usFts.js} +64 -61
- package/dist/shared/hx-select-Bf4usFts.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-m0aEClH1.js} +83 -79
- package/dist/shared/hx-slider-m0aEClH1.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-BxDFfx4D.js} +74 -59
- package/dist/shared/hx-split-button-BxDFfx4D.js.map +1 -0
- package/dist/shared/{hx-split-panel-C-1R10Mc.js → hx-split-panel-B-u0Z3mm.js} +16 -18
- package/dist/shared/hx-split-panel-B-u0Z3mm.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-R2rjp1fT.js} +60 -50
- package/dist/shared/hx-step-R2rjp1fT.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-DvAW4YY-.js} +29 -20
- package/dist/shared/hx-switch-DvAW4YY-.js.map +1 -0
- package/dist/shared/{hx-tab-panel-BIzKfW5i.js → hx-tab-panel-SWOEHuJc.js} +45 -44
- package/dist/shared/hx-tab-panel-SWOEHuJc.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-DnnEMIuA.js} +62 -62
- package/dist/shared/hx-td-DnnEMIuA.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-Bn7Gn8CI.js} +150 -72
- package/dist/shared/hx-text-input-Bn7Gn8CI.js.map +1 -0
- package/dist/shared/{hx-textarea-CK621vSL.js → hx-textarea-Jx1xnhgv.js} +108 -68
- package/dist/shared/hx-textarea-Jx1xnhgv.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-BoEIZwzv.js} +59 -52
- package/dist/shared/hx-time-picker-BoEIZwzv.js.map +1 -0
- package/dist/shared/{hx-toggle-button-L-uBJr-a.js → hx-toggle-button-DPAIh_Xo.js} +86 -69
- package/dist/shared/hx-toggle-button-DPAIh_Xo.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-DP6OFS8C.js} +31 -30
- package/dist/shared/hx-top-nav-DP6OFS8C.js.map +1 -0
- package/dist/shared/{hx-tree-item-A45WCiBu.js → hx-tree-item-Dt0Ozqyr.js} +29 -28
- package/dist/shared/hx-tree-item-Dt0Ozqyr.js.map +1 -0
- package/dist/shared/{toast-factory-BPPnG3mM.js → toast-factory-YSznocIV.js} +98 -72
- package/dist/shared/toast-factory-YSznocIV.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 +8690 -827
- 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-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 m, nothing as u, html as d } from "lit";
|
|
2
|
-
import { property as n, state as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
2
|
+
import { property as n, state as v, customElement as b } from "lit/decorators.js";
|
|
3
|
+
import { f } from "./forced-colors-CTEDFRGa.js";
|
|
4
|
+
import { H as x } from "./helix-element-BNEYeiys.js";
|
|
5
|
+
import { c as y } from "./id-counter-DuX8vsui.js";
|
|
6
|
+
const g = m`
|
|
6
7
|
:host {
|
|
7
8
|
display: block;
|
|
8
9
|
font-family: var(
|
|
@@ -66,15 +67,15 @@ const y = m`
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
`;
|
|
69
|
-
var
|
|
70
|
-
for (var r = a > 1 ? void 0 : a ?
|
|
70
|
+
var _ = Object.defineProperty, L = Object.getOwnPropertyDescriptor, c = (t, e, s, a) => {
|
|
71
|
+
for (var r = a > 1 ? void 0 : a ? L(e, s) : e, o = t.length - 1, l; o >= 0; o--)
|
|
71
72
|
(l = t[o]) && (r = (a ? l(e, s, r) : l(r)) || r);
|
|
72
|
-
return a && r &&
|
|
73
|
+
return a && r && _(e, s, r), r;
|
|
73
74
|
};
|
|
74
|
-
const
|
|
75
|
-
let i = class extends
|
|
75
|
+
const w = y("hx-breadcrumb");
|
|
76
|
+
let i = class extends x {
|
|
76
77
|
constructor() {
|
|
77
|
-
super(...arguments), this.separator = "/", this.label = "Breadcrumb", this.maxItems = 0, this.labelEllipsis = "Show all breadcrumb items", this.jsonLd = !1, this._showEllipsis = !1, this._jsonLdScript = null, this._managedCurrentItems = /* @__PURE__ */ new WeakSet(), this._jsonLdId = `${
|
|
78
|
+
super(...arguments), this.separator = "/", this.label = "Breadcrumb", this.maxItems = 0, this.labelEllipsis = "Show all breadcrumb items", this.jsonLd = !1, this._showEllipsis = !1, this._jsonLdScript = null, this._managedCurrentItems = /* @__PURE__ */ new WeakSet(), this._jsonLdId = `${w()}-ld`;
|
|
78
79
|
}
|
|
79
80
|
// ─── Item Helpers ───
|
|
80
81
|
/**
|
|
@@ -224,7 +225,7 @@ let i = class extends f {
|
|
|
224
225
|
`;
|
|
225
226
|
}
|
|
226
227
|
};
|
|
227
|
-
i.styles = [
|
|
228
|
+
i.styles = [g, f];
|
|
228
229
|
c([
|
|
229
230
|
n({ type: String })
|
|
230
231
|
], i.prototype, "separator", 2);
|
|
@@ -241,12 +242,12 @@ c([
|
|
|
241
242
|
n({ type: Boolean, attribute: "json-ld" })
|
|
242
243
|
], i.prototype, "jsonLd", 2);
|
|
243
244
|
c([
|
|
244
|
-
|
|
245
|
+
v()
|
|
245
246
|
], i.prototype, "_showEllipsis", 2);
|
|
246
247
|
i = c([
|
|
247
248
|
b("hx-breadcrumb")
|
|
248
249
|
], i);
|
|
249
|
-
const
|
|
250
|
+
const C = m`
|
|
250
251
|
:host {
|
|
251
252
|
display: inline-flex;
|
|
252
253
|
align-items: center;
|
|
@@ -264,7 +265,7 @@ const w = m`
|
|
|
264
265
|
}
|
|
265
266
|
|
|
266
267
|
[part='link'] {
|
|
267
|
-
color: var(--hx-breadcrumb-link-color, var(--hx-color-primary-600));
|
|
268
|
+
color: var(--hx-breadcrumb-link-color, var(--hx-color-primary-600, #0f7078));
|
|
268
269
|
text-decoration: none;
|
|
269
270
|
cursor: pointer;
|
|
270
271
|
font-family: inherit;
|
|
@@ -276,22 +277,19 @@ const w = m`
|
|
|
276
277
|
}
|
|
277
278
|
|
|
278
279
|
[part='link']:hover {
|
|
279
|
-
color: var(--hx-breadcrumb-link-hover-color, var(--hx-color-primary-700));
|
|
280
|
+
color: var(--hx-breadcrumb-link-hover-color, var(--hx-color-primary-700, #0f6363));
|
|
280
281
|
text-decoration: underline;
|
|
281
282
|
}
|
|
282
283
|
|
|
283
284
|
[part='link']:focus-visible {
|
|
284
285
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
285
|
-
var(
|
|
286
|
-
--hx-breadcrumb-link-focus-ring-color,
|
|
287
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500))
|
|
288
|
-
);
|
|
286
|
+
var(--hx-breadcrumb-link-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
289
287
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
290
288
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
[part='text'] {
|
|
294
|
-
color: var(--hx-breadcrumb-text-color, var(--hx-color-
|
|
292
|
+
color: var(--hx-breadcrumb-text-color, var(--hx-color-text-strong, #202b39));
|
|
295
293
|
font-family: inherit;
|
|
296
294
|
font-size: inherit;
|
|
297
295
|
max-width: var(--hx-breadcrumb-item-max-width);
|
|
@@ -302,7 +300,7 @@ const w = m`
|
|
|
302
300
|
|
|
303
301
|
.separator {
|
|
304
302
|
margin-inline: var(--hx-breadcrumb-separator-gap, var(--hx-space-1, 0.25rem));
|
|
305
|
-
color: var(--hx-breadcrumb-separator-color, var(--hx-color-
|
|
303
|
+
color: var(--hx-breadcrumb-separator-color, var(--hx-color-text-muted, #4a5362));
|
|
306
304
|
user-select: none;
|
|
307
305
|
}
|
|
308
306
|
|
|
@@ -336,12 +334,12 @@ const w = m`
|
|
|
336
334
|
}
|
|
337
335
|
}
|
|
338
336
|
`;
|
|
339
|
-
var
|
|
337
|
+
var I = Object.defineProperty, S = Object.getOwnPropertyDescriptor, h = (t, e, s, a) => {
|
|
340
338
|
for (var r = a > 1 ? void 0 : a ? S(e, s) : e, o = t.length - 1, l; o >= 0; o--)
|
|
341
339
|
(l = t[o]) && (r = (a ? l(e, s, r) : l(r)) || r);
|
|
342
|
-
return a && r &&
|
|
340
|
+
return a && r && I(e, s, r), r;
|
|
343
341
|
};
|
|
344
|
-
let p = class extends
|
|
342
|
+
let p = class extends x {
|
|
345
343
|
constructor() {
|
|
346
344
|
super(...arguments), this.href = void 0, this.dataBcLast = !1, this.current = !1;
|
|
347
345
|
}
|
|
@@ -357,7 +355,7 @@ let p = class extends f {
|
|
|
357
355
|
`;
|
|
358
356
|
}
|
|
359
357
|
};
|
|
360
|
-
p.styles = [
|
|
358
|
+
p.styles = [C, f];
|
|
361
359
|
h([
|
|
362
360
|
n({ type: String, reflect: !0 })
|
|
363
361
|
], p.prototype, "href", 2);
|
|
@@ -374,4 +372,4 @@ export {
|
|
|
374
372
|
i as H,
|
|
375
373
|
p as a
|
|
376
374
|
};
|
|
377
|
-
//# sourceMappingURL=hx-breadcrumb-item-
|
|
375
|
+
//# sourceMappingURL=hx-breadcrumb-item-3tKppF9h.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-breadcrumb-item-3tKppF9h.js","sources":["../../src/components/hx-breadcrumb/hx-breadcrumb.styles.ts","../../src/components/hx-breadcrumb/hx-breadcrumb.ts","../../src/components/hx-breadcrumb/hx-breadcrumb-item.styles.ts","../../src/components/hx-breadcrumb/hx-breadcrumb-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixBreadcrumbStyles = css`\n :host {\n display: block;\n font-family: var(\n --hx-breadcrumb-font-family,\n var(--hx-font-family-sans, system-ui, sans-serif)\n );\n font-size: var(--hx-breadcrumb-font-size, var(--hx-font-size-sm, 0.875rem));\n }\n\n [part='nav'] {\n /* nav landmark — no additional styling needed */\n }\n\n [part='list'] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n gap: 0;\n }\n\n /* Hide middle items when collapsed via maxItems */\n ::slotted([data-bc-hidden]) {\n display: none;\n }\n\n /*\n * Ellipsis ordering when collapsed (FS-014 fix):\n * The ellipsis <hx-breadcrumb-item> lives in shadow DOM to avoid mutating\n * the consumer's light DOM. CSS order places it between the first item\n * (order: 0, default) and the last item (order: 2) in the flex <ol>.\n */\n .hx-bc-ellipsis {\n order: 1;\n }\n\n ::slotted([data-bc-last]) {\n order: 2;\n }\n\n /* Visually hide the separator slot — used only to read text content.\n * display:none is intentional: the slot contains no interactive or focusable\n * content. If a future change adds focusable elements to this slot, switch to\n * visibility:hidden + position:absolute to preserve focus reachability. */\n .separator-slot {\n display: none;\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n /*\n * hx-breadcrumb is a nav container. Link colors and separators are handled\n * by hx-breadcrumb-item's own forced-colors block. No additional overrides needed\n * at the container level.\n */\n @media (forced-colors: active) {\n :host {\n forced-color-adjust: auto;\n }\n }\n`;\n","import { html, nothing, type PropertyValues } 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 { helixBreadcrumbStyles } from './hx-breadcrumb.styles.js';\n\n/** Typed schema.org ListItem entry for JSON-LD BreadcrumbList structured data. */\ninterface JsonLdListItem {\n '@type': string;\n position: number;\n name: string;\n item?: string;\n}\n\nconst _nextBreadcrumbId = createIdCounter('hx-breadcrumb');\n\n/**\n * Hierarchical page path navigation showing current location in site structure.\n *\n * @summary Navigation breadcrumb showing the page hierarchy. Works with Drupal's breadcrumb system.\n *\n * @tag hx-breadcrumb\n *\n * @slot - Default slot for hx-breadcrumb-item children.\n * @slot separator - Optional separator element. Its text content overrides the `separator` property.\n *\n * @csspart nav - The nav landmark element.\n * @csspart list - The ordered list containing items.\n *\n * @cssprop [--hx-breadcrumb-separator-content='/'] - Separator character between items.\n * NOTE: If overriding this custom property directly in CSS (rather than via the `separator`\n * attribute), the value MUST be quoted: `--hx-breadcrumb-separator-content: \">\"`. An unquoted\n * value is invalid for the CSS `content` property and will silently render nothing.\n * @cssprop [--hx-breadcrumb-separator-color=var(--hx-color-neutral-400)] - Separator color.\n * @cssprop [--hx-breadcrumb-separator-gap=var(--hx-space-1)] - Horizontal gap around separators.\n * @cssprop [--hx-breadcrumb-font-size=var(--hx-font-size-sm)] - Font size.\n * @cssprop [--hx-breadcrumb-link-color=var(--hx-color-primary-600)] - Link color.\n * @cssprop [--hx-breadcrumb-link-hover-color=var(--hx-color-primary-700)] - Link hover color.\n * @cssprop [--hx-breadcrumb-text-color=var(--hx-color-neutral-700)] - Current page text color.\n * @cssprop [--hx-breadcrumb-item-max-width] - Max-width for item text truncation (e.g. `12rem`).\n * @cssprop [--hx-breadcrumb-font-family] - CSS custom property.\n * @cssprop [--hx-font-family-sans] - Font family.\n * @cssprop [--hx-font-size-sm] - Font size.\n */\n@customElement('hx-breadcrumb')\nexport class HelixBreadcrumb extends HelixElement {\n static override styles = [helixBreadcrumbStyles, forcedColorsInteractive];\n\n /**\n * The separator character displayed between breadcrumb items.\n * @attr separator\n */\n @property({ type: String })\n separator = '/';\n\n /**\n * The accessible label for the nav landmark.\n * @attr label\n */\n @property({ type: String })\n label = 'Breadcrumb';\n\n /**\n * Maximum number of items to show before collapsing middle items with an ellipsis.\n * Set to 0 (default) to show all items. The ellipsis is a keyboard-accessible\n * button; activating it expands the full breadcrumb by setting maxItems to 0.\n * @attr max-items\n */\n @property({ type: Number, attribute: 'max-items' })\n maxItems = 0;\n\n /**\n * Accessible label for the expand ellipsis button. Override for i18n.\n * @attr label-ellipsis\n */\n @property({ attribute: 'label-ellipsis' }) labelEllipsis = 'Show all breadcrumb items';\n\n /**\n * When true, injects a JSON-LD BreadcrumbList structured data script into the document head.\n *\n * NOTE: Drupal manages `<head>` content via its own render pipeline. Injecting a\n * `<script>` directly via `document.head.appendChild()` in a Drupal context:\n * 1. Bypasses Drupal's deduplication and `hook_html_head_alter()` hook.\n * 2. Is not cacheable by Drupal's page cache.\n * 3. Will be wiped on BigPipe partial page replacements.\n *\n * For Drupal integrations, leave `json-ld` false and use the structured data\n * Twig template instead (see `hx-breadcrumb.twig` in the component directory).\n *\n * @attr json-ld\n */\n @property({ type: Boolean, attribute: 'json-ld' })\n jsonLd = false;\n\n /**\n * Whether the ellipsis expand button is currently shown (shadow DOM rendered).\n * Driven by maxItems collapse logic; replaces the old light-DOM ellipsis injection.\n * @internal\n */\n @state() private _showEllipsis = false;\n /** @internal */\n private _jsonLdScript: HTMLScriptElement | null = null;\n\n /**\n * Tracks which items had their `current` attribute set by this component\n * (as opposed to set by a consumer/Drupal template). This lets us re-evaluate\n * positional current-page detection on each slotchange without incorrectly\n * treating a previously component-set `current` attribute as a consumer-set\n * explicit override.\n * @internal\n */\n private readonly _managedCurrentItems = new WeakSet<Element>();\n\n /**\n * Stable per-instance ID used to tag the injected script element so that\n * multiple hx-breadcrumb instances on the same page don't produce conflicting\n * or duplicate structured-data blocks. Each instance owns exactly one script\n * tag identified by this ID; any stale tag from a previous render cycle is\n * removed before a new one is inserted.\n *\n * Uses a static counter (not Math.random()) so IDs are deterministic across\n * server and client renders, enabling SSR hydration matching.\n * @internal\n */\n private readonly _jsonLdId = `${_nextBreadcrumbId()}-ld`;\n\n // ─── Item Helpers ───\n\n /**\n * Returns only real breadcrumb items, excluding the managed ellipsis element.\n * @internal\n */\n private _getBreadcrumbItems(slot: HTMLSlotElement): Element[] {\n return slot\n .assignedElements({ flatten: true })\n .filter(\n (el) =>\n el.tagName.toLowerCase() === 'hx-breadcrumb-item' &&\n !el.classList.contains('hx-bc-ellipsis'),\n );\n }\n\n /**\n * Applies aria/state attributes to the item list.\n *\n * Current-page detection: if any item has an explicit `current` attribute\n * (e.g. set by a Drupal Twig template), that item is treated as the current\n * page. Otherwise the last item is the current page (default behaviour).\n *\n * This separation allows Drupal to control current-page marking without\n * relying on item order.\n * @internal\n */\n private _applyItemAttributes(items: Element[]): void {\n // Detect consumer-set 'current' attributes. An item has an explicit consumer\n // current if it has the 'current' attribute AND the component did not set it\n // (tracked via _managedCurrentItems). This prevents component-managed state\n // from being misread as a consumer override on subsequent slotchange events.\n const hasExplicitCurrent = items.some(\n (el) => el.hasAttribute('current') && !this._managedCurrentItems.has(el),\n );\n\n items.forEach((item, i) => {\n const el = item as HTMLElement;\n const isLast = i === items.length - 1;\n\n // Separator hiding: always positional — last item has no trailing separator.\n if (isLast) {\n el.setAttribute('data-bc-last', '');\n } else {\n el.removeAttribute('data-bc-last');\n }\n\n // Current-page marker: explicit consumer attribute wins over positional last.\n // The item component renders aria-current=\"page\" on its inner element\n // based on this attribute (see hx-breadcrumb-item.ts).\n if (!hasExplicitCurrent) {\n if (isLast) {\n el.setAttribute('current', '');\n this._managedCurrentItems.add(el);\n } else {\n el.removeAttribute('current');\n this._managedCurrentItems.delete(el);\n }\n }\n // When hasExplicitCurrent is true, leave 'current' attributes as-is so\n // consumer or Drupal template markup is not overridden.\n });\n }\n\n // ─── Slot Handling ───\n\n /** @internal */\n private _handleSlotChange(e: Event): void {\n if (!(e.target instanceof HTMLSlotElement)) return;\n const items = this._getBreadcrumbItems(e.target);\n\n // Handle collapse behaviour\n if (this.maxItems > 0 && items.length > this.maxItems) {\n this._applyCollapse(items);\n } else {\n this._removeCollapse(items);\n }\n\n this._applyItemAttributes(items);\n\n if (this.jsonLd) {\n this._updateJsonLd(items);\n }\n }\n\n /** @internal */\n private _handleSeparatorSlotChange(e: Event): void {\n if (!(e.target instanceof HTMLSlotElement)) return;\n const assigned = e.target.assignedElements({ flatten: true });\n if (assigned.length > 0) {\n const text = (assigned[0] as HTMLElement).textContent?.trim() ?? '';\n this.style.setProperty('--hx-breadcrumb-separator-content', JSON.stringify(text));\n }\n }\n\n // ─── Collapse ───\n\n /** @internal */\n private _applyCollapse(items: Element[]): void {\n // Show only first and last; hide all middle items via data attribute.\n // The ellipsis is rendered in shadow DOM (see render()) to avoid mutating\n // the consumer's light DOM structure (FS-014).\n items.forEach((item, i) => {\n const el = item as HTMLElement;\n if (i === 0 || i === items.length - 1) {\n el.removeAttribute('data-bc-hidden');\n } else {\n el.setAttribute('data-bc-hidden', '');\n }\n });\n\n this._showEllipsis = true;\n }\n\n /** @internal */\n private _removeCollapse(items: Element[]): void {\n items.forEach((item) => {\n (item as HTMLElement).removeAttribute('data-bc-hidden');\n });\n\n this._showEllipsis = false;\n }\n\n /**\n * Expands a collapsed breadcrumb by resetting maxItems to 0.\n * Called by the ellipsis expand button (click or Enter/Space).\n * @internal\n */\n private _expandBreadcrumb(): void {\n this.maxItems = 0;\n // updated() will detect the maxItems change and call _removeCollapse.\n }\n\n // ─── JSON-LD ───\n\n /**\n * JSON-LD ListItem entry with typed fields to avoid Record<string, unknown>.\n * @internal\n */\n private _buildListItem(item: Element, position: number): JsonLdListItem {\n const href = (item as HTMLElement).getAttribute('href');\n const name = (item as HTMLElement).textContent?.trim() ?? '';\n const entry: JsonLdListItem = {\n '@type': 'ListItem',\n position,\n name,\n };\n if (href) entry.item = href;\n return entry;\n }\n\n /** @internal */\n private _updateJsonLd(items: Element[]): void {\n const schema = {\n '@context': 'https://schema.org',\n '@type': 'BreadcrumbList',\n itemListElement: items.map((item, i) => this._buildListItem(item, i + 1)),\n };\n\n // Guard for SSR — document is unavailable server-side\n if (typeof document === 'undefined') return;\n\n if (!this._jsonLdScript) {\n // Dedup guard: remove any stale script with this instance's ID before\n // creating a fresh one. This handles the edge case where the element was\n // reconnected to the DOM after being disconnected without the script\n // reference being re-established.\n document.getElementById(this._jsonLdId)?.remove();\n\n this._jsonLdScript = document.createElement('script');\n this._jsonLdScript.type = 'application/ld+json';\n this._jsonLdScript.id = this._jsonLdId;\n this._jsonLdScript.setAttribute('data-hx-breadcrumb', '');\n document.head.appendChild(this._jsonLdScript);\n }\n\n this._jsonLdScript.textContent = JSON.stringify(schema);\n }\n\n /** @internal */\n private _removeJsonLd(): void {\n this._jsonLdScript?.remove();\n this._jsonLdScript = null;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Do NOT set role=\"list\" on the host. The shadow-DOM <nav><ol> provides\n // both navigation landmark and list semantics. Setting role=\"list\" on\n // the host conflicts with the <nav> child — axe-core flags\n // aria-required-children because a list cannot own a navigation landmark.\n // Slotted items no longer need role=\"listitem\" either; the native <ol>\n // handles list semantics in the composed accessibility tree.\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._removeJsonLd();\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n\n if (changedProperties.has('separator')) {\n // JSON.stringify wraps the string in quotes so the value is valid\n // for use in the CSS `content` property (e.g. '/' becomes '\"/\"').\n this.style.setProperty('--hx-breadcrumb-separator-content', JSON.stringify(this.separator));\n }\n\n if (changedProperties.has('maxItems')) {\n // Re-evaluate collapse state when maxItems changes programmatically\n // (e.g. when the expand button resets maxItems to 0).\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (slot) {\n const items = this._getBreadcrumbItems(slot);\n if (this.maxItems > 0 && items.length > this.maxItems) {\n this._applyCollapse(items);\n } else {\n this._removeCollapse(items);\n }\n this._applyItemAttributes(items);\n }\n }\n\n if (changedProperties.has('jsonLd')) {\n if (this.jsonLd) {\n // json-ld toggled on after initial render — inject script immediately.\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (slot) {\n this._updateJsonLd(this._getBreadcrumbItems(slot));\n }\n } else {\n // json-ld toggled off — remove existing script.\n this._removeJsonLd();\n }\n }\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <nav part=\"nav\" aria-label=${this.label}>\n <ol part=\"list\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n ${this._showEllipsis\n ? html`\n <hx-breadcrumb-item class=\"hx-bc-ellipsis\">\n <button\n type=\"button\"\n aria-label=${this.labelEllipsis}\n @click=${this._expandBreadcrumb}\n >\n …\n </button>\n </hx-breadcrumb-item>\n `\n : nothing}\n </ol>\n </nav>\n <slot\n name=\"separator\"\n class=\"separator-slot\"\n @slotchange=${this._handleSeparatorSlotChange}\n ></slot>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-breadcrumb': HelixBreadcrumb;\n }\n}\n","import { css } from 'lit';\n\nexport const helixBreadcrumbItemStyles = css`\n :host {\n display: inline-flex;\n align-items: center;\n }\n\n /*\n * display: contents removes [part='item'] from the box model entirely.\n * This is intentional — the wrapper exists only for slot selection purposes.\n * Consumers using ::part(item) CANNOT apply box-model properties (padding,\n * margin, background, border) to this part. Use ::part(link) or ::part(text)\n * for visual styling of breadcrumb item content.\n */\n [part='item'] {\n display: contents;\n }\n\n [part='link'] {\n color: var(--hx-breadcrumb-link-color, var(--hx-color-primary-600, #0f7078));\n text-decoration: none;\n cursor: pointer;\n font-family: inherit;\n font-size: inherit;\n max-width: var(--hx-breadcrumb-item-max-width);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n [part='link']:hover {\n color: var(--hx-breadcrumb-link-hover-color, var(--hx-color-primary-700, #0f6363));\n text-decoration: underline;\n }\n\n [part='link']:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-breadcrumb-link-focus-ring-color, var(--hx-focus-ring-color, #0f7078));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n }\n\n [part='text'] {\n color: var(--hx-breadcrumb-text-color, var(--hx-color-text-strong, #202b39));\n font-family: inherit;\n font-size: inherit;\n max-width: var(--hx-breadcrumb-item-max-width);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .separator {\n margin-inline: var(--hx-breadcrumb-separator-gap, var(--hx-space-1, 0.25rem));\n color: var(--hx-breadcrumb-separator-color, var(--hx-color-text-muted, #4a5362));\n user-select: none;\n }\n\n .separator::before {\n content: var(--hx-breadcrumb-separator-content, '/');\n }\n\n /* Normalize buttons slotted into breadcrumb items (e.g. the expand-ellipsis button). */\n ::slotted(button) {\n background: none;\n border: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n padding: 0;\n }\n\n /* ─── Forced Colors (Windows High Contrast) ─── */\n\n @media (forced-colors: active) {\n [part='link'] {\n color: LinkText;\n }\n\n [part='link']:hover {\n color: LinkText;\n }\n\n .separator {\n color: CanvasText;\n }\n }\n`;\n","import { html, nothing } 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 { helixBreadcrumbItemStyles } from './hx-breadcrumb-item.styles.js';\n\n/**\n * A single breadcrumb navigation item.\n *\n * @summary A navigation item within an hx-breadcrumb component. Renders as a link when `href` is\n * provided, or as static text for the current page item. The current page item is determined by\n * the `current` attribute (set explicitly or automatically by the parent `hx-breadcrumb`).\n *\n * @tag hx-breadcrumb-item\n *\n * @slot - The link or page text content. Accepts text, HTML, or icon elements.\n *\n * @csspart item - Wrapper around the link or text content.\n * @csspart link - The anchor element when href is provided (non-current items only).\n * @csspart text - The span element for the current page or items without href.\n * @csspart separator - The separator element rendered after non-last items.\n *\n * @cssprop [--hx-breadcrumb-link-color=var(--hx-color-primary-600)] - Link text color.\n * @cssprop [--hx-breadcrumb-link-hover-color=var(--hx-color-primary-700)] - Link hover text color.\n * @cssprop [--hx-breadcrumb-text-color=var(--hx-color-neutral-700)] - Current page text color.\n * @cssprop [--hx-breadcrumb-separator-content='/'] - Separator character displayed after non-last items.\n * @cssprop [--hx-breadcrumb-separator-color=var(--hx-color-neutral-400)] - Separator color.\n * @cssprop [--hx-breadcrumb-separator-gap=var(--hx-space-1)] - Horizontal margin around separator.\n * @cssprop [--hx-breadcrumb-item-max-width] - Optional max-width for text truncation.\n * @cssprop [--hx-breadcrumb-link-focus-ring-color=var(--hx-focus-ring-color, var(--hx-color-primary-500))] - Focus ring color for breadcrumb links.\n */\n@customElement('hx-breadcrumb-item')\nexport class HelixBreadcrumbItem extends HelixElement {\n static override styles = [helixBreadcrumbItemStyles, forcedColorsInteractive];\n\n override connectedCallback(): void {\n super.connectedCallback();\n // No explicit role needed. The shadow-DOM <ol> inside hx-breadcrumb\n // provides native list semantics; slotted items are projected into it.\n // Previously role=\"listitem\" was set here, but it conflicted with the\n // host's role=\"list\" + shadow-DOM <nav> structure (aria-required-children).\n // The native <ol> handles the accessibility tree correctly without\n // explicit ARIA roles on host or items.\n }\n\n /**\n * The URL for this breadcrumb link. Omit for the current page item.\n * When `current` is true, this attribute is ignored and the item always\n * renders as static text per WAI-ARIA APG breadcrumb guidance.\n * @attr href\n */\n @property({ type: String, reflect: true })\n href: string | undefined = undefined;\n\n /**\n * Whether this is the last item in the breadcrumb trail. Set by the parent\n * hx-breadcrumb component via the `data-bc-last` boolean attribute. When\n * present the trailing separator is hidden.\n *\n * @attr data-bc-last\n * @internal\n */\n @property({ type: Boolean, attribute: 'data-bc-last', reflect: true })\n dataBcLast = false;\n\n /**\n * Marks this item as the current page. When set, the item always renders as\n * static text (never a navigable link) and `aria-current=\"page\"` is placed on\n * the inner text element per WAI-ARIA APG breadcrumb guidance, yielding the\n * canonical AT announcement (\"current page, Patient Records\").\n *\n * Can be set explicitly by consumers (e.g. Drupal Twig templates) to override\n * the default positional last-item detection in `hx-breadcrumb`. When any item\n * in the breadcrumb has an explicit `current` attribute, the parent will not\n * override it.\n *\n * @attr current\n */\n @property({ type: Boolean, reflect: true })\n current = false;\n\n override render() {\n // Per WAI-ARIA APG, the current page item MUST NOT be a navigable link.\n // aria-current=\"page\" is placed on the inner element (not the listitem host)\n // for canonical AT announcement (\"current page, Patient Records\" vs\n // \"current page, list item\").\n return html`\n <span part=\"item\">\n ${this.current\n ? html`<span part=\"text\" aria-current=\"page\"><slot></slot></span>`\n : this.href\n ? html`<a part=\"link\" href=${this.href}><slot></slot></a>`\n : html`<span part=\"text\"><slot></slot></span>`}\n </span>\n ${!this.dataBcLast\n ? html`<span class=\"separator\" part=\"separator\" aria-hidden=\"true\"></span>`\n : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-breadcrumb-item': HelixBreadcrumbItem;\n }\n}\n"],"names":["helixBreadcrumbStyles","css","_nextBreadcrumbId","createIdCounter","HelixBreadcrumb","HelixElement","slot","el","items","hasExplicitCurrent","item","i","isLast","e","assigned","text","_a","position","href","name","entry","schema","changedProperties","_b","html","nothing","forcedColorsInteractive","__decorateClass","property","state","customElement","helixBreadcrumbItemStyles","HelixBreadcrumbItem"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { css as v, html as
|
|
2
|
-
import { property as a, customElement as
|
|
3
|
-
import { classMap as
|
|
4
|
-
import { ifDefined as
|
|
5
|
-
import { d as
|
|
6
|
-
import { m as
|
|
7
|
-
import { H as
|
|
1
|
+
import { css as v, html as d, nothing as s } from "lit";
|
|
2
|
+
import { property as a, customElement as f } from "lit/decorators.js";
|
|
3
|
+
import { classMap as c } from "lit/directives/class-map.js";
|
|
4
|
+
import { ifDefined as u } from "lit/directives/if-defined.js";
|
|
5
|
+
import { d as p } from "./dev-warn-YlwPHjtX.js";
|
|
6
|
+
import { m as g } from "./aria-delegation-Doq6RRUy.js";
|
|
7
|
+
import { H as x } from "./helix-element-BNEYeiys.js";
|
|
8
8
|
const m = v`
|
|
9
9
|
:host {
|
|
10
10
|
display: inline-block;
|
|
@@ -34,7 +34,7 @@ const m = v`
|
|
|
34
34
|
gap: var(--hx-space-2, 0.5rem);
|
|
35
35
|
border: var(--hx-border-width-thin, 1px) solid var(--hx-button-border-color, transparent);
|
|
36
36
|
border-radius: var(--hx-button-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
37
|
-
background-color: var(--hx-button-bg, var(--hx-color-primary-500, #
|
|
37
|
+
background-color: var(--hx-button-bg, var(--hx-color-primary-500, #429797));
|
|
38
38
|
color: var(--hx-button-color, var(--hx-color-neutral-0, #ffffff));
|
|
39
39
|
font-family: var(--hx-button-font-family, var(--hx-font-family-sans, sans-serif));
|
|
40
40
|
font-weight: var(--hx-button-font-weight, var(--hx-font-weight-semibold, 600));
|
|
@@ -53,7 +53,7 @@ const m = v`
|
|
|
53
53
|
|
|
54
54
|
.button:focus-visible {
|
|
55
55
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
56
|
-
var(--hx-button-focus-ring-color, var(--hx-focus-ring-color,
|
|
56
|
+
var(--hx-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
57
57
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -91,63 +91,108 @@ const m = v`
|
|
|
91
91
|
/* ─── Style Variants ─── */
|
|
92
92
|
|
|
93
93
|
.button--primary {
|
|
94
|
-
--hx-button-bg: var(--hx-color-primary-
|
|
95
|
-
|
|
94
|
+
--hx-button-bg: var(--hx-color-action-primary-bg, #429797);
|
|
95
|
+
/* Inline #0d1825 matches text.on-primary's resolved primitive (neutral-900);
|
|
96
|
+
cold-start without the semantic still paints AA-tuned dark-on-primary
|
|
97
|
+
rather than white-on-primary (3.43:1 fail). */
|
|
98
|
+
--hx-button-color: var(--hx-color-text-on-primary, #0d1825);
|
|
96
99
|
--hx-button-border-color: transparent;
|
|
97
100
|
}
|
|
98
101
|
|
|
99
102
|
.button--secondary {
|
|
100
103
|
--hx-button-bg: transparent;
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
/* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
|
|
105
|
+
primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
|
|
106
|
+
--hx-button-color: var(--hx-color-action-secondary-fg, #0f7078);
|
|
107
|
+
--hx-button-border-color: var(--hx-color-action-secondary-border, #0f7078);
|
|
103
108
|
}
|
|
104
109
|
|
|
105
110
|
.button--secondary:hover {
|
|
106
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
111
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-secondary-bg-hover, #ebf8f8));
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
.button--tertiary {
|
|
110
|
-
--hx-button-bg: var(--hx-color-
|
|
111
|
-
--hx-button-color: var(--hx-color-
|
|
115
|
+
--hx-button-bg: var(--hx-color-surface-sunken, #ebeee9);
|
|
116
|
+
--hx-button-color: var(--hx-color-text-primary, #0d1825);
|
|
112
117
|
--hx-button-border-color: transparent;
|
|
113
118
|
}
|
|
114
119
|
|
|
115
120
|
.button--tertiary:hover {
|
|
116
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
121
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-surface-raised, #f5f8f3));
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
.button--danger {
|
|
120
|
-
--hx-button-bg: var(--hx-color-
|
|
121
|
-
|
|
125
|
+
--hx-button-bg: var(--hx-color-action-danger-bg, #e5493e);
|
|
126
|
+
/* Inline #0d1825 matches text.on-error's resolved primitive (neutral-900);
|
|
127
|
+
cold-start without the semantic still paints AA-tuned dark-on-error
|
|
128
|
+
rather than white-on-error (3.92:1 fail). */
|
|
129
|
+
--hx-button-color: var(--hx-color-text-on-error, #0d1825);
|
|
122
130
|
--hx-button-border-color: transparent;
|
|
123
131
|
}
|
|
124
132
|
|
|
133
|
+
/* on-error tokens are tuned for error-500 (neutral-900 on #E5493E ≈ 4.59:1).
|
|
134
|
+
error-600 (#C92A2A) drops that to 3.28:1 — AA fail. text.on-error-strong
|
|
135
|
+
resolves to neutral-0 across modes (no dark flip) so the darker hover fill
|
|
136
|
+
stays legible. Mirrors hx-toast precedent (commit 300e21ab0); routed
|
|
137
|
+
through the semantic tier in 3.2.1 token-cascade remediation. */
|
|
125
138
|
.button--danger:hover {
|
|
126
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
139
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-hover, #c92a2a));
|
|
140
|
+
--hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* Pressed state binds explicitly to action.danger.bg-active (error-700,
|
|
144
|
+
#A21312) + text.on-error-strong (neutral-0) = 7.96:1 AA. Base
|
|
145
|
+
.button:active filter:brightness(0.8) would compound on top of bg-hover
|
|
146
|
+
(#C92A2A) and produce ~3.3:1 sub-AA on the bound colors. Override the
|
|
147
|
+
filter to none. HC override on action.danger.bg-active flips to HC
|
|
148
|
+
error-500 so the on-error-strong (HC = #000) pair is AA in HC too. */
|
|
149
|
+
.button--danger:active {
|
|
150
|
+
--hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-danger-bg-active, #a21312));
|
|
151
|
+
--hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
|
|
152
|
+
filter: none;
|
|
127
153
|
}
|
|
128
154
|
|
|
129
155
|
.button--ghost {
|
|
130
156
|
--hx-button-bg: transparent;
|
|
131
|
-
|
|
157
|
+
/* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
|
|
158
|
+
primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
|
|
159
|
+
--hx-button-color: var(--hx-color-action-ghost-fg, #0f7078);
|
|
132
160
|
--hx-button-border-color: transparent;
|
|
133
161
|
}
|
|
134
162
|
|
|
135
163
|
.button--ghost:hover {
|
|
136
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
164
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-ghost-bg-hover, #ebf8f8));
|
|
137
165
|
}
|
|
138
166
|
|
|
139
167
|
.button--outline {
|
|
140
168
|
--hx-button-bg: transparent;
|
|
141
|
-
--hx-button-color: var(--hx-color-
|
|
142
|
-
--hx-button-border-color: var(--hx-color-
|
|
169
|
+
--hx-button-color: var(--hx-color-text-primary, #0d1825);
|
|
170
|
+
--hx-button-border-color: var(--hx-color-border-strong, #66787b);
|
|
143
171
|
}
|
|
144
172
|
|
|
145
173
|
.button--outline:hover {
|
|
146
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
174
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-surface-raised, #f5f8f3));
|
|
147
175
|
}
|
|
148
176
|
|
|
177
|
+
/* on-primary token resolves to neutral-900 (#0D1825) — tuned for primary-500.
|
|
178
|
+
primary-600 (#0F7078) drops the pair to 3.07:1 — AA fail. text.on-primary-strong
|
|
179
|
+
resolves to neutral-0 across modes (no dark flip) for the darker hover fill.
|
|
180
|
+
Mirrors hx-toast precedent (commit 300e21ab0); routed through the semantic
|
|
181
|
+
tier in 3.2.1 token-cascade remediation. */
|
|
149
182
|
.button--primary:hover {
|
|
150
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-primary-
|
|
183
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-hover, #0f7078));
|
|
184
|
+
--hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* Pressed state binds explicitly to action.primary.bg-active (primary-700,
|
|
188
|
+
#0F6363) + text.on-primary-strong (neutral-0) = 7.03:1 AA. The base
|
|
189
|
+
.button:active filter:brightness(0.8) would compound on top of bg-hover
|
|
190
|
+
(#0F7078) and produce ~3.7:1 sub-AA on the bound colors. Override the
|
|
191
|
+
filter to none so the action.*.bg-active token is what actually paints. */
|
|
192
|
+
.button--primary:active {
|
|
193
|
+
--hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-primary-bg-active, #0f6363));
|
|
194
|
+
--hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
195
|
+
filter: none;
|
|
151
196
|
}
|
|
152
197
|
|
|
153
198
|
/* ─── Disabled ─── */
|
|
@@ -191,9 +236,19 @@ const m = v`
|
|
|
191
236
|
|
|
192
237
|
/* ─── Inverted Mode ─── */
|
|
193
238
|
|
|
239
|
+
/* Inline-fallback contract for --hx-color-border-on-dark-* in this section:
|
|
240
|
+
the literal rgba(255, 255, 255, 0.X) arms are a LIGHT-MODE-only last
|
|
241
|
+
resort (cold-start, CSS-not-loaded). At runtime, hx-theme injects
|
|
242
|
+
dark.color.border.on-dark-* as overlay-black-* so dark-mode inverted
|
|
243
|
+
buttons stay visible on the now-light surface.inverse (#EBEEE9). The
|
|
244
|
+
inline white overlays would render invisible (≈1.1:1) on a light surface,
|
|
245
|
+
but they never paint when the theme is mounted. If a future change moves
|
|
246
|
+
these into a context where hx-theme is not guaranteed, replace with
|
|
247
|
+
mode-aware tokens. */
|
|
248
|
+
|
|
194
249
|
/* Override text color and filter-based hover/active for all variants */
|
|
195
250
|
:host([inverted]) .button {
|
|
196
|
-
color: var(--hx-button-inverted-color, var(--hx-color-
|
|
251
|
+
color: var(--hx-button-inverted-color, var(--hx-color-text-inverse, #ffffff));
|
|
197
252
|
filter: none;
|
|
198
253
|
}
|
|
199
254
|
|
|
@@ -206,37 +261,89 @@ const m = v`
|
|
|
206
261
|
}
|
|
207
262
|
|
|
208
263
|
:host([inverted]) .button:focus-visible {
|
|
264
|
+
/* WCAG 1.4.11: focus indicator needs ≥3:1 against adjacent colors.
|
|
265
|
+
border-on-dark-default (overlay-white-30) ≈ 2.7:1 on neutral-900 — fails.
|
|
266
|
+
border-on-dark-strong (overlay-white-70) ≈ 5:1 — passes. */
|
|
209
267
|
outline-color: var(
|
|
210
268
|
--hx-button-inverted-focus-ring-color,
|
|
211
|
-
var(--hx-
|
|
269
|
+
var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7))
|
|
212
270
|
);
|
|
213
271
|
}
|
|
214
272
|
|
|
215
|
-
/* Primary inverted —
|
|
216
|
-
|
|
217
|
-
|
|
273
|
+
/* Primary inverted — resting bg routes through action.primary.bg-inverted-rest
|
|
274
|
+
so dark mode can flip the fill to primary-600. surface.inverse becomes light
|
|
275
|
+
(#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
|
|
276
|
+
fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
|
|
277
|
+
(AA pass). Light mode tracks action.primary.bg (primary-500, 5.20:1 on
|
|
278
|
+
dark surface.inverse). */
|
|
279
|
+
:host([inverted]) .button--primary {
|
|
280
|
+
--hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/* Primary inverted — hover/pressed lift to action.primary.bg-inverted-hover
|
|
284
|
+
(primary-400, light teal). The base :host([inverted]) .button rule binds
|
|
285
|
+
color to text.inverse, which flips by mode (neutral-0 in light, neutral-900
|
|
286
|
+
in dark). On a permanent light-teal fill, white text drops to 2.4:1 in
|
|
287
|
+
light mode (AA fail). Pin color to text.on-primary (neutral-900, no
|
|
288
|
+
dark-mode flip) for both hover and active so the foreground is dark in
|
|
289
|
+
both modes — neutral-900 on primary-400 = 7.27:1 (AA pass).
|
|
290
|
+
Pressed === hover visually in inverted mode is acceptable UX (the
|
|
291
|
+
transient absence of pointer over the button signals release).
|
|
292
|
+
The fallback chain wraps --hx-button-active-bg (highest precedence) and
|
|
293
|
+
--hx-button-hover-bg so consumer overrides on either prop apply under
|
|
294
|
+
:host([inverted]) — the two share a paint here, so either knob is
|
|
295
|
+
honored, with active-bg winning when both are set. */
|
|
296
|
+
:host([inverted]) .button--primary:hover,
|
|
297
|
+
:host([inverted]) .button--primary:active {
|
|
298
|
+
--hx-button-bg: var(
|
|
299
|
+
--hx-button-active-bg,
|
|
300
|
+
var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-inverted-hover, #6ab1b1))
|
|
301
|
+
);
|
|
302
|
+
color: var(
|
|
303
|
+
--hx-button-inverted-primary-interactive-color,
|
|
304
|
+
var(--hx-color-text-on-primary, #0d1825)
|
|
305
|
+
);
|
|
218
306
|
}
|
|
219
307
|
|
|
220
|
-
/*
|
|
308
|
+
/* Danger inverted — sister to primary. Hover/pressed lift to
|
|
309
|
+
action.danger.bg-inverted-hover (error-400, #FC7264). Same foreground
|
|
310
|
+
contract: text.inverse fails in light mode (white on light red ≈ 2.6:1);
|
|
311
|
+
pin to text.on-error (neutral-900, no dark-mode flip) for 6.58:1 in both
|
|
312
|
+
modes. Same active-bg → hover-bg → semantic fallback chain as primary. */
|
|
313
|
+
:host([inverted]) .button--danger:hover,
|
|
314
|
+
:host([inverted]) .button--danger:active {
|
|
315
|
+
--hx-button-bg: var(
|
|
316
|
+
--hx-button-active-bg,
|
|
317
|
+
var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-inverted-hover, #fc7264))
|
|
318
|
+
);
|
|
319
|
+
color: var(
|
|
320
|
+
--hx-button-inverted-danger-interactive-color,
|
|
321
|
+
var(--hx-color-text-on-error, #0d1825)
|
|
322
|
+
);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/* Secondary inverted — white border and translucent hover fill */
|
|
221
326
|
:host([inverted]) .button--secondary {
|
|
222
|
-
--hx-button-border-color: var(--hx-
|
|
327
|
+
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
223
328
|
}
|
|
224
329
|
|
|
225
330
|
:host([inverted]) .button--secondary:hover {
|
|
226
|
-
--hx-button-bg: var(--hx-
|
|
331
|
+
--hx-button-bg: var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3));
|
|
227
332
|
}
|
|
228
333
|
|
|
229
|
-
/* Tertiary inverted
|
|
334
|
+
/* Tertiary inverted — resting at subtle (10%) lifts to default (30%) on hover
|
|
335
|
+
so the runtime hover delta is visually distinct, not collapsed onto a
|
|
336
|
+
single token. */
|
|
230
337
|
:host([inverted]) .button--tertiary {
|
|
231
|
-
--hx-button-bg: var(--hx-
|
|
338
|
+
--hx-button-bg: var(--hx-color-border-on-dark-subtle, rgba(255, 255, 255, 0.1));
|
|
232
339
|
--hx-button-border-color: transparent;
|
|
233
340
|
}
|
|
234
341
|
|
|
235
342
|
:host([inverted]) .button--tertiary:hover {
|
|
236
|
-
--hx-button-bg: var(--hx-
|
|
343
|
+
--hx-button-bg: var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3));
|
|
237
344
|
}
|
|
238
345
|
|
|
239
|
-
/* Ghost inverted — transparent base,
|
|
346
|
+
/* Ghost inverted — transparent base, translucent hover bg */
|
|
240
347
|
:host([inverted]) .button--ghost {
|
|
241
348
|
--hx-button-bg: transparent;
|
|
242
349
|
--hx-button-border-color: transparent;
|
|
@@ -245,17 +352,17 @@ const m = v`
|
|
|
245
352
|
:host([inverted]) .button--ghost:hover {
|
|
246
353
|
--hx-button-bg: var(
|
|
247
354
|
--hx-button-inverted-ghost-hover-bg,
|
|
248
|
-
var(--hx-
|
|
355
|
+
var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3))
|
|
249
356
|
);
|
|
250
357
|
}
|
|
251
358
|
|
|
252
359
|
/* Outline inverted — white border */
|
|
253
360
|
:host([inverted]) .button--outline {
|
|
254
|
-
--hx-button-border-color: var(--hx-
|
|
361
|
+
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
255
362
|
}
|
|
256
363
|
|
|
257
364
|
:host([inverted]) .button--outline:hover {
|
|
258
|
-
--hx-button-bg: var(--hx-
|
|
365
|
+
--hx-button-bg: var(--hx-color-border-on-dark-default, rgba(255, 255, 255, 0.3));
|
|
259
366
|
}
|
|
260
367
|
|
|
261
368
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -283,6 +390,16 @@ const m = v`
|
|
|
283
390
|
border: 2px solid ButtonText;
|
|
284
391
|
}
|
|
285
392
|
|
|
393
|
+
.button:hover {
|
|
394
|
+
/* Hover affordance must survive in HC. Highlight/HighlightText is the
|
|
395
|
+
OS-level "selected" pair, mirroring the forcedColorsInteractive mixin's
|
|
396
|
+
hover contract — kept inline since this component owns its bespoke HC
|
|
397
|
+
block (XOR rule). */
|
|
398
|
+
background-color: Highlight;
|
|
399
|
+
color: HighlightText;
|
|
400
|
+
border-color: Highlight;
|
|
401
|
+
}
|
|
402
|
+
|
|
286
403
|
.button:focus-visible {
|
|
287
404
|
outline: 3px solid Highlight;
|
|
288
405
|
outline-offset: 2px;
|
|
@@ -305,12 +422,12 @@ const m = v`
|
|
|
305
422
|
}
|
|
306
423
|
}
|
|
307
424
|
`;
|
|
308
|
-
var y = Object.defineProperty,
|
|
309
|
-
for (var o = i > 1 ? void 0 : i ?
|
|
425
|
+
var y = Object.defineProperty, k = Object.getOwnPropertyDescriptor, n = (t, r, h, i) => {
|
|
426
|
+
for (var o = i > 1 ? void 0 : i ? k(r, h) : r, l = t.length - 1, b; l >= 0; l--)
|
|
310
427
|
(b = t[l]) && (o = (i ? b(r, h, o) : b(o)) || o);
|
|
311
428
|
return i && o && y(r, h, o), o;
|
|
312
429
|
};
|
|
313
|
-
let e = class extends
|
|
430
|
+
let e = class extends g(x) {
|
|
314
431
|
constructor() {
|
|
315
432
|
super(...arguments), this.variant = "primary", this.size = "md", this.disabled = !1, this.loading = !1, this.type = "button", this.href = void 0, this.target = void 0, this.name = void 0, this.value = void 0, this.full = !1, this.inverted = !1, this.accessibleLabel = "", this._emptySlotWarnEmitted = !1;
|
|
316
433
|
}
|
|
@@ -341,7 +458,7 @@ let e = class extends f(g) {
|
|
|
341
458
|
updated(t) {
|
|
342
459
|
if (super.updated(t), t.has("variant")) {
|
|
343
460
|
const r = [...e._VALID_VARIANTS];
|
|
344
|
-
r.includes(this.variant) || (
|
|
461
|
+
r.includes(this.variant) || (p(
|
|
345
462
|
"hx-button",
|
|
346
463
|
`Invalid variant "${this.variant}". Expected one of: ${r.join(", ")}. Clamping to "primary".`
|
|
347
464
|
), this.variant = "primary");
|
|
@@ -380,7 +497,7 @@ let e = class extends f(g) {
|
|
|
380
497
|
* @internal
|
|
381
498
|
*/
|
|
382
499
|
_renderSpinner() {
|
|
383
|
-
return
|
|
500
|
+
return d`
|
|
384
501
|
<svg
|
|
385
502
|
class="button__spinner"
|
|
386
503
|
part="spinner"
|
|
@@ -412,7 +529,7 @@ let e = class extends f(g) {
|
|
|
412
529
|
* @internal
|
|
413
530
|
*/
|
|
414
531
|
_renderInner() {
|
|
415
|
-
return
|
|
532
|
+
return d`
|
|
416
533
|
${this.loading ? this._renderSpinner() : s}
|
|
417
534
|
<span part="prefix" class="button__prefix">
|
|
418
535
|
<slot name="prefix"></slot>
|
|
@@ -433,12 +550,12 @@ let e = class extends f(g) {
|
|
|
433
550
|
[`button--${this.size}`]: !0,
|
|
434
551
|
"button--loading": this.loading
|
|
435
552
|
};
|
|
436
|
-
return this.href !== void 0 ?
|
|
553
|
+
return this.href !== void 0 ? d`
|
|
437
554
|
<a
|
|
438
555
|
part="button"
|
|
439
|
-
class=${
|
|
440
|
-
href=${this.disabled || this.loading ? s :
|
|
441
|
-
target=${
|
|
556
|
+
class=${c(t)}
|
|
557
|
+
href=${this.disabled || this.loading ? s : u(this.href)}
|
|
558
|
+
target=${u(this.target)}
|
|
442
559
|
rel=${this.target === "_blank" ? "noopener noreferrer" : s}
|
|
443
560
|
aria-label=${this._effectiveLabel || s}
|
|
444
561
|
aria-disabled=${this.disabled ? "true" : s}
|
|
@@ -448,10 +565,10 @@ let e = class extends f(g) {
|
|
|
448
565
|
>
|
|
449
566
|
${this._renderInner()}
|
|
450
567
|
</a>
|
|
451
|
-
` :
|
|
568
|
+
` : d`
|
|
452
569
|
<button
|
|
453
570
|
part="button"
|
|
454
|
-
class=${
|
|
571
|
+
class=${c(t)}
|
|
455
572
|
?disabled=${this.disabled}
|
|
456
573
|
type=${this.type}
|
|
457
574
|
aria-label=${this._effectiveLabel || s}
|
|
@@ -510,9 +627,9 @@ n([
|
|
|
510
627
|
a({ type: String, attribute: "accessible-label" })
|
|
511
628
|
], e.prototype, "accessibleLabel", 2);
|
|
512
629
|
e = n([
|
|
513
|
-
|
|
630
|
+
f("hx-button")
|
|
514
631
|
], e);
|
|
515
632
|
export {
|
|
516
633
|
e as H
|
|
517
634
|
};
|
|
518
|
-
//# sourceMappingURL=hx-button-
|
|
635
|
+
//# sourceMappingURL=hx-button-9OUjJnk7.js.map
|