@helixui/library 1.1.1 → 1.1.2-next.10
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 +3336 -2337
- package/dist/base/helix-element.d.ts +134 -0
- package/dist/base/helix-element.d.ts.map +1 -0
- package/dist/base/id-counter.d.ts +32 -0
- package/dist/base/id-counter.d.ts.map +1 -0
- package/dist/base/index.d.ts +4 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/styles.d.ts +19 -0
- package/dist/base/styles.d.ts.map +1 -0
- package/dist/components/hx-accordion/hx-accordion-item.d.ts +3 -0
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion.d.ts +4 -1
- package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -1
- package/dist/components/hx-accordion/index.js +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.d.ts +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
- package/dist/components/hx-action-bar/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.d.ts +18 -10
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
- 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.styles.d.ts.map +1 -1
- package/dist/components/hx-avatar/index.js +1 -1
- package/dist/components/hx-badge/hx-badge.d.ts.map +1 -1
- package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
- package/dist/components/hx-badge/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.d.ts +15 -5
- package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
- 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 +1 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +42 -11
- 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 +22 -13
- 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 +3 -6
- package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
- package/dist/components/hx-button-group/index.js +1 -1
- package/dist/components/hx-card/hx-card.d.ts +7 -7
- package/dist/components/hx-card/hx-card.d.ts.map +1 -1
- package/dist/components/hx-card/index.js +1 -1
- package/dist/components/hx-carousel/hx-carousel.d.ts +2 -2
- package/dist/components/hx-carousel/index.js +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -18
- package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.styles.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 +8 -3
- 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 +134 -0
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -0
- package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts +2 -0
- package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -0
- package/dist/components/hx-clinical-status/index.d.ts +3 -0
- package/dist/components/hx-clinical-status/index.d.ts.map +1 -0
- package/dist/components/hx-clinical-status/index.js +5 -0
- package/dist/components/hx-clinical-status/index.js.map +1 -0
- 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/color-utils.d.ts +27 -0
- package/dist/components/hx-color-picker/color-utils.d.ts.map +1 -0
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +16 -4
- package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts +9 -4
- package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
- package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-container/index.js +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts +6 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
- package/dist/components/hx-copy-button/index.js +1 -1
- package/dist/components/hx-counter/hx-counter.d.ts +20 -3
- package/dist/components/hx-counter/hx-counter.d.ts.map +1 -1
- package/dist/components/hx-counter/hx-counter.styles.d.ts.map +1 -1
- package/dist/components/hx-counter/index.js +1 -1
- package/dist/components/hx-data-table/hx-data-table.d.ts +13 -13
- 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 +70 -13
- package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts +4 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
- package/dist/components/hx-dialog/index.js +1 -1
- package/dist/components/hx-divider/hx-divider.d.ts.map +1 -1
- package/dist/components/hx-divider/index.js +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +5 -8
- package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
- 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 +14 -1
- 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 +1 -1
- 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.styles.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 +8 -9
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.js +1 -1
- package/dist/components/hx-form/hx-form.d.ts.map +1 -1
- package/dist/components/hx-form/index.js +1 -1
- package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -1
- package/dist/components/hx-format-date/index.js +1 -1
- package/dist/components/hx-grid/hx-grid.d.ts +5 -9
- package/dist/components/hx-grid/hx-grid.d.ts.map +1 -1
- package/dist/components/hx-grid/index.js +1 -1
- 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 +4 -3
- package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-image/hx-image.d.ts.map +1 -1
- package/dist/components/hx-image/index.js +1 -1
- package/dist/components/hx-link/hx-link.d.ts +1 -1
- package/dist/components/hx-link/hx-link.d.ts.map +1 -1
- package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
- package/dist/components/hx-link/index.js +1 -1
- package/dist/components/hx-menu/hx-menu-item.d.ts +5 -0
- package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu.d.ts +1 -0
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-meter/hx-meter.d.ts +2 -2
- package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
- package/dist/components/hx-meter/index.js +1 -1
- package/dist/components/hx-nav/hx-nav.d.ts +10 -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 +19 -7
- 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 +3 -3
- 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 +26 -12
- 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 +113 -0
- package/dist/components/hx-patient-banner/hx-patient-banner.d.ts.map +1 -0
- package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts +2 -0
- package/dist/components/hx-patient-banner/hx-patient-banner.styles.d.ts.map +1 -0
- package/dist/components/hx-patient-banner/index.d.ts +3 -0
- package/dist/components/hx-patient-banner/index.d.ts.map +1 -0
- package/dist/components/hx-patient-banner/index.js +5 -0
- package/dist/components/hx-patient-banner/index.js.map +1 -0
- package/dist/components/hx-phi-field/hx-phi-field.d.ts +97 -0
- package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -0
- package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts +2 -0
- package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -0
- package/dist/components/hx-phi-field/index.d.ts +3 -0
- package/dist/components/hx-phi-field/index.d.ts.map +1 -0
- package/dist/components/hx-phi-field/index.js +5 -0
- package/dist/components/hx-phi-field/index.js.map +1 -0
- package/dist/components/hx-popover/hx-popover.d.ts +25 -9
- package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
- package/dist/components/hx-popover/index.js +1 -1
- package/dist/components/hx-popup/hx-popup.d.ts +5 -8
- package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
- package/dist/components/hx-popup/index.js +1 -1
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +2 -0
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
- package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -1
- package/dist/components/hx-progress-bar/index.js +1 -1
- package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -1
- package/dist/components/hx-progress-ring/index.js +1 -1
- package/dist/components/hx-prose/hx-prose.d.ts +1 -0
- package/dist/components/hx-prose/hx-prose.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.d.ts +3 -7
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-rating/hx-rating.d.ts +3 -3
- package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
- package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -1
- package/dist/components/hx-rating/index.js +1 -1
- package/dist/components/hx-select/hx-select.d.ts +17 -11
- 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 +12 -0
- 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.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 +2 -2
- package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -1
- package/dist/components/hx-slider/hx-slider.d.ts +5 -8
- 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 +14 -1
- package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
- package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -1
- package/dist/components/hx-spinner/index.js +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +10 -4
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
- package/dist/components/hx-split-button/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 +13 -9
- 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-stat/hx-stat.d.ts +7 -2
- package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
- package/dist/components/hx-stat/index.js +1 -1
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +19 -3
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
- package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -1
- package/dist/components/hx-status-indicator/index.js +1 -1
- package/dist/components/hx-steps/hx-step.d.ts +7 -0
- 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.map +1 -1
- package/dist/components/hx-steps/index.js +1 -1
- package/dist/components/hx-structured-list/hx-structured-list.d.ts +10 -3
- package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -1
- package/dist/components/hx-structured-list/index.js +1 -1
- package/dist/components/hx-style-scope/hx-style-scope.d.ts +71 -0
- package/dist/components/hx-style-scope/hx-style-scope.d.ts.map +1 -0
- package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts +10 -0
- package/dist/components/hx-style-scope/hx-style-scope.styles.d.ts.map +1 -0
- package/dist/components/hx-style-scope/index.d.ts +2 -0
- package/dist/components/hx-style-scope/index.d.ts.map +1 -0
- package/dist/components/hx-style-scope/index.js +5 -0
- package/dist/components/hx-style-scope/index.js.map +1 -0
- package/dist/components/hx-switch/hx-switch.d.ts +4 -4
- 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 +1 -0
- package/dist/components/hx-table/hx-table.d.ts.map +1 -1
- package/dist/components/hx-table/index.js +1 -1
- package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.d.ts +1 -0
- package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +12 -2
- 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.styles.d.ts.map +1 -1
- package/dist/components/hx-tag/index.js +1 -1
- package/dist/components/hx-text/index.js +1 -1
- package/dist/components/hx-text-input/hx-text-input.d.ts +16 -15
- 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.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts +4 -4
- 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 +82 -3
- 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 +6 -1
- package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
- package/dist/components/hx-time-picker/index.js +1 -1
- package/dist/components/hx-toast/hx-toast-stack.d.ts +1 -1
- package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.d.ts +9 -5
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
- package/dist/components/hx-toast/index.js +1 -1
- package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +4 -3
- 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 +1 -2
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
- package/dist/components/hx-tooltip/index.js +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.d.ts +12 -0
- 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 +27 -2
- package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/controllers/helix-audit-controller.d.ts +71 -0
- package/dist/controllers/helix-audit-controller.d.ts.map +1 -0
- package/dist/css/helix-all.css +9743 -0
- package/dist/css/helix-core.css +1839 -0
- package/dist/css/helix-data.css +639 -0
- package/dist/css/helix-feedback.css +1268 -0
- package/dist/css/helix-forms.css +2525 -0
- package/dist/css/helix-layout.css +380 -0
- package/dist/css/helix-media.css +213 -0
- package/dist/css/helix-navigation.css +1131 -0
- package/dist/css/helix-overlay.css +643 -0
- package/dist/css/helix-tokens.css +432 -0
- package/dist/css/helix-utility.css +633 -0
- package/dist/css/hx-accordion.css +10 -0
- package/dist/css/hx-action-bar.css +117 -0
- package/dist/css/hx-alert.css +213 -0
- package/dist/css/hx-avatar.css +134 -0
- package/dist/css/hx-badge.css +178 -0
- package/dist/css/hx-banner.css +203 -0
- package/dist/css/hx-breadcrumb.css +36 -0
- package/dist/css/hx-button-group.css +91 -0
- package/dist/css/hx-button.css +296 -0
- package/dist/css/hx-card.css +161 -0
- package/dist/css/hx-carousel.css +211 -0
- package/dist/css/hx-checkbox-group.css +77 -0
- package/dist/css/hx-checkbox.css +219 -0
- package/dist/css/hx-clinical-status.css +248 -0
- package/dist/css/hx-code-snippet.css +179 -0
- package/dist/css/hx-color-picker.css +2 -0
- package/dist/css/hx-combobox.css +2 -0
- package/dist/css/hx-container.css +82 -0
- package/dist/css/hx-copy-button.css +121 -0
- package/dist/css/hx-counter.css +51 -0
- package/dist/css/hx-data-table.css +207 -0
- package/dist/css/hx-date-picker.css +2 -0
- package/dist/css/hx-dialog.css +190 -0
- package/dist/css/hx-divider.css +87 -0
- package/dist/css/hx-drawer.css +262 -0
- package/dist/css/hx-dropdown.css +46 -0
- package/dist/css/hx-field-label.css +38 -0
- package/dist/css/hx-field.css +119 -0
- package/dist/css/hx-file-upload.css +241 -0
- package/dist/css/hx-form.css +2 -0
- package/dist/css/hx-format-date.css +10 -0
- package/dist/css/hx-grid.css +14 -0
- package/dist/css/hx-help-text.css +50 -0
- package/dist/css/hx-icon-button.css +152 -0
- package/dist/css/hx-icon.css +73 -0
- package/dist/css/hx-image.css +41 -0
- package/dist/css/hx-link.css +105 -0
- package/dist/css/hx-list.css +48 -0
- package/dist/css/hx-menu.css +23 -0
- package/dist/css/hx-meter.css +113 -0
- package/dist/css/hx-nav.css +242 -0
- package/dist/css/hx-number-input.css +246 -0
- package/dist/css/hx-overflow-menu.css +133 -0
- package/dist/css/hx-pagination.css +193 -0
- package/dist/css/hx-patient-banner.css +139 -0
- package/dist/css/hx-phi-field.css +97 -0
- package/dist/css/hx-popover.css +61 -0
- package/dist/css/hx-popup.css +31 -0
- package/dist/css/hx-progress-bar.css +133 -0
- package/dist/css/hx-progress-ring.css +142 -0
- package/dist/css/hx-prose.css +2 -0
- package/dist/css/hx-radio-group.css +77 -0
- package/dist/css/hx-rating.css +96 -0
- package/dist/css/hx-select.css +295 -0
- package/dist/css/hx-side-nav.css +149 -0
- package/dist/css/hx-skeleton.css +82 -0
- package/dist/css/hx-slider.css +287 -0
- package/dist/css/hx-spinner.css +116 -0
- package/dist/css/hx-split-button.css +309 -0
- package/dist/css/hx-split-panel.css +168 -0
- package/dist/css/hx-stack.css +104 -0
- package/dist/css/hx-stat.css +106 -0
- package/dist/css/hx-status-indicator.css +126 -0
- package/dist/css/hx-steps.css +52 -0
- package/dist/css/hx-structured-list.css +75 -0
- package/dist/css/hx-style-scope.css +4 -0
- package/dist/css/hx-switch.css +169 -0
- package/dist/css/hx-table.css +128 -0
- package/dist/css/hx-tabs.css +76 -0
- package/dist/css/hx-tag.css +146 -0
- package/dist/css/hx-text-input.css +214 -0
- package/dist/css/hx-text.css +149 -0
- package/dist/css/hx-textarea.css +180 -0
- package/dist/css/hx-theme.css +23 -0
- package/dist/css/hx-time-picker.css +2 -0
- package/dist/css/hx-toast.css +230 -0
- package/dist/css/hx-toggle-button.css +207 -0
- package/dist/css/hx-tooltip.css +51 -0
- package/dist/css/hx-top-nav.css +203 -0
- package/dist/css/hx-tree-view.css +22 -0
- package/dist/css/hx-visually-hidden.css +26 -0
- package/dist/css/index.css +84 -0
- package/dist/css/manifest.json +2704 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +266 -176
- package/dist/index.js.map +1 -1
- package/dist/mixins/FocusMixin.d.ts +49 -0
- package/dist/mixins/FocusMixin.d.ts.map +1 -0
- package/dist/mixins/FormMixin.d.ts +69 -0
- package/dist/mixins/FormMixin.d.ts.map +1 -0
- package/dist/mixins/aria-delegation.d.ts +97 -0
- package/dist/mixins/aria-delegation.d.ts.map +1 -0
- package/dist/mixins/index.d.ts +5 -0
- package/dist/mixins/index.d.ts.map +1 -0
- package/dist/shared/FormMixin-Bjvw20G5.js +88 -0
- package/dist/shared/FormMixin-Bjvw20G5.js.map +1 -0
- package/dist/shared/aria-delegation-CBP9eQ0M.js +107 -0
- package/dist/shared/aria-delegation-CBP9eQ0M.js.map +1 -0
- package/dist/shared/{hx-accordion-D1kFhdeQ.js → hx-accordion-_KeulaQR.js} +83 -55
- package/dist/shared/hx-accordion-_KeulaQR.js.map +1 -0
- package/dist/shared/{hx-action-bar-D4bulGQP.js → hx-action-bar-vGFnNwNY.js} +33 -34
- package/dist/shared/hx-action-bar-vGFnNwNY.js.map +1 -0
- package/dist/shared/{hx-alert-K5F8KeqI.js → hx-alert-DRZYP0Oo.js} +32 -23
- package/dist/shared/hx-alert-DRZYP0Oo.js.map +1 -0
- package/dist/shared/{hx-avatar-Cun-O99h.js → hx-avatar-CZfA9KEl.js} +28 -11
- package/dist/shared/hx-avatar-CZfA9KEl.js.map +1 -0
- package/dist/shared/{hx-badge-CsFd2xtw.js → hx-badge-Xg7zoh4Q.js} +46 -37
- package/dist/shared/hx-badge-Xg7zoh4Q.js.map +1 -0
- package/dist/shared/{hx-banner-BTV-X2xF.js → hx-banner-2RS7Nux4.js} +93 -58
- package/dist/shared/hx-banner-2RS7Nux4.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-4IwaLgaO.js → hx-breadcrumb-item-CObc-WJl.js} +86 -83
- package/dist/shared/hx-breadcrumb-item-CObc-WJl.js.map +1 -0
- package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-CC1YH9RZ.js} +127 -62
- package/dist/shared/hx-button-CC1YH9RZ.js.map +1 -0
- package/dist/shared/{hx-button-group-CWjWv-wS.js → hx-button-group-ChTQsnQj.js} +10 -10
- package/dist/shared/hx-button-group-ChTQsnQj.js.map +1 -0
- package/dist/shared/{hx-card-0hT3G5hi.js → hx-card-dIKdcMhr.js} +32 -32
- package/dist/shared/hx-card-dIKdcMhr.js.map +1 -0
- package/dist/shared/{hx-carousel-item-DgeYyYZJ.js → hx-carousel-item-Cm8a1nAi.js} +3 -3
- package/dist/shared/hx-carousel-item-Cm8a1nAi.js.map +1 -0
- package/dist/shared/{hx-checkbox-BvjO-O41.js → hx-checkbox-_WUiuTo9.js} +68 -71
- package/dist/shared/hx-checkbox-_WUiuTo9.js.map +1 -0
- package/dist/shared/{hx-checkbox-group-Z5VvWzcj.js → hx-checkbox-group-B-ci-dxp.js} +37 -31
- package/dist/shared/hx-checkbox-group-B-ci-dxp.js.map +1 -0
- package/dist/shared/hx-clinical-status-D6eaplvs.js +469 -0
- package/dist/shared/hx-clinical-status-D6eaplvs.js.map +1 -0
- package/dist/shared/{hx-code-snippet-DqzPkH4K.js → hx-code-snippet-CQsyvthi.js} +56 -47
- package/dist/shared/hx-code-snippet-CQsyvthi.js.map +1 -0
- package/dist/shared/{hx-color-picker-Da8z6AlQ.js → hx-color-picker-Dk2Myvaf.js} +153 -137
- package/dist/shared/hx-color-picker-Dk2Myvaf.js.map +1 -0
- package/dist/shared/{hx-combobox-CivfelTS.js → hx-combobox-CNAJXIxo.js} +10 -10
- package/dist/shared/hx-combobox-CNAJXIxo.js.map +1 -0
- package/dist/shared/{hx-container-DLUKnTi9.js → hx-container-7j16VuQE.js} +16 -16
- package/dist/shared/hx-container-7j16VuQE.js.map +1 -0
- package/dist/shared/{hx-copy-button--0dymSvw.js → hx-copy-button-B_ZHYO7_.js} +47 -40
- package/dist/shared/hx-copy-button-B_ZHYO7_.js.map +1 -0
- package/dist/shared/hx-counter-D_B7L9Pi.js +185 -0
- package/dist/shared/hx-counter-D_B7L9Pi.js.map +1 -0
- package/dist/shared/{hx-data-table-DujB9hSE.js → hx-data-table-B1j4n4bm.js} +134 -107
- package/dist/shared/hx-data-table-B1j4n4bm.js.map +1 -0
- package/dist/shared/{hx-date-picker-C8d2HtRV.js → hx-date-picker-R-0kWFwr.js} +146 -130
- package/dist/shared/hx-date-picker-R-0kWFwr.js.map +1 -0
- package/dist/shared/{hx-dialog-DkUSnVgw.js → hx-dialog-U5d3s0Ps.js} +98 -89
- package/dist/shared/hx-dialog-U5d3s0Ps.js.map +1 -0
- package/dist/shared/{hx-divider-DNNs4e8q.js → hx-divider-DdAN-_jB.js} +5 -5
- package/dist/shared/hx-divider-DdAN-_jB.js.map +1 -0
- package/dist/shared/{hx-drawer-CJcRZcns.js → hx-drawer-e0qeGxAD.js} +117 -77
- package/dist/shared/hx-drawer-e0qeGxAD.js.map +1 -0
- package/dist/shared/{hx-dropdown-Bo0KTM1A.js → hx-dropdown-DP_DNpEb.js} +56 -41
- package/dist/shared/hx-dropdown-DP_DNpEb.js.map +1 -0
- package/dist/shared/{hx-field-3MmzJ4kZ.js → hx-field-COM4KvMQ.js} +9 -9
- package/dist/shared/hx-field-COM4KvMQ.js.map +1 -0
- package/dist/shared/{hx-field-label-Bg-EWvqF.js → hx-field-label-BtZ9H9Yy.js} +8 -11
- package/dist/shared/hx-field-label-BtZ9H9Yy.js.map +1 -0
- package/dist/shared/{hx-file-upload-ByjAgfNy.js → hx-file-upload-DbECypLe.js} +78 -87
- package/dist/shared/hx-file-upload-DbECypLe.js.map +1 -0
- package/dist/shared/{hx-form-BpS6v3Iu.js → hx-form-fJE-FJQV.js} +36 -32
- package/dist/shared/{hx-form-BpS6v3Iu.js.map → hx-form-fJE-FJQV.js.map} +1 -1
- package/dist/shared/{hx-format-date-BdnWV2kX.js → hx-format-date-C030ThSm.js} +14 -12
- package/dist/shared/hx-format-date-C030ThSm.js.map +1 -0
- package/dist/shared/{hx-grid-gEjuF0cR.js → hx-grid-DE8KM5Gf.js} +7 -7
- package/dist/shared/hx-grid-DE8KM5Gf.js.map +1 -0
- package/dist/shared/{hx-icon-button-DzH_bRtC.js → hx-icon-button-Et9wq79n.js} +4 -4
- package/dist/shared/{hx-icon-button-DzH_bRtC.js.map → hx-icon-button-Et9wq79n.js.map} +1 -1
- package/dist/shared/{hx-icon-CP6OnLoM.js → hx-icon-dYvrzvsO.js} +7 -7
- package/dist/shared/hx-icon-dYvrzvsO.js.map +1 -0
- package/dist/shared/{hx-image-C6pGiI6c.js → hx-image-DUsEi-oN.js} +15 -15
- package/dist/shared/hx-image-DUsEi-oN.js.map +1 -0
- package/dist/shared/{hx-link-Tmk_YPvW.js → hx-link-Peg2LzOD.js} +43 -41
- package/dist/shared/hx-link-Peg2LzOD.js.map +1 -0
- package/dist/shared/{hx-menu-divider-DR4G_rqw.js → hx-menu-divider-puPmRAdN.js} +40 -20
- package/dist/shared/hx-menu-divider-puPmRAdN.js.map +1 -0
- package/dist/shared/{hx-meter-uXkTZq-W.js → hx-meter-CVs4A649.js} +13 -13
- package/dist/shared/hx-meter-CVs4A649.js.map +1 -0
- package/dist/shared/{hx-nav-3JsN2Oak.js → hx-nav-CiyqaW2I.js} +119 -107
- package/dist/shared/hx-nav-CiyqaW2I.js.map +1 -0
- package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-tM_6bolB.js} +181 -115
- package/dist/shared/hx-nav-item-tM_6bolB.js.map +1 -0
- package/dist/shared/{hx-number-input-CAAibZ8X.js → hx-number-input-BPgrlMLN.js} +70 -66
- package/dist/shared/hx-number-input-BPgrlMLN.js.map +1 -0
- package/dist/shared/{hx-overflow-menu-2kgOJ_ht.js → hx-overflow-menu-Bz02LPPk.js} +15 -11
- package/dist/shared/hx-overflow-menu-Bz02LPPk.js.map +1 -0
- package/dist/shared/{hx-pagination-DBs-vmSv.js → hx-pagination-Cb9UEWXz.js} +84 -71
- package/dist/shared/hx-pagination-Cb9UEWXz.js.map +1 -0
- package/dist/shared/hx-patient-banner-wk4qWmsH.js +297 -0
- package/dist/shared/hx-patient-banner-wk4qWmsH.js.map +1 -0
- package/dist/shared/hx-phi-field-DX9z3nu0.js +295 -0
- package/dist/shared/hx-phi-field-DX9z3nu0.js.map +1 -0
- package/dist/shared/{hx-popover-DxE67miP.js → hx-popover-D6kYQkt3.js} +96 -69
- package/dist/shared/hx-popover-D6kYQkt3.js.map +1 -0
- package/dist/shared/{hx-popup-Dg6n_PbY.js → hx-popup-RQb6HUXc.js} +2 -2
- package/dist/shared/hx-popup-RQb6HUXc.js.map +1 -0
- package/dist/shared/{hx-progress-bar-Dm_EHyng.js → hx-progress-bar-ByEmxq1V.js} +42 -40
- package/dist/shared/hx-progress-bar-ByEmxq1V.js.map +1 -0
- package/dist/shared/{hx-progress-ring-DpxBDD5d.js → hx-progress-ring-CtVnNRQx.js} +2 -2
- package/dist/shared/{hx-progress-ring-DpxBDD5d.js.map → hx-progress-ring-CtVnNRQx.js.map} +1 -1
- package/dist/shared/hx-prose-Ml_L2zje.js.map +1 -1
- package/dist/shared/{hx-radio-BywgVSEu.js → hx-radio-jgeW92SV.js} +28 -27
- package/dist/shared/hx-radio-jgeW92SV.js.map +1 -0
- package/dist/shared/{hx-rating-CUWBQ0fZ.js → hx-rating-g_iy-DW_.js} +92 -96
- package/dist/shared/hx-rating-g_iy-DW_.js.map +1 -0
- package/dist/shared/{hx-select-BwDwxk-M.js → hx-select-BWzxWZs_.js} +139 -100
- package/dist/shared/hx-select-BWzxWZs_.js.map +1 -0
- package/dist/shared/hx-skeleton-BHvALyd7.js.map +1 -1
- package/dist/shared/{hx-slider-D_0EKJyk.js → hx-slider-7Q-e0_pc.js} +27 -22
- package/dist/shared/hx-slider-7Q-e0_pc.js.map +1 -0
- package/dist/shared/{hx-spinner-DMn4SChS.js → hx-spinner-DEgrKsUo.js} +3 -2
- package/dist/shared/hx-spinner-DEgrKsUo.js.map +1 -0
- package/dist/shared/{hx-split-button-CypgLXw1.js → hx-split-button-BA7P_ly5.js} +40 -31
- package/dist/shared/hx-split-button-BA7P_ly5.js.map +1 -0
- package/dist/shared/{hx-split-panel-BPMWKPGu.js → hx-split-panel-Bss54UN8.js} +28 -28
- package/dist/shared/hx-split-panel-Bss54UN8.js.map +1 -0
- package/dist/shared/{hx-stat-CHntLHJM.js → hx-stat-CmkCUI8v.js} +40 -32
- package/dist/shared/{hx-stat-CHntLHJM.js.map → hx-stat-CmkCUI8v.js.map} +1 -1
- package/dist/shared/{hx-status-indicator-C1BwEvUw.js → hx-status-indicator-Dl3Y34mc.js} +81 -40
- package/dist/shared/hx-status-indicator-Dl3Y34mc.js.map +1 -0
- package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-CmNwfcJx.js} +49 -85
- package/dist/shared/hx-step-CmNwfcJx.js.map +1 -0
- package/dist/shared/{hx-structured-list-CMWllxGg.js → hx-structured-list-Db9rwLI_.js} +26 -23
- package/dist/shared/hx-structured-list-Db9rwLI_.js.map +1 -0
- package/dist/shared/hx-style-scope-BroUu83L.js +125 -0
- package/dist/shared/hx-style-scope-BroUu83L.js.map +1 -0
- package/dist/shared/{hx-switch-BgX8kuWt.js → hx-switch-C0Lp5RGy.js} +8 -5
- package/dist/shared/hx-switch-C0Lp5RGy.js.map +1 -0
- package/dist/shared/{hx-tab-panel-DhOq67jj.js → hx-tab-panel-Dnt8aA74.js} +161 -122
- package/dist/shared/hx-tab-panel-Dnt8aA74.js.map +1 -0
- package/dist/shared/{hx-tag-CzOTDcXI.js → hx-tag-K5fCjfqQ.js} +15 -14
- package/dist/shared/hx-tag-K5fCjfqQ.js.map +1 -0
- package/dist/shared/{hx-td-h6oeW6YC.js → hx-td-DZuILY3s.js} +43 -40
- package/dist/shared/hx-td-DZuILY3s.js.map +1 -0
- package/dist/shared/{hx-text-DTXjiviE.js → hx-text-DoEVOf47.js} +29 -29
- package/dist/shared/hx-text-DoEVOf47.js.map +1 -0
- package/dist/shared/hx-text-input-DTKWPVdy.js +576 -0
- package/dist/shared/hx-text-input-DTKWPVdy.js.map +1 -0
- package/dist/shared/{hx-textarea-BgX7rxyo.js → hx-textarea-BkSiU8oM.js} +15 -15
- package/dist/shared/hx-textarea-BkSiU8oM.js.map +1 -0
- package/dist/shared/hx-theme-Aag8QJvT.js +299 -0
- package/dist/shared/hx-theme-Aag8QJvT.js.map +1 -0
- package/dist/shared/{hx-time-picker-DmLu7WUC.js → hx-time-picker-BpCRsh_z.js} +54 -53
- package/dist/shared/hx-time-picker-BpCRsh_z.js.map +1 -0
- package/dist/shared/{hx-toggle-button-D1jpDvSA.js → hx-toggle-button-CPFqs3eQ.js} +8 -5
- package/dist/shared/hx-toggle-button-CPFqs3eQ.js.map +1 -0
- package/dist/shared/{hx-tooltip-kh7QFPKu.js → hx-tooltip-CrO4vzeX.js} +15 -10
- package/dist/shared/hx-tooltip-CrO4vzeX.js.map +1 -0
- package/dist/shared/{hx-tree-item-BP6UF_H1.js → hx-tree-item-C1PhX-HE.js} +163 -99
- package/dist/shared/hx-tree-item-C1PhX-HE.js.map +1 -0
- package/dist/shared/id-counter-JhvVCnjh.js +143 -0
- package/dist/shared/id-counter-JhvVCnjh.js.map +1 -0
- package/dist/shared/{toast-factory-DTy-qN8r.js → toast-factory-f184Gi70.js} +57 -45
- package/dist/shared/toast-factory-f184Gi70.js.map +1 -0
- package/dist/utilities/adoptedStylesheetRegistry.d.ts +47 -0
- package/dist/utilities/adoptedStylesheetRegistry.d.ts.map +1 -0
- package/dist/utilities/generateScopedSelectors.d.ts +30 -0
- package/dist/utilities/generateScopedSelectors.d.ts.map +1 -0
- package/dist/utilities/injectLightStyles.d.ts +37 -0
- package/dist/utilities/injectLightStyles.d.ts.map +1 -0
- package/dist/utilities/lightStyleRegistry.d.ts +41 -0
- package/dist/utilities/lightStyleRegistry.d.ts.map +1 -0
- package/dist/utilities/sheetManager.d.ts +62 -0
- package/dist/utilities/sheetManager.d.ts.map +1 -0
- package/dist/utils/contrast-checker.d.ts +86 -0
- package/dist/utils/contrast-checker.d.ts.map +1 -0
- package/dist/utils/token-merger.d.ts +24 -0
- package/dist/utils/token-merger.d.ts.map +1 -0
- package/fouc.css +37 -0
- package/package.json +26 -6
- package/dist/shared/hx-accordion-D1kFhdeQ.js.map +0 -1
- package/dist/shared/hx-action-bar-D4bulGQP.js.map +0 -1
- package/dist/shared/hx-alert-K5F8KeqI.js.map +0 -1
- package/dist/shared/hx-avatar-Cun-O99h.js.map +0 -1
- package/dist/shared/hx-badge-CsFd2xtw.js.map +0 -1
- package/dist/shared/hx-banner-BTV-X2xF.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-4IwaLgaO.js.map +0 -1
- package/dist/shared/hx-button-7k-KeCYU.js.map +0 -1
- package/dist/shared/hx-button-group-CWjWv-wS.js.map +0 -1
- package/dist/shared/hx-card-0hT3G5hi.js.map +0 -1
- package/dist/shared/hx-carousel-item-DgeYyYZJ.js.map +0 -1
- package/dist/shared/hx-checkbox-BvjO-O41.js.map +0 -1
- package/dist/shared/hx-checkbox-group-Z5VvWzcj.js.map +0 -1
- package/dist/shared/hx-code-snippet-DqzPkH4K.js.map +0 -1
- package/dist/shared/hx-color-picker-Da8z6AlQ.js.map +0 -1
- package/dist/shared/hx-combobox-CivfelTS.js.map +0 -1
- package/dist/shared/hx-container-DLUKnTi9.js.map +0 -1
- package/dist/shared/hx-copy-button--0dymSvw.js.map +0 -1
- package/dist/shared/hx-counter-Duf00H7p.js +0 -147
- package/dist/shared/hx-counter-Duf00H7p.js.map +0 -1
- package/dist/shared/hx-data-table-DujB9hSE.js.map +0 -1
- package/dist/shared/hx-date-picker-C8d2HtRV.js.map +0 -1
- package/dist/shared/hx-dialog-DkUSnVgw.js.map +0 -1
- package/dist/shared/hx-divider-DNNs4e8q.js.map +0 -1
- package/dist/shared/hx-drawer-CJcRZcns.js.map +0 -1
- package/dist/shared/hx-dropdown-Bo0KTM1A.js.map +0 -1
- package/dist/shared/hx-field-3MmzJ4kZ.js.map +0 -1
- package/dist/shared/hx-field-label-Bg-EWvqF.js.map +0 -1
- package/dist/shared/hx-file-upload-ByjAgfNy.js.map +0 -1
- package/dist/shared/hx-format-date-BdnWV2kX.js.map +0 -1
- package/dist/shared/hx-grid-gEjuF0cR.js.map +0 -1
- package/dist/shared/hx-icon-CP6OnLoM.js.map +0 -1
- package/dist/shared/hx-image-C6pGiI6c.js.map +0 -1
- package/dist/shared/hx-link-Tmk_YPvW.js.map +0 -1
- package/dist/shared/hx-menu-divider-DR4G_rqw.js.map +0 -1
- package/dist/shared/hx-meter-uXkTZq-W.js.map +0 -1
- package/dist/shared/hx-nav-3JsN2Oak.js.map +0 -1
- package/dist/shared/hx-nav-item-D3EJatzc.js.map +0 -1
- package/dist/shared/hx-number-input-CAAibZ8X.js.map +0 -1
- package/dist/shared/hx-overflow-menu-2kgOJ_ht.js.map +0 -1
- package/dist/shared/hx-pagination-DBs-vmSv.js.map +0 -1
- package/dist/shared/hx-popover-DxE67miP.js.map +0 -1
- package/dist/shared/hx-popup-Dg6n_PbY.js.map +0 -1
- package/dist/shared/hx-progress-bar-Dm_EHyng.js.map +0 -1
- package/dist/shared/hx-radio-BywgVSEu.js.map +0 -1
- package/dist/shared/hx-rating-CUWBQ0fZ.js.map +0 -1
- package/dist/shared/hx-select-BwDwxk-M.js.map +0 -1
- package/dist/shared/hx-slider-D_0EKJyk.js.map +0 -1
- package/dist/shared/hx-spinner-DMn4SChS.js.map +0 -1
- package/dist/shared/hx-split-button-CypgLXw1.js.map +0 -1
- package/dist/shared/hx-split-panel-BPMWKPGu.js.map +0 -1
- package/dist/shared/hx-status-indicator-C1BwEvUw.js.map +0 -1
- package/dist/shared/hx-step-BIVWSPxd.js.map +0 -1
- package/dist/shared/hx-structured-list-CMWllxGg.js.map +0 -1
- package/dist/shared/hx-switch-BgX8kuWt.js.map +0 -1
- package/dist/shared/hx-tab-panel-DhOq67jj.js.map +0 -1
- package/dist/shared/hx-tag-CzOTDcXI.js.map +0 -1
- package/dist/shared/hx-td-h6oeW6YC.js.map +0 -1
- package/dist/shared/hx-text-DTXjiviE.js.map +0 -1
- package/dist/shared/hx-text-input-CqEdDHMU.js +0 -461
- package/dist/shared/hx-text-input-CqEdDHMU.js.map +0 -1
- package/dist/shared/hx-textarea-BgX7rxyo.js.map +0 -1
- package/dist/shared/hx-theme-6GDoUG8j.js +0 -176
- package/dist/shared/hx-theme-6GDoUG8j.js.map +0 -1
- package/dist/shared/hx-time-picker-DmLu7WUC.js.map +0 -1
- package/dist/shared/hx-toggle-button-D1jpDvSA.js.map +0 -1
- package/dist/shared/hx-tooltip-kh7QFPKu.js.map +0 -1
- package/dist/shared/hx-tree-item-BP6UF_H1.js.map +0 -1
- package/dist/shared/toast-factory-DTy-qN8r.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-status-indicator-Dl3Y34mc.js","sources":["../../src/components/hx-status-indicator/hx-status-indicator.styles.ts","../../src/components/hx-status-indicator/hx-status-indicator.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStatusIndicatorStyles = css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-2, 0.5rem);\n position: relative;\n flex-shrink: 0;\n --_dot-color: var(--hx-status-indicator-color-default, var(--hx-color-neutral-300, #ced4da));\n /* Default size (md) — always defined so .indicator never collapses to 0x0 */\n --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));\n }\n\n .indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: var(--_indicator-size);\n height: var(--_indicator-size);\n flex-shrink: 0;\n }\n\n .indicator__dot {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: var(--_dot-color);\n position: relative;\n z-index: 1; /* dot above pulse ring within shadow root */\n }\n\n .indicator__pulse-ring {\n display: none;\n position: absolute;\n inset: 0;\n border-radius: 50%;\n background-color: var(--hx-status-indicator-pulse-color, var(--_dot-color));\n opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */\n animation: hx-status-pulse var(--hx-status-indicator-pulse-duration, 1.5s) ease-out infinite;\n z-index: 0; /* pulse ring beneath dot within shadow root */\n }\n\n :host([pulse]) .indicator__pulse-ring {\n display: block;\n }\n\n @keyframes hx-status-pulse {\n 0% {\n transform: scale(1);\n opacity: var(--hx-state-focus-opacity, 0.12); /* intentional: pulse ring start opacity */\n }\n 100% {\n transform: scale(var(--hx-status-indicator-pulse-scale, 2.5));\n opacity: 0;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n :host([pulse]) .indicator__pulse-ring {\n animation: none;\n display: none;\n }\n }\n\n /* ─── Visible label (part=\"label\") ─── */\n\n .indicator__label {\n font-size: var(\n --hx-status-indicator-label-font-size,\n var(--hx-font-size-sm, var(--hx-text-sm, 0.875rem))\n );\n color: var(--hx-status-indicator-label-color, var(--hx-color-neutral-700, #374151));\n line-height: 1;\n white-space: nowrap;\n }\n\n /* ─── aria-live announcement region (visually hidden) ─── */\n\n .indicator__live-region {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* ─── Size Variants ─── */\n\n :host([hx-size='sm']) {\n --_indicator-size: var(--hx-status-indicator-size-sm, var(--hx-space-2, 0.5rem));\n }\n\n :host([hx-size='md']) {\n --_indicator-size: var(--hx-status-indicator-size-md, var(--hx-space-3, 0.75rem));\n }\n\n :host([hx-size='lg']) {\n --_indicator-size: var(--hx-status-indicator-size-lg, var(--hx-space-4, 1rem));\n }\n\n /* ─── Status Colors ─── */\n\n :host([status='online']) {\n --_dot-color: var(--hx-status-indicator-color-online, var(--hx-color-success-500));\n }\n\n :host([status='offline']) {\n --_dot-color: var(--hx-status-indicator-color-offline, var(--hx-color-neutral-400));\n }\n\n :host([status='away']) {\n --_dot-color: var(--hx-status-indicator-color-away, var(--hx-color-warning-500));\n }\n\n :host([status='busy']) {\n --_dot-color: var(--hx-status-indicator-color-busy, var(--hx-color-error-500));\n }\n\n :host([status='unknown']) {\n --_dot-color: var(--hx-status-indicator-color-unknown, var(--hx-color-neutral-300));\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixStatusIndicatorStyles } from './hx-status-indicator.styles.js';\n\nexport type StatusIndicatorStatus = 'online' | 'offline' | 'away' | 'busy' | 'unknown';\nexport type StatusIndicatorSize = 'sm' | 'md' | 'lg';\n\nconst STATUS_LABELS: Record<StatusIndicatorStatus, string> = {\n online: 'Online',\n offline: 'Offline',\n away: 'Away',\n busy: 'Busy',\n unknown: 'Unknown',\n};\n\n/**\n * A colored dot/badge indicating system or entity health status.\n * Supports an animated pulse ring and an optional visible text label.\n *\n * Status is conveyed through color AND an `aria-label` on the host element.\n * When `show-label` is set, a visible text label is rendered inside the component,\n * ensuring status is not communicated by color alone (WCAG 1.4.1 — Use of Color).\n *\n * Uses `role=\"img\"` with an auto-generated `aria-label` (e.g. \"Status: Online\").\n * When used decoratively alongside visible text that conveys the same status information\n * (e.g. \"Provider is available\"), set `aria-hidden=\"true\"` on the host element to prevent\n * duplicate announcements to screen reader users. This is the recommended composition\n * pattern in healthcare dashboards.\n *\n * @remarks\n * The status vocabulary (`online`, `offline`, `away`, `busy`, `unknown`) is the intentional\n * implementation canonical form for this component. Although a prior spec draft used\n * `active/inactive/error/warning`, the current vocabulary was approved as a deliberate\n * design decision for flexibility and UX clarity in healthcare dashboard contexts.\n *\n * @summary Status indicator dot component.\n *\n * @tag hx-status-indicator\n *\n * @csspart base - The dot element.\n * @csspart pulse-ring - The animated pulse ring element.\n * @csspart label - The visible status label text element (visible when show-label is set).\n *\n * @cssprop [--hx-status-indicator-color-online] - Override color for the \"online\" status dot.\n * @cssprop [--hx-status-indicator-color-offline] - Override color for the \"offline\" status dot.\n * @cssprop [--hx-status-indicator-color-away] - Override color for the \"away\" status dot.\n * @cssprop [--hx-status-indicator-color-busy] - Override color for the \"busy\" status dot.\n * @cssprop [--hx-status-indicator-color-unknown] - Override color for the \"unknown\" status dot.\n * @cssprop [--hx-status-indicator-size-sm] - Override size for the \"sm\" variant.\n * @cssprop [--hx-status-indicator-size-md] - Override size for the \"md\" variant.\n * @cssprop [--hx-status-indicator-size-lg] - Override size for the \"lg\" variant.\n * @cssprop [--hx-status-indicator-pulse-duration] - Override pulse animation duration.\n * @cssprop [--hx-status-indicator-pulse-scale] - Override pulse animation max scale.\n * @cssprop [--hx-status-indicator-pulse-color] - Override pulse ring color independently from dot color.\n * @cssprop [--hx-status-indicator-label-color] - Override label text color.\n * @cssprop [--hx-status-indicator-label-font-size] - Override label font size.\n */\n@customElement('hx-status-indicator')\nexport class HelixStatusIndicator extends LitElement {\n static override styles = [tokenStyles, helixStatusIndicatorStyles];\n\n /**\n * The status to display.\n * @attr status\n */\n @property({ type: String, reflect: true })\n status: 'online' | 'offline' | 'away' | 'busy' | 'unknown' = 'unknown';\n\n /**\n * Size of the indicator dot.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Whether to show an animated pulse ring around the dot.\n * Animation is suppressed when prefers-reduced-motion is active.\n * @attr pulse\n * @remarks\n * In Twig (Drupal) templates, render as a bare attribute: `pulse` — NOT `pulse=\"true\"`.\n * The value is ignored; only attribute presence matters.\n */\n @property({ type: Boolean, reflect: true })\n pulse = false;\n\n /**\n * Accessible label for the indicator. Defaults to \"Status: {Status}\".\n * Set aria-hidden=\"true\" on the host when status is conveyed by adjacent text.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * When true, renders a visible text label next to the dot conveying the status.\n * Use this to satisfy WCAG 1.4.1 (Use of Color) when the indicator is not\n * accompanied by other visible text that conveys the same status information.\n * @attr show-label\n */\n @property({ type: Boolean, reflect: true, attribute: 'show-label' })\n showLabel = false;\n\n /** @internal */\n private _getLabel(): string {\n if (this.label) return this.label;\n const statusText = STATUS_LABELS[this.status] ?? 'Unknown';\n return `Status: ${statusText}`;\n }\n\n /** @internal */\n private _getStatusText(): string {\n return STATUS_LABELS[this.status] ?? 'Unknown';\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-status-indicator', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as StatusIndicatorSize;\n }\n // T3-01-4: Place role=\"img\" on the host element for robust AT traversal.\n // Some screen reader + browser combinations skip shadow children; host-level\n // ARIA attributes are more reliable across the flat accessibility tree.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'img');\n }\n this.setAttribute('aria-label', this._getLabel());\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n // Keep host aria-label in sync when status or label properties change.\n if (changedProperties.has('status') || changedProperties.has('label')) {\n this.setAttribute('aria-label', this._getLabel());\n }\n }\n\n override render() {\n return html`\n <div class=\"indicator\">\n <div class=\"indicator__pulse-ring\" part=\"pulse-ring\"></div>\n <div class=\"indicator__dot\" part=\"base\"></div>\n </div>\n ${this.showLabel\n ? html`<span class=\"indicator__label\" part=\"label\">${this._getStatusText()}</span>`\n : nothing}\n <!-- aria-live region announces dynamic status changes to screen readers -->\n <span class=\"indicator__live-region\" aria-live=\"polite\" aria-atomic=\"true\"\n >${this._getLabel()}</span\n >\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-status-indicator': HelixStatusIndicator;\n }\n}\n"],"names":["helixStatusIndicatorStyles","css","STATUS_LABELS","HelixStatusIndicator","LitElement","legacySize","changedProperties","html","nothing","tokenStyles","__decorateClass","property","customElement"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { css as x, LitElement as
|
|
2
|
-
import { property as a, customElement as
|
|
3
|
-
import { tokenStyles as
|
|
1
|
+
import { css as x, LitElement as v, nothing as m, html as d } from "lit";
|
|
2
|
+
import { property as a, customElement as u } from "lit/decorators.js";
|
|
3
|
+
import { tokenStyles as f } from "@helixui/tokens/lit";
|
|
4
4
|
const b = x`
|
|
5
5
|
:host {
|
|
6
6
|
display: block;
|
|
7
7
|
|
|
8
8
|
/* ─── Size defaults (md) ─── */
|
|
9
|
-
--hx-steps-indicator-size: 2rem;
|
|
9
|
+
--hx-steps-indicator-size: var(--hx-size-8, 2rem);
|
|
10
10
|
--hx-steps-indicator-font-size: var(--hx-font-size-sm, 0.875rem);
|
|
11
|
-
--hx-steps-indicator-icon-size: 1rem;
|
|
11
|
+
--hx-steps-indicator-icon-size: var(--hx-size-4, 1rem);
|
|
12
12
|
--hx-steps-label-font-size: var(--hx-font-size-sm, 0.875rem);
|
|
13
13
|
--hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);
|
|
14
14
|
|
|
@@ -37,9 +37,9 @@ const b = x`
|
|
|
37
37
|
/* ─── Size: sm ─── */
|
|
38
38
|
|
|
39
39
|
:host([size='sm']) {
|
|
40
|
-
--hx-steps-indicator-size: 1.5rem;
|
|
40
|
+
--hx-steps-indicator-size: var(--hx-size-6, 1.5rem);
|
|
41
41
|
--hx-steps-indicator-font-size: var(--hx-font-size-xs, 0.75rem);
|
|
42
|
-
--hx-steps-indicator-icon-size: 0.75rem;
|
|
42
|
+
--hx-steps-indicator-icon-size: var(--hx-space-3, 0.75rem);
|
|
43
43
|
--hx-steps-label-font-size: var(--hx-font-size-xs, 0.75rem);
|
|
44
44
|
--hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);
|
|
45
45
|
}
|
|
@@ -47,34 +47,34 @@ const b = x`
|
|
|
47
47
|
/* ─── Size: lg ─── */
|
|
48
48
|
|
|
49
49
|
:host([size='lg']) {
|
|
50
|
-
--hx-steps-indicator-size: 2.5rem;
|
|
50
|
+
--hx-steps-indicator-size: var(--hx-size-10, 2.5rem);
|
|
51
51
|
--hx-steps-indicator-font-size: var(--hx-font-size-md, 1rem);
|
|
52
|
-
--hx-steps-indicator-icon-size: 1.25rem;
|
|
52
|
+
--hx-steps-indicator-icon-size: var(--hx-size-5, 1.25rem);
|
|
53
53
|
--hx-steps-label-font-size: var(--hx-font-size-md, 1rem);
|
|
54
54
|
--hx-steps-description-font-size: var(--hx-font-size-sm, 0.875rem);
|
|
55
55
|
}
|
|
56
56
|
`;
|
|
57
|
-
var _ = Object.defineProperty,
|
|
58
|
-
for (var e = s > 1 ? void 0 : s ?
|
|
59
|
-
(
|
|
60
|
-
return s && e && _(
|
|
57
|
+
var _ = Object.defineProperty, g = Object.getOwnPropertyDescriptor, p = (t, i, r, s) => {
|
|
58
|
+
for (var e = s > 1 ? void 0 : s ? g(i, r) : i, l = t.length - 1, h; l >= 0; l--)
|
|
59
|
+
(h = t[l]) && (e = (s ? h(i, r, e) : h(e)) || e);
|
|
60
|
+
return s && e && _(i, r, e), e;
|
|
61
61
|
};
|
|
62
|
-
let
|
|
62
|
+
let c = class extends v {
|
|
63
63
|
constructor() {
|
|
64
64
|
super(...arguments), this.orientation = "horizontal", this.size = "md", this.ariaLabel = null, this._handleSlotChange = () => {
|
|
65
65
|
this._syncChildren();
|
|
66
66
|
}, this._handleStepClickInternal = (t) => {
|
|
67
67
|
t.stopPropagation();
|
|
68
|
-
const
|
|
68
|
+
const i = this._getSteps(), r = t.composedPath().find(
|
|
69
69
|
(e) => e instanceof Element && e.tagName.toLowerCase() === "hx-step"
|
|
70
70
|
);
|
|
71
|
-
if (!
|
|
72
|
-
const s =
|
|
71
|
+
if (!r) return;
|
|
72
|
+
const s = i.indexOf(r);
|
|
73
73
|
this.dispatchEvent(
|
|
74
74
|
new CustomEvent("hx-step-click", {
|
|
75
75
|
bubbles: !0,
|
|
76
76
|
composed: !0,
|
|
77
|
-
detail: { step:
|
|
77
|
+
detail: { step: r, index: s }
|
|
78
78
|
})
|
|
79
79
|
);
|
|
80
80
|
};
|
|
@@ -83,7 +83,7 @@ let h = class extends u {
|
|
|
83
83
|
connectedCallback() {
|
|
84
84
|
super.connectedCallback();
|
|
85
85
|
const t = this.getAttribute("size");
|
|
86
|
-
t !== null && !this.hasAttribute("hx-size") && (this.size = t), this.addEventListener("hx-step-click-internal", this._handleStepClickInternal);
|
|
86
|
+
t !== null && !this.hasAttribute("hx-size") && (this.size = t), this.ariaLabel, this.hasAttribute("role") || this.setAttribute("role", "none"), this.addEventListener("hx-step-click-internal", this._handleStepClickInternal);
|
|
87
87
|
}
|
|
88
88
|
disconnectedCallback() {
|
|
89
89
|
super.disconnectedCallback(), this.removeEventListener("hx-step-click-internal", this._handleStepClickInternal);
|
|
@@ -101,33 +101,33 @@ let h = class extends u {
|
|
|
101
101
|
}
|
|
102
102
|
/** @internal */
|
|
103
103
|
_syncChildren() {
|
|
104
|
-
this._getSteps().forEach((
|
|
105
|
-
|
|
104
|
+
this._getSteps().forEach((i, r) => {
|
|
105
|
+
i.orientation = this.orientation, i.size = this.size, i.index = r;
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
108
|
// ─── Render ───
|
|
109
109
|
render() {
|
|
110
110
|
return d`
|
|
111
|
-
<div part="base" class="steps" role="list" aria-label=${this.ariaLabel ??
|
|
111
|
+
<div part="base" class="steps" role="list" aria-label=${this.ariaLabel ?? m}>
|
|
112
112
|
<slot @slotchange=${this._handleSlotChange}></slot>
|
|
113
113
|
</div>
|
|
114
114
|
`;
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
|
-
|
|
117
|
+
c.styles = [f, b];
|
|
118
118
|
p([
|
|
119
119
|
a({ type: String, reflect: !0 })
|
|
120
|
-
],
|
|
120
|
+
], c.prototype, "orientation", 2);
|
|
121
121
|
p([
|
|
122
122
|
a({ type: String, reflect: !0, attribute: "hx-size" })
|
|
123
|
-
],
|
|
123
|
+
], c.prototype, "size", 2);
|
|
124
124
|
p([
|
|
125
125
|
a({ type: String, attribute: "aria-label" })
|
|
126
|
-
],
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
],
|
|
130
|
-
const
|
|
126
|
+
], c.prototype, "ariaLabel", 2);
|
|
127
|
+
c = p([
|
|
128
|
+
u("hx-steps")
|
|
129
|
+
], c);
|
|
130
|
+
const y = x`
|
|
131
131
|
:host {
|
|
132
132
|
display: flex;
|
|
133
133
|
flex: var(--hx-steps-item-flex, 1);
|
|
@@ -162,8 +162,8 @@ const g = x`
|
|
|
162
162
|
/* ─── Focus ─── */
|
|
163
163
|
|
|
164
164
|
:host(:focus-visible) .step__indicator {
|
|
165
|
-
outline: 2px solid var(--hx-color-primary-500);
|
|
166
|
-
outline-offset: 2px;
|
|
165
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-500);
|
|
166
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
/* ─── Track (indicator + connector) ─── */
|
|
@@ -185,7 +185,7 @@ const g = x`
|
|
|
185
185
|
width: var(--hx-steps-indicator-size, 2rem);
|
|
186
186
|
height: var(--hx-steps-indicator-size, 2rem);
|
|
187
187
|
border-radius: var(--hx-border-radius-full, 9999px);
|
|
188
|
-
border: 2px solid var(--hx-color-neutral-300);
|
|
188
|
+
border: var(--hx-border-width-medium, 2px) solid var(--hx-color-neutral-300);
|
|
189
189
|
background-color: var(--hx-color-neutral-0);
|
|
190
190
|
color: var(--hx-color-neutral-500);
|
|
191
191
|
font-size: var(--hx-steps-indicator-font-size, var(--hx-font-size-sm));
|
|
@@ -290,7 +290,7 @@ const g = x`
|
|
|
290
290
|
|
|
291
291
|
:host([disabled]) .step {
|
|
292
292
|
cursor: not-allowed;
|
|
293
|
-
opacity: 0.5;
|
|
293
|
+
opacity: var(--hx-opacity-disabled, 0.5);
|
|
294
294
|
pointer-events: none;
|
|
295
295
|
}
|
|
296
296
|
|
|
@@ -328,7 +328,7 @@ const g = x`
|
|
|
328
328
|
}
|
|
329
329
|
|
|
330
330
|
:host([orientation='vertical']) .step__label-area {
|
|
331
|
-
text-align:
|
|
331
|
+
text-align: start;
|
|
332
332
|
margin-top: 0;
|
|
333
333
|
padding-bottom: var(--hx-space-4, 1rem);
|
|
334
334
|
padding-inline-start: 0;
|
|
@@ -347,55 +347,15 @@ const g = x`
|
|
|
347
347
|
transition: none;
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
|
-
|
|
351
|
-
/* ─── Dark Mode ─── */
|
|
352
|
-
|
|
353
|
-
@media (prefers-color-scheme: dark) {
|
|
354
|
-
.step__indicator {
|
|
355
|
-
background-color: var(--hx-color-neutral-800);
|
|
356
|
-
border-color: var(--hx-color-neutral-600);
|
|
357
|
-
color: var(--hx-color-neutral-300);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
.step__connector {
|
|
361
|
-
background-color: var(--hx-color-neutral-700);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
.step__label {
|
|
365
|
-
color: var(--hx-color-neutral-300);
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
.step__description {
|
|
369
|
-
color: var(--hx-color-neutral-400);
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
:host([status='active']) .step__label {
|
|
373
|
-
color: var(--hx-color-primary-300);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
:host([status='complete']) .step__label {
|
|
377
|
-
color: var(--hx-color-neutral-200);
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
:host([status='error']) .step__label {
|
|
381
|
-
color: var(--hx-color-error-300);
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
:host([disabled]) .step__indicator {
|
|
385
|
-
background-color: var(--hx-color-neutral-900);
|
|
386
|
-
border-color: var(--hx-color-neutral-700);
|
|
387
|
-
color: var(--hx-color-neutral-600);
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
350
|
`;
|
|
391
|
-
var z = Object.defineProperty,
|
|
392
|
-
for (var e = s > 1 ? void 0 : s ?
|
|
393
|
-
(
|
|
394
|
-
return s && e && z(
|
|
351
|
+
var z = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (t, i, r, s) => {
|
|
352
|
+
for (var e = s > 1 ? void 0 : s ? w(i, r) : i, l = t.length - 1, h; l >= 0; l--)
|
|
353
|
+
(h = t[l]) && (e = (s ? h(i, r, e) : h(e)) || e);
|
|
354
|
+
return s && e && z(i, r, e), e;
|
|
395
355
|
};
|
|
396
|
-
let o = class extends
|
|
356
|
+
let o = class extends v {
|
|
397
357
|
constructor() {
|
|
398
|
-
super(...arguments), this.label = "", this.status = "pending", this.description = "", this.disabled = !1, this.orientation = "horizontal", this.size = "md", this.index = 0, this._handleKeydown = (t) => {
|
|
358
|
+
super(...arguments), this.label = "", this.status = "pending", this.description = "", this.disabled = !1, this.orientation = "horizontal", this.size = "md", this.index = 0, this._liveMessage = "", this._handleKeydown = (t) => {
|
|
399
359
|
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), this._handleClick());
|
|
400
360
|
};
|
|
401
361
|
}
|
|
@@ -406,6 +366,9 @@ let o = class extends u {
|
|
|
406
366
|
disconnectedCallback() {
|
|
407
367
|
super.disconnectedCallback(), this.removeEventListener("keydown", this._handleKeydown);
|
|
408
368
|
}
|
|
369
|
+
willUpdate(t) {
|
|
370
|
+
t.has("status") && t.get("status") !== void 0 && (this.status === "complete" ? this._liveMessage = "Complete" : this.status === "error" ? this._liveMessage = "Error" : this._liveMessage = "");
|
|
371
|
+
}
|
|
409
372
|
updated(t) {
|
|
410
373
|
super.updated(t), t.has("status") && (this.status === "active" ? this.setAttribute("aria-current", "step") : this.removeAttribute("aria-current")), t.has("disabled") && (this.disabled ? (this.setAttribute("tabindex", "-1"), this.setAttribute("aria-disabled", "true")) : (this.setAttribute("tabindex", "0"), this.removeAttribute("aria-disabled"))), t.has("orientation") && this.setAttribute("orientation", this.orientation), t.has("size") && this.setAttribute("size", this.size);
|
|
411
374
|
}
|
|
@@ -473,10 +436,11 @@ let o = class extends u {
|
|
|
473
436
|
</div>
|
|
474
437
|
</div>
|
|
475
438
|
</div>
|
|
439
|
+
<div aria-live="polite" aria-atomic="true" class="sr-only">${this._liveMessage}</div>
|
|
476
440
|
`;
|
|
477
441
|
}
|
|
478
442
|
};
|
|
479
|
-
o.styles = [
|
|
443
|
+
o.styles = [f, y];
|
|
480
444
|
n([
|
|
481
445
|
a({ type: String, reflect: !0 })
|
|
482
446
|
], o.prototype, "label", 2);
|
|
@@ -499,10 +463,10 @@ n([
|
|
|
499
463
|
a({ type: Number })
|
|
500
464
|
], o.prototype, "index", 2);
|
|
501
465
|
o = n([
|
|
502
|
-
|
|
466
|
+
u("hx-step")
|
|
503
467
|
], o);
|
|
504
468
|
export {
|
|
505
469
|
o as H,
|
|
506
|
-
|
|
470
|
+
c as a
|
|
507
471
|
};
|
|
508
|
-
//# sourceMappingURL=hx-step-
|
|
472
|
+
//# sourceMappingURL=hx-step-CmNwfcJx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-step-CmNwfcJx.js","sources":["../../src/components/hx-steps/hx-steps.styles.ts","../../src/components/hx-steps/hx-steps.ts","../../src/components/hx-steps/hx-step.styles.ts","../../src/components/hx-steps/hx-step.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStepsStyles = css`\n :host {\n display: block;\n\n /* ─── Size defaults (md) ─── */\n --hx-steps-indicator-size: var(--hx-size-8, 2rem);\n --hx-steps-indicator-font-size: var(--hx-font-size-sm, 0.875rem);\n --hx-steps-indicator-icon-size: var(--hx-size-4, 1rem);\n --hx-steps-label-font-size: var(--hx-font-size-sm, 0.875rem);\n --hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);\n\n /* ─── Item layout defaults (horizontal) ─── */\n --hx-steps-item-flex: 1;\n --hx-steps-item-width: auto;\n }\n\n .steps {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n }\n\n /* ─── Orientation: vertical ─── */\n\n :host([orientation='vertical']) {\n --hx-steps-item-flex: initial;\n --hx-steps-item-width: 100%;\n }\n\n :host([orientation='vertical']) .steps {\n flex-direction: column;\n }\n\n /* ─── Size: sm ─── */\n\n :host([size='sm']) {\n --hx-steps-indicator-size: var(--hx-size-6, 1.5rem);\n --hx-steps-indicator-font-size: var(--hx-font-size-xs, 0.75rem);\n --hx-steps-indicator-icon-size: var(--hx-space-3, 0.75rem);\n --hx-steps-label-font-size: var(--hx-font-size-xs, 0.75rem);\n --hx-steps-description-font-size: var(--hx-font-size-xs, 0.75rem);\n }\n\n /* ─── Size: lg ─── */\n\n :host([size='lg']) {\n --hx-steps-indicator-size: var(--hx-size-10, 2.5rem);\n --hx-steps-indicator-font-size: var(--hx-font-size-md, 1rem);\n --hx-steps-indicator-icon-size: var(--hx-size-5, 1.25rem);\n --hx-steps-label-font-size: var(--hx-font-size-md, 1rem);\n --hx-steps-description-font-size: var(--hx-font-size-sm, 0.875rem);\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { devWarn } from '../../utils/dev-warn.js';\nimport { helixStepsStyles } from './hx-steps.styles.js';\nimport type { HelixStep } from './hx-step.js';\n\n/**\n * A multi-step wizard / stepper progress indicator. Renders a sequence of\n * `<hx-step>` children as a horizontal or vertical step tracker with connector\n * lines and status-based styling.\n *\n * Provide an `aria-label` on `<hx-steps>` to describe the step process for assistive technology.\n *\n * @summary Multi-step progress indicator container.\n *\n * @tag hx-steps\n *\n * @slot - Default slot for `<hx-step>` elements.\n *\n * @fires {CustomEvent<{step: HelixStep, index: number}>} hx-step-click - Dispatched when\n * a step is clicked. Detail contains the clicked `step` element and its zero-based `index`.\n *\n * @csspart base - The inner wrapper element.\n *\n * @cssprop [--hx-steps-indicator-size=2rem] - Step indicator circle diameter.\n * @cssprop [--hx-steps-connector-color=var(--hx-color-neutral-200)] - Connector line color.\n * @cssprop [--hx-steps-label-color=var(--hx-color-neutral-600)] - Step label text color.\n * @cssprop [--hx-steps-description-color=var(--hx-color-neutral-500)] - Step description color.\n */\n@customElement('hx-steps')\nexport class HelixSteps extends LitElement {\n static override styles = [tokenStyles, helixStepsStyles];\n\n // ─── Public Properties ───\n\n /**\n * Layout orientation of the steps.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size variant of the steps.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Accessible label for the list. Forwarded to the inner list element.\n * @attr aria-label\n */\n @property({ type: String, attribute: 'aria-label' })\n ariaLabel: string | null = null;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Backward compat: accept legacy `size` attribute. When present and `hx-size`\n // is not set, map the value and emit a deprecation warning.\n const legacySize = this.getAttribute('size');\n if (legacySize !== null && !this.hasAttribute('hx-size')) {\n devWarn('hx-steps', 'The \"size\" attribute is deprecated. Use \"hx-size\" instead.');\n this.size = legacySize as 'sm' | 'md' | 'lg';\n }\n // STEPS-002: WCAG 2.1 SC 4.1.2 — the inner list must have an accessible name.\n // Warn developers when aria-label is missing so the list is not anonymous.\n if (!this.ariaLabel) {\n devWarn(\n 'hx-steps',\n 'An \"aria-label\" attribute is required to provide an accessible name for the steps list (WCAG 2.1 SC 4.1.2).',\n );\n }\n // WCAG 4.1.2: suppress the host element's implicit ARIA role so only the\n // inner div[role=\"list\"] is announced. Mirrors the hx-action-bar pattern.\n // Without this, the consumer's aria-label attribute on the host causes dual\n // announcement — once for the host element and once for the inner list.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'none');\n }\n this.addEventListener('hx-step-click-internal', this._handleStepClickInternal);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('hx-step-click-internal', this._handleStepClickInternal);\n }\n\n override firstUpdated(): void {\n this._syncChildren();\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('orientation') || changedProperties.has('size')) {\n this._syncChildren();\n }\n }\n\n // ─── Child Sync ───\n\n /** @internal */\n private _getSteps(): HelixStep[] {\n return Array.from(this.querySelectorAll(':scope > hx-step')) as HelixStep[];\n }\n\n /** @internal */\n private _syncChildren(): void {\n const steps = this._getSteps();\n steps.forEach((step, i) => {\n step.orientation = this.orientation;\n step.size = this.size;\n step.index = i;\n });\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleSlotChange = (): void => {\n this._syncChildren();\n };\n\n /** @internal */\n private _handleStepClickInternal = (e: Event): void => {\n e.stopPropagation();\n const steps = this._getSteps();\n const step = e\n .composedPath()\n .find(\n (el): el is HelixStep => el instanceof Element && el.tagName.toLowerCase() === 'hx-step',\n );\n if (!step) return;\n const index = steps.indexOf(step);\n\n /**\n * Dispatched when a step is clicked.\n * @event hx-step-click\n */\n this.dispatchEvent(\n new CustomEvent<{ step: HelixStep; index: number }>('hx-step-click', {\n bubbles: true,\n composed: true,\n detail: { step, index },\n }),\n );\n };\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"base\" class=\"steps\" role=\"list\" aria-label=${this.ariaLabel ?? nothing}>\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-steps': HelixSteps;\n }\n}\n","import { css } from 'lit';\n\nexport const helixStepStyles = css`\n :host {\n display: flex;\n flex: var(--hx-steps-item-flex, 1);\n width: var(--hx-steps-item-width, auto);\n min-width: 0;\n }\n\n /* ─── Visually Hidden (SR only) ─── */\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n\n /* ─── Step Wrapper ─── */\n\n .step {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n cursor: pointer;\n }\n\n /* ─── Focus ─── */\n\n :host(:focus-visible) .step__indicator {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-500);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Track (indicator + connector) ─── */\n\n .step__track {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n }\n\n /* ─── Indicator ─── */\n\n .step__indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--hx-steps-indicator-size, 2rem);\n height: var(--hx-steps-indicator-size, 2rem);\n border-radius: var(--hx-border-radius-full, 9999px);\n border: var(--hx-border-width-medium, 2px) solid var(--hx-color-neutral-300);\n background-color: var(--hx-color-neutral-0);\n color: var(--hx-color-neutral-500);\n font-size: var(--hx-steps-indicator-font-size, var(--hx-font-size-sm));\n font-weight: var(--hx-font-weight-semibold);\n font-family: var(--hx-font-family-sans);\n transition:\n background-color var(--hx-transition-fast, 150ms ease),\n border-color var(--hx-transition-fast, 150ms ease),\n color var(--hx-transition-fast, 150ms ease);\n position: relative;\n z-index: 1;\n }\n\n .step__indicator svg {\n width: var(--hx-steps-indicator-icon-size, 1rem);\n height: var(--hx-steps-indicator-icon-size, 1rem);\n }\n\n /* ─── Connector ─── */\n\n .step__connector {\n flex: 1;\n height: var(--hx-steps-connector-thickness, var(--hx-border-width, 2px));\n min-width: 0;\n background-color: var(--hx-steps-connector-color, var(--hx-color-neutral-200));\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n :host(:last-child) .step__connector {\n display: none;\n }\n\n /* ─── Label Area ─── */\n\n .step__label-area {\n text-align: center;\n margin-top: var(--hx-space-2, 0.5rem);\n width: 100%;\n padding: 0 var(--hx-space-1, 0.25rem);\n }\n\n .step__label {\n font-family: var(--hx-font-family-sans);\n font-size: var(--hx-steps-label-font-size, var(--hx-font-size-sm));\n font-weight: var(--hx-font-weight-medium);\n color: var(--hx-steps-label-color, var(--hx-color-neutral-600));\n line-height: var(--hx-line-height-tight, 1.25);\n }\n\n .step__description {\n font-family: var(--hx-font-family-sans);\n font-size: var(--hx-steps-description-font-size, var(--hx-font-size-xs));\n color: var(--hx-steps-description-color, var(--hx-color-neutral-500));\n margin-top: var(--hx-space-1, 0.25rem);\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n /* ─── Status: active ─── */\n\n /* Active: outlined indicator (in-progress) — visually distinct from complete (filled) */\n :host([status='active']) .step__indicator {\n border-color: var(--hx-color-primary-500);\n background-color: var(--hx-color-primary-500);\n color: var(--hx-color-neutral-0);\n }\n\n :host([status='active']) .step__label {\n color: var(--hx-color-primary-700);\n font-weight: var(--hx-font-weight-semibold);\n }\n\n /* ─── Status: complete ─── */\n\n /* Complete: filled indicator with darker shade — visually distinct from active */\n :host([status='complete']) .step__indicator {\n border-color: var(--hx-color-primary-700);\n background-color: var(--hx-color-primary-700);\n color: var(--hx-color-neutral-0);\n }\n\n :host([status='complete']) .step__connector {\n background-color: var(--hx-steps-connector-complete-color, var(--hx-color-primary-500));\n }\n\n :host([status='complete']) .step__label {\n color: var(--hx-color-neutral-700);\n }\n\n /* ─── Status: error ─── */\n\n :host([status='error']) .step__indicator {\n border-color: var(--hx-color-error-500);\n background-color: var(--hx-color-error-500);\n color: var(--hx-color-neutral-0);\n }\n\n :host([status='error']) .step__label {\n color: var(--hx-color-error-700);\n }\n\n /* ─── Status: disabled ─── */\n\n :host([disabled]) .step {\n cursor: not-allowed;\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n :host([disabled]) .step__indicator {\n border-color: var(--hx-color-neutral-300);\n background-color: var(--hx-color-neutral-100);\n color: var(--hx-color-neutral-400);\n }\n\n /* ─── Vertical Layout ─── */\n\n :host([orientation='vertical']) {\n flex: initial;\n width: 100%;\n }\n\n :host([orientation='vertical']) .step {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--hx-space-3, 0.75rem);\n }\n\n :host([orientation='vertical']) .step__track {\n flex-direction: column;\n align-items: center;\n width: auto;\n flex-shrink: 0;\n }\n\n :host([orientation='vertical']) .step__connector {\n width: var(--hx-steps-connector-thickness, var(--hx-border-width, 2px));\n height: auto;\n min-height: var(--hx-space-8, 2rem);\n flex: 1;\n }\n\n :host([orientation='vertical']) .step__label-area {\n text-align: start;\n margin-top: 0;\n padding-bottom: var(--hx-space-4, 1rem);\n padding-inline-start: 0;\n }\n\n :host([orientation='vertical']:last-child) .step__label-area {\n padding-bottom: 0;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .step__indicator {\n transition: none;\n }\n\n .step__connector {\n transition: none;\n }\n }\n`;\n","import { LitElement, html, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixStepStyles } from './hx-step.styles.js';\n\n/**\n * An individual step, designed to be used inside an `<hx-steps>` container.\n * Represents a single step in a multi-step wizard or progress indicator.\n *\n * @summary Individual step item within an `<hx-steps>` progress indicator.\n *\n * @tag hx-step\n *\n * @slot icon - Custom icon for the step indicator. Shown when status is `pending` or `active`.\n * @slot label - Step label text. Falls back to the `label` property.\n * @slot description - Step description text. Falls back to the `description` property.\n *\n * @csspart base - The outermost wrapper element.\n * @csspart indicator - The circular step indicator.\n * @csspart connector - The line connecting this step to the next.\n * @csspart label - The step label element.\n * @csspart description - The step description element.\n *\n * @cssprop [--hx-steps-indicator-size=2rem] - Indicator circle diameter.\n * @cssprop [--hx-steps-indicator-font-size=var(--hx-font-size-sm)] - Indicator text size.\n * @cssprop [--hx-steps-indicator-icon-size=1rem] - Indicator icon size.\n * @cssprop [--hx-steps-label-font-size=var(--hx-font-size-sm)] - Label font size.\n * @cssprop [--hx-steps-description-font-size=var(--hx-font-size-xs)] - Description font size.\n * @cssprop [--hx-steps-connector-color=var(--hx-color-neutral-200)] - Connector line color.\n * @cssprop [--hx-steps-connector-complete-color=var(--hx-color-primary-500)] - Connector color when step is complete.\n * @cssprop [--hx-steps-connector-thickness=var(--hx-border-width,2px)] - Connector line thickness.\n * @cssprop [--hx-steps-label-color=var(--hx-color-neutral-600)] - Label text color.\n * @cssprop [--hx-steps-description-color=var(--hx-color-neutral-500)] - Description text color.\n */\n@customElement('hx-step')\nexport class HelixStep extends LitElement {\n static override styles = [tokenStyles, helixStepStyles];\n\n // ─── Public Properties ───\n\n /**\n * The step label text.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = '';\n\n /**\n * Current status of the step.\n * @attr status\n */\n @property({ type: String, reflect: true })\n status: 'pending' | 'active' | 'complete' | 'error' = 'pending';\n\n /**\n * Optional description text shown below the label.\n * @attr description\n */\n @property({ type: String, reflect: true })\n description = '';\n\n /**\n * Whether the step is disabled and non-interactive.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n // ─── Internal Properties (set by parent hx-steps) ───\n\n /**\n * Layout orientation. Set by the parent `<hx-steps>` container via JS property.\n * Do not set this attribute directly on `<hx-step>` — use the `orientation`\n * property on the parent `<hx-steps>` container instead. The parent will\n * propagate the value to all child steps via `_syncChildren()`.\n * @internal\n */\n @property({ attribute: false })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size variant. Set by the parent `<hx-steps>` container via JS property.\n * Do not set this attribute directly on `<hx-step>` — use the `size` property\n * on the parent `<hx-steps>` container instead. The parent will propagate the\n * value to all child steps via `_syncChildren()`.\n * @internal\n */\n @property({ attribute: false })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Zero-based index of this step. Set by the parent `<hx-steps>` container.\n * @internal\n */\n @property({ type: Number })\n index = 0;\n\n // ─── Internal State ───\n\n /**\n * Text for the aria-live region, updated on status transitions.\n * Non-reactive: computed in willUpdate() to avoid an extra render cycle.\n * @internal\n */\n private _liveMessage = '';\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n this.setAttribute('tabindex', this.disabled ? '-1' : '0');\n this.addEventListener('keydown', this._handleKeydown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleKeydown);\n }\n\n override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('status')) {\n // STEPS-003: announce status transitions to screen readers via aria-live region.\n // Only announce on transitions (not initial render) by checking the previous value.\n // Using a non-reactive field here avoids scheduling an extra render cycle.\n const prev = changedProperties.get('status');\n if (prev !== undefined) {\n if (this.status === 'complete') {\n this._liveMessage = 'Complete';\n } else if (this.status === 'error') {\n this._liveMessage = 'Error';\n } else {\n this._liveMessage = '';\n }\n }\n }\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('status')) {\n if (this.status === 'active') {\n this.setAttribute('aria-current', 'step');\n } else {\n this.removeAttribute('aria-current');\n }\n }\n if (changedProperties.has('disabled')) {\n if (this.disabled) {\n this.setAttribute('tabindex', '-1');\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.setAttribute('tabindex', '0');\n this.removeAttribute('aria-disabled');\n }\n }\n if (changedProperties.has('orientation')) {\n this.setAttribute('orientation', this.orientation);\n }\n if (changedProperties.has('size')) {\n this.setAttribute('size', this.size);\n }\n }\n\n // ─── Event Handling ───\n\n /** @internal */\n private _handleKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._handleClick();\n }\n };\n\n /** @internal */\n private _handleClick(): void {\n if (this.disabled) {\n return;\n }\n\n /**\n * Internal event dispatched to signal step click to the parent container.\n * @internal\n */\n this.dispatchEvent(\n new CustomEvent<void>('hx-step-click-internal', {\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n // ─── Render Helpers ───\n\n /** @internal */\n private _renderCheckmark() {\n return html`\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 6L9 17l-5-5\" />\n </svg>\n <span class=\"sr-only\">Complete</span>\n `;\n }\n\n /** @internal */\n private _renderXMark() {\n return html`\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n <span class=\"sr-only\">Error</span>\n `;\n }\n\n /** @internal */\n private _renderIndicatorContent() {\n if (this.status === 'complete') {\n return this._renderCheckmark();\n }\n if (this.status === 'error') {\n return this._renderXMark();\n }\n return html`<slot name=\"icon\">${this.index + 1}</slot>`;\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"base\" class=\"step\" @click=${this._handleClick}>\n <div class=\"step__track\">\n <div part=\"indicator\" class=\"step__indicator\">${this._renderIndicatorContent()}</div>\n <div part=\"connector\" class=\"step__connector\" aria-hidden=\"true\"></div>\n </div>\n <div class=\"step__label-area\">\n <div part=\"label\" class=\"step__label\">\n <slot name=\"label\">${this.label}</slot>\n </div>\n <div part=\"description\" class=\"step__description\">\n <slot name=\"description\">${this.description}</slot>\n </div>\n </div>\n </div>\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">${this._liveMessage}</div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-step': HelixStep;\n }\n}\n"],"names":["helixStepsStyles","css","HelixSteps","LitElement","e","steps","step","el","index","legacySize","changedProperties","i","html","nothing","tokenStyles","__decorateClass","property","customElement","helixStepStyles","HelixStep","event"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { css as p, LitElement as
|
|
2
|
-
import { property as
|
|
1
|
+
import { css as p, LitElement as h, nothing as x, html as u } from "lit";
|
|
2
|
+
import { property as l, customElement as v } from "lit/decorators.js";
|
|
3
3
|
import { tokenStyles as b } from "@helixui/tokens/lit";
|
|
4
|
-
const
|
|
4
|
+
const m = p`
|
|
5
5
|
:host {
|
|
6
6
|
display: block;
|
|
7
7
|
--_border-color: var(--hx-structured-list-border-color, var(--hx-color-neutral-200, #e2e8f0));
|
|
@@ -35,7 +35,7 @@ const x = p`
|
|
|
35
35
|
:host([striped]) ::slotted(hx-structured-list-row:nth-of-type(even)) {
|
|
36
36
|
background: var(--_bg-stripe);
|
|
37
37
|
}
|
|
38
|
-
`,
|
|
38
|
+
`, _ = p`
|
|
39
39
|
:host {
|
|
40
40
|
display: block;
|
|
41
41
|
}
|
|
@@ -75,45 +75,48 @@ const x = p`
|
|
|
75
75
|
display: none;
|
|
76
76
|
}
|
|
77
77
|
`;
|
|
78
|
-
var
|
|
79
|
-
for (var r = o > 1 ? void 0 : o ?
|
|
80
|
-
(
|
|
81
|
-
return o && r &&
|
|
78
|
+
var f = Object.defineProperty, g = Object.getOwnPropertyDescriptor, t = (c, s, a, o) => {
|
|
79
|
+
for (var r = o > 1 ? void 0 : o ? g(s, a) : s, i = c.length - 1, d; i >= 0; i--)
|
|
80
|
+
(d = c[i]) && (r = (o ? d(s, a, r) : d(r)) || r);
|
|
81
|
+
return o && r && f(s, a, r), r;
|
|
82
82
|
};
|
|
83
|
-
let e = class extends
|
|
83
|
+
let e = class extends h {
|
|
84
84
|
constructor() {
|
|
85
|
-
super(...arguments), this.bordered = !1, this.condensed = !1, this.striped = !1;
|
|
85
|
+
super(...arguments), this.label = "", this.bordered = !1, this.condensed = !1, this.striped = !1;
|
|
86
86
|
}
|
|
87
87
|
connectedCallback() {
|
|
88
88
|
super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "list");
|
|
89
89
|
}
|
|
90
90
|
render() {
|
|
91
|
-
return
|
|
92
|
-
<div part="base" class="list">
|
|
91
|
+
return u`
|
|
92
|
+
<div part="base" class="list" aria-label=${this.label || x}>
|
|
93
93
|
<slot></slot>
|
|
94
94
|
</div>
|
|
95
95
|
`;
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
|
-
e.styles = [b,
|
|
98
|
+
e.styles = [b, m];
|
|
99
99
|
t([
|
|
100
|
-
|
|
100
|
+
l({ type: String })
|
|
101
|
+
], e.prototype, "label", 2);
|
|
102
|
+
t([
|
|
103
|
+
l({ type: Boolean, reflect: !0 })
|
|
101
104
|
], e.prototype, "bordered", 2);
|
|
102
105
|
t([
|
|
103
|
-
|
|
106
|
+
l({ type: Boolean, reflect: !0 })
|
|
104
107
|
], e.prototype, "condensed", 2);
|
|
105
108
|
t([
|
|
106
|
-
|
|
109
|
+
l({ type: Boolean, reflect: !0 })
|
|
107
110
|
], e.prototype, "striped", 2);
|
|
108
111
|
e = t([
|
|
109
112
|
v("hx-structured-list")
|
|
110
113
|
], e);
|
|
111
|
-
let
|
|
114
|
+
let n = class extends h {
|
|
112
115
|
connectedCallback() {
|
|
113
116
|
super.connectedCallback(), this.hasAttribute("role") || this.setAttribute("role", "listitem");
|
|
114
117
|
}
|
|
115
118
|
render() {
|
|
116
|
-
return
|
|
119
|
+
return u`
|
|
117
120
|
<div part="base" class="row">
|
|
118
121
|
<div part="label" class="row__label">
|
|
119
122
|
<slot name="label"></slot>
|
|
@@ -128,12 +131,12 @@ let d = class extends u {
|
|
|
128
131
|
`;
|
|
129
132
|
}
|
|
130
133
|
};
|
|
131
|
-
|
|
132
|
-
|
|
134
|
+
n.styles = [b, _];
|
|
135
|
+
n = t([
|
|
133
136
|
v("hx-structured-list-row")
|
|
134
|
-
],
|
|
137
|
+
], n);
|
|
135
138
|
export {
|
|
136
139
|
e as H,
|
|
137
|
-
|
|
140
|
+
n as a
|
|
138
141
|
};
|
|
139
|
-
//# sourceMappingURL=hx-structured-list-
|
|
142
|
+
//# sourceMappingURL=hx-structured-list-Db9rwLI_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-structured-list-Db9rwLI_.js","sources":["../../src/components/hx-structured-list/hx-structured-list.styles.ts","../../src/components/hx-structured-list/hx-structured-list.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixStructuredListStyles = css`\n :host {\n display: block;\n --_border-color: var(--hx-structured-list-border-color, var(--hx-color-neutral-200, #e2e8f0));\n --_border-width: var(--hx-structured-list-border-width, var(--hx-border-width-thin, 1px));\n --_bg-stripe: var(--hx-structured-list-stripe-bg, var(--hx-color-neutral-50, #f8fafc));\n --_padding-block: var(--hx-structured-list-padding-block, var(--hx-space-4, 1rem));\n --_padding-inline: var(--hx-structured-list-padding-inline, var(--hx-space-4, 1rem));\n }\n\n :host([condensed]) {\n --_padding-block: var(--hx-structured-list-condensed-padding-block, var(--hx-space-2, 0.5rem));\n --_padding-inline: var(\n --hx-structured-list-condensed-padding-inline,\n var(--hx-space-3, 0.75rem)\n );\n }\n\n .list {\n display: block;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n :host([bordered]) .list {\n border: var(--_border-width) solid var(--_border-color);\n border-radius: var(--hx-border-radius-md, 0.375rem);\n overflow: hidden;\n }\n\n :host([striped]) ::slotted(hx-structured-list-row:nth-of-type(even)) {\n background: var(--_bg-stripe);\n }\n`;\n\nexport const helixStructuredListRowStyles = css`\n :host {\n display: block;\n }\n\n .row {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);\n align-items: baseline;\n padding-block: var(--_padding-block, var(--hx-space-4, 1rem));\n padding-inline: var(--_padding-inline, var(--hx-space-4, 1rem));\n gap: var(--hx-space-4, 1rem);\n }\n\n :host(:not(:last-of-type)) .row {\n border-bottom: var(--_border-width, var(--hx-border-width-thin, 1px)) solid\n var(--_border-color, var(--hx-color-neutral-200, #e2e8f0));\n }\n\n .row__label {\n font-weight: var(--hx-font-weight-medium, 500);\n color: var(--hx-structured-list-label-color, var(--hx-color-neutral-700, #374151));\n font-size: var(--hx-font-size-sm, 0.875rem);\n }\n\n .row__value {\n color: var(--hx-structured-list-value-color, var(--hx-color-neutral-900, #111827));\n font-size: var(--hx-font-size-sm, 0.875rem);\n }\n\n .row__actions {\n display: flex;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n }\n\n .row__actions:empty {\n display: none;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport {\n helixStructuredListStyles,\n helixStructuredListRowStyles,\n} from './hx-structured-list.styles.js';\n\n/**\n * Container for structured key-value data display. Renders as a list with\n * `role=\"list\"` on the host and `role=\"listitem\"` on each `hx-structured-list-row`,\n * preserving the list/listitem relationship across shadow DOM boundaries.\n * Use `hx-structured-list-row` as direct children.\n *\n * @summary Key-value data display container for detail and summary views.\n *\n * @tag hx-structured-list\n *\n * @slot - One or more `hx-structured-list-row` elements.\n *\n * @csspart base - The root list element.\n *\n * @cssprop [--hx-structured-list-border-color=var(--hx-color-neutral-200)] - Border color when bordered.\n * @cssprop [--hx-structured-list-border-width=var(--hx-border-width-thin)] - Border width when bordered.\n * @cssprop [--hx-structured-list-stripe-bg=var(--hx-color-neutral-50)] - Stripe background color.\n * @cssprop [--hx-structured-list-padding-block=var(--hx-space-4)] - Row block padding.\n * @cssprop [--hx-structured-list-padding-inline=var(--hx-space-4)] - Row inline padding.\n * @cssprop [--hx-structured-list-condensed-padding-block=var(--hx-space-2)] - Row block padding (condensed).\n * @cssprop [--hx-structured-list-condensed-padding-inline=var(--hx-space-3)] - Row inline padding (condensed).\n */\n@customElement('hx-structured-list')\nexport class HelixStructuredList extends LitElement {\n static override styles = [tokenStyles, helixStructuredListStyles];\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Set role on the host element so the list/listitem relationship is\n // preserved in the light DOM tree, crossing shadow boundaries correctly.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'list');\n }\n }\n\n /**\n * Accessible label for the list container. Use when multiple structured lists appear\n * on the same page so screen readers can distinguish them (WCAG 4.1.2).\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Renders a border around the entire list.\n * @attr bordered\n */\n @property({ type: Boolean, reflect: true })\n bordered = false;\n\n /**\n * Reduces row padding for denser layouts.\n * @attr condensed\n */\n @property({ type: Boolean, reflect: true })\n condensed = false;\n\n /**\n * Alternates row background colors for easier scanning.\n * @attr striped\n */\n @property({ type: Boolean, reflect: true })\n striped = false;\n\n override render() {\n return html`\n <div part=\"base\" class=\"list\" aria-label=${this.label || nothing}>\n <slot></slot>\n </div>\n `;\n }\n}\n\n/**\n * A single row within an `hx-structured-list`. Renders a label/value pair\n * with an optional actions area.\n *\n * @summary A label-value row for use inside `hx-structured-list`.\n *\n * @tag hx-structured-list-row\n *\n * @slot label - The term or key label (`<dt>` semantics).\n * @slot - The value or definition (`<dd>` semantics).\n * @slot actions - Optional action controls (edit button, etc.).\n *\n * @csspart base - The root row element.\n * @csspart label - The label (`dt`) cell.\n * @csspart value - The value (`dd`) cell.\n * @csspart actions - The actions cell.\n *\n * @cssprop [--hx-structured-list-label-color=var(--hx-color-neutral-700)] - Label text color.\n * @cssprop [--hx-structured-list-value-color=var(--hx-color-neutral-900)] - Value text color.\n */\n@customElement('hx-structured-list-row')\nexport class HelixStructuredListRow extends LitElement {\n static override styles = [tokenStyles, helixStructuredListRowStyles];\n\n override connectedCallback(): void {\n super.connectedCallback();\n // Set role on the host element so screen readers see listitem as a direct\n // child of the hx-structured-list host (which carries role=\"list\"),\n // preserving the list/listitem relationship across shadow boundaries.\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n }\n\n override render() {\n return html`\n <div part=\"base\" class=\"row\">\n <div part=\"label\" class=\"row__label\">\n <slot name=\"label\"></slot>\n </div>\n <div part=\"value\" class=\"row__value\">\n <slot></slot>\n <div part=\"actions\" class=\"row__actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-structured-list': HelixStructuredList;\n 'hx-structured-list-row': HelixStructuredListRow;\n }\n}\n"],"names":["helixStructuredListStyles","css","helixStructuredListRowStyles","HelixStructuredList","LitElement","html","nothing","tokenStyles","__decorateClass","property","customElement","HelixStructuredListRow"],"mappings":";;;AAEO,MAAMA,IAA4BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAoC5BC,IAA+BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACPrC,IAAME,IAAN,cAAkCC,EAAW;AAAA,EAA7C,cAAA;AAAA,UAAA,GAAA,SAAA,GAkBL,KAAA,QAAQ,IAOR,KAAA,WAAW,IAOX,KAAA,YAAY,IAOZ,KAAA,UAAU;AAAA,EAAA;AAAA,EApCD,oBAA0B;AACjC,UAAM,kBAAA,GAGD,KAAK,aAAa,MAAM,KAC3B,KAAK,aAAa,QAAQ,MAAM;AAAA,EAEpC;AAAA,EA+BS,SAAS;AAChB,WAAOC;AAAA,iDACsC,KAAK,SAASC,CAAO;AAAA;AAAA;AAAA;AAAA,EAIpE;AACF;AAhDaH,EACK,SAAS,CAACI,GAAaP,CAAyB;AAiBhEQ,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAjBfN,EAkBX,WAAA,SAAA,CAAA;AAOAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAxB/BN,EAyBX,WAAA,YAAA,CAAA;AAOAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA/B/BN,EAgCX,WAAA,aAAA,CAAA;AAOAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAtC/BN,EAuCX,WAAA,WAAA,CAAA;AAvCWA,IAANK,EAAA;AAAA,EADNE,EAAc,oBAAoB;AAAA,GACtBP,CAAA;AAuEN,IAAMQ,IAAN,cAAqCP,EAAW;AAAA,EAG5C,oBAA0B;AACjC,UAAM,kBAAA,GAID,KAAK,aAAa,MAAM,KAC3B,KAAK,aAAa,QAAQ,UAAU;AAAA,EAExC;AAAA,EAES,SAAS;AAChB,WAAOC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaT;AACF;AA5BaM,EACK,SAAS,CAACJ,GAAaL,CAA4B;AADxDS,IAANH,EAAA;AAAA,EADNE,EAAc,wBAAwB;AAAA,GAC1BC,CAAA;"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { css as b, LitElement as x, html as C } from "lit";
|
|
2
|
+
import { property as f, customElement as $ } from "lit/decorators.js";
|
|
3
|
+
const _ = b`
|
|
4
|
+
:host {
|
|
5
|
+
display: contents;
|
|
6
|
+
}
|
|
7
|
+
`, a = /* @__PURE__ */ new Map();
|
|
8
|
+
function w(t) {
|
|
9
|
+
return a.has(t);
|
|
10
|
+
}
|
|
11
|
+
function E(t, r) {
|
|
12
|
+
a.set(t, r);
|
|
13
|
+
}
|
|
14
|
+
function O(t, r) {
|
|
15
|
+
const n = `[data-hx-styled="${t}"]`;
|
|
16
|
+
return y(r, n);
|
|
17
|
+
}
|
|
18
|
+
function l(t, r) {
|
|
19
|
+
return t[r] ?? "";
|
|
20
|
+
}
|
|
21
|
+
function y(t, r) {
|
|
22
|
+
const n = [];
|
|
23
|
+
let e = 0;
|
|
24
|
+
const i = t.length;
|
|
25
|
+
for (; e < i; ) {
|
|
26
|
+
for (; e < i && /\s/.test(l(t, e)); )
|
|
27
|
+
n.push(l(t, e)), e++;
|
|
28
|
+
if (e >= i) break;
|
|
29
|
+
if (l(t, e) === "@") {
|
|
30
|
+
const d = A(t, e);
|
|
31
|
+
n.push(j(d.text, r)), e = d.end;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const o = t.indexOf("{", e);
|
|
35
|
+
if (o === -1) break;
|
|
36
|
+
const s = t.slice(e, o), h = o + 1, p = g(t, o);
|
|
37
|
+
if (p === -1) break;
|
|
38
|
+
const m = t.slice(h, p), S = v(s, r);
|
|
39
|
+
n.push(`${S}{${m}}`), e = p + 1;
|
|
40
|
+
}
|
|
41
|
+
return n.join("");
|
|
42
|
+
}
|
|
43
|
+
function v(t, r) {
|
|
44
|
+
return t.split(",").map((n) => {
|
|
45
|
+
const e = n.trim();
|
|
46
|
+
if (e.startsWith("::slotted(") && e.endsWith(")")) {
|
|
47
|
+
const i = e.slice(10, -1).trim();
|
|
48
|
+
return `${r} ${i}`;
|
|
49
|
+
}
|
|
50
|
+
return e === ":host" || e.startsWith(":host(") || e.startsWith(":host ") ? e.replace(/^:host(\([^)]*\))?/, r) : `${r} ${e}`;
|
|
51
|
+
}).join(", ");
|
|
52
|
+
}
|
|
53
|
+
function j(t, r) {
|
|
54
|
+
const n = /^@(media|supports|layer|container|document)\b/, e = t.indexOf("{");
|
|
55
|
+
if (e === -1 || !n.test(t.trim()))
|
|
56
|
+
return t;
|
|
57
|
+
const i = t.slice(0, e + 1), o = t.lastIndexOf("}"), s = t.slice(e + 1, o), h = t.slice(o);
|
|
58
|
+
return `${i}${y(s, r)}${h}`;
|
|
59
|
+
}
|
|
60
|
+
function A(t, r) {
|
|
61
|
+
let n = r;
|
|
62
|
+
for (; n < t.length && l(t, n) !== "{" && l(t, n) !== ";"; )
|
|
63
|
+
n++;
|
|
64
|
+
if (n >= t.length)
|
|
65
|
+
return { text: t.slice(r), end: t.length };
|
|
66
|
+
if (l(t, n) === ";")
|
|
67
|
+
return { text: t.slice(r, n + 1), end: n + 1 };
|
|
68
|
+
const e = g(t, n);
|
|
69
|
+
return e === -1 ? { text: t.slice(r), end: t.length } : { text: t.slice(r, e + 1), end: e + 1 };
|
|
70
|
+
}
|
|
71
|
+
function g(t, r) {
|
|
72
|
+
let n = 0;
|
|
73
|
+
for (let e = r; e < t.length; e++) {
|
|
74
|
+
const i = l(t, e);
|
|
75
|
+
if (i === "{") n++;
|
|
76
|
+
else if (i === "}" && (n--, n === 0))
|
|
77
|
+
return e;
|
|
78
|
+
}
|
|
79
|
+
return -1;
|
|
80
|
+
}
|
|
81
|
+
function P(t, r) {
|
|
82
|
+
if (typeof document > "u" || w(t)) return;
|
|
83
|
+
const n = O(t, r), e = document.createElement("style");
|
|
84
|
+
e.setAttribute("data-hx-light-styles", t), e.textContent = n, document.head.appendChild(e), E(t, e);
|
|
85
|
+
}
|
|
86
|
+
var W = Object.defineProperty, B = Object.getOwnPropertyDescriptor, u = (t, r, n, e) => {
|
|
87
|
+
for (var i = e > 1 ? void 0 : e ? B(r, n) : r, o = t.length - 1, s; o >= 0; o--)
|
|
88
|
+
(s = t[o]) && (i = (e ? s(r, n, i) : s(i)) || i);
|
|
89
|
+
return e && i && W(r, n, i), i;
|
|
90
|
+
};
|
|
91
|
+
let c = class extends x {
|
|
92
|
+
constructor() {
|
|
93
|
+
super(...arguments), this.component = "", this.lightCss = "";
|
|
94
|
+
}
|
|
95
|
+
connectedCallback() {
|
|
96
|
+
super.connectedCallback(), this._applyScope();
|
|
97
|
+
}
|
|
98
|
+
updated(t) {
|
|
99
|
+
(t.has("component") || t.has("lightCss")) && this._applyScope();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Applies the `data-hx-styled` attribute and triggers style injection.
|
|
103
|
+
* Called on connect and whenever `component` or `lightCss` changes.
|
|
104
|
+
*/
|
|
105
|
+
_applyScope() {
|
|
106
|
+
this.component && (this.setAttribute("data-hx-styled", this.component), this.lightCss && P(this.component, this.lightCss));
|
|
107
|
+
}
|
|
108
|
+
render() {
|
|
109
|
+
return C`<slot></slot>`;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
c.styles = [_];
|
|
113
|
+
u([
|
|
114
|
+
f({ type: String, reflect: !0 })
|
|
115
|
+
], c.prototype, "component", 2);
|
|
116
|
+
u([
|
|
117
|
+
f({ type: String, attribute: "light-css" })
|
|
118
|
+
], c.prototype, "lightCss", 2);
|
|
119
|
+
c = u([
|
|
120
|
+
$("hx-style-scope")
|
|
121
|
+
], c);
|
|
122
|
+
export {
|
|
123
|
+
c as H
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=hx-style-scope-BroUu83L.js.map
|