@helixui/library 3.6.0 → 3.8.0-next.145
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/README.md +41 -0
- package/aaa-verdicts.json +2036 -0
- package/custom-elements.json +3045 -1254
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
- package/dist/components/hx-accordion/index.js +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.d.ts +18 -0
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
- package/dist/components/hx-action-bar/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.d.ts +18 -8
- 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.d.ts +4 -1
- package/dist/components/hx-avatar/hx-avatar.d.ts.map +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 +19 -8
- 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.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +18 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +18 -0
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
- package/dist/components/hx-button/index.js +1 -1
- package/dist/components/hx-button-group/hx-button-group.d.ts +47 -0
- 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-carousel/hx-carousel.d.ts.map +1 -1
- package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -1
- package/dist/components/hx-carousel/index.js +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.d.ts +18 -0
- 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 +36 -0
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.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 +26 -9
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/index.js +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +18 -0
- package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts +18 -0
- 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-copy-button/hx-copy-button.d.ts +18 -0
- package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
- package/dist/components/hx-copy-button/index.js +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.d.ts +18 -0
- 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 +18 -0
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +18 -0
- 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 +18 -0
- package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
- package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -1
- package/dist/components/hx-dropdown/index.js +1 -1
- package/dist/components/hx-field/hx-field.d.ts +17 -0
- package/dist/components/hx-field/hx-field.d.ts.map +1 -1
- package/dist/components/hx-field-label/hx-field-label.d.ts +17 -0
- package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
- package/dist/components/hx-file-upload/hx-file-upload.d.ts +46 -0
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
- package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.js +1 -1
- package/dist/components/hx-form/hx-form.d.ts +19 -0
- package/dist/components/hx-form/hx-form.d.ts.map +1 -1
- package/dist/components/hx-help-text/hx-help-text.d.ts +17 -0
- package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
- package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -1
- package/dist/components/hx-help-text/index.js +1 -1
- package/dist/components/hx-icon/hx-icon.d.ts +108 -12
- package/dist/components/hx-icon/hx-icon.d.ts.map +1 -1
- package/dist/components/hx-icon/hx-icon.styles.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 +18 -0
- package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-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.map +1 -1
- package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu.d.ts +18 -0
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-nav/hx-nav.d.ts +18 -0
- package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
- package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-nav/index.js +1 -1
- package/dist/components/hx-number-input/hx-number-input.d.ts +18 -0
- package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
- package/dist/components/hx-number-input/hx-number-input.styles.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 +23 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/index.js +1 -1
- package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
- package/dist/components/hx-pagination/index.js +1 -1
- package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
- package/dist/components/hx-phi-field/hx-phi-field.styles.d.ts.map +1 -1
- package/dist/components/hx-phi-field/index.js +1 -1
- package/dist/components/hx-popover/hx-popover.d.ts +18 -0
- package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
- package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
- package/dist/components/hx-popover/index.js +1 -1
- package/dist/components/hx-popup/hx-popup.d.ts +18 -0
- package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
- package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
- package/dist/components/hx-popup/index.js +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.d.ts +18 -0
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.styles.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 +19 -0
- 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 +18 -0
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +18 -0
- package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/index.js +1 -1
- package/dist/components/hx-slider/hx-slider.d.ts +47 -0
- package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
- package/dist/components/hx-slider/index.js +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +18 -0
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
- package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
- package/dist/components/hx-split-button/index.js +1 -1
- package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
- package/dist/components/hx-stat/hx-stat.styles.d.ts.map +1 -1
- package/dist/components/hx-stat/index.js +1 -1
- package/dist/components/hx-steps/hx-step.d.ts.map +1 -1
- package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
- package/dist/components/hx-steps/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.d.ts +18 -0
- package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
- package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +18 -0
- package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.js +1 -1
- package/dist/components/hx-tag/hx-tag.d.ts.map +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-input/hx-text-input.d.ts +18 -0
- package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts +18 -0
- package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.d.ts +18 -0
- package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-time-picker/index.js +1 -1
- package/dist/components/hx-toast/hx-toast.d.ts +19 -8
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
- package/dist/components/hx-toast/index.js +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +18 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.js +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.d.ts +18 -0
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
- package/dist/components/hx-tooltip/index.js +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.d.ts +18 -0
- package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-top-nav/index.js +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/css/helix-all.css +414 -118
- package/dist/css/helix-core.css +43 -19
- package/dist/css/helix-feedback.css +15 -18
- package/dist/css/helix-forms.css +172 -44
- package/dist/css/helix-media.css +6 -3
- package/dist/css/helix-navigation.css +65 -12
- package/dist/css/helix-overlay.css +63 -0
- package/dist/css/helix-tokens.css +18 -15
- package/dist/css/helix-utility.css +44 -12
- package/dist/css/hx-action-bar.css +12 -0
- package/dist/css/hx-alert.css +4 -8
- package/dist/css/hx-avatar.css +1 -2
- package/dist/css/hx-badge.css +10 -5
- package/dist/css/hx-banner.css +4 -8
- package/dist/css/hx-button.css +15 -5
- package/dist/css/hx-carousel.css +6 -3
- package/dist/css/hx-checkbox-group.css +11 -0
- package/dist/css/hx-checkbox.css +24 -13
- package/dist/css/hx-clinical-status.css +4 -7
- package/dist/css/hx-color-picker.css +14 -1
- package/dist/css/hx-combobox.css +8 -0
- package/dist/css/hx-copy-button.css +5 -2
- package/dist/css/hx-date-picker.css +16 -3
- package/dist/css/hx-drawer.css +5 -0
- package/dist/css/hx-dropdown.css +18 -0
- package/dist/css/hx-file-upload.css +4 -0
- package/dist/css/hx-help-text.css +5 -0
- package/dist/css/hx-icon-button.css +4 -5
- package/dist/css/hx-icon.css +7 -0
- package/dist/css/hx-link.css +1 -2
- package/dist/css/hx-nav.css +31 -2
- package/dist/css/hx-number-input.css +10 -11
- package/dist/css/hx-overflow-menu.css +5 -0
- package/dist/css/hx-pagination.css +6 -3
- package/dist/css/hx-phi-field.css +2 -3
- package/dist/css/hx-popover.css +13 -0
- package/dist/css/hx-popup.css +14 -0
- package/dist/css/hx-radio-group.css +10 -0
- package/dist/css/hx-rating.css +6 -0
- package/dist/css/hx-side-nav.css +10 -5
- package/dist/css/hx-split-button.css +27 -10
- package/dist/css/hx-stat.css +1 -2
- package/dist/css/hx-switch.css +19 -1
- package/dist/css/hx-tag.css +5 -0
- package/dist/css/hx-text-input.css +4 -1
- package/dist/css/hx-time-picker.css +12 -2
- package/dist/css/hx-toast.css +6 -0
- package/dist/css/hx-toggle-button.css +29 -12
- package/dist/css/hx-tooltip.css +13 -0
- package/dist/css/hx-top-nav.css +13 -2
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +60 -20
- package/dist/index.js +49 -49
- package/dist/shared/{hx-accordion-ZVzgDzTG.js → hx-accordion-DR--Ev4t.js} +48 -54
- package/dist/shared/hx-accordion-DR--Ev4t.js.map +1 -0
- package/dist/shared/{hx-action-bar-CitgcpGv.js → hx-action-bar-BlEG4aZv.js} +41 -29
- package/dist/shared/hx-action-bar-BlEG4aZv.js.map +1 -0
- package/dist/shared/{hx-alert-Bto8-TIi.js → hx-alert-C0axS32J.js} +40 -79
- package/dist/shared/hx-alert-C0axS32J.js.map +1 -0
- package/dist/shared/{hx-avatar-C9hOmlAb.js → hx-avatar-ChAYWnK8.js} +22 -24
- package/dist/shared/hx-avatar-ChAYWnK8.js.map +1 -0
- package/dist/shared/{hx-badge-JlFtAdxS.js → hx-badge-vX-1cuLA.js} +25 -20
- package/dist/shared/hx-badge-vX-1cuLA.js.map +1 -0
- package/dist/shared/{hx-banner-fpRnciIO.js → hx-banner-PbHwFNSb.js} +51 -90
- package/dist/shared/hx-banner-PbHwFNSb.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-3tKppF9h.js → hx-breadcrumb-item-D8xYqe3s.js} +56 -43
- package/dist/shared/hx-breadcrumb-item-D8xYqe3s.js.map +1 -0
- package/dist/shared/{hx-button-BOwAEcF1.js → hx-button-DOZTZnz-.js} +29 -19
- package/dist/shared/hx-button-DOZTZnz-.js.map +1 -0
- package/dist/shared/hx-button-group-D3QUmSzl.js +248 -0
- package/dist/shared/hx-button-group-D3QUmSzl.js.map +1 -0
- package/dist/shared/{hx-carousel-item-z1Lc24op.js → hx-carousel-item-BVIKgQ4i.js} +72 -102
- package/dist/shared/hx-carousel-item-BVIKgQ4i.js.map +1 -0
- package/dist/shared/{hx-checkbox-CYd0YV_u.js → hx-checkbox-DDSXXhps.js} +56 -47
- package/dist/shared/hx-checkbox-DDSXXhps.js.map +1 -0
- package/dist/shared/{hx-checkbox-group-D5piJLY8.js → hx-checkbox-group-C0q6HDqn.js} +101 -58
- package/dist/shared/hx-checkbox-group-C0q6HDqn.js.map +1 -0
- package/dist/shared/{hx-clinical-status-D3XQIOqX.js → hx-clinical-status-ZSVEc3Qg.js} +68 -87
- package/dist/shared/hx-clinical-status-ZSVEc3Qg.js.map +1 -0
- package/dist/shared/{hx-color-picker-DBwJzT5f.js → hx-color-picker-CYjx8i8R.js} +97 -84
- package/dist/shared/hx-color-picker-CYjx8i8R.js.map +1 -0
- package/dist/shared/{hx-combobox-NgJaLbs2.js → hx-combobox-Be-mqOv4.js} +35 -45
- package/dist/shared/hx-combobox-Be-mqOv4.js.map +1 -0
- package/dist/shared/{hx-copy-button-sUVuikyH.js → hx-copy-button-DJirFCUL.js} +18 -15
- package/dist/shared/hx-copy-button-DJirFCUL.js.map +1 -0
- package/dist/shared/{hx-date-picker-B49yo4Vm.js → hx-date-picker-CziP3Hm1.js} +85 -84
- package/dist/shared/hx-date-picker-CziP3Hm1.js.map +1 -0
- package/dist/shared/hx-dialog-B4weoj_1.js.map +1 -1
- package/dist/shared/{hx-drawer-CM_upadk.js → hx-drawer-BlU2oX8-.js} +32 -36
- package/dist/shared/hx-drawer-BlU2oX8-.js.map +1 -0
- package/dist/shared/{hx-dropdown-D626S2ZG.js → hx-dropdown-DREqpIpm.js} +51 -33
- package/dist/shared/hx-dropdown-DREqpIpm.js.map +1 -0
- package/dist/shared/hx-field-label-BVRyyKeh.js.map +1 -1
- package/dist/shared/hx-field-zw0U1KVi.js.map +1 -1
- package/dist/shared/{hx-file-upload-D3rKROK5.js → hx-file-upload-CU5QGZSP.js} +137 -80
- package/dist/shared/hx-file-upload-CU5QGZSP.js.map +1 -0
- package/dist/shared/hx-form-CkChEATa.js.map +1 -1
- package/dist/shared/hx-help-text-CNaZ82LT.js +137 -0
- package/dist/shared/hx-help-text-CNaZ82LT.js.map +1 -0
- package/dist/shared/{hx-icon-button-a6OpeQz5.js → hx-icon-button-B2BdVdyK.js} +10 -11
- package/dist/shared/hx-icon-button-B2BdVdyK.js.map +1 -0
- package/dist/shared/hx-icon-bxz9eB9a.js +386 -0
- package/dist/shared/hx-icon-bxz9eB9a.js.map +1 -0
- package/dist/shared/{hx-link-CMnZRUtQ.js → hx-link-BURSdYLp.js} +19 -26
- package/dist/shared/hx-link-BURSdYLp.js.map +1 -0
- package/dist/shared/{hx-menu-divider-A6Guuzi_.js → hx-menu-divider-g0grbWV9.js} +19 -31
- package/dist/shared/hx-menu-divider-g0grbWV9.js.map +1 -0
- package/dist/shared/{hx-nav-ldFM3Fle.js → hx-nav-GTsAZGOx.js} +94 -85
- package/dist/shared/hx-nav-GTsAZGOx.js.map +1 -0
- package/dist/shared/{hx-nav-item-CODtUlew.js → hx-nav-item-CxE7Mp3M.js} +46 -41
- package/dist/shared/hx-nav-item-CxE7Mp3M.js.map +1 -0
- package/dist/shared/{hx-number-input-yUzFOSC1.js → hx-number-input-Bvyc9kOi.js} +59 -64
- package/dist/shared/hx-number-input-Bvyc9kOi.js.map +1 -0
- package/dist/shared/{hx-overflow-menu-DFjJAziP.js → hx-overflow-menu-LrTteeR1.js} +32 -39
- package/dist/shared/{hx-overflow-menu-DFjJAziP.js.map → hx-overflow-menu-LrTteeR1.js.map} +1 -1
- package/dist/shared/{hx-pagination-C7y8GVyU.js → hx-pagination-D726PyTM.js} +7 -4
- package/dist/shared/hx-pagination-D726PyTM.js.map +1 -0
- package/dist/shared/{hx-phi-field-C19oxlrr.js → hx-phi-field-sZt_rYIL.js} +46 -66
- package/dist/shared/hx-phi-field-sZt_rYIL.js.map +1 -0
- package/dist/shared/{hx-popover-BAlAFOH9.js → hx-popover-BjB0nkcq.js} +51 -38
- package/dist/shared/hx-popover-BjB0nkcq.js.map +1 -0
- package/dist/shared/{hx-popup-COUXXZ9X.js → hx-popup-BiV_2evC.js} +59 -45
- package/dist/shared/hx-popup-BiV_2evC.js.map +1 -0
- package/dist/shared/{hx-radio-C7eTj5YI.js → hx-radio-BD_c9NJy.js} +52 -39
- package/dist/shared/hx-radio-BD_c9NJy.js.map +1 -0
- package/dist/shared/{hx-rating-C3QP53k9.js → hx-rating-BGK4AxvI.js} +45 -71
- package/dist/shared/hx-rating-BGK4AxvI.js.map +1 -0
- package/dist/shared/hx-select-DahFehiZ.js.map +1 -1
- package/dist/shared/{hx-slider-Blmv_rwS.js → hx-slider-CkOk5BCY.js} +83 -23
- package/dist/shared/hx-slider-CkOk5BCY.js.map +1 -0
- package/dist/shared/{hx-split-button-Ddle8iVx.js → hx-split-button-Bg9FHrFK.js} +73 -65
- package/dist/shared/hx-split-button-Bg9FHrFK.js.map +1 -0
- package/dist/shared/{hx-stat-Gtw_SpK8.js → hx-stat-wKxbyep6.js} +22 -55
- package/dist/shared/hx-stat-wKxbyep6.js.map +1 -0
- package/dist/shared/{hx-step-R2rjp1fT.js → hx-step-CyGQAuiB.js} +7 -27
- package/dist/shared/hx-step-CyGQAuiB.js.map +1 -0
- package/dist/shared/{hx-switch-TvKGvZJz.js → hx-switch-BCXuNxEH.js} +42 -24
- package/dist/shared/hx-switch-BCXuNxEH.js.map +1 -0
- package/dist/shared/{hx-tab-panel-DzsX8BHV.js → hx-tab-panel-BfisavKo.js} +47 -32
- package/dist/shared/hx-tab-panel-BfisavKo.js.map +1 -0
- package/dist/shared/{hx-tag-C5aCUpVi.js → hx-tag-BqO6HY6V.js} +26 -21
- package/dist/shared/hx-tag-BqO6HY6V.js.map +1 -0
- package/dist/shared/{hx-text-input-D6FlOZM-.js → hx-text-input-V5sQOpDh.js} +5 -2
- package/dist/shared/hx-text-input-V5sQOpDh.js.map +1 -0
- package/dist/shared/hx-textarea-CNG590KY.js.map +1 -1
- package/dist/shared/{hx-time-picker-Bo7FWzmf.js → hx-time-picker-if5Cl0Ei.js} +42 -43
- package/dist/shared/hx-time-picker-if5Cl0Ei.js.map +1 -0
- package/dist/shared/{hx-toggle-button-DwBers3A.js → hx-toggle-button-xNVYeA3X.js} +64 -47
- package/dist/shared/hx-toggle-button-xNVYeA3X.js.map +1 -0
- package/dist/shared/{hx-tooltip-DVqtKPCD.js → hx-tooltip-CamO-9nd.js} +24 -11
- package/dist/shared/hx-tooltip-CamO-9nd.js.map +1 -0
- package/dist/shared/{hx-top-nav-DP6OFS8C.js → hx-top-nav-vP6oDWMV.js} +42 -44
- package/dist/shared/hx-top-nav-vP6oDWMV.js.map +1 -0
- package/dist/shared/{hx-tree-item-CXyspGxI.js → hx-tree-item-D8hwKd5m.js} +54 -57
- package/dist/shared/hx-tree-item-D8hwKd5m.js.map +1 -0
- package/dist/shared/{toast-factory-Dht3pVsw.js → toast-factory-DgnbFxVs.js} +127 -153
- package/dist/shared/toast-factory-DgnbFxVs.js.map +1 -0
- package/figma-inventory.json +1280 -429
- package/package.json +8 -4
- package/dist/shared/hx-accordion-ZVzgDzTG.js.map +0 -1
- package/dist/shared/hx-action-bar-CitgcpGv.js.map +0 -1
- package/dist/shared/hx-alert-Bto8-TIi.js.map +0 -1
- package/dist/shared/hx-avatar-C9hOmlAb.js.map +0 -1
- package/dist/shared/hx-badge-JlFtAdxS.js.map +0 -1
- package/dist/shared/hx-banner-fpRnciIO.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-3tKppF9h.js.map +0 -1
- package/dist/shared/hx-button-BOwAEcF1.js.map +0 -1
- package/dist/shared/hx-button-group-4NUBpkyC.js +0 -181
- package/dist/shared/hx-button-group-4NUBpkyC.js.map +0 -1
- package/dist/shared/hx-carousel-item-z1Lc24op.js.map +0 -1
- package/dist/shared/hx-checkbox-CYd0YV_u.js.map +0 -1
- package/dist/shared/hx-checkbox-group-D5piJLY8.js.map +0 -1
- package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +0 -1
- package/dist/shared/hx-color-picker-DBwJzT5f.js.map +0 -1
- package/dist/shared/hx-combobox-NgJaLbs2.js.map +0 -1
- package/dist/shared/hx-copy-button-sUVuikyH.js.map +0 -1
- package/dist/shared/hx-date-picker-B49yo4Vm.js.map +0 -1
- package/dist/shared/hx-drawer-CM_upadk.js.map +0 -1
- package/dist/shared/hx-dropdown-D626S2ZG.js.map +0 -1
- package/dist/shared/hx-file-upload-D3rKROK5.js.map +0 -1
- package/dist/shared/hx-help-text-Xb2Yr8x2.js +0 -156
- package/dist/shared/hx-help-text-Xb2Yr8x2.js.map +0 -1
- package/dist/shared/hx-icon-button-a6OpeQz5.js.map +0 -1
- package/dist/shared/hx-icon-fuVm4-bk.js +0 -283
- package/dist/shared/hx-icon-fuVm4-bk.js.map +0 -1
- package/dist/shared/hx-link-CMnZRUtQ.js.map +0 -1
- package/dist/shared/hx-menu-divider-A6Guuzi_.js.map +0 -1
- package/dist/shared/hx-nav-item-CODtUlew.js.map +0 -1
- package/dist/shared/hx-nav-ldFM3Fle.js.map +0 -1
- package/dist/shared/hx-number-input-yUzFOSC1.js.map +0 -1
- package/dist/shared/hx-pagination-C7y8GVyU.js.map +0 -1
- package/dist/shared/hx-phi-field-C19oxlrr.js.map +0 -1
- package/dist/shared/hx-popover-BAlAFOH9.js.map +0 -1
- package/dist/shared/hx-popup-COUXXZ9X.js.map +0 -1
- package/dist/shared/hx-radio-C7eTj5YI.js.map +0 -1
- package/dist/shared/hx-rating-C3QP53k9.js.map +0 -1
- package/dist/shared/hx-slider-Blmv_rwS.js.map +0 -1
- package/dist/shared/hx-split-button-Ddle8iVx.js.map +0 -1
- package/dist/shared/hx-stat-Gtw_SpK8.js.map +0 -1
- package/dist/shared/hx-step-R2rjp1fT.js.map +0 -1
- package/dist/shared/hx-switch-TvKGvZJz.js.map +0 -1
- package/dist/shared/hx-tab-panel-DzsX8BHV.js.map +0 -1
- package/dist/shared/hx-tag-C5aCUpVi.js.map +0 -1
- package/dist/shared/hx-text-input-D6FlOZM-.js.map +0 -1
- package/dist/shared/hx-time-picker-Bo7FWzmf.js.map +0 -1
- package/dist/shared/hx-toggle-button-DwBers3A.js.map +0 -1
- package/dist/shared/hx-tooltip-DVqtKPCD.js.map +0 -1
- package/dist/shared/hx-top-nav-DP6OFS8C.js.map +0 -1
- package/dist/shared/hx-tree-item-CXyspGxI.js.map +0 -1
- package/dist/shared/toast-factory-Dht3pVsw.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,84 +1,84 @@
|
|
|
1
1
|
import { lightTokenCss as p } from "@helixui/tokens";
|
|
2
|
-
import { H as S, a as y } from "./shared/hx-accordion-
|
|
3
|
-
import { H as b } from "./shared/hx-action-bar-
|
|
4
|
-
import { H as g } from "./shared/hx-alert-
|
|
5
|
-
import { H as v } from "./shared/hx-avatar-
|
|
6
|
-
import { H as E } from "./shared/hx-badge-
|
|
7
|
-
import { H as k } from "./shared/hx-banner-
|
|
8
|
-
import { H as B, a as P } from "./shared/hx-breadcrumb-item-
|
|
9
|
-
import { H as M } from "./shared/hx-button-
|
|
10
|
-
import { H as N } from "./shared/hx-button-group-
|
|
2
|
+
import { H as S, a as y } from "./shared/hx-accordion-DR--Ev4t.js";
|
|
3
|
+
import { H as b } from "./shared/hx-action-bar-BlEG4aZv.js";
|
|
4
|
+
import { H as g } from "./shared/hx-alert-C0axS32J.js";
|
|
5
|
+
import { H as v } from "./shared/hx-avatar-ChAYWnK8.js";
|
|
6
|
+
import { H as E } from "./shared/hx-badge-vX-1cuLA.js";
|
|
7
|
+
import { H as k } from "./shared/hx-banner-PbHwFNSb.js";
|
|
8
|
+
import { H as B, a as P } from "./shared/hx-breadcrumb-item-D8xYqe3s.js";
|
|
9
|
+
import { H as M } from "./shared/hx-button-DOZTZnz-.js";
|
|
10
|
+
import { H as N } from "./shared/hx-button-group-D3QUmSzl.js";
|
|
11
11
|
import { H as A } from "./shared/hx-card-CswtnYvj.js";
|
|
12
|
-
import { H as G, a as U } from "./shared/hx-carousel-item-
|
|
13
|
-
import { H as O } from "./shared/hx-checkbox-
|
|
14
|
-
import { H as K } from "./shared/hx-checkbox-group-
|
|
15
|
-
import { H as Y } from "./shared/hx-clinical-status-
|
|
12
|
+
import { H as G, a as U } from "./shared/hx-carousel-item-BVIKgQ4i.js";
|
|
13
|
+
import { H as O } from "./shared/hx-checkbox-DDSXXhps.js";
|
|
14
|
+
import { H as K } from "./shared/hx-checkbox-group-C0q6HDqn.js";
|
|
15
|
+
import { H as Y } from "./shared/hx-clinical-status-ZSVEc3Qg.js";
|
|
16
16
|
import { H as q } from "./shared/hx-code-snippet-fVV3Z2DZ.js";
|
|
17
|
-
import { H as J } from "./shared/hx-color-picker-
|
|
18
|
-
import { H as Z } from "./shared/hx-combobox-
|
|
17
|
+
import { H as J } from "./shared/hx-color-picker-CYjx8i8R.js";
|
|
18
|
+
import { H as Z } from "./shared/hx-combobox-Be-mqOv4.js";
|
|
19
19
|
import { H as oe } from "./shared/hx-container-DVI7sxfX.js";
|
|
20
|
-
import { H as re } from "./shared/hx-copy-button-
|
|
20
|
+
import { H as re } from "./shared/hx-copy-button-DJirFCUL.js";
|
|
21
21
|
import { H as ie } from "./shared/hx-counter-0zYapFhf.js";
|
|
22
22
|
import { H as xe } from "./shared/hx-data-table-Ct3gQ6ya.js";
|
|
23
|
-
import { H as le } from "./shared/hx-date-picker-
|
|
23
|
+
import { H as le } from "./shared/hx-date-picker-CziP3Hm1.js";
|
|
24
24
|
import { H as pe } from "./shared/hx-dialog-B4weoj_1.js";
|
|
25
25
|
import { H as fe } from "./shared/hx-divider-CYfcUjcr.js";
|
|
26
|
-
import { H as de } from "./shared/hx-drawer-
|
|
27
|
-
import { H as ue } from "./shared/hx-dropdown-
|
|
26
|
+
import { H as de } from "./shared/hx-drawer-BlU2oX8-.js";
|
|
27
|
+
import { H as ue } from "./shared/hx-dropdown-DREqpIpm.js";
|
|
28
28
|
import { H as ye } from "./shared/hx-field-zw0U1KVi.js";
|
|
29
29
|
import { H as be } from "./shared/hx-field-label-BVRyyKeh.js";
|
|
30
|
-
import { H as ge } from "./shared/hx-file-upload-
|
|
30
|
+
import { H as ge } from "./shared/hx-file-upload-CU5QGZSP.js";
|
|
31
31
|
import { H as ve } from "./shared/hx-form-CkChEATa.js";
|
|
32
32
|
import { H as Ee } from "./shared/hx-format-date-CKnlQOmV.js";
|
|
33
33
|
import { H as ke, a as we } from "./shared/hx-grid-CXZf3jeK.js";
|
|
34
|
-
import { H as Pe } from "./shared/hx-help-text-
|
|
35
|
-
import { H as Me } from "./shared/hx-icon-
|
|
36
|
-
import { H as Ne } from "./shared/hx-icon-button-
|
|
34
|
+
import { H as Pe } from "./shared/hx-help-text-CNaZ82LT.js";
|
|
35
|
+
import { H as Me } from "./shared/hx-icon-bxz9eB9a.js";
|
|
36
|
+
import { H as Ne } from "./shared/hx-icon-button-B2BdVdyK.js";
|
|
37
37
|
import { H as Ae } from "./shared/hx-image-Ben_4yM5.js";
|
|
38
|
-
import { H as Ge } from "./shared/hx-link-
|
|
38
|
+
import { H as Ge } from "./shared/hx-link-BURSdYLp.js";
|
|
39
39
|
import { H as Ve, a as Oe } from "./shared/hx-list-Bp8HeLHh.js";
|
|
40
|
-
import { H as Ke, a as We, b as Ye } from "./shared/hx-menu-divider-
|
|
40
|
+
import { H as Ke, a as We, b as Ye } from "./shared/hx-menu-divider-g0grbWV9.js";
|
|
41
41
|
import { H as qe } from "./shared/hx-meter-BnpmF3Vx.js";
|
|
42
|
-
import { H as Je } from "./shared/hx-nav-
|
|
43
|
-
import { H as Ze } from "./shared/hx-number-input-
|
|
44
|
-
import { H as oo } from "./shared/hx-overflow-menu-
|
|
45
|
-
import { H as ro } from "./shared/hx-pagination-
|
|
42
|
+
import { H as Je } from "./shared/hx-nav-GTsAZGOx.js";
|
|
43
|
+
import { H as Ze } from "./shared/hx-number-input-Bvyc9kOi.js";
|
|
44
|
+
import { H as oo } from "./shared/hx-overflow-menu-LrTteeR1.js";
|
|
45
|
+
import { H as ro } from "./shared/hx-pagination-D726PyTM.js";
|
|
46
46
|
import { H as io } from "./shared/hx-patient-banner-CkS-Lmj4.js";
|
|
47
|
-
import { H as xo } from "./shared/hx-phi-field-
|
|
48
|
-
import { H as lo } from "./shared/hx-popover-
|
|
49
|
-
import { H as po } from "./shared/hx-popup-
|
|
47
|
+
import { H as xo } from "./shared/hx-phi-field-sZt_rYIL.js";
|
|
48
|
+
import { H as lo } from "./shared/hx-popover-BjB0nkcq.js";
|
|
49
|
+
import { H as po } from "./shared/hx-popup-BiV_2evC.js";
|
|
50
50
|
import { H as fo } from "./shared/hx-progress-bar-CYz9U721.js";
|
|
51
51
|
import { H as ho } from "./shared/hx-progress-ring-TwHyXeEp.js";
|
|
52
52
|
import { H as So } from "./shared/hx-prose-BThYcASV.js";
|
|
53
|
-
import { H as To, a as bo } from "./shared/hx-radio-
|
|
54
|
-
import { H as go } from "./shared/hx-rating-
|
|
53
|
+
import { H as To, a as bo } from "./shared/hx-radio-BD_c9NJy.js";
|
|
54
|
+
import { H as go } from "./shared/hx-rating-BGK4AxvI.js";
|
|
55
55
|
import { H as vo } from "./shared/hx-select-DahFehiZ.js";
|
|
56
|
-
import { H as Eo, a as Do } from "./shared/hx-nav-item-
|
|
56
|
+
import { H as Eo, a as Do } from "./shared/hx-nav-item-CxE7Mp3M.js";
|
|
57
57
|
import { H as wo } from "./shared/hx-skeleton-Cnieh5Uc.js";
|
|
58
|
-
import { H as Po } from "./shared/hx-slider-
|
|
58
|
+
import { H as Po } from "./shared/hx-slider-CkOk5BCY.js";
|
|
59
59
|
import { H as Mo } from "./shared/hx-spinner-3qBp4jeN.js";
|
|
60
|
-
import { H as No } from "./shared/hx-split-button-
|
|
60
|
+
import { H as No } from "./shared/hx-split-button-Bg9FHrFK.js";
|
|
61
61
|
import { H as Ao } from "./shared/hx-split-panel-B-u0Z3mm.js";
|
|
62
62
|
import { H as Go } from "./shared/hx-stack-DGfcOfWJ.js";
|
|
63
|
-
import { H as Vo } from "./shared/hx-stat-
|
|
63
|
+
import { H as Vo } from "./shared/hx-stat-wKxbyep6.js";
|
|
64
64
|
import { H as Xo } from "./shared/hx-status-indicator-BlQyen43.js";
|
|
65
|
-
import { H as Wo, a as Yo } from "./shared/hx-step-
|
|
65
|
+
import { H as Wo, a as Yo } from "./shared/hx-step-CyGQAuiB.js";
|
|
66
66
|
import { H as qo, a as zo } from "./shared/hx-structured-list-m_-dMJbC.js";
|
|
67
67
|
import { H as Qo } from "./shared/hx-style-scope-TDnR8H4O.js";
|
|
68
|
-
import { H as et } from "./shared/hx-switch-
|
|
68
|
+
import { H as et } from "./shared/hx-switch-BCXuNxEH.js";
|
|
69
69
|
import { H as tt, a as rt, b as at, c as it, d as st, e as xt, f as Ht } from "./shared/hx-td-BPsb6OaG.js";
|
|
70
|
-
import { H as nt, a as pt, b as mt } from "./shared/hx-tab-panel-
|
|
71
|
-
import { H as ct } from "./shared/hx-tag-
|
|
70
|
+
import { H as nt, a as pt, b as mt } from "./shared/hx-tab-panel-BfisavKo.js";
|
|
71
|
+
import { H as ct } from "./shared/hx-tag-BqO6HY6V.js";
|
|
72
72
|
import { H as ht } from "./shared/hx-text-Bz_9fJ3J.js";
|
|
73
|
-
import { F as St, H as yt } from "./shared/hx-text-input-
|
|
73
|
+
import { F as St, H as yt } from "./shared/hx-text-input-V5sQOpDh.js";
|
|
74
74
|
import { H as bt } from "./shared/hx-textarea-CNG590KY.js";
|
|
75
75
|
import { H as gt } from "./shared/hx-theme-BsefFWTO.js";
|
|
76
|
-
import { H as vt } from "./shared/hx-time-picker-
|
|
77
|
-
import { H as Et, a as Dt, t as kt } from "./shared/toast-factory-
|
|
78
|
-
import { H as Bt } from "./shared/hx-toggle-button-
|
|
79
|
-
import { H as Ft } from "./shared/hx-tooltip-
|
|
80
|
-
import { H as Lt } from "./shared/hx-top-nav-
|
|
81
|
-
import { H as Rt, a as At } from "./shared/hx-tree-item-
|
|
76
|
+
import { H as vt } from "./shared/hx-time-picker-if5Cl0Ei.js";
|
|
77
|
+
import { H as Et, a as Dt, t as kt } from "./shared/toast-factory-DgnbFxVs.js";
|
|
78
|
+
import { H as Bt } from "./shared/hx-toggle-button-xNVYeA3X.js";
|
|
79
|
+
import { H as Ft } from "./shared/hx-tooltip-CamO-9nd.js";
|
|
80
|
+
import { H as Lt } from "./shared/hx-top-nav-vP6oDWMV.js";
|
|
81
|
+
import { H as Rt, a as At } from "./shared/hx-tree-item-D8hwKd5m.js";
|
|
82
82
|
import { H as Gt } from "./shared/hx-visually-hidden-0bZKOWgT.js";
|
|
83
83
|
import { F as Vt } from "./shared/FormMixin-B8PXk5RQ.js";
|
|
84
84
|
import { H as Xt } from "./shared/helix-element-BNEYeiys.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { css as
|
|
1
|
+
import { css as C, nothing as _, html as f } from "lit";
|
|
2
2
|
import { property as h, customElement as E } from "lit/decorators.js";
|
|
3
|
-
import { classMap as
|
|
3
|
+
import { classMap as I } from "lit/directives/class-map.js";
|
|
4
4
|
import { f as $ } from "./forced-colors-CTEDFRGa.js";
|
|
5
|
-
import { H as
|
|
6
|
-
import { c as
|
|
5
|
+
import { H as S } from "./helix-element-BNEYeiys.js";
|
|
6
|
+
import { c as O } from "./id-counter-DuX8vsui.js";
|
|
7
7
|
import { d as w } from "./dev-warn-YlwPHjtX.js";
|
|
8
|
-
const
|
|
8
|
+
const D = C`
|
|
9
9
|
:host {
|
|
10
10
|
display: block;
|
|
11
11
|
font-family: var(--hx-accordion-font-family, var(--hx-font-family-sans, sans-serif));
|
|
@@ -23,7 +23,7 @@ const T = _`
|
|
|
23
23
|
border: 2px solid CanvasText;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
`,
|
|
26
|
+
`, T = C`
|
|
27
27
|
:host {
|
|
28
28
|
display: block;
|
|
29
29
|
}
|
|
@@ -91,6 +91,10 @@ const T = _`
|
|
|
91
91
|
transition: transform var(--hx-transition-normal, 250ms ease);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
.icon .accordion-item__chevron {
|
|
95
|
+
--hx-icon-size: 100%;
|
|
96
|
+
}
|
|
97
|
+
|
|
94
98
|
.item--expanded .icon {
|
|
95
99
|
transform: rotate(180deg);
|
|
96
100
|
}
|
|
@@ -182,30 +186,20 @@ const T = _`
|
|
|
182
186
|
}
|
|
183
187
|
}
|
|
184
188
|
`;
|
|
185
|
-
var
|
|
186
|
-
for (var i = t > 1 ? void 0 : t ?
|
|
189
|
+
var M = Object.defineProperty, A = Object.getOwnPropertyDescriptor, m = (e, o, r, t) => {
|
|
190
|
+
for (var i = t > 1 ? void 0 : t ? A(o, r) : o, n = e.length - 1, a; n >= 0; n--)
|
|
187
191
|
(a = e[n]) && (i = (t ? a(o, r, i) : a(i)) || i);
|
|
188
|
-
return t && i &&
|
|
192
|
+
return t && i && M(o, r, i), i;
|
|
189
193
|
};
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
stroke="currentColor"
|
|
198
|
-
stroke-width="2"
|
|
199
|
-
stroke-linecap="round"
|
|
200
|
-
stroke-linejoin="round"
|
|
201
|
-
aria-hidden="true"
|
|
202
|
-
>
|
|
203
|
-
<polyline points="6 9 12 15 18 9"></polyline>
|
|
204
|
-
</svg>
|
|
205
|
-
`, j = D("hx-accordion-item");
|
|
206
|
-
let s = class extends k {
|
|
194
|
+
const H = f`<hx-icon
|
|
195
|
+
class="accordion-item__chevron"
|
|
196
|
+
library="helix"
|
|
197
|
+
name="chevron-down"
|
|
198
|
+
aria-hidden="true"
|
|
199
|
+
></hx-icon>`, L = O("hx-accordion-item");
|
|
200
|
+
let s = class extends S {
|
|
207
201
|
constructor() {
|
|
208
|
-
super(...arguments), this._uid =
|
|
202
|
+
super(...arguments), this._uid = L(), this.expanded = !1, this.disabled = !1, this.level = 3;
|
|
209
203
|
}
|
|
210
204
|
// ─── Lifecycle ───
|
|
211
205
|
connectedCallback() {
|
|
@@ -261,8 +255,8 @@ let s = class extends k {
|
|
|
261
255
|
"item--expanded": this.expanded,
|
|
262
256
|
"item--disabled": this.disabled
|
|
263
257
|
};
|
|
264
|
-
return
|
|
265
|
-
<details part="item" class=${
|
|
258
|
+
return f`
|
|
259
|
+
<details part="item" class=${I(e)} ?open=${this.expanded}>
|
|
266
260
|
<summary
|
|
267
261
|
id=${`${this._uid}-trigger`}
|
|
268
262
|
part="trigger"
|
|
@@ -271,13 +265,13 @@ let s = class extends k {
|
|
|
271
265
|
aria-level=${this._headingLevel}
|
|
272
266
|
tabindex=${this.disabled ? "-1" : "0"}
|
|
273
267
|
aria-expanded=${this.expanded ? "true" : "false"}
|
|
274
|
-
aria-disabled=${this.disabled ? "true" :
|
|
268
|
+
aria-disabled=${this.disabled ? "true" : _}
|
|
275
269
|
aria-controls=${`${this._uid}-content`}
|
|
276
270
|
@click=${this._handleSummaryClick}
|
|
277
271
|
@keydown=${this._handleKeyDown}
|
|
278
272
|
>
|
|
279
273
|
<slot name="trigger" @slotchange=${this._handleTriggerSlotChange}></slot>
|
|
280
|
-
<span part="icon" class="icon">${
|
|
274
|
+
<span part="icon" class="icon">${H}</span>
|
|
281
275
|
</summary>
|
|
282
276
|
<div class="content-wrapper">
|
|
283
277
|
<div class="content-inner">
|
|
@@ -287,7 +281,7 @@ let s = class extends k {
|
|
|
287
281
|
class="content"
|
|
288
282
|
role="region"
|
|
289
283
|
aria-labelledby=${`${this._uid}-trigger`}
|
|
290
|
-
aria-hidden=${this.expanded ?
|
|
284
|
+
aria-hidden=${this.expanded ? _ : "true"}
|
|
291
285
|
>
|
|
292
286
|
<slot></slot>
|
|
293
287
|
</div>
|
|
@@ -297,7 +291,7 @@ let s = class extends k {
|
|
|
297
291
|
`;
|
|
298
292
|
}
|
|
299
293
|
};
|
|
300
|
-
s.styles = [
|
|
294
|
+
s.styles = [T, $];
|
|
301
295
|
m([
|
|
302
296
|
h({ type: Boolean, reflect: !0 })
|
|
303
297
|
], s.prototype, "expanded", 2);
|
|
@@ -310,12 +304,12 @@ m([
|
|
|
310
304
|
s = m([
|
|
311
305
|
E("hx-accordion-item")
|
|
312
306
|
], s);
|
|
313
|
-
var
|
|
314
|
-
for (var i = t > 1 ? void 0 : t ?
|
|
307
|
+
var j = Object.defineProperty, z = Object.getOwnPropertyDescriptor, k = (e, o, r, t) => {
|
|
308
|
+
for (var i = t > 1 ? void 0 : t ? z(o, r) : o, n = e.length - 1, a; n >= 0; n--)
|
|
315
309
|
(a = e[n]) && (i = (t ? a(o, r, i) : a(i)) || i);
|
|
316
|
-
return t && i &&
|
|
310
|
+
return t && i && j(o, r, i), i;
|
|
317
311
|
};
|
|
318
|
-
let
|
|
312
|
+
let l = class extends S {
|
|
319
313
|
constructor() {
|
|
320
314
|
super(...arguments), this.mode = "single", this._mutationObserver = null, this._handleChildExpand = (e) => {
|
|
321
315
|
if (this.mode !== "single") return;
|
|
@@ -324,20 +318,20 @@ let c = class extends k {
|
|
|
324
318
|
t !== o && t.expanded && (t.expanded = !1, t._dispatchToggleEvent(!1));
|
|
325
319
|
});
|
|
326
320
|
}, this._handleKeyDown = (e) => {
|
|
327
|
-
var
|
|
321
|
+
var u, v, x, b;
|
|
328
322
|
if (this._getTriggers().length === 0) return;
|
|
329
|
-
const r = ((
|
|
323
|
+
const r = ((u = this.shadowRoot) == null ? void 0 : u.activeElement) ?? document.activeElement;
|
|
330
324
|
let t = null;
|
|
331
325
|
const i = Array.from(this.querySelectorAll("hx-accordion-item"));
|
|
332
|
-
for (const
|
|
333
|
-
const
|
|
334
|
-
if (
|
|
335
|
-
t =
|
|
326
|
+
for (const c of i) {
|
|
327
|
+
const y = (v = c.shadowRoot) == null ? void 0 : v.querySelector('[part="trigger"]');
|
|
328
|
+
if (y === r || ((x = c.shadowRoot) == null ? void 0 : x.activeElement) === y) {
|
|
329
|
+
t = c;
|
|
336
330
|
break;
|
|
337
331
|
}
|
|
338
332
|
}
|
|
339
333
|
if (!t) return;
|
|
340
|
-
const n = i.filter((
|
|
334
|
+
const n = i.filter((c) => !c.disabled), a = n.indexOf(t);
|
|
341
335
|
if (a === -1) return;
|
|
342
336
|
let d = -1;
|
|
343
337
|
switch (e.key) {
|
|
@@ -357,8 +351,8 @@ let c = class extends k {
|
|
|
357
351
|
return;
|
|
358
352
|
}
|
|
359
353
|
e.preventDefault();
|
|
360
|
-
const
|
|
361
|
-
|
|
354
|
+
const p = n[d], g = (b = p == null ? void 0 : p.shadowRoot) == null ? void 0 : b.querySelector('[part="trigger"]');
|
|
355
|
+
g == null || g.focus();
|
|
362
356
|
};
|
|
363
357
|
}
|
|
364
358
|
connectedCallback() {
|
|
@@ -422,22 +416,22 @@ let c = class extends k {
|
|
|
422
416
|
}
|
|
423
417
|
// ─── Render ───
|
|
424
418
|
render() {
|
|
425
|
-
return
|
|
419
|
+
return f`
|
|
426
420
|
<div part="accordion" class="accordion">
|
|
427
421
|
<slot @slotchange=${this._handleSlotChange}></slot>
|
|
428
422
|
</div>
|
|
429
423
|
`;
|
|
430
424
|
}
|
|
431
425
|
};
|
|
432
|
-
|
|
433
|
-
|
|
426
|
+
l.styles = [D, $];
|
|
427
|
+
k([
|
|
434
428
|
h({ type: String, reflect: !0 })
|
|
435
|
-
],
|
|
436
|
-
|
|
429
|
+
], l.prototype, "mode", 2);
|
|
430
|
+
l = k([
|
|
437
431
|
E("hx-accordion")
|
|
438
|
-
],
|
|
432
|
+
], l);
|
|
439
433
|
export {
|
|
440
|
-
|
|
434
|
+
l as H,
|
|
441
435
|
s as a
|
|
442
436
|
};
|
|
443
|
-
//# sourceMappingURL=hx-accordion-
|
|
437
|
+
//# sourceMappingURL=hx-accordion-DR--Ev4t.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-accordion-DR--Ev4t.js","sources":["../../src/components/hx-accordion/hx-accordion.styles.ts","../../src/components/hx-accordion/hx-accordion-item.styles.ts","../../src/components/hx-accordion/hx-accordion-item.ts","../../src/components/hx-accordion/hx-accordion.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixAccordionStyles = css`\n :host {\n display: block;\n font-family: var(--hx-accordion-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n .accordion {\n border-radius: var(--hx-accordion-border-radius, var(--hx-border-radius-md, 0.375rem));\n overflow: hidden;\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .accordion {\n border: 2px solid CanvasText;\n }\n }\n`;\n","import { css } from 'lit';\n\nexport const helixAccordionItemStyles = css`\n :host {\n display: block;\n }\n\n .item {\n border-bottom: var(--hx-border-width-thin, 1px) solid\n var(--hx-accordion-border-color, var(--hx-color-neutral-200, #d6dbd5));\n font-family: var(--hx-accordion-item-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n :host(:first-child) .item {\n border-top: var(--hx-border-width-thin, 1px) solid\n var(--hx-accordion-border-color, var(--hx-color-neutral-200, #d6dbd5));\n }\n\n /* Remove native details marker */\n .trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-accordion-trigger-padding, var(--hx-space-4, 1rem));\n cursor: pointer;\n list-style: none;\n font-size: var(--hx-font-size-md, 1rem);\n font-weight: var(--hx-font-weight-semibold, 600);\n color: var(--hx-accordion-trigger-color, var(--hx-color-neutral-800, #202b39));\n background-color: var(--hx-accordion-trigger-bg, transparent);\n user-select: none;\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n /* Hide the native details disclosure triangle */\n .trigger::-webkit-details-marker {\n display: none;\n }\n\n .trigger::marker {\n display: none;\n }\n\n .item--disabled .trigger {\n cursor: not-allowed;\n }\n\n :host(:not([disabled])) .trigger:hover {\n background-color: var(--hx-accordion-trigger-hover-bg, var(--hx-color-neutral-50, #f5f8f3));\n }\n\n .trigger:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);\n outline-offset: var(--hx-focus-ring-offset, -2px);\n }\n\n /* ─── Icon ─── */\n\n .icon {\n flex-shrink: 0;\n width: var(--hx-accordion-icon-size, var(--hx-size-5, 1.25rem));\n height: var(--hx-accordion-icon-size, var(--hx-size-5, 1.25rem));\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--hx-accordion-icon-color, var(--hx-color-neutral-500, #66787b));\n transition: transform var(--hx-transition-normal, 250ms ease);\n }\n\n .icon .accordion-item__chevron {\n --hx-icon-size: 100%;\n }\n\n .item--expanded .icon {\n transform: rotate(180deg);\n }\n\n /* ─── Content animation via CSS grid trick ─── */\n\n .content-wrapper {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--hx-transition-normal, 250ms ease);\n overflow: hidden;\n }\n\n .item--expanded .content-wrapper,\n details[open]:not(.item--expanded) .content-wrapper {\n grid-template-rows: 1fr;\n }\n\n .content-inner {\n overflow: hidden;\n }\n\n .content {\n padding: var(--hx-accordion-content-padding, 0 var(--hx-space-4, 1rem) var(--hx-space-4, 1rem));\n font-size: var(--hx-font-size-md, 1rem);\n line-height: var(--hx-line-height-normal, 1.5);\n color: var(--hx-accordion-content-color, var(--hx-color-neutral-600, #4a5362));\n }\n\n /* ─── Disabled host ─── */\n\n :host([disabled]) {\n pointer-events: none;\n opacity: var(--hx-opacity-disabled, 0.5);\n }\n\n /* ─── Reduced motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .trigger {\n transition: none;\n }\n\n .icon {\n transition: none;\n }\n\n .content-wrapper {\n transition: none;\n }\n }\n\n /* ─── High Contrast Mode (forced-colors) ─── */\n\n @media (forced-colors: active) {\n .trigger {\n forced-color-adjust: none;\n color: ButtonText;\n background-color: ButtonFace;\n }\n\n .trigger:focus-visible {\n outline: 3px solid Highlight;\n outline-offset: -2px;\n }\n\n .item {\n border-bottom-color: CanvasText;\n }\n\n :host(:first-child) .item {\n border-top-color: CanvasText;\n }\n\n .item--disabled .trigger {\n color: GrayText;\n }\n\n :host([disabled]) {\n opacity: 1;\n }\n\n .icon {\n color: ButtonText;\n }\n\n .content {\n color: CanvasText;\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport '../hx-icon/hx-icon.js';\nimport { HelixElement, createIdCounter } from '../../base/index.js';\nimport { helixAccordionItemStyles } from './hx-accordion-item.styles.js';\nimport { forcedColorsInteractive } from '../../styles/forced-colors.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\nconst chevronIcon = html`<hx-icon\n class=\"accordion-item__chevron\"\n library=\"helix\"\n name=\"chevron-down\"\n aria-hidden=\"true\"\n></hx-icon>`;\n\nconst _nextAccordionItemId = createIdCounter('hx-accordion-item');\n\n/** Detail for hx-expand and hx-collapse events dispatched by hx-accordion-item. */\nexport interface HxAccordionToggleDetail {\n expanded: boolean;\n itemId: string;\n}\n\n/**\n * An individual accordion item with collapsible content.\n *\n * ## Architecture Note: Slot Projection vs. Host-Canonical (group-4 round-1)\n *\n * `hx-accordion-item` deliberately does NOT participate in the\n * host-canonical / `internals.ariaLabelledByElements` pattern used by every\n * other group-2/3/4 component. Rationale:\n *\n * 1. The trigger label comes from `<slot name=\"trigger\">` — consumer\n * light-DOM projected directly into the `<summary>` element. AT reads\n * the slot-projected text natively because slot projection preserves\n * accessible name (the `<summary>` IS the heading and consumes the\n * slotted text in its own accessible name computation).\n * 2. `aria-labelledby=\"${_uid}-trigger\"` on the inner content region and\n * `aria-controls=\"${_uid}-content\"` on the summary BOTH resolve\n * same-shadow-root, which works correctly across every AT — these\n * IDREFs never cross a shadow boundary.\n * 3. Pushing these ids through `internals.ariaLabelledByElements` would\n * either duplicate the wiring (heading announced twice) or break the\n * native `<details>/<summary>` toggle semantics (the host carrying\n * `role=\"heading\"` would shadow the summary's own heading projection).\n *\n * `role=\"heading\"` on `<summary>` (with `aria-level=N`) is the APG-canonical\n * Accordion pattern. Per the APG note, `<summary>` MUST be a direct child\n * of `<details>` for the native toggle to function — wrapping it in an\n * `<h3>` would forfeit native disclosure. The role-on-summary approach is\n * the authoritative compromise. NVDA, JAWS, and VoiceOver all announce the\n * summary as a heading at the configured level when this pattern is used.\n *\n * `aria-controls` on the summary points at the shadow-internal content\n * region; APG marks the relationship as implicit via the heading + region\n * structure, so AT not following the IDREF still announces correctly. The\n * IDREF is a hint, not a requirement — and because both ids are in the\n * same shadow root, it resolves cleanly when AT does follow it. This\n * matches the popover/dropdown intentional `aria-controls` omission for\n * the cross-shadow case (see those components' code comments).\n *\n * @summary Collapsible panel that can be expanded or collapsed.\n *\n * @tag hx-accordion-item\n *\n * @slot trigger - The heading/trigger content for this item.\n * @slot - Default slot for the collapsible body content.\n *\n * @attr {number} level - Heading level (1–6) for the trigger via `role=\"heading\" aria-level`.\n * Defaults to 3. Set this to match the document outline — e.g., use `level=\"2\"` when the\n * accordion appears under an `<h1>` landmark.\n *\n * @fires {CustomEvent<{expanded: boolean, itemId: string}>} hx-expand - Dispatched when the item is expanded.\n * @fires {CustomEvent<{expanded: boolean, itemId: string}>} hx-collapse - Dispatched when the item is collapsed.\n *\n * @csspart item - The outer details element container.\n * @csspart trigger - The summary/trigger element.\n * @csspart content - The collapsible content area.\n * @csspart icon - The expand/collapse icon.\n *\n * @cssprop [--hx-accordion-border-color=var(--hx-color-neutral-200)] - Border color between items.\n * @cssprop [--hx-accordion-trigger-padding=var(--hx-space-4)] - Trigger padding.\n * @cssprop [--hx-accordion-trigger-color=var(--hx-color-neutral-800)] - Trigger text color.\n * @cssprop [--hx-accordion-trigger-bg=transparent] - Trigger background color.\n * @cssprop [--hx-accordion-trigger-hover-bg=var(--hx-color-neutral-50)] - Trigger hover background.\n * @cssprop [--hx-accordion-icon-color=var(--hx-color-neutral-500)] - Icon color.\n * @cssprop [--hx-accordion-content-padding=0 var(--hx-space-4) var(--hx-space-4)] - Content padding.\n * @cssprop [--hx-accordion-content-color=var(--hx-color-neutral-600)] - Content text color.\n */\n@customElement('hx-accordion-item')\nexport class HelixAccordionItem extends HelixElement {\n static override styles = [helixAccordionItemStyles, forcedColorsInteractive];\n\n /** @internal */\n private _uid = _nextAccordionItemId();\n\n /**\n * Whether this item is expanded.\n * @attr expanded\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Whether this item is disabled (cannot be toggled).\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Heading level (1–6) applied via `role=\"heading\" aria-level` on the summary\n * trigger. Defaults to 3. Set to match the document outline around the\n * accordion so screen readers surface accordion items in the heading list.\n * @attr level\n */\n @property({ type: Number })\n level: 1 | 2 | 3 | 4 | 5 | 6 = 3;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.closest('hx-accordion')) {\n devWarn(\n 'hx-accordion-item',\n 'Used outside hx-accordion. Single-expand coordination will not function.',\n );\n }\n }\n\n // ─── Slot Handlers ───\n\n /** @internal */\n private _handleTriggerSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n const hasContent = slot.assignedNodes({ flatten: true }).length > 0;\n if (!hasContent) {\n devWarn(\n 'hx-accordion-item',\n 'trigger slot is empty — provide a visible label for keyboard and screen reader users.',\n );\n }\n }\n\n // ─── Heading Level Helper ───\n\n /**\n * Returns a clamped heading level (1–6) for use as `aria-level` on the\n * `<summary>` element. Per the WAI-ARIA APG Accordion pattern, the\n * `<summary>` must be a **direct child** of `<details>` for native\n * disclosure behaviour to work. Instead of wrapping `<summary>` inside\n * an `<h3>` (which breaks the native toggle), we apply\n * `role=\"heading\" aria-level=\"N\"` directly on `<summary>`.\n */\n /** @internal */\n private get _headingLevel(): number {\n return Math.max(1, Math.min(6, this.level));\n }\n\n // ─── Toggle Logic ───\n\n /** @internal */\n private _toggle(): void {\n if (this.disabled) return;\n\n const willExpand = !this.expanded;\n this.expanded = willExpand;\n\n this._dispatchToggleEvent(willExpand);\n }\n\n /** @internal */\n _dispatchToggleEvent(expanded: boolean): void {\n const detail = { expanded, itemId: this.id || '' };\n const options = { bubbles: true, composed: true, detail };\n\n if (expanded) {\n this.dispatchEvent(\n new CustomEvent<{ expanded: boolean; itemId: string }>('hx-expand', options),\n );\n } else {\n this.dispatchEvent(\n new CustomEvent<{ expanded: boolean; itemId: string }>('hx-collapse', options),\n );\n }\n }\n\n // ─── Event Handlers ───\n\n /** @internal */\n private _handleSummaryClick(e: MouseEvent): void {\n e.preventDefault();\n this._toggle();\n }\n\n /** @internal */\n private _handleKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this._toggle();\n }\n }\n\n // ─── Render ───\n\n override render() {\n const itemClasses = {\n item: true,\n 'item--expanded': this.expanded,\n 'item--disabled': this.disabled,\n };\n\n return html`\n <details part=\"item\" class=${classMap(itemClasses)} ?open=${this.expanded}>\n <summary\n id=${`${this._uid}-trigger`}\n part=\"trigger\"\n class=\"trigger\"\n role=\"heading\"\n aria-level=${this._headingLevel}\n tabindex=${this.disabled ? '-1' : '0'}\n aria-expanded=${this.expanded ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-controls=${`${this._uid}-content`}\n @click=${this._handleSummaryClick}\n @keydown=${this._handleKeyDown}\n >\n <slot name=\"trigger\" @slotchange=${this._handleTriggerSlotChange}></slot>\n <span part=\"icon\" class=\"icon\">${chevronIcon}</span>\n </summary>\n <div class=\"content-wrapper\">\n <div class=\"content-inner\">\n <div\n id=${`${this._uid}-content`}\n part=\"content\"\n class=\"content\"\n role=\"region\"\n aria-labelledby=${`${this._uid}-trigger`}\n aria-hidden=${this.expanded ? nothing : 'true'}\n >\n <slot></slot>\n </div>\n </div>\n </div>\n </details>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-accordion-item': HelixAccordionItem;\n }\n}\n","import { html, type PropertyValues } from 'lit';\nimport '../../utilities/document-token-adoption.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { HelixElement } from '../../base/index.js';\nimport { helixAccordionStyles } from './hx-accordion.styles.js';\nimport { forcedColorsInteractive } from '../../styles/forced-colors.js';\nimport './hx-accordion-item.js';\nimport type { HelixAccordionItem } from './hx-accordion-item.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * An accordion container that manages collapsible content sections.\n *\n * @summary Collapsible content sections with single or multi-expand modes.\n *\n * @tag hx-accordion\n *\n * @slot - Default slot for hx-accordion-item elements.\n *\n * @csspart accordion - The outer container wrapping all accordion items.\n *\n * @cssprop [--hx-accordion-border-radius=var(--hx-border-radius-md)] - Outer border radius.\n *\n * @example\n * ```html\n * <hx-accordion mode=\"single\">\n * <hx-accordion-item>\n * <span slot=\"trigger\">What is this?</span>\n * <p>Answer content here.</p>\n * </hx-accordion-item>\n * </hx-accordion>\n * ```\n * @cssprop [--hx-accordion-font-family=var(--hx-font-family-sans)] - CSS custom property.\n * @cssprop [--hx-font-family-sans] - Font family.\n * @cssprop [--hx-border-radius-md] - CSS custom property.\n */\n@customElement('hx-accordion')\nexport class HelixAccordion extends HelixElement {\n static override styles = [helixAccordionStyles, forcedColorsInteractive];\n\n /**\n * Expansion mode: 'single' collapses all other items when one expands.\n * 'multi' allows multiple items open simultaneously.\n * @attr mode\n */\n @property({ type: String, reflect: true })\n mode: 'single' | 'multi' = 'single';\n\n // ─── Lifecycle ───\n\n /** @internal */\n private _mutationObserver: MutationObserver | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('hx-expand', this._handleChildExpand);\n this.addEventListener('keydown', this._handleKeyDown);\n // Re-enforce single mode when reconnected with pre-expanded items\n this._enforceSingleMode();\n // Watch for dynamically added accordion items that may violate single-expand\n if (typeof MutationObserver !== 'undefined') {\n this._mutationObserver = new MutationObserver((mutations) => {\n const hasNewItems = mutations.some((m) =>\n Array.from(m.addedNodes).some(\n (n) => n instanceof Element && n.tagName.toLowerCase() === 'hx-accordion-item',\n ),\n );\n if (hasNewItems) {\n this._enforceSingleMode();\n }\n });\n this._mutationObserver.observe(this, { childList: true });\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('hx-expand', this._handleChildExpand);\n this.removeEventListener('keydown', this._handleKeyDown);\n this._mutationObserver?.disconnect();\n this._mutationObserver = null;\n }\n\n protected override firstUpdated(): void {\n this._enforceSingleMode();\n }\n\n override updated(changedProperties: PropertyValues<this>): void {\n super.updated(changedProperties);\n if (changedProperties.has('mode')) {\n const validModes: string[] = ['single', 'multi'];\n if (!validModes.includes(this.mode)) {\n devWarn(\n 'hx-accordion',\n `Invalid mode \"${this.mode}\". Expected one of: ${validModes.join(', ')}. Clamping to \"single\".`,\n );\n this.mode = 'single';\n return;\n }\n // When switching from multi to single, enforce single-expand immediately\n this._enforceSingleMode();\n }\n }\n\n // ─── Single-expand coordination ───\n\n /** @internal */\n private _enforceSingleMode(): void {\n if (this.mode !== 'single') return;\n\n const items = this.querySelectorAll<HelixAccordionItem>('hx-accordion-item');\n let foundExpanded = false;\n\n items.forEach((item) => {\n if (item.expanded) {\n if (foundExpanded) {\n item.expanded = false;\n } else {\n foundExpanded = true;\n }\n }\n });\n }\n\n /**\n * Handles expand events from child accordion items to enforce single-expand mode.\n * @internal\n */\n private _handleChildExpand = (e: Event): void => {\n if (this.mode !== 'single') return;\n\n const expandedItem = e.composedPath()[0] as HelixAccordionItem;\n const items = this.querySelectorAll<HelixAccordionItem>('hx-accordion-item');\n\n items.forEach((item) => {\n if (item !== expandedItem && item.expanded) {\n item.expanded = false;\n item._dispatchToggleEvent(false);\n }\n });\n };\n\n // ─── Arrow key navigation (ARIA APG Accordion pattern) ───\n\n /**\n * Handles keyboard navigation between accordion triggers using arrow, Home, and End keys.\n * @internal\n */\n private _handleKeyDown = (e: KeyboardEvent): void => {\n const triggers = this._getTriggers();\n if (triggers.length === 0) return;\n\n const activeEl = this.shadowRoot?.activeElement ?? document.activeElement;\n let currentItem: HelixAccordionItem | null = null;\n\n const items = Array.from(this.querySelectorAll<HelixAccordionItem>('hx-accordion-item'));\n for (const item of items) {\n const summary = item.shadowRoot?.querySelector('[part=\"trigger\"]');\n if (summary === activeEl || item.shadowRoot?.activeElement === summary) {\n currentItem = item;\n break;\n }\n }\n\n if (!currentItem) return;\n\n const enabledItems = items.filter((item) => !item.disabled);\n const currentIndex = enabledItems.indexOf(currentItem);\n if (currentIndex === -1) return;\n\n let targetIndex = -1;\n\n switch (e.key) {\n case 'ArrowDown':\n targetIndex = (currentIndex + 1) % enabledItems.length;\n break;\n case 'ArrowUp':\n targetIndex = (currentIndex - 1 + enabledItems.length) % enabledItems.length;\n break;\n case 'Home':\n targetIndex = 0;\n break;\n case 'End':\n targetIndex = enabledItems.length - 1;\n break;\n default:\n return;\n }\n\n e.preventDefault();\n const targetItem = enabledItems[targetIndex];\n const targetSummary = targetItem?.shadowRoot?.querySelector<HTMLElement>('[part=\"trigger\"]');\n targetSummary?.focus();\n };\n\n /** @internal */\n private _getTriggers(): HTMLElement[] {\n const items = this.querySelectorAll<HelixAccordionItem>('hx-accordion-item');\n const triggers: HTMLElement[] = [];\n items.forEach((item) => {\n const summary = item.shadowRoot?.querySelector<HTMLElement>('[part=\"trigger\"]');\n if (summary) triggers.push(summary);\n });\n return triggers;\n }\n\n // ─── Slot validation ───\n\n /** @internal */\n private _handleSlotChange(e: Event): void {\n const slot = e.target;\n if (!(slot instanceof HTMLSlotElement)) return;\n const invalid = slot\n .assignedElements()\n .filter((el) => el.tagName.toLowerCase() !== 'hx-accordion-item');\n if (invalid.length > 0) {\n devWarn(\n 'hx-accordion',\n `Default slot expects <hx-accordion-item> elements. Found unexpected: ${invalid.map((el) => `<${el.tagName.toLowerCase()}>`).join(', ')}`,\n );\n }\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div part=\"accordion\" class=\"accordion\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-accordion': HelixAccordion;\n }\n}\n"],"names":["helixAccordionStyles","css","helixAccordionItemStyles","chevronIcon","html","_nextAccordionItemId","createIdCounter","HelixAccordionItem","HelixElement","willExpand","expanded","options","itemClasses","classMap","nothing","forcedColorsInteractive","__decorateClass","property","customElement","HelixAccordion","expandedItem","item","activeEl","_a","currentItem","items","summary","_b","_c","enabledItems","currentIndex","targetIndex","targetItem","targetSummary","_d","mutations","m","n","changedProperties","validModes","devWarn","foundExpanded","triggers","slot","invalid","el"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { property as c, state as f, customElement as u } from "lit/decorators.js
|
|
|
3
3
|
import { f as p } from "./forced-colors-CTEDFRGa.js";
|
|
4
4
|
import { d as v } from "./dev-warn-YlwPHjtX.js";
|
|
5
5
|
import { H as x } from "./helix-element-BNEYeiys.js";
|
|
6
|
-
const
|
|
6
|
+
const g = h`
|
|
7
7
|
:host {
|
|
8
8
|
display: block;
|
|
9
9
|
}
|
|
@@ -121,6 +121,18 @@ const m = h`
|
|
|
121
121
|
flex-shrink: 0;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
/*
|
|
125
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
|
|
126
|
+
* natives (e.g. bare <button>, <a>) so consumers who slot non-HELiX
|
|
127
|
+
* controls inherit the same indicator as the HELiX components do.
|
|
128
|
+
* Token-driven: --hx-focus-ring-width resolves to 2px (default).
|
|
129
|
+
*/
|
|
130
|
+
::slotted(:focus-visible) {
|
|
131
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
132
|
+
var(--hx-action-bar-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
133
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
134
|
+
}
|
|
135
|
+
|
|
124
136
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
125
137
|
|
|
126
138
|
@media (forced-colors: active) {
|
|
@@ -135,15 +147,15 @@ const m = h`
|
|
|
135
147
|
}
|
|
136
148
|
}
|
|
137
149
|
`;
|
|
138
|
-
var
|
|
139
|
-
for (var s = a > 1 ? void 0 : a ? y(t,
|
|
140
|
-
(
|
|
141
|
-
return a && s &&
|
|
150
|
+
var m = Object.defineProperty, y = Object.getOwnPropertyDescriptor, l = (e, t, o, a) => {
|
|
151
|
+
for (var s = a > 1 ? void 0 : a ? y(t, o) : t, r = e.length - 1, i; r >= 0; r--)
|
|
152
|
+
(i = e[r]) && (s = (a ? i(t, o, s) : i(s)) || s);
|
|
153
|
+
return a && s && m(t, o, s), s;
|
|
142
154
|
};
|
|
143
155
|
let n = class extends x {
|
|
144
156
|
constructor() {
|
|
145
157
|
super(...arguments), this.size = "md", this.variant = "default", this.position = "top", this.accessibleLabel = "", this._ariaLabelAttr = "", this._focusableCache = null, this._hasOverflow = !1, this._handleKeydown = (e) => {
|
|
146
|
-
var t,
|
|
158
|
+
var t, o;
|
|
147
159
|
if (e.key === "ArrowRight")
|
|
148
160
|
e.preventDefault(), this._moveFocus("next");
|
|
149
161
|
else if (e.key === "ArrowLeft")
|
|
@@ -151,11 +163,11 @@ let n = class extends x {
|
|
|
151
163
|
else if (e.key === "Home") {
|
|
152
164
|
e.preventDefault();
|
|
153
165
|
const a = this._getFocusableItems();
|
|
154
|
-
a.length && (a.forEach((s,
|
|
166
|
+
a.length && (a.forEach((s, r) => s.setAttribute("tabindex", r === 0 ? "0" : "-1")), (t = a[0]) == null || t.focus());
|
|
155
167
|
} else if (e.key === "End") {
|
|
156
168
|
e.preventDefault();
|
|
157
169
|
const a = this._getFocusableItems(), s = a.length - 1;
|
|
158
|
-
a.length && (a.forEach((
|
|
170
|
+
a.length && (a.forEach((r, i) => r.setAttribute("tabindex", i === s ? "0" : "-1")), (o = a[s]) == null || o.focus());
|
|
159
171
|
}
|
|
160
172
|
};
|
|
161
173
|
}
|
|
@@ -186,23 +198,23 @@ let n = class extends x {
|
|
|
186
198
|
_isFocusable(e) {
|
|
187
199
|
if (e.hasAttribute("disabled") || e.disabled === !0) return !1;
|
|
188
200
|
if (e.tabIndex >= 0) return !0;
|
|
189
|
-
const
|
|
190
|
-
return
|
|
201
|
+
const o = e.tagName.toLowerCase();
|
|
202
|
+
return o === "button" || o === "input" || o === "select" || o === "textarea";
|
|
191
203
|
}
|
|
192
204
|
/** @internal */
|
|
193
205
|
_getFocusableItems() {
|
|
194
|
-
var
|
|
206
|
+
var o;
|
|
195
207
|
if (this._focusableCache) return this._focusableCache;
|
|
196
|
-
const e = ((
|
|
208
|
+
const e = ((o = this.shadowRoot) == null ? void 0 : o.querySelectorAll("slot")) ?? [], t = [];
|
|
197
209
|
for (const a of Array.from(e)) {
|
|
198
210
|
const s = a.assignedElements({ flatten: !0 });
|
|
199
|
-
for (const
|
|
200
|
-
if (
|
|
201
|
-
if (this._isFocusable(
|
|
202
|
-
t.push(
|
|
211
|
+
for (const r of s)
|
|
212
|
+
if (r instanceof HTMLElement)
|
|
213
|
+
if (this._isFocusable(r))
|
|
214
|
+
t.push(r);
|
|
203
215
|
else {
|
|
204
|
-
const
|
|
205
|
-
for (const d of Array.from(
|
|
216
|
+
const i = r.querySelectorAll("*");
|
|
217
|
+
for (const d of Array.from(i))
|
|
206
218
|
this._isFocusable(d) && t.push(d);
|
|
207
219
|
}
|
|
208
220
|
}
|
|
@@ -214,19 +226,19 @@ let n = class extends x {
|
|
|
214
226
|
this._focusableCache = null;
|
|
215
227
|
const e = this._getFocusableItems();
|
|
216
228
|
if (!e.length) return;
|
|
217
|
-
const t = e.findIndex((a) => a.getAttribute("tabindex") === "0"),
|
|
218
|
-
e.forEach((a, s) => a.setAttribute("tabindex", s ===
|
|
229
|
+
const t = e.findIndex((a) => a.getAttribute("tabindex") === "0"), o = t === -1 ? 0 : t;
|
|
230
|
+
e.forEach((a, s) => a.setAttribute("tabindex", s === o ? "0" : "-1"));
|
|
219
231
|
}
|
|
220
232
|
/** @internal */
|
|
221
233
|
_moveFocus(e) {
|
|
222
|
-
var
|
|
234
|
+
var r;
|
|
223
235
|
const t = this._getFocusableItems();
|
|
224
236
|
if (!t.length) return;
|
|
225
|
-
const
|
|
237
|
+
const o = document.activeElement, a = t.indexOf(o);
|
|
226
238
|
let s;
|
|
227
|
-
e === "next" ? s = a < t.length - 1 ? a + 1 : 0 : s = a > 0 ? a - 1 : t.length - 1, t.forEach((
|
|
228
|
-
|
|
229
|
-
}), (
|
|
239
|
+
e === "next" ? s = a < t.length - 1 ? a + 1 : 0 : s = a > 0 ? a - 1 : t.length - 1, t.forEach((i, d) => {
|
|
240
|
+
i.setAttribute("tabindex", d === s ? "0" : "-1");
|
|
241
|
+
}), (r = t[s]) == null || r.focus();
|
|
230
242
|
}
|
|
231
243
|
// ─── Event Handlers ───
|
|
232
244
|
/** @internal */
|
|
@@ -236,14 +248,14 @@ let n = class extends x {
|
|
|
236
248
|
}
|
|
237
249
|
// ─── Render ───
|
|
238
250
|
render() {
|
|
239
|
-
const e = this.position === "sticky", t = this.position === "bottom",
|
|
251
|
+
const e = this.position === "sticky", t = this.position === "bottom", o = e ? " base--sticky" : t ? " base--bottom" : "";
|
|
240
252
|
return b`
|
|
241
253
|
<div
|
|
242
254
|
part="base"
|
|
243
255
|
role="toolbar"
|
|
244
256
|
aria-label=${this._effectiveLabel}
|
|
245
257
|
aria-orientation="horizontal"
|
|
246
|
-
class="base base--${this.size} base--${this.variant}${
|
|
258
|
+
class="base base--${this.size} base--${this.variant}${o}"
|
|
247
259
|
>
|
|
248
260
|
<div part="start" class="section section--start">
|
|
249
261
|
<slot name="start" @slotchange=${this._handleSlotChange}></slot>
|
|
@@ -261,7 +273,7 @@ let n = class extends x {
|
|
|
261
273
|
`;
|
|
262
274
|
}
|
|
263
275
|
};
|
|
264
|
-
n.styles = [
|
|
276
|
+
n.styles = [g, p];
|
|
265
277
|
l([
|
|
266
278
|
c({ type: String, reflect: !0, attribute: "hx-size" })
|
|
267
279
|
], n.prototype, "size", 2);
|
|
@@ -286,4 +298,4 @@ n = l([
|
|
|
286
298
|
export {
|
|
287
299
|
n as H
|
|
288
300
|
};
|
|
289
|
-
//# sourceMappingURL=hx-action-bar-
|
|
301
|
+
//# sourceMappingURL=hx-action-bar-BlEG4aZv.js.map
|