@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
|
@@ -23,7 +23,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
23
23
|
import { g, i } from 'decorator-transforms/runtime';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* Copyright
|
|
26
|
+
* Copyright IBM Corp. 2021, 2026
|
|
27
27
|
* SPDX-License-Identifier: MPL-2.0
|
|
28
28
|
*/
|
|
29
29
|
class HdsFilterBar extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/filter-bar/index.gts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { service } from '@ember/service';\nimport { isArray } from '@ember/array';\nimport { modifier } from 'ember-modifier';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { NUMERICAL_SELECTORS_TEXT } from './filter-group/numerical.gts';\nimport { DATE_SELECTORS_TEXT } from './filter-group/date.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\nimport HdsYield from '../yield/index.gts';\nimport HdsFilterBarActionsDropdown from './actions-dropdown.gts';\nimport HdsFilterBarFiltersDropdown from './filters-dropdown.gts';\nimport HdsLayoutFlex from '../layout/flex/index.gts';\nimport HdsFormTextInputBase from '../form/text-input/base.gts';\nimport HdsButton from '../button/index.gts';\nimport HdsSeparator from '../separator/index.gts';\nimport HdsTextBody from '../text/body.gts';\nimport HdsFilterBarAppliedFilters from './applied-filters.gts';\n\nimport type HdsIntlService from '../../../services/hds-intl.ts';\nimport type {\n HdsFilterBarFilters,\n HdsFilterBarFilter,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from './types.ts';\n\nexport interface HdsFilterBarSignature {\n Args: {\n filters: HdsFilterBarFilters;\n isLiveFilter?: boolean;\n hasSearch?: boolean;\n searchPlaceholder?: string;\n onFilter?: (filters: HdsFilterBarFilters) => void;\n };\n Blocks: {\n default?: [\n {\n FiltersDropdown?: WithBoundArgs<\n typeof HdsFilterBarFiltersDropdown,\n 'filters' | 'isLiveFilter' | 'onFilter'\n >;\n ActionsDropdown?: WithBoundArgs<\n typeof HdsFilterBarActionsDropdown,\n never\n >;\n ActionsGeneric?: typeof HdsYield;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBar extends Component<HdsFilterBarSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked _isExpanded: boolean = this.hasActiveFilters;\n\n private _dropdownToggleElement!: HTMLDivElement;\n private _appliedFiltersButtonId = 'applied-filters-button-' + guidFor(this);\n private _appliedFiltersContentId = 'applied-filters-content-' + guidFor(this);\n\n private _setUpFilterBar = modifier((element: HTMLDivElement) => {\n this._dropdownToggleElement = element.querySelector(\n '.hds-filter-bar__filters-dropdown .hds-dropdown-toggle-button'\n ) as HTMLDivElement;\n\n // Align the expanded state with the presence of active filters\n this._isExpanded = this.hasActiveFilters;\n });\n\n get searchValue(): string {\n const { filters } = this.args;\n if (filters['search']) {\n return this._getFilterValueText(filters['search']);\n }\n return '';\n }\n\n get searchPlaceholder(): string {\n return (\n this.args.searchPlaceholder ||\n this.hdsIntl.t('hds.components.filter-bar.search.placeholder', {\n default: 'Search',\n })\n );\n }\n\n get hasActiveFilters(): boolean {\n return Object.keys(this.args.filters).length > 0;\n }\n\n onFilter = (filters: HdsFilterBarFilters): void => {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter(filters);\n\n if (Object.keys(filters).length > 0) {\n this._isExpanded = true;\n } else {\n this._isExpanded = false;\n }\n }\n };\n\n clearFilters = (): void => {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter({});\n this._isExpanded = false;\n }\n this._dropdownToggleElement?.focus();\n };\n\n onSearch = (event: Event): void => {\n const { filters } = this.args;\n const input = event.target as HTMLInputElement;\n const value = input?.value;\n\n const newFilters = this._copyFilters(filters);\n\n if (value.length > 0) {\n newFilters['search'] = {\n type: 'search',\n text: 'Search',\n data: { value },\n };\n } else {\n delete newFilters['search'];\n }\n\n this.onFilter({ ...newFilters });\n };\n\n toggleExpand = (): void => {\n this._isExpanded = !this._isExpanded;\n };\n\n private _copyFilters = (\n filters: HdsFilterBarFilters\n ): HdsFilterBarFilters => {\n const newFilters = {} as HdsFilterBarFilters;\n\n // Note: Due to the filters being an Ember object, structuredClone cannot be used here.\n // Further investigation will be done in a follow-up task: https://hashicorp.atlassian.net/browse/HDS-5907\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n return newFilters;\n };\n\n private _onFilterDismiss = (key: string, filterValue?: unknown): void => {\n const { filters } = this.args;\n if (filters && filters[key]) {\n const keyFilter: HdsFilterBarFilter = filters[key];\n const newFilters = this._copyFilters(filters);\n\n if (\n (keyFilter.type === 'multi-select' && isArray(keyFilter.data)) ||\n (keyFilter.type === 'generic' && isArray(keyFilter.data))\n ) {\n const newKeyfilter = keyFilter.data?.filter(\n (item) => item.value !== filterValue\n );\n if (newKeyfilter.length === 0) {\n delete newFilters[key];\n } else {\n newFilters[key] = {\n type: keyFilter.type,\n text: keyFilter.text,\n data: newKeyfilter,\n };\n }\n } else {\n delete newFilters[key];\n }\n\n this.onFilter({ ...newFilters });\n }\n this._dropdownToggleElement?.focus();\n };\n\n private _filterData = (\n data: HdsFilterBarData\n ): HdsFilterBarGenericFilterData => {\n const result = {\n value: '',\n } as HdsFilterBarGenericFilterData;\n if ('value' in data) {\n result.value = data.value;\n }\n if ('label' in data) {\n result.label = data.label;\n }\n return result;\n };\n\n private _getFilterValueText = (filter: HdsFilterBarFilter): string => {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n };\n\n private _getFilterKeyText = (\n key: string,\n data: HdsFilterBarFilter\n ): string => {\n if (data.text) {\n return data.text;\n } else {\n return key;\n }\n };\n\n private _getNumericalFilterValueText = (\n filter: HdsFilterBarFilter\n ): string => {\n const data = filter.data;\n\n if (filter.type === 'numerical' && 'selector' in data && 'value' in data) {\n const selector = data.selector as keyof typeof NUMERICAL_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.numerical-filter.separator',\n {\n default: 'and',\n }\n );\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;\n } else if (typeof data.value !== 'object') {\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _getDateFilterValueText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (\n (filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time') &&\n 'selector' in data &&\n 'value' in data\n ) {\n const selector = data.selector as keyof typeof DATE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.date-filter.separator',\n {\n default: 'and',\n }\n );\n const startDateText = this._formatDateFilterText(\n data.value.start as string,\n filter.type\n );\n const endDateText = this._formatDateFilterText(\n data.value.end as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${startDateText} ${separatorText} ${endDateText}`;\n } else if (data.value !== null && typeof data.value !== 'object') {\n const dateText = this._formatDateFilterText(\n data.value as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${dateText}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _formatDateFilterText = (\n dateString: string,\n filterType: HdsFilterBarFilterType\n ): string => {\n let date;\n if (filterType === 'time') {\n date = new Date(`1970-01-01T${dateString}`);\n } else {\n date = new Date(dateString);\n }\n\n let options = {};\n if (filterType === 'date') {\n options = { dateStyle: 'short' };\n } else if (filterType === 'time') {\n options = { timeStyle: 'short' };\n } else {\n options = { dateStyle: 'short', timeStyle: 'short' };\n }\n\n const newDate = new Intl.DateTimeFormat(undefined, options);\n return newDate.format(date);\n };\n\n private _getGenericFilterValueText = (filter: HdsFilterBarFilter): string => {\n if ('dismissTagText' in filter) {\n return filter.dismissTagText ?? '';\n } else {\n return '';\n }\n };\n\n private _getMultiSelectFilterData = (\n data: HdsFilterBarData\n ): { value: unknown; label?: string }[] => {\n if (isArray(data)) {\n return data.map((item) => this._filterData(item));\n }\n return [];\n };\n\n <template>\n <div class=\"hds-filter-bar\" ...attributes {{this._setUpFilterBar}}>\n {{#if @isLiveFilter}}\n <span class=\"sr-only\">{{hdsT\n \"hds.components.filter-bar.live-filtering\"\n default=\"Filters will be applied automatically as selections are made\"\n }}</span>\n {{/if}}\n <HdsLayoutFlex @align=\"center\" @gap=\"8\" class=\"hds-filter-bar__actions\">\n <HdsButton\n @text={{hdsT\n \"hds.components.filter-bar.applied-filters.toggle-button\"\n default=\"View applied filters\"\n }}\n @color=\"secondary\"\n @size=\"small\"\n @icon={{if this._isExpanded \"unfold-close\" \"unfold-open\"}}\n @isIconOnly={{true}}\n id={{this._appliedFiltersButtonId}}\n aria-controls={{this._appliedFiltersContentId}}\n aria-expanded={{if this._isExpanded \"true\" \"false\"}}\n class=\"hds-filter-bar__applied-filters-toggle-button\"\n {{on \"click\" this.toggleExpand}}\n />\n {{yield\n (hash\n FiltersDropdown=(component\n HdsFilterBarFiltersDropdown\n filters=@filters\n isLiveFilter=@isLiveFilter\n onFilter=this.onFilter\n )\n )\n }}\n {{#if @hasSearch}}\n <HdsFormTextInputBase\n @type=\"search\"\n @value={{this.searchValue}}\n class=\"hds-filter-bar__search\"\n placeholder={{this.searchPlaceholder}}\n aria-label={{hdsT\n \"hds.components.filter-bar.search.aria-label\"\n default=\"Search\"\n }}\n name=\"search\"\n {{on \"change\" this.onSearch}}\n />\n {{/if}}\n <HdsLayoutFlex\n @gap=\"8\"\n @align=\"center\"\n class=\"hds-filter-bar__actions__right\"\n >\n {{yield (hash ActionsGeneric=HdsYield)}}\n {{yield (hash ActionsDropdown=HdsFilterBarActionsDropdown)}}\n </HdsLayoutFlex>\n </HdsLayoutFlex>\n <div\n class=\"hds-filter-bar__applied-filters-list\"\n id={{this._appliedFiltersContentId}}\n >\n {{#if this._isExpanded}}\n <HdsSeparator @spacing=\"0\" />\n <div class=\"hds-filter-bar__applied-filters-list__content\">\n {{#if this.hasActiveFilters}}\n <HdsFilterBarAppliedFilters\n @filters={{@filters}}\n @onFilterDismiss={{this._onFilterDismiss}}\n />\n <HdsButton\n class=\"hds-filter-bar__clear-button\"\n @text={{hdsT\n \"hds.components.filter-bar.applied-filters.clear-filters\"\n default=\"Clear all filters\"\n }}\n @color=\"tertiary\"\n @icon=\"x\"\n @size=\"small\"\n {{on \"click\" this.clearFilters}}\n />\n {{else}}\n <HdsTextBody @size={{100}} @color=\"faint\">\n {{hdsT\n \"hds.components.filter-bar.applied-filters.no-filters-applied\"\n default=\"No filters applied\"\n }}\n </HdsTextBody>\n {{/if}}\n </div>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["HdsFilterBar","Component","g","prototype","service","i","tracked","hasActiveFilters","_dropdownToggleElement","_appliedFiltersButtonId","guidFor","_appliedFiltersContentId","_setUpFilterBar","modifier","element","querySelector","_isExpanded","searchValue","filters","args","_getFilterValueText","searchPlaceholder","hdsIntl","t","default","Object","keys","length","onFilter","clearFilters","focus","onSearch","event","input","target","value","newFilters","_copyFilters","type","text","data","toggleExpand","forEach","k","JSON","parse","stringify","_onFilterDismiss","key","filterValue","keyFilter","isArray","newKeyfilter","filter","item","_filterData","result","label","resultLabel","resultValue","_getFilterKeyText","_getNumericalFilterValueText","selector","separatorText","NUMERICAL_SELECTORS_TEXT","start","end","_getDateFilterValueText","startDateText","_formatDateFilterText","endDateText","DATE_SELECTORS_TEXT","dateText","dateString","filterType","date","Date","options","dateStyle","timeStyle","newDate","Intl","DateTimeFormat","undefined","format","_getGenericFilterValueText","dismissTagText","_getMultiSelectFilterData","map","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","HdsLayoutFlex","HdsButton","on","hash","HdsFilterBarFiltersDropdown","HdsFormTextInputBase","HdsYield","HdsFilterBarActionsDropdown","HdsSeparator","HdsFilterBarAppliedFilters","HdsTextBody"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/filter-bar/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 { service } from '@ember/service';\nimport { isArray } from '@ember/array';\nimport { modifier } from 'ember-modifier';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { NUMERICAL_SELECTORS_TEXT } from './filter-group/numerical.gts';\nimport { DATE_SELECTORS_TEXT } from './filter-group/date.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\nimport HdsYield from '../yield/index.gts';\nimport HdsFilterBarActionsDropdown from './actions-dropdown.gts';\nimport HdsFilterBarFiltersDropdown from './filters-dropdown.gts';\nimport HdsLayoutFlex from '../layout/flex/index.gts';\nimport HdsFormTextInputBase from '../form/text-input/base.gts';\nimport HdsButton from '../button/index.gts';\nimport HdsSeparator from '../separator/index.gts';\nimport HdsTextBody from '../text/body.gts';\nimport HdsFilterBarAppliedFilters from './applied-filters.gts';\n\nimport type HdsIntlService from '../../../services/hds-intl.ts';\nimport type {\n HdsFilterBarFilters,\n HdsFilterBarFilter,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from './types.ts';\n\nexport interface HdsFilterBarSignature {\n Args: {\n filters: HdsFilterBarFilters;\n isLiveFilter?: boolean;\n hasSearch?: boolean;\n searchPlaceholder?: string;\n onFilter?: (filters: HdsFilterBarFilters) => void;\n };\n Blocks: {\n default?: [\n {\n FiltersDropdown?: WithBoundArgs<\n typeof HdsFilterBarFiltersDropdown,\n 'filters' | 'isLiveFilter' | 'onFilter'\n >;\n ActionsDropdown?: WithBoundArgs<\n typeof HdsFilterBarActionsDropdown,\n never\n >;\n ActionsGeneric?: typeof HdsYield;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBar extends Component<HdsFilterBarSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked _isExpanded: boolean = this.hasActiveFilters;\n\n private _dropdownToggleElement!: HTMLDivElement;\n private _appliedFiltersButtonId = 'applied-filters-button-' + guidFor(this);\n private _appliedFiltersContentId = 'applied-filters-content-' + guidFor(this);\n\n private _setUpFilterBar = modifier((element: HTMLDivElement) => {\n this._dropdownToggleElement = element.querySelector(\n '.hds-filter-bar__filters-dropdown .hds-dropdown-toggle-button'\n ) as HTMLDivElement;\n\n // Align the expanded state with the presence of active filters\n this._isExpanded = this.hasActiveFilters;\n });\n\n get searchValue(): string {\n const { filters } = this.args;\n if (filters['search']) {\n return this._getFilterValueText(filters['search']);\n }\n return '';\n }\n\n get searchPlaceholder(): string {\n return (\n this.args.searchPlaceholder ||\n this.hdsIntl.t('hds.components.filter-bar.search.placeholder', {\n default: 'Search',\n })\n );\n }\n\n get hasActiveFilters(): boolean {\n return Object.keys(this.args.filters).length > 0;\n }\n\n onFilter = (filters: HdsFilterBarFilters): void => {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter(filters);\n\n if (Object.keys(filters).length > 0) {\n this._isExpanded = true;\n } else {\n this._isExpanded = false;\n }\n }\n };\n\n clearFilters = (): void => {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter({});\n this._isExpanded = false;\n }\n this._dropdownToggleElement?.focus();\n };\n\n onSearch = (event: Event): void => {\n const { filters } = this.args;\n const input = event.target as HTMLInputElement;\n const value = input?.value;\n\n const newFilters = this._copyFilters(filters);\n\n if (value.length > 0) {\n newFilters['search'] = {\n type: 'search',\n text: 'Search',\n data: { value },\n };\n } else {\n delete newFilters['search'];\n }\n\n this.onFilter({ ...newFilters });\n };\n\n toggleExpand = (): void => {\n this._isExpanded = !this._isExpanded;\n };\n\n private _copyFilters = (\n filters: HdsFilterBarFilters\n ): HdsFilterBarFilters => {\n const newFilters = {} as HdsFilterBarFilters;\n\n // Note: Due to the filters being an Ember object, structuredClone cannot be used here.\n // Further investigation will be done in a follow-up task: https://hashicorp.atlassian.net/browse/HDS-5907\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n return newFilters;\n };\n\n private _onFilterDismiss = (key: string, filterValue?: unknown): void => {\n const { filters } = this.args;\n if (filters && filters[key]) {\n const keyFilter: HdsFilterBarFilter = filters[key];\n const newFilters = this._copyFilters(filters);\n\n if (\n (keyFilter.type === 'multi-select' && isArray(keyFilter.data)) ||\n (keyFilter.type === 'generic' && isArray(keyFilter.data))\n ) {\n const newKeyfilter = keyFilter.data?.filter(\n (item) => item.value !== filterValue\n );\n if (newKeyfilter.length === 0) {\n delete newFilters[key];\n } else {\n newFilters[key] = {\n type: keyFilter.type,\n text: keyFilter.text,\n data: newKeyfilter,\n };\n }\n } else {\n delete newFilters[key];\n }\n\n this.onFilter({ ...newFilters });\n }\n this._dropdownToggleElement?.focus();\n };\n\n private _filterData = (\n data: HdsFilterBarData\n ): HdsFilterBarGenericFilterData => {\n const result = {\n value: '',\n } as HdsFilterBarGenericFilterData;\n if ('value' in data) {\n result.value = data.value;\n }\n if ('label' in data) {\n result.label = data.label;\n }\n return result;\n };\n\n private _getFilterValueText = (filter: HdsFilterBarFilter): string => {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n };\n\n private _getFilterKeyText = (\n key: string,\n data: HdsFilterBarFilter\n ): string => {\n if (data.text) {\n return data.text;\n } else {\n return key;\n }\n };\n\n private _getNumericalFilterValueText = (\n filter: HdsFilterBarFilter\n ): string => {\n const data = filter.data;\n\n if (filter.type === 'numerical' && 'selector' in data && 'value' in data) {\n const selector = data.selector as keyof typeof NUMERICAL_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.numerical-filter.separator',\n {\n default: 'and',\n }\n );\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;\n } else if (typeof data.value !== 'object') {\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _getDateFilterValueText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (\n (filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time') &&\n 'selector' in data &&\n 'value' in data\n ) {\n const selector = data.selector as keyof typeof DATE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.date-filter.separator',\n {\n default: 'and',\n }\n );\n const startDateText = this._formatDateFilterText(\n data.value.start as string,\n filter.type\n );\n const endDateText = this._formatDateFilterText(\n data.value.end as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${startDateText} ${separatorText} ${endDateText}`;\n } else if (data.value !== null && typeof data.value !== 'object') {\n const dateText = this._formatDateFilterText(\n data.value as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${dateText}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _formatDateFilterText = (\n dateString: string,\n filterType: HdsFilterBarFilterType\n ): string => {\n let date;\n if (filterType === 'time') {\n date = new Date(`1970-01-01T${dateString}`);\n } else {\n date = new Date(dateString);\n }\n\n let options = {};\n if (filterType === 'date') {\n options = { dateStyle: 'short' };\n } else if (filterType === 'time') {\n options = { timeStyle: 'short' };\n } else {\n options = { dateStyle: 'short', timeStyle: 'short' };\n }\n\n const newDate = new Intl.DateTimeFormat(undefined, options);\n return newDate.format(date);\n };\n\n private _getGenericFilterValueText = (filter: HdsFilterBarFilter): string => {\n if ('dismissTagText' in filter) {\n return filter.dismissTagText ?? '';\n } else {\n return '';\n }\n };\n\n private _getMultiSelectFilterData = (\n data: HdsFilterBarData\n ): { value: unknown; label?: string }[] => {\n if (isArray(data)) {\n return data.map((item) => this._filterData(item));\n }\n return [];\n };\n\n <template>\n <div class=\"hds-filter-bar\" ...attributes {{this._setUpFilterBar}}>\n {{#if @isLiveFilter}}\n <span class=\"sr-only\">{{hdsT\n \"hds.components.filter-bar.live-filtering\"\n default=\"Filters will be applied automatically as selections are made\"\n }}</span>\n {{/if}}\n <HdsLayoutFlex @align=\"center\" @gap=\"8\" class=\"hds-filter-bar__actions\">\n <HdsButton\n @text={{hdsT\n \"hds.components.filter-bar.applied-filters.toggle-button\"\n default=\"View applied filters\"\n }}\n @color=\"secondary\"\n @size=\"small\"\n @icon={{if this._isExpanded \"unfold-close\" \"unfold-open\"}}\n @isIconOnly={{true}}\n id={{this._appliedFiltersButtonId}}\n aria-controls={{this._appliedFiltersContentId}}\n aria-expanded={{if this._isExpanded \"true\" \"false\"}}\n class=\"hds-filter-bar__applied-filters-toggle-button\"\n {{on \"click\" this.toggleExpand}}\n />\n {{yield\n (hash\n FiltersDropdown=(component\n HdsFilterBarFiltersDropdown\n filters=@filters\n isLiveFilter=@isLiveFilter\n onFilter=this.onFilter\n )\n )\n }}\n {{#if @hasSearch}}\n <HdsFormTextInputBase\n @type=\"search\"\n @value={{this.searchValue}}\n class=\"hds-filter-bar__search\"\n placeholder={{this.searchPlaceholder}}\n aria-label={{hdsT\n \"hds.components.filter-bar.search.aria-label\"\n default=\"Search\"\n }}\n name=\"search\"\n {{on \"change\" this.onSearch}}\n />\n {{/if}}\n <HdsLayoutFlex\n @gap=\"8\"\n @align=\"center\"\n class=\"hds-filter-bar__actions__right\"\n >\n {{yield (hash ActionsGeneric=HdsYield)}}\n {{yield (hash ActionsDropdown=HdsFilterBarActionsDropdown)}}\n </HdsLayoutFlex>\n </HdsLayoutFlex>\n <div\n class=\"hds-filter-bar__applied-filters-list\"\n id={{this._appliedFiltersContentId}}\n >\n {{#if this._isExpanded}}\n <HdsSeparator @spacing=\"0\" />\n <div class=\"hds-filter-bar__applied-filters-list__content\">\n {{#if this.hasActiveFilters}}\n <HdsFilterBarAppliedFilters\n @filters={{@filters}}\n @onFilterDismiss={{this._onFilterDismiss}}\n />\n <HdsButton\n class=\"hds-filter-bar__clear-button\"\n @text={{hdsT\n \"hds.components.filter-bar.applied-filters.clear-filters\"\n default=\"Clear all filters\"\n }}\n @color=\"tertiary\"\n @icon=\"x\"\n @size=\"small\"\n {{on \"click\" this.clearFilters}}\n />\n {{else}}\n <HdsTextBody @size={{100}} @color=\"faint\">\n {{hdsT\n \"hds.components.filter-bar.applied-filters.no-filters-applied\"\n default=\"No filters applied\"\n }}\n </HdsTextBody>\n {{/if}}\n </div>\n {{/if}}\n </div>\n </div>\n </template>\n}\n"],"names":["HdsFilterBar","Component","g","prototype","service","i","tracked","hasActiveFilters","_dropdownToggleElement","_appliedFiltersButtonId","guidFor","_appliedFiltersContentId","_setUpFilterBar","modifier","element","querySelector","_isExpanded","searchValue","filters","args","_getFilterValueText","searchPlaceholder","hdsIntl","t","default","Object","keys","length","onFilter","clearFilters","focus","onSearch","event","input","target","value","newFilters","_copyFilters","type","text","data","toggleExpand","forEach","k","JSON","parse","stringify","_onFilterDismiss","key","filterValue","keyFilter","isArray","newKeyfilter","filter","item","_filterData","result","label","resultLabel","resultValue","_getFilterKeyText","_getNumericalFilterValueText","selector","separatorText","NUMERICAL_SELECTORS_TEXT","start","end","_getDateFilterValueText","startDateText","_formatDateFilterText","endDateText","DATE_SELECTORS_TEXT","dateText","dateString","filterType","date","Date","options","dateStyle","timeStyle","newDate","Intl","DateTimeFormat","undefined","format","_getGenericFilterValueText","dismissTagText","_getMultiSelectFilterData","map","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","HdsLayoutFlex","HdsButton","on","hash","HdsFilterBarFiltersDropdown","HdsFormTextInputBase","HdsYield","HdsFilterBarActionsDropdown","HdsSeparator","HdsFilterBarAppliedFilters","HdsTextBody"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
11
11
|
import { g, i } from 'decorator-transforms/runtime';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Copyright
|
|
14
|
+
* Copyright IBM Corp. 2021, 2026
|
|
15
15
|
* SPDX-License-Identifier: MPL-2.0
|
|
16
16
|
*/
|
|
17
17
|
class HdsFilterBarTabs extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/filter-bar/tabs/index.gts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\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 { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFilterBarTabsTab from './tab.gts';\nimport HdsFilterBarTabsPanel from './panel.gts';\n\nexport interface HdsFilterBarTabsSignature {\n Args: {\n selectedTabIndex?: number;\n };\n Blocks: {\n default: [\n {\n Tab?: WithBoundArgs<\n typeof HdsFilterBarTabsTab,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n | 'onClick'\n | 'onKeydown'\n >;\n Panel?: WithBoundArgs<\n typeof HdsFilterBarTabsPanel,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarTabs extends Component<HdsFilterBarTabsSignature> {\n @tracked private _tabIds: string[] = [];\n @tracked private _tabNodes: HTMLElement[] = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: string[] = [];\n @tracked private _selectedTabIndex: number = 0;\n\n private _element!: HTMLDivElement;\n\n private _setUpFilterBarTabs = modifier((element: HTMLDivElement) => {\n const { selectedTabIndex } = this.args;\n\n if (selectedTabIndex) {\n this._selectedTabIndex = selectedTabIndex;\n }\n\n this._element = element;\n });\n\n didInsertTab = (element: HTMLElement, tabId: string): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._tabIds = [...this._tabIds, tabId];\n this._tabNodes = [...this._tabNodes, element];\n });\n };\n\n willDestroyTab = (element: HTMLElement): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n });\n };\n\n didInsertPanel = (element: HTMLElement, panelId: string): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._panelIds = [...this._panelIds, panelId];\n this._panelNodes = [...this._panelNodes, element];\n });\n };\n\n willDestroyPanel = (element: HTMLElement): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n });\n };\n\n onClick = (event: MouseEvent, tabIndex: number): void => {\n this._selectedTabIndex = tabIndex;\n };\n\n onKeydown = (event: KeyboardEvent, tabIndex: number): void => {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const upArrow = 'ArrowUp';\n const downArrow = 'ArrowDown';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n const tabKey = 'Tab';\n\n if (event.key !== tabKey) {\n event.preventDefault();\n }\n\n if (event.key === rightArrow || event.key === downArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this._focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow || event.key === upArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this._focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this._selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this._selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n // Focus tab for keyboard & mouse navigation:\n private _focusTab = (tabIndex: number, event: KeyboardEvent): void => {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n };\n\n <template>\n <div\n class=\"hds-filter-bar__tabs\"\n ...attributes\n {{this._setUpFilterBarTabs}}\n >\n <ol\n class=\"hds-filter-bar__tabs__list\"\n aria-label={{hdsT\n \"hds.components.filter-bar.tabs.aria-label\"\n default=\"Filter bar tabs\"\n }}\n role=\"tablist\"\n >\n {{yield\n (hash\n Tab=(component\n HdsFilterBarTabsTab\n selectedTabIndex=this._selectedTabIndex\n tabIds=this._tabIds\n panelIds=this._panelIds\n didInsertNode=this.didInsertTab\n willDestroyNode=this.willDestroyTab\n onClick=this.onClick\n onKeydown=this.onKeydown\n )\n )\n }}\n </ol>\n {{yield\n (hash\n Panel=(component\n HdsFilterBarTabsPanel\n selectedTabIndex=this._selectedTabIndex\n tabIds=this._tabIds\n panelIds=this._panelIds\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["HdsFilterBarTabs","Component","g","prototype","tracked","i","_element","_setUpFilterBarTabs","modifier","element","selectedTabIndex","args","_selectedTabIndex","didInsertTab","tabId","schedule","_tabIds","_tabNodes","willDestroyTab","filter","node","id","didInsertPanel","panelId","_panelIds","_panelNodes","willDestroyPanel","onClick","event","tabIndex","onKeydown","leftArrow","rightArrow","upArrow","downArrow","enterKey","spaceKey","tabKey","key","preventDefault","nextTabIndex","length","_focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","focus","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","hash","HdsFilterBarTabsTab","HdsFilterBarTabsPanel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/filter-bar/tabs/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { schedule } from '@ember/runloop';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFilterBarTabsTab from './tab.gts';\nimport HdsFilterBarTabsPanel from './panel.gts';\n\nexport interface HdsFilterBarTabsSignature {\n Args: {\n selectedTabIndex?: number;\n };\n Blocks: {\n default: [\n {\n Tab?: WithBoundArgs<\n typeof HdsFilterBarTabsTab,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n | 'onClick'\n | 'onKeydown'\n >;\n Panel?: WithBoundArgs<\n typeof HdsFilterBarTabsPanel,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarTabs extends Component<HdsFilterBarTabsSignature> {\n @tracked private _tabIds: string[] = [];\n @tracked private _tabNodes: HTMLElement[] = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: string[] = [];\n @tracked private _selectedTabIndex: number = 0;\n\n private _element!: HTMLDivElement;\n\n private _setUpFilterBarTabs = modifier((element: HTMLDivElement) => {\n const { selectedTabIndex } = this.args;\n\n if (selectedTabIndex) {\n this._selectedTabIndex = selectedTabIndex;\n }\n\n this._element = element;\n });\n\n didInsertTab = (element: HTMLElement, tabId: string): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._tabIds = [...this._tabIds, tabId];\n this._tabNodes = [...this._tabNodes, element];\n });\n };\n\n willDestroyTab = (element: HTMLElement): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n });\n };\n\n didInsertPanel = (element: HTMLElement, panelId: string): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._panelIds = [...this._panelIds, panelId];\n this._panelNodes = [...this._panelNodes, element];\n });\n };\n\n willDestroyPanel = (element: HTMLElement): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n });\n };\n\n onClick = (event: MouseEvent, tabIndex: number): void => {\n this._selectedTabIndex = tabIndex;\n };\n\n onKeydown = (event: KeyboardEvent, tabIndex: number): void => {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const upArrow = 'ArrowUp';\n const downArrow = 'ArrowDown';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n const tabKey = 'Tab';\n\n if (event.key !== tabKey) {\n event.preventDefault();\n }\n\n if (event.key === rightArrow || event.key === downArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this._focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow || event.key === upArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this._focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this._selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this._selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n // Focus tab for keyboard & mouse navigation:\n private _focusTab = (tabIndex: number, event: KeyboardEvent): void => {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n };\n\n <template>\n <div\n class=\"hds-filter-bar__tabs\"\n ...attributes\n {{this._setUpFilterBarTabs}}\n >\n <ol\n class=\"hds-filter-bar__tabs__list\"\n aria-label={{hdsT\n \"hds.components.filter-bar.tabs.aria-label\"\n default=\"Filter bar tabs\"\n }}\n role=\"tablist\"\n >\n {{yield\n (hash\n Tab=(component\n HdsFilterBarTabsTab\n selectedTabIndex=this._selectedTabIndex\n tabIds=this._tabIds\n panelIds=this._panelIds\n didInsertNode=this.didInsertTab\n willDestroyNode=this.willDestroyTab\n onClick=this.onClick\n onKeydown=this.onKeydown\n )\n )\n }}\n </ol>\n {{yield\n (hash\n Panel=(component\n HdsFilterBarTabsPanel\n selectedTabIndex=this._selectedTabIndex\n tabIds=this._tabIds\n panelIds=this._panelIds\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["HdsFilterBarTabs","Component","g","prototype","tracked","i","_element","_setUpFilterBarTabs","modifier","element","selectedTabIndex","args","_selectedTabIndex","didInsertTab","tabId","schedule","_tabIds","_tabNodes","willDestroyTab","filter","node","id","didInsertPanel","panelId","_panelIds","_panelNodes","willDestroyPanel","onClick","event","tabIndex","onKeydown","leftArrow","rightArrow","upArrow","downArrow","enterKey","spaceKey","tabKey","key","preventDefault","nextTabIndex","length","_focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","focus","setComponentTemplate","precompileTemplate","strictMode","scope","hdsT","hash","HdsFilterBarTabsTab","HdsFilterBarTabsPanel"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright
|
|
9
|
+
* Copyright IBM Corp. 2021, 2026
|
|
10
10
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
11
|
*/
|
|
12
12
|
class HdsFilterBarTabsPanel extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sources":["../../../../../src/components/hds/filter-bar/tabs/panel.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"panel.js","sources":["../../../../../src/components/hds/filter-bar/tabs/panel.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier, type PositionalArgs } from 'ember-modifier';\nimport { not } from 'ember-truth-helpers';\n\nexport interface HdsFilterBarTabsPanelModifierSignature {\n Args: {\n insertCallbackFunction?: (element: HTMLElement) => void;\n destroyCallbackFunction?: (element: HTMLElement) => void;\n };\n Element: HTMLElement;\n}\n\nexport interface HdsFilterBarTabsPanelSignature {\n Args: {\n selectedTabIndex?: number;\n tabIds?: string[];\n panelIds?: string[];\n didInsertNode?: (element: HTMLElement, panelId: string) => void;\n willDestroyNode?: (element: HTMLElement) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsFilterBarTabsPanel extends Component<HdsFilterBarTabsPanelSignature> {\n private _panelId = 'panel-' + guidFor(this);\n\n private _setUpPanel = modifier(\n (\n element: HTMLElement,\n positional: PositionalArgs<HdsFilterBarTabsPanelModifierSignature>,\n named: HdsFilterBarTabsPanelModifierSignature['Args']\n ) => {\n if (typeof named.insertCallbackFunction === 'function') {\n named.insertCallbackFunction(element);\n }\n\n return () => {\n if (typeof named.destroyCallbackFunction === 'function') {\n named.destroyCallbackFunction(element);\n }\n };\n }\n );\n\n get nodeIndex(): number | undefined {\n return this.args.panelIds?.indexOf(this._panelId);\n }\n\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n didInsertNode = (element: HTMLElement): void => {\n const { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, this._panelId);\n }\n };\n\n willDestroyNode = (element: HTMLElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n <template>\n <section\n class=\"hds-filter-bar__tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this._panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{this._setUpPanel\n insertCallbackFunction=this.didInsertNode\n destroyCallbackFunction=this.willDestroyNode\n }}\n >\n {{#if this.isVisible}}\n {{yield}}\n {{/if}}\n </section>\n </template>\n}\n"],"names":["HdsFilterBarTabsPanel","Component","_panelId","guidFor","_setUpPanel","modifier","element","positional","named","insertCallbackFunction","destroyCallbackFunction","nodeIndex","args","panelIds","indexOf","coupledTabId","undefined","tabIds","isVisible","selectedTabIndex","didInsertNode","willDestroyNode","setComponentTemplate","precompileTemplate","strictMode","scope","not"],"mappings":";;;;;;;AAAA;;;AAGC;AA6Bc,MAAMA,8BAA8BC,SAAA,CAAU;AACnDC,EAAAA,QAAA,GAAW,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAElCC,WAAA,GAAcC,SACpB,CACEC,SACAC,UAA2B,EAC3BC,KAA8C,KAAA;AAE9C,IAAA,IAAI,OAAOA,KAAA,CAAMC,sBAAsB,KAAK,UAAA,EAAY;AACtDD,MAAAA,KAAA,CAAMC,sBAAsB,CAACH,OAAA,CAAA;AAC/B,IAAA;AAEA,IAAA,OAAO,MAAA;AACL,MAAA,IAAI,OAAOE,KAAA,CAAME,uBAAuB,KAAK,UAAA,EAAY;AACvDF,QAAAA,KAAA,CAAME,uBAAuB,CAACJ,OAAA,CAAA;AAChC,MAAA;IACF,CAAA;AACF,EAAA,CAAA,CAAA;EAGF,IAAIK,SAAAA,GAAgC;IAClC,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAEC,OAAA,CAAQ,IAAI,CAACZ,QAAQ,CAAA;AAClD,EAAA;EAEA,IAAIa,YAAAA,GAAmC;AACrC,IAAA,OAAO,IAAI,CAACJ,SAAS,KAAKK,SAAA,GACtB,IAAI,CAACJ,IAAI,CAACK,MAAM,GAAG,IAAI,CAACN,SAAS,CAAC,GAClCK,SAAA;AACN,EAAA;EAEA,IAAIE,SAAAA,GAAqB;IACvB,OAAO,IAAI,CAACP,SAAS,KAAK,IAAI,CAACC,IAAI,CAACO,gBAAgB;AACtD,EAAA;EAEAC,aAAA,GAAiBd,OAAS,IAAkB;IAC1C,MAAM;AAAEc,MAAAA;KAAe,GAAG,IAAI,CAACR,IAAI;AAEnC,IAAA,IAAI,OAAOQ,kBAAkB,UAAA,EAAY;AACvCA,MAAAA,aAAA,CAAcd,OAAA,EAAS,IAAI,CAACJ,QAAQ,CAAA;AACtC,IAAA;EACF,CAAA;EAEAmB,eAAA,GAAmBf,OAAS,IAAkB;IAC5C,MAAM;AAAEe,MAAAA;KAAiB,GAAG,IAAI,CAACT,IAAI;AAErC,IAAA,IAAI,OAAOS,oBAAoB,UAAA,EAAY;MACzCA,eAAA,CAAgBf,OAAA,CAAA;AAClB,IAAA;EACF,CAAA;AAEA,EAAA;IAAAgB,oBAAA,CAAAC,kBAAA,CAAA,sVAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -10,7 +10,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Copyright
|
|
13
|
+
* Copyright IBM Corp. 2021, 2026
|
|
14
14
|
* SPDX-License-Identifier: MPL-2.0
|
|
15
15
|
*/
|
|
16
16
|
class HdsFilterBarTabsTab extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sources":["../../../../../src/components/hds/filter-bar/tabs/tab.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"tab.js","sources":["../../../../../src/components/hds/filter-bar/tabs/tab.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier, type PositionalArgs } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { gt } from 'ember-truth-helpers';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsTextBody from '../../text/body.gts';\nimport HdsIcon from '../../icon/index.gts';\n\nexport interface HdsFilterBarTabsTabModifierSignature {\n Args: {\n insertCallbackFunction?: (element: HTMLButtonElement) => void;\n destroyCallbackFunction?: (element: HTMLButtonElement) => void;\n };\n Element: HTMLButtonElement;\n}\n\nexport interface HdsFilterBarTabsTabSignature {\n Args: {\n selectedTabIndex?: number;\n tabIds?: string[];\n panelIds?: string[];\n numFilters?: number;\n didInsertNode?: (element: HTMLElement, tabId: string) => void;\n willDestroyNode?: (element: HTMLButtonElement) => void;\n onClick?: (event: MouseEvent, nodeIndex: number) => void;\n onKeydown?: (event: KeyboardEvent, nodeIndex: number) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLIElement;\n}\n\nexport default class HdsFilterBarTabsTab extends Component<HdsFilterBarTabsTabSignature> {\n private _tabId = 'tab-' + guidFor(this);\n\n private _setUpTab = modifier(\n (\n element: HTMLButtonElement,\n positional: PositionalArgs<HdsFilterBarTabsTabModifierSignature>,\n named: HdsFilterBarTabsTabModifierSignature['Args']\n ) => {\n if (typeof named.insertCallbackFunction === 'function') {\n named.insertCallbackFunction(element);\n }\n\n return () => {\n if (typeof named.destroyCallbackFunction === 'function') {\n named.destroyCallbackFunction(element);\n }\n };\n }\n );\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this._tabId);\n }\n\n get coupledPanelId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.panelIds?.[this.nodeIndex]\n : undefined;\n }\n\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n didInsertNode = (element: HTMLButtonElement): void => {\n const { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, this._tabId);\n }\n };\n\n willDestroyNode = (element: HTMLButtonElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n onClick = (event: MouseEvent): void => {\n const { onClick } = this.args;\n\n if (this.nodeIndex !== undefined && typeof onClick === 'function') {\n onClick(event, this.nodeIndex);\n }\n };\n\n onKeydown = (event: KeyboardEvent): void => {\n const { onKeydown } = this.args;\n\n if (this.nodeIndex !== undefined && typeof onKeydown === 'function') {\n onKeydown(event, this.nodeIndex);\n }\n };\n\n get classNames(): string {\n const classes = ['hds-filter-bar__tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-filter-bar__tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n {{! template-lint-disable require-context-role no-invalid-role }}\n {{! template-lint-disable require-presentational-children }}\n <li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-filter-bar__tabs__tab__button\"\n id={{this._tabId}}\n type=\"button\"\n role=\"tab\"\n aria-controls={{this.coupledPanelId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{on \"click\" this.onClick}}\n {{on \"keydown\" this.onKeydown}}\n {{this._setUpTab\n insertCallbackFunction=this.didInsertNode\n destroyCallbackFunction=this.willDestroyNode\n }}\n >\n <HdsTextBody\n @size=\"200\"\n @weight=\"medium\"\n class=\"hds-filter-bar__tabs__tab__text\"\n >{{yield}}</HdsTextBody>\n {{#if (gt @numFilters 0)}}\n <span class=\"sr-only\">{{hdsT\n \"hds.components.filter-bar.tabs.tab.filters-applied\"\n default=\"Filters applied\"\n }}</span>\n <HdsTextBody\n @size=\"200\"\n @color=\"primary\"\n class=\"hds-filter-bar__tabs__tab__filter-count\"\n >\n {{@numFilters}}\n </HdsTextBody>\n {{/if}}\n <HdsIcon\n @name=\"chevron-right\"\n @color=\"primary\"\n class=\"hds-filter-bar__tabs__tab__icon\"\n />\n </button>\n </li>\n {{! template-lint-enable require-presentational-children }}\n {{! template-lint-enable require-context-role no-invalid-role }}\n </template>\n}\n"],"names":["HdsFilterBarTabsTab","Component","_tabId","guidFor","_setUpTab","modifier","element","positional","named","insertCallbackFunction","destroyCallbackFunction","nodeIndex","args","tabIds","indexOf","coupledPanelId","undefined","panelIds","isSelected","selectedTabIndex","didInsertNode","willDestroyNode","onClick","event","onKeydown","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","on","HdsTextBody","gt","hdsT","HdsIcon"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/filter-bar/types.ts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/filter-bar/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsFilterBarFilterTypeValues {\n multiSelect = 'multi-select',\n singleSelect = 'single-select',\n numerical = 'numerical',\n date = 'date',\n time = 'time',\n datetime = 'datetime',\n generic = 'generic',\n search = 'search',\n}\n\nexport type HdsFilterBarFilterType = `${HdsFilterBarFilterTypeValues}`;\n\nexport interface HdsFilterBarGenericFilterData {\n value: unknown;\n label?: string;\n dismissTagText?: string;\n}\n\nexport enum HdsFilterBarNumericalFilterSelectorValues {\n lessThan = 'less-than',\n lessThanOrEqualTo = 'less-than-or-equal-to',\n equalTo = 'equal-to',\n greaterThanOrEqualTo = 'greater-than-or-equal-to',\n greaterThan = 'greater-than',\n between = 'between',\n}\n\nexport type HdsFilterBarNumericalFilterSelector =\n `${HdsFilterBarNumericalFilterSelectorValues}`;\n\nexport type HdsFilterBarNumericalFilterValue =\n | number\n | { start?: number; end?: number };\n\nexport interface HdsFilterBarNumericalFilterData {\n selector: HdsFilterBarNumericalFilterSelector;\n value: HdsFilterBarNumericalFilterValue;\n}\n\nexport enum HdsFilterBarDateFilterSelectorValues {\n before = 'before',\n exactly = 'exactly',\n after = 'after',\n between = 'between',\n}\n\nexport type HdsFilterBarDateFilterSelector =\n `${HdsFilterBarDateFilterSelectorValues}`;\n\nexport type HdsFilterBarDateFilterValue =\n | string\n | { start?: string; end?: string };\n\nexport interface HdsFilterBarDateFilterData {\n selector: HdsFilterBarDateFilterSelector;\n value: HdsFilterBarDateFilterValue;\n}\n\nexport type HdsFilterBarData =\n | HdsFilterBarGenericFilterData[]\n | HdsFilterBarGenericFilterData\n | HdsFilterBarNumericalFilterData\n | HdsFilterBarDateFilterData;\n\nexport interface HdsFilterBarMultiSelectFilter {\n type: 'multi-select';\n text?: string;\n data: HdsFilterBarGenericFilterData[];\n}\n\nexport interface HdsFilterBarSingleSelectFilter {\n type: 'single-select';\n text?: string;\n data: HdsFilterBarGenericFilterData;\n}\n\nexport interface HdsFilterBarNumericalFilter {\n type: 'numerical';\n text?: string;\n data: HdsFilterBarNumericalFilterData;\n}\n\nexport interface HdsFilterBarDateFilter {\n type: 'date' | 'time' | 'datetime';\n text?: string;\n data: HdsFilterBarDateFilterData;\n}\n\nexport interface HdsFilterBarGenericFilter {\n type: 'generic';\n text?: string;\n dismissTagText?: string;\n data: HdsFilterBarGenericFilterData | HdsFilterBarGenericFilterData[];\n}\n\nexport interface HdsFilterBarSearchFilter {\n type: 'search';\n text?: string;\n data: HdsFilterBarGenericFilterData;\n}\n\nexport type HdsFilterBarFilter =\n | HdsFilterBarMultiSelectFilter\n | HdsFilterBarSingleSelectFilter\n | HdsFilterBarNumericalFilter\n | HdsFilterBarDateFilter\n | HdsFilterBarGenericFilter\n | HdsFilterBarSearchFilter;\n\nexport interface HdsFilterBarFilters {\n [name: string]: HdsFilterBarFilter;\n}\n\nexport enum HdsFilterBarFilterGroupDateTypeValues {\n date = 'date',\n time = 'time',\n datetime = 'datetime',\n}\n\nexport type HdsFilterBarFilterGroupDateType =\n `${HdsFilterBarFilterGroupDateTypeValues}`;\n"],"names":["HdsFilterBarFilterTypeValues","HdsFilterBarNumericalFilterSelectorValues","HdsFilterBarDateFilterSelectorValues","HdsFilterBarFilterGroupDateTypeValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,IAAYA,4BAA4B,0BAA5BA,4BAA4B,EAAA;EAA5BA,4BAA4B,CAAA,aAAA,CAAA,GAAA,cAAA;EAA5BA,4BAA4B,CAAA,cAAA,CAAA,GAAA,eAAA;EAA5BA,4BAA4B,CAAA,WAAA,CAAA,GAAA,WAAA;EAA5BA,4BAA4B,CAAA,MAAA,CAAA,GAAA,MAAA;EAA5BA,4BAA4B,CAAA,MAAA,CAAA,GAAA,MAAA;EAA5BA,4BAA4B,CAAA,UAAA,CAAA,GAAA,UAAA;EAA5BA,4BAA4B,CAAA,SAAA,CAAA,GAAA,SAAA;EAA5BA,4BAA4B,CAAA,QAAA,CAAA,GAAA,QAAA;AAAA,EAAA,OAA5BA,4BAA4B;AAAA,CAAA,CAAA,EAAA;AAmBxC,IAAYC,yCAAyC,0BAAzCA,yCAAyC,EAAA;EAAzCA,yCAAyC,CAAA,UAAA,CAAA,GAAA,WAAA;EAAzCA,yCAAyC,CAAA,mBAAA,CAAA,GAAA,uBAAA;EAAzCA,yCAAyC,CAAA,SAAA,CAAA,GAAA,UAAA;EAAzCA,yCAAyC,CAAA,sBAAA,CAAA,GAAA,0BAAA;EAAzCA,yCAAyC,CAAA,aAAA,CAAA,GAAA,cAAA;EAAzCA,yCAAyC,CAAA,SAAA,CAAA,GAAA,SAAA;AAAA,EAAA,OAAzCA,yCAAyC;AAAA,CAAA,CAAA,EAAA;AAqBrD,IAAYC,oCAAoC,0BAApCA,oCAAoC,EAAA;EAApCA,oCAAoC,CAAA,QAAA,CAAA,GAAA,QAAA;EAApCA,oCAAoC,CAAA,SAAA,CAAA,GAAA,SAAA;EAApCA,oCAAoC,CAAA,OAAA,CAAA,GAAA,OAAA;EAApCA,oCAAoC,CAAA,SAAA,CAAA,GAAA,SAAA;AAAA,EAAA,OAApCA,oCAAoC;AAAA,CAAA,CAAA,EAAA;AA0EhD,IAAYC,qCAAqC,0BAArCA,qCAAqC,EAAA;EAArCA,qCAAqC,CAAA,MAAA,CAAA,GAAA,MAAA;EAArCA,qCAAqC,CAAA,MAAA,CAAA,GAAA,MAAA;EAArCA,qCAAqC,CAAA,UAAA,CAAA,GAAA,UAAA;AAAA,EAAA,OAArCA,qCAAqC;AAAA,CAAA,CAAA,EAAA;;;;"}
|
|
@@ -18,7 +18,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
18
18
|
import { g, i } from 'decorator-transforms/runtime';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* Copyright IBM Corp. 2021,
|
|
21
|
+
* Copyright IBM Corp. 2021, 2026
|
|
22
22
|
* SPDX-License-Identifier: MPL-2.0
|
|
23
23
|
*/
|
|
24
24
|
const waiter = buildWaiter('@hashicorp/design-system-components:flyout');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/flyout/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { HdsFlyoutSizesValues } from './types.ts';\nimport HdsDialogPrimitiveBody from '../dialog-primitive/body.gts';\nimport HdsDialogPrimitiveDescription from '../dialog-primitive/description.gts';\nimport HdsDialogPrimitiveFooter from '../dialog-primitive/footer.gts';\nimport HdsDialogPrimitiveHeader from '../dialog-primitive/header.gts';\nimport HdsDialogPrimitiveOverlay from '../dialog-primitive/overlay.gts';\nimport HdsDialogPrimitiveWrapper from '../dialog-primitive/wrapper.gts';\nimport { getElementId } from '../../../utils/hds-get-element-id.ts';\n\nimport type { HdsFlyoutSizes } from './types.ts';\n\nconst waiter = buildWaiter('@hashicorp/design-system-components:flyout');\n\nexport const DEFAULT_SIZE = HdsFlyoutSizesValues.Medium;\nexport const DEFAULT_HAS_OVERLAY = true;\nexport const SIZES: HdsFlyoutSizes[] = Object.values(HdsFlyoutSizesValues);\n\nexport interface HdsFlyoutSignature {\n Args: {\n size?: HdsFlyoutSizes;\n returnFocusTo?: string;\n onOpen?: () => void;\n onClose?: (event: Event) => void;\n };\n Blocks: {\n default: [\n {\n Header?: WithBoundArgs<\n typeof HdsDialogPrimitiveHeader,\n 'id' | 'onDismiss' | 'contextualClassPrefix'\n >;\n Description?: WithBoundArgs<\n typeof HdsDialogPrimitiveDescription,\n 'contextualClass'\n >;\n Body?: WithBoundArgs<typeof HdsDialogPrimitiveBody, 'contextualClass'>;\n Footer?: WithBoundArgs<\n typeof HdsDialogPrimitiveFooter,\n 'onDismiss' | 'contextualClass'\n >;\n },\n ];\n };\n Element: HTMLDialogElement;\n}\n\nexport default class HdsFlyout extends Component<HdsFlyoutSignature> {\n @tracked private _isOpen = false;\n // TODO: make this property private; currently blocked by our consumers relying on it despite not being part of the public API: https://github.com/hashicorp/cloud-ui/blob/main/engines/waypoint/addon/components/preview-pane.ts#L15\n // private _element!: HTMLDialogElement;\n _element!: HTMLDialogElement;\n private _body!: HTMLElement;\n private _bodyInitialOverflowValue = '';\n\n get size(): HdsFlyoutSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Flyout\" 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 id(): string {\n return getElementId(this);\n }\n\n get classNames(): string {\n const classes = ['hds-flyout'];\n\n // add a class based on the @size argument\n classes.push(`hds-flyout--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n private _performCloseCleanup() {\n this._isOpen = false;\n\n // Reset page `overflow` property\n if (this._body) {\n this._body.style.removeProperty('overflow');\n if (this._bodyInitialOverflowValue === '') {\n if (this._body.style.length === 0) {\n this._body.removeAttribute('style');\n }\n } else {\n this._body.style.setProperty(\n 'overflow',\n this._bodyInitialOverflowValue\n );\n }\n }\n\n // Return focus to a specific element (if provided)\n if (this.args.returnFocusTo) {\n const initiator = document.getElementById(this.args.returnFocusTo);\n if (initiator) {\n initiator.focus();\n }\n }\n }\n\n private _registerDialog = modifier((element: HTMLDialogElement) => {\n // Store references of `<dialog>` and `<body>` elements\n this._element = element;\n this._body = document.body;\n\n if (this._body) {\n // Store the initial `overflow` value of `<body>` so we can reset to it\n this._bodyInitialOverflowValue =\n this._body.style.getPropertyValue('overflow');\n }\n\n // Register \"onClose\" callback function to be called when a native 'close' event is dispatched\n\n this._element.addEventListener('close', this.registerOnCloseCallback, true);\n\n // If the flyout dialog is not already open\n if (!this._element.open) {\n this.open();\n }\n\n return () => {\n // if the <dialog> is removed from the dom while open we emulate the close event\n if (this._isOpen) {\n this._performCloseCleanup();\n }\n\n this._element?.removeEventListener(\n 'close',\n\n this.registerOnCloseCallback,\n true\n );\n };\n });\n\n registerOnCloseCallback = (event: Event) => {\n if (this.args.onClose && typeof this.args.onClose === 'function') {\n this.args.onClose(event);\n }\n\n this._performCloseCleanup();\n };\n\n open = (): void => {\n // Make flyout dialog visible using the native `showModal` method\n this._element.showModal();\n this._isOpen = true;\n\n // Prevent page from scrolling when the dialog is open\n if (this._body) this._body.style.setProperty('overflow', 'hidden');\n\n // Call \"onOpen\" callback function\n if (this.args.onOpen && typeof this.args.onOpen === 'function') {\n this.args.onOpen();\n }\n };\n\n onDismiss = (): void => {\n // allow ember test helpers to be aware of when the `close` event fires\n // when using `click` or other helpers from '@ember/test-helpers'\n if (this._element.open) {\n const token = waiter.beginAsync();\n const listener = () => {\n waiter.endAsync(token);\n this._element.removeEventListener('close', listener);\n };\n this._element.addEventListener('close', listener);\n }\n\n // Make flyout dialog invisible using the native `close` method\n this._element.close();\n };\n\n <template>\n <HdsDialogPrimitiveWrapper\n class={{this.classNames}}\n ...attributes\n aria-labelledby={{this.id}}\n {{this._registerDialog}}\n {{focusTrap\n isActive=this._isOpen\n focusTrapOptions=(hash\n onDeactivate=this.onDismiss clickOutsideDeactivates=true\n )\n }}\n >\n <:header>\n {{yield\n (hash\n Header=(component\n HdsDialogPrimitiveHeader\n id=this.id\n onDismiss=this.onDismiss\n contextualClassPrefix=\"hds-flyout\"\n titleTag=\"h1\"\n )\n Description=(component\n HdsDialogPrimitiveDescription\n contextualClass=\"hds-flyout__description\"\n )\n )\n }}\n </:header>\n <:body>\n {{yield\n (hash\n Body=(component\n HdsDialogPrimitiveBody contextualClass=\"hds-flyout__body\"\n )\n )\n }}\n </:body>\n <:footer>\n {{yield\n (hash\n Footer=(component\n HdsDialogPrimitiveFooter\n onDismiss=this.onDismiss\n contextualClass=\"hds-flyout__footer\"\n )\n )\n }}\n </:footer>\n </HdsDialogPrimitiveWrapper>\n\n {{#if this._isOpen}}\n <HdsDialogPrimitiveOverlay @contextualClass=\"hds-flyout__overlay\" />\n {{/if}}\n </template>\n}\n"],"names":["waiter","buildWaiter","DEFAULT_SIZE","HdsFlyoutSizesValues","Medium","DEFAULT_HAS_OVERLAY","SIZES","Object","values","HdsFlyout","Component","g","prototype","tracked","i","_element","_body","_bodyInitialOverflowValue","size","args","assert","join","includes","id","getElementId","classNames","classes","push","_performCloseCleanup","_isOpen","style","removeProperty","length","removeAttribute","setProperty","returnFocusTo","initiator","document","getElementById","focus","_registerDialog","modifier","element","body","getPropertyValue","addEventListener","registerOnCloseCallback","open","removeEventListener","event","onClose","showModal","onOpen","onDismiss","token","beginAsync","listener","endAsync","close","setComponentTemplate","precompileTemplate","strictMode","scope","HdsDialogPrimitiveWrapper","focusTrap","hash","HdsDialogPrimitiveHeader","HdsDialogPrimitiveDescription","HdsDialogPrimitiveBody","HdsDialogPrimitiveFooter","HdsDialogPrimitiveOverlay"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/flyout/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { HdsFlyoutSizesValues } from './types.ts';\nimport HdsDialogPrimitiveBody from '../dialog-primitive/body.gts';\nimport HdsDialogPrimitiveDescription from '../dialog-primitive/description.gts';\nimport HdsDialogPrimitiveFooter from '../dialog-primitive/footer.gts';\nimport HdsDialogPrimitiveHeader from '../dialog-primitive/header.gts';\nimport HdsDialogPrimitiveOverlay from '../dialog-primitive/overlay.gts';\nimport HdsDialogPrimitiveWrapper from '../dialog-primitive/wrapper.gts';\nimport { getElementId } from '../../../utils/hds-get-element-id.ts';\n\nimport type { HdsFlyoutSizes } from './types.ts';\n\nconst waiter = buildWaiter('@hashicorp/design-system-components:flyout');\n\nexport const DEFAULT_SIZE = HdsFlyoutSizesValues.Medium;\nexport const DEFAULT_HAS_OVERLAY = true;\nexport const SIZES: HdsFlyoutSizes[] = Object.values(HdsFlyoutSizesValues);\n\nexport interface HdsFlyoutSignature {\n Args: {\n size?: HdsFlyoutSizes;\n returnFocusTo?: string;\n onOpen?: () => void;\n onClose?: (event: Event) => void;\n };\n Blocks: {\n default: [\n {\n Header?: WithBoundArgs<\n typeof HdsDialogPrimitiveHeader,\n 'id' | 'onDismiss' | 'contextualClassPrefix'\n >;\n Description?: WithBoundArgs<\n typeof HdsDialogPrimitiveDescription,\n 'contextualClass'\n >;\n Body?: WithBoundArgs<typeof HdsDialogPrimitiveBody, 'contextualClass'>;\n Footer?: WithBoundArgs<\n typeof HdsDialogPrimitiveFooter,\n 'onDismiss' | 'contextualClass'\n >;\n },\n ];\n };\n Element: HTMLDialogElement;\n}\n\nexport default class HdsFlyout extends Component<HdsFlyoutSignature> {\n @tracked private _isOpen = false;\n // TODO: make this property private; currently blocked by our consumers relying on it despite not being part of the public API: https://github.com/hashicorp/cloud-ui/blob/main/engines/waypoint/addon/components/preview-pane.ts#L15\n // private _element!: HTMLDialogElement;\n _element!: HTMLDialogElement;\n private _body!: HTMLElement;\n private _bodyInitialOverflowValue = '';\n\n get size(): HdsFlyoutSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Flyout\" 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 id(): string {\n return getElementId(this);\n }\n\n get classNames(): string {\n const classes = ['hds-flyout'];\n\n // add a class based on the @size argument\n classes.push(`hds-flyout--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n private _performCloseCleanup() {\n this._isOpen = false;\n\n // Reset page `overflow` property\n if (this._body) {\n this._body.style.removeProperty('overflow');\n if (this._bodyInitialOverflowValue === '') {\n if (this._body.style.length === 0) {\n this._body.removeAttribute('style');\n }\n } else {\n this._body.style.setProperty(\n 'overflow',\n this._bodyInitialOverflowValue\n );\n }\n }\n\n // Return focus to a specific element (if provided)\n if (this.args.returnFocusTo) {\n const initiator = document.getElementById(this.args.returnFocusTo);\n if (initiator) {\n initiator.focus();\n }\n }\n }\n\n private _registerDialog = modifier((element: HTMLDialogElement) => {\n // Store references of `<dialog>` and `<body>` elements\n this._element = element;\n this._body = document.body;\n\n if (this._body) {\n // Store the initial `overflow` value of `<body>` so we can reset to it\n this._bodyInitialOverflowValue =\n this._body.style.getPropertyValue('overflow');\n }\n\n // Register \"onClose\" callback function to be called when a native 'close' event is dispatched\n\n this._element.addEventListener('close', this.registerOnCloseCallback, true);\n\n // If the flyout dialog is not already open\n if (!this._element.open) {\n this.open();\n }\n\n return () => {\n // if the <dialog> is removed from the dom while open we emulate the close event\n if (this._isOpen) {\n this._performCloseCleanup();\n }\n\n this._element?.removeEventListener(\n 'close',\n\n this.registerOnCloseCallback,\n true\n );\n };\n });\n\n registerOnCloseCallback = (event: Event) => {\n if (this.args.onClose && typeof this.args.onClose === 'function') {\n this.args.onClose(event);\n }\n\n this._performCloseCleanup();\n };\n\n open = (): void => {\n // Make flyout dialog visible using the native `showModal` method\n this._element.showModal();\n this._isOpen = true;\n\n // Prevent page from scrolling when the dialog is open\n if (this._body) this._body.style.setProperty('overflow', 'hidden');\n\n // Call \"onOpen\" callback function\n if (this.args.onOpen && typeof this.args.onOpen === 'function') {\n this.args.onOpen();\n }\n };\n\n onDismiss = (): void => {\n // allow ember test helpers to be aware of when the `close` event fires\n // when using `click` or other helpers from '@ember/test-helpers'\n if (this._element.open) {\n const token = waiter.beginAsync();\n const listener = () => {\n waiter.endAsync(token);\n this._element.removeEventListener('close', listener);\n };\n this._element.addEventListener('close', listener);\n }\n\n // Make flyout dialog invisible using the native `close` method\n this._element.close();\n };\n\n <template>\n <HdsDialogPrimitiveWrapper\n class={{this.classNames}}\n ...attributes\n aria-labelledby={{this.id}}\n {{this._registerDialog}}\n {{focusTrap\n isActive=this._isOpen\n focusTrapOptions=(hash\n onDeactivate=this.onDismiss clickOutsideDeactivates=true\n )\n }}\n >\n <:header>\n {{yield\n (hash\n Header=(component\n HdsDialogPrimitiveHeader\n id=this.id\n onDismiss=this.onDismiss\n contextualClassPrefix=\"hds-flyout\"\n titleTag=\"h1\"\n )\n Description=(component\n HdsDialogPrimitiveDescription\n contextualClass=\"hds-flyout__description\"\n )\n )\n }}\n </:header>\n <:body>\n {{yield\n (hash\n Body=(component\n HdsDialogPrimitiveBody contextualClass=\"hds-flyout__body\"\n )\n )\n }}\n </:body>\n <:footer>\n {{yield\n (hash\n Footer=(component\n HdsDialogPrimitiveFooter\n onDismiss=this.onDismiss\n contextualClass=\"hds-flyout__footer\"\n )\n )\n }}\n </:footer>\n </HdsDialogPrimitiveWrapper>\n\n {{#if this._isOpen}}\n <HdsDialogPrimitiveOverlay @contextualClass=\"hds-flyout__overlay\" />\n {{/if}}\n </template>\n}\n"],"names":["waiter","buildWaiter","DEFAULT_SIZE","HdsFlyoutSizesValues","Medium","DEFAULT_HAS_OVERLAY","SIZES","Object","values","HdsFlyout","Component","g","prototype","tracked","i","_element","_body","_bodyInitialOverflowValue","size","args","assert","join","includes","id","getElementId","classNames","classes","push","_performCloseCleanup","_isOpen","style","removeProperty","length","removeAttribute","setProperty","returnFocusTo","initiator","document","getElementById","focus","_registerDialog","modifier","element","body","getPropertyValue","addEventListener","registerOnCloseCallback","open","removeEventListener","event","onClose","showModal","onOpen","onDismiss","token","beginAsync","listener","endAsync","close","setComponentTemplate","precompileTemplate","strictMode","scope","HdsDialogPrimitiveWrapper","focusTrap","hash","HdsDialogPrimitiveHeader","HdsDialogPrimitiveDescription","HdsDialogPrimitiveBody","HdsDialogPrimitiveFooter","HdsDialogPrimitiveOverlay"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright IBM Corp. 2021,
|
|
9
|
+
* Copyright IBM Corp. 2021, 2026
|
|
10
10
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
11
|
*/
|
|
12
12
|
const ID_PREFIX = 'character-count-';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/form/character-count/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/form/character-count/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport HdsTextBody from '../../text/body.gts';\n\nimport type { HdsTextBodySignature } from '../../text/body.gts';\n\nconst ID_PREFIX = 'character-count-';\nconst NOOP = (): void => {};\n\nexport interface HdsFormCharacterCountSignature {\n Args: {\n contextualClass?: string;\n controlId?: string;\n maxLength?: number | string;\n minLength?: number | string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onInsert?: (element: HTMLElement, ...args: any[]) => void;\n value?: string;\n };\n Blocks: {\n default?: [\n {\n minLength?: number;\n maxLength?: number;\n currentLength?: number;\n remaining?: number;\n shortfall?: number;\n },\n ];\n };\n Element: HdsTextBodySignature['Element'];\n}\n\nexport default class HdsFormCharacterCount extends Component<HdsFormCharacterCountSignature> {\n // The current number of characters in @value\n get currentLength(): number {\n const { value } = this.args;\n return value ? value.length : 0;\n }\n\n // Inflector utility function to determine plural or singular for 'character' noun\n private _pluralize(\n count?: number,\n prefix = '',\n noun = 'character',\n suffix = 's'\n ): string {\n return `${count}${prefix ? ' ' + prefix : ''} ${noun}${\n count !== 1 ? suffix : ''\n }`;\n }\n\n get maxLength(): number | undefined {\n const { maxLength } = this.args;\n if (maxLength) {\n return typeof maxLength === 'number' ? maxLength : parseInt(maxLength);\n }\n }\n\n get minLength(): number | undefined {\n const { minLength } = this.args;\n if (minLength) {\n return typeof minLength === 'number' ? minLength : parseInt(minLength);\n }\n }\n\n get remaining(): number | undefined {\n return this.maxLength ? this.maxLength - this.currentLength : undefined;\n }\n\n get shortfall(): number | undefined {\n return this.minLength ? this.minLength - this.currentLength : undefined;\n }\n\n get message(): string {\n let messageText = '';\n if (this.minLength && this.currentLength === 0) {\n messageText = `${this._pluralize(this.minLength)} required`;\n } else if (this.minLength && this.currentLength < this.minLength) {\n messageText = `${this._pluralize(this.shortfall, 'more')} required`;\n } else if (this.maxLength && this.currentLength === 0) {\n messageText = `${this._pluralize(this.maxLength)} allowed`;\n } else if (this.maxLength && this.currentLength <= this.maxLength) {\n messageText = `${this._pluralize(this.remaining)} remaining`;\n } else if (\n this.maxLength &&\n this.remaining &&\n this.currentLength > this.maxLength\n ) {\n messageText = `Exceeded by ${this._pluralize(-this.remaining)}`;\n } else {\n messageText = `${this._pluralize(this.currentLength)} entered`;\n }\n return messageText;\n }\n\n get id(): string | null {\n const { controlId } = this.args;\n if (controlId) {\n return `${ID_PREFIX}${controlId}`;\n }\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onInsert(): (element: HTMLElement, ...args: any[]) => void {\n const { onInsert } = this.args;\n // notice: this is a guard used to prevent triggering an error when the component is used as standalone element\n if (typeof onInsert === 'function') {\n return onInsert;\n } else {\n return NOOP;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-form-character-count'];\n\n // add a class based on the @contextualClass argument\n // notice: this will *not* be documented for public use\n // the reason for this is that the contextual component declarations don't pass attributes to the component\n if (this.args.contextualClass) {\n classes.push(this.args.contextualClass);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <HdsTextBody\n @tag=\"div\"\n @size=\"100\"\n class={{this.classNames}}\n id={{this.id}}\n {{didInsert this.onInsert}}\n ...attributes\n aria-live=\"polite\"\n >\n {{#if (has-block)}}\n {{yield\n (hash\n minLength=this.minLength\n maxLength=this.maxLength\n currentLength=this.currentLength\n remaining=this.remaining\n shortfall=this.shortfall\n )\n }}\n {{else}}\n {{this.message}}\n {{/if}}\n </HdsTextBody>\n </template>\n}\n"],"names":["ID_PREFIX","NOOP","HdsFormCharacterCount","Component","currentLength","value","args","length","_pluralize","count","prefix","noun","suffix","maxLength","parseInt","minLength","remaining","undefined","shortfall","message","messageText","id","controlId","onInsert","classNames","classes","contextualClass","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTextBody","didInsert","hash"],"mappings":";;;;;;;AAAA;;;AAGC;AAUD,MAAMA,SAAA,GAAY,kBAAA;AAClB,MAAMC,IAAA,GAAOA,MAAQ,CAAK,CAAA;AA0BX,MAAMC,8BAA8BC,SAAA,CAAU;AAC3D;EACA,IAAIC,aAAAA,GAAwB;IAC1B,MAAM;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACC,IAAI;AAC3B,IAAA,OAAOD,KAAA,GAAQA,KAAA,CAAME,MAAM,GAAG,CAAA;AAChC,EAAA;AAEA;AACQC,EAAAA,UAAAA,CACNC,KAAc,EACdC,SAAS,EAAE,EACXC,IAAA,GAAO,WAAW,EAClBC,MAAA,GAAS,GAAG,EACJ;IACR,OAAO,CAAA,EAAGH,KAAA,CAAA,EAAQC,MAAA,GAAS,MAAMA,MAAA,GAAS,EAAA,IAAMC,OAC9CF,KAAA,KAAU,CAAA,GAAIG,MAAA,GAAS,IACvB;AACJ,EAAA;EAEA,IAAIC,SAAAA,GAAgC;IAClC,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACP,IAAI;AAC/B,IAAA,IAAIO,SAAA,EAAW;MACb,OAAO,OAAOA,SAAA,KAAc,QAAA,GAAWA,SAAA,GAAYC,QAAA,CAASD,SAAA,CAAA;AAC9D,IAAA;AACF,EAAA;EAEA,IAAIE,SAAAA,GAAgC;IAClC,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACT,IAAI;AAC/B,IAAA,IAAIS,SAAA,EAAW;MACb,OAAO,OAAOA,SAAA,KAAc,QAAA,GAAWA,SAAA,GAAYD,QAAA,CAASC,SAAA,CAAA;AAC9D,IAAA;AACF,EAAA;EAEA,IAAIC,SAAAA,GAAgC;AAClC,IAAA,OAAO,IAAI,CAACH,SAAS,GAAG,IAAI,CAACA,SAAS,GAAG,IAAI,CAACT,aAAa,GAAGa,SAAA;AAChE,EAAA;EAEA,IAAIC,SAAAA,GAAgC;AAClC,IAAA,OAAO,IAAI,CAACH,SAAS,GAAG,IAAI,CAACA,SAAS,GAAG,IAAI,CAACX,aAAa,GAAGa,SAAA;AAChE,EAAA;EAEA,IAAIE,OAAAA,GAAkB;IACpB,IAAIC,WAAA,GAAc,EAAA;IAClB,IAAI,IAAI,CAACL,SAAS,IAAI,IAAI,CAACX,aAAa,KAAK,CAAA,EAAG;MAC9CgB,WAAA,GAAc,CAAA,EAAG,IAAI,CAACZ,UAAU,CAAC,IAAI,CAACO,SAAS,CAAA,CAAA,SAAA,CAAY;AAC7D,IAAA,CAAA,MAAO,IAAI,IAAI,CAACA,SAAS,IAAI,IAAI,CAACX,aAAa,GAAG,IAAI,CAACW,SAAS,EAAE;AAChEK,MAAAA,WAAA,GAAc,CAAA,EAAG,IAAI,CAACZ,UAAU,CAAC,IAAI,CAACU,SAAS,EAAE,MAAA,CAAA,CAAA,SAAA,CAAkB;IACrE,CAAA,MAAO,IAAI,IAAI,CAACL,SAAS,IAAI,IAAI,CAACT,aAAa,KAAK,CAAA,EAAG;MACrDgB,WAAA,GAAc,CAAA,EAAG,IAAI,CAACZ,UAAU,CAAC,IAAI,CAACK,SAAS,CAAA,CAAA,QAAA,CAAW;AAC5D,IAAA,CAAA,MAAO,IAAI,IAAI,CAACA,SAAS,IAAI,IAAI,CAACT,aAAa,IAAI,IAAI,CAACS,SAAS,EAAE;MACjEO,WAAA,GAAc,CAAA,EAAG,IAAI,CAACZ,UAAU,CAAC,IAAI,CAACQ,SAAS,CAAA,CAAA,UAAA,CAAa;AAC9D,IAAA,CAAA,MAAO,IACL,IAAI,CAACH,SAAS,IACd,IAAI,CAACG,SAAS,IACd,IAAI,CAACZ,aAAa,GAAG,IAAI,CAACS,SAAS,EACnC;MACAO,WAAA,GAAc,CAAA,YAAA,EAAe,IAAI,CAACZ,UAAU,CAAC,CAAC,IAAI,CAACQ,SAAS,CAAA,CAAA,CAAG;AACjE,IAAA,CAAA,MAAO;MACLI,WAAA,GAAc,CAAA,EAAG,IAAI,CAACZ,UAAU,CAAC,IAAI,CAACJ,aAAa,CAAA,CAAA,QAAA,CAAW;AAChE,IAAA;AACA,IAAA,OAAOgB,WAAA;AACT,EAAA;EAEA,IAAIC,EAAAA,GAAoB;IACtB,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAAChB,IAAI;AAC/B,IAAA,IAAIgB,SAAA,EAAW;AACb,MAAA,OAAO,CAAA,EAAGtB,SAAA,CAAA,EAAYsB,WAAW;AACnC,IAAA;AACA,IAAA,OAAO,IAAA;AACT,EAAA;AAEA;EACA,IAAIC,QAAAA,GAA2D;IAC7D,MAAM;AAAEA,MAAAA;KAAU,GAAG,IAAI,CAACjB,IAAI;AAC9B;AACA,IAAA,IAAI,OAAOiB,aAAa,UAAA,EAAY;AAClC,MAAA,OAAOA,QAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOtB,IAAA;AACT,IAAA;AACF,EAAA;EAEA,IAAIuB,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,0BAAA,CAA2B;AAE5C;AACA;AACA;AACA,IAAA,IAAI,IAAI,CAACnB,IAAI,CAACoB,eAAe,EAAE;MAC7BD,OAAA,CAAQE,IAAI,CAAC,IAAI,CAACrB,IAAI,CAACoB,eAAe,CAAA;AACxC,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQG,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,iYAAA,EAwBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,WAAA;QAAAC,SAAA;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 HdsFormCheckboxBase = setComponentTemplate(precompileTemplate("<input type=\"checkbox\" class=\"hds-form-checkbox\" ...attributes value={{@value}} />", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../../../../src/components/hds/form/checkbox/base.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../../../src/components/hds/form/checkbox/base.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 HdsFormCheckboxBaseSignature {\n Args: {\n value?: string;\n };\n Element: HTMLInputElement;\n}\n\nconst HdsFormCheckboxBase: TemplateOnlyComponent<HdsFormCheckboxBaseSignature> =\n <template>\n <input\n type=\"checkbox\"\n class=\"hds-form-checkbox\"\n ...attributes\n value={{@value}}\n />\n </template>;\n\nexport default HdsFormCheckboxBase;\n"],"names":["HdsFormCheckboxBase","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAWD,MAAMA,mBAA2C,GAAAC,oBAAA,CAC/CC,kBAAA,CAAA,wFAAA,EAOA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sources":["../../../../../src/components/hds/form/checkbox/field.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"field.js","sources":["../../../../../src/components/hds/form/checkbox/field.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nimport { hash } from '@ember/helper';\n\nimport HdsFormCheckboxBase from './base.gts';\nimport HdsFormField from '../field/index.gts';\n\nimport type { HdsFormFieldSignature } from '../field/index.gts';\nimport type { HdsFormCheckboxBaseSignature } from './base.gts';\n\nexport interface HdsFormCheckboxFieldSignature {\n Args: Omit<HdsFormFieldSignature['Args'], 'isOptional'> & {\n value?: string;\n name?: string;\n };\n Blocks: {\n default: [\n {\n Label?: HdsFormFieldSignature['Blocks']['default'][0]['Label'];\n HelperText?: HdsFormFieldSignature['Blocks']['default'][0]['HelperText'];\n Error?: HdsFormFieldSignature['Blocks']['default'][0]['Error'];\n },\n ];\n };\n Element: HdsFormCheckboxBaseSignature['Element'];\n}\n\nconst HdsFormCheckboxField: TemplateOnlyComponent<HdsFormCheckboxFieldSignature> =\n <template>\n <HdsFormField\n @layout=\"flag\"\n @contextualClass={{@contextualClass}}\n @extraAriaDescribedBy={{@extraAriaDescribedBy}}\n @id={{@id}}\n as |F|\n >\n {{! Notice: the order of the elements is not relevant here, because it's controlled at \"HdsFormField\" component level }}\n {{yield (hash Label=F.Label HelperText=F.HelperText Error=F.Error)}}\n <F.Control>\n <HdsFormCheckboxBase\n @value={{@value}}\n name={{@name}}\n required={{@isRequired}}\n ...attributes\n id={{F.id}}\n aria-describedby={{F.ariaDescribedBy}}\n />\n </F.Control>\n </HdsFormField>\n </template>;\n\nexport default HdsFormCheckboxField;\n"],"names":["HdsFormCheckboxField","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormField","hash","HdsFormCheckboxBase","templateOnly"],"mappings":";;;;;;;AAAA;;;AAGC;;AA4BD,MAAMA,oBAA4C,GAAAC,oBAAA,CAChDC,kBAAA,CAAA,4hBAAA,EAqBA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sources":["../../../../../src/components/hds/form/checkbox/group.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"group.js","sources":["../../../../../src/components/hds/form/checkbox/group.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport HdsFormFieldset from '../fieldset/index.gts';\nimport HdsFormCheckboxField from './field.gts';\n\nimport type { HdsFormFieldsetSignature } from '../fieldset/index.gts';\n\nexport interface HdsFormCheckboxGroupSignature {\n Args: HdsFormFieldsetSignature['Args'] & {\n name?: string;\n };\n Blocks: {\n default: [\n {\n Legend?: HdsFormFieldsetSignature['Blocks']['default'][0]['Legend'];\n HelperText?: HdsFormFieldsetSignature['Blocks']['default'][0]['HelperText'];\n CheckboxField?: WithBoundArgs<\n typeof HdsFormCheckboxField,\n 'isRequired' | 'name' | 'extraAriaDescribedBy' | 'contextualClass'\n >;\n Error?: HdsFormFieldsetSignature['Blocks']['default'][0]['Error'];\n },\n ];\n };\n Element: HdsFormFieldsetSignature['Element'];\n}\n\nconst HdsFormCheckboxGroup: TemplateOnlyComponent<HdsFormCheckboxGroupSignature> =\n <template>\n <HdsFormFieldset\n @layout={{@layout}}\n @isRequired={{@isRequired}}\n @isOptional={{@isOptional}}\n ...attributes\n as |F|\n >\n {{! Notice: the order of the elements is not relevant here, because it's controlled at \"HdsFormFieldset\" component level }}\n {{yield (hash Legend=F.Legend HelperText=F.HelperText Error=F.Error)}}\n <F.Control>\n {{yield\n (hash\n CheckboxField=(component\n HdsFormCheckboxField\n contextualClass=\"hds-form-group__control-field\"\n isRequired=@isRequired\n name=@name\n extraAriaDescribedBy=F.ariaDescribedBy\n )\n )\n }}\n </F.Control>\n </HdsFormFieldset>\n </template>;\n\nexport default HdsFormCheckboxGroup;\n"],"names":["HdsFormCheckboxGroup","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormFieldset","hash","HdsFormCheckboxField","templateOnly"],"mappings":";;;;;;;AAAA;;;AAGC;;AAgCD,MAAMA,oBAA4C,GAAAC,oBAAA,CAChDC,kBAAA,CAAA,sjBAAA,EAwBA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,eAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -9,7 +9,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
9
9
|
import { setComponentTemplate } from '@ember/component';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Copyright IBM Corp. 2021,
|
|
12
|
+
* Copyright IBM Corp. 2021, 2026
|
|
13
13
|
* SPDX-License-Identifier: MPL-2.0
|
|
14
14
|
*/
|
|
15
15
|
const ID_PREFIX = 'error-';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/form/error/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/form/error/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport HdsIcon from '../../icon/index.gts';\nimport HdsTextBody from '../../text/body.gts';\nimport HdsFormErrorMessage from './message.gts';\n\nexport const ID_PREFIX = 'error-';\n\nconst NOOP = (): void => {};\n\nexport interface HdsFormErrorSignature {\n Args: {\n contextualClass?: string;\n controlId?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onInsert?: (element: HTMLElement, ...args: any[]) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onRemove?: (element: HTMLElement, ...args: any[]) => void;\n };\n Blocks: {\n default: [\n {\n Message?: typeof HdsFormErrorMessage;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFormError extends Component<HdsFormErrorSignature> {\n get id(): string | null {\n const { controlId } = this.args;\n if (controlId) {\n return `${ID_PREFIX}${controlId}`;\n }\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onInsert(): (element: HTMLElement, ...args: any[]) => void {\n const { onInsert } = this.args;\n\n // notice: this is a guard used to prevent triggering an error when the component is used as standalone element\n if (typeof onInsert === 'function') {\n return onInsert;\n } else {\n return NOOP;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onRemove(): (element: HTMLElement, ...args: any[]) => void {\n const { onRemove } = this.args;\n\n // notice: this is a guard used to prevent triggering an error when the component is used as standalone element\n if (typeof onRemove === 'function') {\n return onRemove;\n } else {\n return NOOP;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-form-error'];\n\n // add a class based on the @contextualClass argument\n // notice: this will *not* be documented for public use\n // the reason for this is that the contextual component declarations don't pass attributes to the component\n if (this.args.contextualClass) {\n classes.push(this.args.contextualClass);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <div\n class={{this.classNames}}\n id={{this.id}}\n {{didInsert this.onInsert}}\n {{willDestroy this.onRemove}}\n ...attributes\n >\n <HdsIcon class=\"hds-form-error__icon\" @name=\"alert-diamond-fill\" />\n <HdsTextBody\n class=\"hds-form-error__content\"\n @tag=\"div\"\n @size=\"100\"\n @weight=\"medium\"\n >\n {{yield (hash Message=HdsFormErrorMessage)}}\n </HdsTextBody>\n </div>\n </template>\n}\n"],"names":["ID_PREFIX","NOOP","HdsFormError","Component","id","controlId","args","onInsert","onRemove","classNames","classes","contextualClass","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","willDestroy","HdsIcon","HdsTextBody","hash","HdsFormErrorMessage"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAaM,MAAMA,YAAY;AAEzB,MAAMC,IAAA,GAAOA,MAAQ,CAAK,CAAA;AAqBX,MAAMC,qBAAqBC,SAAA,CAAU;EAClD,IAAIC,EAAAA,GAAoB;IACtB,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAACC,IAAI;AAC/B,IAAA,IAAID,SAAA,EAAW;AACb,MAAA,OAAO,CAAA,EAAGL,SAAA,CAAA,EAAYK,WAAW;AACnC,IAAA;AACA,IAAA,OAAO,IAAA;AACT,EAAA;AAEA;EACA,IAAIE,QAAAA,GAA2D;IAC7D,MAAM;AAAEA,MAAAA;KAAU,GAAG,IAAI,CAACD,IAAI;AAE9B;AACA,IAAA,IAAI,OAAOC,aAAa,UAAA,EAAY;AAClC,MAAA,OAAOA,QAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAON,IAAA;AACT,IAAA;AACF,EAAA;AAEA;EACA,IAAIO,QAAAA,GAA2D;IAC7D,MAAM;AAAEA,MAAAA;KAAU,GAAG,IAAI,CAACF,IAAI;AAE9B;AACA,IAAA,IAAI,OAAOE,aAAa,UAAA,EAAY;AAClC,MAAA,OAAOA,QAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOP,IAAA;AACT,IAAA;AACF,EAAA;EAEA,IAAIQ,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,gBAAA,CAAiB;AAElC;AACA;AACA;AACA,IAAA,IAAI,IAAI,CAACJ,IAAI,CAACK,eAAe,EAAE;MAC7BD,OAAA,CAAQE,IAAI,CAAC,IAAI,CAACN,IAAI,CAACK,eAAe,CAAA;AACxC,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQG,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,gXAAA,EAkBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,WAAA;QAAAC,IAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|