@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":"th-button-sort.js","sources":["../../../../src/components/hds/table/th-button-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"th-button-sort.js","sources":["../../../../src/components/hds/table/th-button-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n\nimport {\n HdsTableThSortOrderIconValues,\n HdsTableThSortOrderValues,\n} from './types.ts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type {\n HdsTableThSortOrder,\n HdsTableThSortOrderIcons,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\nexport interface HdsTableThButtonSortSignature {\n Args: {\n labelId?: string;\n onClick?: () => void;\n sortOrder?: HdsTableThSortOrder;\n };\n Element: HTMLButtonElement;\n}\n\nconst NOOP = () => {};\n\nexport default class HdsTableThButtonSort extends Component<HdsTableThButtonSortSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n // Generates a unique ID for the (hidden) \"label prefix/suffix\" <span> elements\n private _prefixLabelId = 'prefix-' + guidFor(this);\n private _suffixLabelId = 'suffix-' + guidFor(this);\n\n get icon(): HdsTableThSortOrderIcons {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderIconValues.ArrowUp;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderIconValues.ArrowDown;\n default:\n return HdsTableThSortOrderIconValues.SwapVertical;\n }\n }\n\n // Determines the label (suffix) to use in the `aria-labelledby` attribute of the button,\n // used to indicate what will happen if the user clicks on the button\n get sortOrderLabel(): HdsTableThSortOrderLabels {\n const { sortOrder } = this.args;\n\n const translatedLabel =\n sortOrder === HdsTableThSortOrderValues.Asc\n ? this.hdsIntl.t('hds.components.common.descending', {\n default: 'descending',\n })\n : this.hdsIntl.t('hds.components.common.ascending', {\n default: 'ascending',\n });\n\n return translatedLabel as HdsTableThSortOrderLabels;\n }\n\n get onClick(): () => void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n return onClick;\n } else {\n return NOOP;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--sort'];\n\n // add a class based on the @sortOrder argument\n if (\n this.args.sortOrder === HdsTableThSortOrderValues.Asc ||\n this.args.sortOrder === HdsTableThSortOrderValues.Desc\n ) {\n classes.push(`hds-table__th-button--is-sorted`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{on \"click\" this.onClick}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}} {{this._suffixLabelId}}\"\n ...attributes\n >\n <span\n id={{this._prefixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{hdsT \"hds.components.common.sort-by\" default=\"Sort by\"}}\n </span>\n <span\n id={{this._suffixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{this.sortOrderLabel}}\n </span>\n <HdsIcon @name={{this.icon}} />\n </button>\n </template>\n}\n"],"names":["NOOP","HdsTableThButtonSort","Component","g","prototype","service","i","_prefixLabelId","guidFor","_suffixLabelId","icon","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderIconValues","ArrowUp","Desc","ArrowDown","SwapVertical","sortOrderLabel","translatedLabel","hdsIntl","t","default","onClick","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","on","hdsT","HdsIcon"],"mappings":";;;;;;;;;;;AAAA;;;AAGC;AA8BD,MAAMA,OAAOA,MAAA,CAAO,CAAA;AAEL,MAAMC,6BAA6BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACzDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAED;AACQC,EAAAA,cAAA,GAAiB,SAAA,GAAYC,OAAA,CAAQ,IAAI,CAAA;AACzCC,EAAAA,cAAA,GAAiB,SAAA,GAAYD,OAAA,CAAQ,IAAI,CAAA;EAEjD,IAAIE,OAAiC;AACnC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,8BAA8BC,OAAO;MAC9C,KAAKH,0BAA0BI,IAAI;QACjC,OAAOF,8BAA8BG,SAAS;AAChD,MAAA;QACE,OAAOH,8BAA8BI,YAAY;AACrD;AACF,EAAA;AAEA;AACA;EACA,IAAIC,iBAA4C;IAC9C,MAAM;AAAER,MAAAA;KAAW,GAAG,IAAI,CAACD,IAAI;AAE/B,IAAA,MAAMU,eAAA,GACJT,SAAA,KAAcC,yBAAA,CAA0BC,GAAG,GACvC,IAAI,CAACQ,OAAO,CAACC,CAAC,CAAC,kCAAA,EAAoC;AACjDC,MAAAA,OAAA,EAAS;KACX,CAAA,GACA,IAAI,CAACF,OAAO,CAACC,CAAC,CAAC,iCAAA,EAAmC;AAChDC,MAAAA,OAAA,EAAS;AACX,KAAA,CAAA;AAEN,IAAA,OAAOH,eAAA;AACT,EAAA;EAEA,IAAII,OAAAA,GAAsB;IACxB,MAAM;AAAEA,MAAAA;KAAS,GAAG,IAAI,CAACd,IAAI;AAE7B,IAAA,IAAI,OAAOc,YAAY,UAAA,EAAY;AACjC,MAAA,OAAOA,OAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOzB,IAAA;AACT,IAAA;AACF,EAAA;EAEA,IAAI0B,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,sBAAA,EAAwB,4BAAA,CAA6B;AAEtE;AACA,IAAA,IACE,IAAI,CAAChB,IAAI,CAACC,SAAS,KAAKC,yBAAA,CAA0BC,GAAG,IACrD,IAAI,CAACH,IAAI,CAACC,SAAS,KAAKC,yBAAA,CAA0BI,IAAI,EACtD;AACAU,MAAAA,OAAA,CAAQC,IAAI,CAAC,CAAA,+BAAA,CAAiC,CAAA;AAChD,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,khBAAA,EAsBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;cAAAC,UAAA;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 HdsTableThButtonTooltip extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th-button-tooltip.js","sources":["../../../../src/components/hds/table/th-button-tooltip.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"th-button-tooltip.js","sources":["../../../../src/components/hds/table/th-button-tooltip.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';\n\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nexport interface HdsTableThButtonTooltipSignature {\n Args: {\n labelId?: string;\n tooltip: string;\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsTableThButtonTooltip extends Component<HdsTableThButtonTooltipSignature> {\n // Generates a unique ID for the (hidden) \"label prefix\" <span> element\n private _prefixLabelId = guidFor(this);\n\n get tooltip(): string {\n assert(\n `@tooltip for \"HdsTableThButtonTooltip\" must be a string`,\n typeof this.args.tooltip === 'string'\n );\n return this.args.tooltip;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--tooltip'];\n\n return classes.join(' ');\n }\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{hdsTooltip this.tooltip}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}}\"\n ...attributes\n >\n <span\n id={{this._prefixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{hdsT\n \"hds.components.common.tooltip-prefix\"\n default=\"More information for\"\n }}\n </span>\n <HdsIcon @name=\"info\" />\n </button>\n </template>\n}\n"],"names":["HdsTableThButtonTooltip","Component","_prefixLabelId","guidFor","tooltip","assert","args","classNames","classes","join","setComponentTemplate","precompileTemplate","strictMode","scope","hdsTooltip","hdsT","HdsIcon"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAkBc,MAAMA,gCAAgCC,SAAA,CAAU;AAC7D;AACQC,EAAAA,cAAA,GAAiBC,OAAA,CAAQ,IAAI,CAAA;EAErC,IAAIC,OAAAA,GAAkB;IACpBC,MAAA,CACE,CAAA,uDAAA,CAAyD,EACzD,OAAO,IAAI,CAACC,IAAI,CAACF,OAAO,KAAK,QAAA,CAAA;AAE/B,IAAA,OAAO,IAAI,CAACE,IAAI,CAACF,OAAO;AAC1B,EAAA;EAEA,IAAIG,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,sBAAA,EAAwB,+BAAA,CAAgC;AAEzE,IAAA,OAAOA,OAAA,CAAQC,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,iYAAA,EAmBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;oBAAAC,kBAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -14,7 +14,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
14
14
|
import { g, i } from 'decorator-transforms/runtime';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Copyright IBM Corp. 2021,
|
|
17
|
+
* Copyright IBM Corp. 2021, 2026
|
|
18
18
|
* SPDX-License-Identifier: MPL-2.0
|
|
19
19
|
*/
|
|
20
20
|
class HdsTableThSelectable extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { service } from '@ember/service';\n\nimport type HdsIntlService from '../../../services/hds-intl';\n\nimport type Owner from '@ember/owner';\n\nimport {\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsFormCheckboxBase from '../form/checkbox/base.gts';\nimport HdsTableThButtonSort from './th-button-sort.gts';\nimport HdsTableTh from './th.gts';\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsTableScope,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types';\nimport type { HdsTableThSignature } from './th';\n\nexport interface HdsTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n };\n Element: HdsTableThSignature['Element'];\n}\n\nexport default class HdsTableThSelectable extends Component<HdsTableThSelectableSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n @tracked isSelected: boolean;\n private _guid = guidFor(this);\n\n private _checkboxId = `checkbox-${this._guid}`;\n private _labelId = `label-${this._guid}`;\n\n constructor(owner: Owner, args: HdsTableThSelectableSignature['Args']) {\n super(owner, args);\n this.isSelected = this.args.isSelected ?? false;\n }\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix = 'row' } = this.args;\n const defaultString = `Select ${selectionAriaLabelSuffix}`;\n return this.hdsIntl.t('hds.components.table.th-selectable.aria-label', {\n default: defaultString,\n suffix: selectionAriaLabelSuffix,\n });\n }\n\n get ariaSort(): HdsTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n didInsert = (checkbox: HdsFormCheckboxBaseSignature['Element']): void => {\n const { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n }\n };\n\n willDestroyNode = (): void => {\n super.willDestroy();\n const { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n }\n };\n\n onSelectionChange = (event: Event): void => {\n // Assert event.target as HdsFormCheckboxBaseSignature['Element'] to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this.isSelected = target.checked;\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(target, this.args.selectionKey);\n }\n };\n\n <template>\n <HdsTableTh\n class=\"hds-table__th--is-selectable\"\n aria-sort={{if this.isSortable this.ariaSort}}\n @scope={{@selectionScope}}\n ...attributes\n >\n <div class=\"hds-table__th-content\">\n <HdsFormCheckboxBase\n id={{this._checkboxId}}\n class=\"hds-table__checkbox\"\n checked={{@isSelected}}\n aria-label={{this.ariaLabel}}\n {{didInsert this.didInsert}}\n {{willDestroy this.willDestroyNode}}\n {{on \"change\" this.onSelectionChange}}\n />\n {{#if this.isSortable}}\n <HdsTableThButtonSort\n @sortOrder={{@sortBySelectedOrder}}\n @onClick={{@onClickSortBySelected}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n </HdsTableTh>\n </template>\n}\n"],"names":["HdsTableThSelectable","Component","g","prototype","service","i","tracked","_guid","guidFor","_checkboxId","_labelId","constructor","owner","args","isSelected","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","defaultString","hdsIntl","t","default","suffix","ariaSort","sortBySelectedOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","didInsert","checkbox","selectionKey","willDestroyNode","willDestroy","onSelectionChange","event","target","checked","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTableTh","HdsFormCheckboxBase","on","HdsTableThButtonSort"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
9
9
|
import { setComponentTemplate } from '@ember/component';
|
|
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
|
const ALIGNMENTS = Object.values(HdsTableHorizontalAlignmentValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th-sort.js","sources":["../../../../src/components/hds/table/th-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"th-sort.js","sources":["../../../../src/components/hds/table/th-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport style from 'ember-style-modifier';\n\nimport {\n HdsTableHorizontalAlignmentValues,\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsTableThButtonTooltip from './th-button-tooltip.gts';\nimport HdsTableThButtonSort from './th-button-sort.gts';\n\nimport type {\n HdsTableHorizontalAlignment,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsTableThButtonSortSignature } from './th-button-sort.gts';\n\nexport const ALIGNMENTS: HdsTableHorizontalAlignment[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSortSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n onClickSort?: HdsTableThButtonSortSignature['Args']['onClick'];\n sortOrder?: HdsTableThSortOrder;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableThSort extends Component<HdsTableThSortSignature> {\n private _labelId = guidFor(this);\n\n get ariaSort(): HdsTableThSortOrderLabels {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th', 'hds-table__th--sort'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <th\n class={{this.classNames}}\n aria-sort={{this.ariaSort}}\n {{style width=@width minWidth=@width}}\n ...attributes\n scope=\"col\"\n >\n <div class=\"hds-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n {{#if @tooltip}}\n <HdsTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n <HdsTableThButtonSort\n @sortOrder={{@sortOrder}}\n @onClick={{@onClickSort}}\n @labelId={{this._labelId}}\n />\n </div>\n </th>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableThSort","Component","_labelId","guidFor","ariaSort","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","align","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","style","HdsTableThButtonTooltip","HdsTableThButtonSort"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAsBM,MAAMA,UAAY,GAAgCC,MAAA,CAAOC,MAAM,CACpEC,iCAAA;AAEK,MAAMC,aAAA,GAAgBD,iCAAA,CAAkCE;AAgBhD,MAAMC,uBAAuBC,SAAA,CAAU;AAC5CC,EAAAA,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE/B,IAAIC,WAAsC;AACxC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,+BAA+BD,GAAG;MAC3C,KAAKD,0BAA0BG,IAAI;QACjC,OAAOD,+BAA+BC,IAAI;AAC5C,MAAA;AACE;QACA,OAAOD,+BAA+BE,IAAI;AAC9C;AACF,EAAA;EAEA,IAAIC,QAAqC;IACvC,MAAM;AAAEA,MAAAA,KAAA,GAAQd;KAAe,GAAG,IAAI,CAACO,IAAI;AAE3CQ,IAAAA,MAAA,CACE,CAAA,sDAAA,EAAyDnB,UAAA,CAAWoB,IAAI,CACtE,IAAA,CAAA,CAAA,YAAA,EACcF,KAAA,CAAA,CAAO,EACvBlB,UAAA,CAAWqB,QAAQ,CAACH,KAAA,CAAA,CAAA;AAEtB,IAAA,OAAOA,KAAA;AACT,EAAA;EAEA,IAAII,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,EAAiB,qBAAA,CAAsB;AAExD;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAA,CAAQC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACN,KAAK,EAAE,CAAA;AACnD,IAAA;AAEA,IAAA,OAAOK,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,ygBAAA,EA0BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,KAAA;QAAAC,uBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -9,7 +9,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
9
9
|
import { setComponentTemplate } from '@ember/component';
|
|
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
|
const ALIGNMENTS = Object.values(HdsTableHorizontalAlignmentValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { or } from 'ember-truth-helpers';\nimport style from 'ember-style-modifier';\n\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\nimport HdsTableThButtonTooltip from './th-button-tooltip.gts';\n\nimport type { HdsTableHorizontalAlignment, HdsTableScope } from './types.ts';\n\nexport const ALIGNMENTS: HdsTableHorizontalAlignment[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n scope?: HdsTableScope;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableTh extends Component<HdsTableThSignature> {\n private _labelId = guidFor(this);\n\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Th\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <th\n class={{this.classNames}}\n {{style width=@width minWidth=@width}}\n ...attributes\n scope={{(or @scope \"col\")}}\n >\n {{#if @isVisuallyHidden}}\n <span class=\"sr-only\">{{yield}}</span>\n {{else}}\n {{#if @tooltip}}\n <div class=\"hds-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n <HdsTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n </div>\n {{else}}\n <span\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n {{/if}}\n {{/if}}\n </th>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTh","Component","_labelId","guidFor","align","args","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","or","style","HdsTableThButtonTooltip"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAaM,MAAMA,UAAY,GAAgCC,MAAA,CAAOC,MAAM,CACpEC,iCAAA;AAEK,MAAMC,aAAA,GAAgBD,iCAAA,CAAkCE;AAgBhD,MAAMC,mBAAmBC,SAAA,CAAU;AACxCC,EAAAA,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE/B,IAAIC,QAAqC;IACvC,MAAM;AAAEA,MAAAA,KAAA,GAAQN;KAAe,GAAG,IAAI,CAACO,IAAI;AAE3CC,IAAAA,MAAA,CACE,CAAA,0DAAA,EAA6DZ,UAAA,CAAWa,IAAI,CAC1E,IAAA,CAAA,CAAA,YAAA,EACcH,KAAA,CAAA,CAAO,EACvBV,UAAA,CAAWc,QAAQ,CAACJ,KAAA,CAAA,CAAA;AAEtB,IAAA,OAAOA,KAAA;AACT,EAAA;EAEA,IAAIK,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,CAAgB;AAEjC;IACA,IAAI,IAAI,CAACN,KAAK,EAAE;MACdM,OAAA,CAAQC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACP,KAAK,EAAE,CAAA;AACnD,IAAA;AAEA,IAAA,OAAOM,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,umBAAA,EA4BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;QAAAC,KAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.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\n// import { HdsTableScopeValues } from './types.ts';\nimport HdsTableThSelectable from './th-selectable.gts';\n\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type { HdsTableSignature } from './index.gts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.gts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: boolean;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLTableRowElement;\n}\n\n/*\n * NOTE: There is currently an issue with `WithBoundArgs` or Glint that causes a typing error where @selectionKey is set as always required.\n *\n * Until this is fixed, we are holding off on doing a union with the SelectableHdsTableTrArgs\n */\n\n// Extended interface for selectable rows\n// export interface SelectableHdsTableTrArgs extends BaseHdsTableTrSignature {\n// Args: BaseHdsTableTrSignature['Args'] & {\n// isSelectable: true;\n// selectionScope?: HdsTableScopeValues.Row;\n// selectionKey: string; // Now required for selectable rows\n// };\n// }\n\n// Union type to combine both possible states\nexport type HdsTableTrSignature = BaseHdsTableTrSignature;\n// | SelectableHdsTableTrArgs;\n\nexport default class HdsTableTr extends Component<HdsTableTrSignature> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n\n <template>\n <tr class=\"hds-table__tr\" ...attributes>\n {{#if @isSelectable}}\n <HdsTableThSelectable\n @isSelected={{@isSelected}}\n @selectionScope={{@selectionScope}}\n @selectionKey={{this.selectionKey}}\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\n @sortBySelectedOrder={{@sortBySelectedOrder}}\n @didInsert={{@didInsert}}\n @willDestroy={{@willDestroy}}\n @onClickSortBySelected={{@onClickSortBySelected}}\n @onSelectionChange={{@onSelectionChange}}\n />\n {{/if}}\n\n {{yield}}\n </tr>\n </template>\n}\n"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTableThSelectable"],"mappings":";;;;;;AAAA;;;AAGC;AAuCD;;;;AAIC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEe,MAAMA,mBAAmBC,SAAA,CAAU;EAChD,IAAIC,YAAAA,GAAmC;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAA,EAAO;MAChEC,MAAA,CACE,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YAAY,CAAA;AAExB,MAAA,OAAO,IAAI,CAACC,IAAI,CAACD,YAAY;AAC/B,IAAA;AACA,IAAA,OAAOK,SAAA;AACT,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,keAAA,EAkBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\n\nexport enum HdsTableDensityValues {\n Default = 'default',\n Medium = 'medium',\n Short = 'short',\n Tall = 'tall',\n}\nexport type HdsTableDensities = `${HdsTableDensityValues}`;\n\nexport enum HdsTableHorizontalAlignmentValues {\n Center = 'center',\n Left = 'left',\n Right = 'right',\n}\nexport type HdsTableHorizontalAlignment =\n `${HdsTableHorizontalAlignmentValues}`;\n\nexport enum HdsTableScopeValues {\n Col = 'col',\n Row = 'row',\n}\nexport type HdsTableScope = `${HdsTableScopeValues}`;\n\nexport enum HdsTableThSortOrderIconValues {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n SwapVertical = 'swap-vertical',\n}\nexport type HdsTableThSortOrderIcons = `${HdsTableThSortOrderIconValues}`;\n\nexport enum HdsTableThSortOrderLabelValues {\n Asc = 'ascending',\n Desc = 'descending',\n None = 'none',\n}\nexport type HdsTableThSortOrderLabels = `${HdsTableThSortOrderLabelValues}`;\n\nexport enum HdsTableThSortOrderValues {\n Asc = 'asc',\n Desc = 'desc',\n}\nexport type HdsTableThSortOrder = `${HdsTableThSortOrderValues}`;\n\nexport enum HdsTableVerticalAlignmentValues {\n Baseline = 'baseline',\n Middle = 'middle',\n Top = 'top',\n}\nexport type HdsTableVerticalAlignment = `${HdsTableVerticalAlignmentValues}`;\n\nexport type HdsTableSelectableRow = {\n checkbox: HdsFormCheckboxBaseSignature['Element'];\n selectionKey: string;\n};\n\ninterface BaseHdsTableColumn {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n label: string;\n sortingFunction?: HdsTableSortingFunction<unknown>;\n tooltip?: string;\n width?: string;\n}\n\ninterface SortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable: true;\n key: string;\n}\n\ninterface NonSortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable?: false;\n key?: string;\n}\n\nexport type HdsTableColumn = SortableHdsTableColumn | NonSortableHdsTableColumn;\n\nexport type HdsTableSortingFunction<T> = (a: T, b: T) => number;\n\nexport interface HdsTableOnSelectionChangeSignature {\n selectionKey?: string;\n selectionCheckboxElement?: HdsFormCheckboxBaseSignature['Element'];\n selectedRowsKeys: string[];\n selectableRowsStates: {\n selectionKey: string;\n isSelected?: boolean;\n }[];\n}\n\nexport type HdsTableModel = Array<Record<string, unknown>>;\n"],"names":["HdsTableDensityValues","HdsTableHorizontalAlignmentValues","HdsTableScopeValues","HdsTableThSortOrderIconValues","HdsTableThSortOrderLabelValues","HdsTableThSortOrderValues","HdsTableVerticalAlignmentValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAIA,IAAYA,qBAAqB,0BAArBA,qBAAqB,EAAA;EAArBA,qBAAqB,CAAA,SAAA,CAAA,GAAA,SAAA;EAArBA,qBAAqB,CAAA,QAAA,CAAA,GAAA,QAAA;EAArBA,qBAAqB,CAAA,OAAA,CAAA,GAAA,OAAA;EAArBA,qBAAqB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAArBA,qBAAqB;AAAA,CAAA,CAAA,EAAA;AAQjC,IAAYC,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,MAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA;AAAA,EAAA,OAAjCA,iCAAiC;AAAA,CAAA,CAAA,EAAA;AAQ7C,IAAYC,mBAAmB,0BAAnBA,mBAAmB,EAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAAnBA,mBAAmB;AAAA,CAAA,CAAA,EAAA;AAM/B,IAAYC,6BAA6B,0BAA7BA,6BAA6B,EAAA;EAA7BA,6BAA6B,CAAA,WAAA,CAAA,GAAA,YAAA;EAA7BA,6BAA6B,CAAA,SAAA,CAAA,GAAA,UAAA;EAA7BA,6BAA6B,CAAA,cAAA,CAAA,GAAA,eAAA;AAAA,EAAA,OAA7BA,6BAA6B;AAAA,CAAA,CAAA,EAAA;AAOzC,IAAYC,8BAA8B,0BAA9BA,8BAA8B,EAAA;EAA9BA,8BAA8B,CAAA,KAAA,CAAA,GAAA,WAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,YAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAA9BA,8BAA8B;AAAA,CAAA,CAAA,EAAA;AAO1C,IAAYC,yBAAyB,0BAAzBA,yBAAyB,EAAA;EAAzBA,yBAAyB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAzBA,yBAAyB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAAzBA,yBAAyB;AAAA,CAAA,CAAA,EAAA;AAMrC,IAAYC,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,UAAA,CAAA,GAAA,UAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA;EAA/BA,+BAA+B,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAA/BA,+BAA+B;AAAA,CAAA,CAAA,EAAA;;;;"}
|
|
@@ -13,7 +13,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
13
13
|
import { g, i } from 'decorator-transforms/runtime';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* Copyright IBM Corp. 2021,
|
|
16
|
+
* Copyright IBM Corp. 2021, 2026
|
|
17
17
|
* SPDX-License-Identifier: MPL-2.0
|
|
18
18
|
*/
|
|
19
19
|
const DEFAULT_SIZE = 'medium';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/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, schedule } from '@ember/runloop';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport { HdsTabsSizeValues } from './types.ts';\nimport HdsTabsTab from './tab.gts';\nimport HdsTabsPanel from './panel.gts';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium';\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\n\nexport interface HdsTabsSignature {\n Args: {\n size?: HdsTabsSizes;\n onClickTab?: (event: MouseEvent, tabIndex: number) => void;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n isParentVisible?: boolean;\n };\n Blocks: {\n default: [\n {\n Tab?: WithBoundArgs<\n typeof HdsTabsTab,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'onClick'\n | 'onKeyUp'\n | 'didInsertNode'\n | 'didUpdateNode'\n | 'willDestroyNode'\n >;\n Panel?: WithBoundArgs<\n typeof HdsTabsPanel,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked private _tabNodes: HTMLButtonElement[] = [];\n @tracked private _tabIds: HdsTabsTabIds = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: HdsTabsPanelIds = [];\n @tracked private _selectedTabIndex;\n @tracked private _selectedTabId?: string;\n @tracked private _isControlled: boolean;\n\n get size(): HdsTabsSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor(owner: Owner, args: HdsTabsSignature['Args']) {\n super(owner, args);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this._isControlled = this.args.selectedTabIndex !== undefined;\n this._selectedTabIndex = this.args.selectedTabIndex ?? 0;\n }\n\n get selectedTabIndex(): number {\n if (this._isControlled) {\n return this.args.selectedTabIndex!;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n didInsert = (): void => {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this._tabNodes.length === this._panelNodes.length\n );\n\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabIndex = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabId = (): void => {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n };\n\n didUpdateParentVisibility = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didInsertTab = (element: HTMLButtonElement, isSelected?: boolean): void => {\n this._tabNodes = [...this._tabNodes, element];\n this._tabIds = [...this._tabIds, element.id];\n if (isSelected) {\n this._selectedTabId = element.id;\n }\n };\n\n didUpdateTab = (tabIndex: number, isSelected?: boolean): void => {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n };\n\n willDestroyTab = (element: HTMLButtonElement): void => {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n };\n\n didInsertPanel = (element: HTMLElement, panelId: string): void => {\n this._panelNodes = [...this._panelNodes, element];\n this._panelIds = [...this._panelIds, panelId];\n };\n\n willDestroyPanel = (element: HTMLElement): void => {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n };\n\n onClick = (event: MouseEvent, tabIndex: number): void => {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n };\n\n onKeyUp = (tabIndex: number, event: KeyboardEvent): void => {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n\n if (event.key === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n // Focus tab for keyboard & mouse navigation:\n focusTab = (tabIndex: number, event: KeyboardEvent): void => {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n };\n\n setTabIndicator = (): void => {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n const tabElem = this._tabNodes[this.selectedTabIndex];\n\n if (tabElem != null) {\n const tabElemParentNode = tabElem.parentNode as HTMLElement;\n const tabsElemClosestList = tabElem.closest(\n '.hds-tabs__tablist'\n ) as HTMLElement;\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElemParentNode.offsetParent) {\n const tabLeftPos = tabElemParentNode.offsetLeft;\n const tabWidth = tabElemParentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsElemClosestList.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsElemClosestList.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message = '';\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this._tabNodes.length === 0) {\n message +=\n ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this._tabNodes\\`, whose index range is [0 - ${\n this._tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n };\n\n <template>\n {{! template-lint-disable no-invalid-role }}\n <div\n class={{this.classNames}}\n {{didInsert this.didInsert}}\n {{didUpdate this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{didUpdate this.didUpdateSelectedTabId this._selectedTabId}}\n {{didUpdate this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n >\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n HdsTabsTab\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n HdsTabsPanel\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n </div>\n {{! template-lint-enable no-invalid-role }}\n </template>\n}\n"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","Component","g","prototype","tracked","i","size","args","assert","join","includes","constructor","owner","_isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","_tabNodes","length","_panelNodes","_selectedTabId","_tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","_panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","key","nextTabIndex","focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","preventDefault","focus","next","tabElem","tabElemParentNode","tabsElemClosestList","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","setComponentTemplate","precompileTemplate","strictMode","scope","didUpdate","hash","HdsTabsTab","HdsTabsPanel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/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, schedule } from '@ember/runloop';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport { HdsTabsSizeValues } from './types.ts';\nimport HdsTabsTab from './tab.gts';\nimport HdsTabsPanel from './panel.gts';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium';\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\n\nexport interface HdsTabsSignature {\n Args: {\n size?: HdsTabsSizes;\n onClickTab?: (event: MouseEvent, tabIndex: number) => void;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n isParentVisible?: boolean;\n };\n Blocks: {\n default: [\n {\n Tab?: WithBoundArgs<\n typeof HdsTabsTab,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'onClick'\n | 'onKeyUp'\n | 'didInsertNode'\n | 'didUpdateNode'\n | 'willDestroyNode'\n >;\n Panel?: WithBoundArgs<\n typeof HdsTabsPanel,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked private _tabNodes: HTMLButtonElement[] = [];\n @tracked private _tabIds: HdsTabsTabIds = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: HdsTabsPanelIds = [];\n @tracked private _selectedTabIndex;\n @tracked private _selectedTabId?: string;\n @tracked private _isControlled: boolean;\n\n get size(): HdsTabsSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor(owner: Owner, args: HdsTabsSignature['Args']) {\n super(owner, args);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this._isControlled = this.args.selectedTabIndex !== undefined;\n this._selectedTabIndex = this.args.selectedTabIndex ?? 0;\n }\n\n get selectedTabIndex(): number {\n if (this._isControlled) {\n return this.args.selectedTabIndex!;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n didInsert = (): void => {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this._tabNodes.length === this._panelNodes.length\n );\n\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabIndex = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabId = (): void => {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n };\n\n didUpdateParentVisibility = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didInsertTab = (element: HTMLButtonElement, isSelected?: boolean): void => {\n this._tabNodes = [...this._tabNodes, element];\n this._tabIds = [...this._tabIds, element.id];\n if (isSelected) {\n this._selectedTabId = element.id;\n }\n };\n\n didUpdateTab = (tabIndex: number, isSelected?: boolean): void => {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n };\n\n willDestroyTab = (element: HTMLButtonElement): void => {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n };\n\n didInsertPanel = (element: HTMLElement, panelId: string): void => {\n this._panelNodes = [...this._panelNodes, element];\n this._panelIds = [...this._panelIds, panelId];\n };\n\n willDestroyPanel = (element: HTMLElement): void => {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n };\n\n onClick = (event: MouseEvent, tabIndex: number): void => {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n };\n\n onKeyUp = (tabIndex: number, event: KeyboardEvent): void => {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n\n if (event.key === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n // Focus tab for keyboard & mouse navigation:\n focusTab = (tabIndex: number, event: KeyboardEvent): void => {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n };\n\n setTabIndicator = (): void => {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n const tabElem = this._tabNodes[this.selectedTabIndex];\n\n if (tabElem != null) {\n const tabElemParentNode = tabElem.parentNode as HTMLElement;\n const tabsElemClosestList = tabElem.closest(\n '.hds-tabs__tablist'\n ) as HTMLElement;\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElemParentNode.offsetParent) {\n const tabLeftPos = tabElemParentNode.offsetLeft;\n const tabWidth = tabElemParentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsElemClosestList.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsElemClosestList.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message = '';\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this._tabNodes.length === 0) {\n message +=\n ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this._tabNodes\\`, whose index range is [0 - ${\n this._tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n };\n\n <template>\n {{! template-lint-disable no-invalid-role }}\n <div\n class={{this.classNames}}\n {{didInsert this.didInsert}}\n {{didUpdate this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{didUpdate this.didUpdateSelectedTabId this._selectedTabId}}\n {{didUpdate this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n >\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n HdsTabsTab\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n HdsTabsPanel\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n </div>\n {{! template-lint-enable no-invalid-role }}\n </template>\n}\n"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","Component","g","prototype","tracked","i","size","args","assert","join","includes","constructor","owner","_isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","_tabNodes","length","_panelNodes","_selectedTabId","_tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","_panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","key","nextTabIndex","focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","preventDefault","focus","next","tabElem","tabElemParentNode","tabsElemClosestList","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","setComponentTemplate","precompileTemplate","strictMode","scope","didUpdate","hash","HdsTabsTab","HdsTabsPanel"],"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 HdsTabsPanel extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { not } from 'ember-truth-helpers';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsPanelIds, HdsTabsTabIds } from './types';\n\nexport interface HdsTabsPanelSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n didInsertNode?: (element: HTMLElement, elementId: string) => void;\n willDestroyNode?: (element: HTMLElement) => void;\n };\n Blocks: {\n default: [\n {\n isVisible?: boolean;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsTabsPanel extends Component<HdsTabsPanelSignature> {\n private _panelId = 'panel-' + guidFor(this);\n\n private _elementId?: string;\n\n get nodeIndex(): number | undefined {\n return this.args.panelIds\n ? this.args.panelIds.indexOf(this._panelId)\n : undefined;\n }\n\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n didInsertNode = (element: HTMLElement): void => {\n const { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n this._elementId = element.id;\n didInsertNode(element, this._elementId);\n }\n };\n\n willDestroyNode = (element: HTMLElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n <template>\n <section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this._panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{didInsert this.didInsertNode}}\n {{willDestroy this.willDestroyNode}}\n >\n {{yield (hash isVisible=this.isVisible)}}\n </section>\n </template>\n}\n"],"names":["HdsTabsPanel","Component","_panelId","guidFor","_elementId","nodeIndex","args","panelIds","indexOf","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","id","willDestroyNode","setComponentTemplate","precompileTemplate","strictMode","scope","not","didInsert","willDestroy","hash"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAgCc,MAAMA,qBAAqBC,SAAA,CAAU;AAC1CC,EAAAA,QAAA,GAAW,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAElCC,UAAA;EAER,IAAIC,SAAAA,GAAgC;AAClC,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,GACrB,IAAI,CAACD,IAAI,CAACC,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACN,QAAQ,CAAA,GACxCO,SAAA;AACN,EAAA;EAEA,IAAIC,SAAAA,GAAqB;IACvB,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACC,IAAI,CAACK,gBAAgB;AACtD,EAAA;EAEA,IAAIC,YAAAA,GAAmC;AACrC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAA,GACtB,IAAI,CAACH,IAAI,CAACO,MAAM,GAAG,IAAI,CAACR,SAAS,CAAC,GAClCI,SAAA;AACN,EAAA;EAEAK,aAAA,GAAiBC,OAAS,IAAkB;IAC1C,MAAM;AAAED,MAAAA;KAAe,GAAG,IAAI,CAACR,IAAI;AAEnC,IAAA,IAAI,OAAOQ,kBAAkB,UAAA,EAAY;AACvC,MAAA,IAAI,CAACV,UAAU,GAAGW,OAAA,CAAQC,EAAE;AAC5BF,MAAAA,aAAA,CAAcC,OAAA,EAAS,IAAI,CAACX,UAAU,CAAA;AACxC,IAAA;EACF,CAAA;EAEAa,eAAA,GAAmBF,OAAS,IAAkB;IAC5C,MAAM;AAAEE,MAAAA;KAAiB,GAAG,IAAI,CAACX,IAAI;AAErC,IAAA,IAAI,OAAOW,oBAAoB,UAAA,EAAY;MACzCA,eAAA,CAAgBF,OAAA,CAAA;AAClB,IAAA;EACF,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,6RAAA,EAaA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -10,7 +10,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Copyright IBM Corp. 2021,
|
|
13
|
+
* Copyright IBM Corp. 2021, 2026
|
|
14
14
|
* SPDX-License-Identifier: MPL-2.0
|
|
15
15
|
*/
|
|
16
16
|
class HdsTabsTab extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport type { IconName } from '@hashicorp/flight-icons/svg';\n\nimport HdsIcon from '../icon/index.gts';\nimport HdsBadgeCount from '../badge-count/index.gts';\n\nimport type { HdsTabsTabIds, HdsTabsPanelIds } from './types.ts';\n\nexport interface HdsTabsTabSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: number;\n icon?: IconName;\n count?: string;\n isSelected?: boolean;\n didInsertNode?: (element: HTMLButtonElement, isSelected?: boolean) => void;\n didUpdateNode?: (nodeIndex: number, isSelected?: boolean) => void;\n willDestroyNode?: (element: HTMLButtonElement) => void;\n onClick?: (event: MouseEvent, tabIndex: number) => void;\n onKeyUp?: (nodeIndex: number, event: KeyboardEvent) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLIElement;\n}\n\nexport default class HdsTabsTab extends Component<HdsTabsTabSignature> {\n private _tabId = 'tab-' + guidFor(this);\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this._tabId);\n }\n\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n get coupledPanelId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.panelIds?.[this.nodeIndex]\n : undefined;\n }\n\n didInsertNode = (\n element: HTMLButtonElement,\n positional: [boolean?]\n ): void => {\n const { didInsertNode } = this.args;\n\n const isSelected = positional[0];\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, isSelected);\n }\n };\n\n didUpdateNode = (): void => {\n const { didUpdateNode } = this.args;\n\n if (typeof didUpdateNode === 'function' && this.nodeIndex !== undefined) {\n didUpdateNode(this.nodeIndex, this.args.isSelected);\n }\n };\n\n willDestroyNode = (element: HTMLButtonElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n onClick = (event: MouseEvent): false | undefined => {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function' && this.nodeIndex !== undefined) {\n onClick(event, this.nodeIndex);\n } else {\n return false;\n }\n };\n\n onKeyUp = (event: KeyboardEvent): void => {\n const { onKeyUp } = this.args;\n\n if (typeof onKeyUp === 'function' && this.nodeIndex !== undefined) {\n onKeyUp(this.nodeIndex, event);\n }\n };\n\n get classNames(): string {\n const classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n {{! template-lint-disable require-context-role no-invalid-role }}\n <li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this._tabId}}\n aria-controls={{this.coupledPanelId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{didInsert this.didInsertNode @isSelected}}\n {{didUpdate this.didUpdateNode @count @isSelected}}\n {{willDestroy this.willDestroyNode}}\n {{on \"click\" this.onClick}}\n {{on \"keyup\" this.onKeyUp}}\n >\n {{#if @icon}}\n <HdsIcon\n @name={{@icon}}\n class=\"hds-tabs__tab-icon\"\n role=\"presentation\"\n />\n {{/if}}\n\n {{yield}}\n\n {{#if @count}}\n <HdsBadgeCount\n @text={{@count}}\n @size=\"small\"\n class=\"hds-tabs__tab-count\"\n role=\"presentation\"\n />\n {{/if}}\n </button>\n </li>\n {{! template-lint-enable require-context-role no-invalid-role }}\n </template>\n}\n"],"names":["HdsTabsTab","Component","_tabId","guidFor","nodeIndex","args","tabIds","indexOf","isSelected","undefined","selectedTabIndex","coupledPanelId","panelIds","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","didUpdate","willDestroy","on","HdsIcon","HdsBadgeCount"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
17
17
|
import { g, i } from 'decorator-transforms/runtime';
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* Copyright IBM Corp. 2021,
|
|
20
|
+
* Copyright IBM Corp. 2021, 2026
|
|
21
21
|
* SPDX-License-Identifier: MPL-2.0
|
|
22
22
|
*/
|
|
23
23
|
const COLORS = Object.values(HdsTagColorValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tag/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 { TrackedWeakSet } from 'tracked-built-ins';\nimport { assert } from '@ember/debug';\nimport { modifier } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { or } from 'ember-truth-helpers';\nimport { hash } from '@ember/helper';\n\nimport { HdsTagColorValues } from './types.ts';\nimport { HdsTagTooltipPlacementValues } from './types.ts';\nimport HdsInteractive from '../interactive/index.gts';\nimport HdsTooltipButton from '../tooltip-button/index.gts';\nimport HdsTextBody from '../text/body.gts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\n\nimport type { HdsTagColors } from './types.ts';\nimport type { HdsTagTooltipPlacements } from './types.ts';\nimport type { HdsInteractiveSignature } from '../interactive/index.gts';\n\nexport const COLORS: HdsTagColors[] = Object.values(HdsTagColorValues);\nexport const DEFAULT_COLOR = HdsTagColorValues.Primary;\nexport const TOOLTIP_PLACEMENTS: HdsTagTooltipPlacements[] = Object.values(\n HdsTagTooltipPlacementValues\n);\nexport const DEFAULT_TOOLTIP_PLACEMENT = HdsTagTooltipPlacementValues.Top;\n\nexport interface HdsTagSignature {\n Args: HdsInteractiveSignature['Args'] & {\n color?: HdsTagColors;\n text: string;\n ariaLabel?: string;\n tooltipPlacement?: HdsTagTooltipPlacements;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n };\n Element: HTMLSpanElement;\n}\n\nconst overflowed = new TrackedWeakSet<Element>();\n\nlet observer: ResizeObserver | undefined;\n\nif (typeof ResizeObserver !== 'undefined') {\n observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const textContainer = entry.target.querySelector(\n '.hds-tag__text-container'\n );\n if (\n textContainer &&\n textContainer.scrollHeight > textContainer.clientHeight\n ) {\n overflowed.add(entry.target);\n } else {\n overflowed.delete(entry.target);\n }\n });\n });\n}\n\nexport default class HdsTag extends Component<HdsTagSignature> {\n @tracked private _element?: HTMLElement;\n private get _isTextOverflow(): boolean {\n if (!this._element) {\n return false;\n }\n return overflowed.has(this._element);\n }\n\n private _setUpObserver = modifier((element: HTMLElement) => {\n this._element = element;\n observer?.observe(element);\n\n return () => {\n if (this._element) {\n observer?.unobserve(this._element);\n }\n delete this._element;\n };\n });\n\n get tooltipPlacement(): HdsTagTooltipPlacements {\n const { tooltipPlacement = DEFAULT_TOOLTIP_PLACEMENT } = this.args;\n\n assert(\n '@tooltipPlacement for \"Hds::Tag\" must have a valid value',\n tooltipPlacement == undefined ||\n TOOLTIP_PLACEMENTS.includes(tooltipPlacement)\n );\n\n return tooltipPlacement;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onDismiss(): ((event: MouseEvent, ...args: any[]) => void) | false {\n const { onDismiss } = this.args;\n\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return false;\n }\n }\n\n get text(): string {\n const { text } = this.args;\n\n assert('@text for \"Hds::Tag\" must have a valid value', text !== undefined);\n\n return text;\n }\n\n get ariaLabel(): string {\n const tagAriaLabel = this.args.ariaLabel ?? 'Dismiss';\n return tagAriaLabel + ' ' + this.args.text;\n }\n\n get color(): HdsTagColors | false {\n if (this.args.href || this.args.route) {\n const { color = DEFAULT_COLOR } = this.args;\n assert(\n `@color for \"Hds::Tag\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n return color;\n } else if (this.args.color) {\n assert(\n '@color can only be applied to \"Hds::Tag\" along with either @href or @route',\n this.args.href || this.args.route\n );\n }\n return false;\n }\n\n get classNames(): string {\n const classes = ['hds-tag'];\n\n // add a class based on the @color argument\n if (this.color) {\n classes.push(`hds-tag--color-${this.color}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <span class={{this.classNames}} {{this._setUpObserver}} ...attributes>\n {{#if this.onDismiss}}\n <button\n class=\"hds-tag__dismiss\"\n type=\"button\"\n aria-label={{this.ariaLabel}}\n {{on \"click\" this.onDismiss}}\n >\n <HdsIcon class=\"hds-tag__dismiss-icon\" @name=\"x\" @size=\"16\" />\n </button>\n {{/if}}\n {{#if (or @href @route)}}\n {{#if this._isTextOverflow}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n {{hdsTooltip\n this.text\n options=(hash placement=this.tooltipPlacement)\n }}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{else}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{/if}}\n {{else}}\n {{#if this._isTextOverflow}}\n <HdsTooltipButton\n class=\"hds-tag__text\"\n @text={{this.text}}\n @placement={{this.tooltipPlacement}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsTooltipButton>\n {{else}}\n <span class=\"hds-tag__text\">\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </span>\n {{/if}}\n {{/if}}\n </span>\n </template>\n}\n"],"names":["COLORS","Object","values","HdsTagColorValues","DEFAULT_COLOR","Primary","TOOLTIP_PLACEMENTS","HdsTagTooltipPlacementValues","DEFAULT_TOOLTIP_PLACEMENT","Top","overflowed","TrackedWeakSet","observer","ResizeObserver","entries","forEach","entry","textContainer","target","querySelector","scrollHeight","clientHeight","add","delete","HdsTag","Component","g","prototype","tracked","i","_isTextOverflow","_element","has","_setUpObserver","modifier","element","observe","unobserve","tooltipPlacement","args","assert","undefined","includes","onDismiss","text","ariaLabel","tagAriaLabel","color","href","route","join","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","on","HdsIcon","or","HdsInteractive","hdsTooltip","hash","HdsTextBody","HdsTooltipButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tag/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 { TrackedWeakSet } from 'tracked-built-ins';\nimport { assert } from '@ember/debug';\nimport { modifier } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { or } from 'ember-truth-helpers';\nimport { hash } from '@ember/helper';\n\nimport { HdsTagColorValues } from './types.ts';\nimport { HdsTagTooltipPlacementValues } from './types.ts';\nimport HdsInteractive from '../interactive/index.gts';\nimport HdsTooltipButton from '../tooltip-button/index.gts';\nimport HdsTextBody from '../text/body.gts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\n\nimport type { HdsTagColors } from './types.ts';\nimport type { HdsTagTooltipPlacements } from './types.ts';\nimport type { HdsInteractiveSignature } from '../interactive/index.gts';\n\nexport const COLORS: HdsTagColors[] = Object.values(HdsTagColorValues);\nexport const DEFAULT_COLOR = HdsTagColorValues.Primary;\nexport const TOOLTIP_PLACEMENTS: HdsTagTooltipPlacements[] = Object.values(\n HdsTagTooltipPlacementValues\n);\nexport const DEFAULT_TOOLTIP_PLACEMENT = HdsTagTooltipPlacementValues.Top;\n\nexport interface HdsTagSignature {\n Args: HdsInteractiveSignature['Args'] & {\n color?: HdsTagColors;\n text: string;\n ariaLabel?: string;\n tooltipPlacement?: HdsTagTooltipPlacements;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n };\n Element: HTMLSpanElement;\n}\n\nconst overflowed = new TrackedWeakSet<Element>();\n\nlet observer: ResizeObserver | undefined;\n\nif (typeof ResizeObserver !== 'undefined') {\n observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const textContainer = entry.target.querySelector(\n '.hds-tag__text-container'\n );\n if (\n textContainer &&\n textContainer.scrollHeight > textContainer.clientHeight\n ) {\n overflowed.add(entry.target);\n } else {\n overflowed.delete(entry.target);\n }\n });\n });\n}\n\nexport default class HdsTag extends Component<HdsTagSignature> {\n @tracked private _element?: HTMLElement;\n private get _isTextOverflow(): boolean {\n if (!this._element) {\n return false;\n }\n return overflowed.has(this._element);\n }\n\n private _setUpObserver = modifier((element: HTMLElement) => {\n this._element = element;\n observer?.observe(element);\n\n return () => {\n if (this._element) {\n observer?.unobserve(this._element);\n }\n delete this._element;\n };\n });\n\n get tooltipPlacement(): HdsTagTooltipPlacements {\n const { tooltipPlacement = DEFAULT_TOOLTIP_PLACEMENT } = this.args;\n\n assert(\n '@tooltipPlacement for \"Hds::Tag\" must have a valid value',\n tooltipPlacement == undefined ||\n TOOLTIP_PLACEMENTS.includes(tooltipPlacement)\n );\n\n return tooltipPlacement;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onDismiss(): ((event: MouseEvent, ...args: any[]) => void) | false {\n const { onDismiss } = this.args;\n\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return false;\n }\n }\n\n get text(): string {\n const { text } = this.args;\n\n assert('@text for \"Hds::Tag\" must have a valid value', text !== undefined);\n\n return text;\n }\n\n get ariaLabel(): string {\n const tagAriaLabel = this.args.ariaLabel ?? 'Dismiss';\n return tagAriaLabel + ' ' + this.args.text;\n }\n\n get color(): HdsTagColors | false {\n if (this.args.href || this.args.route) {\n const { color = DEFAULT_COLOR } = this.args;\n assert(\n `@color for \"Hds::Tag\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n return color;\n } else if (this.args.color) {\n assert(\n '@color can only be applied to \"Hds::Tag\" along with either @href or @route',\n this.args.href || this.args.route\n );\n }\n return false;\n }\n\n get classNames(): string {\n const classes = ['hds-tag'];\n\n // add a class based on the @color argument\n if (this.color) {\n classes.push(`hds-tag--color-${this.color}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <span class={{this.classNames}} {{this._setUpObserver}} ...attributes>\n {{#if this.onDismiss}}\n <button\n class=\"hds-tag__dismiss\"\n type=\"button\"\n aria-label={{this.ariaLabel}}\n {{on \"click\" this.onDismiss}}\n >\n <HdsIcon class=\"hds-tag__dismiss-icon\" @name=\"x\" @size=\"16\" />\n </button>\n {{/if}}\n {{#if (or @href @route)}}\n {{#if this._isTextOverflow}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n {{hdsTooltip\n this.text\n options=(hash placement=this.tooltipPlacement)\n }}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{else}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{/if}}\n {{else}}\n {{#if this._isTextOverflow}}\n <HdsTooltipButton\n class=\"hds-tag__text\"\n @text={{this.text}}\n @placement={{this.tooltipPlacement}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsTooltipButton>\n {{else}}\n <span class=\"hds-tag__text\">\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </span>\n {{/if}}\n {{/if}}\n </span>\n </template>\n}\n"],"names":["COLORS","Object","values","HdsTagColorValues","DEFAULT_COLOR","Primary","TOOLTIP_PLACEMENTS","HdsTagTooltipPlacementValues","DEFAULT_TOOLTIP_PLACEMENT","Top","overflowed","TrackedWeakSet","observer","ResizeObserver","entries","forEach","entry","textContainer","target","querySelector","scrollHeight","clientHeight","add","delete","HdsTag","Component","g","prototype","tracked","i","_isTextOverflow","_element","has","_setUpObserver","modifier","element","observe","unobserve","tooltipPlacement","args","assert","undefined","includes","onDismiss","text","ariaLabel","tagAriaLabel","color","href","route","join","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","on","HdsIcon","or","HdsInteractive","hdsTooltip","hash","HdsTextBody","HdsTooltipButton"],"mappings":"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"}
|
|
@@ -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
|
const SIZES = [HdsTextSizeValues.ThreeHundred, HdsTextSizeValues.TwoHundred, HdsTextSizeValues.OneHundred];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sources":["../../../../src/components/hds/text/body.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"body.js","sources":["../../../../src/components/hds/text/body.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 HdsText from './index.gts';\nimport { HdsTextSizeValues, HdsTextWeightValues } from './types.ts';\nimport type {\n HdsTextAligns,\n HdsTextColors,\n HdsTextTags,\n HdsTextWeights,\n} from './types.ts';\n\n// notice: only some combinations of size + font-weight are allowed (per design specs)\n// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192\n\n// Allow consumers to provide either string or number representation of size\ntype HdsTextBodySizeNumber = Extract<\n HdsTextSizeValues,\n | HdsTextSizeValues.OneHundred\n | HdsTextSizeValues.TwoHundred\n | HdsTextSizeValues.ThreeHundred\n>;\ntype HdsTextBodySizeString = `${HdsTextBodySizeNumber}`;\nexport type HdsTextBodySizes = HdsTextBodySizeNumber | HdsTextBodySizeString;\nexport const SIZES: HdsTextBodySizes[] = [\n HdsTextSizeValues.ThreeHundred,\n HdsTextSizeValues.TwoHundred,\n HdsTextSizeValues.OneHundred,\n];\nexport const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;\n\nexport const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;\nexport type HdsTextBodyWeight = Extract<\n HdsTextWeights,\n 'regular' | 'medium' | 'semibold'\n>;\nexport const WEIGHTS_PER_SIZE: Record<HdsTextBodySizes, HdsTextBodyWeight[]> = {\n 300: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 200: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 100: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n};\n\nexport interface HdsTextBodySignature {\n Args: {\n size?: HdsTextBodySizes;\n tag?: HdsTextTags;\n weight?: HdsTextBodyWeight;\n align?: HdsTextAligns;\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n color?: string | HdsTextColors;\n };\n Element:\n | HTMLSpanElement\n | HTMLHeadingElement\n | HTMLParagraphElement\n | HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport default class HdsTextBody extends Component<HdsTextBodySignature> {\n // Sets the \"size\" for the text\n get size(): HdsTextBodySizes {\n let { size = DEFAULT_SIZE } = this.args;\n\n // let's be a bit forgiving with the consumers\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n assert(\n `@size for \"Hds::Text::Body\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n // Sets the \"weight\" for the text\n get weight(): HdsTextWeights {\n const { weight = DEFAULT_WEIGHT } = this.args;\n\n const weights = WEIGHTS_PER_SIZE[this.size];\n\n assert(\n `@weight for \"Hds::Text::Body\" with @size=${\n this.size\n } must be one of the following: ${weights.join(\n ', '\n )}; received: ${weight}`,\n weights.includes(weight)\n );\n\n return weight;\n }\n\n <template>\n <HdsText\n @group=\"body\"\n @size={{this.size}}\n @weight={{this.weight}}\n @align={{@align}}\n @color={{@color}}\n @tag={{@tag}}\n ...attributes\n >{{yield}}</HdsText>\n </template>\n}\n"],"names":["SIZES","HdsTextSizeValues","ThreeHundred","TwoHundred","OneHundred","DEFAULT_SIZE","DEFAULT_WEIGHT","HdsTextWeightValues","Regular","WEIGHTS_PER_SIZE","Medium","Semibold","HdsTextBody","Component","size","args","parseInt","assert","join","includes","weight","weights","setComponentTemplate","precompileTemplate","strictMode","scope","HdsText"],"mappings":";;;;;;;AAAA;;;AAGC;AA0BM,MAAMA,KAAO,GAAqB,CACvCC,iBAAA,CAAkBC,YAAY,EAC9BD,iBAAA,CAAkBE,UAAU,EAC5BF,iBAAA,CAAkBG,UAAU;AAEvB,MAAMC,YAAA,GAAeJ,iBAAA,CAAkBE;AAEvC,MAAMG,cAAA,GAAiBC,mBAAA,CAAoBC;AAK3C,MAAMC,gBAA2C,GAAuB;AAC7E,EAAA,GAAA,EAAK,CACHF,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ,CAC7B;AACD,EAAA,GAAA,EAAK,CACHJ,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ,CAC7B;AACD,EAAA,GAAA,EAAK,CACHJ,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ;AAEhC;AAqBe,MAAMC,oBAAoBC,SAAA,CAAU;AACjD;EACA,IAAIC,OAAyB;IAC3B,IAAI;AAAEA,MAAAA,IAAA,GAAOT;KAAc,GAAG,IAAI,CAACU,IAAI;AAEvC;AACA,IAAA,IAAI,OAAOD,SAAS,QAAA,EAAU;AAC5BA,MAAAA,IAAA,GAAOE,SAASF,IAAA,EAAM,EAAA,CAAA;AACxB,IAAA;AAEAG,IAAAA,MAAA,CACE,CAAA,0DAAA,EAA6DjB,KAAA,CAAMkB,IAAI,CACrE,IAAA,CAAA,CAAA,YAAA,EACcJ,IAAA,CAAA,CAAM,EACtBd,KAAA,CAAMmB,QAAQ,CAACL,IAAA,CAAA,CAAA;AAGjB,IAAA,OAAOA,IAAA;AACT,EAAA;AAEA;EACA,IAAIM,SAAyB;IAC3B,MAAM;AAAEA,MAAAA,MAAA,GAASd;KAAgB,GAAG,IAAI,CAACS,IAAI;AAE7C,IAAA,MAAMM,UAAUZ,gBAAgB,CAAC,IAAI,CAACK,IAAI,CAAC;IAE3CG,MAAA,CACE,4CACE,IAAI,CAACH,IAAI,CAAA,+BAAA,EACuBO,OAAA,CAAQH,IAAI,CAC5C,IAAA,CAAA,CAAA,YAAA,EACcE,MAAA,EAAQ,EACxBC,OAAA,CAAQF,QAAQ,CAACC,MAAA,CAAA,CAAA;AAGnB,IAAA,OAAOA,MAAA;AACT,EAAA;AAEA,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAAA,0JAAA,EAUA;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
|
const SIZES = [HdsTextSizeValues.ThreeHundred, HdsTextSizeValues.TwoHundred, HdsTextSizeValues.OneHundred];
|