@hashicorp/design-system-components 6.2.0 → 6.3.0-rc-20260514101332
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 +10 -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 +2 -2
- 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 +1 -1
- package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
- package/declarations/components/hds/button/index.d.ts +3 -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 +1 -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 +2 -2
- 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 +21 -5
- package/declarations/components/hds/icon/types.d.ts +7 -0
- 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 +2 -2
- 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/theme-context/index.d.ts +24 -0
- package/declarations/components/hds/theme-context/types.d.ts +19 -0
- package/declarations/components/hds/theme-switcher/index.d.ts +43 -0
- 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 +3 -1
- package/declarations/helpers/hds-t.d.ts +1 -1
- package/declarations/instance-initializers/load-sprite-empty.d.ts +10 -0
- 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-anchored-position.d.ts +1 -1
- package/declarations/modifiers/hds-code-editor/highlight-styles/{hds-dark-highlight-style.d.ts → hds-highlight-style.d.ts} +2 -2
- package/declarations/modifiers/hds-code-editor/themes/hds-theme.d.ts +6 -0
- 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-icon-registry.d.ts +31 -0
- package/declarations/services/hds-intl.d.ts +1 -1
- package/declarations/services/hds-theming.d.ts +54 -0
- package/declarations/services.d.ts +1 -0
- package/declarations/template-registry.d.ts +7 -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/_app_/components/hds/theme-context.js +1 -0
- package/dist/_app_/components/hds/theme-switcher.js +1 -0
- package/dist/_app_/instance-initializers/load-sprite-empty.js +1 -0
- package/dist/_app_/modifiers/hds-code-editor/{palettes/hds-dark-palette.js → highlight-styles/hds-highlight-style.js} +1 -1
- package/dist/_app_/modifiers/hds-code-editor/themes/{hds-dark-theme.js → hds-theme.js} +1 -1
- package/dist/_app_/services/hds-icon-registry.js +1 -0
- package/dist/_app_/services/hds-theming.js +1 -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 +18 -3
- 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 +1 -1
- 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 +1 -1
- 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 +9 -2
- 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 +1 -1
- 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 +1 -1
- package/dist/components/hds/copy/button/index.js.map +1 -1
- package/dist/components/hds/copy/snippet/index.js +1 -1
- 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 +2 -6
- 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 +46 -11
- package/dist/components/hds/icon/index.js.map +1 -1
- package/dist/components/hds/icon/types.js +6 -1
- package/dist/components/hds/icon/types.js.map +1 -1
- package/dist/components/hds/icon-tile/index.js +2 -3
- 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 +2 -2
- 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 +2 -2
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +2 -2
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +2 -2
- 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 -1
- 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 +10 -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/theme-context/index.js +44 -0
- package/dist/components/hds/theme-context/index.js.map +1 -0
- package/dist/components/hds/theme-context/types.js +27 -0
- package/dist/components/hds/theme-context/types.js.map +1 -0
- package/dist/components/hds/theme-switcher/index.js +107 -0
- package/dist/components/hds/theme-switcher/index.js.map +1 -0
- 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 +4 -2
- package/dist/components.js.map +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/instance-initializers/load-sprite-empty.js +45 -0
- package/dist/instance-initializers/load-sprite-empty.js.map +1 -0
- 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-code-editor/highlight-styles/hds-highlight-style.js +107 -0
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-highlight-style.js.map +1 -0
- package/dist/modifiers/hds-code-editor/themes/{hds-dark-theme.js → hds-theme.js} +41 -40
- package/dist/modifiers/hds-code-editor/themes/hds-theme.js.map +1 -0
- package/dist/modifiers/hds-code-editor.js +4 -4
- 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 +2 -5
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/public/assets/fonts/LICENSE.txt +93 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-Italic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-Regular.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-SemiBold.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-SemiBoldItalic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-Italic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-Regular.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-SemiBold.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-SemiBoldItalic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Pi.woff2 +0 -0
- package/dist/services/hds-icon-registry.js +436 -0
- package/dist/services/hds-icon-registry.js.map +1 -0
- package/dist/services/hds-intl.js +1 -1
- package/dist/services/hds-intl.js.map +1 -1
- package/dist/services/hds-theming.js +150 -0
- package/dist/services/hds-theming.js.map +1 -0
- package/dist/services.js +1 -1
- package/dist/styles/@hashicorp/design-system-components-common.css +10170 -0
- package/dist/styles/@hashicorp/design-system-components-common.css.map +1 -0
- package/dist/styles/@hashicorp/design-system-components-common.scss +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +2083 -896
- 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/@hashicorp/design-system-plex-fonts.css +362 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.css.map +1 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.scss +62 -0
- package/dist/styles/@hashicorp/design-system-power-select-overrides.css +3 -3
- package/dist/styles/@hashicorp/design-system-power-select-overrides.scss +3 -3
- package/dist/styles/components/advanced-table.scss +1 -1
- package/dist/styles/components/alert.scss +73 -94
- package/dist/styles/components/app-footer.scss +6 -4
- package/dist/styles/components/app-header.scss +134 -15
- package/dist/styles/components/app-side-nav/content.scss +30 -15
- package/dist/styles/components/app-side-nav/main.scss +2 -2
- package/dist/styles/components/app-side-nav/toggle-button.scss +17 -9
- package/dist/styles/components/app-side-nav/vars.scss +1 -1
- package/dist/styles/components/badge-count.scss +27 -76
- package/dist/styles/components/badge.scss +32 -131
- package/dist/styles/components/breadcrumb.scss +108 -21
- package/dist/styles/components/button.scss +5 -0
- package/dist/styles/components/card/container.scss +10 -5
- package/dist/styles/components/code-block/index.scss +54 -33
- package/dist/styles/components/code-block/theme.scss +44 -90
- package/dist/styles/components/code-editor/index.scss +43 -23
- package/dist/styles/components/copy/button.scss +17 -3
- package/dist/styles/components/copy/snippet.scss +17 -0
- package/dist/styles/components/dialog-primitive.scss +50 -10
- package/dist/styles/components/dismiss-button.scss +19 -14
- package/dist/styles/components/dropdown.scss +145 -43
- package/dist/styles/components/filter-bar.scss +1 -1
- package/dist/styles/components/flyout.scss +2 -5
- package/dist/styles/components/form/file-input.scss +2 -2
- package/dist/styles/components/form/key-value-inputs.scss +2 -4
- package/dist/styles/components/form/radio-card.scss +1 -1
- package/dist/styles/components/form/select.scss +1 -1
- package/dist/styles/components/form/super-select.scss +6 -6
- package/dist/styles/components/form/text-input.scss +2 -2
- package/dist/styles/components/form/textarea.scss +2 -2
- package/dist/styles/components/icon-tile.scss +18 -11
- package/dist/styles/components/index.scss +2 -1
- package/dist/styles/components/layout/grid.scss +1 -1
- package/dist/styles/components/link/inline.scss +10 -4
- package/dist/styles/components/link/standalone.scss +17 -80
- package/dist/styles/components/modal.scss +14 -10
- package/dist/styles/components/pagination.scss +104 -8
- package/dist/styles/components/reveal.scss +28 -0
- package/dist/styles/components/rich-tooltip.scss +53 -22
- package/dist/styles/components/tabs.scss +45 -8
- package/dist/styles/components/tag.scss +96 -34
- package/dist/styles/components/theme-context.scss +12 -0
- package/dist/styles/components/tooltip.scss +56 -26
- package/dist/styles/mixins/_button.scss +84 -130
- package/dist/styles/mixins/_carbonization.scss +43 -0
- package/dist/styles/mixins/_focus-ring.scss +2 -2
- 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 +67 -6
- package/declarations/modifiers/hds-code-editor/palettes/hds-dark-palette.d.ts +0 -21
- package/declarations/modifiers/hds-code-editor/themes/hds-dark-theme.d.ts +0 -6
- package/dist/_app_/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js +0 -1
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js +0 -108
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js.map +0 -1
- package/dist/modifiers/hds-code-editor/palettes/hds-dark-palette.js +0 -25
- package/dist/modifiers/hds-code-editor/palettes/hds-dark-palette.js.map +0 -1
- package/dist/modifiers/hds-code-editor/themes/hds-dark-theme.js.map +0 -1
- package/dist/styles/components/code-editor/theme.scss +0 -23
- package/dist/styles/mixins/_interactive-dark-theme.scss +0 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/composite/index.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n\nimport { guidFor } from '@ember/object/internals';\n\nimport { handleKey, findFirstEnabled } from './navigation.ts';\n\nimport type Owner from '@ember/owner';\nimport type { ModifierLike } from '@glint/template';\nimport type {\n HdsCompositeOrientations,\n HdsCompositeNavigationConfig,\n HdsCompositeNavigationSnapshot,\n HdsCompositeItem,\n HdsCompositeGroup,\n} from './types.ts';\n\nfunction getElementId(element: HTMLElement, prefix: string): string {\n if (element.id !== '') {\n return element.id;\n }\n\n return `${prefix}-${guidFor(element)}`;\n}\n\nfunction sortByDOMPosition<T extends { element: HTMLElement }>(\n items: T[]\n): T[] {\n const indexedItems = items.map((item, index) => ({ item, index }));\n\n return indexedItems\n .slice()\n .sort((leftEntry, rightEntry) => {\n const { item: left, index: leftIndex } = leftEntry;\n const { item: right, index: rightIndex } = rightEntry;\n\n if (!left.element.isConnected && right.element.isConnected) {\n return 1;\n }\n\n if (left.element.isConnected && !right.element.isConnected) {\n return -1;\n }\n\n const position = left.element.compareDocumentPosition(right.element);\n\n if ((position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0) {\n return -1;\n }\n\n if ((position & Node.DOCUMENT_POSITION_PRECEDING) !== 0) {\n return 1;\n }\n\n // keep sort stable when DOM position cannot be resolved\n return leftIndex - rightIndex;\n })\n .map((entry) => entry.item);\n}\n\nfunction findGroupId(\n element: HTMLElement,\n groups: { id: string; element: HTMLElement }[]\n): string | undefined {\n for (const group of groups) {\n if (group.element.contains(element)) {\n return group.id;\n }\n }\n\n return undefined;\n}\n\ninterface HdsCompositeCompositeModifierSignature {\n Element: HTMLElement;\n}\n\ninterface HdsCompositeItemModifierSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n disabled?: boolean;\n };\n };\n}\n\ninterface HdsCompositeGroupModifierSignature {\n Element: HTMLElement;\n}\n\nexport interface HdsCompositeSignature {\n Args: {\n orientation?: HdsCompositeOrientations;\n loop?: boolean | HdsCompositeOrientations;\n wrap?: boolean | HdsCompositeOrientations;\n defaultCurrentId?: string | null;\n };\n Blocks: {\n default: [\n {\n composite: ModifierLike<HdsCompositeCompositeModifierSignature>;\n item: ModifierLike<HdsCompositeItemModifierSignature>;\n group: ModifierLike<HdsCompositeGroupModifierSignature>;\n },\n ];\n };\n}\n\nexport default class Composite extends Component<HdsCompositeSignature> {\n // not tracked because registration happens inside modifier installation\n private _items: HdsCompositeItem[] = [];\n private _groups: HdsCompositeGroup[] = [];\n\n // undefined = uninitialized (auto-select first enabled on registration)\n // null = explicitly no active item (container gets tabindex=\"0\")\n // string = active item id\n private _currentId: string | null | undefined = undefined;\n\n private _compositeElement: HTMLElement | null = null;\n private _preserveTabIndex = false;\n\n constructor(owner: Owner, args: HdsCompositeSignature['Args']) {\n super(owner, args);\n\n if (args.defaultCurrentId !== undefined) {\n this._currentId = args.defaultCurrentId;\n }\n }\n\n private get _resolvedCurrentId(): string | null | undefined {\n // explicitly null (no active item)\n if (this._currentId === null) {\n return null;\n }\n\n const requestedItem = this._items.find(\n (item) => item.id === this._currentId\n );\n\n if (requestedItem !== undefined && requestedItem.disabled === false) {\n return this._currentId;\n }\n\n return this._firstEnabledItem !== undefined\n ? this._firstEnabledItem.id\n : undefined;\n }\n\n private get _currentItem(): HdsCompositeItem | undefined {\n const activeId = this._resolvedCurrentId;\n\n if (activeId === null || activeId === undefined) {\n return undefined;\n }\n\n return this._items.find((item) => item.id === activeId);\n }\n\n private get _firstEnabledItem(): HdsCompositeItem | undefined {\n return findFirstEnabled(this._items);\n }\n\n private get _currentIndex(): number {\n const activeId = this._resolvedCurrentId;\n\n if (activeId === null || activeId === undefined) {\n return -1;\n }\n\n return this._items.findIndex((item) => item.id === activeId);\n }\n\n private get _config(): HdsCompositeNavigationConfig {\n return {\n orientation: this.args.orientation,\n loop: this.args.loop ?? false,\n wrap: this.args.wrap ?? false,\n };\n }\n\n private get _navigationSnapshot(): HdsCompositeNavigationSnapshot {\n return {\n items: this._items,\n groups: this._groups,\n currentItem: this._currentItem,\n currentIndex: this._currentIndex,\n };\n }\n\n private _registerItem(newItem: HdsCompositeItem): void {\n newItem.groupId = findGroupId(newItem.element, this._groups);\n\n this._items = sortByDOMPosition([\n ...this._items.filter((item) => item.id !== newItem.id),\n newItem,\n ]);\n\n this._syncAllElements();\n }\n\n private _unregisterItem(id: string): void {\n const wasCurrent = this._resolvedCurrentId === id;\n this._items = this._items.filter((item) => item.id !== id);\n\n if (wasCurrent) {\n // reset to \"auto\" so newly rendered first items can become active\n this._currentId = undefined;\n this._syncAllElements();\n\n return;\n }\n\n this._syncAllElements();\n }\n\n private _registerGroup(newGroup: HdsCompositeGroup): void {\n this._groups = sortByDOMPosition([\n ...this._groups.filter((group) => group.id !== newGroup.id),\n newGroup,\n ]);\n\n this._reassociateGroups();\n }\n\n private _unregisterGroup(id: string): void {\n this._groups = this._groups.filter((group) => group.id !== id);\n this._reassociateGroups();\n\n const currentExists = this._items.some(\n (item) => item.id === this._resolvedCurrentId\n );\n\n if (!currentExists && this._firstEnabledItem) {\n // reset to \"auto\" so group reordering/mount order can settle first\n this._currentId = undefined;\n this._syncAllElements();\n }\n }\n\n private _reassociateGroups(): void {\n for (const item of this._items) {\n item.groupId = findGroupId(item.element, this._groups);\n }\n }\n\n private _moveTo(id: string): void {\n if (this._currentId === id) {\n return;\n }\n\n const previousItem = this._currentItem;\n\n this._currentId = id;\n\n const nextItem = this._currentItem;\n\n if (previousItem !== undefined) {\n this._syncItemElement(previousItem);\n }\n\n if (nextItem !== undefined) {\n this._syncItemElement(nextItem);\n }\n\n this._syncCompositeElement();\n }\n\n private _syncAllElements(): void {\n for (const item of this._items) {\n this._syncItemElement(item);\n }\n\n this._syncCompositeElement();\n }\n\n private _syncItemElement(item: HdsCompositeItem): void {\n const element = item.element;\n const isCurrent = item.id === this._resolvedCurrentId;\n\n if (item.disabled === true) {\n element.setAttribute('aria-disabled', 'true');\n element.setAttribute('disabled', '');\n element.setAttribute('tabindex', '-1');\n } else {\n element.removeAttribute('aria-disabled');\n element.removeAttribute('disabled');\n element.setAttribute('tabindex', isCurrent === true ? '0' : '-1');\n }\n\n if (isCurrent === true) {\n element.setAttribute('data-active-item', '');\n } else {\n element.removeAttribute('data-active-item');\n }\n\n element.setAttribute('tabindex', isCurrent === true ? '0' : '-1');\n }\n\n private _syncCompositeElement(): void {\n const element = this._compositeElement;\n\n if (element === null || this._preserveTabIndex === true) {\n return;\n }\n\n const activeId = this._resolvedCurrentId;\n\n if (activeId === null || activeId === undefined) {\n element.setAttribute('tabindex', '0');\n } else {\n element.removeAttribute('tabindex');\n }\n }\n\n compositeModifier = modifier<HdsCompositeCompositeModifierSignature>(\n (element: HTMLElement) => {\n this._compositeElement = element;\n this._preserveTabIndex = element.hasAttribute('tabindex');\n\n this._syncCompositeElement();\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const managedKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n\n if (managedKeys.includes(event.key)) {\n event.preventDefault();\n }\n\n const target = handleKey(event, this._navigationSnapshot, this._config);\n\n if (target === undefined) {\n return;\n }\n\n this._moveTo(target.id);\n\n target.element.focus();\n };\n\n element.addEventListener('keydown', onKeyDown);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n\n if (this._compositeElement === element) {\n this._compositeElement = null;\n }\n };\n }\n );\n\n itemModifier = modifier<HdsCompositeItemModifierSignature>(\n (element: HTMLElement, _positional: unknown[], named) => {\n const disabled = named.disabled ?? false;\n const id = getElementId(element, 'composite-item');\n\n element.id = id;\n\n this._registerItem({ id, element, disabled });\n\n const onFocus = (): void => {\n const item = this._items.find((registered) => registered.id === id);\n\n if (item === undefined || item.disabled === true) {\n return;\n }\n\n this._moveTo(id);\n };\n\n element.addEventListener('focus', onFocus);\n\n return () => {\n element.removeEventListener('focus', onFocus);\n\n this._unregisterItem(id);\n };\n }\n );\n\n groupModifier = modifier<HdsCompositeGroupModifierSignature>(\n (element: HTMLElement) => {\n const id = getElementId(element, 'composite-group');\n\n element.id = id;\n\n this._registerGroup({ id, element });\n\n return () => {\n this._unregisterGroup(id);\n };\n }\n );\n\n <template>\n {{yield\n (hash\n composite=this.compositeModifier\n item=this.itemModifier\n group=this.groupModifier\n )\n }}\n </template>\n}\n"],"names":["getElementId","element","prefix","id","guidFor","sortByDOMPosition","items","indexedItems","map","item","index","slice","sort","leftEntry","rightEntry","left","leftIndex","right","rightIndex","isConnected","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","entry","findGroupId","groups","group","contains","undefined","Composite","Component","_items","_groups","_currentId","_compositeElement","_preserveTabIndex","constructor","owner","args","defaultCurrentId","_resolvedCurrentId","requestedItem","find","disabled","_firstEnabledItem","_currentItem","activeId","findFirstEnabled","_currentIndex","findIndex","_config","orientation","loop","wrap","_navigationSnapshot","currentItem","currentIndex","_registerItem","newItem","groupId","filter","_syncAllElements","_unregisterItem","wasCurrent","_registerGroup","newGroup","_reassociateGroups","_unregisterGroup","currentExists","some","_moveTo","previousItem","nextItem","_syncItemElement","_syncCompositeElement","isCurrent","setAttribute","removeAttribute","compositeModifier","modifier","hasAttribute","onKeyDown","event","managedKeys","includes","key","preventDefault","target","handleKey","focus","addEventListener","removeEventListener","itemModifier","_positional","named","onFocus","registered","groupModifier","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/composite/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n\nimport { guidFor } from '@ember/object/internals';\n\nimport { handleKey, findFirstEnabled } from './navigation.ts';\n\nimport type Owner from '@ember/owner';\nimport type { ModifierLike } from '@glint/template';\nimport type {\n HdsCompositeOrientations,\n HdsCompositeNavigationConfig,\n HdsCompositeNavigationSnapshot,\n HdsCompositeItem,\n HdsCompositeGroup,\n} from './types.ts';\n\nfunction getElementId(element: HTMLElement, prefix: string): string {\n if (element.id !== '') {\n return element.id;\n }\n\n return `${prefix}-${guidFor(element)}`;\n}\n\nfunction sortByDOMPosition<T extends { element: HTMLElement }>(\n items: T[]\n): T[] {\n const indexedItems = items.map((item, index) => ({ item, index }));\n\n return indexedItems\n .slice()\n .sort((leftEntry, rightEntry) => {\n const { item: left, index: leftIndex } = leftEntry;\n const { item: right, index: rightIndex } = rightEntry;\n\n if (!left.element.isConnected && right.element.isConnected) {\n return 1;\n }\n\n if (left.element.isConnected && !right.element.isConnected) {\n return -1;\n }\n\n const position = left.element.compareDocumentPosition(right.element);\n\n if ((position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0) {\n return -1;\n }\n\n if ((position & Node.DOCUMENT_POSITION_PRECEDING) !== 0) {\n return 1;\n }\n\n // keep sort stable when DOM position cannot be resolved\n return leftIndex - rightIndex;\n })\n .map((entry) => entry.item);\n}\n\nfunction findGroupId(\n element: HTMLElement,\n groups: { id: string; element: HTMLElement }[]\n): string | undefined {\n for (const group of groups) {\n if (group.element.contains(element)) {\n return group.id;\n }\n }\n\n return undefined;\n}\n\ninterface HdsCompositeCompositeModifierSignature {\n Element: HTMLElement;\n}\n\ninterface HdsCompositeItemModifierSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n disabled?: boolean;\n };\n };\n}\n\ninterface HdsCompositeGroupModifierSignature {\n Element: HTMLElement;\n}\n\nexport interface HdsCompositeSignature {\n Args: {\n orientation?: HdsCompositeOrientations;\n loop?: boolean | HdsCompositeOrientations;\n wrap?: boolean | HdsCompositeOrientations;\n defaultCurrentId?: string | null;\n };\n Blocks: {\n default: [\n {\n composite: ModifierLike<HdsCompositeCompositeModifierSignature>;\n item: ModifierLike<HdsCompositeItemModifierSignature>;\n group: ModifierLike<HdsCompositeGroupModifierSignature>;\n },\n ];\n };\n}\n\nexport default class Composite extends Component<HdsCompositeSignature> {\n // not tracked because registration happens inside modifier installation\n private _items: HdsCompositeItem[] = [];\n private _groups: HdsCompositeGroup[] = [];\n\n // undefined = uninitialized (auto-select first enabled on registration)\n // null = explicitly no active item (container gets tabindex=\"0\")\n // string = active item id\n private _currentId: string | null | undefined = undefined;\n\n private _compositeElement: HTMLElement | null = null;\n private _preserveTabIndex = false;\n\n constructor(owner: Owner, args: HdsCompositeSignature['Args']) {\n super(owner, args);\n\n if (args.defaultCurrentId !== undefined) {\n this._currentId = args.defaultCurrentId;\n }\n }\n\n private get _resolvedCurrentId(): string | null | undefined {\n // explicitly null (no active item)\n if (this._currentId === null) {\n return null;\n }\n\n const requestedItem = this._items.find(\n (item) => item.id === this._currentId\n );\n\n if (requestedItem !== undefined && requestedItem.disabled === false) {\n return this._currentId;\n }\n\n return this._firstEnabledItem !== undefined\n ? this._firstEnabledItem.id\n : undefined;\n }\n\n private get _currentItem(): HdsCompositeItem | undefined {\n const activeId = this._resolvedCurrentId;\n\n if (activeId === null || activeId === undefined) {\n return undefined;\n }\n\n return this._items.find((item) => item.id === activeId);\n }\n\n private get _firstEnabledItem(): HdsCompositeItem | undefined {\n return findFirstEnabled(this._items);\n }\n\n private get _currentIndex(): number {\n const activeId = this._resolvedCurrentId;\n\n if (activeId === null || activeId === undefined) {\n return -1;\n }\n\n return this._items.findIndex((item) => item.id === activeId);\n }\n\n private get _config(): HdsCompositeNavigationConfig {\n return {\n orientation: this.args.orientation,\n loop: this.args.loop ?? false,\n wrap: this.args.wrap ?? false,\n };\n }\n\n private get _navigationSnapshot(): HdsCompositeNavigationSnapshot {\n return {\n items: this._items,\n groups: this._groups,\n currentItem: this._currentItem,\n currentIndex: this._currentIndex,\n };\n }\n\n private _registerItem(newItem: HdsCompositeItem): void {\n newItem.groupId = findGroupId(newItem.element, this._groups);\n\n this._items = sortByDOMPosition([\n ...this._items.filter((item) => item.id !== newItem.id),\n newItem,\n ]);\n\n this._syncAllElements();\n }\n\n private _unregisterItem(id: string): void {\n const wasCurrent = this._resolvedCurrentId === id;\n this._items = this._items.filter((item) => item.id !== id);\n\n if (wasCurrent) {\n // reset to \"auto\" so newly rendered first items can become active\n this._currentId = undefined;\n this._syncAllElements();\n\n return;\n }\n\n this._syncAllElements();\n }\n\n private _registerGroup(newGroup: HdsCompositeGroup): void {\n this._groups = sortByDOMPosition([\n ...this._groups.filter((group) => group.id !== newGroup.id),\n newGroup,\n ]);\n\n this._reassociateGroups();\n }\n\n private _unregisterGroup(id: string): void {\n this._groups = this._groups.filter((group) => group.id !== id);\n this._reassociateGroups();\n\n const currentExists = this._items.some(\n (item) => item.id === this._resolvedCurrentId\n );\n\n if (!currentExists && this._firstEnabledItem) {\n // reset to \"auto\" so group reordering/mount order can settle first\n this._currentId = undefined;\n this._syncAllElements();\n }\n }\n\n private _reassociateGroups(): void {\n for (const item of this._items) {\n item.groupId = findGroupId(item.element, this._groups);\n }\n }\n\n private _moveTo(id: string): void {\n if (this._currentId === id) {\n return;\n }\n\n const previousItem = this._currentItem;\n\n this._currentId = id;\n\n const nextItem = this._currentItem;\n\n if (previousItem !== undefined) {\n this._syncItemElement(previousItem);\n }\n\n if (nextItem !== undefined) {\n this._syncItemElement(nextItem);\n }\n\n this._syncCompositeElement();\n }\n\n private _syncAllElements(): void {\n for (const item of this._items) {\n this._syncItemElement(item);\n }\n\n this._syncCompositeElement();\n }\n\n private _syncItemElement(item: HdsCompositeItem): void {\n const element = item.element;\n const isCurrent = item.id === this._resolvedCurrentId;\n\n if (item.disabled === true) {\n element.setAttribute('aria-disabled', 'true');\n element.setAttribute('disabled', '');\n element.setAttribute('tabindex', '-1');\n } else {\n element.removeAttribute('aria-disabled');\n element.removeAttribute('disabled');\n element.setAttribute('tabindex', isCurrent === true ? '0' : '-1');\n }\n\n if (isCurrent === true) {\n element.setAttribute('data-active-item', '');\n } else {\n element.removeAttribute('data-active-item');\n }\n\n element.setAttribute('tabindex', isCurrent === true ? '0' : '-1');\n }\n\n private _syncCompositeElement(): void {\n const element = this._compositeElement;\n\n if (element === null || this._preserveTabIndex === true) {\n return;\n }\n\n const activeId = this._resolvedCurrentId;\n\n if (activeId === null || activeId === undefined) {\n element.setAttribute('tabindex', '0');\n } else {\n element.removeAttribute('tabindex');\n }\n }\n\n compositeModifier = modifier<HdsCompositeCompositeModifierSignature>(\n (element: HTMLElement) => {\n this._compositeElement = element;\n this._preserveTabIndex = element.hasAttribute('tabindex');\n\n this._syncCompositeElement();\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const managedKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n\n if (managedKeys.includes(event.key)) {\n event.preventDefault();\n }\n\n const target = handleKey(event, this._navigationSnapshot, this._config);\n\n if (target === undefined) {\n return;\n }\n\n this._moveTo(target.id);\n\n target.element.focus();\n };\n\n element.addEventListener('keydown', onKeyDown);\n\n return () => {\n element.removeEventListener('keydown', onKeyDown);\n\n if (this._compositeElement === element) {\n this._compositeElement = null;\n }\n };\n }\n );\n\n itemModifier = modifier<HdsCompositeItemModifierSignature>(\n (element: HTMLElement, _positional: unknown[], named) => {\n const disabled = named.disabled ?? false;\n const id = getElementId(element, 'composite-item');\n\n element.id = id;\n\n this._registerItem({ id, element, disabled });\n\n const onFocus = (): void => {\n const item = this._items.find((registered) => registered.id === id);\n\n if (item === undefined || item.disabled === true) {\n return;\n }\n\n this._moveTo(id);\n };\n\n element.addEventListener('focus', onFocus);\n\n return () => {\n element.removeEventListener('focus', onFocus);\n\n this._unregisterItem(id);\n };\n }\n );\n\n groupModifier = modifier<HdsCompositeGroupModifierSignature>(\n (element: HTMLElement) => {\n const id = getElementId(element, 'composite-group');\n\n element.id = id;\n\n this._registerGroup({ id, element });\n\n return () => {\n this._unregisterGroup(id);\n };\n }\n );\n\n <template>\n {{yield\n (hash\n composite=this.compositeModifier\n item=this.itemModifier\n group=this.groupModifier\n )\n }}\n </template>\n}\n"],"names":["getElementId","element","prefix","id","guidFor","sortByDOMPosition","items","indexedItems","map","item","index","slice","sort","leftEntry","rightEntry","left","leftIndex","right","rightIndex","isConnected","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","entry","findGroupId","groups","group","contains","undefined","Composite","Component","_items","_groups","_currentId","_compositeElement","_preserveTabIndex","constructor","owner","args","defaultCurrentId","_resolvedCurrentId","requestedItem","find","disabled","_firstEnabledItem","_currentItem","activeId","findFirstEnabled","_currentIndex","findIndex","_config","orientation","loop","wrap","_navigationSnapshot","currentItem","currentIndex","_registerItem","newItem","groupId","filter","_syncAllElements","_unregisterItem","wasCurrent","_registerGroup","newGroup","_reassociateGroups","_unregisterGroup","currentExists","some","_moveTo","previousItem","nextItem","_syncItemElement","_syncCompositeElement","isCurrent","setAttribute","removeAttribute","compositeModifier","modifier","hasAttribute","onKeyDown","event","managedKeys","includes","key","preventDefault","target","handleKey","focus","addEventListener","removeEventListener","itemModifier","_positional","named","onFocus","registered","groupModifier","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sources":["../../../../src/components/hds/composite/navigation.ts"],"sourcesContent":["import type {\n HdsCompositeItem,\n HdsCompositeNavigationConfig,\n HdsCompositeNavigationSnapshot,\n HdsCompositeOrientations,\n} from './types.ts';\n\nfunction matchesAxis(\n value: boolean | HdsCompositeOrientations,\n axis: HdsCompositeOrientations\n): boolean {\n // `true` matches all axes, a string value matches only that axis\n return value === true || value === axis;\n}\n\nfunction findEnabledItem(\n items: HdsCompositeItem[],\n startIndex: number,\n direction: 1 | -1,\n loop: boolean\n): HdsCompositeItem | undefined {\n const length = items.length;\n\n if (length === 0) {\n return undefined;\n }\n\n let index = startIndex + direction;\n\n if (loop === true) {\n for (let step = 0; step < length; step++) {\n const item = items[((index % length) + length) % length]!;\n\n if (item.disabled === false) {\n return item;\n }\n\n index += direction;\n }\n } else {\n while (index >= 0 && index < length) {\n const item = items[index]!;\n\n if (item.disabled === false) {\n return item;\n }\n\n index += direction;\n }\n }\n\n return undefined;\n}\n\nexport function findFirstEnabled(\n items: HdsCompositeItem[]\n): HdsCompositeItem | undefined {\n return items.find((item) => item.disabled === false);\n}\n\nfunction findLastEnabled(\n items: HdsCompositeItem[]\n): HdsCompositeItem | undefined {\n for (let index = items.length - 1; index >= 0; index--) {\n if (items[index]!.disabled === false) {\n return items[index];\n }\n }\n\n return undefined;\n}\n\nfunction getItemsInGroup(\n items: HdsCompositeItem[],\n groupId: string\n): HdsCompositeItem[] {\n return items.filter((item) => item.groupId === groupId);\n}\n\nfunction resolveColumnTarget(\n targetItems: HdsCompositeItem[],\n columnIndex: number\n): HdsCompositeItem | undefined {\n if (columnIndex < 0 || columnIndex >= targetItems.length) {\n return findLastEnabled(targetItems);\n }\n\n const target = targetItems[columnIndex]!;\n\n if (target.disabled === false) {\n return target;\n }\n\n return (\n findEnabledItem(targetItems, columnIndex, 1, false) ??\n findEnabledItem(targetItems, columnIndex, -1, false)\n );\n}\n\nexport function handleKey(\n event: KeyboardEvent,\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig\n): HdsCompositeItem | undefined {\n const { key, ctrlKey } = event;\n const hasGroups = snapshot.groups.length > 0;\n\n if (hasGroups === true && config.orientation === undefined) {\n return handle2DKey(key, ctrlKey, snapshot, config);\n }\n\n return handle1DKey(key, snapshot, config);\n}\n\nfunction handle1DKey(\n key: string,\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig\n): HdsCompositeItem | undefined {\n const { orientation } = config;\n\n switch (key) {\n case 'ArrowRight':\n if (orientation === 'vertical') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'horizontal', 1);\n\n case 'ArrowLeft':\n if (orientation === 'vertical') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'horizontal', -1);\n\n case 'ArrowDown':\n if (orientation === 'horizontal') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'vertical', 1);\n\n case 'ArrowUp':\n if (orientation === 'horizontal') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'vertical', -1);\n\n case 'Home':\n return findFirstEnabled(snapshot.items);\n\n case 'End':\n return findLastEnabled(snapshot.items);\n\n default:\n return undefined;\n }\n}\n\nfunction handle2DKey(\n key: string,\n ctrlKey: boolean,\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig\n): HdsCompositeItem | undefined {\n switch (key) {\n case 'ArrowRight':\n return navigateInRow(snapshot, config, 1);\n\n case 'ArrowLeft':\n return navigateInRow(snapshot, config, -1);\n\n case 'ArrowDown':\n return navigateColumn(snapshot, config, 1);\n\n case 'ArrowUp':\n return navigateColumn(snapshot, config, -1);\n\n case 'Home':\n if (ctrlKey === true) {\n return findFirstEnabled(snapshot.items);\n }\n\n return navigateRowEnd(snapshot, -1);\n\n case 'End':\n if (ctrlKey === true) {\n return findLastEnabled(snapshot.items);\n }\n\n return navigateRowEnd(snapshot, 1);\n\n case 'PageDown':\n return navigateColumnEnd(snapshot, 1);\n\n case 'PageUp':\n return navigateColumnEnd(snapshot, -1);\n\n default:\n return undefined;\n }\n}\n\nfunction navigateLinear(\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig,\n axis: HdsCompositeOrientations,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { items, currentIndex } = snapshot;\n\n if (currentIndex === -1) {\n return direction === 1 ? findFirstEnabled(items) : findLastEnabled(items);\n }\n\n return findEnabledItem(\n items,\n currentIndex,\n direction,\n matchesAxis(config.loop, axis)\n );\n}\n\nfunction navigateInRow(\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items, groups } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const rowItems = getItemsInGroup(items, currentItem.groupId);\n const rowIndex = rowItems.findIndex((item) => item.id === currentItem.id);\n const shouldLoop = matchesAxis(config.loop, 'horizontal');\n const found = findEnabledItem(rowItems, rowIndex, direction, shouldLoop);\n\n if (found !== undefined) {\n return found;\n }\n\n if (matchesAxis(config.wrap, 'horizontal') === false) {\n return undefined;\n }\n\n const groupIndex = groups.findIndex(\n (group) => group.id === currentItem.groupId\n );\n const adjacentGroupIndex = groupIndex + direction;\n\n if (adjacentGroupIndex < 0 || adjacentGroupIndex >= groups.length) {\n return undefined;\n }\n\n const adjacentItems = getItemsInGroup(items, groups[adjacentGroupIndex]!.id);\n\n return direction === 1\n ? findFirstEnabled(adjacentItems)\n : findLastEnabled(adjacentItems);\n}\n\nfunction navigateColumn(\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items, groups } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const columnIndex = getItemsInGroup(items, currentItem.groupId).findIndex(\n (item) => item.id === currentItem.id\n );\n\n const currentGroupIndex = groups.findIndex(\n (group) => group.id === currentItem.groupId\n );\n\n let targetGroupIndex = currentGroupIndex + direction;\n\n if (matchesAxis(config.loop, 'vertical') === true) {\n const length = groups.length;\n targetGroupIndex = ((targetGroupIndex % length) + length) % length;\n\n for (let step = 0; step < length - 1; step++) {\n const targetItems = getItemsInGroup(items, groups[targetGroupIndex]!.id);\n const target = resolveColumnTarget(targetItems, columnIndex);\n\n if (target !== undefined) {\n return target;\n }\n\n targetGroupIndex =\n (((targetGroupIndex + direction) % length) + length) % length;\n }\n\n return undefined;\n } else if (targetGroupIndex < 0 || targetGroupIndex >= groups.length) {\n if (matchesAxis(config.wrap, 'vertical') === false) {\n return undefined;\n }\n\n let wrapGroupIndex = direction === 1 ? 0 : groups.length - 1;\n const nextColumnIndex = columnIndex + direction;\n\n if (nextColumnIndex < 0) {\n return undefined;\n }\n\n while (wrapGroupIndex >= 0 && wrapGroupIndex < groups.length) {\n const wrapItems = getItemsInGroup(items, groups[wrapGroupIndex]!.id);\n\n if (nextColumnIndex < wrapItems.length) {\n const target = resolveColumnTarget(wrapItems, nextColumnIndex);\n\n if (target !== undefined) {\n return target;\n }\n }\n\n wrapGroupIndex += direction;\n }\n\n return undefined;\n }\n\n while (targetGroupIndex >= 0 && targetGroupIndex < groups.length) {\n const targetItems = getItemsInGroup(items, groups[targetGroupIndex]!.id);\n const target = resolveColumnTarget(targetItems, columnIndex);\n\n if (target !== undefined) {\n return target;\n }\n\n targetGroupIndex += direction;\n }\n\n return undefined;\n}\n\nfunction navigateColumnEnd(\n snapshot: HdsCompositeNavigationSnapshot,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items, groups } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const columnIndex = getItemsInGroup(items, currentItem.groupId).findIndex(\n (item) => item.id === currentItem.id\n );\n\n let targetGroupIndex = direction === 1 ? groups.length - 1 : 0;\n\n while (targetGroupIndex >= 0 && targetGroupIndex < groups.length) {\n const targetItems = getItemsInGroup(items, groups[targetGroupIndex]!.id);\n const target = resolveColumnTarget(targetItems, columnIndex);\n\n if (target !== undefined) {\n return target;\n }\n\n targetGroupIndex -= direction;\n }\n\n return undefined;\n}\n\nfunction navigateRowEnd(\n snapshot: HdsCompositeNavigationSnapshot,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const rowItems = getItemsInGroup(items, currentItem.groupId);\n\n return direction === 1\n ? findLastEnabled(rowItems)\n : findFirstEnabled(rowItems);\n}\n"],"names":["matchesAxis","value","axis","findEnabledItem","items","startIndex","direction","loop","length","undefined","index","step","item","disabled","findFirstEnabled","find","findLastEnabled","getItemsInGroup","groupId","filter","resolveColumnTarget","targetItems","columnIndex","target","handleKey","event","snapshot","config","key","ctrlKey","hasGroups","groups","orientation","handle2DKey","handle1DKey","navigateLinear","navigateInRow","navigateColumn","navigateRowEnd","navigateColumnEnd","currentIndex","currentItem","rowItems","rowIndex","findIndex","id","shouldLoop","found","wrap","groupIndex","group","adjacentGroupIndex","adjacentItems","currentGroupIndex","targetGroupIndex","wrapGroupIndex","nextColumnIndex","wrapItems"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation.js","sources":["../../../../src/components/hds/composite/navigation.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type {\n HdsCompositeItem,\n HdsCompositeNavigationConfig,\n HdsCompositeNavigationSnapshot,\n HdsCompositeOrientations,\n} from './types.ts';\n\nfunction matchesAxis(\n value: boolean | HdsCompositeOrientations,\n axis: HdsCompositeOrientations\n): boolean {\n // `true` matches all axes, a string value matches only that axis\n return value === true || value === axis;\n}\n\nfunction findEnabledItem(\n items: HdsCompositeItem[],\n startIndex: number,\n direction: 1 | -1,\n loop: boolean\n): HdsCompositeItem | undefined {\n const length = items.length;\n\n if (length === 0) {\n return undefined;\n }\n\n let index = startIndex + direction;\n\n if (loop === true) {\n for (let step = 0; step < length; step++) {\n const item = items[((index % length) + length) % length]!;\n\n if (item.disabled === false) {\n return item;\n }\n\n index += direction;\n }\n } else {\n while (index >= 0 && index < length) {\n const item = items[index]!;\n\n if (item.disabled === false) {\n return item;\n }\n\n index += direction;\n }\n }\n\n return undefined;\n}\n\nexport function findFirstEnabled(\n items: HdsCompositeItem[]\n): HdsCompositeItem | undefined {\n return items.find((item) => item.disabled === false);\n}\n\nfunction findLastEnabled(\n items: HdsCompositeItem[]\n): HdsCompositeItem | undefined {\n for (let index = items.length - 1; index >= 0; index--) {\n if (items[index]!.disabled === false) {\n return items[index];\n }\n }\n\n return undefined;\n}\n\nfunction getItemsInGroup(\n items: HdsCompositeItem[],\n groupId: string\n): HdsCompositeItem[] {\n return items.filter((item) => item.groupId === groupId);\n}\n\nfunction resolveColumnTarget(\n targetItems: HdsCompositeItem[],\n columnIndex: number\n): HdsCompositeItem | undefined {\n if (columnIndex < 0 || columnIndex >= targetItems.length) {\n return findLastEnabled(targetItems);\n }\n\n const target = targetItems[columnIndex]!;\n\n if (target.disabled === false) {\n return target;\n }\n\n return (\n findEnabledItem(targetItems, columnIndex, 1, false) ??\n findEnabledItem(targetItems, columnIndex, -1, false)\n );\n}\n\nexport function handleKey(\n event: KeyboardEvent,\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig\n): HdsCompositeItem | undefined {\n const { key, ctrlKey } = event;\n const hasGroups = snapshot.groups.length > 0;\n\n if (hasGroups === true && config.orientation === undefined) {\n return handle2DKey(key, ctrlKey, snapshot, config);\n }\n\n return handle1DKey(key, snapshot, config);\n}\n\nfunction handle1DKey(\n key: string,\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig\n): HdsCompositeItem | undefined {\n const { orientation } = config;\n\n switch (key) {\n case 'ArrowRight':\n if (orientation === 'vertical') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'horizontal', 1);\n\n case 'ArrowLeft':\n if (orientation === 'vertical') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'horizontal', -1);\n\n case 'ArrowDown':\n if (orientation === 'horizontal') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'vertical', 1);\n\n case 'ArrowUp':\n if (orientation === 'horizontal') {\n return undefined;\n }\n\n return navigateLinear(snapshot, config, 'vertical', -1);\n\n case 'Home':\n return findFirstEnabled(snapshot.items);\n\n case 'End':\n return findLastEnabled(snapshot.items);\n\n default:\n return undefined;\n }\n}\n\nfunction handle2DKey(\n key: string,\n ctrlKey: boolean,\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig\n): HdsCompositeItem | undefined {\n switch (key) {\n case 'ArrowRight':\n return navigateInRow(snapshot, config, 1);\n\n case 'ArrowLeft':\n return navigateInRow(snapshot, config, -1);\n\n case 'ArrowDown':\n return navigateColumn(snapshot, config, 1);\n\n case 'ArrowUp':\n return navigateColumn(snapshot, config, -1);\n\n case 'Home':\n if (ctrlKey === true) {\n return findFirstEnabled(snapshot.items);\n }\n\n return navigateRowEnd(snapshot, -1);\n\n case 'End':\n if (ctrlKey === true) {\n return findLastEnabled(snapshot.items);\n }\n\n return navigateRowEnd(snapshot, 1);\n\n case 'PageDown':\n return navigateColumnEnd(snapshot, 1);\n\n case 'PageUp':\n return navigateColumnEnd(snapshot, -1);\n\n default:\n return undefined;\n }\n}\n\nfunction navigateLinear(\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig,\n axis: HdsCompositeOrientations,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { items, currentIndex } = snapshot;\n\n if (currentIndex === -1) {\n return direction === 1 ? findFirstEnabled(items) : findLastEnabled(items);\n }\n\n return findEnabledItem(\n items,\n currentIndex,\n direction,\n matchesAxis(config.loop, axis)\n );\n}\n\nfunction navigateInRow(\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items, groups } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const rowItems = getItemsInGroup(items, currentItem.groupId);\n const rowIndex = rowItems.findIndex((item) => item.id === currentItem.id);\n const shouldLoop = matchesAxis(config.loop, 'horizontal');\n const found = findEnabledItem(rowItems, rowIndex, direction, shouldLoop);\n\n if (found !== undefined) {\n return found;\n }\n\n if (matchesAxis(config.wrap, 'horizontal') === false) {\n return undefined;\n }\n\n const groupIndex = groups.findIndex(\n (group) => group.id === currentItem.groupId\n );\n const adjacentGroupIndex = groupIndex + direction;\n\n if (adjacentGroupIndex < 0 || adjacentGroupIndex >= groups.length) {\n return undefined;\n }\n\n const adjacentItems = getItemsInGroup(items, groups[adjacentGroupIndex]!.id);\n\n return direction === 1\n ? findFirstEnabled(adjacentItems)\n : findLastEnabled(adjacentItems);\n}\n\nfunction navigateColumn(\n snapshot: HdsCompositeNavigationSnapshot,\n config: HdsCompositeNavigationConfig,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items, groups } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const columnIndex = getItemsInGroup(items, currentItem.groupId).findIndex(\n (item) => item.id === currentItem.id\n );\n\n const currentGroupIndex = groups.findIndex(\n (group) => group.id === currentItem.groupId\n );\n\n let targetGroupIndex = currentGroupIndex + direction;\n\n if (matchesAxis(config.loop, 'vertical') === true) {\n const length = groups.length;\n targetGroupIndex = ((targetGroupIndex % length) + length) % length;\n\n for (let step = 0; step < length - 1; step++) {\n const targetItems = getItemsInGroup(items, groups[targetGroupIndex]!.id);\n const target = resolveColumnTarget(targetItems, columnIndex);\n\n if (target !== undefined) {\n return target;\n }\n\n targetGroupIndex =\n (((targetGroupIndex + direction) % length) + length) % length;\n }\n\n return undefined;\n } else if (targetGroupIndex < 0 || targetGroupIndex >= groups.length) {\n if (matchesAxis(config.wrap, 'vertical') === false) {\n return undefined;\n }\n\n let wrapGroupIndex = direction === 1 ? 0 : groups.length - 1;\n const nextColumnIndex = columnIndex + direction;\n\n if (nextColumnIndex < 0) {\n return undefined;\n }\n\n while (wrapGroupIndex >= 0 && wrapGroupIndex < groups.length) {\n const wrapItems = getItemsInGroup(items, groups[wrapGroupIndex]!.id);\n\n if (nextColumnIndex < wrapItems.length) {\n const target = resolveColumnTarget(wrapItems, nextColumnIndex);\n\n if (target !== undefined) {\n return target;\n }\n }\n\n wrapGroupIndex += direction;\n }\n\n return undefined;\n }\n\n while (targetGroupIndex >= 0 && targetGroupIndex < groups.length) {\n const targetItems = getItemsInGroup(items, groups[targetGroupIndex]!.id);\n const target = resolveColumnTarget(targetItems, columnIndex);\n\n if (target !== undefined) {\n return target;\n }\n\n targetGroupIndex += direction;\n }\n\n return undefined;\n}\n\nfunction navigateColumnEnd(\n snapshot: HdsCompositeNavigationSnapshot,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items, groups } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const columnIndex = getItemsInGroup(items, currentItem.groupId).findIndex(\n (item) => item.id === currentItem.id\n );\n\n let targetGroupIndex = direction === 1 ? groups.length - 1 : 0;\n\n while (targetGroupIndex >= 0 && targetGroupIndex < groups.length) {\n const targetItems = getItemsInGroup(items, groups[targetGroupIndex]!.id);\n const target = resolveColumnTarget(targetItems, columnIndex);\n\n if (target !== undefined) {\n return target;\n }\n\n targetGroupIndex -= direction;\n }\n\n return undefined;\n}\n\nfunction navigateRowEnd(\n snapshot: HdsCompositeNavigationSnapshot,\n direction: 1 | -1\n): HdsCompositeItem | undefined {\n const { currentItem, items } = snapshot;\n\n if (currentItem === undefined || currentItem.groupId === undefined) {\n return undefined;\n }\n\n const rowItems = getItemsInGroup(items, currentItem.groupId);\n\n return direction === 1\n ? findLastEnabled(rowItems)\n : findFirstEnabled(rowItems);\n}\n"],"names":["matchesAxis","value","axis","findEnabledItem","items","startIndex","direction","loop","length","undefined","index","step","item","disabled","findFirstEnabled","find","findLastEnabled","getItemsInGroup","groupId","filter","resolveColumnTarget","targetItems","columnIndex","target","handleKey","event","snapshot","config","key","ctrlKey","hasGroups","groups","orientation","handle2DKey","handle1DKey","navigateLinear","navigateInRow","navigateColumn","navigateRowEnd","navigateColumnEnd","currentIndex","currentItem","rowItems","rowIndex","findIndex","id","shouldLoop","found","wrap","groupIndex","group","adjacentGroupIndex","adjacentItems","currentGroupIndex","targetGroupIndex","wrapGroupIndex","nextColumnIndex","wrapItems"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
10
10
|
import { g, i } from 'decorator-transforms/runtime';
|
|
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
|
const DEFAULT_SIZE = HdsCopyButtonSizeValues.Medium;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/button/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/button/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport { service } from '@ember/service';\n\nimport { HdsCopyButtonSizeValues } from './types.ts';\nimport HdsButton from '../../button/index.gts';\nimport hdsClipboard from '../../../../modifiers/hds-clipboard.ts';\n\nimport type { HdsCopyButtonSizes } from './types.ts';\nimport type { HdsButtonSignature } from '../../button/index.gts';\nimport type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts';\nimport type { HdsIconSignature } from '../../icon/index.gts';\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\n\nexport const DEFAULT_SIZE = HdsCopyButtonSizeValues.Medium;\nexport const SIZES: HdsCopyButtonSizes[] = Object.values(\n HdsCopyButtonSizeValues\n);\nexport const DEFAULT_ICON = 'clipboard-copy';\nexport const SUCCESS_ICON = 'clipboard-checked';\nexport const ERROR_ICON = 'clipboard-x';\nexport const DEFAULT_STATUS = 'idle';\n\nexport interface HdsCopyButtonSignature {\n Args: HdsButtonSignature['Args'] & {\n size?: HdsCopyButtonSizes;\n textToCopy?: HdsClipboardModifierSignature['Args']['Named']['text'];\n targetToCopy?: HdsClipboardModifierSignature['Args']['Named']['target'];\n onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess'];\n onError?: HdsClipboardModifierSignature['Args']['Named']['onError'];\n ariaMessageText?: string;\n };\n Element: HdsButtonSignature['Element'];\n}\n\nexport default class HdsCopyButton extends Component<HdsCopyButtonSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n @tracked private _status = DEFAULT_STATUS;\n @tracked private _timer: ReturnType<typeof setTimeout> | undefined;\n\n get icon(): HdsIconSignature['Args']['name'] {\n let icon: HdsIconSignature['Args']['name'] = DEFAULT_ICON;\n if (this._status === 'success') {\n icon = SUCCESS_ICON;\n } else if (this._status === 'error') {\n icon = ERROR_ICON;\n }\n return icon;\n }\n\n get size(): HdsCopyButtonSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Copy::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n get classNames(): string {\n const classes = ['hds-copy-button'];\n\n // add a class based on the @size argument\n classes.push(`hds-button--size-${this.size}`);\n\n classes.push(`hds-copy-button--status-${this._status}`);\n\n return classes.join(' ');\n }\n\n get ariaMessageText(): string {\n if (this._status === 'success') {\n return (\n this.args.ariaMessageText ??\n this.hdsIntl.t('hds.components.copy-button.aria-message-text', {\n default: 'Copied to clipboard',\n })\n );\n } else {\n return '';\n }\n }\n\n onSuccess = (\n args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']\n ): void => {\n this._status = 'success';\n this.resetStatusDelayed();\n\n const { onSuccess } = this.args;\n\n if (typeof onSuccess === 'function') {\n onSuccess(args);\n }\n };\n\n onError = (\n args: HdsClipboardModifierSignature['Args']['Named']['onError']\n ): void => {\n this._status = 'error';\n this.resetStatusDelayed();\n\n const { onError } = this.args;\n\n if (typeof onError === 'function') {\n onError(args);\n }\n };\n\n resetStatusDelayed = (): void => {\n clearTimeout(this._timer);\n // make it fade back to the default state\n this._timer = setTimeout((): void => {\n this._status = DEFAULT_STATUS;\n }, 1500);\n };\n\n <template>\n <HdsButton\n class={{this.classNames}}\n @size={{this.size}}\n @isFullWidth={{@isFullWidth}}\n @text={{@text}}\n @icon={{this.icon}}\n @isIconOnly={{@isIconOnly}}\n @color=\"secondary\"\n @iconPosition=\"trailing\"\n {{hdsClipboard\n text=@textToCopy\n target=@targetToCopy\n onSuccess=this.onSuccess\n onError=this.onError\n }}\n ...attributes\n />\n <span class=\"sr-only\" aria-live=\"polite\">{{this.ariaMessageText}}</span>\n </template>\n}\n"],"names":["DEFAULT_SIZE","HdsCopyButtonSizeValues","Medium","SIZES","Object","values","DEFAULT_ICON","SUCCESS_ICON","ERROR_ICON","DEFAULT_STATUS","HdsCopyButton","Component","g","prototype","service","i","tracked","icon","_status","size","args","assert","join","includes","classNames","classes","push","ariaMessageText","hdsIntl","t","default","onSuccess","resetStatusDelayed","onError","clearTimeout","_timer","setTimeout","setComponentTemplate","precompileTemplate","strictMode","scope","HdsButton","hdsClipboard"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
12
12
|
import { g, i } from 'decorator-transforms/runtime';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Copyright IBM Corp. 2021,
|
|
15
|
+
* Copyright IBM Corp. 2021, 2026
|
|
16
16
|
* SPDX-License-Identifier: MPL-2.0
|
|
17
17
|
*/
|
|
18
18
|
const DEFAULT_COLOR = HdsCopySnippetColorValues.Primary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/snippet/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/snippet/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport { concat } from '@ember/helper';\n\nimport { HdsCopySnippetColorValues } from './types.ts';\nimport HdsTextCode from '../../text/code.gts';\nimport HdsIcon from '../../icon/index.gts';\nimport hdsClipboard from '../../../../modifiers/hds-clipboard.ts';\nimport hdsT from '../../../../helpers/hds-t.ts';\n\nimport type { HdsCopySnippetColors } from './types.ts';\nimport type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts';\nimport type { HdsIconSignature } from '../../icon/index.gts';\n\nexport const DEFAULT_COLOR = HdsCopySnippetColorValues.Primary;\nexport const COLORS: HdsCopySnippetColors[] = Object.values(\n HdsCopySnippetColorValues\n);\n\nexport const DEFAULT_ICON = 'clipboard-copy';\nexport const SUCCESS_ICON = 'clipboard-checked';\nexport const ERROR_ICON = 'clipboard-x';\nexport const DEFAULT_STATUS = 'idle';\n\nexport interface HdsCopySnippetSignature {\n Args: {\n color?: HdsCopySnippetColors;\n isFullWidth?: boolean;\n textToCopy: HdsClipboardModifierSignature['Args']['Named']['text'];\n isTruncated?: boolean;\n onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess'];\n onError?: HdsClipboardModifierSignature['Args']['Named']['onError'];\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsCopySnippet extends Component<HdsCopySnippetSignature> {\n @tracked private _status = DEFAULT_STATUS;\n @tracked private _timer: ReturnType<typeof setTimeout> | undefined;\n\n get textToShow(): string {\n const { textToCopy = '' } = this.args;\n\n if (typeof textToCopy === 'string') {\n return textToCopy;\n } else {\n return textToCopy.toString();\n }\n }\n\n get icon(): HdsIconSignature['Args']['name'] {\n let icon: HdsIconSignature['Args']['name'] = DEFAULT_ICON;\n if (this._status === 'success') {\n icon = SUCCESS_ICON;\n } else if (this._status === 'error') {\n icon = ERROR_ICON;\n }\n return icon;\n }\n\n get color(): HdsCopySnippetColors {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Copy::Snippet\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n get isFullWidth(): boolean {\n return this.args.isFullWidth ?? false;\n }\n\n get isTruncated(): boolean {\n return this.args.isTruncated ?? false;\n }\n\n get classNames(): string {\n const classes = ['hds-copy-snippet'];\n\n // add a class based on the @color argument\n classes.push(`hds-copy-snippet--color-${this.color}`);\n\n // add a class based on the tracked status (idle/success/error)\n classes.push(`hds-copy-snippet--status-${this._status}`);\n\n // add a class based on the @isTruncated argument\n if (this.isTruncated) {\n classes.push('hds-copy-snippet--is-truncated');\n }\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-copy-snippet--width-full');\n }\n\n return classes.join(' ');\n }\n\n onSuccess = (\n args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']\n ): void => {\n this._status = 'success';\n this.resetStatusDelayed();\n\n const { onSuccess } = this.args;\n\n if (typeof onSuccess === 'function') {\n onSuccess(args);\n }\n };\n\n onError = (\n args: HdsClipboardModifierSignature['Args']['Named']['onError']\n ): void => {\n this._status = 'error';\n this.resetStatusDelayed();\n\n const { onError } = this.args;\n\n if (typeof onError === 'function') {\n onError(args);\n }\n };\n\n resetStatusDelayed = (): void => {\n clearTimeout(this._timer);\n // make it fade back to the default state\n this._timer = setTimeout((): void => {\n this._status = DEFAULT_STATUS;\n }, 1500);\n };\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{hdsClipboard\n text=@textToCopy\n onSuccess=this.onSuccess\n onError=this.onError\n }}\n aria-label={{hdsT\n \"hds.components.copy-snippet.button.aria-label\"\n textToCopy=@textToCopy\n default=(concat \"copy \" @textToCopy)\n }}\n ...attributes\n >\n <HdsTextCode class=\"hds-copy-snippet__text\" @tag=\"span\" @size=\"100\">\n {{this.textToShow}}\n </HdsTextCode>\n <HdsIcon @name={{this.icon}} class=\"hds-copy-snippet__icon\" />\n </button>\n </template>\n}\n"],"names":["DEFAULT_COLOR","HdsCopySnippetColorValues","Primary","COLORS","Object","values","DEFAULT_ICON","SUCCESS_ICON","ERROR_ICON","DEFAULT_STATUS","HdsCopySnippet","Component","g","prototype","tracked","i","textToShow","textToCopy","args","toString","icon","_status","color","assert","join","includes","isFullWidth","isTruncated","classNames","classes","push","onSuccess","resetStatusDelayed","onError","clearTimeout","_timer","setTimeout","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","concat","hdsClipboard","HdsTextCode","HdsIcon"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsDialogPrimitiveBody = setComponentTemplate(precompileTemplate("<div class=\"hds-dialog-primitive__body {{@contextualClass}}\" tabindex=\"0\" ...attributes>\n {{yield}}\n</div>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sources":["../../../../src/components/hds/dialog-primitive/body.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"body.js","sources":["../../../../src/components/hds/dialog-primitive/body.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface HdsDialogPrimitiveBodySignature {\n Args: {\n contextualClass?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nconst HdsDialogPrimitiveBody: TemplateOnlyComponent<HdsDialogPrimitiveBodySignature> =\n <template>\n <div\n class=\"hds-dialog-primitive__body {{@contextualClass}}\"\n tabindex=\"0\"\n ...attributes\n >\n {{yield}}\n </div>\n </template>;\n\nexport default HdsDialogPrimitiveBody;\n"],"names":["HdsDialogPrimitiveBody","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAcD,MAAMA,sBAA8C,GAAAC,oBAAA,CAClDC,kBAAA,CAAA,mHAAA,EAQA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsDialogPrimitiveDescription = setComponentTemplate(precompileTemplate("<div class=\"hds-dialog-primitive__description hds-typography-body-200 hds-foreground-primary\n {{@contextualClass}}\" ...attributes>\n {{yield}}\n</div>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"description.js","sources":["../../../../src/components/hds/dialog-primitive/description.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"description.js","sources":["../../../../src/components/hds/dialog-primitive/description.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface HdsDialogPrimitiveDescriptionSignature {\n Args: {\n contextualClass?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nconst HdsDialogPrimitiveDescription: TemplateOnlyComponent<HdsDialogPrimitiveDescriptionSignature> =\n <template>\n <div\n class=\"hds-dialog-primitive__description hds-typography-body-200 hds-foreground-primary\n {{@contextualClass}}\"\n ...attributes\n >\n {{yield}}\n </div>\n </template>;\n\nexport default HdsDialogPrimitiveDescription;\n"],"names":["HdsDialogPrimitiveDescription","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAcD,MAAMA,6BAAqD,GAAAC,oBAAA,CACzDC,kBAAA,CAAA,+JAAA,EAQA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -4,7 +4,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Copyright IBM Corp. 2021,
|
|
7
|
+
* Copyright IBM Corp. 2021, 2026
|
|
8
8
|
* SPDX-License-Identifier: MPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
const NOOP = () => {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sources":["../../../../src/components/hds/dialog-primitive/footer.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"footer.js","sources":["../../../../src/components/hds/dialog-primitive/footer.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n\nexport interface HdsDialogPrimitiveFooterSignature {\n Args: {\n contextualClass?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n };\n Blocks: {\n default: [\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n close: (event: MouseEvent, ...args: any[]) => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nconst NOOP = (): void => {};\n\nexport default class HdsDialogPrimitiveFooter extends Component<HdsDialogPrimitiveFooterSignature> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onDismiss(): (event: MouseEvent, ...args: any[]) => void {\n const { onDismiss } = this.args;\n\n // notice: this is to make sure the function is always defined when consumers add `{{on 'click' F.close}}` to a button in the DialogFooter.\n // in reality it's always used inside the main components as a yielded component, so the onDismiss handler is always defined\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return NOOP;\n }\n }\n\n <template>\n <div\n class=\"hds-dialog-primitive__footer {{@contextualClass}}\"\n ...attributes\n >\n {{yield (hash close=this.onDismiss)}}\n </div>\n </template>\n}\n"],"names":["NOOP","HdsDialogPrimitiveFooter","Component","onDismiss","args","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":";;;;;AAAA;;;AAGC;AAsBD,MAAMA,IAAA,GAAOA,MAAQ,CAAK,CAAA;AAEX,MAAMC,iCAAiCC,SAAA,CAAU;AAC9D;EACA,IAAIC,SAAAA,GAAyD;IAC3D,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACC,IAAI;AAE/B;AACA;AACA,IAAA,IAAI,OAAOD,cAAc,UAAA,EAAY;AACnC,MAAA,OAAOA,SAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOH,IAAA;AACT,IAAA;AACF,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,kIAAA,EAOA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -4,14 +4,12 @@ import { on } from '@ember/modifier';
|
|
|
4
4
|
import { element } from 'ember-element-helper';
|
|
5
5
|
import { HdsDialogPrimitiveHeaderTitleTagValues } from './types.js';
|
|
6
6
|
import HdsIcon from '../icon/index.js';
|
|
7
|
-
import HdsTextBody from '../text/body.js';
|
|
8
|
-
import HdsTextDisplay from '../text/display.js';
|
|
9
7
|
import HdsDismissButton from '../dismiss-button/index.js';
|
|
10
8
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
11
9
|
import { setComponentTemplate } from '@ember/component';
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
|
-
* Copyright IBM Corp. 2021,
|
|
12
|
+
* Copyright IBM Corp. 2021, 2026
|
|
15
13
|
* SPDX-License-Identifier: MPL-2.0
|
|
16
14
|
*/
|
|
17
15
|
const NOOP = () => {};
|
|
@@ -33,14 +31,12 @@ class HdsDialogPrimitiveHeader extends Component {
|
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
static {
|
|
36
|
-
setComponentTemplate(precompileTemplate("<div class=\"hds-dialog-primitive__header\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__header\")}}\" ...attributes>\n {{#if @icon}}\n <HdsIcon class=\"hds-dialog-primitive__icon\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__icon\")}}\" @name={{@icon}} @size=\"24\" />\n {{/if}}\n\n {{#let (element this.titleTag) as |Tag|}}<Tag class=\"hds-dialog-primitive__title\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__title\")}}\" id={{@id}}>\n {{#if @tagline}}\n <
|
|
34
|
+
setComponentTemplate(precompileTemplate("<div class=\"hds-dialog-primitive__header\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__header\")}}\" ...attributes>\n {{#if @icon}}\n <HdsIcon class=\"hds-dialog-primitive__icon\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__icon\")}}\" @name={{@icon}} @size=\"24\" />\n {{/if}}\n\n {{#let (element this.titleTag) as |Tag|}}<Tag class=\"hds-dialog-primitive__title\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__title\")}}\" id={{@id}}>\n {{#if @tagline}}\n <div class=\"hds-dialog-primitive__tagline\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__tagline\")}}\">\n {{@tagline}}\n </div>\n {{/if}}\n\n {{yield}}\n </Tag>\n {{/let}}\n\n <HdsDismissButton class=\"hds-dialog-primitive__dismiss\n {{if @contextualClassPrefix (concat @contextualClassPrefix \"__dismiss\")}}\" {{on \"click\" this.onDismiss}} />\n</div>", {
|
|
37
35
|
strictMode: true,
|
|
38
36
|
scope: () => ({
|
|
39
37
|
concat,
|
|
40
38
|
HdsIcon,
|
|
41
39
|
element,
|
|
42
|
-
HdsTextBody,
|
|
43
|
-
HdsTextDisplay,
|
|
44
40
|
HdsDismissButton,
|
|
45
41
|
on
|
|
46
42
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","sources":["../../../../src/components/hds/dialog-primitive/header.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"header.js","sources":["../../../../src/components/hds/dialog-primitive/header.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { concat } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { element } from 'ember-element-helper';\n\nimport { HdsDialogPrimitiveHeaderTitleTagValues } from './types.ts';\nimport HdsIcon from '../icon/index.gts';\nimport HdsDismissButton from '../dismiss-button/index.gts';\n\nimport type { HdsIconSignature } from '../icon/index.gts';\nimport type { HdsDialogPrimitiveHeaderTitleTags } from './types.ts';\n\nexport interface HdsDialogPrimitiveHeaderSignature {\n Args: {\n contextualClassPrefix?: string;\n id?: string;\n icon?: HdsIconSignature['Args']['name'];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n titleTag?: HdsDialogPrimitiveHeaderTitleTags;\n tagline?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nconst NOOP = (): void => {};\n\nexport default class HdsDialogPrimitiveHeader extends Component<HdsDialogPrimitiveHeaderSignature> {\n get titleTag(): HdsDialogPrimitiveHeaderTitleTags {\n return this.args.titleTag ?? HdsDialogPrimitiveHeaderTitleTagValues.Div;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onDismiss(): (event: MouseEvent, ...args: any[]) => void {\n const { onDismiss } = this.args;\n\n // notice: this is a guard used in case the button is used as standalone element (eg. in the showcase)\n // in reality it's always used inside the main components as a yielded component, so the onDismiss handler is always defined\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return NOOP;\n }\n }\n\n <template>\n <div\n class=\"hds-dialog-primitive__header\n {{if\n @contextualClassPrefix\n (concat @contextualClassPrefix '__header')\n }}\"\n ...attributes\n >\n {{#if @icon}}\n <HdsIcon\n class=\"hds-dialog-primitive__icon\n {{if\n @contextualClassPrefix\n (concat @contextualClassPrefix '__icon')\n }}\"\n @name={{@icon}}\n @size=\"24\"\n />\n {{/if}}\n\n {{#let (element this.titleTag) as |Tag|}}<Tag\n class=\"hds-dialog-primitive__title\n {{if\n @contextualClassPrefix\n (concat @contextualClassPrefix '__title')\n }}\"\n id={{@id}}\n >\n {{#if @tagline}}\n <div\n class=\"hds-dialog-primitive__tagline\n {{if\n @contextualClassPrefix\n (concat @contextualClassPrefix '__tagline')\n }}\"\n >\n {{@tagline}}\n </div>\n {{/if}}\n\n {{yield}}\n </Tag>\n {{/let}}\n\n <HdsDismissButton\n class=\"hds-dialog-primitive__dismiss\n {{if\n @contextualClassPrefix\n (concat @contextualClassPrefix '__dismiss')\n }}\"\n {{on \"click\" this.onDismiss}}\n />\n </div>\n </template>\n}\n"],"names":["NOOP","HdsDialogPrimitiveHeader","Component","titleTag","args","HdsDialogPrimitiveHeaderTitleTagValues","Div","onDismiss","setComponentTemplate","precompileTemplate","strictMode","scope","concat","HdsIcon","element","HdsDismissButton","on"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AA8BD,MAAMA,IAAA,GAAOA,MAAQ,CAAK,CAAA;AAEX,MAAMC,iCAAiCC,SAAA,CAAU;EAC9D,IAAIC,WAA8C;IAChD,OAAO,IAAI,CAACC,IAAI,CAACD,QAAQ,IAAIE,uCAAuCC,GAAG;AACzE,EAAA;AAEA;EACA,IAAIC,SAAAA,GAAyD;IAC3D,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACH,IAAI;AAE/B;AACA;AACA,IAAA,IAAI,OAAOG,cAAc,UAAA,EAAY;AACnC,MAAA,OAAOA,SAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOP,IAAA;AACT,IAAA;AACF,EAAA;AAEA,EAAA;IAAAQ,oBAAA,CAAAC,kBAAA,CAAA,48BAAA,EAsDA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,gBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsDialogPrimitiveOverlay = setComponentTemplate(precompileTemplate("<div class=\"hds-dialog-primitive__overlay {{@contextualClass}}\"></div>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sources":["../../../../src/components/hds/dialog-primitive/overlay.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"overlay.js","sources":["../../../../src/components/hds/dialog-primitive/overlay.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface HdsDialogPrimitiveOverlaySignature {\n Args: {\n contextualClass?: string;\n };\n Element: HTMLDivElement;\n}\n\nconst HdsDialogPrimitiveOverlay: TemplateOnlyComponent<HdsDialogPrimitiveOverlaySignature> =\n <template>\n <div class=\"hds-dialog-primitive__overlay {{@contextualClass}}\"></div>\n </template>;\n\nexport default HdsDialogPrimitiveOverlay;\n"],"names":["HdsDialogPrimitiveOverlay","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAWD,MAAMA,yBAAiD,GAAAC,oBAAA,CACrDC,kBAAA,CAAA,0EAAA,EAEA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsDialogPrimitiveWrapper = setComponentTemplate(precompileTemplate("<dialog class=\"hds-dialog-primitive__wrapper\" ...attributes>\n <div class=\"hds-dialog-primitive__wrapper-header\">\n {{yield to=\"header\"}}\n </div>\n <div class=\"hds-dialog-primitive__wrapper-body\">\n {{yield to=\"body\"}}\n </div>\n <div class=\"hds-dialog-primitive__wrapper-footer\">\n {{yield to=\"footer\"}}\n </div>\n</dialog>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sources":["../../../../src/components/hds/dialog-primitive/wrapper.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"wrapper.js","sources":["../../../../src/components/hds/dialog-primitive/wrapper.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface HdsDialogPrimitiveWrapperSignature {\n Blocks: {\n header?: [];\n body?: [];\n footer?: [];\n };\n Element: HTMLDialogElement;\n}\n\nconst HdsDialogPrimitiveWrapper: TemplateOnlyComponent<HdsDialogPrimitiveWrapperSignature> =\n <template>\n <dialog class=\"hds-dialog-primitive__wrapper\" ...attributes>\n <div class=\"hds-dialog-primitive__wrapper-header\">\n {{yield to=\"header\"}}\n </div>\n <div class=\"hds-dialog-primitive__wrapper-body\">\n {{yield to=\"body\"}}\n </div>\n <div class=\"hds-dialog-primitive__wrapper-footer\">\n {{yield to=\"footer\"}}\n </div>\n </dialog>\n </template>;\n\nexport default HdsDialogPrimitiveWrapper;\n"],"names":["HdsDialogPrimitiveWrapper","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAaD,MAAMA,yBAAiD,GAAAC,oBAAA,CACrDC,kBAAA,CAAA,oWAAA,EAYA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -9,7 +9,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
9
9
|
import { g, i } from 'decorator-transforms/runtime';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Copyright IBM Corp. 2021,
|
|
12
|
+
* Copyright IBM Corp. 2021, 2026
|
|
13
13
|
* SPDX-License-Identifier: MPL-2.0
|
|
14
14
|
*/
|
|
15
15
|
class HdsDisclosurePrimitive extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/disclosure-primitive/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/disclosure-primitive/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { schedule } from '@ember/runloop';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nexport interface HdsDisclosurePrimitiveSignature {\n Args: {\n isOpen?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClose?: (...args: any[]) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClickToggle?: (...args: any[]) => void;\n };\n Blocks: {\n toggle: [\n {\n contentId: string;\n isOpen: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClickToggle: (...args: any[]) => void;\n },\n ];\n content: [\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n close: (...args: any[]) => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsDisclosurePrimitive extends Component<HdsDisclosurePrimitiveSignature> {\n @tracked private _isOpen = false;\n @tracked private _isControlled = this.args.isOpen !== undefined;\n private _contentId = 'content-' + guidFor(this);\n\n get isOpen(): boolean {\n if (this._isControlled) {\n // if the state is controlled from outside, the argument overrides the internal state\n return this.args.isOpen ?? this._isOpen;\n } else {\n // if the state changes internally, the internal state overrides the argument\n return this._isOpen;\n }\n }\n\n set isOpen(value) {\n this._isOpen = value || false;\n }\n\n onClickToggle = (): void => {\n this.isOpen = !this.isOpen;\n this._isControlled = false;\n // we call the \"onClickToggle\" callback if it exists and it's a function\n if (\n this.args.onClickToggle &&\n typeof this.args.onClickToggle === 'function'\n ) {\n this.args.onClickToggle(this.isOpen);\n }\n };\n\n onStateChange = () => {\n if (this.args.isOpen !== undefined) {\n this.isOpen = this.args.isOpen;\n }\n this._isControlled = true;\n };\n\n close = (): void => {\n // we schedule this afterRender to avoid an error in tests caused by updating `isOpen` multiple times in the same computation\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.isOpen = false;\n // we call the \"onClose\" callback if it exists (and is a function)\n if (this.args.onClose && typeof this.args.onClose === 'function') {\n this.args.onClose();\n }\n });\n };\n\n <template>\n <div\n class=\"hds-disclosure-primitive\"\n {{didUpdate this.onStateChange @isOpen}}\n ...attributes\n >\n <div class=\"hds-disclosure-primitive__toggle\">\n {{yield\n (hash\n onClickToggle=this.onClickToggle\n isOpen=this.isOpen\n contentId=this._contentId\n )\n to=\"toggle\"\n }}\n </div>\n <div class=\"hds-disclosure-primitive__content\" id={{this._contentId}}>\n {{#if this.isOpen}}\n {{yield (hash close=this.close) to=\"content\"}}\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["HdsDisclosurePrimitive","Component","g","prototype","tracked","i","args","isOpen","undefined","_contentId","guidFor","_isControlled","_isOpen","value","onClickToggle","onStateChange","close","schedule","onClose","setComponentTemplate","precompileTemplate","strictMode","scope","didUpdate","hash"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAqCc,MAAMA,+BAA+BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAC3DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA0B,KAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAC1BC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAgC,IAAI,CAACE,IAAI,CAACC,MAAM,KAAKC,SAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,cAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAA,MAAA;AAC9CI,EAAAA,UAAA,GAAa,UAAA,GAAaC,OAAA,CAAQ,IAAI,CAAA;EAE9C,IAAIH,MAAAA,GAAkB;IACpB,IAAI,IAAI,CAACI,aAAa,EAAE;AACtB;MACA,OAAO,IAAI,CAACL,IAAI,CAACC,MAAM,IAAI,IAAI,CAACK,OAAO;AACzC,IAAA,CAAA,MAAO;AACL;MACA,OAAO,IAAI,CAACA,OAAO;AACrB,IAAA;AACF,EAAA;EAEA,IAAIL,MAAAA,CAAOM,KAAK,EAAE;AAChB,IAAA,IAAI,CAACD,OAAO,GAAGC,KAAA,IAAS,KAAA;AAC1B,EAAA;EAEAC,aAAA,GAAgBA,MAAQ;AACtB,IAAA,IAAI,CAACP,MAAM,GAAG,CAAC,IAAI,CAACA,MAAM;IAC1B,IAAI,CAACI,aAAa,GAAG,KAAA;AACrB;AACA,IAAA,IACE,IAAI,CAACL,IAAI,CAACQ,aAAa,IACvB,OAAO,IAAI,CAACR,IAAI,CAACQ,aAAa,KAAK,UAAA,EACnC;MACA,IAAI,CAACR,IAAI,CAACQ,aAAa,CAAC,IAAI,CAACP,MAAM,CAAA;AACrC,IAAA;EACF,CAAA;EAEAQ,aAAA,GAAgBA,MAAA;AACd,IAAA,IAAI,IAAI,CAACT,IAAI,CAACC,MAAM,KAAKC,SAAA,EAAW;AAClC,MAAA,IAAI,CAACD,MAAM,GAAG,IAAI,CAACD,IAAI,CAACC,MAAM;AAChC,IAAA;IACA,IAAI,CAACI,aAAa,GAAG,IAAA;EACvB,CAAA;EAEAK,KAAA,GAAQA,MAAQ;AACd;AACA;IACAC,QAAA,CAAS,aAAA,EAAe,MAAQ;MAC9B,IAAI,CAACV,MAAM,GAAG,KAAA;AACd;AACA,MAAA,IAAI,IAAI,CAACD,IAAI,CAACY,OAAO,IAAI,OAAO,IAAI,CAACZ,IAAI,CAACY,OAAO,KAAK,UAAA,EAAY;AAChE,QAAA,IAAI,CAACZ,IAAI,CAACY,OAAO,EAAA;AACnB,MAAA;AACF,IAAA,CAAA,CAAA;EACF,CAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,6cAAA,EAsBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -6,7 +6,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
6
6
|
import { g, i } from 'decorator-transforms/runtime';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright IBM Corp. 2021,
|
|
9
|
+
* Copyright IBM Corp. 2021, 2026
|
|
10
10
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
11
|
*/
|
|
12
12
|
class HdsDismissButton extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/dismiss-button/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/dismiss-button/index.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';\n\nimport HdsIcon from '../icon/index.gts';\n\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\nexport interface HdsDismissButtonSignature {\n Args: {\n ariaLabel?: string;\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsDismissButton extends Component<HdsDismissButtonSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n get ariaLabel(): string {\n return (\n this.args.ariaLabel ??\n this.hdsIntl.t('hds.components.dismiss-button.aria-label', {\n default: 'Dismiss',\n })\n );\n }\n\n <template>\n <button\n class=\"hds-dismiss-button\"\n type=\"button\"\n aria-label={{this.ariaLabel}}\n ...attributes\n >\n <HdsIcon @name=\"x\" @size=\"16\" />\n </button>\n </template>\n}\n"],"names":["HdsDismissButton","Component","g","prototype","service","i","ariaLabel","args","hdsIntl","t","default","setComponentTemplate","precompileTemplate","strictMode","scope","HdsIcon"],"mappings":";;;;;;;AAAA;;;AAGC;AAgBc,MAAMA,yBAAyBC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACrDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;EAED,IAAIC,SAAAA,GAAoB;AACtB,IAAA,OACE,IAAI,CAACC,IAAI,CAACD,SAAS,IACnB,IAAI,CAACE,OAAO,CAACC,CAAC,CAAC,0CAAA,EAA4C;AACzDC,MAAAA,OAAA,EAAS;AACX,KAAA,CACF;AACF,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,sJAAA,EASA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsDropdownFooter = setComponentTemplate(precompileTemplate("<div class=\"hds-dropdown__footer\n {{if @hasDivider \"hds-dropdown__footer--with-divider\"}}\" ...attributes>\n {{yield}}\n</div>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sources":["../../../../src/components/hds/dropdown/footer.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"footer.js","sources":["../../../../src/components/hds/dropdown/footer.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface HdsDropdownFooterSignature {\n Args: {\n hasDivider?: boolean;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nconst HdsDropdownFooter: TemplateOnlyComponent<HdsDropdownFooterSignature> =\n <template>\n <div\n class=\"hds-dropdown__footer\n {{if @hasDivider 'hds-dropdown__footer--with-divider'}}\"\n ...attributes\n >\n {{yield}}\n </div>\n </template>;\n\nexport default HdsDropdownFooter;\n"],"names":["HdsDropdownFooter","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAcD,MAAMA,iBAAyC,GAAAC,oBAAA,CAC7CC,kBAAA,CAAA,wIAAA,EAQA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|