@hashicorp/design-system-components 6.2.0 → 6.2.1
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/declarations/components/hds/accordion/index.d.ts +1 -1
- package/declarations/components/hds/accordion/item/button.d.ts +1 -1
- package/declarations/components/hds/accordion/item/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/body.d.ts +4 -0
- package/declarations/components/hds/advanced-table/column-manager/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/column-manager/order.d.ts +4 -0
- package/declarations/components/hds/advanced-table/column-manager/width.d.ts +4 -0
- package/declarations/components/hds/advanced-table/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/td.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-expand.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-sort.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-context-menu.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-reorder-drop-target.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-reorder-handle.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-resize-handle.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-selectable.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th.d.ts +1 -1
- package/declarations/components/hds/advanced-table/tr.d.ts +1 -1
- package/declarations/components/hds/advanced-table/types.d.ts +1 -1
- package/declarations/components/hds/advanced-table/utils.d.ts +1 -1
- package/declarations/components/hds/alert/description.d.ts +1 -1
- package/declarations/components/hds/alert/index.d.ts +1 -1
- package/declarations/components/hds/alert/title.d.ts +1 -1
- package/declarations/components/hds/app-footer/copyright.d.ts +1 -1
- package/declarations/components/hds/app-footer/index.d.ts +1 -1
- package/declarations/components/hds/app-footer/item.d.ts +1 -1
- package/declarations/components/hds/app-footer/legal-links.d.ts +1 -1
- package/declarations/components/hds/app-footer/link.d.ts +1 -1
- package/declarations/components/hds/app-footer/status-link.d.ts +3 -3
- package/declarations/components/hds/app-footer/types.d.ts +1 -1
- package/declarations/components/hds/app-frame/index.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/footer.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/header.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/main.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/modals.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/sidebar.d.ts +1 -1
- package/declarations/components/hds/app-header/home-link.d.ts +1 -1
- package/declarations/components/hds/app-header/index.d.ts +1 -1
- package/declarations/components/hds/app-header/menu-button.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/item.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/link.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/portal/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/portal/target.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts +1 -1
- package/declarations/components/hds/application-state/body.d.ts +1 -1
- package/declarations/components/hds/application-state/footer.d.ts +1 -1
- package/declarations/components/hds/application-state/header.d.ts +1 -1
- package/declarations/components/hds/application-state/index.d.ts +1 -1
- package/declarations/components/hds/application-state/media.d.ts +1 -1
- package/declarations/components/hds/badge/index.d.ts +1 -1
- package/declarations/components/hds/badge-count/index.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/index.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/item.d.ts +2 -3
- package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
- package/declarations/components/hds/button/index.d.ts +1 -1
- package/declarations/components/hds/button-set/index.d.ts +1 -1
- package/declarations/components/hds/card/container.d.ts +1 -1
- package/declarations/components/hds/code-block/copy-button.d.ts +1 -1
- package/declarations/components/hds/code-block/description.d.ts +1 -1
- package/declarations/components/hds/code-block/index.d.ts +1 -1
- package/declarations/components/hds/code-block/title.d.ts +1 -1
- package/declarations/components/hds/code-editor/description.d.ts +1 -1
- package/declarations/components/hds/code-editor/full-screen-button.d.ts +1 -1
- package/declarations/components/hds/code-editor/generic.d.ts +1 -1
- package/declarations/components/hds/code-editor/index.d.ts +1 -1
- package/declarations/components/hds/code-editor/title.d.ts +1 -1
- package/declarations/components/hds/composite/index.d.ts +4 -0
- package/declarations/components/hds/composite/navigation.d.ts +4 -0
- package/declarations/components/hds/composite/types.d.ts +4 -0
- package/declarations/components/hds/copy/button/index.d.ts +1 -1
- package/declarations/components/hds/copy/snippet/index.d.ts +5 -1
- package/declarations/components/hds/dialog-primitive/body.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/description.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/footer.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/header.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/overlay.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/wrapper.d.ts +1 -1
- package/declarations/components/hds/disclosure-primitive/index.d.ts +1 -1
- package/declarations/components/hds/dismiss-button/index.d.ts +1 -1
- package/declarations/components/hds/dropdown/footer.d.ts +1 -1
- package/declarations/components/hds/dropdown/header.d.ts +1 -1
- package/declarations/components/hds/dropdown/index.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/checkmark.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/copy-item.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/description.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/generic.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/interactive.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/radio.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/separator.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/title.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/button.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
- package/declarations/components/hds/filter-bar/actions-dropdown.d.ts +1 -1
- package/declarations/components/hds/filter-bar/applied-filters.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/checkbox.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/clear-button.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/date.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/generic.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/numerical.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/radio.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filters-dropdown.d.ts +1 -1
- package/declarations/components/hds/filter-bar/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/panel.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/tab.d.ts +1 -1
- package/declarations/components/hds/filter-bar/types.d.ts +1 -1
- package/declarations/components/hds/flyout/index.d.ts +1 -1
- package/declarations/components/hds/form/character-count/index.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/base.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/field.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
- package/declarations/components/hds/form/error/index.d.ts +1 -1
- package/declarations/components/hds/form/error/message.d.ts +1 -1
- package/declarations/components/hds/form/field/index.d.ts +1 -1
- package/declarations/components/hds/form/fieldset/index.d.ts +1 -1
- package/declarations/components/hds/form/file-input/base.d.ts +1 -1
- package/declarations/components/hds/form/file-input/field.d.ts +1 -1
- package/declarations/components/hds/form/footer/index.d.ts +1 -1
- package/declarations/components/hds/form/header/description.d.ts +1 -1
- package/declarations/components/hds/form/header/index.d.ts +1 -1
- package/declarations/components/hds/form/header/title.d.ts +1 -1
- package/declarations/components/hds/form/helper-text/index.d.ts +1 -1
- package/declarations/components/hds/form/index.d.ts +1 -1
- package/declarations/components/hds/form/indicator/index.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/add-row-button.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/delete-row-button.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/field.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/generic.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/index.d.ts +1 -1
- package/declarations/components/hds/form/label/index.d.ts +1 -1
- package/declarations/components/hds/form/legend/index.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/base.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
- package/declarations/components/hds/form/radio/base.d.ts +1 -1
- package/declarations/components/hds/form/radio/field.d.ts +1 -1
- package/declarations/components/hds/form/radio/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/description.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/index.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/label.d.ts +1 -1
- package/declarations/components/hds/form/section/header.d.ts +1 -1
- package/declarations/components/hds/form/section/index.d.ts +1 -1
- package/declarations/components/hds/form/section/multi-field-group/index.d.ts +1 -1
- package/declarations/components/hds/form/section/multi-field-group/item.d.ts +1 -1
- package/declarations/components/hds/form/select/base.d.ts +1 -1
- package/declarations/components/hds/form/select/field.d.ts +1 -1
- package/declarations/components/hds/form/separator/index.d.ts +1 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -1
- package/declarations/components/hds/form/super-select/option-group.d.ts +1 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/field.d.ts +1 -1
- package/declarations/components/hds/form/text-input/base.d.ts +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts +1 -1
- package/declarations/components/hds/form/textarea/base.d.ts +1 -1
- package/declarations/components/hds/form/textarea/field.d.ts +1 -1
- package/declarations/components/hds/form/toggle/base.d.ts +1 -1
- package/declarations/components/hds/form/toggle/field.d.ts +1 -1
- package/declarations/components/hds/form/toggle/group.d.ts +1 -1
- package/declarations/components/hds/form/visibility-toggle/index.d.ts +1 -1
- package/declarations/components/hds/icon/index.d.ts +1 -1
- package/declarations/components/hds/icon-tile/index.d.ts +1 -1
- package/declarations/components/hds/interactive/index.d.ts +1 -1
- package/declarations/components/hds/layout/flex/index.d.ts +1 -1
- package/declarations/components/hds/layout/flex/item.d.ts +1 -1
- package/declarations/components/hds/layout/grid/index.d.ts +1 -1
- package/declarations/components/hds/layout/grid/item.d.ts +1 -1
- package/declarations/components/hds/link/inline.d.ts +1 -1
- package/declarations/components/hds/link/standalone.d.ts +1 -1
- package/declarations/components/hds/modal/index.d.ts +1 -1
- package/declarations/components/hds/page-header/actions.d.ts +1 -1
- package/declarations/components/hds/page-header/badges.d.ts +1 -1
- package/declarations/components/hds/page-header/description.d.ts +1 -1
- package/declarations/components/hds/page-header/index.d.ts +1 -1
- package/declarations/components/hds/page-header/subtitle.d.ts +1 -1
- package/declarations/components/hds/page-header/title.d.ts +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
- package/declarations/components/hds/pagination/info/index.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/ellipsis.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
- package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
- package/declarations/components/hds/pagination/types.d.ts +1 -1
- package/declarations/components/hds/popover-primitive/index.d.ts +1 -1
- package/declarations/components/hds/reveal/index.d.ts +1 -1
- package/declarations/components/hds/reveal/toggle/button.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/bubble.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/index.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/toggle.d.ts +1 -1
- package/declarations/components/hds/segmented-group/index.d.ts +1 -1
- package/declarations/components/hds/separator/index.d.ts +1 -1
- package/declarations/components/hds/stepper/list/index.d.ts +1 -1
- package/declarations/components/hds/stepper/list/step.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/index.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/panel.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/step.d.ts +1 -1
- package/declarations/components/hds/stepper/step/indicator.d.ts +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
- package/declarations/components/hds/stepper/types.d.ts +1 -1
- package/declarations/components/hds/table/index.d.ts +1 -1
- package/declarations/components/hds/table/td.d.ts +1 -1
- package/declarations/components/hds/table/th-button-sort.d.ts +1 -1
- package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/table/th-selectable.d.ts +1 -1
- package/declarations/components/hds/table/th-sort.d.ts +1 -1
- package/declarations/components/hds/table/th.d.ts +1 -1
- package/declarations/components/hds/table/tr.d.ts +1 -1
- package/declarations/components/hds/table/types.d.ts +1 -1
- package/declarations/components/hds/tabs/index.d.ts +1 -1
- package/declarations/components/hds/tabs/panel.d.ts +1 -1
- package/declarations/components/hds/tabs/tab.d.ts +1 -1
- package/declarations/components/hds/tag/index.d.ts +1 -1
- package/declarations/components/hds/text/body.d.ts +1 -1
- package/declarations/components/hds/text/code.d.ts +1 -1
- package/declarations/components/hds/text/display.d.ts +1 -1
- package/declarations/components/hds/text/index.d.ts +1 -1
- package/declarations/components/hds/time/index.d.ts +1 -1
- package/declarations/components/hds/time/range.d.ts +1 -1
- package/declarations/components/hds/time/single.d.ts +1 -1
- package/declarations/components/hds/toast/index.d.ts +1 -1
- package/declarations/components/hds/tooltip-button/index.d.ts +1 -1
- package/declarations/components/hds/yield/index.d.ts +1 -1
- package/declarations/components.d.ts +1 -1
- package/declarations/helpers/hds-t.d.ts +1 -1
- package/declarations/modifiers/hds-advanced-table-cell/dom-management.d.ts +1 -1
- package/declarations/modifiers/hds-advanced-table-cell.d.ts +1 -1
- package/declarations/modifiers/hds-code-editor.d.ts +1 -1
- package/declarations/modifiers/hds-scroll-into-view-on-focus.d.ts +1 -1
- package/declarations/modifiers/hds-tooltip.d.ts +1 -1
- package/declarations/re-exports/codemirror.d.ts +4 -0
- package/declarations/services/hds-intl.d.ts +1 -1
- package/declarations/template-registry.d.ts +1 -1
- package/declarations/utils/hds-aria-described-by.d.ts +1 -1
- package/declarations/utils/hds-link-to-external.d.ts +4 -0
- package/dist/components/hds/accordion/index.js +1 -1
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js +1 -1
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/accordion/item/index.js +1 -1
- package/dist/components/hds/accordion/item/index.js.map +1 -1
- package/dist/components/hds/advanced-table/body.js +4 -0
- package/dist/components/hds/advanced-table/body.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/index.js +1 -1
- package/dist/components/hds/advanced-table/column-manager/index.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/order.js +4 -0
- package/dist/components/hds/advanced-table/column-manager/order.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/width.js +4 -0
- package/dist/components/hds/advanced-table/column-manager/width.js.map +1 -1
- package/dist/components/hds/advanced-table/index.js +1 -1
- package/dist/components/hds/advanced-table/td.js +1 -1
- package/dist/components/hds/advanced-table/td.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/advanced-table/th-context-menu.js +1 -1
- package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
- package/dist/components/hds/advanced-table/th-reorder-drop-target.js +1 -1
- package/dist/components/hds/advanced-table/th-reorder-handle.js +1 -1
- package/dist/components/hds/advanced-table/th-reorder-handle.js.map +1 -1
- package/dist/components/hds/advanced-table/th-resize-handle.js +1 -1
- package/dist/components/hds/advanced-table/th-selectable.js +1 -1
- package/dist/components/hds/advanced-table/th.js +1 -1
- package/dist/components/hds/advanced-table/tr.js +1 -1
- package/dist/components/hds/advanced-table/types.js +1 -1
- package/dist/components/hds/advanced-table/types.js.map +1 -1
- package/dist/components/hds/advanced-table/utils.js +1 -1
- package/dist/components/hds/advanced-table/utils.js.map +1 -1
- package/dist/components/hds/alert/description.js +1 -1
- package/dist/components/hds/alert/description.js.map +1 -1
- package/dist/components/hds/alert/index.js +1 -1
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/alert/title.js +1 -1
- package/dist/components/hds/alert/title.js.map +1 -1
- package/dist/components/hds/app-footer/copyright.js +1 -1
- package/dist/components/hds/app-footer/copyright.js.map +1 -1
- package/dist/components/hds/app-footer/index.js +1 -1
- package/dist/components/hds/app-footer/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js +1 -1
- package/dist/components/hds/app-footer/item.js.map +1 -1
- package/dist/components/hds/app-footer/legal-links.js +1 -1
- package/dist/components/hds/app-footer/legal-links.js.map +1 -1
- package/dist/components/hds/app-footer/link.js +1 -1
- package/dist/components/hds/app-footer/link.js.map +1 -1
- package/dist/components/hds/app-footer/status-link.js +9 -6
- package/dist/components/hds/app-footer/status-link.js.map +1 -1
- package/dist/components/hds/app-footer/types.js +1 -1
- package/dist/components/hds/app-footer/types.js.map +1 -1
- package/dist/components/hds/app-frame/index.js +1 -1
- package/dist/components/hds/app-frame/index.js.map +1 -1
- package/dist/components/hds/app-frame/parts/footer.js +1 -1
- package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
- package/dist/components/hds/app-frame/parts/header.js +1 -1
- package/dist/components/hds/app-frame/parts/header.js.map +1 -1
- package/dist/components/hds/app-frame/parts/main.js +1 -1
- package/dist/components/hds/app-frame/parts/main.js.map +1 -1
- package/dist/components/hds/app-frame/parts/modals.js +1 -1
- package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
- package/dist/components/hds/app-header/home-link.js +1 -1
- package/dist/components/hds/app-header/home-link.js.map +1 -1
- package/dist/components/hds/app-header/index.js +1 -1
- package/dist/components/hds/app-header/index.js.map +1 -1
- package/dist/components/hds/app-header/menu-button.js +1 -1
- package/dist/components/hds/app-header/menu-button.js.map +1 -1
- package/dist/components/hds/app-side-nav/index.js +1 -1
- package/dist/components/hds/app-side-nav/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/back-link.js +1 -1
- package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/index.js +1 -1
- package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/item.js +1 -1
- package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/link.js +1 -1
- package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/title.js +1 -1
- package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
- package/dist/components/hds/app-side-nav/portal/index.js +1 -1
- package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/portal/target.js +1 -1
- package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/application-state/body.js +1 -1
- package/dist/components/hds/application-state/body.js.map +1 -1
- package/dist/components/hds/application-state/footer.js +1 -1
- package/dist/components/hds/application-state/footer.js.map +1 -1
- package/dist/components/hds/application-state/header.js +1 -1
- package/dist/components/hds/application-state/header.js.map +1 -1
- package/dist/components/hds/application-state/index.js +1 -1
- package/dist/components/hds/application-state/index.js.map +1 -1
- package/dist/components/hds/application-state/media.js +1 -1
- package/dist/components/hds/application-state/media.js.map +1 -1
- package/dist/components/hds/badge/index.js +1 -1
- package/dist/components/hds/badge/index.js.map +1 -1
- package/dist/components/hds/badge-count/index.js +1 -1
- package/dist/components/hds/badge-count/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/index.js +1 -1
- package/dist/components/hds/breadcrumb/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/item.js +8 -5
- package/dist/components/hds/breadcrumb/item.js.map +1 -1
- package/dist/components/hds/breadcrumb/truncation.js +1 -1
- package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
- package/dist/components/hds/button/index.js +1 -1
- package/dist/components/hds/button/index.js.map +1 -1
- package/dist/components/hds/button-set/index.js +1 -1
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/card/container.js +1 -1
- package/dist/components/hds/card/container.js.map +1 -1
- package/dist/components/hds/code-block/copy-button.js +1 -1
- package/dist/components/hds/code-block/copy-button.js.map +1 -1
- package/dist/components/hds/code-block/description.js +1 -1
- package/dist/components/hds/code-block/description.js.map +1 -1
- package/dist/components/hds/code-block/index.js +4 -2
- package/dist/components/hds/code-block/index.js.map +1 -1
- package/dist/components/hds/code-block/title.js +1 -1
- package/dist/components/hds/code-block/title.js.map +1 -1
- package/dist/components/hds/code-editor/description.js +1 -1
- package/dist/components/hds/code-editor/description.js.map +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js.map +1 -1
- package/dist/components/hds/code-editor/generic.js +1 -1
- package/dist/components/hds/code-editor/generic.js.map +1 -1
- package/dist/components/hds/code-editor/index.js +1 -1
- package/dist/components/hds/code-editor/index.js.map +1 -1
- package/dist/components/hds/code-editor/title.js +1 -1
- package/dist/components/hds/code-editor/title.js.map +1 -1
- package/dist/components/hds/composite/index.js +4 -0
- package/dist/components/hds/composite/index.js.map +1 -1
- package/dist/components/hds/composite/navigation.js +5 -0
- package/dist/components/hds/composite/navigation.js.map +1 -1
- package/dist/components/hds/copy/button/index.js +6 -2
- package/dist/components/hds/copy/button/index.js.map +1 -1
- package/dist/components/hds/copy/snippet/index.js +20 -2
- package/dist/components/hds/copy/snippet/index.js.map +1 -1
- package/dist/components/hds/dialog-primitive/body.js +1 -1
- package/dist/components/hds/dialog-primitive/body.js.map +1 -1
- package/dist/components/hds/dialog-primitive/description.js +1 -1
- package/dist/components/hds/dialog-primitive/description.js.map +1 -1
- package/dist/components/hds/dialog-primitive/footer.js +1 -1
- package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
- package/dist/components/hds/dialog-primitive/header.js +1 -1
- package/dist/components/hds/dialog-primitive/header.js.map +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
- package/dist/components/hds/disclosure-primitive/index.js +1 -1
- package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
- package/dist/components/hds/dismiss-button/index.js +1 -1
- package/dist/components/hds/dismiss-button/index.js.map +1 -1
- package/dist/components/hds/dropdown/footer.js +1 -1
- package/dist/components/hds/dropdown/footer.js.map +1 -1
- package/dist/components/hds/dropdown/header.js +1 -1
- package/dist/components/hds/dropdown/header.js.map +1 -1
- package/dist/components/hds/dropdown/index.js +1 -1
- package/dist/components/hds/dropdown/index.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/description.js +1 -1
- package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/title.js +1 -1
- package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/button.js +1 -1
- package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
- package/dist/components/hds/filter-bar/actions-dropdown.js +1 -1
- package/dist/components/hds/filter-bar/actions-dropdown.js.map +1 -1
- package/dist/components/hds/filter-bar/applied-filters.js +1 -1
- package/dist/components/hds/filter-bar/applied-filters.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/clear-button.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/clear-button.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/date.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/date.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/index.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/index.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js.map +1 -1
- package/dist/components/hds/filter-bar/filters-dropdown.js +1 -1
- package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -1
- package/dist/components/hds/filter-bar/index.js +1 -1
- package/dist/components/hds/filter-bar/index.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/index.js +1 -1
- package/dist/components/hds/filter-bar/tabs/index.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/panel.js +1 -1
- package/dist/components/hds/filter-bar/tabs/panel.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/tab.js +1 -1
- package/dist/components/hds/filter-bar/tabs/tab.js.map +1 -1
- package/dist/components/hds/filter-bar/types.js +1 -1
- package/dist/components/hds/filter-bar/types.js.map +1 -1
- package/dist/components/hds/flyout/index.js +1 -1
- package/dist/components/hds/flyout/index.js.map +1 -1
- package/dist/components/hds/form/character-count/index.js +1 -1
- package/dist/components/hds/form/character-count/index.js.map +1 -1
- package/dist/components/hds/form/checkbox/base.js +1 -1
- package/dist/components/hds/form/checkbox/base.js.map +1 -1
- package/dist/components/hds/form/checkbox/field.js +1 -1
- package/dist/components/hds/form/checkbox/field.js.map +1 -1
- package/dist/components/hds/form/checkbox/group.js +1 -1
- package/dist/components/hds/form/checkbox/group.js.map +1 -1
- package/dist/components/hds/form/error/index.js +1 -1
- package/dist/components/hds/form/error/index.js.map +1 -1
- package/dist/components/hds/form/error/message.js +1 -1
- package/dist/components/hds/form/error/message.js.map +1 -1
- package/dist/components/hds/form/field/index.js +1 -1
- package/dist/components/hds/form/field/index.js.map +1 -1
- package/dist/components/hds/form/fieldset/index.js +1 -1
- package/dist/components/hds/form/fieldset/index.js.map +1 -1
- package/dist/components/hds/form/file-input/base.js +1 -1
- package/dist/components/hds/form/file-input/base.js.map +1 -1
- package/dist/components/hds/form/file-input/field.js +1 -1
- package/dist/components/hds/form/file-input/field.js.map +1 -1
- package/dist/components/hds/form/footer/index.js +1 -1
- package/dist/components/hds/form/footer/index.js.map +1 -1
- package/dist/components/hds/form/header/description.js +1 -1
- package/dist/components/hds/form/header/description.js.map +1 -1
- package/dist/components/hds/form/header/index.js +1 -1
- package/dist/components/hds/form/header/index.js.map +1 -1
- package/dist/components/hds/form/header/title.js +1 -1
- package/dist/components/hds/form/header/title.js.map +1 -1
- package/dist/components/hds/form/helper-text/index.js +1 -1
- package/dist/components/hds/form/helper-text/index.js.map +1 -1
- package/dist/components/hds/form/index.js +1 -1
- package/dist/components/hds/form/index.js.map +1 -1
- package/dist/components/hds/form/indicator/index.js +1 -1
- package/dist/components/hds/form/indicator/index.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/add-row-button.js +1 -1
- package/dist/components/hds/form/key-value-inputs/add-row-button.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/delete-row-button.js +1 -1
- package/dist/components/hds/form/key-value-inputs/delete-row-button.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/field.js +1 -1
- package/dist/components/hds/form/key-value-inputs/field.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/generic.js +1 -1
- package/dist/components/hds/form/key-value-inputs/generic.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/index.js +1 -1
- package/dist/components/hds/form/key-value-inputs/index.js.map +1 -1
- package/dist/components/hds/form/label/index.js +1 -1
- package/dist/components/hds/form/label/index.js.map +1 -1
- package/dist/components/hds/form/legend/index.js +1 -1
- package/dist/components/hds/form/legend/index.js.map +1 -1
- package/dist/components/hds/form/masked-input/base.js +1 -1
- package/dist/components/hds/form/masked-input/base.js.map +1 -1
- package/dist/components/hds/form/masked-input/field.js +1 -1
- package/dist/components/hds/form/masked-input/field.js.map +1 -1
- package/dist/components/hds/form/radio/base.js +1 -1
- package/dist/components/hds/form/radio/base.js.map +1 -1
- package/dist/components/hds/form/radio/field.js +1 -1
- package/dist/components/hds/form/radio/field.js.map +1 -1
- package/dist/components/hds/form/radio/group.js +1 -1
- package/dist/components/hds/form/radio/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/description.js +1 -1
- package/dist/components/hds/form/radio-card/description.js.map +1 -1
- package/dist/components/hds/form/radio-card/group.js +1 -1
- package/dist/components/hds/form/radio-card/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/index.js +1 -1
- package/dist/components/hds/form/radio-card/index.js.map +1 -1
- package/dist/components/hds/form/radio-card/label.js +1 -1
- package/dist/components/hds/form/radio-card/label.js.map +1 -1
- package/dist/components/hds/form/section/header.js +1 -1
- package/dist/components/hds/form/section/header.js.map +1 -1
- package/dist/components/hds/form/section/index.js +1 -1
- package/dist/components/hds/form/section/index.js.map +1 -1
- package/dist/components/hds/form/section/multi-field-group/index.js +1 -1
- package/dist/components/hds/form/section/multi-field-group/index.js.map +1 -1
- package/dist/components/hds/form/section/multi-field-group/item.js +1 -1
- package/dist/components/hds/form/section/multi-field-group/item.js.map +1 -1
- package/dist/components/hds/form/select/base.js +1 -1
- package/dist/components/hds/form/select/base.js.map +1 -1
- package/dist/components/hds/form/select/field.js +1 -1
- package/dist/components/hds/form/select/field.js.map +1 -1
- package/dist/components/hds/form/separator/index.js +1 -1
- package/dist/components/hds/form/separator/index.js.map +1 -1
- package/dist/components/hds/form/super-select/after-options.js +1 -1
- package/dist/components/hds/form/super-select/after-options.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/base.js +1 -1
- package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
- package/dist/components/hds/form/super-select/option-group.js +1 -1
- package/dist/components/hds/form/super-select/option-group.js.map +1 -1
- package/dist/components/hds/form/super-select/placeholder.js +1 -1
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
- package/dist/components/hds/form/super-select/single/base.js +1 -1
- package/dist/components/hds/form/super-select/single/base.js.map +1 -1
- package/dist/components/hds/form/super-select/single/field.js +1 -1
- package/dist/components/hds/form/super-select/single/field.js.map +1 -1
- package/dist/components/hds/form/text-input/base.js +1 -1
- package/dist/components/hds/form/text-input/base.js.map +1 -1
- package/dist/components/hds/form/text-input/field.js +1 -1
- package/dist/components/hds/form/text-input/field.js.map +1 -1
- package/dist/components/hds/form/textarea/base.js +1 -1
- package/dist/components/hds/form/textarea/base.js.map +1 -1
- package/dist/components/hds/form/textarea/field.js +1 -1
- package/dist/components/hds/form/textarea/field.js.map +1 -1
- package/dist/components/hds/form/toggle/base.js +1 -1
- package/dist/components/hds/form/toggle/base.js.map +1 -1
- package/dist/components/hds/form/toggle/field.js +1 -1
- package/dist/components/hds/form/toggle/field.js.map +1 -1
- package/dist/components/hds/form/toggle/group.js +1 -1
- package/dist/components/hds/form/toggle/group.js.map +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
- package/dist/components/hds/icon/index.js +1 -1
- package/dist/components/hds/icon/index.js.map +1 -1
- package/dist/components/hds/icon-tile/index.js +1 -1
- package/dist/components/hds/icon-tile/index.js.map +1 -1
- package/dist/components/hds/interactive/index.js +1 -1
- package/dist/components/hds/interactive/index.js.map +1 -1
- package/dist/components/hds/layout/flex/index.js +1 -1
- package/dist/components/hds/layout/flex/index.js.map +1 -1
- package/dist/components/hds/layout/flex/item.js +1 -1
- package/dist/components/hds/layout/flex/item.js.map +1 -1
- package/dist/components/hds/layout/grid/index.js +1 -1
- package/dist/components/hds/layout/grid/index.js.map +1 -1
- package/dist/components/hds/layout/grid/item.js +1 -1
- package/dist/components/hds/layout/grid/item.js.map +1 -1
- package/dist/components/hds/link/inline.js +1 -1
- package/dist/components/hds/link/inline.js.map +1 -1
- package/dist/components/hds/link/standalone.js +1 -1
- package/dist/components/hds/link/standalone.js.map +1 -1
- package/dist/components/hds/modal/index.js +1 -1
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components/hds/page-header/actions.js +1 -1
- package/dist/components/hds/page-header/actions.js.map +1 -1
- package/dist/components/hds/page-header/badges.js +1 -1
- package/dist/components/hds/page-header/badges.js.map +1 -1
- package/dist/components/hds/page-header/description.js +1 -1
- package/dist/components/hds/page-header/description.js.map +1 -1
- package/dist/components/hds/page-header/index.js +1 -1
- package/dist/components/hds/page-header/index.js.map +1 -1
- package/dist/components/hds/page-header/subtitle.js +1 -1
- package/dist/components/hds/page-header/subtitle.js.map +1 -1
- package/dist/components/hds/page-header/title.js +1 -1
- package/dist/components/hds/page-header/title.js.map +1 -1
- package/dist/components/hds/pagination/compact/index.js +1 -1
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/info/index.js +1 -1
- package/dist/components/hds/pagination/info/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js +1 -1
- package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
- package/dist/components/hds/pagination/nav/number.js +1 -1
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +1 -1
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +1 -1
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/pagination/types.js +1 -1
- package/dist/components/hds/pagination/types.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +1 -1
- package/dist/components/hds/popover-primitive/index.js.map +1 -1
- package/dist/components/hds/reveal/index.js +1 -1
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/reveal/toggle/button.js +1 -1
- package/dist/components/hds/reveal/toggle/button.js.map +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
- package/dist/components/hds/rich-tooltip/index.js +1 -1
- package/dist/components/hds/rich-tooltip/index.js.map +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
- package/dist/components/hds/segmented-group/index.js +1 -1
- package/dist/components/hds/segmented-group/index.js.map +1 -1
- package/dist/components/hds/separator/index.js +1 -1
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/stepper/list/index.js +1 -1
- package/dist/components/hds/stepper/list/index.js.map +1 -1
- package/dist/components/hds/stepper/list/step.js +1 -1
- package/dist/components/hds/stepper/list/step.js.map +1 -1
- package/dist/components/hds/stepper/nav/index.js +1 -1
- package/dist/components/hds/stepper/nav/index.js.map +1 -1
- package/dist/components/hds/stepper/nav/panel.js +1 -1
- package/dist/components/hds/stepper/nav/panel.js.map +1 -1
- package/dist/components/hds/stepper/nav/step.js +1 -7
- package/dist/components/hds/stepper/nav/step.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js +1 -1
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js +1 -1
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/stepper/types.js +1 -1
- package/dist/components/hds/stepper/types.js.map +1 -1
- package/dist/components/hds/table/index.js +1 -1
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/td.js +1 -1
- package/dist/components/hds/table/td.js.map +1 -1
- package/dist/components/hds/table/th-button-sort.js +1 -1
- package/dist/components/hds/table/th-button-sort.js.map +1 -1
- package/dist/components/hds/table/th-button-tooltip.js +1 -1
- package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/table/th-selectable.js +1 -1
- package/dist/components/hds/table/th-selectable.js.map +1 -1
- package/dist/components/hds/table/th-sort.js +1 -1
- package/dist/components/hds/table/th-sort.js.map +1 -1
- package/dist/components/hds/table/th.js +1 -1
- package/dist/components/hds/table/th.js.map +1 -1
- package/dist/components/hds/table/tr.js +1 -1
- package/dist/components/hds/table/tr.js.map +1 -1
- package/dist/components/hds/table/types.js +1 -1
- package/dist/components/hds/table/types.js.map +1 -1
- package/dist/components/hds/tabs/index.js +1 -1
- package/dist/components/hds/tabs/index.js.map +1 -1
- package/dist/components/hds/tabs/panel.js +1 -1
- package/dist/components/hds/tabs/panel.js.map +1 -1
- package/dist/components/hds/tabs/tab.js +1 -1
- package/dist/components/hds/tabs/tab.js.map +1 -1
- package/dist/components/hds/tag/index.js +1 -1
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/text/body.js +1 -1
- package/dist/components/hds/text/body.js.map +1 -1
- package/dist/components/hds/text/code.js +1 -1
- package/dist/components/hds/text/code.js.map +1 -1
- package/dist/components/hds/text/display.js +1 -1
- package/dist/components/hds/text/display.js.map +1 -1
- package/dist/components/hds/text/index.js +1 -1
- package/dist/components/hds/text/index.js.map +1 -1
- package/dist/components/hds/time/index.js +1 -1
- package/dist/components/hds/time/index.js.map +1 -1
- package/dist/components/hds/time/range.js +1 -1
- package/dist/components/hds/time/range.js.map +1 -1
- package/dist/components/hds/time/single.js +1 -1
- package/dist/components/hds/time/single.js.map +1 -1
- package/dist/components/hds/toast/index.js +1 -1
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/index.js +1 -1
- package/dist/components/hds/tooltip-button/index.js.map +1 -1
- package/dist/components/hds/yield/index.js +1 -1
- package/dist/components/hds/yield/index.js.map +1 -1
- package/dist/components.js +1 -1
- package/dist/helpers/hds-t.js +1 -1
- package/dist/helpers/hds-t.js.map +1 -1
- package/dist/{index-B9OqWZ9U.js → index-DtMB-P9m.js} +7 -7
- package/dist/{index-B9OqWZ9U.js.map → index-DtMB-P9m.js.map} +1 -1
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js +1 -1
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js.map +1 -1
- package/dist/modifiers/hds-advanced-table-cell.js +1 -1
- package/dist/modifiers/hds-advanced-table-cell.js.map +1 -1
- package/dist/modifiers/hds-clipboard.js +6 -2
- package/dist/modifiers/hds-clipboard.js.map +1 -1
- package/dist/modifiers/hds-code-editor.js.map +1 -1
- package/dist/modifiers/hds-scroll-into-view-on-focus.js +1 -1
- package/dist/modifiers/hds-scroll-into-view-on-focus.js.map +1 -1
- package/dist/modifiers/hds-tooltip.js +1 -1
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/services/hds-intl.js +1 -1
- package/dist/services/hds-intl.js.map +1 -1
- package/dist/styles/@hashicorp/design-system-components-common.scss +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +159 -153
- package/dist/styles/@hashicorp/design-system-components.css.map +1 -1
- package/dist/styles/@hashicorp/design-system-components.scss +1 -1
- package/dist/styles/@hashicorp/design-system-ember-a11y-refocus.scss +5 -0
- package/dist/styles/components/advanced-table.scss +1 -1
- package/dist/styles/components/app-header.scss +1 -1
- package/dist/styles/components/app-side-nav/content.scss +1 -1
- package/dist/styles/components/app-side-nav/vars.scss +1 -1
- package/dist/styles/components/breadcrumb.scss +1 -1
- package/dist/styles/components/code-block/index.scss +1 -1
- package/dist/styles/components/code-editor/index.scss +1 -1
- package/dist/styles/components/dropdown.scss +4 -0
- package/dist/styles/components/filter-bar.scss +1 -1
- package/dist/styles/components/flyout.scss +1 -1
- package/dist/styles/components/index.scss +1 -1
- package/dist/styles/components/layout/grid.scss +1 -1
- package/dist/styles/components/stepper/nav.scss +66 -67
- package/dist/styles/mixins/_interactive-dark-theme.scss +1 -1
- package/dist/utils/hds-aria-described-by.js +1 -1
- package/dist/utils/hds-aria-described-by.js.map +1 -1
- package/dist/utils/hds-link-to-external.js +5 -0
- package/dist/utils/hds-link-to-external.js.map +1 -1
- package/package.json +2 -2
- package/translations/hds/components/code-block/en-us.yaml +3 -0
- package/translations/hds/components/copy-button/en-us.yaml +3 -1
- package/translations/hds/components/copy-snippet/en-us.yaml +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/numbered/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { eq } from 'ember-truth-helpers';\nimport { get } from '@ember/helper';\nimport { service } from '@ember/service';\n\nimport type Owner from '@ember/owner';\n\nimport { HdsPaginationDirectionValues } from '../types.ts';\nimport HdsPaginationInfo from '../info/index.gts';\nimport HdsPaginationNavArrow from '../nav/arrow.gts';\nimport HdsPaginationNavNumber from '../nav/number.gts';\nimport HdsPaginationNavEllipsis from '../nav/ellipsis.gts';\nimport HdsPaginationSizeSelector from '../size-selector/index.gts';\n\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\n\nimport type {\n HdsPaginationPage,\n HdsPaginationRoutingProps,\n HdsPaginationElliptizedPageArray,\n HdsPaginationElliptizedPageArrayItem,\n} from '../types.ts';\nimport type { HdsInteractiveSignature } from '../../interactive/index.ts';\n\ninterface ElliptizeProps {\n pages: number[];\n current: number;\n limit?: number;\n}\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationNumberedRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n queryPages?: Record<\n HdsPaginationElliptizedPageArrayItem,\n HdsInteractiveQuery\n >;\n};\n\ntype HdsPaginationQueryFunction = (\n page: number,\n pageSize: number\n) => HdsInteractiveQuery;\n\ninterface HdsPaginationNumberedArgs extends HdsPaginationRoutingProps {\n ariaLabel?: string;\n totalItems: number;\n showLabels?: boolean;\n isTruncated?: boolean;\n currentPage?: number;\n showInfo?: boolean;\n showPageNumbers?: boolean;\n showTotalItems?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: HdsPaginationQueryFunction;\n onPageChange?: (page: number, pageSize: number) => unknown;\n onPageSizeChange?: (pageSize: number) => unknown;\n}\n\ninterface HdsPaginationNumberedArgsControlledBase\n extends HdsPaginationNumberedArgs {\n currentPage: number;\n currentPageSize: number;\n queryFunction: HdsPaginationQueryFunction;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModel\n extends HdsPaginationNumberedArgsControlledBase {\n model: string | number;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModels\n extends HdsPaginationNumberedArgsControlledBase {\n models: Array<string | number>;\n}\ninterface HdsPaginationNumberedArgsControlledWithRoute\n extends HdsPaginationNumberedArgsControlledBase {\n route: string;\n}\n\ntype HdsPaginationNumberedArgsControlled =\n | HdsPaginationNumberedArgsControlledWithModel\n | HdsPaginationNumberedArgsControlledWithModels\n | HdsPaginationNumberedArgsControlledWithRoute;\n\ninterface HdsPaginationNumberedArgsUncontrolled\n extends HdsPaginationNumberedArgs {\n queryFunction?: undefined;\n}\n\nexport interface HdsPaginationNumberedSignature {\n Args:\n | HdsPaginationNumberedArgsControlled\n | HdsPaginationNumberedArgsUncontrolled;\n Element: HTMLDivElement;\n}\n\nconst ELLIPSIS = '…';\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\n\nexport const elliptize = ({\n pages,\n current,\n limit = 7,\n}: ElliptizeProps): HdsPaginationElliptizedPageArray => {\n const length = pages.length;\n\n let result = [];\n let start;\n let end;\n\n if (length <= limit) {\n return pages;\n }\n\n if (current <= length / 2) {\n start = Math.ceil(limit / 2);\n end = limit - start;\n } else {\n end = Math.ceil(limit / 2);\n start = limit - end;\n }\n\n const sliceStart: HdsPaginationElliptizedPageArray = pages.slice(0, start);\n const sliceEnd: HdsPaginationElliptizedPageArray = pages.slice(-end);\n\n if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {\n // \"current\" (and its next sibling) is contained within the \"sliceStart\" block\n sliceEnd.splice(0, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {\n // \"current\" (and its prev sibling) is contained within the \"sliceEnd\" block\n sliceStart.splice(-1, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else {\n // this is a bit more tricky :)\n // we need to calculate how many items there are before/after the current item\n // since both the initial and ending blocks are always 2 items long (number + ellipsis)\n // and there is always the \"current\" item, we can just subtract 5 from the limit\n const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number\n // we slice the array starting at the \"current\" index, minus the delta, minus one because it's an array (zero-based)\n const sliceCurr = pages.slice(current - delta - 1, current + delta);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart.shift() as number,\n ELLIPSIS,\n sliceCurr,\n ELLIPSIS,\n sliceEnd.pop() as number\n );\n }\n\n return result;\n};\n\nexport default class HdsPaginationNumbered extends Component<HdsPaginationNumberedSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n // These two private variables are used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, these variables store the internal state of the component at any moment,\n // and their value is updated internally according to the user's interaction with the component.\n // In the second case, these variables store *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked private _currentPage;\n @tracked private _currentPageSize;\n @tracked private _isControlled;\n\n showInfo = this.args.showInfo ?? true; // if the \"info\" block is visible\n showLabels = this.args.showLabels ?? false; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? true; // if the \"size selector\" block is visible\n showPageNumbers = this.args.showPageNumbers ?? true; // if the \"page numbers\" block is visible\n isTruncated = this.args.isTruncated ?? true; // if the list of \"page numbers\" is truncated\n\n constructor(owner: Owner, args: HdsPaginationNumberedSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates - eg to the \"currentPage\" and \"currentPageSize\"\n // are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this._isControlled = false;\n } else {\n assert(\n '@model, @models, or @route for \"Hds::Pagination::Numbered\" must be provided when using the @queryFunction argument',\n this.args.model !== undefined ||\n this.args.models !== undefined ||\n this.args.route !== undefined\n );\n assert(\n '@queryFunction for \"Hds::Pagination::Numbered\" must be a function',\n typeof queryFunction === 'function'\n );\n assert(\n '@currentPage and @currentPageSize for \"Hds::Pagination::Numbered\" must be provided as numeric arguments when the pagination controls the routing',\n typeof this.args.currentPageSize === 'number' &&\n typeof this.args.currentPage === 'number'\n );\n this._isControlled = true;\n }\n\n assert(\n '@totalItems for \"Hds::Pagination::Numbered\" must be defined as an integer number',\n typeof this.args.totalItems === 'number'\n );\n\n this._currentPage = this.args.currentPage ?? 1;\n // we assert that `this.pageSizes` will always be an array with at least one item\n this._currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n }\n\n get ariaLabel(): string {\n return (\n this.args.ariaLabel ??\n this.hdsIntl.t('hds.components.pagination.numbered.aria-label', {\n default: 'Pagination',\n })\n );\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPage(): number {\n if (this._isControlled) {\n // if the component is controlled, `@currentPage` is asserted to be a number\n return this.args.currentPage as number;\n } else {\n return this._currentPage;\n }\n }\n set currentPage(value) {\n if (this._isControlled) {\n // noop\n } else {\n // if `this._isControlled` is `false`\n this._currentPage = value;\n }\n }\n\n get currentPageSize(): number {\n if (this._isControlled) {\n // if the component is controlled, `@currentPageSize` is asserted to be a number\n return this.args.currentPageSize as number;\n } else {\n return this._currentPageSize as number;\n }\n }\n set currentPageSize(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n // TODO: Add test for this\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `pageSizes argument must be an array with at least one item. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n get itemsRangeStart(): number {\n // Calculate the starting range of items displayed on current page\n // if currentPage = 1st page and # of items per page is 10:\n // ( (1 - 1 = 0) * 10 = 0 ) + 1 = 1\n // if current page = 2nd page:\n // ( (2 - 1 = 1) * 10 = 10 ) + 1 = 11\n return (this.currentPage - 1) * this.currentPageSize + 1;\n }\n\n get itemsRangeEnd(): number {\n // Calculate ending range of items displayed on current page\n // 2 cases: 1) full page of items or 2) last page of items\n if (this.currentPage * this.currentPageSize < this.args.totalItems) {\n // 1) full page of items (pages 1 to page before last):\n return this.itemsRangeStart + this.currentPageSize - 1;\n } else {\n // 2) last page of items:\n return this.args.totalItems;\n }\n }\n\n get pages(): HdsPaginationElliptizedPageArray {\n const pages = [];\n\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(i);\n }\n\n if (this.isTruncated) {\n return elliptize({ pages, current: this.currentPage });\n } else {\n return pages;\n }\n }\n\n get totalPages() {\n return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);\n }\n\n buildQueryParamsObject(\n page: HdsPaginationElliptizedPageArrayItem,\n pageSize: number\n ): HdsInteractiveQuery {\n // `page` may also be ellipsis\n if (this._isControlled && typeof page === 'number') {\n // if the component is controlled, `@queryFunction` is asserted to be a function\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationNumberedRoutingQueryProps {\n const routing: HdsPaginationNumberedRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this._isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n this.currentPage - 1,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n this.currentPage + 1,\n this.currentPageSize\n );\n // IMPORTANT: here we need to use an object and not an array\n // otherwise the {{get object page}} will be shifted by one\n // (the pages are 1-based while the array would be zero-based)\n routing.queryPages = {};\n this.pages.forEach(\n (page) =>\n (routing.queryPages![page] = this.buildQueryParamsObject(\n page,\n this.currentPageSize\n ))\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n get isDisabledPrev() {\n return this.currentPage === 1;\n }\n\n get isDisabledNext() {\n return this.currentPage === this.totalPages;\n }\n\n onPageChange = (page: HdsPaginationPage) => {\n let gotoPageNumber;\n if (page === HdsPaginationDirectionValues.Prev && this.currentPage > 1) {\n gotoPageNumber = this.currentPage - 1;\n } else if (\n page === HdsPaginationDirectionValues.Next &&\n this.currentPage < this.totalPages\n ) {\n gotoPageNumber = this.currentPage + 1;\n } else {\n gotoPageNumber = page;\n }\n\n // we want to invoke the `onPageChange` callback only on actual page change\n if (gotoPageNumber !== this.currentPage) {\n // we have already determined that `gotoPageNumber` is not `prev` or `next`\n this.currentPage = gotoPageNumber as number;\n\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(this.currentPage, this.currentPageSize);\n }\n }\n };\n\n onPageSizeChange = (newPageSize: number) => {\n const { onPageSizeChange } = this.args;\n\n if (!this._isControlled) {\n // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)\n this.currentPage = 1;\n this.currentPageSize = newPageSize;\n }\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n };\n\n elliptizedPageArrayItemAsNumber = (\n item: HdsPaginationElliptizedPageArrayItem\n ): number => {\n if (typeof item === 'number') {\n return item;\n } else {\n throw new Error('Expected a number, but got an ellipsis');\n }\n };\n\n getPageNumberQuery = (page: HdsPaginationElliptizedPageArrayItem) => {\n return this.routing.queryPages![this.elliptizedPageArrayItemAsNumber(page)];\n };\n\n <template>\n <div class=\"hds-pagination\" ...attributes>\n {{#if this.showInfo}}\n <HdsPaginationInfo\n @itemsRangeStart={{this.itemsRangeStart}}\n @itemsRangeEnd={{this.itemsRangeEnd}}\n @totalItems={{@totalItems}}\n @showTotalItems={{@showTotalItems}}\n />\n {{/if}}\n\n <nav class=\"hds-pagination-nav\" aria-label={{this.ariaLabel}}>\n <HdsPaginationNavArrow\n @direction=\"prev\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryPrev}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledPrev}}\n />\n {{#if this.showPageNumbers}}\n <ul class=\"hds-pagination-nav__page-list\">\n {{#each this.pages as |page|}}\n <li class=\"hds-pagination-nav__page-item\">\n {{#if (eq page \"…\")}}\n <HdsPaginationNavEllipsis />\n {{else}}\n <HdsPaginationNavNumber\n @page={{this.elliptizedPageArrayItemAsNumber page}}\n @route={{this.routing.route}}\n @query={{get this.routing.queryPages page}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @isSelected={{if (eq page this.currentPage) true false}}\n />\n {{/if}}\n </li>\n {{/each}}\n </ul>\n {{/if}}\n <HdsPaginationNavArrow\n @direction=\"next\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryNext}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledNext}}\n />\n </nav>\n\n {{#if this.showSizeSelector}}\n <HdsPaginationSizeSelector\n @pageSizes={{this.pageSizes}}\n @label={{@sizeSelectorLabel}}\n @selectedSize={{this.currentPageSize}}\n @onChange={{this.onPageSizeChange}}\n />\n {{/if}}\n </div>\n </template>\n}\n"],"names":["ELLIPSIS","DEFAULT_PAGE_SIZES","elliptize","pages","current","limit","length","result","start","end","Math","ceil","sliceStart","slice","sliceEnd","includes","splice","concat","delta","sliceCurr","shift","pop","HdsPaginationNumbered","Component","g","prototype","service","i","tracked","showInfo","args","showLabels","showSizeSelector","showPageNumbers","isTruncated","constructor","owner","queryFunction","undefined","_isControlled","assert","model","models","route","currentPageSize","currentPage","totalItems","_currentPage","_currentPageSize","pageSizes","ariaLabel","hdsIntl","t","default","value","Array","isArray","itemsRangeStart","itemsRangeEnd","totalPages","push","max","buildQueryParamsObject","page","pageSize","routing","replace","queryPrev","queryNext","queryPages","forEach","isDisabledPrev","isDisabledNext","onPageChange","gotoPageNumber","HdsPaginationDirectionValues","Prev","Next","onPageSizeChange","newPageSize","elliptizedPageArrayItemAsNumber","item","Error","getPageNumberQuery","setComponentTemplate","precompileTemplate","strictMode","scope","HdsPaginationInfo","HdsPaginationNavArrow","eq","HdsPaginationNavEllipsis","HdsPaginationNavNumber","get","HdsPaginationSizeSelector"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/numbered/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { eq } from 'ember-truth-helpers';\nimport { get } from '@ember/helper';\nimport { service } from '@ember/service';\n\nimport type Owner from '@ember/owner';\n\nimport { HdsPaginationDirectionValues } from '../types.ts';\nimport HdsPaginationInfo from '../info/index.gts';\nimport HdsPaginationNavArrow from '../nav/arrow.gts';\nimport HdsPaginationNavNumber from '../nav/number.gts';\nimport HdsPaginationNavEllipsis from '../nav/ellipsis.gts';\nimport HdsPaginationSizeSelector from '../size-selector/index.gts';\n\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\n\nimport type {\n HdsPaginationPage,\n HdsPaginationRoutingProps,\n HdsPaginationElliptizedPageArray,\n HdsPaginationElliptizedPageArrayItem,\n} from '../types.ts';\nimport type { HdsInteractiveSignature } from '../../interactive/index.ts';\n\ninterface ElliptizeProps {\n pages: number[];\n current: number;\n limit?: number;\n}\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationNumberedRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n queryPages?: Record<\n HdsPaginationElliptizedPageArrayItem,\n HdsInteractiveQuery\n >;\n};\n\ntype HdsPaginationQueryFunction = (\n page: number,\n pageSize: number\n) => HdsInteractiveQuery;\n\ninterface HdsPaginationNumberedArgs extends HdsPaginationRoutingProps {\n ariaLabel?: string;\n totalItems: number;\n showLabels?: boolean;\n isTruncated?: boolean;\n currentPage?: number;\n showInfo?: boolean;\n showPageNumbers?: boolean;\n showTotalItems?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: HdsPaginationQueryFunction;\n onPageChange?: (page: number, pageSize: number) => unknown;\n onPageSizeChange?: (pageSize: number) => unknown;\n}\n\ninterface HdsPaginationNumberedArgsControlledBase\n extends HdsPaginationNumberedArgs {\n currentPage: number;\n currentPageSize: number;\n queryFunction: HdsPaginationQueryFunction;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModel\n extends HdsPaginationNumberedArgsControlledBase {\n model: string | number;\n}\n\ninterface HdsPaginationNumberedArgsControlledWithModels\n extends HdsPaginationNumberedArgsControlledBase {\n models: Array<string | number>;\n}\ninterface HdsPaginationNumberedArgsControlledWithRoute\n extends HdsPaginationNumberedArgsControlledBase {\n route: string;\n}\n\ntype HdsPaginationNumberedArgsControlled =\n | HdsPaginationNumberedArgsControlledWithModel\n | HdsPaginationNumberedArgsControlledWithModels\n | HdsPaginationNumberedArgsControlledWithRoute;\n\ninterface HdsPaginationNumberedArgsUncontrolled\n extends HdsPaginationNumberedArgs {\n queryFunction?: undefined;\n}\n\nexport interface HdsPaginationNumberedSignature {\n Args:\n | HdsPaginationNumberedArgsControlled\n | HdsPaginationNumberedArgsUncontrolled;\n Element: HTMLDivElement;\n}\n\nconst ELLIPSIS = '…';\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\n\nexport const elliptize = ({\n pages,\n current,\n limit = 7,\n}: ElliptizeProps): HdsPaginationElliptizedPageArray => {\n const length = pages.length;\n\n let result = [];\n let start;\n let end;\n\n if (length <= limit) {\n return pages;\n }\n\n if (current <= length / 2) {\n start = Math.ceil(limit / 2);\n end = limit - start;\n } else {\n end = Math.ceil(limit / 2);\n start = limit - end;\n }\n\n const sliceStart: HdsPaginationElliptizedPageArray = pages.slice(0, start);\n const sliceEnd: HdsPaginationElliptizedPageArray = pages.slice(-end);\n\n if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {\n // \"current\" (and its next sibling) is contained within the \"sliceStart\" block\n sliceEnd.splice(0, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {\n // \"current\" (and its prev sibling) is contained within the \"sliceEnd\" block\n sliceStart.splice(-1, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else {\n // this is a bit more tricky :)\n // we need to calculate how many items there are before/after the current item\n // since both the initial and ending blocks are always 2 items long (number + ellipsis)\n // and there is always the \"current\" item, we can just subtract 5 from the limit\n const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number\n // we slice the array starting at the \"current\" index, minus the delta, minus one because it's an array (zero-based)\n const sliceCurr = pages.slice(current - delta - 1, current + delta);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart.shift() as number,\n ELLIPSIS,\n sliceCurr,\n ELLIPSIS,\n sliceEnd.pop() as number\n );\n }\n\n return result;\n};\n\nexport default class HdsPaginationNumbered extends Component<HdsPaginationNumberedSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n // These two private variables are used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, these variables store the internal state of the component at any moment,\n // and their value is updated internally according to the user's interaction with the component.\n // In the second case, these variables store *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked private _currentPage;\n @tracked private _currentPageSize;\n @tracked private _isControlled;\n\n showInfo = this.args.showInfo ?? true; // if the \"info\" block is visible\n showLabels = this.args.showLabels ?? false; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? true; // if the \"size selector\" block is visible\n showPageNumbers = this.args.showPageNumbers ?? true; // if the \"page numbers\" block is visible\n isTruncated = this.args.isTruncated ?? true; // if the list of \"page numbers\" is truncated\n\n constructor(owner: Owner, args: HdsPaginationNumberedSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates - eg to the \"currentPage\" and \"currentPageSize\"\n // are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this._isControlled = false;\n } else {\n assert(\n '@model, @models, or @route for \"Hds::Pagination::Numbered\" must be provided when using the @queryFunction argument',\n this.args.model !== undefined ||\n this.args.models !== undefined ||\n this.args.route !== undefined\n );\n assert(\n '@queryFunction for \"Hds::Pagination::Numbered\" must be a function',\n typeof queryFunction === 'function'\n );\n assert(\n '@currentPage and @currentPageSize for \"Hds::Pagination::Numbered\" must be provided as numeric arguments when the pagination controls the routing',\n typeof this.args.currentPageSize === 'number' &&\n typeof this.args.currentPage === 'number'\n );\n this._isControlled = true;\n }\n\n assert(\n '@totalItems for \"Hds::Pagination::Numbered\" must be defined as an integer number',\n typeof this.args.totalItems === 'number'\n );\n\n this._currentPage = this.args.currentPage ?? 1;\n // we assert that `this.pageSizes` will always be an array with at least one item\n this._currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n }\n\n get ariaLabel(): string {\n return (\n this.args.ariaLabel ??\n this.hdsIntl.t('hds.components.pagination.numbered.aria-label', {\n default: 'Pagination',\n })\n );\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPage(): number {\n if (this._isControlled) {\n // if the component is controlled, `@currentPage` is asserted to be a number\n return this.args.currentPage as number;\n } else {\n return this._currentPage;\n }\n }\n set currentPage(value) {\n if (this._isControlled) {\n // noop\n } else {\n // if `this._isControlled` is `false`\n this._currentPage = value;\n }\n }\n\n get currentPageSize(): number {\n if (this._isControlled) {\n // if the component is controlled, `@currentPageSize` is asserted to be a number\n return this.args.currentPageSize as number;\n } else {\n return this._currentPageSize as number;\n }\n }\n set currentPageSize(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n // TODO: Add test for this\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `pageSizes argument must be an array with at least one item. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n get itemsRangeStart(): number {\n // Calculate the starting range of items displayed on current page\n // if currentPage = 1st page and # of items per page is 10:\n // ( (1 - 1 = 0) * 10 = 0 ) + 1 = 1\n // if current page = 2nd page:\n // ( (2 - 1 = 1) * 10 = 10 ) + 1 = 11\n return (this.currentPage - 1) * this.currentPageSize + 1;\n }\n\n get itemsRangeEnd(): number {\n // Calculate ending range of items displayed on current page\n // 2 cases: 1) full page of items or 2) last page of items\n if (this.currentPage * this.currentPageSize < this.args.totalItems) {\n // 1) full page of items (pages 1 to page before last):\n return this.itemsRangeStart + this.currentPageSize - 1;\n } else {\n // 2) last page of items:\n return this.args.totalItems;\n }\n }\n\n get pages(): HdsPaginationElliptizedPageArray {\n const pages = [];\n\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(i);\n }\n\n if (this.isTruncated) {\n return elliptize({ pages, current: this.currentPage });\n } else {\n return pages;\n }\n }\n\n get totalPages() {\n return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);\n }\n\n buildQueryParamsObject(\n page: HdsPaginationElliptizedPageArrayItem,\n pageSize: number\n ): HdsInteractiveQuery {\n // `page` may also be ellipsis\n if (this._isControlled && typeof page === 'number') {\n // if the component is controlled, `@queryFunction` is asserted to be a function\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationNumberedRoutingQueryProps {\n const routing: HdsPaginationNumberedRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this._isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n this.currentPage - 1,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n this.currentPage + 1,\n this.currentPageSize\n );\n // IMPORTANT: here we need to use an object and not an array\n // otherwise the {{get object page}} will be shifted by one\n // (the pages are 1-based while the array would be zero-based)\n routing.queryPages = {};\n this.pages.forEach(\n (page) =>\n (routing.queryPages![page] = this.buildQueryParamsObject(\n page,\n this.currentPageSize\n ))\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n get isDisabledPrev() {\n return this.currentPage === 1;\n }\n\n get isDisabledNext() {\n return this.currentPage === this.totalPages;\n }\n\n onPageChange = (page: HdsPaginationPage) => {\n let gotoPageNumber;\n if (page === HdsPaginationDirectionValues.Prev && this.currentPage > 1) {\n gotoPageNumber = this.currentPage - 1;\n } else if (\n page === HdsPaginationDirectionValues.Next &&\n this.currentPage < this.totalPages\n ) {\n gotoPageNumber = this.currentPage + 1;\n } else {\n gotoPageNumber = page;\n }\n\n // we want to invoke the `onPageChange` callback only on actual page change\n if (gotoPageNumber !== this.currentPage) {\n // we have already determined that `gotoPageNumber` is not `prev` or `next`\n this.currentPage = gotoPageNumber as number;\n\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(this.currentPage, this.currentPageSize);\n }\n }\n };\n\n onPageSizeChange = (newPageSize: number) => {\n const { onPageSizeChange } = this.args;\n\n if (!this._isControlled) {\n // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)\n this.currentPage = 1;\n this.currentPageSize = newPageSize;\n }\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n };\n\n elliptizedPageArrayItemAsNumber = (\n item: HdsPaginationElliptizedPageArrayItem\n ): number => {\n if (typeof item === 'number') {\n return item;\n } else {\n throw new Error('Expected a number, but got an ellipsis');\n }\n };\n\n getPageNumberQuery = (page: HdsPaginationElliptizedPageArrayItem) => {\n return this.routing.queryPages![this.elliptizedPageArrayItemAsNumber(page)];\n };\n\n <template>\n <div class=\"hds-pagination\" ...attributes>\n {{#if this.showInfo}}\n <HdsPaginationInfo\n @itemsRangeStart={{this.itemsRangeStart}}\n @itemsRangeEnd={{this.itemsRangeEnd}}\n @totalItems={{@totalItems}}\n @showTotalItems={{@showTotalItems}}\n />\n {{/if}}\n\n <nav class=\"hds-pagination-nav\" aria-label={{this.ariaLabel}}>\n <HdsPaginationNavArrow\n @direction=\"prev\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryPrev}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledPrev}}\n />\n {{#if this.showPageNumbers}}\n <ul class=\"hds-pagination-nav__page-list\">\n {{#each this.pages as |page|}}\n <li class=\"hds-pagination-nav__page-item\">\n {{#if (eq page \"…\")}}\n <HdsPaginationNavEllipsis />\n {{else}}\n <HdsPaginationNavNumber\n @page={{this.elliptizedPageArrayItemAsNumber page}}\n @route={{this.routing.route}}\n @query={{get this.routing.queryPages page}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @isSelected={{if (eq page this.currentPage) true false}}\n />\n {{/if}}\n </li>\n {{/each}}\n </ul>\n {{/if}}\n <HdsPaginationNavArrow\n @direction=\"next\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryNext}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledNext}}\n />\n </nav>\n\n {{#if this.showSizeSelector}}\n <HdsPaginationSizeSelector\n @pageSizes={{this.pageSizes}}\n @label={{@sizeSelectorLabel}}\n @selectedSize={{this.currentPageSize}}\n @onChange={{this.onPageSizeChange}}\n />\n {{/if}}\n </div>\n </template>\n}\n"],"names":["ELLIPSIS","DEFAULT_PAGE_SIZES","elliptize","pages","current","limit","length","result","start","end","Math","ceil","sliceStart","slice","sliceEnd","includes","splice","concat","delta","sliceCurr","shift","pop","HdsPaginationNumbered","Component","g","prototype","service","i","tracked","showInfo","args","showLabels","showSizeSelector","showPageNumbers","isTruncated","constructor","owner","queryFunction","undefined","_isControlled","assert","model","models","route","currentPageSize","currentPage","totalItems","_currentPage","_currentPageSize","pageSizes","ariaLabel","hdsIntl","t","default","value","Array","isArray","itemsRangeStart","itemsRangeEnd","totalPages","push","max","buildQueryParamsObject","page","pageSize","routing","replace","queryPrev","queryNext","queryPages","forEach","isDisabledPrev","isDisabledNext","onPageChange","gotoPageNumber","HdsPaginationDirectionValues","Prev","Next","onPageSizeChange","newPageSize","elliptizedPageArrayItemAsNumber","item","Error","getPageNumberQuery","setComponentTemplate","precompileTemplate","strictMode","scope","HdsPaginationInfo","HdsPaginationNavArrow","eq","HdsPaginationNavEllipsis","HdsPaginationNavNumber","get","HdsPaginationSizeSelector"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Copyright IBM Corp. 2021,
|
|
11
|
+
* Copyright IBM Corp. 2021, 2026
|
|
12
12
|
* SPDX-License-Identifier: MPL-2.0
|
|
13
13
|
*/
|
|
14
14
|
class HdsPaginationSizeSelector extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/size-selector/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/size-selector/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\nimport { eq } from 'ember-truth-helpers';\n\nimport HdsFormSelectBase from '../../form/select/base.gts';\n\nimport type { HdsFormSelectBaseSignature } from '../../form/select/base.gts';\n\nexport interface HdsPaginationSizeSelectorSignature {\n Args: {\n pageSizes: number[];\n label?: string;\n selectedSize?: number;\n onChange?: (size: number) => void;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsPaginationSizeSelector extends Component<HdsPaginationSizeSelectorSignature> {\n private _sizeSelectorId = 'pagination-size-selector-' + guidFor(this);\n\n get pageSizes(): number[] {\n const { pageSizes } = this.args;\n\n assert(\n '@pageSizes for \"Pagination::SizeSelector\" must be defined',\n pageSizes !== undefined\n );\n\n return pageSizes;\n }\n\n get selectedSize(): number | undefined {\n const { selectedSize } = this.args;\n\n assert(\n `@selectedSize for \"Pagination::SizeSelector\" must one of the @pageSizes provided (${this.pageSizes.join(\n ','\n )}), received ${selectedSize}`,\n selectedSize === undefined || this.pageSizes.includes(selectedSize)\n );\n\n return selectedSize;\n }\n\n get label(): string {\n const { label = 'Items per page' } = this.args;\n\n return label;\n }\n\n onChange = (e: Event): void => {\n const { onChange } = this.args;\n\n const target = e.target as HdsFormSelectBaseSignature['Element'];\n\n if (typeof onChange === 'function') {\n onChange(parseInt(target.value));\n }\n };\n\n <template>\n <div class=\"hds-pagination-size-selector\" ...attributes>\n <label\n class=\"hds-typography-body-100 hds-font-weight-medium\"\n for={{this._sizeSelectorId}}\n >\n {{this.label}}\n </label>\n <HdsFormSelectBase\n id={{this._sizeSelectorId}}\n {{on \"change\" this.onChange}}\n as |S|\n >\n <S.Options>\n {{#each this.pageSizes as |size|}}\n <option\n value={{size}}\n selected={{if (eq size this.selectedSize) true null}}\n >{{size}}</option>\n {{/each}}\n </S.Options>\n </HdsFormSelectBase>\n </div>\n </template>\n}\n"],"names":["HdsPaginationSizeSelector","Component","_sizeSelectorId","guidFor","pageSizes","args","assert","undefined","selectedSize","join","includes","label","onChange","e","target","parseInt","value","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormSelectBase","on","eq"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAsBc,MAAMA,kCAAkCC,SAAA,CAAU;AACvDC,EAAAA,eAAA,GAAkB,2BAAA,GAA8BC,OAAA,CAAQ,IAAI,CAAA;EAEpE,IAAIC,SAAAA,GAAsB;IACxB,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACC,IAAI;AAE/BC,IAAAA,MAAA,CACE,6DACAF,SAAA,KAAcG,SAAA,CAAA;AAGhB,IAAA,OAAOH,SAAA;AACT,EAAA;EAEA,IAAII,YAAAA,GAAmC;IACrC,MAAM;AAAEA,MAAAA;KAAc,GAAG,IAAI,CAACH,IAAI;IAElCC,MAAA,CACE,CAAA,kFAAA,EAAqF,IAAI,CAACF,SAAS,CAACK,IAAI,CACtG,GAAA,CAAA,CAAA,YAAA,EACcD,YAAA,CAAA,CAAc,EAC9BA,YAAA,KAAiBD,SAAA,IAAa,IAAI,CAACH,SAAS,CAACM,QAAQ,CAACF,YAAA,CAAA,CAAA;AAGxD,IAAA,OAAOA,YAAA;AACT,EAAA;EAEA,IAAIG,KAAAA,GAAgB;IAClB,MAAM;AAAEA,MAAAA,KAAA,GAAQ;KAAkB,GAAG,IAAI,CAACN,IAAI;AAE9C,IAAA,OAAOM,KAAA;AACT,EAAA;EAEAC,QAAA,GAAYC,CAAG,IAAY;IACzB,MAAM;AAAED,MAAAA;KAAU,GAAG,IAAI,CAACP,IAAI;AAE9B,IAAA,MAAMS,MAAA,GAASD,CAAA,CAAEC,MAAqC;AAEtD,IAAA,IAAI,OAAOF,aAAa,UAAA,EAAY;AAClCA,MAAAA,QAAA,CAASG,QAAA,CAASD,OAAOE,KAAK,CAAA,CAAA;AAChC,IAAA;EACF,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,6fAAA,EAuBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,iBAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/pagination/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/pagination/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsInteractiveSignature } from '../interactive/index.gts';\n\ntype HdsIntlLike = {\n t(key: string, options: { default: string; [key: string]: unknown }): string;\n};\n\nexport enum HdsPaginationDirectionValues {\n Next = 'next',\n Prev = 'prev',\n}\n\nexport type HdsPaginationDirections = `${HdsPaginationDirectionValues}`;\n\nexport type HdsPaginationPage = HdsPaginationDirections | number;\n\n// Aria labels for nav arrow buttons\nexport const HDS_PAGINATION_DIRECTION_ARIA_LABEL_KEYS = {\n [HdsPaginationDirectionValues.Prev]:\n 'hds.components.pagination.nav.arrow.aria-label.direction.prev',\n [HdsPaginationDirectionValues.Next]:\n 'hds.components.pagination.nav.arrow.aria-label.direction.next',\n} as const;\n\nexport function getHdsPaginationDirectionAriaLabel(\n direction: HdsPaginationDirections,\n intl: HdsIntlLike\n): string {\n const key =\n HDS_PAGINATION_DIRECTION_ARIA_LABEL_KEYS[\n direction as HdsPaginationDirectionValues\n ];\n const defaults = {\n [HdsPaginationDirectionValues.Prev]: 'Previous page',\n [HdsPaginationDirectionValues.Next]: 'Next page',\n } as const;\n\n return intl.t(key, {\n default: defaults[direction as HdsPaginationDirectionValues],\n });\n}\n\n// Display \"label\" text for nav arrow buttons\nexport const HDS_PAGINATION_DIRECTION_LABEL_KEYS = {\n [HdsPaginationDirectionValues.Prev]:\n 'hds.components.pagination.nav.arrow.label.direction.prev',\n [HdsPaginationDirectionValues.Next]:\n 'hds.components.pagination.nav.arrow.label.direction.next',\n} as const;\n\nexport function getHdsPaginationDirectionLabel(\n direction: HdsPaginationDirections,\n intl: HdsIntlLike\n): string {\n const key =\n HDS_PAGINATION_DIRECTION_LABEL_KEYS[\n direction as HdsPaginationDirectionValues\n ];\n const defaults = {\n [HdsPaginationDirectionValues.Prev]: 'Previous',\n [HdsPaginationDirectionValues.Next]: 'Next',\n } as const;\n\n return intl.t(key, {\n default: defaults[direction as HdsPaginationDirectionValues],\n });\n}\n\nexport type HdsPaginationElliptizedPageArrayItem = string | number;\n\nexport type HdsPaginationElliptizedPageArray =\n HdsPaginationElliptizedPageArrayItem[];\n\nexport type HdsPaginationRoutingProps = Pick<\n HdsInteractiveSignature['Args'],\n 'route' | 'model' | 'models' | 'replace'\n>;\n"],"names":["HdsPaginationDirectionValues","HDS_PAGINATION_DIRECTION_ARIA_LABEL_KEYS","Prev","Next","getHdsPaginationDirectionAriaLabel","direction","intl","key","defaults","t","default","HDS_PAGINATION_DIRECTION_LABEL_KEYS","getHdsPaginationDirectionLabel"],"mappings":"AAAA;AACA;AACA;AACA;;AAQA,IAAYA,4BAA4B,0BAA5BA,4BAA4B,EAAA;EAA5BA,4BAA4B,CAAA,MAAA,CAAA,GAAA,MAAA;EAA5BA,4BAA4B,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAA5BA,4BAA4B;AAAA,CAAA,CAAA,EAAA;AASxC;AACO,MAAMC,wCAAwC,GAAG;AACtD,EAAA,CAACD,4BAA4B,CAACE,IAAI,GAChC,+DAA+D;EACjE,CAACF,4BAA4B,CAACG,IAAI,GAChC;AACJ;AAEO,SAASC,kCAAkCA,CAChDC,SAAkC,EAClCC,IAAiB,EACT;AACR,EAAA,MAAMC,GAAG,GACPN,wCAAwC,CACtCI,SAAS,CACV;AACH,EAAA,MAAMG,QAAQ,GAAG;AACf,IAAA,CAACR,4BAA4B,CAACE,IAAI,GAAG,eAAe;IACpD,CAACF,4BAA4B,CAACG,IAAI,GAAG;GAC7B;AAEV,EAAA,OAAOG,IAAI,CAACG,CAAC,CAACF,GAAG,EAAE;IACjBG,OAAO,EAAEF,QAAQ,CAACH,SAAS;AAC7B,GAAC,CAAC;AACJ;;AAEA;AACO,MAAMM,mCAAmC,GAAG;AACjD,EAAA,CAACX,4BAA4B,CAACE,IAAI,GAChC,0DAA0D;EAC5D,CAACF,4BAA4B,CAACG,IAAI,GAChC;AACJ;AAEO,SAASS,8BAA8BA,CAC5CP,SAAkC,EAClCC,IAAiB,EACT;AACR,EAAA,MAAMC,GAAG,GACPI,mCAAmC,CACjCN,SAAS,CACV;AACH,EAAA,MAAMG,QAAQ,GAAG;AACf,IAAA,CAACR,4BAA4B,CAACE,IAAI,GAAG,UAAU;IAC/C,CAACF,4BAA4B,CAACG,IAAI,GAAG;GAC7B;AAEV,EAAA,OAAOG,IAAI,CAACG,CAAC,CAACF,GAAG,EAAE;IACjBG,OAAO,EAAEF,QAAQ,CAACH,SAAS;AAC7B,GAAC,CAAC;AACJ;;;;"}
|
|
@@ -12,7 +12,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
12
12
|
import { g, i } from 'decorator-transforms/runtime';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Copyright IBM Corp. 2021,
|
|
15
|
+
* Copyright IBM Corp. 2021, 2026
|
|
16
16
|
* SPDX-License-Identifier: MPL-2.0
|
|
17
17
|
*/
|
|
18
18
|
class HdsPopoverPrimitive extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/popover-primitive/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert, warn } from '@ember/debug';\nimport { next } from '@ember/runloop';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n\nimport type { ModifierLike } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport registerEvent from '../../../modifiers/hds-register-event.ts';\nimport anchoredPositionModifier from '../../../modifiers/hds-anchored-position.ts';\n\nimport type { HdsAnchoredPositionOptions } from '../../../modifiers/hds-anchored-position.ts';\n\nexport interface HdsPopoverPrimitiveSignature {\n Args: {\n isOpen?: boolean;\n enableSoftEvents?: boolean;\n enableClickEvents?: boolean;\n boundary?: HdsAnchoredPositionOptions['boundary'];\n onOpen?: () => void;\n onClose?: () => void;\n onFocusOut?: () => void;\n };\n Blocks: {\n default: [\n {\n setupPrimitiveContainer: ModifierLike<SetupPrimitiveContainerModifier>;\n setupPrimitiveToggle: ModifierLike<SetupPrimitiveToggleModifier>;\n setupPrimitivePopover: ModifierLike<SetupPrimitivePopoverModifier>;\n toggleElement?: HTMLButtonElement;\n popoverElement?: HTMLElement;\n isOpen: boolean;\n showPopover: () => void;\n hidePopover: (event?: Event) => void;\n togglePopover: () => void;\n boundary?: HdsAnchoredPositionOptions['boundary'];\n },\n ];\n };\n}\n\ninterface SetupPrimitiveContainerModifier {\n Element: HTMLElement;\n}\n\nexport interface SetupPrimitiveToggleModifier {\n Element: HTMLButtonElement;\n}\n\nexport interface SetupPrimitivePopoverModifier {\n Element: HTMLElement;\n Args: {\n Positional: [];\n Named: { anchoredPositionOptions?: HdsAnchoredPositionOptions };\n };\n}\n\nexport default class HdsPopoverPrimitive extends Component<HdsPopoverPrimitiveSignature> {\n @tracked private _isOpen;\n @tracked private _isClosing = false;\n @tracked private _anchoredPositionOptions?: HdsAnchoredPositionOptions;\n private _containerElement?: HTMLElement;\n private _toggleElement?: HTMLButtonElement;\n private _popoverElement?: HTMLElement;\n // this will enable \"soft\" events for the toggle (\"hover\" and \"focus\")\n enableSoftEvents = this.args.enableSoftEvents ?? false;\n // this will enable \"click\" events for the toggle\n enableClickEvents = this.args.enableClickEvents ?? false;\n private _timer?: ReturnType<typeof setTimeout> | null;\n\n constructor(owner: Owner, args: HdsPopoverPrimitiveSignature['Args']) {\n super(owner, args);\n this._isOpen = this.args.isOpen ?? false;\n }\n\n setupPrimitiveContainer = modifier<SetupPrimitiveContainerModifier>(\n (element: HTMLElement): void => {\n this._containerElement = element;\n\n // we register the \"soft\" events\n if (this.enableSoftEvents) {\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, [\n 'mouseenter',\n\n this.onMouseEnter,\n ]);\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, [\n 'mouseleave',\n\n this.onMouseLeave,\n ]);\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, ['focusin', this.onFocusIn]);\n }\n // we always want the focusOut event\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, ['focusout', this.onFocusOut]);\n }\n );\n\n setupPrimitiveToggle = modifier<SetupPrimitiveToggleModifier>(\n (element: HTMLButtonElement) => {\n this._toggleElement = element;\n\n assert(\n `The toggle element of \"Hds::PopoverPrimitive\" must be a <button>; element received: <${element.tagName.toLowerCase()}>`,\n element instanceof HTMLButtonElement\n );\n\n this._linkToggleAndPopover();\n\n // Return a teardown function to clean up the modifier's side effects.\n // This is a safeguard against bugs where this element might be\n // cached and re-parented in the DOM, rather than being fully destroyed.\n return () => {\n element.removeAttribute('aria-controls');\n element.removeAttribute('popovertarget');\n };\n }\n );\n\n setupPrimitivePopover = modifier(\n (\n element: HTMLElement,\n _positional,\n named: { anchoredPositionOptions?: HdsAnchoredPositionOptions }\n ): void => {\n this._popoverElement = element;\n\n // We need to create a popoverId in order to connect the popover and the toggle with aria-controls\n // and an id is needed to implement `onclick` event listeners\n if (!this._popoverElement.id) {\n this._popoverElement.id = guidFor(this);\n }\n\n // this should be an extremely edge case, but in the case the popover needs to be initially forced to be open\n // we need to use the \"manual\" state to support the case of multiple \"menus\" opened at the same time\n // IMPORTANT! if a \"popover\" is set to \"open\" with a \"manual\" state, then it can't be closed via `esc` and `click outside`\n if (this.args.isOpen) {\n this._popoverElement.popover = 'manual';\n this._popoverElement.showPopover();\n } else {\n this._popoverElement.popover = 'auto';\n }\n\n // Register \"onBeforeToggle\" + \"onToggle\" callback functions to be called when a native 'toggle' event is dispatched\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._popoverElement, [\n 'beforetoggle',\n this.onBeforeTogglePopover,\n ]);\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._popoverElement, ['toggle', this.onTogglePopover]);\n\n // we need to spread the argument because if it's set via `{{ hash … }}` Ember complains when we overwrite one of its values\n if (named.anchoredPositionOptions) {\n this._anchoredPositionOptions = {\n ...named.anchoredPositionOptions,\n };\n }\n\n this._linkToggleAndPopover();\n }\n );\n\n // Apply the `hds-anchored-position` modifier to the \"popover\" element\n // (notice: this function runs the first time when the element the modifier was applied to is inserted into the DOM, and it autotracks while running.\n // Any tracked values that it accesses will be tracked, including the arguments it receives, and if any of them changes, the function will run again)\n // This modifiers uses the Floating UI library to provide:\n // - positioning of the \"popover\" in relation to the \"toggle\"\n // - collision detection (optional)\n private _applyAnchoredPositionModifier(): void {\n if (\n this._toggleElement !== undefined &&\n this._popoverElement !== undefined\n ) {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n // @ts-expect-error: known issue with type of invocation\n anchoredPositionModifier(\n this._popoverElement, // element the modifier is attached to\n [this._toggleElement], // positional arguments\n this._anchoredPositionOptions // named arguments\n );\n });\n }\n }\n\n private _linkToggleAndPopover(): void {\n if (\n this._toggleElement === undefined ||\n this._popoverElement === undefined\n ) {\n return;\n }\n\n const popoverId = this._popoverElement.id;\n\n this._toggleElement.setAttribute('aria-controls', popoverId);\n\n if (this.enableClickEvents) {\n this._toggleElement.setAttribute('popovertarget', popoverId);\n } else {\n this._toggleElement.removeAttribute('popovertarget');\n }\n\n this._applyAnchoredPositionModifier();\n }\n\n showPopover = (): void => {\n try {\n if (this._popoverElement) {\n this._popoverElement.showPopover();\n }\n } catch (error) {\n warn(\n `The invocation of \\`showPopover\\` for the popover element caused an unexpected error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-popover.show-popover-action.invocation-failed',\n }\n );\n }\n };\n\n // the event may be passed by the `on` modifier, so we need to keep it as an argument here\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n hidePopover = (_event?: Event): void => {\n try {\n if (this._popoverElement) {\n this._popoverElement.hidePopover();\n }\n } catch (error) {\n warn(\n `The invocation of \\`hidePopover\\` for the popover element caused an unexpected error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-popover.hide-popover-action.invocation-failed',\n }\n );\n }\n };\n\n togglePopover = (): void => {\n try {\n if (this._popoverElement) {\n this._popoverElement.togglePopover();\n }\n } catch (error) {\n warn(\n `The invocation of \\`togglePopover\\` for the popover element caused an unexpected error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-popover.toggle-popover-action.invocation-failed',\n }\n );\n }\n };\n\n // fired just _before_ the \"popover\" is shown or hidden\n onBeforeTogglePopover = (event: ToggleEvent): void => {\n if (event.newState === 'closed') {\n // we need this flag to check if it's in the \"closing\" process,\n // because the browser automatically returns the focus to the \"trigger\" button\n // and this would re-open immediately the popover because of the `focusin` event\n this._isClosing = true;\n }\n };\n\n // fired just _after_ the \"popover\" is shown or hidden\n onTogglePopover = (event: ToggleEvent): void => {\n if (event.newState === 'open') {\n this._isOpen = true;\n\n // we call the \"onOpen\" callback if it exists (and is a function)\n const { onOpen } = this.args;\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else {\n this._isOpen = false;\n\n // reset the \"isClosing\" flag (the `toggle` event is fired _after_ the popover is closed)\n this._isClosing = false;\n\n // if the popover was initially forced to be open (using the \"manual\" state) then revert its status to `auto` once the user interacts with it\n if (this.args.isOpen) {\n if (this._popoverElement) {\n this._popoverElement.popover = 'auto';\n }\n }\n\n // we call the \"onClose\" callback if it exists (and is a function)\n const { onClose } = this.args;\n if (typeof onClose === 'function') {\n onClose();\n }\n }\n };\n\n onMouseEnter = (): void => {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n this.showPopover();\n };\n\n onFocusIn = (): void => {\n // don't re-open the popover if the focus is returned because the closing\n if (!this._isClosing) {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n this.showPopover();\n }\n };\n\n onMouseLeave = (): void => {\n this._timer = setTimeout((): void => this.hidePopover(), 500);\n };\n\n onFocusOut = (event: FocusEvent): void => {\n if (this._containerElement) {\n let isFocusStillInside = false;\n if (\n event.relatedTarget &&\n // if the related target is not part of the disclosed content we close the disclosed container\n this._containerElement.contains(event.relatedTarget as Node)\n ) {\n isFocusStillInside = true;\n } else if (\n document.activeElement &&\n // due to inconsistent implementation of relatedTarget across browsers we use the activeElement as a fallback\n this._containerElement.contains(document.activeElement)\n ) {\n isFocusStillInside = true;\n }\n // if the target receiving the focus is _not_ part of the disclosed content we close the disclosed container\n if (!isFocusStillInside) {\n const { onFocusOut } = this.args;\n if (!event.relatedTarget && typeof onFocusOut === 'function') {\n onFocusOut();\n } else {\n this.hidePopover();\n }\n }\n }\n };\n\n <template>\n {{yield\n (hash\n setupPrimitiveContainer=this.setupPrimitiveContainer\n setupPrimitiveToggle=this.setupPrimitiveToggle\n setupPrimitivePopover=this.setupPrimitivePopover\n toggleElement=this._toggleElement\n popoverElement=this._popoverElement\n isOpen=this._isOpen\n showPopover=this.showPopover\n hidePopover=this.hidePopover\n togglePopover=this.togglePopover\n boundary=@boundary\n )\n }}\n </template>\n}\n"],"names":["HdsPopoverPrimitive","Component","g","prototype","tracked","i","_containerElement","_toggleElement","_popoverElement","enableSoftEvents","args","enableClickEvents","_timer","constructor","owner","_isOpen","isOpen","setupPrimitiveContainer","modifier","element","registerEvent","onMouseEnter","onMouseLeave","onFocusIn","onFocusOut","setupPrimitiveToggle","assert","tagName","toLowerCase","HTMLButtonElement","_linkToggleAndPopover","removeAttribute","setupPrimitivePopover","_positional","named","id","guidFor","popover","showPopover","onBeforeTogglePopover","onTogglePopover","anchoredPositionOptions","_anchoredPositionOptions","_applyAnchoredPositionModifier","undefined","next","anchoredPositionModifier","popoverId","setAttribute","error","warn","JSON","stringify","hidePopover","_event","togglePopover","event","newState","_isClosing","onOpen","onClose","clearTimeout","setTimeout","isFocusStillInside","relatedTarget","contains","document","activeElement","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":";;;;;;;;;;;;;AAAA;;;AAGC;AA8Dc,MAAMA,4BAA4BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACxDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACAC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6B,KAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,0BAAA,EAAA,CAC7BC,OAAA,CAAA,CAAA;AAAA;EAAA,yBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,MAAA;EACOC;EACAC;EACAC;AACR;AACAC,EAAAA,gBAAA,GAAmB,IAAI,CAACC,IAAI,CAACD,gBAAgB,IAAI,KAAA;AACjD;AACAE,EAAAA,iBAAA,GAAoB,IAAI,CAACD,IAAI,CAACC,iBAAiB,IAAI,KAAA;EAC3CC,MAAA;AAERC,EAAAA,WAAAA,CAAYC,KAAY,EAAEJ,IAA0C,EAAE;AACpE,IAAA,KAAK,CAACI,KAAA,EAAOJ,IAAA,CAAA;IACb,IAAI,CAACK,OAAO,GAAG,IAAI,CAACL,IAAI,CAACM,MAAM,IAAI,KAAA;AACrC,EAAA;AAEAC,EAAAA,uBAAA,GAA0BC,QAAA,CACvBC,WAA2B;IAC1B,IAAI,CAACb,iBAAiB,GAAGa,OAAA;AAEzB;IACA,IAAI,IAAI,CAACV,gBAAgB,EAAE;AACzB;AACAW,MAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CACpC,YAAA,EAEA,IAAI,CAACe,YAAY,CAClB,CAAA;AACD;AACAD,MAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CACpC,YAAA,EAEA,IAAI,CAACgB,YAAY,CAClB,CAAA;AACD;AACAF,MAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CAAC,SAAA,EAAW,IAAI,CAACiB,SAAS,CAAC,CAAA;AACnE,IAAA;AACA;AACA;AACAH,IAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CAAC,UAAA,EAAY,IAAI,CAACkB,UAAU,CAAC,CAAA;AACrE,EAAA,CAAA,CAAA;AAGFC,EAAAA,oBAAA,GAAuBP,QAAA,CACpBC,OAAS,IAAA;IACR,IAAI,CAACZ,cAAc,GAAGY,OAAA;AAEtBO,IAAAA,MAAA,CACE,CAAA,qFAAA,EAAwFP,OAAA,CAAQQ,OAAO,CAACC,WAAW,EAAA,CAAA,CAAA,CAAK,EACxHT,OAAA,YAAmBU,iBAAA,CAAA;IAGrB,IAAI,CAACC,qBAAqB,EAAA;AAE1B;AACA;AACA;AACA,IAAA,OAAO,MAAA;AACLX,MAAAA,OAAA,CAAQY,eAAe,CAAC,eAAA,CAAA;AACxBZ,MAAAA,OAAA,CAAQY,eAAe,CAAC,eAAA,CAAA;IAC1B,CAAA;AACF,EAAA,CAAA,CAAA;EAGFC,qBAAA,GAAwBd,QAAA,CACtB,CACEC,OAAS,EACTc,WAAA,EACAC,UACK;IACL,IAAI,CAAC1B,eAAe,GAAGW,OAAA;AAEvB;AACA;AACA,IAAA,IAAI,CAAC,IAAI,CAACX,eAAe,CAAC2B,EAAE,EAAE;MAC5B,IAAI,CAAC3B,eAAe,CAAC2B,EAAE,GAAGC,QAAQ,IAAI,CAAA;AACxC,IAAA;AAEA;AACA;AACA;AACA,IAAA,IAAI,IAAI,CAAC1B,IAAI,CAACM,MAAM,EAAE;AACpB,MAAA,IAAI,CAACR,eAAe,CAAC6B,OAAO,GAAG,QAAA;AAC/B,MAAA,IAAI,CAAC7B,eAAe,CAAC8B,WAAW,EAAA;AAClC,IAAA,CAAA,MAAO;AACL,MAAA,IAAI,CAAC9B,eAAe,CAAC6B,OAAO,GAAG,MAAA;AACjC,IAAA;AAEA;AACA;AACAjB,IAAAA,aAAA,CAAc,IAAI,CAACZ,eAAe,EAAE,CAClC,cAAA,EACA,IAAI,CAAC+B,qBAAqB,CAC3B,CAAA;AACD;AACAnB,IAAAA,aAAA,CAAc,IAAI,CAACZ,eAAe,EAAE,CAAC,QAAA,EAAU,IAAI,CAACgC,eAAe,CAAC,CAAA;AAEpE;IACA,IAAIN,KAAA,CAAMO,uBAAuB,EAAE;MACjC,IAAI,CAACC,wBAAwB,GAAG;AAC9B,QAAA,GAAGR,MAAMO;OACX;AACF,IAAA;IAEA,IAAI,CAACX,qBAAqB,EAAA;AAC5B,EAAA,CAAA,CAAA;AAGF;AACA;AACA;AACA;AACA;AACA;AACQa,EAAAA,8BAAAA,GAAuC;IAC7C,IACE,IAAI,CAACpC,cAAc,KAAKqC,aACxB,IAAI,CAACpC,eAAe,KAAKoC,SAAA,EACzB;AACA;AACAC,MAAAA,IAAA,CAAK,MAAQ;AACX;AACAC,QAAAA,wBAAA,CACE,IAAI,CAACtC,eAAe,EACpB,CAAC,IAAI,CAACD,cAAc,CAAC,EACrB,IAAI,CAACmC,wBAAwB;;AAEjC,MAAA,CAAA,CAAA;AACF,IAAA;AACF,EAAA;AAEQZ,EAAAA,qBAAAA,GAA8B;IACpC,IACE,IAAI,CAACvB,cAAc,KAAKqC,aACxB,IAAI,CAACpC,eAAe,KAAKoC,SAAA,EACzB;AACA,MAAA;AACF,IAAA;AAEA,IAAA,MAAMG,SAAA,GAAY,IAAI,CAACvC,eAAe,CAAC2B,EAAE;IAEzC,IAAI,CAAC5B,cAAc,CAACyC,YAAY,CAAC,eAAA,EAAiBD,SAAA,CAAA;IAElD,IAAI,IAAI,CAACpC,iBAAiB,EAAE;MAC1B,IAAI,CAACJ,cAAc,CAACyC,YAAY,CAAC,eAAA,EAAiBD,SAAA,CAAA;AACpD,IAAA,CAAA,MAAO;AACL,MAAA,IAAI,CAACxC,cAAc,CAACwB,eAAe,CAAC,eAAA,CAAA;AACtC,IAAA;IAEA,IAAI,CAACY,8BAA8B,EAAA;AACrC,EAAA;EAEAL,WAAA,GAAcA,MAAQ;IACpB,IAAI;MACF,IAAI,IAAI,CAAC9B,eAAe,EAAE;AACxB,QAAA,IAAI,CAACA,eAAe,CAAC8B,WAAW,EAAA;AAClC,MAAA;IACF,CAAA,CAAE,OAAOW,KAAA,EAAO;MACdC,IAAA,CACE,yFAAyFC,IAAA,CAAKC,SAAS,CACrGH,KAAA,CAAA,CAAA,CACC,EACH;AACEd,QAAAA,EAAA,EAAI;AACN,OAAA,CAAA;AAEJ,IAAA;EACF,CAAA;AAEA;AACA;EACAkB,WAAA,GAAeC,MAAS,IAAY;IAClC,IAAI;MACF,IAAI,IAAI,CAAC9C,eAAe,EAAE;AACxB,QAAA,IAAI,CAACA,eAAe,CAAC6C,WAAW,EAAA;AAClC,MAAA;IACF,CAAA,CAAE,OAAOJ,KAAA,EAAO;MACdC,IAAA,CACE,yFAAyFC,IAAA,CAAKC,SAAS,CACrGH,KAAA,CAAA,CAAA,CACC,EACH;AACEd,QAAAA,EAAA,EAAI;AACN,OAAA,CAAA;AAEJ,IAAA;EACF,CAAA;EAEAoB,aAAA,GAAgBA,MAAQ;IACtB,IAAI;MACF,IAAI,IAAI,CAAC/C,eAAe,EAAE;AACxB,QAAA,IAAI,CAACA,eAAe,CAAC+C,aAAa,EAAA;AACpC,MAAA;IACF,CAAA,CAAE,OAAON,KAAA,EAAO;MACdC,IAAA,CACE,2FAA2FC,IAAA,CAAKC,SAAS,CACvGH,KAAA,CAAA,CAAA,CACC,EACH;AACEd,QAAAA,EAAA,EAAI;AACN,OAAA,CAAA;AAEJ,IAAA;EACF,CAAA;AAEA;EACAI,qBAAA,GAAyBiB,KAAO,IAAkB;AAChD,IAAA,IAAIA,KAAA,CAAMC,QAAQ,KAAK,QAAA,EAAU;AAC/B;AACA;AACA;MACA,IAAI,CAACC,UAAU,GAAG,IAAA;AACpB,IAAA;EACF,CAAA;AAEA;EACAlB,eAAA,GAAmBgB,KAAO,IAAkB;AAC1C,IAAA,IAAIA,KAAA,CAAMC,QAAQ,KAAK,MAAA,EAAQ;MAC7B,IAAI,CAAC1C,OAAO,GAAG,IAAA;AAEf;MACA,MAAM;AAAE4C,QAAAA;OAAQ,GAAG,IAAI,CAACjD,IAAI;AAC5B,MAAA,IAAI,OAAOiD,WAAW,UAAA,EAAY;AAChCA,QAAAA,MAAA,EAAA;AACF,MAAA;AACF,IAAA,CAAA,MAAO;MACL,IAAI,CAAC5C,OAAO,GAAG,KAAA;AAEf;MACA,IAAI,CAAC2C,UAAU,GAAG,KAAA;AAElB;AACA,MAAA,IAAI,IAAI,CAAChD,IAAI,CAACM,MAAM,EAAE;QACpB,IAAI,IAAI,CAACR,eAAe,EAAE;AACxB,UAAA,IAAI,CAACA,eAAe,CAAC6B,OAAO,GAAG,MAAA;AACjC,QAAA;AACF,MAAA;AAEA;MACA,MAAM;AAAEuB,QAAAA;OAAS,GAAG,IAAI,CAAClD,IAAI;AAC7B,MAAA,IAAI,OAAOkD,YAAY,UAAA,EAAY;AACjCA,QAAAA,OAAA,EAAA;AACF,MAAA;AACF,IAAA;EACF,CAAA;EAEAvC,YAAA,GAAeA,MAAQ;IACrB,IAAI,IAAI,CAACT,MAAM,EAAE;AACfiD,MAAAA,YAAA,CAAa,IAAI,CAACjD,MAAM,CAAA;AAC1B,IAAA;IACA,IAAI,CAAC0B,WAAW,EAAA;EAClB,CAAA;EAEAf,SAAA,GAAYA,MAAQ;AAClB;AACA,IAAA,IAAI,CAAC,IAAI,CAACmC,UAAU,EAAE;MACpB,IAAI,IAAI,CAAC9C,MAAM,EAAE;AACfiD,QAAAA,YAAA,CAAa,IAAI,CAACjD,MAAM,CAAA;AAC1B,MAAA;MACA,IAAI,CAAC0B,WAAW,EAAA;AAClB,IAAA;EACF,CAAA;EAEAhB,YAAA,GAAeA,MAAQ;AACrB,IAAA,IAAI,CAACV,MAAM,GAAGkD,UAAA,CAAW,MAAY,IAAI,CAACT,WAAW,EAAA,EAAI,GAAA,CAAA;EAC3D,CAAA;EAEA7B,UAAA,GAAcgC,KAAO,IAAiB;IACpC,IAAI,IAAI,CAAClD,iBAAiB,EAAE;MAC1B,IAAIyD,kBAAA,GAAqB,KAAA;MACzB,IACEP,KAAA,CAAMQ,aAAa;AACnB;MACA,IAAI,CAAC1D,iBAAiB,CAAC2D,QAAQ,CAACT,KAAA,CAAMQ,aAAiB,CAAA,EACvD;AACAD,QAAAA,kBAAA,GAAqB,IAAA;AACvB,MAAA,CAAA,MAAO,IACLG,QAAA,CAASC,aAAa;AACtB;MACA,IAAI,CAAC7D,iBAAiB,CAAC2D,QAAQ,CAACC,QAAA,CAASC,aAAa,CAAA,EACtD;AACAJ,QAAAA,kBAAA,GAAqB,IAAA;AACvB,MAAA;AACA;MACA,IAAI,CAACA,kBAAA,EAAoB;QACvB,MAAM;AAAEvC,UAAAA;SAAY,GAAG,IAAI,CAACd,IAAI;QAChC,IAAI,CAAC8C,KAAA,CAAMQ,aAAa,IAAI,OAAOxC,eAAe,UAAA,EAAY;AAC5DA,UAAAA,UAAA,EAAA;AACF,QAAA,CAAA,MAAO;UACL,IAAI,CAAC6B,WAAW,EAAA;AAClB,QAAA;AACF,MAAA;AACF,IAAA;EACF,CAAA;AAEA,EAAA;IAAAe,oBAAA,CAAAC,kBAAA,CAAA,+WAAA,EAeA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/popover-primitive/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert, warn } from '@ember/debug';\nimport { next } from '@ember/runloop';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n\nimport type { ModifierLike } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport registerEvent from '../../../modifiers/hds-register-event.ts';\nimport anchoredPositionModifier from '../../../modifiers/hds-anchored-position.ts';\n\nimport type { HdsAnchoredPositionOptions } from '../../../modifiers/hds-anchored-position.ts';\n\nexport interface HdsPopoverPrimitiveSignature {\n Args: {\n isOpen?: boolean;\n enableSoftEvents?: boolean;\n enableClickEvents?: boolean;\n boundary?: HdsAnchoredPositionOptions['boundary'];\n onOpen?: () => void;\n onClose?: () => void;\n onFocusOut?: () => void;\n };\n Blocks: {\n default: [\n {\n setupPrimitiveContainer: ModifierLike<SetupPrimitiveContainerModifier>;\n setupPrimitiveToggle: ModifierLike<SetupPrimitiveToggleModifier>;\n setupPrimitivePopover: ModifierLike<SetupPrimitivePopoverModifier>;\n toggleElement?: HTMLButtonElement;\n popoverElement?: HTMLElement;\n isOpen: boolean;\n showPopover: () => void;\n hidePopover: (event?: Event) => void;\n togglePopover: () => void;\n boundary?: HdsAnchoredPositionOptions['boundary'];\n },\n ];\n };\n}\n\ninterface SetupPrimitiveContainerModifier {\n Element: HTMLElement;\n}\n\nexport interface SetupPrimitiveToggleModifier {\n Element: HTMLButtonElement;\n}\n\nexport interface SetupPrimitivePopoverModifier {\n Element: HTMLElement;\n Args: {\n Positional: [];\n Named: { anchoredPositionOptions?: HdsAnchoredPositionOptions };\n };\n}\n\nexport default class HdsPopoverPrimitive extends Component<HdsPopoverPrimitiveSignature> {\n @tracked private _isOpen;\n @tracked private _isClosing = false;\n @tracked private _anchoredPositionOptions?: HdsAnchoredPositionOptions;\n private _containerElement?: HTMLElement;\n private _toggleElement?: HTMLButtonElement;\n private _popoverElement?: HTMLElement;\n // this will enable \"soft\" events for the toggle (\"hover\" and \"focus\")\n enableSoftEvents = this.args.enableSoftEvents ?? false;\n // this will enable \"click\" events for the toggle\n enableClickEvents = this.args.enableClickEvents ?? false;\n private _timer?: ReturnType<typeof setTimeout> | null;\n\n constructor(owner: Owner, args: HdsPopoverPrimitiveSignature['Args']) {\n super(owner, args);\n this._isOpen = this.args.isOpen ?? false;\n }\n\n setupPrimitiveContainer = modifier<SetupPrimitiveContainerModifier>(\n (element: HTMLElement): void => {\n this._containerElement = element;\n\n // we register the \"soft\" events\n if (this.enableSoftEvents) {\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, [\n 'mouseenter',\n\n this.onMouseEnter,\n ]);\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, [\n 'mouseleave',\n\n this.onMouseLeave,\n ]);\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, ['focusin', this.onFocusIn]);\n }\n // we always want the focusOut event\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._containerElement, ['focusout', this.onFocusOut]);\n }\n );\n\n setupPrimitiveToggle = modifier<SetupPrimitiveToggleModifier>(\n (element: HTMLButtonElement) => {\n this._toggleElement = element;\n\n assert(\n `The toggle element of \"Hds::PopoverPrimitive\" must be a <button>; element received: <${element.tagName.toLowerCase()}>`,\n element instanceof HTMLButtonElement\n );\n\n this._linkToggleAndPopover();\n\n // Return a teardown function to clean up the modifier's side effects.\n // This is a safeguard against bugs where this element might be\n // cached and re-parented in the DOM, rather than being fully destroyed.\n return () => {\n element.removeAttribute('aria-controls');\n element.removeAttribute('popovertarget');\n };\n }\n );\n\n setupPrimitivePopover = modifier(\n (\n element: HTMLElement,\n _positional,\n named: { anchoredPositionOptions?: HdsAnchoredPositionOptions }\n ): void => {\n this._popoverElement = element;\n\n // We need to create a popoverId in order to connect the popover and the toggle with aria-controls\n // and an id is needed to implement `onclick` event listeners\n if (!this._popoverElement.id) {\n this._popoverElement.id = guidFor(this);\n }\n\n // this should be an extremely edge case, but in the case the popover needs to be initially forced to be open\n // we need to use the \"manual\" state to support the case of multiple \"menus\" opened at the same time\n // IMPORTANT! if a \"popover\" is set to \"open\" with a \"manual\" state, then it can't be closed via `esc` and `click outside`\n if (this.args.isOpen) {\n this._popoverElement.popover = 'manual';\n this._popoverElement.showPopover();\n } else {\n this._popoverElement.popover = 'auto';\n }\n\n // Register \"onBeforeToggle\" + \"onToggle\" callback functions to be called when a native 'toggle' event is dispatched\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._popoverElement, [\n 'beforetoggle',\n this.onBeforeTogglePopover,\n ]);\n // @ts-expect-error: known issue with type of invocation\n registerEvent(this._popoverElement, ['toggle', this.onTogglePopover]);\n\n // we need to spread the argument because if it's set via `{{ hash … }}` Ember complains when we overwrite one of its values\n if (named.anchoredPositionOptions) {\n this._anchoredPositionOptions = {\n ...named.anchoredPositionOptions,\n };\n }\n\n this._linkToggleAndPopover();\n }\n );\n\n // Apply the `hds-anchored-position` modifier to the \"popover\" element\n // (notice: this function runs the first time when the element the modifier was applied to is inserted into the DOM, and it autotracks while running.\n // Any tracked values that it accesses will be tracked, including the arguments it receives, and if any of them changes, the function will run again)\n // This modifiers uses the Floating UI library to provide:\n // - positioning of the \"popover\" in relation to the \"toggle\"\n // - collision detection (optional)\n private _applyAnchoredPositionModifier(): void {\n if (\n this._toggleElement !== undefined &&\n this._popoverElement !== undefined\n ) {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n // @ts-expect-error: known issue with type of invocation\n anchoredPositionModifier(\n this._popoverElement, // element the modifier is attached to\n [this._toggleElement], // positional arguments\n this._anchoredPositionOptions // named arguments\n );\n });\n }\n }\n\n private _linkToggleAndPopover(): void {\n if (\n this._toggleElement === undefined ||\n this._popoverElement === undefined\n ) {\n return;\n }\n\n const popoverId = this._popoverElement.id;\n\n this._toggleElement.setAttribute('aria-controls', popoverId);\n\n if (this.enableClickEvents) {\n this._toggleElement.setAttribute('popovertarget', popoverId);\n } else {\n this._toggleElement.removeAttribute('popovertarget');\n }\n\n this._applyAnchoredPositionModifier();\n }\n\n showPopover = (): void => {\n try {\n if (this._popoverElement) {\n this._popoverElement.showPopover();\n }\n } catch (error) {\n warn(\n `The invocation of \\`showPopover\\` for the popover element caused an unexpected error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-popover.show-popover-action.invocation-failed',\n }\n );\n }\n };\n\n // the event may be passed by the `on` modifier, so we need to keep it as an argument here\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n hidePopover = (_event?: Event): void => {\n try {\n if (this._popoverElement) {\n this._popoverElement.hidePopover();\n }\n } catch (error) {\n warn(\n `The invocation of \\`hidePopover\\` for the popover element caused an unexpected error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-popover.hide-popover-action.invocation-failed',\n }\n );\n }\n };\n\n togglePopover = (): void => {\n try {\n if (this._popoverElement) {\n this._popoverElement.togglePopover();\n }\n } catch (error) {\n warn(\n `The invocation of \\`togglePopover\\` for the popover element caused an unexpected error: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-popover.toggle-popover-action.invocation-failed',\n }\n );\n }\n };\n\n // fired just _before_ the \"popover\" is shown or hidden\n onBeforeTogglePopover = (event: ToggleEvent): void => {\n if (event.newState === 'closed') {\n // we need this flag to check if it's in the \"closing\" process,\n // because the browser automatically returns the focus to the \"trigger\" button\n // and this would re-open immediately the popover because of the `focusin` event\n this._isClosing = true;\n }\n };\n\n // fired just _after_ the \"popover\" is shown or hidden\n onTogglePopover = (event: ToggleEvent): void => {\n if (event.newState === 'open') {\n this._isOpen = true;\n\n // we call the \"onOpen\" callback if it exists (and is a function)\n const { onOpen } = this.args;\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else {\n this._isOpen = false;\n\n // reset the \"isClosing\" flag (the `toggle` event is fired _after_ the popover is closed)\n this._isClosing = false;\n\n // if the popover was initially forced to be open (using the \"manual\" state) then revert its status to `auto` once the user interacts with it\n if (this.args.isOpen) {\n if (this._popoverElement) {\n this._popoverElement.popover = 'auto';\n }\n }\n\n // we call the \"onClose\" callback if it exists (and is a function)\n const { onClose } = this.args;\n if (typeof onClose === 'function') {\n onClose();\n }\n }\n };\n\n onMouseEnter = (): void => {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n this.showPopover();\n };\n\n onFocusIn = (): void => {\n // don't re-open the popover if the focus is returned because the closing\n if (!this._isClosing) {\n if (this._timer) {\n clearTimeout(this._timer);\n }\n this.showPopover();\n }\n };\n\n onMouseLeave = (): void => {\n this._timer = setTimeout((): void => this.hidePopover(), 500);\n };\n\n onFocusOut = (event: FocusEvent): void => {\n if (this._containerElement) {\n let isFocusStillInside = false;\n if (\n event.relatedTarget &&\n // if the related target is not part of the disclosed content we close the disclosed container\n this._containerElement.contains(event.relatedTarget as Node)\n ) {\n isFocusStillInside = true;\n } else if (\n document.activeElement &&\n // due to inconsistent implementation of relatedTarget across browsers we use the activeElement as a fallback\n this._containerElement.contains(document.activeElement)\n ) {\n isFocusStillInside = true;\n }\n // if the target receiving the focus is _not_ part of the disclosed content we close the disclosed container\n if (!isFocusStillInside) {\n const { onFocusOut } = this.args;\n if (!event.relatedTarget && typeof onFocusOut === 'function') {\n onFocusOut();\n } else {\n this.hidePopover();\n }\n }\n }\n };\n\n <template>\n {{yield\n (hash\n setupPrimitiveContainer=this.setupPrimitiveContainer\n setupPrimitiveToggle=this.setupPrimitiveToggle\n setupPrimitivePopover=this.setupPrimitivePopover\n toggleElement=this._toggleElement\n popoverElement=this._popoverElement\n isOpen=this._isOpen\n showPopover=this.showPopover\n hidePopover=this.hidePopover\n togglePopover=this.togglePopover\n boundary=@boundary\n )\n }}\n </template>\n}\n"],"names":["HdsPopoverPrimitive","Component","g","prototype","tracked","i","_containerElement","_toggleElement","_popoverElement","enableSoftEvents","args","enableClickEvents","_timer","constructor","owner","_isOpen","isOpen","setupPrimitiveContainer","modifier","element","registerEvent","onMouseEnter","onMouseLeave","onFocusIn","onFocusOut","setupPrimitiveToggle","assert","tagName","toLowerCase","HTMLButtonElement","_linkToggleAndPopover","removeAttribute","setupPrimitivePopover","_positional","named","id","guidFor","popover","showPopover","onBeforeTogglePopover","onTogglePopover","anchoredPositionOptions","_anchoredPositionOptions","_applyAnchoredPositionModifier","undefined","next","anchoredPositionModifier","popoverId","setAttribute","error","warn","JSON","stringify","hidePopover","_event","togglePopover","event","newState","_isClosing","onOpen","onClose","clearTimeout","setTimeout","isFocusStillInside","relatedTarget","contains","document","activeElement","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":";;;;;;;;;;;;;AAAA;;;AAGC;AA8Dc,MAAMA,4BAA4BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACxDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACAC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA6B,KAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,0BAAA,EAAA,CAC7BC,OAAA,CAAA,CAAA;AAAA;EAAA,yBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,MAAA;EACOC;EACAC;EACAC;AACR;AACAC,EAAAA,gBAAA,GAAmB,IAAI,CAACC,IAAI,CAACD,gBAAgB,IAAI,KAAA;AACjD;AACAE,EAAAA,iBAAA,GAAoB,IAAI,CAACD,IAAI,CAACC,iBAAiB,IAAI,KAAA;EAC3CC,MAAA;AAERC,EAAAA,WAAAA,CAAYC,KAAY,EAAEJ,IAA0C,EAAE;AACpE,IAAA,KAAK,CAACI,KAAA,EAAOJ,IAAA,CAAA;IACb,IAAI,CAACK,OAAO,GAAG,IAAI,CAACL,IAAI,CAACM,MAAM,IAAI,KAAA;AACrC,EAAA;AAEAC,EAAAA,uBAAA,GAA0BC,QAAA,CACvBC,WAA2B;IAC1B,IAAI,CAACb,iBAAiB,GAAGa,OAAA;AAEzB;IACA,IAAI,IAAI,CAACV,gBAAgB,EAAE;AACzB;AACAW,MAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CACpC,YAAA,EAEA,IAAI,CAACe,YAAY,CAClB,CAAA;AACD;AACAD,MAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CACpC,YAAA,EAEA,IAAI,CAACgB,YAAY,CAClB,CAAA;AACD;AACAF,MAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CAAC,SAAA,EAAW,IAAI,CAACiB,SAAS,CAAC,CAAA;AACnE,IAAA;AACA;AACA;AACAH,IAAAA,aAAA,CAAc,IAAI,CAACd,iBAAiB,EAAE,CAAC,UAAA,EAAY,IAAI,CAACkB,UAAU,CAAC,CAAA;AACrE,EAAA,CAAA,CAAA;AAGFC,EAAAA,oBAAA,GAAuBP,QAAA,CACpBC,OAAS,IAAA;IACR,IAAI,CAACZ,cAAc,GAAGY,OAAA;AAEtBO,IAAAA,MAAA,CACE,CAAA,qFAAA,EAAwFP,OAAA,CAAQQ,OAAO,CAACC,WAAW,EAAA,CAAA,CAAA,CAAK,EACxHT,OAAA,YAAmBU,iBAAA,CAAA;IAGrB,IAAI,CAACC,qBAAqB,EAAA;AAE1B;AACA;AACA;AACA,IAAA,OAAO,MAAA;AACLX,MAAAA,OAAA,CAAQY,eAAe,CAAC,eAAA,CAAA;AACxBZ,MAAAA,OAAA,CAAQY,eAAe,CAAC,eAAA,CAAA;IAC1B,CAAA;AACF,EAAA,CAAA,CAAA;EAGFC,qBAAA,GAAwBd,QAAA,CACtB,CACEC,OAAS,EACTc,WAAA,EACAC,UACK;IACL,IAAI,CAAC1B,eAAe,GAAGW,OAAA;AAEvB;AACA;AACA,IAAA,IAAI,CAAC,IAAI,CAACX,eAAe,CAAC2B,EAAE,EAAE;MAC5B,IAAI,CAAC3B,eAAe,CAAC2B,EAAE,GAAGC,QAAQ,IAAI,CAAA;AACxC,IAAA;AAEA;AACA;AACA;AACA,IAAA,IAAI,IAAI,CAAC1B,IAAI,CAACM,MAAM,EAAE;AACpB,MAAA,IAAI,CAACR,eAAe,CAAC6B,OAAO,GAAG,QAAA;AAC/B,MAAA,IAAI,CAAC7B,eAAe,CAAC8B,WAAW,EAAA;AAClC,IAAA,CAAA,MAAO;AACL,MAAA,IAAI,CAAC9B,eAAe,CAAC6B,OAAO,GAAG,MAAA;AACjC,IAAA;AAEA;AACA;AACAjB,IAAAA,aAAA,CAAc,IAAI,CAACZ,eAAe,EAAE,CAClC,cAAA,EACA,IAAI,CAAC+B,qBAAqB,CAC3B,CAAA;AACD;AACAnB,IAAAA,aAAA,CAAc,IAAI,CAACZ,eAAe,EAAE,CAAC,QAAA,EAAU,IAAI,CAACgC,eAAe,CAAC,CAAA;AAEpE;IACA,IAAIN,KAAA,CAAMO,uBAAuB,EAAE;MACjC,IAAI,CAACC,wBAAwB,GAAG;AAC9B,QAAA,GAAGR,MAAMO;OACX;AACF,IAAA;IAEA,IAAI,CAACX,qBAAqB,EAAA;AAC5B,EAAA,CAAA,CAAA;AAGF;AACA;AACA;AACA;AACA;AACA;AACQa,EAAAA,8BAAAA,GAAuC;IAC7C,IACE,IAAI,CAACpC,cAAc,KAAKqC,aACxB,IAAI,CAACpC,eAAe,KAAKoC,SAAA,EACzB;AACA;AACAC,MAAAA,IAAA,CAAK,MAAQ;AACX;AACAC,QAAAA,wBAAA,CACE,IAAI,CAACtC,eAAe,EACpB,CAAC,IAAI,CAACD,cAAc,CAAC,EACrB,IAAI,CAACmC,wBAAwB;;AAEjC,MAAA,CAAA,CAAA;AACF,IAAA;AACF,EAAA;AAEQZ,EAAAA,qBAAAA,GAA8B;IACpC,IACE,IAAI,CAACvB,cAAc,KAAKqC,aACxB,IAAI,CAACpC,eAAe,KAAKoC,SAAA,EACzB;AACA,MAAA;AACF,IAAA;AAEA,IAAA,MAAMG,SAAA,GAAY,IAAI,CAACvC,eAAe,CAAC2B,EAAE;IAEzC,IAAI,CAAC5B,cAAc,CAACyC,YAAY,CAAC,eAAA,EAAiBD,SAAA,CAAA;IAElD,IAAI,IAAI,CAACpC,iBAAiB,EAAE;MAC1B,IAAI,CAACJ,cAAc,CAACyC,YAAY,CAAC,eAAA,EAAiBD,SAAA,CAAA;AACpD,IAAA,CAAA,MAAO;AACL,MAAA,IAAI,CAACxC,cAAc,CAACwB,eAAe,CAAC,eAAA,CAAA;AACtC,IAAA;IAEA,IAAI,CAACY,8BAA8B,EAAA;AACrC,EAAA;EAEAL,WAAA,GAAcA,MAAQ;IACpB,IAAI;MACF,IAAI,IAAI,CAAC9B,eAAe,EAAE;AACxB,QAAA,IAAI,CAACA,eAAe,CAAC8B,WAAW,EAAA;AAClC,MAAA;IACF,CAAA,CAAE,OAAOW,KAAA,EAAO;MACdC,IAAA,CACE,yFAAyFC,IAAA,CAAKC,SAAS,CACrGH,KAAA,CAAA,CAAA,CACC,EACH;AACEd,QAAAA,EAAA,EAAI;AACN,OAAA,CAAA;AAEJ,IAAA;EACF,CAAA;AAEA;AACA;EACAkB,WAAA,GAAeC,MAAS,IAAY;IAClC,IAAI;MACF,IAAI,IAAI,CAAC9C,eAAe,EAAE;AACxB,QAAA,IAAI,CAACA,eAAe,CAAC6C,WAAW,EAAA;AAClC,MAAA;IACF,CAAA,CAAE,OAAOJ,KAAA,EAAO;MACdC,IAAA,CACE,yFAAyFC,IAAA,CAAKC,SAAS,CACrGH,KAAA,CAAA,CAAA,CACC,EACH;AACEd,QAAAA,EAAA,EAAI;AACN,OAAA,CAAA;AAEJ,IAAA;EACF,CAAA;EAEAoB,aAAA,GAAgBA,MAAQ;IACtB,IAAI;MACF,IAAI,IAAI,CAAC/C,eAAe,EAAE;AACxB,QAAA,IAAI,CAACA,eAAe,CAAC+C,aAAa,EAAA;AACpC,MAAA;IACF,CAAA,CAAE,OAAON,KAAA,EAAO;MACdC,IAAA,CACE,2FAA2FC,IAAA,CAAKC,SAAS,CACvGH,KAAA,CAAA,CAAA,CACC,EACH;AACEd,QAAAA,EAAA,EAAI;AACN,OAAA,CAAA;AAEJ,IAAA;EACF,CAAA;AAEA;EACAI,qBAAA,GAAyBiB,KAAO,IAAkB;AAChD,IAAA,IAAIA,KAAA,CAAMC,QAAQ,KAAK,QAAA,EAAU;AAC/B;AACA;AACA;MACA,IAAI,CAACC,UAAU,GAAG,IAAA;AACpB,IAAA;EACF,CAAA;AAEA;EACAlB,eAAA,GAAmBgB,KAAO,IAAkB;AAC1C,IAAA,IAAIA,KAAA,CAAMC,QAAQ,KAAK,MAAA,EAAQ;MAC7B,IAAI,CAAC1C,OAAO,GAAG,IAAA;AAEf;MACA,MAAM;AAAE4C,QAAAA;OAAQ,GAAG,IAAI,CAACjD,IAAI;AAC5B,MAAA,IAAI,OAAOiD,WAAW,UAAA,EAAY;AAChCA,QAAAA,MAAA,EAAA;AACF,MAAA;AACF,IAAA,CAAA,MAAO;MACL,IAAI,CAAC5C,OAAO,GAAG,KAAA;AAEf;MACA,IAAI,CAAC2C,UAAU,GAAG,KAAA;AAElB;AACA,MAAA,IAAI,IAAI,CAAChD,IAAI,CAACM,MAAM,EAAE;QACpB,IAAI,IAAI,CAACR,eAAe,EAAE;AACxB,UAAA,IAAI,CAACA,eAAe,CAAC6B,OAAO,GAAG,MAAA;AACjC,QAAA;AACF,MAAA;AAEA;MACA,MAAM;AAAEuB,QAAAA;OAAS,GAAG,IAAI,CAAClD,IAAI;AAC7B,MAAA,IAAI,OAAOkD,YAAY,UAAA,EAAY;AACjCA,QAAAA,OAAA,EAAA;AACF,MAAA;AACF,IAAA;EACF,CAAA;EAEAvC,YAAA,GAAeA,MAAQ;IACrB,IAAI,IAAI,CAACT,MAAM,EAAE;AACfiD,MAAAA,YAAA,CAAa,IAAI,CAACjD,MAAM,CAAA;AAC1B,IAAA;IACA,IAAI,CAAC0B,WAAW,EAAA;EAClB,CAAA;EAEAf,SAAA,GAAYA,MAAQ;AAClB;AACA,IAAA,IAAI,CAAC,IAAI,CAACmC,UAAU,EAAE;MACpB,IAAI,IAAI,CAAC9C,MAAM,EAAE;AACfiD,QAAAA,YAAA,CAAa,IAAI,CAACjD,MAAM,CAAA;AAC1B,MAAA;MACA,IAAI,CAAC0B,WAAW,EAAA;AAClB,IAAA;EACF,CAAA;EAEAhB,YAAA,GAAeA,MAAQ;AACrB,IAAA,IAAI,CAACV,MAAM,GAAGkD,UAAA,CAAW,MAAY,IAAI,CAACT,WAAW,EAAA,EAAI,GAAA,CAAA;EAC3D,CAAA;EAEA7B,UAAA,GAAcgC,KAAO,IAAiB;IACpC,IAAI,IAAI,CAAClD,iBAAiB,EAAE;MAC1B,IAAIyD,kBAAA,GAAqB,KAAA;MACzB,IACEP,KAAA,CAAMQ,aAAa;AACnB;MACA,IAAI,CAAC1D,iBAAiB,CAAC2D,QAAQ,CAACT,KAAA,CAAMQ,aAAiB,CAAA,EACvD;AACAD,QAAAA,kBAAA,GAAqB,IAAA;AACvB,MAAA,CAAA,MAAO,IACLG,QAAA,CAASC,aAAa;AACtB;MACA,IAAI,CAAC7D,iBAAiB,CAAC2D,QAAQ,CAACC,QAAA,CAASC,aAAa,CAAA,EACtD;AACAJ,QAAAA,kBAAA,GAAqB,IAAA;AACvB,MAAA;AACA;MACA,IAAI,CAACA,kBAAA,EAAoB;QACvB,MAAM;AAAEvC,UAAAA;SAAY,GAAG,IAAI,CAACd,IAAI;QAChC,IAAI,CAAC8C,KAAA,CAAMQ,aAAa,IAAI,OAAOxC,eAAe,UAAA,EAAY;AAC5DA,UAAAA,UAAA,EAAA;AACF,QAAA,CAAA,MAAO;UACL,IAAI,CAAC6B,WAAW,EAAA;AAClB,QAAA;AACF,MAAA;AACF,IAAA;EACF,CAAA;AAEA,EAAA;IAAAe,oBAAA,CAAAC,kBAAA,CAAA,+WAAA,EAeA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -7,7 +7,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Copyright IBM Corp. 2021,
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
class HdsReveal extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/reveal/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/reveal/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { on } from '@ember/modifier';\n\nimport HdsRevealToggleButton from './toggle/button.gts';\nimport HdsDisclosurePrimitive from '../disclosure-primitive/index.gts';\n\nimport type { HdsDisclosurePrimitiveSignature } from '../disclosure-primitive/index.gts';\nimport type { HdsRevealToggleButtonSignature } from './toggle/button.gts';\n\nexport interface HdsRevealSignature {\n Args: {\n text: HdsRevealToggleButtonSignature['Args']['text'];\n textWhenOpen?: HdsRevealToggleButtonSignature['Args']['text'];\n isOpen?: HdsRevealToggleButtonSignature['Args']['isOpen'];\n ariaDescribedBy?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HdsDisclosurePrimitiveSignature['Element'];\n}\n\nexport default class HdsReveal extends Component<HdsRevealSignature> {\n getText = (isOpen: boolean): string => {\n if (isOpen && this.args.textWhenOpen !== undefined) {\n return this.args.textWhenOpen;\n } else {\n if (this.args.text !== undefined) {\n return this.args.text;\n } else {\n assert('@text for \"Hds::Reveal\" must have a valid value');\n }\n }\n };\n\n <template>\n <HdsDisclosurePrimitive\n class=\"hds-reveal\"\n @isOpen={{@isOpen}}\n ...attributes\n >\n <:toggle as |t|>\n <HdsRevealToggleButton\n aria-controls={{t.contentId}}\n aria-describedby={{@ariaDescribedBy}}\n @text={{this.getText t.isOpen}}\n @isOpen={{t.isOpen}}\n {{on \"click\" t.onClickToggle}}\n />\n </:toggle>\n\n <:content>\n <div\n class=\"hds-reveal__content hds-typography-body-200 hds-foreground-primary\"\n >\n {{yield}}\n </div>\n </:content>\n </HdsDisclosurePrimitive>\n </template>\n}\n"],"names":["HdsReveal","Component","getText","isOpen","args","textWhenOpen","undefined","text","assert","setComponentTemplate","precompileTemplate","strictMode","scope","HdsDisclosurePrimitive","HdsRevealToggleButton","on"],"mappings":";;;;;;;;AAAA;;;AAGC;AAyBc,MAAMA,kBAAkBC,SAAA,CAAU;EAC/CC,OAAA,GAAWC,MAAe,IAAS;IACjC,IAAIA,UAAU,IAAI,CAACC,IAAI,CAACC,YAAY,KAAKC,SAAA,EAAW;AAClD,MAAA,OAAO,IAAI,CAACF,IAAI,CAACC,YAAY;AAC/B,IAAA,CAAA,MAAO;AACL,MAAA,IAAI,IAAI,CAACD,IAAI,CAACG,IAAI,KAAKD,SAAA,EAAW;AAChC,QAAA,OAAO,IAAI,CAACF,IAAI,CAACG,IAAI;AACvB,MAAA,CAAA,MAAO;QACLC,MAAA,CAAO,iDAAA,CAAA;AACT,MAAA;AACF,IAAA;EACF,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,2dAAA,EAwBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,sBAAA;QAAAC,qBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -4,7 +4,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Copyright IBM Corp. 2021,
|
|
7
|
+
* Copyright IBM Corp. 2021, 2026
|
|
8
8
|
* SPDX-License-Identifier: MPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
class HdsRevealToggleButton extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../../../../src/components/hds/reveal/toggle/button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../../../../src/components/hds/reveal/toggle/button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\n\nimport HdsButton from '../../button/index.gts';\n\nimport type { HdsButtonSignature } from '../../button/index.gts';\n\nexport interface HdsRevealToggleButtonSignature {\n Args: {\n text: string;\n isOpen?: boolean;\n };\n Element: HdsButtonSignature['Element'];\n}\n\nexport default class HdsRevealToggleButton extends Component<HdsRevealToggleButtonSignature> {\n get classNames(): string {\n const classes = ['hds-reveal__toggle-button'];\n\n // add a class based on the @isOpen argument\n if (this.args.isOpen) {\n classes.push('hds-reveal__toggle-button--is-open');\n }\n\n return classes.join(' ');\n }\n\n <template>\n <HdsButton\n @text={{@text}}\n @color=\"tertiary\"\n @icon=\"chevron-down\"\n aria-expanded={{if @isOpen \"true\" \"false\"}}\n class={{this.classNames}}\n ...attributes\n />\n </template>\n}\n"],"names":["HdsRevealToggleButton","Component","classNames","classes","args","isOpen","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","HdsButton"],"mappings":";;;;;AAAA;;;AAGC;AAgBc,MAAMA,8BAA8BC,SAAA,CAAU;EAC3D,IAAIC,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,2BAAA,CAA4B;AAE7C;AACA,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,MAAM,EAAE;AACpBF,MAAAA,OAAA,CAAQG,IAAI,CAAC,oCAAA,CAAA;AACf,IAAA;AAEA,IAAA,OAAOH,OAAA,CAAQI,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,kKAAA,EASA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright IBM Corp. 2021,
|
|
9
|
+
* Copyright IBM Corp. 2021, 2026
|
|
10
10
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
11
|
*/
|
|
12
12
|
class HdsRichTooltipBubble extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bubble.js","sources":["../../../../src/components/hds/rich-tooltip/bubble.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"bubble.js","sources":["../../../../src/components/hds/rich-tooltip/bubble.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport style from 'ember-style-modifier';\n\nimport type { ModifierLike } from '@glint/template';\n\nimport {\n DEFAULT_PLACEMENT,\n PLACEMENTS,\n} from '../../../modifiers/hds-anchored-position.ts';\n\nimport type { SetupPrimitivePopoverModifier } from '../popover-primitive/index.gts';\nimport type { HdsAnchoredPositionOptions } from '../../../modifiers/hds-anchored-position.ts';\n\nexport interface HdsRichTooltipBubbleSignature {\n Args: {\n placement?: HdsAnchoredPositionOptions['placement'];\n offset?: HdsAnchoredPositionOptions['offsetOptions'];\n enableCollisionDetection?: HdsAnchoredPositionOptions['enableCollisionDetection'];\n width?: string;\n height?: string;\n isOpen?: boolean;\n popoverId: string;\n arrowId: string;\n boundary?: HdsAnchoredPositionOptions['boundary'];\n setupPrimitivePopover: ModifierLike<SetupPrimitivePopoverModifier>;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsRichTooltipBubble extends Component<HdsRichTooltipBubbleSignature> {\n get placement(): HdsAnchoredPositionOptions['placement'] {\n const { placement = DEFAULT_PLACEMENT } = this.args;\n\n assert(\n `@placement for \"Hds::RichTooltip::Bubble\" must be one of the following: ${PLACEMENTS.join(\n ', '\n )}; received: ${placement}`,\n PLACEMENTS.includes(placement)\n );\n\n return placement;\n }\n\n get enableCollisionDetection(): HdsAnchoredPositionOptions['enableCollisionDetection'] {\n return this.args.enableCollisionDetection ?? true;\n }\n\n get sizingStyles(): Record<string, string> {\n const sizingStyles: {\n width?: string;\n 'max-width'?: string;\n height?: string;\n 'max-height'?: string;\n } = {};\n\n if (this.args.width) {\n sizingStyles['width'] = this.args.width;\n sizingStyles['max-width'] = 'none';\n }\n\n if (this.args.height) {\n sizingStyles['height'] = this.args.height;\n sizingStyles['max-height'] = 'none';\n }\n\n return sizingStyles;\n }\n\n get anchoredPositionOptions(): {\n placement: HdsAnchoredPositionOptions['placement'];\n offsetOptions: HdsAnchoredPositionOptions['offsetOptions'];\n enableCollisionDetection: HdsAnchoredPositionOptions['enableCollisionDetection'];\n arrowSelector: string;\n arrowPadding: HdsAnchoredPositionOptions['arrowPadding'];\n boundary: HdsAnchoredPositionOptions['boundary'];\n } {\n // custom options specific for the `RichTooltip` component\n // for details see the `hds-anchored-position` modifier\n return {\n placement: this.placement,\n offsetOptions: this.args.offset ?? 12,\n enableCollisionDetection: this.args.enableCollisionDetection ?? true,\n arrowSelector: `#${this.args.arrowId}`,\n arrowPadding: 12,\n boundary: this.args.boundary,\n };\n }\n\n <template>\n <div\n class=\"hds-rich-tooltip__bubble\"\n ...attributes\n id={{@popoverId}}\n tabindex=\"-1\"\n role=\"tooltip\"\n aria-hidden={{(unless @isOpen true)}}\n {{style this.sizingStyles}}\n {{@setupPrimitivePopover\n anchoredPositionOptions=this.anchoredPositionOptions\n }}\n >\n <div class=\"hds-rich-tooltip__bubble-arrow\" id={{@arrowId}} />\n {{#if @isOpen}}\n <div class=\"hds-rich-tooltip__bubble-inner-content\">\n {{yield}}\n </div>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["HdsRichTooltipBubble","Component","placement","DEFAULT_PLACEMENT","args","assert","PLACEMENTS","join","includes","enableCollisionDetection","sizingStyles","width","height","anchoredPositionOptions","offsetOptions","offset","arrowSelector","arrowId","arrowPadding","boundary","setComponentTemplate","precompileTemplate","strictMode","scope","style"],"mappings":";;;;;;;AAAA;;;AAGC;AAmCc,MAAMA,6BAA6BC,SAAA,CAAU;EAC1D,IAAIC,SAAAA,GAAqD;IACvD,MAAM;AAAEA,MAAAA,SAAA,GAAYC;KAAmB,GAAG,IAAI,CAACC,IAAI;AAEnDC,IAAAA,MAAA,CACE,CAAA,wEAAA,EAA2EC,UAAA,CAAWC,IAAI,CACxF,IAAA,CAAA,CAAA,YAAA,EACcL,SAAA,CAAA,CAAW,EAC3BI,UAAA,CAAWE,QAAQ,CAACN,SAAA,CAAA,CAAA;AAGtB,IAAA,OAAOA,SAAA;AACT,EAAA;EAEA,IAAIO,wBAAAA,GAAmF;AACrF,IAAA,OAAO,IAAI,CAACL,IAAI,CAACK,wBAAwB,IAAI,IAAA;AAC/C,EAAA;EAEA,IAAIC,YAAAA,GAAuC;IACzC,MAAMA,eAKF,EAAC;AAEL,IAAA,IAAI,IAAI,CAACN,IAAI,CAACO,KAAK,EAAE;MACnBD,YAAY,CAAC,OAAA,CAAQ,GAAG,IAAI,CAACN,IAAI,CAACO,KAAK;AACvCD,MAAAA,YAAY,CAAC,YAAY,GAAG,MAAA;AAC9B,IAAA;AAEA,IAAA,IAAI,IAAI,CAACN,IAAI,CAACQ,MAAM,EAAE;MACpBF,YAAY,CAAC,QAAA,CAAS,GAAG,IAAI,CAACN,IAAI,CAACQ,MAAM;AACzCF,MAAAA,YAAY,CAAC,aAAa,GAAG,MAAA;AAC/B,IAAA;AAEA,IAAA,OAAOA,YAAA;AACT,EAAA;EAEA,IAAIG,uBAAAA,GAOF;AACA;AACA;IACA,OAAO;MACLX,SAAA,EAAW,IAAI,CAACA,SAAS;AACzBY,MAAAA,aAAA,EAAe,IAAI,CAACV,IAAI,CAACW,MAAM,IAAI,EAAA;AACnCN,MAAAA,wBAAA,EAA0B,IAAI,CAACL,IAAI,CAACK,wBAAwB,IAAI,IAAA;AAChEO,MAAAA,aAAA,EAAe,CAAA,CAAA,EAAI,IAAI,CAACZ,IAAI,CAACa,OAAO,CAAA,CAAE;AACtCC,MAAAA,YAAA,EAAc,EAAA;AACdC,MAAAA,QAAA,EAAU,IAAI,CAACf,IAAI,CAACe;KACtB;AACF,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,gcAAA,EAoBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -8,7 +8,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Copyright IBM Corp. 2021,
|
|
11
|
+
* Copyright IBM Corp. 2021, 2026
|
|
12
12
|
* SPDX-License-Identifier: MPL-2.0
|
|
13
13
|
*/
|
|
14
14
|
class HdsRichTooltip extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/rich-tooltip/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/rich-tooltip/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { getElementId } from '../../../utils/hds-get-element-id.ts';\nimport HdsRichTooltipToggle from './toggle.gts';\nimport HdsRichTooltipBubble from './bubble.gts';\nimport HdsPopoverPrimitive from '../popover-primitive/index.gts';\n\nimport type { HdsPopoverPrimitiveSignature } from '../popover-primitive/index.gts';\n\nexport interface HdsRichTooltipSignature {\n Args: Omit<HdsPopoverPrimitiveSignature['Args'], 'enableSoftEvents'>;\n Blocks: {\n default: [\n {\n Toggle?: WithBoundArgs<\n typeof HdsRichTooltipToggle,\n 'popoverId' | 'setupPrimitiveToggle' | 'isOpen'\n >;\n Bubble?: WithBoundArgs<\n typeof HdsRichTooltipBubble,\n 'arrowId' | 'popoverId' | 'setupPrimitivePopover' | 'isOpen'\n >;\n isOpen?: boolean;\n close: (event?: Event) => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsRichTooltip extends Component<HdsRichTooltipSignature> {\n private _elementId: string = getElementId(this);\n private _arrowId: string = `arrow-${this._elementId}`;\n private _popoverId: string = `popover-${this._elementId}`;\n\n get enableSoftEvents(): boolean {\n return this.args.enableClickEvents !== true;\n }\n\n get enableClickEvents(): boolean {\n return this.args.enableClickEvents ?? false;\n }\n\n <template>\n {{! IMPORTANT: we need to add \"squishies\" here (~) because otherwise the whitespace added by Ember becomes visible in the underlined text (being an inline element) - See https://handlebarsjs.com/guide/expressions.html#whitespace-control }}\n <HdsPopoverPrimitive\n @isOpen={{@isOpen}}\n @onOpen={{@onOpen}}\n @onClose={{@onClose}}\n @onFocusOut={{@onFocusOut}}\n @enableSoftEvents={{this.enableSoftEvents}}\n @enableClickEvents={{this.enableClickEvents}}\n as |PP|\n ><div class=\"hds-rich-tooltip\" ...attributes {{PP.setupPrimitiveContainer}}>\n {{~yield\n (hash\n Toggle=(component\n HdsRichTooltipToggle\n popoverId=this._popoverId\n setupPrimitiveToggle=PP.setupPrimitiveToggle\n isOpen=PP.isOpen\n )\n Bubble=(component\n HdsRichTooltipBubble\n arrowId=this._arrowId\n popoverId=this._popoverId\n setupPrimitivePopover=PP.setupPrimitivePopover\n isOpen=PP.isOpen\n )\n isOpen=PP.isOpen\n close=PP.hidePopover\n )\n ~}}\n </div></HdsPopoverPrimitive>\n </template>\n}\n"],"names":["HdsRichTooltip","Component","_elementId","getElementId","_arrowId","_popoverId","enableSoftEvents","args","enableClickEvents","setComponentTemplate","precompileTemplate","strictMode","scope","HdsPopoverPrimitive","hash","HdsRichTooltipToggle","HdsRichTooltipBubble"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAmCc,MAAMA,uBAAuBC,SAAA,CAAU;AAC5CC,EAAAA,UAAA,GAAqBC,YAAA,CAAa,IAAI,CAAA;AACtCC,EAAAA,QAAA,GAAmB,CAAA,MAAA,EAAS,IAAI,CAACF,UAAU,CAAA,CAAE;AAC7CG,EAAAA,UAAA,GAAqB,CAAA,QAAA,EAAW,IAAI,CAACH,UAAU,CAAA,CAAE;EAEzD,IAAII,gBAAAA,GAA4B;AAC9B,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,iBAAiB,KAAK,IAAA;AACzC,EAAA;EAEA,IAAIA,iBAAAA,GAA6B;AAC/B,IAAA,OAAO,IAAI,CAACD,IAAI,CAACC,iBAAiB,IAAI,KAAA;AACxC,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,64BAAA,EA+BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,mBAAA;QAAAC,IAAA;QAAAC,oBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -7,7 +7,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Copyright IBM Corp. 2021,
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
const ICON_POSITIONS = Object.values(HdsRichTooltipToggleIconPositionValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.js","sources":["../../../../src/components/hds/rich-tooltip/toggle.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"toggle.js","sources":["../../../../src/components/hds/rich-tooltip/toggle.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { eq } from 'ember-truth-helpers';\n\nimport type { ModifierLike } from '@glint/template';\n\nimport {\n HdsRichTooltipToggleIconPositionValues,\n HdsRichTooltipToggleSizeValues,\n} from './types.ts';\nimport HdsIcon from '../icon/index.gts';\n\nimport type {\n HdsRichTooltipToggleIconPositions,\n HdsRichTooltipToggleSizes,\n} from './types.ts';\nimport type { HdsIconSignature } from '../icon/index.gts';\nimport type { SetupPrimitiveToggleModifier } from '../popover-primitive/index.gts';\n\nexport const ICON_POSITIONS: HdsRichTooltipToggleIconPositions[] =\n Object.values(HdsRichTooltipToggleIconPositionValues);\nexport const DEFAULT_ICON_POSITION =\n HdsRichTooltipToggleIconPositionValues.Trailing;\nexport const SIZES: HdsRichTooltipToggleSizes[] = Object.values(\n HdsRichTooltipToggleSizeValues\n);\n\nexport interface HdsRichTooltipToggleSignature {\n Args: {\n text?: string;\n icon?: HdsIconSignature['Args']['name'];\n iconPosition?: HdsRichTooltipToggleIconPositions;\n size?: undefined | HdsRichTooltipToggleSizes;\n isInline?: boolean;\n isOpen?: boolean;\n popoverId: string;\n setupPrimitiveToggle: ModifierLike<SetupPrimitiveToggleModifier>;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsRichTooltipToggle extends Component<HdsRichTooltipToggleSignature> {\n get isInline(): boolean {\n const { isInline = false } = this.args;\n return isInline;\n }\n\n get iconPosition(): HdsRichTooltipToggleIconPositions {\n const { iconPosition = DEFAULT_ICON_POSITION } = this.args;\n\n assert(\n `@iconPosition for \"Hds::RichTooltip::Toggle\" must be one of the following: ${ICON_POSITIONS.join(\n ', '\n )}; received: ${iconPosition}`,\n ICON_POSITIONS.includes(iconPosition)\n );\n\n return iconPosition;\n }\n\n get size(): HdsRichTooltipToggleSizes | undefined {\n let size;\n\n // we assign a \"size\" only if `@text` is provided\n if (this.args.text) {\n size = this.args.size;\n\n assert(\n `@size for \"Hds::RichTooltip::Toggle\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n size === undefined || SIZES.includes(size)\n );\n }\n\n return size;\n }\n\n get classNames(): string {\n const classes = ['hds-rich-tooltip__toggle'];\n\n // add a class based on the @isInline argument\n if (this.isInline) {\n classes.push('hds-rich-tooltip__toggle--is-inline');\n } else {\n classes.push('hds-rich-tooltip__toggle--is-block');\n }\n\n // add a class based on the @size argument (if provided)\n if (this.size) {\n classes.push(`hds-rich-tooltip__toggle--size-${this.size}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n {{! IMPORTANT: we need to add \"squishies\" here (~) because otherwise the whitespace added by Ember becomes visible in the underlined text (being an inline element) - See https://handlebarsjs.com/guide/expressions.html#whitespace-control }}\n <button\n class={{this.classNames}}\n ...attributes\n type=\"button\"\n aria-describedby={{@popoverId}}\n aria-expanded={{if @isOpen \"true\" \"false\"}}\n {{@setupPrimitiveToggle}}\n >\n {{~#if (has-block)~}}\n {{yield}}\n {{~else~}}\n {{~#if @icon~}}\n {{~#if (eq this.iconPosition \"leading\")~}}\n <HdsIcon\n class=\"hds-rich-tooltip__toggle-icon\"\n @name={{@icon}}\n @isInline={{this.isInline}}\n />\n {{~/if~}}\n {{~/if~}}\n {{~#if @text~}}\n <span class=\"hds-rich-tooltip__toggle-text\">{{~@text~}}</span>\n {{~/if~}}\n {{~#if @icon~}}\n {{~#if (eq this.iconPosition \"trailing\")~}}\n <HdsIcon\n class=\"hds-rich-tooltip__toggle-icon\"\n @name={{@icon}}\n @isInline={{this.isInline}}\n />\n {{~/if~}}\n {{~/if~}}\n {{~/if~}}\n </button>\n </template>\n}\n"],"names":["ICON_POSITIONS","Object","values","HdsRichTooltipToggleIconPositionValues","DEFAULT_ICON_POSITION","Trailing","SIZES","HdsRichTooltipToggleSizeValues","HdsRichTooltipToggle","Component","isInline","args","iconPosition","assert","join","includes","size","text","undefined","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","eq","HdsIcon"],"mappings":";;;;;;;;AAAA;;;AAGC;AAqBM,MAAMA,cAAgB,GAC3BC,MAAA,CAAOC,MAAM,CAACC,sCAAA;AACT,MAAMC,qBAAA,GACXD,sCAAA,CAAuCE;AAClC,MAAMC,KAAO,GAA8BL,MAAA,CAAOC,MAAM,CAC7DK,8BAAA;AAoBa,MAAMC,6BAA6BC,SAAA,CAAU;EAC1D,IAAIC,QAAAA,GAAoB;IACtB,MAAM;AAAEA,MAAAA,QAAA,GAAW;KAAO,GAAG,IAAI,CAACC,IAAI;AACtC,IAAA,OAAOD,QAAA;AACT,EAAA;EAEA,IAAIE,eAAkD;IACpD,MAAM;AAAEA,MAAAA,YAAA,GAAeR;KAAuB,GAAG,IAAI,CAACO,IAAI;AAE1DE,IAAAA,MAAA,CACE,CAAA,2EAAA,EAA8Eb,cAAA,CAAec,IAAI,CAC/F,IAAA,CAAA,CAAA,YAAA,EACcF,YAAA,CAAA,CAAc,EAC9BZ,cAAA,CAAee,QAAQ,CAACH,YAAA,CAAA,CAAA;AAG1B,IAAA,OAAOA,YAAA;AACT,EAAA;EAEA,IAAII,IAAAA,GAA8C;AAChD,IAAA,IAAIA,IAAA;AAEJ;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACM,IAAI,EAAE;AAClBD,MAAAA,IAAA,GAAO,IAAI,CAACL,IAAI,CAACK,IAAI;MAErBH,MAAA,CACE,sEAAsEP,KAAA,CAAMQ,IAAI,CAC9E,IAAA,CAAA,CAAA,YAAA,EACcE,IAAA,CAAA,CAAM,EACtBA,IAAA,KAASE,SAAA,IAAaZ,KAAA,CAAMS,QAAQ,CAACC,IAAA,CAAA,CAAA;AAEzC,IAAA;AAEA,IAAA,OAAOA,IAAA;AACT,EAAA;EAEA,IAAIG,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,0BAAA,CAA2B;AAE5C;IACA,IAAI,IAAI,CAACV,QAAQ,EAAE;AACjBU,MAAAA,OAAA,CAAQC,IAAI,CAAC,qCAAA,CAAA;AACf,IAAA,CAAA,MAAO;AACLD,MAAAA,OAAA,CAAQC,IAAI,CAAC,oCAAA,CAAA;AACf,IAAA;AAEA;IACA,IAAI,IAAI,CAACL,IAAI,EAAE;MACbI,OAAA,CAAQC,IAAI,CAAC,CAAA,+BAAA,EAAkC,IAAI,CAACL,IAAI,EAAE,CAAA;AAC5D,IAAA;AAEA,IAAA,OAAOI,OAAA,CAAQN,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAQ,oBAAA,CAAAC,kBAAA,CAAA,kgCAAA,EAoCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/segmented-group/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/segmented-group/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nimport { hash } from '@ember/helper';\n\nimport HdsButton from '../button/index.gts';\nimport HdsDropdown from '../dropdown/index.gts';\nimport HdsFormSelectBase from '../form/select/base.gts';\nimport HdsFormTextInputBase from '../form/text-input/base.gts';\nimport HdsYield from '../yield/index.gts';\n\nexport interface HdsSegmentedGroupSignature {\n Blocks: {\n default: [\n {\n Button?: typeof HdsButton;\n Dropdown?: typeof HdsDropdown;\n Select?: typeof HdsFormSelectBase;\n TextInput?: typeof HdsFormTextInputBase;\n Generic?: typeof HdsYield;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nconst HdsSegmentedGroup: TemplateOnlyComponent<HdsSegmentedGroupSignature> =\n <template>\n <div class=\"hds-segmented-group\" ...attributes>\n {{yield\n (hash\n Button=HdsButton\n Dropdown=HdsDropdown\n Select=HdsFormSelectBase\n TextInput=HdsFormTextInputBase\n Generic=HdsYield\n )\n }}\n </div>\n </template>;\n\nexport default HdsSegmentedGroup;\n"],"names":["HdsSegmentedGroup","setComponentTemplate","precompileTemplate","strictMode","scope","hash","HdsButton","HdsDropdown","HdsFormSelectBase","HdsFormTextInputBase","HdsYield","templateOnly"],"mappings":";;;;;;;;;;AAAA;;;AAGC;;AA0BD,MAAMA,iBAAyC,GAAAC,oBAAA,CAC7CC,kBAAA,CAAA,8LAAA,EAYA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,oBAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -5,7 +5,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Copyright IBM Corp. 2021,
|
|
8
|
+
* Copyright IBM Corp. 2021, 2026
|
|
9
9
|
* SPDX-License-Identifier: MPL-2.0
|
|
10
10
|
*/
|
|
11
11
|
const DEFAULT_SPACING = HdsSeparatorSpacingValues.TwentyFour;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/separator/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/separator/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport { HdsSeparatorSpacingValues } from './types.ts';\nimport type { HdsSeparatorSpacing } from './types.ts';\n\nexport const DEFAULT_SPACING = HdsSeparatorSpacingValues.TwentyFour;\nexport const SPACING: HdsSeparatorSpacing[] = Object.values(\n HdsSeparatorSpacingValues\n);\n\nexport interface HdsSeparatorSignature {\n Args: {\n spacing?: HdsSeparatorSpacing;\n };\n Element: HTMLElement;\n}\n\nexport default class HdsSeparator extends Component<HdsSeparatorSignature> {\n get spacing(): HdsSeparatorSpacing {\n const { spacing = DEFAULT_SPACING } = this.args;\n\n assert(\n `@spacing for \"Hds::Separator\" must be one of the following: ${SPACING.join(\n ', '\n )}; received: ${spacing}`,\n SPACING.includes(spacing)\n );\n\n return spacing;\n }\n\n get classNames(): string {\n const classes = ['hds-separator'];\n\n // add a class based on the @spacing argument\n classes.push(`hds-separator--spacing-${this.spacing}`);\n\n return classes.join(' ');\n }\n\n <template><hr class={{this.classNames}} ...attributes /></template>\n}\n"],"names":["DEFAULT_SPACING","HdsSeparatorSpacingValues","TwentyFour","SPACING","Object","values","HdsSeparator","Component","spacing","args","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode"],"mappings":";;;;;;AAAA;;;AAGC;AAQM,MAAMA,eAAA,GAAkBC,yBAAA,CAA0BC;AAClD,MAAMC,OAAS,GAAwBC,MAAA,CAAOC,MAAM,CACzDJ,yBAAA;AAUa,MAAMK,qBAAqBC,SAAA,CAAU;EAClD,IAAIC,UAA+B;IACjC,MAAM;AAAEA,MAAAA,OAAA,GAAUR;KAAiB,GAAG,IAAI,CAACS,IAAI;AAE/CC,IAAAA,MAAA,CACE,CAAA,4DAAA,EAA+DP,OAAA,CAAQQ,IAAI,CACzE,IAAA,CAAA,CAAA,YAAA,EACcH,OAAA,CAAA,CAAS,EACzBL,OAAA,CAAQS,QAAQ,CAACJ,OAAA,CAAA,CAAA;AAGnB,IAAA,OAAOA,OAAA;AACT,EAAA;EAEA,IAAIK,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,CAAgB;AAEjC;IACAA,OAAA,CAAQC,IAAI,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAACP,OAAO,EAAE,CAAA;AAErD,IAAA,OAAOM,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,gDAAA,EAAwD;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACpE;;;;"}
|
|
@@ -9,7 +9,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
9
9
|
import { g, i } from 'decorator-transforms/runtime';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Copyright IBM Corp. 2021,
|
|
12
|
+
* Copyright IBM Corp. 2021, 2026
|
|
13
13
|
* SPDX-License-Identifier: MPL-2.0
|
|
14
14
|
*/
|
|
15
15
|
class HdsStepperList extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/stepper/list/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/stepper/list/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { schedule } from '@ember/runloop';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { HdsStepperTitleTagValues } from '../types.ts';\nimport HdsStepperListStep from './step.gts';\n\nimport type { HdsStepperTitleTags, HdsStepperListStepIds } from '../types.ts';\n\nexport interface HdsStepperListSignature {\n Args: {\n titleTag?: HdsStepperTitleTags;\n ariaLabel: string;\n };\n Blocks: {\n default: [\n {\n Step?: WithBoundArgs<\n typeof HdsStepperListStep,\n 'titleTag' | 'stepIds' | 'didInsertNode' | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsStepperList extends Component<HdsStepperListSignature> {\n @tracked private _stepIds: HdsStepperListStepIds = [];\n\n get titleTag(): HdsStepperTitleTags {\n return this.args.titleTag ?? HdsStepperTitleTagValues.Div;\n }\n\n didInsertStep = (element: HTMLElement): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._stepIds = [...this._stepIds, element.id];\n });\n };\n\n willDestroyStep = (element: HTMLElement): void => {\n this._stepIds = this._stepIds.filter(\n (stepId): boolean => stepId !== element.id\n );\n };\n\n <template>\n <ol class=\"hds-stepper-list\" aria-label={{@ariaLabel}} ...attributes>\n {{yield\n (hash\n Step=(component\n HdsStepperListStep\n titleTag=this.titleTag\n stepIds=this._stepIds\n didInsertNode=this.didInsertStep\n willDestroyNode=this.willDestroyStep\n )\n )\n }}\n </ol>\n </template>\n}\n"],"names":["HdsStepperList","Component","g","prototype","tracked","i","titleTag","args","HdsStepperTitleTagValues","Div","didInsertStep","element","schedule","_stepIds","id","willDestroyStep","filter","stepId","setComponentTemplate","precompileTemplate","strictMode","scope","hash","HdsStepperListStep"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAgCc,MAAMA,uBAAuBC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACnDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAkD,EAAE;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAA,MAAA;EAErD,IAAIC,WAAgC;IAClC,OAAO,IAAI,CAACC,IAAI,CAACD,QAAQ,IAAIE,yBAAyBC,GAAG;AAC3D,EAAA;EAEAC,aAAA,GAAiBC,OAAS,IAAkB;AAC1C;IACAC,QAAA,CAAS,aAAA,EAAe,MAAQ;AAC9B,MAAA,IAAI,CAACC,QAAQ,GAAG,CAAI,GAAA,IAAI,CAACA,QAAQ,EAAEF,OAAA,CAAQG,EAAE,CAAC;AAChD,IAAA,CAAA,CAAA;EACF,CAAA;EAEAC,eAAA,GAAmBJ,OAAS,IAAkB;AAC5C,IAAA,IAAI,CAACE,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACG,MAAM,CACjCC,MAAA,IAAoBA,MAAA,KAAWN,QAAQG,EAAE,CAAA;EAE9C,CAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAAA,2PAAA,EAcA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,IAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|