@helixui/library 1.1.1 → 1.1.2-next.2
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 +8089 -7072
- 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/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.d.ts +32 -3
- 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 +11 -8
- 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 +126 -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-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.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 +105 -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 +72 -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 +16 -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 +7 -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 +2 -2
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -1
- package/dist/components/hx-status-indicator/index.js +1 -1
- package/dist/components/hx-steps/hx-step.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 +2 -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 +7 -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 +21 -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 +9592 -0
- package/dist/css/helix-core.css +1788 -0
- package/dist/css/helix-data.css +639 -0
- package/dist/css/helix-feedback.css +1239 -0
- package/dist/css/helix-forms.css +2498 -0
- package/dist/css/helix-layout.css +380 -0
- package/dist/css/helix-media.css +213 -0
- package/dist/css/helix-navigation.css +1129 -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 +117 -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 +262 -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 +246 -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 +21 -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 +111 -0
- package/dist/css/hx-phi-field.css +85 -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 +268 -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 +97 -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 +2696 -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-7p1cj3lG.js} +2 -2
- package/dist/shared/hx-avatar-7p1cj3lG.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-B2rjepqy.js} +79 -78
- package/dist/shared/hx-breadcrumb-item-B2rjepqy.js.map +1 -0
- package/dist/shared/{hx-button-7k-KeCYU.js → hx-button-6S3DwuIj.js} +81 -56
- package/dist/shared/hx-button-6S3DwuIj.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-De8yrA5I.js +467 -0
- package/dist/shared/hx-clinical-status-De8yrA5I.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-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-D377Ngz4.js} +23 -24
- package/dist/shared/hx-nav-D377Ngz4.js.map +1 -0
- package/dist/shared/{hx-nav-item-D3EJatzc.js → hx-nav-item-CuGiJPAf.js} +75 -49
- package/dist/shared/hx-nav-item-CuGiJPAf.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-DYhYPqDn.js} +68 -63
- package/dist/shared/hx-pagination-DYhYPqDn.js.map +1 -0
- package/dist/shared/hx-patient-banner-BoJHddAL.js +256 -0
- package/dist/shared/hx-patient-banner-BoJHddAL.js.map +1 -0
- package/dist/shared/hx-phi-field-EDWna59z.js +261 -0
- package/dist/shared/hx-phi-field-EDWna59z.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-4-nHL0vd.js} +73 -61
- package/dist/shared/hx-select-4-nHL0vd.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-4ClvA5mU.js} +19 -19
- package/dist/shared/hx-status-indicator-4ClvA5mU.js.map +1 -0
- package/dist/shared/{hx-step-BIVWSPxd.js → hx-step-DlANlr2A.js} +31 -71
- package/dist/shared/hx-step-DlANlr2A.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-GGjk6Qg4.js} +129 -118
- package/dist/shared/hx-tab-panel-GGjk6Qg4.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-DTDIBRrI.js} +122 -89
- package/dist/shared/hx-tree-item-DTDIBRrI.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-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
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { css as x, LitElement as m, nothing as d, html as
|
|
2
|
-
import { property as
|
|
1
|
+
import { css as x, LitElement as m, nothing as d, html as u } from "lit";
|
|
2
|
+
import { property as n, state as v, customElement as y } from "lit/decorators.js";
|
|
3
3
|
import { classMap as P } from "lit/directives/class-map.js";
|
|
4
4
|
import { repeat as w } from "lit/directives/repeat.js";
|
|
5
5
|
import { tokenStyles as $ } from "@helixui/tokens/lit";
|
|
@@ -42,7 +42,8 @@ const z = x`
|
|
|
42
42
|
min-width: var(--hx-pagination-button-size, 2.25rem);
|
|
43
43
|
height: var(--hx-pagination-button-size, 2.25rem);
|
|
44
44
|
padding: 0 var(--hx-space-2, 0.5rem);
|
|
45
|
-
border:
|
|
45
|
+
border: var(--hx-border-width-thin, 1px) solid
|
|
46
|
+
var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));
|
|
46
47
|
border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
47
48
|
background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));
|
|
48
49
|
color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));
|
|
@@ -81,7 +82,7 @@ const z = x`
|
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
.button:disabled {
|
|
84
|
-
opacity: 0.
|
|
85
|
+
opacity: var(--hx-opacity-disabled, 0.5);
|
|
85
86
|
pointer-events: none;
|
|
86
87
|
}
|
|
87
88
|
|
|
@@ -119,7 +120,8 @@ const z = x`
|
|
|
119
120
|
.page-size-select {
|
|
120
121
|
height: var(--hx-pagination-button-size, 2.25rem);
|
|
121
122
|
padding: 0 var(--hx-space-2, 0.5rem);
|
|
122
|
-
border:
|
|
123
|
+
border: var(--hx-border-width-thin, 1px) solid
|
|
124
|
+
var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));
|
|
123
125
|
border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
124
126
|
background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));
|
|
125
127
|
color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));
|
|
@@ -196,13 +198,13 @@ const z = x`
|
|
|
196
198
|
}
|
|
197
199
|
`;
|
|
198
200
|
var _ = Object.defineProperty, k = Object.getOwnPropertyDescriptor, s = (i, t, r, a) => {
|
|
199
|
-
for (var e = a > 1 ? void 0 : a ? k(t, r) : t,
|
|
200
|
-
(
|
|
201
|
+
for (var e = a > 1 ? void 0 : a ? k(t, r) : t, h = i.length - 1, c; h >= 0; h--)
|
|
202
|
+
(c = i[h]) && (e = (a ? c(t, r, e) : c(e)) || e);
|
|
201
203
|
return a && e && _(t, r, e), e;
|
|
202
204
|
};
|
|
203
205
|
let o = class extends m {
|
|
204
206
|
constructor() {
|
|
205
|
-
super(...arguments), this.totalPages = 1, this.currentPage = 1, this.siblingCount = 1, this.boundaryCount = 1, this.showFirstLast = !1, this.label = "Pagination", this.pageSize = 25, this.showPageSize = !1, this.labelRowsPerPage = "Rows per page:", this.
|
|
207
|
+
super(...arguments), this.totalPages = 1, this.currentPage = 1, this.siblingCount = 1, this.boundaryCount = 1, this.showFirstLast = !1, this.label = "Pagination", this.pageSize = 25, this.showPageSize = !1, this.labelRowsPerPage = "Rows per page:", this.firstPageLabel = "First page", this.previousPageLabel = "Previous page", this.nextPageLabel = "Next page", this.lastPageLabel = "Last page", this.labelPageMessage = (i, t) => `Page ${i} of ${t}`, this.labelPageButton = (i) => `Page ${i}`, this._rovingKey = null, this._liveMessage = "", this._pageRangeCache = null;
|
|
206
208
|
}
|
|
207
209
|
// ─── Helpers ───
|
|
208
210
|
/** @internal */
|
|
@@ -210,19 +212,19 @@ let o = class extends m {
|
|
|
210
212
|
var f;
|
|
211
213
|
const i = `${this.totalPages}-${this.currentPage}-${this.siblingCount}-${this.boundaryCount}`;
|
|
212
214
|
if (((f = this._pageRangeCache) == null ? void 0 : f.key) === i) return this._pageRangeCache.result;
|
|
213
|
-
const t = Math.max(1, this.totalPages), r = Math.min(Math.max(1, this.currentPage), t), a = Math.max(0, this.boundaryCount), e = Math.max(0, this.siblingCount),
|
|
215
|
+
const t = Math.max(1, this.totalPages), r = Math.min(Math.max(1, this.currentPage), t), a = Math.max(0, this.boundaryCount), e = Math.max(0, this.siblingCount), h = this._range(1, Math.min(a, t)), c = this._range(Math.max(t - a + 1, a + 1), t), g = Math.max(
|
|
214
216
|
Math.min(r - e, t - a - e * 2 - 1),
|
|
215
217
|
a + 2
|
|
216
|
-
),
|
|
218
|
+
), p = Math.min(
|
|
217
219
|
Math.max(r + e, a + e * 2 + 2),
|
|
218
|
-
|
|
219
|
-
),
|
|
220
|
-
for (const b of
|
|
221
|
-
|
|
222
|
-
for (const b of this._range(
|
|
223
|
-
|
|
224
|
-
for (const b of
|
|
225
|
-
return this._pageRangeCache = { key: i, result:
|
|
220
|
+
c.length > 0 ? (c[0] ?? t) - 2 : t - 1
|
|
221
|
+
), l = [];
|
|
222
|
+
for (const b of h) l.push(b);
|
|
223
|
+
g > a + 2 ? l.push("ellipsis") : a + 1 < g && l.push(a + 1);
|
|
224
|
+
for (const b of this._range(g, p)) l.push(b);
|
|
225
|
+
p < t - a - 1 ? l.push("ellipsis") : p < t - a && l.push(t - a);
|
|
226
|
+
for (const b of c) l.push(b);
|
|
227
|
+
return this._pageRangeCache = { key: i, result: l }, l;
|
|
226
228
|
}
|
|
227
229
|
/** @internal */
|
|
228
230
|
_range(i, t) {
|
|
@@ -233,7 +235,7 @@ let o = class extends m {
|
|
|
233
235
|
/** @internal */
|
|
234
236
|
_navigate(i) {
|
|
235
237
|
const t = Math.min(Math.max(1, i), this.totalPages);
|
|
236
|
-
t !== this.currentPage && (this.currentPage = t, this._rovingKey = null, this._liveMessage = this.
|
|
238
|
+
t !== this.currentPage && (this.currentPage = t, this._rovingKey = null, this._liveMessage = this.labelPageMessage(t, this.totalPages), this.dispatchEvent(
|
|
237
239
|
new CustomEvent("hx-page-change", {
|
|
238
240
|
detail: { page: t },
|
|
239
241
|
bubbles: !0,
|
|
@@ -265,25 +267,25 @@ let o = class extends m {
|
|
|
265
267
|
}
|
|
266
268
|
/** @internal */
|
|
267
269
|
_handleKeydown(i) {
|
|
268
|
-
var
|
|
270
|
+
var c, g;
|
|
269
271
|
if (i.key !== "ArrowLeft" && i.key !== "ArrowRight") return;
|
|
270
272
|
i.preventDefault();
|
|
271
|
-
const t = (
|
|
273
|
+
const t = (c = this.shadowRoot) == null ? void 0 : c.querySelector(".list");
|
|
272
274
|
if (!t) return;
|
|
273
|
-
const r = Array.from(t.querySelectorAll("button:not([disabled])")), a = (
|
|
274
|
-
if (
|
|
275
|
-
const
|
|
276
|
-
if (!
|
|
277
|
-
const
|
|
278
|
-
|
|
275
|
+
const r = Array.from(t.querySelectorAll("button:not([disabled])")), a = (g = this.shadowRoot) == null ? void 0 : g.activeElement, e = a ? r.indexOf(a) : 0, h = i.key === "ArrowLeft" ? Math.max(0, e - 1) : Math.min(r.length - 1, e + 1);
|
|
276
|
+
if (h !== e) {
|
|
277
|
+
const p = r[h];
|
|
278
|
+
if (!p) return;
|
|
279
|
+
const l = p.dataset.rovingKey;
|
|
280
|
+
l !== void 0 && (this._rovingKey = isNaN(Number(l)) ? l : Number(l)), p.focus();
|
|
279
281
|
}
|
|
280
282
|
}
|
|
281
283
|
// ─── Render ───
|
|
282
284
|
render() {
|
|
283
285
|
const i = this._buildPageRange(), t = this.currentPage <= 1, r = this.currentPage >= this.totalPages, a = this._effectiveRovingKey;
|
|
284
|
-
return
|
|
286
|
+
return u`
|
|
285
287
|
<div class="pagination-root">
|
|
286
|
-
${this.showPageSize ?
|
|
288
|
+
${this.showPageSize ? u`
|
|
287
289
|
<div part="page-size-wrapper" class="page-size-wrapper">
|
|
288
290
|
<label part="page-size-label" class="page-size-label">
|
|
289
291
|
${this.labelRowsPerPage}
|
|
@@ -293,7 +295,7 @@ let o = class extends m {
|
|
|
293
295
|
@change=${this._handlePageSizeChange}
|
|
294
296
|
>
|
|
295
297
|
${[10, 25, 50, 100].map(
|
|
296
|
-
(e) =>
|
|
298
|
+
(e) => u`<option value=${e} ?selected=${e === this.pageSize}>${e}</option>`
|
|
297
299
|
)}
|
|
298
300
|
</select>
|
|
299
301
|
</label>
|
|
@@ -311,7 +313,7 @@ let o = class extends m {
|
|
|
311
313
|
@keydown=${this._handleKeydown}
|
|
312
314
|
@focusin=${this._handleFocusin}
|
|
313
315
|
>
|
|
314
|
-
${this.showFirstLast ?
|
|
316
|
+
${this.showFirstLast ? u`
|
|
315
317
|
<li part="item" class="item">
|
|
316
318
|
<button
|
|
317
319
|
part="button"
|
|
@@ -319,7 +321,7 @@ let o = class extends m {
|
|
|
319
321
|
?disabled=${t}
|
|
320
322
|
tabindex=${a === "first" ? 0 : -1}
|
|
321
323
|
data-roving-key="first"
|
|
322
|
-
aria-label=${this.
|
|
324
|
+
aria-label=${this.firstPageLabel}
|
|
323
325
|
@click=${() => this._navigate(1)}
|
|
324
326
|
>
|
|
325
327
|
«
|
|
@@ -334,7 +336,7 @@ let o = class extends m {
|
|
|
334
336
|
?disabled=${t}
|
|
335
337
|
tabindex=${a === "prev" ? 0 : -1}
|
|
336
338
|
data-roving-key="prev"
|
|
337
|
-
aria-label=${this.
|
|
339
|
+
aria-label=${this.previousPageLabel}
|
|
338
340
|
@click=${() => this._navigate(this.currentPage - 1)}
|
|
339
341
|
>
|
|
340
342
|
‹
|
|
@@ -343,25 +345,25 @@ let o = class extends m {
|
|
|
343
345
|
|
|
344
346
|
${w(
|
|
345
347
|
i,
|
|
346
|
-
(e,
|
|
348
|
+
(e, h) => e === "ellipsis" ? `ellipsis-${h}` : `page-${e}`,
|
|
347
349
|
(e) => {
|
|
348
350
|
if (e === "ellipsis")
|
|
349
|
-
return
|
|
351
|
+
return u`
|
|
350
352
|
<li part="item" class="item">
|
|
351
353
|
<span part="ellipsis" class="ellipsis" aria-hidden="true">…</span>
|
|
352
354
|
</li>
|
|
353
355
|
`;
|
|
354
|
-
const
|
|
355
|
-
return
|
|
356
|
+
const h = e === this.currentPage;
|
|
357
|
+
return u`
|
|
356
358
|
<li part="item" class="item">
|
|
357
359
|
<button
|
|
358
360
|
part="button"
|
|
359
361
|
class=${P({ button: !0 })}
|
|
360
|
-
aria-disabled=${
|
|
362
|
+
aria-disabled=${h ? "true" : d}
|
|
361
363
|
tabindex=${a === e ? 0 : -1}
|
|
362
364
|
data-roving-key=${e}
|
|
363
|
-
aria-current=${
|
|
364
|
-
aria-label=${
|
|
365
|
+
aria-current=${h ? "page" : d}
|
|
366
|
+
aria-label=${this.labelPageButton(e)}
|
|
365
367
|
@click=${() => this._navigate(e)}
|
|
366
368
|
>
|
|
367
369
|
${e}
|
|
@@ -378,14 +380,14 @@ let o = class extends m {
|
|
|
378
380
|
?disabled=${r}
|
|
379
381
|
tabindex=${a === "next" ? 0 : -1}
|
|
380
382
|
data-roving-key="next"
|
|
381
|
-
aria-label=${this.
|
|
383
|
+
aria-label=${this.nextPageLabel}
|
|
382
384
|
@click=${() => this._navigate(this.currentPage + 1)}
|
|
383
385
|
>
|
|
384
386
|
›
|
|
385
387
|
</button>
|
|
386
388
|
</li>
|
|
387
389
|
|
|
388
|
-
${this.showFirstLast ?
|
|
390
|
+
${this.showFirstLast ? u`
|
|
389
391
|
<li part="item" class="item">
|
|
390
392
|
<button
|
|
391
393
|
part="button"
|
|
@@ -393,7 +395,7 @@ let o = class extends m {
|
|
|
393
395
|
?disabled=${r}
|
|
394
396
|
tabindex=${a === "last" ? 0 : -1}
|
|
395
397
|
data-roving-key="last"
|
|
396
|
-
aria-label=${this.
|
|
398
|
+
aria-label=${this.lastPageLabel}
|
|
397
399
|
@click=${() => this._navigate(this.totalPages)}
|
|
398
400
|
>
|
|
399
401
|
»
|
|
@@ -408,47 +410,50 @@ let o = class extends m {
|
|
|
408
410
|
};
|
|
409
411
|
o.styles = [$, z];
|
|
410
412
|
s([
|
|
411
|
-
|
|
413
|
+
n({ type: Number, attribute: "total-pages", reflect: !0 })
|
|
412
414
|
], o.prototype, "totalPages", 2);
|
|
413
415
|
s([
|
|
414
|
-
|
|
416
|
+
n({ type: Number, attribute: "current-page" })
|
|
415
417
|
], o.prototype, "currentPage", 2);
|
|
416
418
|
s([
|
|
417
|
-
|
|
419
|
+
n({ type: Number, attribute: "sibling-count", reflect: !0 })
|
|
418
420
|
], o.prototype, "siblingCount", 2);
|
|
419
421
|
s([
|
|
420
|
-
|
|
422
|
+
n({ type: Number, attribute: "boundary-count", reflect: !0 })
|
|
421
423
|
], o.prototype, "boundaryCount", 2);
|
|
422
424
|
s([
|
|
423
|
-
|
|
425
|
+
n({ type: Boolean, attribute: "show-first-last", reflect: !0 })
|
|
424
426
|
], o.prototype, "showFirstLast", 2);
|
|
425
427
|
s([
|
|
426
|
-
|
|
428
|
+
n({ type: String, reflect: !0 })
|
|
427
429
|
], o.prototype, "label", 2);
|
|
428
430
|
s([
|
|
429
|
-
|
|
431
|
+
n({ type: Number, attribute: "page-size", reflect: !0 })
|
|
430
432
|
], o.prototype, "pageSize", 2);
|
|
431
433
|
s([
|
|
432
|
-
|
|
434
|
+
n({ type: Boolean, attribute: "show-page-size", reflect: !0 })
|
|
433
435
|
], o.prototype, "showPageSize", 2);
|
|
434
436
|
s([
|
|
435
|
-
|
|
437
|
+
n({ type: String, attribute: "label-rows-per-page" })
|
|
436
438
|
], o.prototype, "labelRowsPerPage", 2);
|
|
437
439
|
s([
|
|
438
|
-
|
|
439
|
-
], o.prototype, "
|
|
440
|
+
n({ attribute: "first-page-label" })
|
|
441
|
+
], o.prototype, "firstPageLabel", 2);
|
|
440
442
|
s([
|
|
441
|
-
|
|
442
|
-
], o.prototype, "
|
|
443
|
+
n({ attribute: "previous-page-label" })
|
|
444
|
+
], o.prototype, "previousPageLabel", 2);
|
|
443
445
|
s([
|
|
444
|
-
|
|
445
|
-
], o.prototype, "
|
|
446
|
+
n({ attribute: "next-page-label" })
|
|
447
|
+
], o.prototype, "nextPageLabel", 2);
|
|
446
448
|
s([
|
|
447
|
-
|
|
448
|
-
], o.prototype, "
|
|
449
|
+
n({ attribute: "last-page-label" })
|
|
450
|
+
], o.prototype, "lastPageLabel", 2);
|
|
449
451
|
s([
|
|
450
|
-
|
|
451
|
-
], o.prototype, "
|
|
452
|
+
n({ attribute: !1 })
|
|
453
|
+
], o.prototype, "labelPageMessage", 2);
|
|
454
|
+
s([
|
|
455
|
+
n({ attribute: !1 })
|
|
456
|
+
], o.prototype, "labelPageButton", 2);
|
|
452
457
|
s([
|
|
453
458
|
v()
|
|
454
459
|
], o.prototype, "_rovingKey", 2);
|
|
@@ -461,4 +466,4 @@ o = s([
|
|
|
461
466
|
export {
|
|
462
467
|
o as H
|
|
463
468
|
};
|
|
464
|
-
//# sourceMappingURL=hx-pagination-
|
|
469
|
+
//# sourceMappingURL=hx-pagination-DYhYPqDn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-pagination-DYhYPqDn.js","sources":["../../src/components/hx-pagination/hx-pagination.styles.ts","../../src/components/hx-pagination/hx-pagination.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixPaginationStyles = css`\n :host {\n display: block;\n font-family: var(--hx-font-family-sans, sans-serif);\n }\n\n .pagination-root {\n display: flex;\n align-items: center;\n gap: var(--hx-space-4, 1rem);\n flex-wrap: wrap;\n }\n\n nav {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .list {\n display: flex;\n align-items: center;\n gap: var(--hx-pagination-gap, var(--hx-space-1, 0.25rem));\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n .item {\n display: flex;\n }\n\n .button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--hx-pagination-button-size, 2.25rem);\n height: var(--hx-pagination-button-size, 2.25rem);\n padding: 0 var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));\n border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));\n background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));\n color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-family: inherit;\n cursor: pointer;\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 text-decoration: none;\n white-space: nowrap;\n }\n\n .button:hover:not(:disabled) {\n background: var(--hx-pagination-hover-bg, var(--hx-color-neutral-100, #f3f4f6));\n border-color: var(--hx-pagination-hover-border-color, var(--hx-color-primary-500, #2563eb));\n }\n\n .button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-pagination-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .button[aria-current='page'] {\n background: var(--hx-pagination-active-bg, var(--hx-color-primary-500, #2563eb));\n border-color: var(\n --hx-pagination-active-border-color,\n var(--hx-pagination-active-bg, var(--hx-color-primary-500, #2563eb))\n );\n color: var(--hx-pagination-active-color, var(--hx-color-neutral-0, #ffffff));\n font-weight: var(--hx-font-weight-semibold, 600);\n cursor: default;\n pointer-events: none;\n }\n\n .button:disabled {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n .ellipsis {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--hx-pagination-button-size, 2.25rem);\n height: var(--hx-pagination-button-size, 2.25rem);\n color: var(--hx-pagination-ellipsis-color, var(--hx-color-neutral-500, #6b7280));\n font-size: var(--hx-font-size-sm, 0.875rem);\n user-select: none;\n }\n\n .button[aria-disabled='true'] {\n cursor: default;\n pointer-events: none;\n }\n\n /* Page size selector */\n .page-size-wrapper {\n display: flex;\n align-items: center;\n }\n\n .page-size-label {\n display: flex;\n align-items: center;\n gap: var(--hx-space-2, 0.5rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n color: var(--hx-color-neutral-500, #6b7280);\n white-space: nowrap;\n }\n\n .page-size-select {\n height: var(--hx-pagination-button-size, 2.25rem);\n padding: 0 var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-pagination-border-color, var(--hx-color-neutral-300, #d1d5db));\n border-radius: var(--hx-pagination-border-radius, var(--hx-border-radius-md, 0.375rem));\n background: var(--hx-pagination-bg, var(--hx-color-neutral-0, #ffffff));\n color: var(--hx-pagination-color, var(--hx-color-neutral-900, #111827));\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-family: inherit;\n cursor: pointer;\n }\n\n .page-size-select:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-pagination-focus-ring-color, var(--hx-focus-ring-color, var(--hx-color-primary-500)));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* Visually hidden — used for aria-live status messages */\n .visually-hidden {\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 @media (prefers-reduced-motion: reduce) {\n .button {\n transition: none;\n }\n }\n\n /* Windows High Contrast / forced-colors support */\n @media (forced-colors: active) {\n .button {\n border: 1px solid ButtonText;\n color: ButtonText;\n background: ButtonFace;\n forced-color-adjust: none;\n }\n\n .button:hover:not(:disabled) {\n border-color: Highlight;\n color: Highlight;\n }\n\n .button:focus-visible {\n outline-color: Highlight;\n }\n\n .button[aria-current='page'] {\n background: Highlight;\n border-color: Highlight;\n color: HighlightText;\n }\n\n .button:disabled {\n color: GrayText;\n border-color: GrayText;\n opacity: 1;\n }\n\n .button[aria-disabled='true'] {\n color: GrayText;\n }\n\n .page-size-select {\n border-color: ButtonText;\n color: ButtonText;\n background: ButtonFace;\n forced-color-adjust: none;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixPaginationStyles } from './hx-pagination.styles.js';\n\n/**\n * A pagination component for navigating content listings.\n *\n * @summary Page navigation with page numbers, prev/next, and ellipsis.\n *\n * @tag hx-pagination\n *\n * @csspart nav - The wrapping `<nav>` element.\n * @csspart list - The `<ul>` containing pagination items.\n * @csspart item - Each `<li>` item.\n * @csspart button - Each page button or prev/next control.\n * @csspart ellipsis - The ellipsis (`…`) span between page groups.\n * @csspart page-size-wrapper - The wrapper `<div>` around the page-size selector.\n * @csspart page-size-label - The `<label>` element for the page-size selector.\n * @csspart page-size-select - The `<select>` element for page-size.\n *\n * @cssprop [--hx-pagination-gap=0.25rem] - Gap between pagination buttons. Inherits from --hx-spacing-1.\n * @cssprop [--hx-pagination-button-size=2.25rem] - Minimum width and height of each button.\n * @cssprop [--hx-pagination-border-color] - Border color of buttons. Inherits from --hx-color-border (final fallback: #d1d5db).\n * @cssprop [--hx-pagination-border-radius] - Border radius of buttons. Inherits from --hx-border-radius-md (final fallback: 0.375rem).\n * @cssprop [--hx-pagination-bg] - Background color of buttons. Inherits from --hx-color-surface (final fallback: #ffffff).\n * @cssprop [--hx-pagination-color] - Text color of buttons. Inherits from --hx-color-text-primary (final fallback: #111827).\n * @cssprop [--hx-pagination-hover-bg] - Background color of buttons on hover. Inherits from --hx-color-surface-hover (final fallback: #f3f4f6).\n * @cssprop [--hx-pagination-hover-border-color] - Border color of buttons on hover. Inherits from --hx-color-primary (final fallback: #2563eb).\n * @cssprop [--hx-pagination-active-bg] - Background color of the active/current page button. Inherits from --hx-color-primary (final fallback: #2563eb).\n * @cssprop [--hx-pagination-active-color] - Text color of the active/current page button. Inherits from --hx-color-surface (final fallback: #ffffff).\n * @cssprop [--hx-pagination-active-border-color] - Border color of the active/current page button. Defaults to --hx-pagination-active-bg.\n * @cssprop [--hx-pagination-ellipsis-color] - Color of ellipsis characters. Inherits from --hx-color-text-secondary (final fallback: #6b7280).\n * @cssprop [--hx-transition-fast=150ms] - Duration used for hover/focus transitions.\n *\n * @fires {CustomEvent<{ page: number }>} hx-page-change - Fired when the user navigates to a new page.\n * @fires {CustomEvent<{ pageSize: number }>} hx-page-size-change - Fired when the user selects a new page size.\n *\n * @example\n * ```html\n * <hx-pagination total-pages=\"10\" current-page=\"1\"></hx-pagination>\n * ```\n *\n * @example Drupal / Twig integration\n * ```twig\n * {#\n * Drupal's pager uses 0-based page index in the URL (?page=N).\n * This component is 1-based, so add 1 to the Drupal page value.\n * Listen to hx-page-change and update the URL query param:\n * element.addEventListener('hx-page-change', (e) => {\n * const params = new URLSearchParams(location.search);\n * params.set('page', e.detail.page - 1); // convert back to 0-based\n * history.pushState({}, '', '?' + params.toString());\n * });\n * #}\n * <hx-pagination\n * total-pages=\"{{ total_pages }}\"\n * current-page=\"{{ pager.current_page + 1 }}\"\n * label=\"{{ 'Pagination'|t }}\"\n * {{ show_first_last ? 'show-first-last' : '' }}\n * ></hx-pagination>\n * ```\n */\n@customElement('hx-pagination')\nexport class HelixPagination extends LitElement {\n static override styles = [tokenStyles, helixPaginationStyles];\n\n /**\n * Total number of pages.\n * @attr total-pages\n */\n @property({ type: Number, attribute: 'total-pages', reflect: true })\n totalPages = 1;\n\n /**\n * The currently active page (1-based).\n * @attr current-page\n */\n @property({ type: Number, attribute: 'current-page' })\n currentPage = 1;\n\n /**\n * Number of page buttons shown on each side of the current page.\n * @attr sibling-count\n */\n @property({ type: Number, attribute: 'sibling-count', reflect: true })\n siblingCount = 1;\n\n /**\n * Number of pages always shown at the start and end of the list.\n * @attr boundary-count\n */\n @property({ type: Number, attribute: 'boundary-count', reflect: true })\n boundaryCount = 1;\n\n /**\n * Whether to show First and Last page buttons.\n * @attr show-first-last\n */\n @property({ type: Boolean, attribute: 'show-first-last', reflect: true })\n showFirstLast = false;\n\n /**\n * Accessible label for the `<nav>` element.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = 'Pagination';\n\n /**\n * The number of items displayed per page. When set, a page-size selector\n * `<select>` is rendered. Set `show-page-size` to display the selector.\n * @attr page-size\n */\n @property({ type: Number, attribute: 'page-size', reflect: true })\n pageSize = 25;\n\n /**\n * Whether to show the page-size selector UI.\n * @attr show-page-size\n */\n @property({ type: Boolean, attribute: 'show-page-size', reflect: true })\n showPageSize = false;\n\n /**\n * Label text for the rows-per-page selector.\n * @attr label-rows-per-page\n */\n @property({ type: String, attribute: 'label-rows-per-page' })\n labelRowsPerPage = 'Rows per page:';\n\n /**\n * Accessible label for the \"First page\" navigation button.\n * @attr first-page-label\n */\n @property({ attribute: 'first-page-label' })\n firstPageLabel = 'First page';\n\n /**\n * Accessible label for the \"Previous page\" navigation button.\n * @attr previous-page-label\n */\n @property({ attribute: 'previous-page-label' })\n previousPageLabel = 'Previous page';\n\n /**\n * Accessible label for the \"Next page\" navigation button.\n * @attr next-page-label\n */\n @property({ attribute: 'next-page-label' })\n nextPageLabel = 'Next page';\n\n /**\n * Accessible label for the \"Last page\" navigation button.\n * @attr last-page-label\n */\n @property({ attribute: 'last-page-label' })\n lastPageLabel = 'Last page';\n\n /**\n * Function to format the page navigation announcement. Override for i18n.\n */\n @property({ attribute: false })\n labelPageMessage: (current: number, total: number) => string = (current, total) =>\n `Page ${current} of ${total}`;\n\n /**\n * Function to format page button aria-labels. Override for i18n.\n */\n @property({ attribute: false })\n labelPageButton: (page: number) => string = (page) => `Page ${page}`;\n\n /** Tracks the roving tabindex target. Null means default to currentPage. */\n /** @internal */\n @state() private _rovingKey: number | string | null = null;\n\n /** Text for the aria-live region, updated on navigation. */\n /** @internal */\n @state() private _liveMessage = '';\n\n /** Memoization cache for _buildPageRange. */\n /** @internal */\n private _pageRangeCache: { key: string; result: Array<number | 'ellipsis'> } | null = null;\n\n // ─── Helpers ───\n\n /** @internal */\n private _buildPageRange(): Array<number | 'ellipsis'> {\n const key = `${this.totalPages}-${this.currentPage}-${this.siblingCount}-${this.boundaryCount}`;\n if (this._pageRangeCache?.key === key) return this._pageRangeCache.result;\n\n const total = Math.max(1, this.totalPages);\n const current = Math.min(Math.max(1, this.currentPage), total);\n const boundary = Math.max(0, this.boundaryCount);\n const sibling = Math.max(0, this.siblingCount);\n\n const startPages = this._range(1, Math.min(boundary, total));\n const endPages = this._range(Math.max(total - boundary + 1, boundary + 1), total);\n\n const siblingStart = Math.max(\n Math.min(current - sibling, total - boundary - sibling * 2 - 1),\n boundary + 2,\n );\n const siblingEnd = Math.min(\n Math.max(current + sibling, boundary + sibling * 2 + 2),\n endPages.length > 0 ? (endPages[0] ?? total) - 2 : total - 1,\n );\n\n const items: Array<number | 'ellipsis'> = [];\n\n for (const p of startPages) items.push(p);\n\n if (siblingStart > boundary + 2) {\n items.push('ellipsis');\n } else if (boundary + 1 < siblingStart) {\n items.push(boundary + 1);\n }\n\n for (const p of this._range(siblingStart, siblingEnd)) items.push(p);\n\n if (siblingEnd < total - boundary - 1) {\n items.push('ellipsis');\n } else if (siblingEnd < total - boundary) {\n items.push(total - boundary);\n }\n\n for (const p of endPages) items.push(p);\n\n this._pageRangeCache = { key, result: items };\n return items;\n }\n\n /** @internal */\n private _range(start: number, end: number): number[] {\n const result: number[] = [];\n for (let i = start; i <= end; i++) result.push(i);\n return result;\n }\n\n /** @internal */\n private _navigate(page: number): void {\n const clamped = Math.min(Math.max(1, page), this.totalPages);\n if (clamped === this.currentPage) return;\n\n this.currentPage = clamped;\n this._rovingKey = null; // reset so focus follows the new current page\n this._liveMessage = this.labelPageMessage(clamped, this.totalPages);\n this.dispatchEvent(\n new CustomEvent<{ page: number }>('hx-page-change', {\n detail: { page: clamped },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n /** @internal */\n private _handlePageSizeChange(e: Event): void {\n const select = e.target as HTMLSelectElement;\n const newSize = Number(select.value);\n if (newSize === this.pageSize) return;\n\n this.pageSize = newSize;\n this.dispatchEvent(\n new CustomEvent<{ pageSize: number }>('hx-page-size-change', {\n detail: { pageSize: newSize },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n /** @internal */\n private get _effectiveRovingKey(): number | string {\n return this._rovingKey ?? this.currentPage;\n }\n\n /** @internal */\n private _handleFocusin(e: FocusEvent): void {\n const btn = e.target as HTMLElement;\n if (btn.tagName !== 'BUTTON') return;\n const key = btn.dataset['rovingKey'];\n if (key === undefined) return;\n this._rovingKey = isNaN(Number(key)) ? key : Number(key);\n }\n\n /** @internal */\n private _handleKeydown(e: KeyboardEvent): void {\n if (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight') return;\n e.preventDefault();\n\n const list = this.shadowRoot?.querySelector('.list');\n if (!list) return;\n\n // Collect all non-disabled buttons (disabled prev/next excluded; aria-disabled current page included)\n const buttons = Array.from(list.querySelectorAll<HTMLButtonElement>('button:not([disabled])'));\n const focused = this.shadowRoot?.activeElement as HTMLButtonElement | null;\n const currentIdx = focused ? buttons.indexOf(focused) : 0;\n\n const nextIdx =\n e.key === 'ArrowLeft'\n ? Math.max(0, currentIdx - 1)\n : Math.min(buttons.length - 1, currentIdx + 1);\n\n if (nextIdx !== currentIdx) {\n const nextBtn = buttons[nextIdx];\n if (!nextBtn) return;\n const key = nextBtn.dataset['rovingKey'];\n if (key !== undefined) {\n this._rovingKey = isNaN(Number(key)) ? key : Number(key);\n }\n nextBtn.focus();\n }\n }\n\n // ─── Render ───\n\n override render() {\n const pages = this._buildPageRange();\n const isFirst = this.currentPage <= 1;\n const isLast = this.currentPage >= this.totalPages;\n const rovingKey = this._effectiveRovingKey;\n\n return html`\n <div class=\"pagination-root\">\n ${this.showPageSize\n ? html`\n <div part=\"page-size-wrapper\" class=\"page-size-wrapper\">\n <label part=\"page-size-label\" class=\"page-size-label\">\n ${this.labelRowsPerPage}\n <select\n part=\"page-size-select\"\n class=\"page-size-select\"\n @change=${this._handlePageSizeChange}\n >\n ${[10, 25, 50, 100].map(\n (n) =>\n html`<option value=${n} ?selected=${n === this.pageSize}>${n}</option>`,\n )}\n </select>\n </label>\n </div>\n `\n : nothing}\n\n <nav part=\"nav\" aria-label=${this.label}>\n <span class=\"visually-hidden\" aria-live=\"polite\" aria-atomic=\"true\"\n >${this._liveMessage}</span\n >\n <ul\n part=\"list\"\n class=\"list\"\n role=\"list\"\n @keydown=${this._handleKeydown}\n @focusin=${this._handleFocusin}\n >\n ${this.showFirstLast\n ? html`\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isFirst}\n tabindex=${rovingKey === 'first' ? 0 : -1}\n data-roving-key=\"first\"\n aria-label=${this.firstPageLabel}\n @click=${() => this._navigate(1)}\n >\n «\n </button>\n </li>\n `\n : nothing}\n\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isFirst}\n tabindex=${rovingKey === 'prev' ? 0 : -1}\n data-roving-key=\"prev\"\n aria-label=${this.previousPageLabel}\n @click=${() => this._navigate(this.currentPage - 1)}\n >\n ‹\n </button>\n </li>\n\n ${repeat(\n pages,\n (page, i) => (page === 'ellipsis' ? `ellipsis-${i}` : `page-${page}`),\n (page) => {\n if (page === 'ellipsis') {\n return html`\n <li part=\"item\" class=\"item\">\n <span part=\"ellipsis\" class=\"ellipsis\" aria-hidden=\"true\">…</span>\n </li>\n `;\n }\n const isCurrent = page === this.currentPage;\n return html`\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=${classMap({ button: true })}\n aria-disabled=${isCurrent ? 'true' : nothing}\n tabindex=${rovingKey === page ? 0 : -1}\n data-roving-key=${page}\n aria-current=${isCurrent ? 'page' : nothing}\n aria-label=${this.labelPageButton(page)}\n @click=${() => this._navigate(page)}\n >\n ${page}\n </button>\n </li>\n `;\n },\n )}\n\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isLast}\n tabindex=${rovingKey === 'next' ? 0 : -1}\n data-roving-key=\"next\"\n aria-label=${this.nextPageLabel}\n @click=${() => this._navigate(this.currentPage + 1)}\n >\n ›\n </button>\n </li>\n\n ${this.showFirstLast\n ? html`\n <li part=\"item\" class=\"item\">\n <button\n part=\"button\"\n class=\"button\"\n ?disabled=${isLast}\n tabindex=${rovingKey === 'last' ? 0 : -1}\n data-roving-key=\"last\"\n aria-label=${this.lastPageLabel}\n @click=${() => this._navigate(this.totalPages)}\n >\n »\n </button>\n </li>\n `\n : nothing}\n </ul>\n </nav>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-pagination': HelixPagination;\n }\n}\n\n/** Canonical type alias for HelixPagination. Use this when typing hx-pagination element references. */\nexport type HxPagination = HelixPagination;\n"],"names":["helixPaginationStyles","css","HelixPagination","LitElement","current","total","page","key","_a","boundary","sibling","startPages","endPages","siblingStart","siblingEnd","items","p","start","end","result","i","clamped","e","select","newSize","btn","list","buttons","focused","_b","currentIdx","nextIdx","nextBtn","pages","isFirst","isLast","rovingKey","html","n","nothing","repeat","isCurrent","classMap","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { css as b, LitElement as h, html as f } from "lit";
|
|
2
|
+
import { property as l, state as c, query as p, customElement as v } from "lit/decorators.js";
|
|
3
|
+
import { tokenStyles as u } from "@helixui/tokens/lit";
|
|
4
|
+
const _ = b`
|
|
5
|
+
:host {
|
|
6
|
+
display: block;
|
|
7
|
+
width: 100%;
|
|
8
|
+
|
|
9
|
+
/* ─── Private token vars (3-tier cascade) ─── */
|
|
10
|
+
--_bg: var(--hx-patient-banner-bg, var(--hx-color-neutral-50, #f9fafb));
|
|
11
|
+
--_border-color: var(--hx-patient-banner-border-color, var(--hx-color-neutral-200, #e5e7eb));
|
|
12
|
+
--_padding: var(
|
|
13
|
+
--hx-patient-banner-padding,
|
|
14
|
+
var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem)
|
|
15
|
+
);
|
|
16
|
+
--_gap: var(--hx-patient-banner-gap, var(--hx-space-4, 1rem));
|
|
17
|
+
--_font-family: var(--hx-patient-banner-font-family, var(--hx-font-family-sans, sans-serif));
|
|
18
|
+
--_label-color: var(--hx-patient-banner-label-color, var(--hx-color-neutral-500, #6b7280));
|
|
19
|
+
--_label-font-size: var(--hx-patient-banner-label-font-size, var(--hx-font-size-xs, 0.75rem));
|
|
20
|
+
--_value-color: var(--hx-patient-banner-value-color, var(--hx-color-neutral-900, #111827));
|
|
21
|
+
--_value-font-size: var(--hx-patient-banner-value-font-size, var(--hx-font-size-sm, 0.875rem));
|
|
22
|
+
--_photo-size: var(--hx-patient-banner-photo-size, var(--hx-space-10, 2.5rem));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
* {
|
|
26
|
+
box-sizing: border-box;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* ─── Banner Container ─── */
|
|
30
|
+
|
|
31
|
+
.banner {
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
gap: var(--_gap);
|
|
35
|
+
padding: var(--_padding);
|
|
36
|
+
background-color: var(--_bg);
|
|
37
|
+
border-bottom: var(--hx-border-width-thin, 1px) solid var(--_border-color);
|
|
38
|
+
font-family: var(--_font-family);
|
|
39
|
+
width: 100%;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* ─── Photo Area ─── */
|
|
43
|
+
|
|
44
|
+
.banner__photo-area {
|
|
45
|
+
flex-shrink: 0;
|
|
46
|
+
width: var(--_photo-size);
|
|
47
|
+
height: var(--_photo-size);
|
|
48
|
+
border-radius: var(--hx-border-radius-full, 9999px);
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
background-color: var(--hx-color-neutral-200, #e5e7eb);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ─── Fields Grid ─── */
|
|
57
|
+
|
|
58
|
+
.banner__fields {
|
|
59
|
+
display: flex;
|
|
60
|
+
flex-wrap: wrap;
|
|
61
|
+
gap: var(--_gap);
|
|
62
|
+
flex: 1;
|
|
63
|
+
min-width: 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* ─── Individual Field ─── */
|
|
67
|
+
|
|
68
|
+
.field {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
gap: var(--hx-space-1, 0.25rem);
|
|
72
|
+
min-width: 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.field__label {
|
|
76
|
+
font-size: var(--_label-font-size);
|
|
77
|
+
color: var(--_label-color);
|
|
78
|
+
font-weight: var(--hx-font-weight-medium, 500);
|
|
79
|
+
line-height: var(--hx-line-height-tight, 1.25);
|
|
80
|
+
white-space: nowrap;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.field__value {
|
|
84
|
+
font-size: var(--_value-font-size);
|
|
85
|
+
color: var(--_value-color);
|
|
86
|
+
font-weight: var(--hx-font-weight-normal, 400);
|
|
87
|
+
line-height: var(--hx-line-height-normal, 1.5);
|
|
88
|
+
display: flex;
|
|
89
|
+
align-items: center;
|
|
90
|
+
gap: var(--hx-space-1, 0.25rem);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* ─── Identifier Rule Violation ─── */
|
|
94
|
+
/* Visual indicator when Joint Commission two-identifier rule is not met. */
|
|
95
|
+
|
|
96
|
+
:host([aria-invalid='true']) .banner {
|
|
97
|
+
border-bottom-color: var(--hx-color-error-400, #f87171);
|
|
98
|
+
background-color: var(--hx-color-error-50, #fef2f2);
|
|
99
|
+
/* Darken label color to maintain 4.5:1 contrast on error-50 background */
|
|
100
|
+
--_label-color: var(--hx-patient-banner-label-color, var(--hx-color-neutral-700, #374151));
|
|
101
|
+
position: relative;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
:host([aria-invalid='true']) .banner::before {
|
|
105
|
+
content: '';
|
|
106
|
+
display: block;
|
|
107
|
+
position: absolute;
|
|
108
|
+
inset-inline-start: 0;
|
|
109
|
+
top: 0;
|
|
110
|
+
bottom: 0;
|
|
111
|
+
width: var(--hx-border-width-thick, 4px);
|
|
112
|
+
background-color: var(--hx-color-error-500, #ef4444);
|
|
113
|
+
border-radius: 0;
|
|
114
|
+
}
|
|
115
|
+
`;
|
|
116
|
+
var m = Object.defineProperty, x = Object.getOwnPropertyDescriptor, a = (e, r, n, o) => {
|
|
117
|
+
for (var i = o > 1 ? void 0 : o ? x(r, n) : r, s = e.length - 1, d; s >= 0; s--)
|
|
118
|
+
(d = e[s]) && (i = (o ? d(r, n, i) : d(i)) || i);
|
|
119
|
+
return o && i && m(r, n, i), i;
|
|
120
|
+
};
|
|
121
|
+
let t = class extends h {
|
|
122
|
+
constructor() {
|
|
123
|
+
super(...arguments), this.patientId = "", this.labelPatient = "Patient identification", this.labelName = "Patient name", this.labelMrn = "MRN", this.labelDob = "Date of birth", this.labelAllergies = "Allergies", this.labelCodeStatus = "Code status", this.enforceIdentifierRule = !0, this._identifierCount = 0;
|
|
124
|
+
}
|
|
125
|
+
// ─── Lifecycle ───
|
|
126
|
+
connectedCallback() {
|
|
127
|
+
super.connectedCallback(), this.setAttribute("role", "banner"), this.setAttribute("aria-label", this.labelPatient);
|
|
128
|
+
}
|
|
129
|
+
updated(e) {
|
|
130
|
+
super.updated(e), e.has("labelPatient") && this.setAttribute("aria-label", this.labelPatient), e.has("enforceIdentifierRule") && this._checkIdentifierRule();
|
|
131
|
+
}
|
|
132
|
+
// ─── Private Helpers ───
|
|
133
|
+
_countPopulatedIdentifiers() {
|
|
134
|
+
let e = 0;
|
|
135
|
+
const r = [this._nameSlot, this._mrnSlot, this._dobSlot];
|
|
136
|
+
for (const n of r)
|
|
137
|
+
n && n.assignedNodes({ flatten: !0 }).length > 0 && e++;
|
|
138
|
+
return e;
|
|
139
|
+
}
|
|
140
|
+
_checkIdentifierRule() {
|
|
141
|
+
const e = this._countPopulatedIdentifiers();
|
|
142
|
+
this._identifierCount = e, this.enforceIdentifierRule && e < 2 ? (this.setAttribute("aria-invalid", "true"), this.dispatchEvent(
|
|
143
|
+
new CustomEvent("hx-identifier-rule-violation", {
|
|
144
|
+
bubbles: !0,
|
|
145
|
+
composed: !0,
|
|
146
|
+
detail: {
|
|
147
|
+
populatedIdentifiers: e,
|
|
148
|
+
requiredIdentifiers: 2,
|
|
149
|
+
patientId: this.patientId
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
)) : this.removeAttribute("aria-invalid");
|
|
153
|
+
}
|
|
154
|
+
// ─── Event Handlers ───
|
|
155
|
+
_handleSlotChange() {
|
|
156
|
+
this._checkIdentifierRule();
|
|
157
|
+
}
|
|
158
|
+
// ─── Render ───
|
|
159
|
+
render() {
|
|
160
|
+
return f`
|
|
161
|
+
<div part="banner" class="banner">
|
|
162
|
+
<div part="photo-area" class="banner__photo-area">
|
|
163
|
+
<slot name="photo"></slot>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<div part="fields" class="banner__fields">
|
|
167
|
+
<div part="field" class="field">
|
|
168
|
+
<span part="field-label" class="field__label">${this.labelName}</span>
|
|
169
|
+
<div part="field-value" class="field__value">
|
|
170
|
+
<slot name="name" @slotchange=${this._handleSlotChange}></slot>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<div part="field" class="field">
|
|
175
|
+
<span part="field-label" class="field__label">${this.labelMrn}</span>
|
|
176
|
+
<div part="field-value" class="field__value">
|
|
177
|
+
<slot name="mrn" @slotchange=${this._handleSlotChange}></slot>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div part="field" class="field">
|
|
182
|
+
<span part="field-label" class="field__label">${this.labelDob}</span>
|
|
183
|
+
<div part="field-value" class="field__value">
|
|
184
|
+
<slot name="dob" @slotchange=${this._handleSlotChange}></slot>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div part="field" class="field">
|
|
189
|
+
<span part="field-label" class="field__label">${this.labelAllergies}</span>
|
|
190
|
+
<div part="field-value" class="field__value">
|
|
191
|
+
<slot name="allergies"></slot>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
<div part="field" class="field">
|
|
196
|
+
<span part="field-label" class="field__label">${this.labelCodeStatus}</span>
|
|
197
|
+
<div part="field-value" class="field__value">
|
|
198
|
+
<slot name="code-status"></slot>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
`;
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
t.styles = [u, _];
|
|
207
|
+
a([
|
|
208
|
+
l({ type: String, attribute: "patient-id" })
|
|
209
|
+
], t.prototype, "patientId", 2);
|
|
210
|
+
a([
|
|
211
|
+
l({ type: String, attribute: "label-patient" })
|
|
212
|
+
], t.prototype, "labelPatient", 2);
|
|
213
|
+
a([
|
|
214
|
+
l({ type: String, attribute: "label-name" })
|
|
215
|
+
], t.prototype, "labelName", 2);
|
|
216
|
+
a([
|
|
217
|
+
l({ type: String, attribute: "label-mrn" })
|
|
218
|
+
], t.prototype, "labelMrn", 2);
|
|
219
|
+
a([
|
|
220
|
+
l({ type: String, attribute: "label-dob" })
|
|
221
|
+
], t.prototype, "labelDob", 2);
|
|
222
|
+
a([
|
|
223
|
+
l({ type: String, attribute: "label-allergies" })
|
|
224
|
+
], t.prototype, "labelAllergies", 2);
|
|
225
|
+
a([
|
|
226
|
+
l({ type: String, attribute: "label-code-status" })
|
|
227
|
+
], t.prototype, "labelCodeStatus", 2);
|
|
228
|
+
a([
|
|
229
|
+
l({
|
|
230
|
+
attribute: "enforce-identifier-rule",
|
|
231
|
+
reflect: !0,
|
|
232
|
+
converter: {
|
|
233
|
+
fromAttribute: (e) => e !== "false",
|
|
234
|
+
toAttribute: (e) => String(e)
|
|
235
|
+
}
|
|
236
|
+
})
|
|
237
|
+
], t.prototype, "enforceIdentifierRule", 2);
|
|
238
|
+
a([
|
|
239
|
+
c()
|
|
240
|
+
], t.prototype, "_identifierCount", 2);
|
|
241
|
+
a([
|
|
242
|
+
p('slot[name="name"]')
|
|
243
|
+
], t.prototype, "_nameSlot", 2);
|
|
244
|
+
a([
|
|
245
|
+
p('slot[name="mrn"]')
|
|
246
|
+
], t.prototype, "_mrnSlot", 2);
|
|
247
|
+
a([
|
|
248
|
+
p('slot[name="dob"]')
|
|
249
|
+
], t.prototype, "_dobSlot", 2);
|
|
250
|
+
t = a([
|
|
251
|
+
v("hx-patient-banner")
|
|
252
|
+
], t);
|
|
253
|
+
export {
|
|
254
|
+
t as H
|
|
255
|
+
};
|
|
256
|
+
//# sourceMappingURL=hx-patient-banner-BoJHddAL.js.map
|