@hashicorp/design-system-components 4.14.0 → 4.15.0
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/item/index.d.ts +3 -3
- package/declarations/components/hds/accordion/item/index.d.ts.map +1 -1
- package/declarations/components/hds/alert/description.d.ts +0 -1
- package/declarations/components/hds/alert/description.d.ts.map +1 -1
- package/declarations/components/hds/alert/index.d.ts +2 -2
- package/declarations/components/hds/alert/index.d.ts.map +1 -1
- package/declarations/components/hds/app-footer/item.d.ts +0 -1
- package/declarations/components/hds/app-footer/item.d.ts.map +1 -1
- package/declarations/components/hds/app-footer/link.d.ts +0 -1
- package/declarations/components/hds/app-footer/link.d.ts.map +1 -1
- package/declarations/components/hds/app-footer/status-link.d.ts +1 -1
- package/declarations/components/hds/app-footer/status-link.d.ts.map +1 -1
- package/declarations/components/hds/app-frame/parts/footer.d.ts +0 -1
- package/declarations/components/hds/app-frame/parts/footer.d.ts.map +1 -1
- package/declarations/components/hds/app-frame/parts/header.d.ts +0 -1
- package/declarations/components/hds/app-frame/parts/header.d.ts.map +1 -1
- package/declarations/components/hds/app-frame/parts/main.d.ts +0 -1
- package/declarations/components/hds/app-frame/parts/main.d.ts.map +1 -1
- package/declarations/components/hds/app-frame/parts/modals.d.ts +0 -1
- package/declarations/components/hds/app-frame/parts/modals.d.ts.map +1 -1
- package/declarations/components/hds/app-frame/parts/sidebar.d.ts +0 -1
- package/declarations/components/hds/app-frame/parts/sidebar.d.ts.map +1 -1
- package/declarations/components/hds/app-header/index.d.ts +7 -7
- package/declarations/components/hds/app-header/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/index.d.ts +8 -8
- package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts +0 -1
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/list/item.d.ts +0 -1
- package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/list/link.d.ts +0 -1
- package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/portal/index.d.ts +0 -1
- package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/portal/target.d.ts +3 -3
- package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts +0 -1
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -1
- package/declarations/components/hds/application-state/body.d.ts +0 -1
- package/declarations/components/hds/application-state/body.d.ts.map +1 -1
- package/declarations/components/hds/application-state/footer.d.ts +0 -1
- package/declarations/components/hds/application-state/footer.d.ts.map +1 -1
- package/declarations/components/hds/application-state/media.d.ts +0 -1
- package/declarations/components/hds/application-state/media.d.ts.map +1 -1
- package/declarations/components/hds/button-set/index.d.ts +0 -1
- package/declarations/components/hds/button-set/index.d.ts.map +1 -1
- package/declarations/components/hds/code-block/copy-button.d.ts +0 -1
- package/declarations/components/hds/code-block/copy-button.d.ts.map +1 -1
- package/declarations/components/hds/code-block/description.d.ts +0 -1
- package/declarations/components/hds/code-block/description.d.ts.map +1 -1
- package/declarations/components/hds/code-block/index.d.ts +3 -4
- package/declarations/components/hds/code-block/index.d.ts.map +1 -1
- package/declarations/components/hds/copy/button/index.d.ts +2 -2
- package/declarations/components/hds/copy/button/index.d.ts.map +1 -1
- package/declarations/components/hds/copy/snippet/index.d.ts +2 -2
- package/declarations/components/hds/copy/snippet/index.d.ts.map +1 -1
- package/declarations/components/hds/dialog-primitive/body.d.ts +0 -1
- package/declarations/components/hds/dialog-primitive/body.d.ts.map +1 -1
- package/declarations/components/hds/dialog-primitive/description.d.ts +0 -1
- package/declarations/components/hds/dialog-primitive/description.d.ts.map +1 -1
- package/declarations/components/hds/dialog-primitive/overlay.d.ts +0 -1
- package/declarations/components/hds/dialog-primitive/overlay.d.ts.map +1 -1
- package/declarations/components/hds/dialog-primitive/wrapper.d.ts +0 -1
- package/declarations/components/hds/dialog-primitive/wrapper.d.ts.map +1 -1
- package/declarations/components/hds/disclosure-primitive/index.d.ts +2 -2
- package/declarations/components/hds/disclosure-primitive/index.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/footer.d.ts +0 -1
- package/declarations/components/hds/dropdown/footer.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/header.d.ts +0 -1
- package/declarations/components/hds/dropdown/header.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/list-item/generic.d.ts +0 -1
- package/declarations/components/hds/dropdown/list-item/generic.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/list-item/separator.d.ts +0 -1
- package/declarations/components/hds/dropdown/list-item/separator.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/toggle/button.d.ts +2 -2
- package/declarations/components/hds/dropdown/toggle/button.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts +0 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts.map +1 -1
- package/declarations/components/hds/flyout/index.d.ts +3 -3
- package/declarations/components/hds/flyout/index.d.ts.map +1 -1
- package/declarations/components/hds/form/checkbox/base.d.ts +0 -1
- package/declarations/components/hds/form/checkbox/base.d.ts.map +1 -1
- package/declarations/components/hds/form/checkbox/field.d.ts +0 -1
- package/declarations/components/hds/form/checkbox/field.d.ts.map +1 -1
- package/declarations/components/hds/form/checkbox/group.d.ts +0 -1
- package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
- package/declarations/components/hds/form/error/message.d.ts +0 -1
- package/declarations/components/hds/form/error/message.d.ts.map +1 -1
- package/declarations/components/hds/form/file-input/base.d.ts +0 -1
- package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
- package/declarations/components/hds/form/file-input/field.d.ts +0 -1
- package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
- package/declarations/components/hds/form/masked-input/field.d.ts +0 -1
- package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
- package/declarations/components/hds/form/radio/base.d.ts +0 -1
- package/declarations/components/hds/form/radio/base.d.ts.map +1 -1
- package/declarations/components/hds/form/radio/field.d.ts +0 -1
- package/declarations/components/hds/form/radio/field.d.ts.map +1 -1
- package/declarations/components/hds/form/radio/group.d.ts +0 -1
- package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
- package/declarations/components/hds/form/radio-card/description.d.ts +0 -1
- package/declarations/components/hds/form/radio-card/description.d.ts.map +1 -1
- package/declarations/components/hds/form/radio-card/group.d.ts +0 -1
- package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
- package/declarations/components/hds/form/radio-card/label.d.ts +0 -1
- package/declarations/components/hds/form/radio-card/label.d.ts.map +1 -1
- package/declarations/components/hds/form/select/field.d.ts +0 -1
- package/declarations/components/hds/form/select/field.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts +0 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/multiple/base.d.ts +3 -3
- package/declarations/components/hds/form/super-select/multiple/base.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/option-group.d.ts +2 -1
- package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts +0 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
- package/declarations/components/hds/form/textarea/field.d.ts +0 -1
- package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
- package/declarations/components/hds/form/toggle/base.d.ts +0 -1
- package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
- package/declarations/components/hds/form/toggle/field.d.ts +0 -1
- package/declarations/components/hds/form/toggle/field.d.ts.map +1 -1
- package/declarations/components/hds/form/toggle/group.d.ts +0 -1
- package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
- package/declarations/components/hds/form/visibility-toggle/index.d.ts +0 -1
- package/declarations/components/hds/form/visibility-toggle/index.d.ts.map +1 -1
- package/declarations/components/hds/icon/index.d.ts +2 -2
- package/declarations/components/hds/icon/index.d.ts.map +1 -1
- package/declarations/components/hds/modal/index.d.ts +4 -4
- package/declarations/components/hds/modal/index.d.ts.map +1 -1
- package/declarations/components/hds/page-header/actions.d.ts +0 -1
- package/declarations/components/hds/page-header/actions.d.ts.map +1 -1
- package/declarations/components/hds/page-header/badges.d.ts +0 -1
- package/declarations/components/hds/page-header/badges.d.ts.map +1 -1
- package/declarations/components/hds/page-header/description.d.ts +0 -1
- package/declarations/components/hds/page-header/description.d.ts.map +1 -1
- package/declarations/components/hds/page-header/index.d.ts +0 -1
- package/declarations/components/hds/page-header/index.d.ts.map +1 -1
- package/declarations/components/hds/page-header/subtitle.d.ts +0 -1
- package/declarations/components/hds/page-header/subtitle.d.ts.map +1 -1
- package/declarations/components/hds/page-header/title.d.ts +0 -1
- package/declarations/components/hds/page-header/title.d.ts.map +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts +2 -2
- package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/nav/ellipsis.d.ts +0 -1
- package/declarations/components/hds/pagination/nav/ellipsis.d.ts.map +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts +3 -3
- package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
- package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
- package/declarations/components/hds/popover-primitive/index.d.ts +8 -8
- package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
- package/declarations/components/hds/reveal/index.d.ts +2 -2
- package/declarations/components/hds/reveal/index.d.ts.map +1 -1
- package/declarations/components/hds/rich-tooltip/index.d.ts +3 -3
- package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
- package/declarations/components/hds/segmented-group/index.d.ts +0 -1
- package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/base.d.ts +0 -1
- package/declarations/components/hds/side-nav/base.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/header/index.d.ts +0 -1
- package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/list/back-link.d.ts +0 -1
- package/declarations/components/hds/side-nav/list/back-link.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/list/item.d.ts +0 -1
- package/declarations/components/hds/side-nav/list/item.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/list/link.d.ts +0 -1
- package/declarations/components/hds/side-nav/list/link.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/portal/index.d.ts +0 -1
- package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/toggle-button.d.ts +0 -1
- package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
- package/declarations/components/hds/table/index.d.ts +5 -4
- package/declarations/components/hds/table/index.d.ts.map +1 -1
- package/declarations/components/hds/table/th-button-sort.d.ts +2 -2
- package/declarations/components/hds/table/th-button-sort.d.ts.map +1 -1
- package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/table/th-button-tooltip.d.ts.map +1 -1
- package/declarations/components/hds/table/th-selectable.d.ts +3 -3
- package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
- package/declarations/components/hds/table/th-sort.d.ts +2 -2
- package/declarations/components/hds/table/th-sort.d.ts.map +1 -1
- package/declarations/components/hds/table/th.d.ts +2 -2
- package/declarations/components/hds/table/th.d.ts.map +1 -1
- package/declarations/components/hds/tabs/index.d.ts +8 -8
- package/declarations/components/hds/tabs/index.d.ts.map +1 -1
- package/declarations/components/hds/tabs/panel.d.ts +3 -2
- package/declarations/components/hds/tabs/panel.d.ts.map +1 -1
- package/declarations/components/hds/tabs/tab.d.ts +2 -1
- package/declarations/components/hds/tabs/tab.d.ts.map +1 -1
- package/declarations/components/hds/time/index.d.ts +35 -0
- package/declarations/components/hds/time/index.d.ts.map +1 -0
- package/declarations/components/hds/time/range.d.ts +35 -0
- package/declarations/components/hds/time/range.d.ts.map +1 -0
- package/declarations/components/hds/time/single.d.ts +18 -0
- package/declarations/components/hds/time/single.d.ts.map +1 -0
- package/declarations/components/hds/toast/index.d.ts +0 -1
- package/declarations/components/hds/toast/index.d.ts.map +1 -1
- package/declarations/components/hds/yield/index.d.ts +0 -1
- package/declarations/components/hds/yield/index.d.ts.map +1 -1
- package/declarations/components.d.ts +4 -0
- package/declarations/components.d.ts.map +1 -1
- package/declarations/helpers/hds-format-date.d.ts +18 -0
- package/declarations/helpers/hds-format-date.d.ts.map +1 -0
- package/declarations/helpers/hds-format-relative.d.ts +11 -0
- package/declarations/helpers/hds-format-relative.d.ts.map +1 -0
- package/declarations/modifiers/hds-anchored-position.d.ts +1 -1
- package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
- package/declarations/modifiers/hds-clipboard.d.ts +4 -4
- package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
- package/declarations/modifiers/hds-register-event.d.ts +1 -1
- package/declarations/modifiers/hds-register-event.d.ts.map +1 -1
- package/declarations/modifiers/hds-tooltip.d.ts +4 -4
- package/declarations/modifiers/hds-tooltip.d.ts.map +1 -1
- package/declarations/services/hds-time-types.d.ts +31 -0
- package/declarations/services/hds-time-types.d.ts.map +1 -0
- package/declarations/services/hds-time.d.ts +76 -0
- package/declarations/services/hds-time.d.ts.map +1 -0
- package/declarations/services.d.ts +5 -0
- package/declarations/services.d.ts.map +1 -0
- package/declarations/template-registry.d.ts +13 -0
- package/declarations/template-registry.d.ts.map +1 -1
- package/dist/_app_/components/hds/time/index.js +1 -0
- package/dist/_app_/components/hds/time/range.js +1 -0
- package/dist/_app_/components/hds/time/single.js +1 -0
- package/dist/_app_/helpers/hds-format-date.js +1 -0
- package/dist/_app_/helpers/hds-format-relative.js +1 -0
- package/dist/_app_/services/hds-time.js +1 -0
- package/dist/{_rollupPluginBabelHelpers-KIi_qCIU.js → _rollupPluginBabelHelpers-81503waH.js} +9 -3
- package/dist/_rollupPluginBabelHelpers-81503waH.js.map +1 -0
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js +2 -2
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/accordion/item/index.js +6 -6
- package/dist/components/hds/accordion/item/index.js.map +1 -1
- package/dist/components/hds/accordion/types.js.map +1 -1
- package/dist/components/hds/alert/description.js.map +1 -1
- package/dist/components/hds/alert/index.js +10 -10
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/alert/title.js.map +1 -1
- package/dist/components/hds/alert/types.js.map +1 -1
- package/dist/components/hds/app-footer/copyright.js.map +1 -1
- package/dist/components/hds/app-footer/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js.map +1 -1
- package/dist/components/hds/app-footer/legal-links.js.map +1 -1
- package/dist/components/hds/app-footer/link.js.map +1 -1
- package/dist/components/hds/app-footer/status-link.js.map +1 -1
- package/dist/components/hds/app-footer/types.js.map +1 -1
- package/dist/components/hds/app-frame/index.js.map +1 -1
- package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
- package/dist/components/hds/app-frame/parts/header.js.map +1 -1
- package/dist/components/hds/app-frame/parts/main.js.map +1 -1
- package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
- package/dist/components/hds/app-header/home-link.js.map +1 -1
- package/dist/components/hds/app-header/index.js +27 -27
- package/dist/components/hds/app-header/index.js.map +1 -1
- package/dist/components/hds/app-header/menu-button.js +2 -2
- package/dist/components/hds/app-header/menu-button.js.map +1 -1
- package/dist/components/hds/app-side-nav/index.js +48 -48
- package/dist/components/hds/app-side-nav/index.js.map +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 +3 -3
- package/dist/components/hds/app-side-nav/list/index.js.map +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.map +1 -1
- package/dist/components/hds/app-side-nav/list/title.js +4 -4
- package/dist/components/hds/app-side-nav/list/title.js.map +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 +14 -14
- package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/application-state/body.js.map +1 -1
- package/dist/components/hds/application-state/footer.js.map +1 -1
- package/dist/components/hds/application-state/header.js.map +1 -1
- package/dist/components/hds/application-state/index.js.map +1 -1
- package/dist/components/hds/application-state/media.js.map +1 -1
- package/dist/components/hds/application-state/types.js.map +1 -1
- package/dist/components/hds/badge/index.js.map +1 -1
- package/dist/components/hds/badge/types.js.map +1 -1
- package/dist/components/hds/badge-count/index.js.map +1 -1
- package/dist/components/hds/badge-count/types.js.map +1 -1
- package/dist/components/hds/breadcrumb/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/item.js.map +1 -1
- package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
- package/dist/components/hds/button/index.js.map +1 -1
- package/dist/components/hds/button/types.js.map +1 -1
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/card/container.js.map +1 -1
- package/dist/components/hds/card/types.js.map +1 -1
- package/dist/components/hds/code-block/copy-button.js.map +1 -1
- package/dist/components/hds/code-block/description.js.map +1 -1
- package/dist/components/hds/code-block/index.js +9 -9
- package/dist/components/hds/code-block/index.js.map +1 -1
- package/dist/components/hds/code-block/title.js.map +1 -1
- package/dist/components/hds/code-block/types.js.map +1 -1
- package/dist/components/hds/copy/button/index.js +14 -14
- package/dist/components/hds/copy/button/index.js.map +1 -1
- package/dist/components/hds/copy/button/types.js.map +1 -1
- package/dist/components/hds/copy/snippet/index.js +14 -14
- package/dist/components/hds/copy/snippet/index.js.map +1 -1
- package/dist/components/hds/copy/snippet/types.js.map +1 -1
- package/dist/components/hds/dialog-primitive/body.js.map +1 -1
- package/dist/components/hds/dialog-primitive/description.js.map +1 -1
- package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
- package/dist/components/hds/dialog-primitive/header.js.map +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
- package/dist/components/hds/dialog-primitive/types.js.map +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
- package/dist/components/hds/disclosure-primitive/index.js +3 -3
- package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
- package/dist/components/hds/dismiss-button/index.js.map +1 -1
- package/dist/components/hds/dropdown/footer.js.map +1 -1
- package/dist/components/hds/dropdown/header.js.map +1 -1
- package/dist/components/hds/dropdown/index.js +2 -2
- package/dist/components/hds/dropdown/index.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/types.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/button.js +4 -4
- package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js +7 -7
- package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/types.js.map +1 -1
- package/dist/components/hds/dropdown/types.js.map +1 -1
- package/dist/components/hds/flyout/body.js.map +1 -1
- package/dist/components/hds/flyout/description.js.map +1 -1
- package/dist/components/hds/flyout/footer.js.map +1 -1
- package/dist/components/hds/flyout/header.js.map +1 -1
- package/dist/components/hds/flyout/index.js +21 -19
- package/dist/components/hds/flyout/index.js.map +1 -1
- package/dist/components/hds/flyout/types.js.map +1 -1
- package/dist/components/hds/form/character-count/index.js.map +1 -1
- package/dist/components/hds/form/checkbox/base.js.map +1 -1
- package/dist/components/hds/form/checkbox/field.js.map +1 -1
- package/dist/components/hds/form/checkbox/group.js.map +1 -1
- package/dist/components/hds/form/error/index.js.map +1 -1
- package/dist/components/hds/form/error/message.js.map +1 -1
- package/dist/components/hds/form/field/index.js +2 -2
- package/dist/components/hds/form/field/index.js.map +1 -1
- package/dist/components/hds/form/field/types.js.map +1 -1
- package/dist/components/hds/form/fieldset/index.js +2 -2
- package/dist/components/hds/form/fieldset/index.js.map +1 -1
- package/dist/components/hds/form/fieldset/types.js.map +1 -1
- package/dist/components/hds/form/file-input/base.js.map +1 -1
- package/dist/components/hds/form/file-input/field.js.map +1 -1
- package/dist/components/hds/form/helper-text/index.js.map +1 -1
- package/dist/components/hds/form/indicator/index.js.map +1 -1
- package/dist/components/hds/form/label/index.js.map +1 -1
- package/dist/components/hds/form/legend/index.js.map +1 -1
- package/dist/components/hds/form/masked-input/base.js +3 -3
- package/dist/components/hds/form/masked-input/base.js.map +1 -1
- package/dist/components/hds/form/masked-input/field.js.map +1 -1
- package/dist/components/hds/form/radio/base.js.map +1 -1
- package/dist/components/hds/form/radio/field.js.map +1 -1
- package/dist/components/hds/form/radio/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/description.js.map +1 -1
- package/dist/components/hds/form/radio-card/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/index.js.map +1 -1
- package/dist/components/hds/form/radio-card/label.js.map +1 -1
- package/dist/components/hds/form/radio-card/types.js.map +1 -1
- package/dist/components/hds/form/select/base.js.map +1 -1
- package/dist/components/hds/form/select/field.js.map +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 +20 -20
- package/dist/components/hds/form/super-select/multiple/base.js.map +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 +4 -3
- package/dist/components/hds/form/super-select/option-group.js.map +1 -1
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
- package/dist/components/hds/form/super-select/single/base.js +3 -3
- package/dist/components/hds/form/super-select/single/base.js.map +1 -1
- package/dist/components/hds/form/super-select/single/field.js.map +1 -1
- package/dist/components/hds/form/super-select/types.js.map +1 -1
- package/dist/components/hds/form/text-input/base.js.map +1 -1
- package/dist/components/hds/form/text-input/field.js +9 -9
- package/dist/components/hds/form/text-input/field.js.map +1 -1
- package/dist/components/hds/form/text-input/types.js.map +1 -1
- package/dist/components/hds/form/textarea/base.js.map +1 -1
- package/dist/components/hds/form/textarea/field.js.map +1 -1
- package/dist/components/hds/form/toggle/base.js.map +1 -1
- package/dist/components/hds/form/toggle/field.js.map +1 -1
- package/dist/components/hds/form/toggle/group.js.map +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
- package/dist/components/hds/icon/index.js +5 -5
- package/dist/components/hds/icon/index.js.map +1 -1
- package/dist/components/hds/icon/types.js.map +1 -1
- package/dist/components/hds/icon-tile/index.js.map +1 -1
- package/dist/components/hds/icon-tile/types.js.map +1 -1
- package/dist/components/hds/interactive/index.js +2 -2
- package/dist/components/hds/interactive/index.js.map +1 -1
- package/dist/components/hds/link/inline.js.map +1 -1
- package/dist/components/hds/link/standalone.js.map +1 -1
- package/dist/components/hds/link/types.js.map +1 -1
- package/dist/components/hds/menu-primitive/index.js +3 -3
- package/dist/components/hds/menu-primitive/index.js.map +1 -1
- package/dist/components/hds/modal/body.js.map +1 -1
- package/dist/components/hds/modal/footer.js.map +1 -1
- package/dist/components/hds/modal/header.js.map +1 -1
- package/dist/components/hds/modal/index.js +32 -32
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components/hds/modal/types.js.map +1 -1
- package/dist/components/hds/page-header/actions.js.map +1 -1
- package/dist/components/hds/page-header/badges.js.map +1 -1
- package/dist/components/hds/page-header/description.js.map +1 -1
- package/dist/components/hds/page-header/index.js.map +1 -1
- package/dist/components/hds/page-header/subtitle.js.map +1 -1
- package/dist/components/hds/page-header/title.js.map +1 -1
- package/dist/components/hds/pagination/compact/index.js +11 -11
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/info/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js +2 -2
- package/dist/components/hds/pagination/nav/arrow.js.map +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 +15 -15
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +4 -4
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/pagination/types.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +52 -52
- package/dist/components/hds/popover-primitive/index.js.map +1 -1
- package/dist/components/hds/reveal/index.js +4 -4
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/reveal/toggle/button.js.map +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
- package/dist/components/hds/rich-tooltip/index.js +5 -5
- package/dist/components/hds/rich-tooltip/index.js.map +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
- package/dist/components/hds/rich-tooltip/types.js.map +1 -1
- package/dist/components/hds/segmented-group/index.js.map +1 -1
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/separator/types.js.map +1 -1
- package/dist/components/hds/side-nav/base.js.map +1 -1
- package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
- package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
- package/dist/components/hds/side-nav/header/index.js.map +1 -1
- package/dist/components/hds/side-nav/index.js +3 -3
- package/dist/components/hds/side-nav/index.js.map +1 -1
- package/dist/components/hds/side-nav/list/back-link.js.map +1 -1
- package/dist/components/hds/side-nav/list/index.js +3 -3
- package/dist/components/hds/side-nav/list/index.js.map +1 -1
- package/dist/components/hds/side-nav/list/item.js.map +1 -1
- package/dist/components/hds/side-nav/list/link.js.map +1 -1
- package/dist/components/hds/side-nav/list/title.js +2 -2
- package/dist/components/hds/side-nav/list/title.js.map +1 -1
- package/dist/components/hds/side-nav/portal/index.js.map +1 -1
- package/dist/components/hds/side-nav/portal/target.js +3 -3
- package/dist/components/hds/side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/stepper/types.js.map +1 -1
- package/dist/components/hds/table/index.js +26 -26
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/td.js.map +1 -1
- package/dist/components/hds/table/th-button-sort.js +4 -4
- package/dist/components/hds/table/th-button-sort.js.map +1 -1
- package/dist/components/hds/table/th-button-tooltip.js +3 -3
- package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/table/th-selectable.js +7 -7
- package/dist/components/hds/table/th-selectable.js.map +1 -1
- package/dist/components/hds/table/th-sort.js +4 -4
- package/dist/components/hds/table/th-sort.js.map +1 -1
- package/dist/components/hds/table/th.js +4 -4
- package/dist/components/hds/table/th.js.map +1 -1
- package/dist/components/hds/table/tr.js.map +1 -1
- package/dist/components/hds/table/types.js.map +1 -1
- package/dist/components/hds/tabs/index.js +40 -40
- package/dist/components/hds/tabs/index.js.map +1 -1
- package/dist/components/hds/tabs/panel.js +9 -8
- package/dist/components/hds/tabs/panel.js.map +1 -1
- package/dist/components/hds/tabs/tab.js +6 -5
- package/dist/components/hds/tabs/tab.js.map +1 -1
- package/dist/components/hds/tabs/types.js.map +1 -1
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/tag/types.js.map +1 -1
- package/dist/components/hds/text/body.js.map +1 -1
- package/dist/components/hds/text/code.js.map +1 -1
- package/dist/components/hds/text/display.js.map +1 -1
- package/dist/components/hds/text/index.js.map +1 -1
- package/dist/components/hds/text/types.js.map +1 -1
- package/dist/components/hds/time/index.js +128 -0
- package/dist/components/hds/time/index.js.map +1 -0
- package/dist/components/hds/time/range.js +66 -0
- package/dist/components/hds/time/range.js.map +1 -0
- package/dist/components/hds/time/single.js +16 -0
- package/dist/components/hds/time/single.js.map +1 -0
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/types.js.map +1 -1
- package/dist/components/hds/yield/index.js.map +1 -1
- package/dist/components.js +3 -0
- package/dist/components.js.map +1 -1
- package/dist/helpers/hds-format-date.js +29 -0
- package/dist/helpers/hds-format-date.js.map +1 -0
- package/dist/helpers/hds-format-relative.js +29 -0
- package/dist/helpers/hds-format-relative.js.map +1 -0
- package/dist/helpers/hds-link-to-models.js.map +1 -1
- package/dist/helpers/hds-link-to-query.js.map +1 -1
- package/dist/instance-initializers/load-sprite.js.map +1 -1
- package/dist/modifiers/hds-anchored-position.js +12 -8
- package/dist/modifiers/hds-anchored-position.js.map +1 -1
- package/dist/modifiers/hds-clipboard.js.map +1 -1
- package/dist/modifiers/hds-register-event.js +4 -4
- package/dist/modifiers/hds-register-event.js.map +1 -1
- package/dist/modifiers/hds-tooltip.js +19 -19
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/services/hds-time-types.js +2 -0
- package/dist/services/hds-time-types.js.map +1 -0
- package/dist/services/hds-time.js +215 -0
- package/dist/services/hds-time.js.map +1 -0
- package/dist/services.js +2 -0
- package/dist/services.js.map +1 -0
- package/dist/styles/@hashicorp/design-system-components.css +101 -114
- package/dist/styles/@hashicorp/design-system-components.scss +1 -0
- package/dist/styles/components/alert.scss +0 -1
- package/dist/styles/components/app-side-nav/index.scss +4 -4
- package/dist/styles/components/badge-count.scss +6 -5
- package/dist/styles/components/badge.scss +11 -9
- package/dist/styles/components/code-block/index.scss +1 -1
- package/dist/styles/components/copy/index.scss +2 -2
- package/dist/styles/components/dropdown.scss +14 -7
- package/dist/styles/components/icon-tile.scss +19 -23
- package/dist/styles/components/link/index.scss +2 -2
- package/dist/styles/components/link/standalone.scss +5 -4
- package/dist/styles/components/page-header.scss +4 -1
- package/dist/styles/components/side-nav/index.scss +6 -6
- package/dist/styles/components/stepper/index.scss +2 -2
- package/dist/styles/components/stepper/step-indicator.scss +14 -12
- package/dist/styles/components/stepper/task-indicator.scss +5 -3
- package/dist/styles/components/tabs.scss +4 -3
- package/dist/styles/components/time.scss +13 -0
- package/dist/styles/mixins/_button.scss +11 -9
- package/dist/utils/hds-aria-described-by.js +3 -3
- package/dist/utils/hds-aria-described-by.js.map +1 -1
- package/dist/utils/hds-get-element-id.js.map +1 -1
- package/package.json +14 -6
- package/dist/_rollupPluginBabelHelpers-KIi_qCIU.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.hbs","../../../../src/components/hds/table/th.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<th class={{this.classNames}} {{style width=@width minWidth=@width}} ...attributes scope={{(or @scope \\\"col\\\")}}>\\n {{#if @isVisuallyHidden}}\\n <span class=\\\"sr-only\\\">{{yield}}</span>\\n {{else}}\\n {{#if @tooltip}}\\n <div class=\\\"hds-table__th-content\\\">\\n <span id={{this.
|
|
1
|
+
{"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.hbs","../../../../src/components/hds/table/th.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<th class={{this.classNames}} {{style width=@width minWidth=@width}} ...attributes scope={{(or @scope \\\"col\\\")}}>\\n {{#if @isVisuallyHidden}}\\n <span class=\\\"sr-only\\\">{{yield}}</span>\\n {{else}}\\n {{#if @tooltip}}\\n <div class=\\\"hds-table__th-content\\\">\\n <span id={{this._labelId}} class=\\\"hds-typography-body-200 hds-font-weight-semibold\\\">{{yield}}</span>\\n <Hds::Table::ThButtonTooltip @tooltip={{@tooltip}} @labelId={{this._labelId}} />\\n </div>\\n {{else}}\\n <span class=\\\"hds-typography-body-200 hds-font-weight-semibold\\\">{{yield}}</span>\\n {{/if}}\\n {{/if}}\\n</th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\n\nimport type { HdsTableHorizontalAlignment, HdsTableScope } from './types.ts';\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\n\nexport const ALIGNMENTS: string[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n scope?: HdsTableScope;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableTh extends Component<HdsTableThSignature> {\n /**\n * Generates a unique ID for the <span> element (\"label\")\n *\n * @param _labelId\n */\n private _labelId = guidFor(this);\n\n /**\n * @param align\n * @type {HdsTableHorizontalAlignment}\n * @default left\n * @description Determines the text alignment of the header or cell content. Options are: \"left\", \"center\", \"right\". If no align is defined, \"left\" is used.\n */\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Th\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-table__th'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTh","Component","constructor","args","_defineProperty","guidFor","align","assert","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,yrBAAyrB;;ACWptB,MAAMA,UAAoB,GAAGC,MAAM,CAACC,MAAM,CAC/CC,iCACF;AACaC,MAAAA,aAAa,GAAGD,iCAAiC,CAACE;AAgBhD,MAAMC,UAAU,SAASC,SAAS,CAAsB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AACrE;AACF;AACA;AACA;AACA;AAJEC,IAAAA,eAAA,CAKmBC,IAAAA,EAAAA,UAAAA,EAAAA,OAAO,CAAC,IAAI,CAAC,CAAA;AAAA;AAEhC;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,KAAKA,GAAgC;IACvC,MAAM;AAAEA,MAAAA,KAAK,GAAGR;KAAe,GAAG,IAAI,CAACK,IAAI;AAE3CI,IAAAA,MAAM,CACJ,CAA6Db,0DAAAA,EAAAA,UAAU,CAACc,IAAI,CAC1E,IACF,CAAC,CAAA,YAAA,EAAeF,KAAK,CAAA,CAAE,EACvBZ,UAAU,CAACe,QAAQ,CAACH,KAAK,CAC3B,CAAC;AACD,IAAA,OAAOA,KAAK;AACd;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,eAAe,CAAC;;AAEjC;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAO,CAACC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACN,KAAK,EAAE,CAAC;AACpD;AAEA,IAAA,OAAOK,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACK,oBAAA,CAAAC,QAAA,EAzCoBd,UAAU,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.hbs","../../../../src/components/hds/table/tr.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<tr class=\\\"hds-table__tr\\\" ...attributes>\\n {{#if @isSelectable}}\\n <Hds::Table::ThSelectable\\n @isSelected={{@isSelected}}\\n @selectionScope={{@selectionScope}}\\n @selectionKey={{this.selectionKey}}\\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\\n @sortBySelectedOrder={{@sortBySelectedOrder}}\\n @didInsert={{@didInsert}}\\n @willDestroy={{@willDestroy}}\\n @onClickSortBySelected={{@onClickSortBySelected}}\\n @onSelectionChange={{@onSelectionChange}}\\n />\\n {{/if}}\\n\\n {{yield}}\\n</tr>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTableScopeValues } from './types.ts';\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableSignature } from './index.ts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.ts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: false;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableRowElement;\n}\n\n// Extended interface for selectable rows\nexport interface SelectableHdsTableTrArgs extends BaseHdsTableTrSignature {\n Args: BaseHdsTableTrSignature['Args'] & {\n isSelectable: true;\n selectionScope?: HdsTableScopeValues.Row;\n selectionKey: string; // Now required for selectable rows\n };\n}\n\n// Union type to combine both possible states\nexport type HdsTableTrSignature =\n | BaseHdsTableTrSignature\n | SelectableHdsTableTrArgs;\nexport default class HdsTableTr extends Component<HdsTableTrSignature> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n}\n"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","TEMPLATE"],"mappings":";;;;;AACA,eAAe,kBAAkB,CAAC,0nBAA0nB;;ACD5pB;AACA;AACA;AACA;;AAiDe,MAAMA,UAAU,SAASC,SAAS,CAAsB;EACrE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAK,EAAE;MAChEC,MAAM,CACJ,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YACZ,CAAC
|
|
1
|
+
{"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.hbs","../../../../src/components/hds/table/tr.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<tr class=\\\"hds-table__tr\\\" ...attributes>\\n {{#if @isSelectable}}\\n <Hds::Table::ThSelectable\\n @isSelected={{@isSelected}}\\n @selectionScope={{@selectionScope}}\\n @selectionKey={{this.selectionKey}}\\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\\n @sortBySelectedOrder={{@sortBySelectedOrder}}\\n @didInsert={{@didInsert}}\\n @willDestroy={{@willDestroy}}\\n @onClickSortBySelected={{@onClickSortBySelected}}\\n @onSelectionChange={{@onSelectionChange}}\\n />\\n {{/if}}\\n\\n {{yield}}\\n</tr>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTableScopeValues } from './types.ts';\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableSignature } from './index.ts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.ts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: false;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableRowElement;\n}\n\n// Extended interface for selectable rows\nexport interface SelectableHdsTableTrArgs extends BaseHdsTableTrSignature {\n Args: BaseHdsTableTrSignature['Args'] & {\n isSelectable: true;\n selectionScope?: HdsTableScopeValues.Row;\n selectionKey: string; // Now required for selectable rows\n };\n}\n\n// Union type to combine both possible states\nexport type HdsTableTrSignature =\n | BaseHdsTableTrSignature\n | SelectableHdsTableTrArgs;\nexport default class HdsTableTr extends Component<HdsTableTrSignature> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n}\n"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","TEMPLATE"],"mappings":";;;;;AACA,eAAe,kBAAkB,CAAC,0nBAA0nB;;ACD5pB;AACA;AACA;AACA;;AAiDe,MAAMA,UAAU,SAASC,SAAS,CAAsB;EACrE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAK,EAAE;MAChEC,MAAM,CACJ,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YACZ,CAAC;AACD,MAAA,OAAO,IAAI,CAACC,IAAI,CAACD,YAAY;AAC/B;AACA,IAAA,OAAOK,SAAS;AAClB;AACF;AAACC,oBAAA,CAAAC,QAAA,EAXoBT,UAAU,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\n\nexport enum HdsTableDensityValues {\n Default = 'default',\n Medium = 'medium',\n Short = 'short',\n Tall = 'tall',\n}\nexport type HdsTableDensities = `${HdsTableDensityValues}`;\n\nexport enum HdsTableHorizontalAlignmentValues {\n Center = 'center',\n Left = 'left',\n Right = 'right',\n}\nexport type HdsTableHorizontalAlignment =\n `${HdsTableHorizontalAlignmentValues}`;\n\nexport enum HdsTableScopeValues {\n Col = 'col',\n Row = 'row',\n}\nexport type HdsTableScope = `${HdsTableScopeValues}`;\n\nexport enum HdsTableThSortOrderIconValues {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n SwapVertical = 'swap-vertical',\n}\nexport type HdsTableThSortOrderIcons = `${HdsTableThSortOrderIconValues}`;\n\nexport enum HdsTableThSortOrderLabelValues {\n Asc = 'ascending',\n Desc = 'descending',\n None = 'none',\n}\nexport type HdsTableThSortOrderLabels = `${HdsTableThSortOrderLabelValues}`;\n\nexport enum HdsTableThSortOrderValues {\n Asc = 'asc',\n Desc = 'desc',\n}\nexport type HdsTableThSortOrder = `${HdsTableThSortOrderValues}`;\n\nexport enum HdsTableVerticalAlignmentValues {\n Baseline = 'baseline',\n Middle = 'middle',\n Top = 'top',\n}\nexport type HdsTableVerticalAlignment = `${HdsTableVerticalAlignmentValues}`;\n\nexport type HdsTableSelectableRow = {\n checkbox: HdsFormCheckboxBaseSignature['Element'];\n selectionKey: string;\n};\n\ninterface BaseHdsTableColumn {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n label: string;\n sortingFunction?: HdsTableSortingFunction<unknown>;\n tooltip?: string;\n width?: string;\n}\n\ninterface SortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable: true;\n key: string;\n}\n\ninterface NonSortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable?: false;\n key?: string;\n}\n\nexport type HdsTableColumn = SortableHdsTableColumn | NonSortableHdsTableColumn;\n\nexport type HdsTableSortingFunction<T> = (a: T, b: T) => number;\n\nexport interface HdsTableOnSelectionChangeSignature {\n selectionKey?: string;\n selectionCheckboxElement?: HdsFormCheckboxBaseSignature['Element'];\n selectedRowsKeys: string[];\n selectableRowsStates: {\n selectionKey: string;\n isSelected?: boolean;\n }[];\n}\n\nexport type HdsTableModel = Array<Record<string, unknown>>;\n"],"names":["HdsTableDensityValues","HdsTableHorizontalAlignmentValues","HdsTableScopeValues","HdsTableThSortOrderIconValues","HdsTableThSortOrderLabelValues","HdsTableThSortOrderValues","HdsTableVerticalAlignmentValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAIYA,IAAAA,qBAAqB,0BAArBA,qBAAqB,EAAA;EAArBA,qBAAqB,CAAA,SAAA,CAAA,GAAA,SAAA
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\n\nexport enum HdsTableDensityValues {\n Default = 'default',\n Medium = 'medium',\n Short = 'short',\n Tall = 'tall',\n}\nexport type HdsTableDensities = `${HdsTableDensityValues}`;\n\nexport enum HdsTableHorizontalAlignmentValues {\n Center = 'center',\n Left = 'left',\n Right = 'right',\n}\nexport type HdsTableHorizontalAlignment =\n `${HdsTableHorizontalAlignmentValues}`;\n\nexport enum HdsTableScopeValues {\n Col = 'col',\n Row = 'row',\n}\nexport type HdsTableScope = `${HdsTableScopeValues}`;\n\nexport enum HdsTableThSortOrderIconValues {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n SwapVertical = 'swap-vertical',\n}\nexport type HdsTableThSortOrderIcons = `${HdsTableThSortOrderIconValues}`;\n\nexport enum HdsTableThSortOrderLabelValues {\n Asc = 'ascending',\n Desc = 'descending',\n None = 'none',\n}\nexport type HdsTableThSortOrderLabels = `${HdsTableThSortOrderLabelValues}`;\n\nexport enum HdsTableThSortOrderValues {\n Asc = 'asc',\n Desc = 'desc',\n}\nexport type HdsTableThSortOrder = `${HdsTableThSortOrderValues}`;\n\nexport enum HdsTableVerticalAlignmentValues {\n Baseline = 'baseline',\n Middle = 'middle',\n Top = 'top',\n}\nexport type HdsTableVerticalAlignment = `${HdsTableVerticalAlignmentValues}`;\n\nexport type HdsTableSelectableRow = {\n checkbox: HdsFormCheckboxBaseSignature['Element'];\n selectionKey: string;\n};\n\ninterface BaseHdsTableColumn {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n label: string;\n sortingFunction?: HdsTableSortingFunction<unknown>;\n tooltip?: string;\n width?: string;\n}\n\ninterface SortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable: true;\n key: string;\n}\n\ninterface NonSortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable?: false;\n key?: string;\n}\n\nexport type HdsTableColumn = SortableHdsTableColumn | NonSortableHdsTableColumn;\n\nexport type HdsTableSortingFunction<T> = (a: T, b: T) => number;\n\nexport interface HdsTableOnSelectionChangeSignature {\n selectionKey?: string;\n selectionCheckboxElement?: HdsFormCheckboxBaseSignature['Element'];\n selectedRowsKeys: string[];\n selectableRowsStates: {\n selectionKey: string;\n isSelected?: boolean;\n }[];\n}\n\nexport type HdsTableModel = Array<Record<string, unknown>>;\n"],"names":["HdsTableDensityValues","HdsTableHorizontalAlignmentValues","HdsTableScopeValues","HdsTableThSortOrderIconValues","HdsTableThSortOrderLabelValues","HdsTableThSortOrderValues","HdsTableVerticalAlignmentValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAIYA,IAAAA,qBAAqB,0BAArBA,qBAAqB,EAAA;EAArBA,qBAAqB,CAAA,SAAA,CAAA,GAAA,SAAA;EAArBA,qBAAqB,CAAA,QAAA,CAAA,GAAA,QAAA;EAArBA,qBAAqB,CAAA,OAAA,CAAA,GAAA,OAAA;EAArBA,qBAAqB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAArBA,qBAAqB;AAAA,CAAA,CAAA,EAAA;AAQrBC,IAAAA,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,MAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA;AAAA,EAAA,OAAjCA,iCAAiC;AAAA,CAAA,CAAA,EAAA;AAQjCC,IAAAA,mBAAmB,0BAAnBA,mBAAmB,EAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAAnBA,mBAAmB;AAAA,CAAA,CAAA,EAAA;AAMnBC,IAAAA,6BAA6B,0BAA7BA,6BAA6B,EAAA;EAA7BA,6BAA6B,CAAA,WAAA,CAAA,GAAA,YAAA;EAA7BA,6BAA6B,CAAA,SAAA,CAAA,GAAA,UAAA;EAA7BA,6BAA6B,CAAA,cAAA,CAAA,GAAA,eAAA;AAAA,EAAA,OAA7BA,6BAA6B;AAAA,CAAA,CAAA,EAAA;AAO7BC,IAAAA,8BAA8B,0BAA9BA,8BAA8B,EAAA;EAA9BA,8BAA8B,CAAA,KAAA,CAAA,GAAA,WAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,YAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAA9BA,8BAA8B;AAAA,CAAA,CAAA,EAAA;AAO9BC,IAAAA,yBAAyB,0BAAzBA,yBAAyB,EAAA;EAAzBA,yBAAyB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAzBA,yBAAyB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAAzBA,yBAAyB;AAAA,CAAA,CAAA,EAAA;AAMzBC,IAAAA,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,UAAA,CAAA,GAAA,UAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA;EAA/BA,+BAA+B,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAA/BA,+BAA+B;AAAA,CAAA,CAAA,EAAA;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-
|
|
1
|
+
import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-81503waH.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
@@ -8,7 +8,7 @@ import { HdsTabsSizeValues } from './types.js';
|
|
|
8
8
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
9
9
|
import { setComponentTemplate } from '@ember/component';
|
|
10
10
|
|
|
11
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable no-invalid-role }}\n<div\n class={{this.classNames}}\n {{did-insert this.didInsert}}\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{did-update this.didUpdateSelectedTabId this.
|
|
11
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable no-invalid-role }}\n<div\n class={{this.classNames}}\n {{did-insert this.didInsert}}\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{did-update this.didUpdateSelectedTabId this._selectedTabId}}\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n>\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n \"hds/tabs/tab\"\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this._tabIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n \"hds/tabs/panel\"\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n</div>\n{{! template-lint-enable no-invalid-role }}");
|
|
12
12
|
|
|
13
13
|
var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;
|
|
14
14
|
const DEFAULT_SIZE = 'medium';
|
|
@@ -33,25 +33,25 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
33
33
|
super(owner, args);
|
|
34
34
|
|
|
35
35
|
// this is to determine if the "selected" tab logic is controlled in the consumers' code or is maintained as an internal state
|
|
36
|
-
_initializerDefineProperty(this, "
|
|
37
|
-
_initializerDefineProperty(this, "
|
|
38
|
-
_initializerDefineProperty(this, "
|
|
39
|
-
_initializerDefineProperty(this, "
|
|
36
|
+
_initializerDefineProperty(this, "_tabNodes", _descriptor, this);
|
|
37
|
+
_initializerDefineProperty(this, "_tabIds", _descriptor2, this);
|
|
38
|
+
_initializerDefineProperty(this, "_panelNodes", _descriptor3, this);
|
|
39
|
+
_initializerDefineProperty(this, "_panelIds", _descriptor4, this);
|
|
40
40
|
_initializerDefineProperty(this, "_selectedTabIndex", _descriptor5, this);
|
|
41
|
-
_initializerDefineProperty(this, "
|
|
42
|
-
_initializerDefineProperty(this, "
|
|
43
|
-
this.
|
|
41
|
+
_initializerDefineProperty(this, "_selectedTabId", _descriptor6, this);
|
|
42
|
+
_initializerDefineProperty(this, "_isControlled", _descriptor7, this);
|
|
43
|
+
this._isControlled = this.args.selectedTabIndex !== undefined;
|
|
44
44
|
this._selectedTabIndex = this.args.selectedTabIndex ?? 0;
|
|
45
45
|
}
|
|
46
46
|
get selectedTabIndex() {
|
|
47
|
-
if (this.
|
|
47
|
+
if (this._isControlled) {
|
|
48
48
|
return this.args.selectedTabIndex;
|
|
49
49
|
} else {
|
|
50
50
|
return this._selectedTabIndex;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
set selectedTabIndex(value) {
|
|
54
|
-
if (this.
|
|
54
|
+
if (this._isControlled) ; else {
|
|
55
55
|
this._selectedTabIndex = value;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -69,9 +69,9 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
69
69
|
return classes.join(' ');
|
|
70
70
|
}
|
|
71
71
|
didInsert() {
|
|
72
|
-
assert('The number of Tabs must be equal to the number of Panels', this.
|
|
73
|
-
if (this.
|
|
74
|
-
this.selectedTabIndex = this.
|
|
72
|
+
assert('The number of Tabs must be equal to the number of Panels', this._tabNodes.length === this._panelNodes.length);
|
|
73
|
+
if (this._selectedTabId) {
|
|
74
|
+
this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
// eslint-disable-next-line ember/no-runloop
|
|
@@ -91,8 +91,8 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
91
91
|
// but the parent `Tabs` component has already been rendered/inserted but doesn't re-render
|
|
92
92
|
// so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation
|
|
93
93
|
// using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable
|
|
94
|
-
if (this.
|
|
95
|
-
this.selectedTabIndex = this.
|
|
94
|
+
if (this._selectedTabId) {
|
|
95
|
+
this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
didUpdateParentVisibility() {
|
|
@@ -102,10 +102,10 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
didInsertTab(element, isSelected) {
|
|
105
|
-
this.
|
|
106
|
-
this.
|
|
105
|
+
this._tabNodes = [...this._tabNodes, element];
|
|
106
|
+
this._tabIds = [...this._tabIds, element.id];
|
|
107
107
|
if (isSelected) {
|
|
108
|
-
this.
|
|
108
|
+
this._selectedTabId = element.id;
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
didUpdateTab(tabIndex, isSelected) {
|
|
@@ -115,16 +115,16 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
115
115
|
this.setTabIndicator();
|
|
116
116
|
}
|
|
117
117
|
willDestroyTab(element) {
|
|
118
|
-
this.
|
|
119
|
-
this.
|
|
118
|
+
this._tabNodes = this._tabNodes.filter(node => node.id !== element.id);
|
|
119
|
+
this._tabIds = this._tabIds.filter(tabId => tabId !== element.id);
|
|
120
120
|
}
|
|
121
121
|
didInsertPanel(element, panelId) {
|
|
122
|
-
this.
|
|
123
|
-
this.
|
|
122
|
+
this._panelNodes = [...this._panelNodes, element];
|
|
123
|
+
this._panelIds = [...this._panelIds, panelId];
|
|
124
124
|
}
|
|
125
125
|
willDestroyPanel(element) {
|
|
126
|
-
this.
|
|
127
|
-
this.
|
|
126
|
+
this._panelNodes = this._panelNodes.filter(node => node.id !== element.id);
|
|
127
|
+
this._panelIds = this._panelIds.filter(panelId => panelId !== element.id);
|
|
128
128
|
}
|
|
129
129
|
onClick(event, tabIndex) {
|
|
130
130
|
this.selectedTabIndex = tabIndex;
|
|
@@ -141,16 +141,16 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
141
141
|
const enterKey = 'Enter';
|
|
142
142
|
const spaceKey = ' ';
|
|
143
143
|
if (event.key === rightArrow) {
|
|
144
|
-
const nextTabIndex = (tabIndex + 1) % this.
|
|
144
|
+
const nextTabIndex = (tabIndex + 1) % this._tabIds.length;
|
|
145
145
|
this.focusTab(nextTabIndex, event);
|
|
146
146
|
} else if (event.key === leftArrow) {
|
|
147
|
-
const prevTabIndex = (tabIndex + this.
|
|
147
|
+
const prevTabIndex = (tabIndex + this._tabIds.length - 1) % this._tabIds.length;
|
|
148
148
|
this.focusTab(prevTabIndex, event);
|
|
149
149
|
} else if (event.key === enterKey || event.key === spaceKey) {
|
|
150
150
|
this.selectedTabIndex = tabIndex;
|
|
151
151
|
}
|
|
152
152
|
// scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)
|
|
153
|
-
const parentNode = this.
|
|
153
|
+
const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;
|
|
154
154
|
if (parentNode instanceof HTMLElement) {
|
|
155
155
|
parentNode.scrollIntoView({
|
|
156
156
|
behavior: 'smooth',
|
|
@@ -163,12 +163,12 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
163
163
|
// Focus tab for keyboard & mouse navigation:
|
|
164
164
|
focusTab(tabIndex, event) {
|
|
165
165
|
event.preventDefault();
|
|
166
|
-
this.
|
|
166
|
+
this._tabNodes[tabIndex]?.focus();
|
|
167
167
|
}
|
|
168
168
|
setTabIndicator() {
|
|
169
169
|
// eslint-disable-next-line ember/no-runloop
|
|
170
170
|
next(() => {
|
|
171
|
-
const tabElem = this.
|
|
171
|
+
const tabElem = this._tabNodes[this.selectedTabIndex];
|
|
172
172
|
if (tabElem != null) {
|
|
173
173
|
const tabElemParentNode = tabElem.parentNode;
|
|
174
174
|
const tabsElemClosestList = tabElem.closest('.hds-tabs__tablist');
|
|
@@ -185,10 +185,10 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
185
185
|
} else {
|
|
186
186
|
let message = '';
|
|
187
187
|
message += '"Hds::Tabs" has tried to set the indicator for an element that doesn\'t exist';
|
|
188
|
-
if (this.
|
|
189
|
-
message += ' (the array `this.
|
|
188
|
+
if (this._tabNodes.length === 0) {
|
|
189
|
+
message += ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';
|
|
190
190
|
} else {
|
|
191
|
-
message += ` (the value ${this.selectedTabIndex} of \`this.selectedTabIndex\` is out of bound for the array \`this.
|
|
191
|
+
message += ` (the value ${this.selectedTabIndex} of \`this.selectedTabIndex\` is out of bound for the array \`this._tabNodes\`, whose index range is [0 - ${this._tabNodes.length - 1}])`;
|
|
192
192
|
}
|
|
193
193
|
// https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn
|
|
194
194
|
warn(message, true, {
|
|
@@ -197,28 +197,28 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
197
197
|
}
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
|
-
},
|
|
200
|
+
}, _descriptor = _applyDecoratedDescriptor(_class.prototype, "_tabNodes", [tracked], {
|
|
201
201
|
configurable: true,
|
|
202
202
|
enumerable: true,
|
|
203
203
|
writable: true,
|
|
204
204
|
initializer: function () {
|
|
205
205
|
return [];
|
|
206
206
|
}
|
|
207
|
-
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "
|
|
207
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "_tabIds", [tracked], {
|
|
208
208
|
configurable: true,
|
|
209
209
|
enumerable: true,
|
|
210
210
|
writable: true,
|
|
211
211
|
initializer: function () {
|
|
212
212
|
return [];
|
|
213
213
|
}
|
|
214
|
-
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "
|
|
214
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "_panelNodes", [tracked], {
|
|
215
215
|
configurable: true,
|
|
216
216
|
enumerable: true,
|
|
217
217
|
writable: true,
|
|
218
218
|
initializer: function () {
|
|
219
219
|
return [];
|
|
220
220
|
}
|
|
221
|
-
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "
|
|
221
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "_panelIds", [tracked], {
|
|
222
222
|
configurable: true,
|
|
223
223
|
enumerable: true,
|
|
224
224
|
writable: true,
|
|
@@ -230,17 +230,17 @@ let HdsTabs = (_class = class HdsTabs extends Component {
|
|
|
230
230
|
enumerable: true,
|
|
231
231
|
writable: true,
|
|
232
232
|
initializer: null
|
|
233
|
-
}), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "
|
|
233
|
+
}), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "_selectedTabId", [tracked], {
|
|
234
234
|
configurable: true,
|
|
235
235
|
enumerable: true,
|
|
236
236
|
writable: true,
|
|
237
237
|
initializer: null
|
|
238
|
-
}), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "
|
|
238
|
+
}), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "_isControlled", [tracked], {
|
|
239
239
|
configurable: true,
|
|
240
240
|
enumerable: true,
|
|
241
241
|
writable: true,
|
|
242
242
|
initializer: null
|
|
243
|
-
}), _applyDecoratedDescriptor(_class.prototype, "didInsert", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabIndex", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabIndex"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabId", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabId"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateParentVisibility", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateParentVisibility"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype)
|
|
243
|
+
}), _applyDecoratedDescriptor(_class.prototype, "didInsert", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabIndex", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabIndex"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabId", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabId"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateParentVisibility", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateParentVisibility"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype), _class);
|
|
244
244
|
setComponentTemplate(TEMPLATE, HdsTabs);
|
|
245
245
|
|
|
246
246
|
export { DEFAULT_SIZE, SIZES, HdsTabs as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.hbs","../../../../src/components/hds/tabs/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable no-invalid-role }}\\n<div\\n class={{this.classNames}}\\n {{did-insert this.didInsert}}\\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\\n {{did-update this.didUpdateSelectedTabId this.selectedTabId}}\\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\\n ...attributes\\n>\\n <div class=\\\"hds-tabs__tablist-wrapper\\\">\\n <ul class=\\\"hds-tabs__tablist\\\" role=\\\"tablist\\\">\\n {{yield\\n (hash\\n Tab=(component\\n \\\"hds/tabs/tab\\\"\\n didInsertNode=this.didInsertTab\\n didUpdateNode=this.didUpdateTab\\n willDestroyNode=this.willDestroyTab\\n tabIds=this.tabIds\\n selectedTabIndex=this.selectedTabIndex\\n onClick=this.onClick\\n onKeyUp=this.onKeyUp\\n )\\n )\\n }}\\n <li class=\\\"hds-tabs__tab-indicator\\\" role=\\\"presentation\\\"></li>\\n </ul>\\n </div>\\n\\n {{yield\\n (hash\\n Panel=(component\\n \\\"hds/tabs/panel\\\"\\n didInsertNode=this.didInsertPanel\\n willDestroyNode=this.willDestroyPanel\\n tabIds=this.tabIds\\n panelIds=this.panelIds\\n selectedTabIndex=this.selectedTabIndex\\n )\\n )\\n }}\\n</div>\\n{{! template-lint-enable no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { HdsTabsSizeValues } from './types.ts';\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsTabsTabSignature } from './tab';\nimport type { HdsTabsPanelSignature } from './panel';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium' as const;\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\nexport interface HdsTabsSignature {\n Args: {\n size?: HdsTabsSizes;\n onClickTab?: (event: MouseEvent, tabIndex: number) => void;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n isParentVisible?: boolean;\n };\n Blocks: {\n default: [\n {\n Tab?: ComponentLike<HdsTabsTabSignature>;\n Panel?: ComponentLike<HdsTabsPanelSignature>;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked tabNodes: HTMLButtonElement[] = [];\n @tracked tabIds: HdsTabsTabIds = [];\n @tracked panelNodes: HTMLElement[] = [];\n @tracked panelIds: HdsTabsPanelIds = [];\n @tracked _selectedTabIndex;\n @tracked selectedTabId?: string;\n @tracked isControlled: boolean;\n\n /**\n * Sets the size of Tabs\n * Accepted values: medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size(): HdsTabsSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor(owner: unknown, args: HdsTabsSignature['Args']) {\n super(owner, args);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this.isControlled = this.args.selectedTabIndex !== undefined;\n this._selectedTabIndex = this.args.selectedTabIndex ?? 0;\n }\n\n get selectedTabIndex(): number {\n if (this.isControlled) {\n return this.args.selectedTabIndex!;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n @action\n didInsert(): void {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this.tabNodes.length === this.panelNodes.length\n );\n\n if (this.selectedTabId) {\n this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);\n }\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabIndex(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabId(): void {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this.selectedTabId) {\n this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);\n }\n }\n\n @action\n didUpdateParentVisibility(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\n didInsertTab(element: HTMLButtonElement, isSelected?: boolean): void {\n this.tabNodes = [...this.tabNodes, element];\n this.tabIds = [...this.tabIds, element.id];\n if (isSelected) {\n this.selectedTabId = element.id;\n }\n }\n\n @action\n didUpdateTab(tabIndex: number, isSelected?: boolean): void {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n }\n\n @action\n willDestroyTab(element: HTMLButtonElement): void {\n this.tabNodes = this.tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this.tabIds = this.tabIds.filter((tabId): boolean => tabId !== element.id);\n }\n\n @action\n didInsertPanel(element: HTMLElement, panelId: string): void {\n this.panelNodes = [...this.panelNodes, element];\n this.panelIds = [...this.panelIds, panelId];\n }\n\n @action\n willDestroyPanel(element: HTMLElement): void {\n this.panelNodes = this.panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this.panelIds = this.panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n }\n\n @action\n onClick(event: MouseEvent, tabIndex: number): void {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n }\n\n @action\n onKeyUp(tabIndex: number, event: KeyboardEvent): void {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n\n if (event.key === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this.tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow) {\n const prevTabIndex =\n (tabIndex + this.tabIds.length - 1) % this.tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this.tabNodes[this.selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n }\n\n // Focus tab for keyboard & mouse navigation:\n focusTab(tabIndex: number, event: KeyboardEvent): void {\n event.preventDefault();\n this.tabNodes[tabIndex]?.focus();\n }\n\n setTabIndicator(): void {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n const tabElem = this.tabNodes[this.selectedTabIndex];\n\n if (tabElem != null) {\n const tabElemParentNode = tabElem.parentNode as HTMLElement;\n const tabsElemClosestList = tabElem.closest(\n '.hds-tabs__tablist'\n ) as HTMLElement;\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElemParentNode.offsetParent) {\n const tabLeftPos = tabElemParentNode.offsetLeft;\n const tabWidth = tabElemParentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsElemClosestList.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsElemClosestList.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message = '';\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this.tabNodes.length === 0) {\n message +=\n ' (the array `this.tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this.tabNodes\\`, whose index range is [0 - ${\n this.tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n }\n}\n"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","_class","Component","size","args","assert","join","includes","constructor","owner","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","tabNodes","length","panelNodes","selectedTabId","tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","key","nextTabIndex","focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","preventDefault","focus","next","tabElem","tabElemParentNode","tabsElemClosestList","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;AACA,eAAe,kBAAkB,CAAC,w1CAAw1C;;;ACen3C,MAAMA,YAA0B,GAAG,SAAiB;AACpD,MAAMC,KAAqB,GAAGC,MAAM,CAACC,MAAM,CAACC,iBAAiB,EAAC;AAmBhDC,IAAAA,OAAO,IAAAC,MAAA,GAAb,MAAMD,OAAO,SAASE,SAAS,CAAmB;AAS/D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAiB;IACvB,MAAM;AAAEA,MAAAA,IAAI,GAAGR,YAAAA;KAAc,GAAG,IAAI,CAACS,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACJ,CAAuDT,oDAAAA,EAAAA,KAAK,CAACU,IAAI,CAC/D,IACF,CAAC,CAAA,YAAA,EAAeH,IAAI,CAAA,CAAE,EACtBP,KAAK,CAACW,QAAQ,CAACJ,IAAI,CACrB,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;AAEAK,EAAAA,WAAWA,CAACC,KAAc,EAAEL,IAA8B,EAAE;AAC1D,IAAA,KAAK,CAACK,KAAK,EAAEL,IAAI,CAAC,CAAA;;AAElB;AAAAM,IAAAA,0BAAA,mBAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAAD,IAAAA,0BAAA,iBAAAE,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAF,IAAAA,0BAAA,qBAAAG,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAH,IAAAA,0BAAA,mBAAAI,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAJ,IAAAA,0BAAA,4BAAAK,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAL,IAAAA,0BAAA,wBAAAM,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAN,IAAAA,0BAAA,uBAAAO,YAAA,EAAA,IAAA,CAAA,CAAA;IACA,IAAI,CAACC,YAAY,GAAG,IAAI,CAACd,IAAI,CAACe,gBAAgB,KAAKC,SAAS,CAAA;IAC5D,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACjB,IAAI,CAACe,gBAAgB,IAAI,CAAC,CAAA;AAC1D,GAAA;EAEA,IAAIA,gBAAgBA,GAAW;IAC7B,IAAI,IAAI,CAACD,YAAY,EAAE;AACrB,MAAA,OAAO,IAAI,CAACd,IAAI,CAACe,gBAAgB,CAAA;AACnC,KAAC,MAAM;MACL,OAAO,IAAI,CAACE,iBAAiB,CAAA;AAC/B,KAAA;AACF,GAAA;EAEA,IAAIF,gBAAgBA,CAACG,KAAK,EAAE;IAC1B,IAAI,IAAI,CAACJ,YAAY,EAAE,CAEtB,MAAM;MACL,IAAI,CAACG,iBAAiB,GAAGC,KAAK,CAAA;AAChC,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAA;;AAE5B;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,eAAA,EAAkB,IAAI,CAACtB,IAAI,EAAE,CAAC,CAAA;AAE3C,IAAA,OAAOqB,OAAO,CAAClB,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AAGAoB,EAAAA,SAASA,GAAS;AAChBrB,IAAAA,MAAM,CACJ,0DAA0D,EAC1D,IAAI,CAACsB,QAAQ,CAACC,MAAM,KAAK,IAAI,CAACC,UAAU,CAACD,MAC3C,CAAC,CAAA;IAED,IAAI,IAAI,CAACE,aAAa,EAAE;AACtB,MAAA,IAAI,CAACX,gBAAgB,GAAG,IAAI,CAACY,MAAM,CAACC,OAAO,CAAC,IAAI,CAACF,aAAa,CAAC,CAAA;AACjE,KAAA;;AAEA;IACAG,QAAQ,CAAC,aAAa,EAAE,MAAY;MAClC,IAAI,CAACC,eAAe,EAAE,CAAA;AACxB,KAAC,CAAC,CAAA;AACJ,GAAA;AAGAC,EAAAA,yBAAyBA,GAAS;AAChC;IACAF,QAAQ,CAAC,aAAa,EAAE,MAAY;MAClC,IAAI,CAACC,eAAe,EAAE,CAAA;AACxB,KAAC,CAAC,CAAA;AACJ,GAAA;AAGAE,EAAAA,sBAAsBA,GAAS;AAC7B;AACA;AACA;AACA;AACA;IACA,IAAI,IAAI,CAACN,aAAa,EAAE;AACtB,MAAA,IAAI,CAACX,gBAAgB,GAAG,IAAI,CAACY,MAAM,CAACC,OAAO,CAAC,IAAI,CAACF,aAAa,CAAC,CAAA;AACjE,KAAA;AACF,GAAA;AAGAO,EAAAA,yBAAyBA,GAAS;AAChC;IACAJ,QAAQ,CAAC,aAAa,EAAE,MAAY;MAClC,IAAI,CAACC,eAAe,EAAE,CAAA;AACxB,KAAC,CAAC,CAAA;AACJ,GAAA;AAGAI,EAAAA,YAAYA,CAACC,OAA0B,EAAEC,UAAoB,EAAQ;IACnE,IAAI,CAACb,QAAQ,GAAG,CAAC,GAAG,IAAI,CAACA,QAAQ,EAAEY,OAAO,CAAC,CAAA;AAC3C,IAAA,IAAI,CAACR,MAAM,GAAG,CAAC,GAAG,IAAI,CAACA,MAAM,EAAEQ,OAAO,CAACE,EAAE,CAAC,CAAA;AAC1C,IAAA,IAAID,UAAU,EAAE;AACd,MAAA,IAAI,CAACV,aAAa,GAAGS,OAAO,CAACE,EAAE,CAAA;AACjC,KAAA;AACF,GAAA;AAGAC,EAAAA,YAAYA,CAACC,QAAgB,EAAEH,UAAoB,EAAQ;AACzD,IAAA,IAAIA,UAAU,EAAE;MACd,IAAI,CAACrB,gBAAgB,GAAGwB,QAAQ,CAAA;AAClC,KAAA;IACA,IAAI,CAACT,eAAe,EAAE,CAAA;AACxB,GAAA;EAGAU,cAAcA,CAACL,OAA0B,EAAQ;AAC/C,IAAA,IAAI,CAACZ,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACkB,MAAM,CACjCC,IAAI,IAAcA,IAAI,CAACL,EAAE,KAAKF,OAAO,CAACE,EACzC,CAAC,CAAA;AACD,IAAA,IAAI,CAACV,MAAM,GAAG,IAAI,CAACA,MAAM,CAACc,MAAM,CAAEE,KAAK,IAAcA,KAAK,KAAKR,OAAO,CAACE,EAAE,CAAC,CAAA;AAC5E,GAAA;AAGAO,EAAAA,cAAcA,CAACT,OAAoB,EAAEU,OAAe,EAAQ;IAC1D,IAAI,CAACpB,UAAU,GAAG,CAAC,GAAG,IAAI,CAACA,UAAU,EAAEU,OAAO,CAAC,CAAA;IAC/C,IAAI,CAACW,QAAQ,GAAG,CAAC,GAAG,IAAI,CAACA,QAAQ,EAAED,OAAO,CAAC,CAAA;AAC7C,GAAA;EAGAE,gBAAgBA,CAACZ,OAAoB,EAAQ;AAC3C,IAAA,IAAI,CAACV,UAAU,GAAG,IAAI,CAACA,UAAU,CAACgB,MAAM,CACrCC,IAAI,IAAcA,IAAI,CAACL,EAAE,KAAKF,OAAO,CAACE,EACzC,CAAC,CAAA;AACD,IAAA,IAAI,CAACS,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACL,MAAM,CACjCI,OAAO,IAAcA,OAAO,KAAKV,OAAO,CAACE,EAC5C,CAAC,CAAA;AACH,GAAA;AAGAW,EAAAA,OAAOA,CAACC,KAAiB,EAAEV,QAAgB,EAAQ;IACjD,IAAI,CAACxB,gBAAgB,GAAGwB,QAAQ,CAAA;IAChC,IAAI,CAACT,eAAe,EAAE,CAAA;;AAEtB;IACA,IAAI,OAAO,IAAI,CAAC9B,IAAI,CAACkD,UAAU,KAAK,UAAU,EAAE;MAC9C,IAAI,CAAClD,IAAI,CAACkD,UAAU,CAACD,KAAK,EAAEV,QAAQ,CAAC,CAAA;AACvC,KAAA;AACF,GAAA;AAGAY,EAAAA,OAAOA,CAACZ,QAAgB,EAAEU,KAAoB,EAAQ;IACpD,MAAMG,SAAS,GAAG,WAAW,CAAA;IAC7B,MAAMC,UAAU,GAAG,YAAY,CAAA;IAC/B,MAAMC,QAAQ,GAAG,OAAO,CAAA;IACxB,MAAMC,QAAQ,GAAG,GAAG,CAAA;AAEpB,IAAA,IAAIN,KAAK,CAACO,GAAG,KAAKH,UAAU,EAAE;MAC5B,MAAMI,YAAY,GAAG,CAAClB,QAAQ,GAAG,CAAC,IAAI,IAAI,CAACZ,MAAM,CAACH,MAAM,CAAA;AACxD,MAAA,IAAI,CAACkC,QAAQ,CAACD,YAAY,EAAER,KAAK,CAAC,CAAA;AACpC,KAAC,MAAM,IAAIA,KAAK,CAACO,GAAG,KAAKJ,SAAS,EAAE;AAClC,MAAA,MAAMO,YAAY,GAChB,CAACpB,QAAQ,GAAG,IAAI,CAACZ,MAAM,CAACH,MAAM,GAAG,CAAC,IAAI,IAAI,CAACG,MAAM,CAACH,MAAM,CAAA;AAC1D,MAAA,IAAI,CAACkC,QAAQ,CAACC,YAAY,EAAEV,KAAK,CAAC,CAAA;AACpC,KAAC,MAAM,IAAIA,KAAK,CAACO,GAAG,KAAKF,QAAQ,IAAIL,KAAK,CAACO,GAAG,KAAKD,QAAQ,EAAE;MAC3D,IAAI,CAACxC,gBAAgB,GAAGwB,QAAQ,CAAA;AAClC,KAAA;AACA;IACA,MAAMqB,UAAU,GAAG,IAAI,CAACrC,QAAQ,CAAC,IAAI,CAACR,gBAAgB,CAAC,EAAE6C,UAAU,CAAA;IACnE,IAAIA,UAAU,YAAYC,WAAW,EAAE;MACrCD,UAAU,CAACE,cAAc,CAAC;AACxBC,QAAAA,QAAQ,EAAE,QAAQ;AAClBC,QAAAA,KAAK,EAAE,SAAS;AAChBC,QAAAA,MAAM,EAAE,SAAA;AACV,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAA;;AAEA;AACAP,EAAAA,QAAQA,CAACnB,QAAgB,EAAEU,KAAoB,EAAQ;IACrDA,KAAK,CAACiB,cAAc,EAAE,CAAA;IACtB,IAAI,CAAC3C,QAAQ,CAACgB,QAAQ,CAAC,EAAE4B,KAAK,EAAE,CAAA;AAClC,GAAA;AAEArC,EAAAA,eAAeA,GAAS;AACtB;AACAsC,IAAAA,IAAI,CAAC,MAAY;MACf,MAAMC,OAAO,GAAG,IAAI,CAAC9C,QAAQ,CAAC,IAAI,CAACR,gBAAgB,CAAC,CAAA;MAEpD,IAAIsD,OAAO,IAAI,IAAI,EAAE;AACnB,QAAA,MAAMC,iBAAiB,GAAGD,OAAO,CAACT,UAAyB,CAAA;AAC3D,QAAA,MAAMW,mBAAmB,GAAGF,OAAO,CAACG,OAAO,CACzC,oBACF,CAAgB,CAAA;;AAEhB;QACA,IAAIF,iBAAiB,CAACG,YAAY,EAAE;AAClC,UAAA,MAAMC,UAAU,GAAGJ,iBAAiB,CAACK,UAAU,CAAA;AAC/C,UAAA,MAAMC,QAAQ,GAAGN,iBAAiB,CAACO,WAAW,CAAA;;AAE9C;UACAN,mBAAmB,CAACO,KAAK,CAACC,WAAW,CACnC,sBAAsB,EACtBL,UAAU,GAAG,IACf,CAAC,CAAA;UACDH,mBAAmB,CAACO,KAAK,CAACC,WAAW,CACnC,mBAAmB,EACnBH,QAAQ,GAAG,IACb,CAAC,CAAA;AACH,SAAA;AACF,OAAC,MAAM;QACL,IAAII,OAAO,GAAG,EAAE,CAAA;AAChBA,QAAAA,OAAO,IACL,+EAA+E,CAAA;AACjF,QAAA,IAAI,IAAI,CAACzD,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;AAC9BwD,UAAAA,OAAO,IACL,sFAAsF,CAAA;AAC1F,SAAC,MAAM;AACLA,UAAAA,OAAO,IAAI,CAAA,YAAA,EACT,IAAI,CAACjE,gBAAgB,CAAA,yGAAA,EAErB,IAAI,CAACQ,QAAQ,CAACC,MAAM,GAAG,CAAC,CACtB,EAAA,CAAA,CAAA;AACN,SAAA;AACA;AACAyD,QAAAA,IAAI,CAACD,OAAO,EAAE,IAAI,EAAE;AAClB3C,UAAAA,EAAE,EAAE,sDAAA;AACN,SAAC,CAAC,CAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAC,GAAA9B,WAAA,GAAA2E,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,UAAA,EAAA,CArPEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAiC,EAAE,CAAA;AAAA,GAAA;AAAA,CAAAhF,CAAAA,EAAAA,YAAA,GAAA0E,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,aAC1CC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAyB,EAAE,CAAA;AAAA,GAAA;AAAA,CAAA/E,CAAAA,EAAAA,YAAA,GAAAyE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,iBAClCC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAA6B,EAAE,CAAA;AAAA,GAAA;AAAA,CAAA9E,CAAAA,EAAAA,YAAA,GAAAwE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,eACtCC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAA6B,EAAE,CAAA;AAAA,GAAA;AAAA,CAAA7E,CAAAA,EAAAA,YAAA,GAAAuE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,wBACtCC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAA5E,CAAAA,EAAAA,YAAA,GAAAsE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,oBACPC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAA3E,CAAAA,EAAAA,YAAA,GAAAqE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,mBACPC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAAN,CAAAA,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,gBA6DPM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,WAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,GAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,2BAAA,EAAA,CAiBNM,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,2BAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAQNM,wBAAAA,EAAAA,CAAAA,MAAM,GAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,wBAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,2BAAA,EAAA,CAYNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,gCAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAQNM,cAAAA,EAAAA,CAAAA,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,cAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,cAAA,EAAA,CASNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,cAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAQNM,gBAAAA,EAAAA,CAAAA,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,gBAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,qBAQNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,gBAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,GAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,kBAAA,EAAA,CAMNM,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,kBAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAUNM,SAAAA,EAAAA,CAAAA,MAAM,GAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,SAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,SAAA,EAAA,CAWNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,cAAAtF,MAAA,CAAAsF,SAAA,CAAA,GAAAtF,MAAA,EAAA;AArKmB8F,oBAAA,CAAAC,QAAA,EAAPhG,OAAO,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.hbs","../../../../src/components/hds/tabs/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable no-invalid-role }}\\n<div\\n class={{this.classNames}}\\n {{did-insert this.didInsert}}\\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\\n {{did-update this.didUpdateSelectedTabId this._selectedTabId}}\\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\\n ...attributes\\n>\\n <div class=\\\"hds-tabs__tablist-wrapper\\\">\\n <ul class=\\\"hds-tabs__tablist\\\" role=\\\"tablist\\\">\\n {{yield\\n (hash\\n Tab=(component\\n \\\"hds/tabs/tab\\\"\\n didInsertNode=this.didInsertTab\\n didUpdateNode=this.didUpdateTab\\n willDestroyNode=this.willDestroyTab\\n tabIds=this._tabIds\\n selectedTabIndex=this.selectedTabIndex\\n onClick=this.onClick\\n onKeyUp=this.onKeyUp\\n )\\n )\\n }}\\n <li class=\\\"hds-tabs__tab-indicator\\\" role=\\\"presentation\\\"></li>\\n </ul>\\n </div>\\n\\n {{yield\\n (hash\\n Panel=(component\\n \\\"hds/tabs/panel\\\"\\n didInsertNode=this.didInsertPanel\\n willDestroyNode=this.willDestroyPanel\\n tabIds=this._tabIds\\n panelIds=this._panelIds\\n selectedTabIndex=this.selectedTabIndex\\n )\\n )\\n }}\\n</div>\\n{{! template-lint-enable no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { HdsTabsSizeValues } from './types.ts';\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsTabsTabSignature } from './tab';\nimport type { HdsTabsPanelSignature } from './panel';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium' as const;\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\nexport interface HdsTabsSignature {\n Args: {\n size?: HdsTabsSizes;\n onClickTab?: (event: MouseEvent, tabIndex: number) => void;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n isParentVisible?: boolean;\n };\n Blocks: {\n default: [\n {\n Tab?: ComponentLike<HdsTabsTabSignature>;\n Panel?: ComponentLike<HdsTabsPanelSignature>;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked private _tabNodes: HTMLButtonElement[] = [];\n @tracked private _tabIds: HdsTabsTabIds = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: HdsTabsPanelIds = [];\n @tracked private _selectedTabIndex;\n @tracked private _selectedTabId?: string;\n @tracked private _isControlled: boolean;\n\n /**\n * Sets the size of Tabs\n * Accepted values: medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size(): HdsTabsSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor(owner: unknown, args: HdsTabsSignature['Args']) {\n super(owner, args);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this._isControlled = this.args.selectedTabIndex !== undefined;\n this._selectedTabIndex = this.args.selectedTabIndex ?? 0;\n }\n\n get selectedTabIndex(): number {\n if (this._isControlled) {\n return this.args.selectedTabIndex!;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n @action\n didInsert(): void {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this._tabNodes.length === this._panelNodes.length\n );\n\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabIndex(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabId(): void {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n }\n\n @action\n didUpdateParentVisibility(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\n didInsertTab(element: HTMLButtonElement, isSelected?: boolean): void {\n this._tabNodes = [...this._tabNodes, element];\n this._tabIds = [...this._tabIds, element.id];\n if (isSelected) {\n this._selectedTabId = element.id;\n }\n }\n\n @action\n didUpdateTab(tabIndex: number, isSelected?: boolean): void {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n }\n\n @action\n willDestroyTab(element: HTMLButtonElement): void {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n }\n\n @action\n didInsertPanel(element: HTMLElement, panelId: string): void {\n this._panelNodes = [...this._panelNodes, element];\n this._panelIds = [...this._panelIds, panelId];\n }\n\n @action\n willDestroyPanel(element: HTMLElement): void {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n }\n\n @action\n onClick(event: MouseEvent, tabIndex: number): void {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n }\n\n @action\n onKeyUp(tabIndex: number, event: KeyboardEvent): void {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n\n if (event.key === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n }\n\n // Focus tab for keyboard & mouse navigation:\n focusTab(tabIndex: number, event: KeyboardEvent): void {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n }\n\n setTabIndicator(): void {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n const tabElem = this._tabNodes[this.selectedTabIndex];\n\n if (tabElem != null) {\n const tabElemParentNode = tabElem.parentNode as HTMLElement;\n const tabsElemClosestList = tabElem.closest(\n '.hds-tabs__tablist'\n ) as HTMLElement;\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElemParentNode.offsetParent) {\n const tabLeftPos = tabElemParentNode.offsetLeft;\n const tabWidth = tabElemParentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsElemClosestList.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsElemClosestList.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message = '';\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this._tabNodes.length === 0) {\n message +=\n ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this._tabNodes\\`, whose index range is [0 - ${\n this._tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n }\n}\n"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","_class","Component","size","args","assert","join","includes","constructor","owner","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","_tabNodes","length","_panelNodes","_selectedTabId","_tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","_panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","key","nextTabIndex","focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","preventDefault","focus","next","tabElem","tabElemParentNode","tabsElemClosestList","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;AACA,eAAe,kBAAkB,CAAC,41CAA41C;;;ACev3C,MAAMA,YAA0B,GAAG;AACnC,MAAMC,KAAqB,GAAGC,MAAM,CAACC,MAAM,CAACC,iBAAiB;AAmB/CC,IAAAA,OAAO,IAAAC,MAAA,GAAb,MAAMD,OAAO,SAASE,SAAS,CAAmB;AAS/D;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAiB;IACvB,MAAM;AAAEA,MAAAA,IAAI,GAAGR;KAAc,GAAG,IAAI,CAACS,IAAI;AAEzCC,IAAAA,MAAM,CACJ,CAAuDT,oDAAAA,EAAAA,KAAK,CAACU,IAAI,CAC/D,IACF,CAAC,CAAA,YAAA,EAAeH,IAAI,CAAA,CAAE,EACtBP,KAAK,CAACW,QAAQ,CAACJ,IAAI,CACrB,CAAC;AAED,IAAA,OAAOA,IAAI;AACb;AAEAK,EAAAA,WAAWA,CAACC,KAAc,EAAEL,IAA8B,EAAE;AAC1D,IAAA,KAAK,CAACK,KAAK,EAAEL,IAAI,CAAC;;AAElB;AAAAM,IAAAA,0BAAA,oBAAAC,WAAA,EAAA,IAAA,CAAA;AAAAD,IAAAA,0BAAA,kBAAAE,YAAA,EAAA,IAAA,CAAA;AAAAF,IAAAA,0BAAA,sBAAAG,YAAA,EAAA,IAAA,CAAA;AAAAH,IAAAA,0BAAA,oBAAAI,YAAA,EAAA,IAAA,CAAA;AAAAJ,IAAAA,0BAAA,4BAAAK,YAAA,EAAA,IAAA,CAAA;AAAAL,IAAAA,0BAAA,yBAAAM,YAAA,EAAA,IAAA,CAAA;AAAAN,IAAAA,0BAAA,wBAAAO,YAAA,EAAA,IAAA,CAAA;IACA,IAAI,CAACC,aAAa,GAAG,IAAI,CAACd,IAAI,CAACe,gBAAgB,KAAKC,SAAS;IAC7D,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACjB,IAAI,CAACe,gBAAgB,IAAI,CAAC;AAC1D;EAEA,IAAIA,gBAAgBA,GAAW;IAC7B,IAAI,IAAI,CAACD,aAAa,EAAE;AACtB,MAAA,OAAO,IAAI,CAACd,IAAI,CAACe,gBAAgB;AACnC,KAAC,MAAM;MACL,OAAO,IAAI,CAACE,iBAAiB;AAC/B;AACF;EAEA,IAAIF,gBAAgBA,CAACG,KAAK,EAAE;IAC1B,IAAI,IAAI,CAACJ,aAAa,EAAE,CAEvB,MAAM;MACL,IAAI,CAACG,iBAAiB,GAAGC,KAAK;AAChC;AACF;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,UAAU,CAAC;;AAE5B;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,eAAA,EAAkB,IAAI,CAACtB,IAAI,EAAE,CAAC;AAE3C,IAAA,OAAOqB,OAAO,CAAClB,IAAI,CAAC,GAAG,CAAC;AAC1B;AAGAoB,EAAAA,SAASA,GAAS;AAChBrB,IAAAA,MAAM,CACJ,0DAA0D,EAC1D,IAAI,CAACsB,SAAS,CAACC,MAAM,KAAK,IAAI,CAACC,WAAW,CAACD,MAC7C,CAAC;IAED,IAAI,IAAI,CAACE,cAAc,EAAE;AACvB,MAAA,IAAI,CAACX,gBAAgB,GAAG,IAAI,CAACY,OAAO,CAACC,OAAO,CAAC,IAAI,CAACF,cAAc,CAAC;AACnE;;AAEA;IACAG,QAAQ,CAAC,aAAa,EAAE,MAAY;MAClC,IAAI,CAACC,eAAe,EAAE;AACxB,KAAC,CAAC;AACJ;AAGAC,EAAAA,yBAAyBA,GAAS;AAChC;IACAF,QAAQ,CAAC,aAAa,EAAE,MAAY;MAClC,IAAI,CAACC,eAAe,EAAE;AACxB,KAAC,CAAC;AACJ;AAGAE,EAAAA,sBAAsBA,GAAS;AAC7B;AACA;AACA;AACA;AACA;IACA,IAAI,IAAI,CAACN,cAAc,EAAE;AACvB,MAAA,IAAI,CAACX,gBAAgB,GAAG,IAAI,CAACY,OAAO,CAACC,OAAO,CAAC,IAAI,CAACF,cAAc,CAAC;AACnE;AACF;AAGAO,EAAAA,yBAAyBA,GAAS;AAChC;IACAJ,QAAQ,CAAC,aAAa,EAAE,MAAY;MAClC,IAAI,CAACC,eAAe,EAAE;AACxB,KAAC,CAAC;AACJ;AAGAI,EAAAA,YAAYA,CAACC,OAA0B,EAAEC,UAAoB,EAAQ;IACnE,IAAI,CAACb,SAAS,GAAG,CAAC,GAAG,IAAI,CAACA,SAAS,EAAEY,OAAO,CAAC;AAC7C,IAAA,IAAI,CAACR,OAAO,GAAG,CAAC,GAAG,IAAI,CAACA,OAAO,EAAEQ,OAAO,CAACE,EAAE,CAAC;AAC5C,IAAA,IAAID,UAAU,EAAE;AACd,MAAA,IAAI,CAACV,cAAc,GAAGS,OAAO,CAACE,EAAE;AAClC;AACF;AAGAC,EAAAA,YAAYA,CAACC,QAAgB,EAAEH,UAAoB,EAAQ;AACzD,IAAA,IAAIA,UAAU,EAAE;MACd,IAAI,CAACrB,gBAAgB,GAAGwB,QAAQ;AAClC;IACA,IAAI,CAACT,eAAe,EAAE;AACxB;EAGAU,cAAcA,CAACL,OAA0B,EAAQ;AAC/C,IAAA,IAAI,CAACZ,SAAS,GAAG,IAAI,CAACA,SAAS,CAACkB,MAAM,CACnCC,IAAI,IAAcA,IAAI,CAACL,EAAE,KAAKF,OAAO,CAACE,EACzC,CAAC;AACD,IAAA,IAAI,CAACV,OAAO,GAAG,IAAI,CAACA,OAAO,CAACc,MAAM,CAC/BE,KAAK,IAAcA,KAAK,KAAKR,OAAO,CAACE,EACxC,CAAC;AACH;AAGAO,EAAAA,cAAcA,CAACT,OAAoB,EAAEU,OAAe,EAAQ;IAC1D,IAAI,CAACpB,WAAW,GAAG,CAAC,GAAG,IAAI,CAACA,WAAW,EAAEU,OAAO,CAAC;IACjD,IAAI,CAACW,SAAS,GAAG,CAAC,GAAG,IAAI,CAACA,SAAS,EAAED,OAAO,CAAC;AAC/C;EAGAE,gBAAgBA,CAACZ,OAAoB,EAAQ;AAC3C,IAAA,IAAI,CAACV,WAAW,GAAG,IAAI,CAACA,WAAW,CAACgB,MAAM,CACvCC,IAAI,IAAcA,IAAI,CAACL,EAAE,KAAKF,OAAO,CAACE,EACzC,CAAC;AACD,IAAA,IAAI,CAACS,SAAS,GAAG,IAAI,CAACA,SAAS,CAACL,MAAM,CACnCI,OAAO,IAAcA,OAAO,KAAKV,OAAO,CAACE,EAC5C,CAAC;AACH;AAGAW,EAAAA,OAAOA,CAACC,KAAiB,EAAEV,QAAgB,EAAQ;IACjD,IAAI,CAACxB,gBAAgB,GAAGwB,QAAQ;IAChC,IAAI,CAACT,eAAe,EAAE;;AAEtB;IACA,IAAI,OAAO,IAAI,CAAC9B,IAAI,CAACkD,UAAU,KAAK,UAAU,EAAE;MAC9C,IAAI,CAAClD,IAAI,CAACkD,UAAU,CAACD,KAAK,EAAEV,QAAQ,CAAC;AACvC;AACF;AAGAY,EAAAA,OAAOA,CAACZ,QAAgB,EAAEU,KAAoB,EAAQ;IACpD,MAAMG,SAAS,GAAG,WAAW;IAC7B,MAAMC,UAAU,GAAG,YAAY;IAC/B,MAAMC,QAAQ,GAAG,OAAO;IACxB,MAAMC,QAAQ,GAAG,GAAG;AAEpB,IAAA,IAAIN,KAAK,CAACO,GAAG,KAAKH,UAAU,EAAE;MAC5B,MAAMI,YAAY,GAAG,CAAClB,QAAQ,GAAG,CAAC,IAAI,IAAI,CAACZ,OAAO,CAACH,MAAM;AACzD,MAAA,IAAI,CAACkC,QAAQ,CAACD,YAAY,EAAER,KAAK,CAAC;AACpC,KAAC,MAAM,IAAIA,KAAK,CAACO,GAAG,KAAKJ,SAAS,EAAE;AAClC,MAAA,MAAMO,YAAY,GAChB,CAACpB,QAAQ,GAAG,IAAI,CAACZ,OAAO,CAACH,MAAM,GAAG,CAAC,IAAI,IAAI,CAACG,OAAO,CAACH,MAAM;AAC5D,MAAA,IAAI,CAACkC,QAAQ,CAACC,YAAY,EAAEV,KAAK,CAAC;AACpC,KAAC,MAAM,IAAIA,KAAK,CAACO,GAAG,KAAKF,QAAQ,IAAIL,KAAK,CAACO,GAAG,KAAKD,QAAQ,EAAE;MAC3D,IAAI,CAACxC,gBAAgB,GAAGwB,QAAQ;AAClC;AACA;IACA,MAAMqB,UAAU,GAAG,IAAI,CAACrC,SAAS,CAAC,IAAI,CAACR,gBAAgB,CAAC,EAAE6C,UAAU;IACpE,IAAIA,UAAU,YAAYC,WAAW,EAAE;MACrCD,UAAU,CAACE,cAAc,CAAC;AACxBC,QAAAA,QAAQ,EAAE,QAAQ;AAClBC,QAAAA,KAAK,EAAE,SAAS;AAChBC,QAAAA,MAAM,EAAE;AACV,OAAC,CAAC;AACJ;AACF;;AAEA;AACAP,EAAAA,QAAQA,CAACnB,QAAgB,EAAEU,KAAoB,EAAQ;IACrDA,KAAK,CAACiB,cAAc,EAAE;IACtB,IAAI,CAAC3C,SAAS,CAACgB,QAAQ,CAAC,EAAE4B,KAAK,EAAE;AACnC;AAEArC,EAAAA,eAAeA,GAAS;AACtB;AACAsC,IAAAA,IAAI,CAAC,MAAY;MACf,MAAMC,OAAO,GAAG,IAAI,CAAC9C,SAAS,CAAC,IAAI,CAACR,gBAAgB,CAAC;MAErD,IAAIsD,OAAO,IAAI,IAAI,EAAE;AACnB,QAAA,MAAMC,iBAAiB,GAAGD,OAAO,CAACT,UAAyB;AAC3D,QAAA,MAAMW,mBAAmB,GAAGF,OAAO,CAACG,OAAO,CACzC,oBACF,CAAgB;;AAEhB;QACA,IAAIF,iBAAiB,CAACG,YAAY,EAAE;AAClC,UAAA,MAAMC,UAAU,GAAGJ,iBAAiB,CAACK,UAAU;AAC/C,UAAA,MAAMC,QAAQ,GAAGN,iBAAiB,CAACO,WAAW;;AAE9C;UACAN,mBAAmB,CAACO,KAAK,CAACC,WAAW,CACnC,sBAAsB,EACtBL,UAAU,GAAG,IACf,CAAC;UACDH,mBAAmB,CAACO,KAAK,CAACC,WAAW,CACnC,mBAAmB,EACnBH,QAAQ,GAAG,IACb,CAAC;AACH;AACF,OAAC,MAAM;QACL,IAAII,OAAO,GAAG,EAAE;AAChBA,QAAAA,OAAO,IACL,+EAA+E;AACjF,QAAA,IAAI,IAAI,CAACzD,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;AAC/BwD,UAAAA,OAAO,IACL,uFAAuF;AAC3F,SAAC,MAAM;AACLA,UAAAA,OAAO,IAAI,CAAA,YAAA,EACT,IAAI,CAACjE,gBAAgB,CAAA,0GAAA,EAErB,IAAI,CAACQ,SAAS,CAACC,MAAM,GAAG,CAAC,CACvB,EAAA,CAAA;AACN;AACA;AACAyD,QAAAA,IAAI,CAACD,OAAO,EAAE,IAAI,EAAE;AAClB3C,UAAAA,EAAE,EAAE;AACN,SAAC,CAAC;AACJ;AACF,KAAC,CAAC;AACJ;AACF,CAAC,EAAA9B,WAAA,GAAA2E,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,WAAA,EAAA,CAvPEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAA0C,EAAE;AAAA;AAAA,CAAAhF,CAAAA,EAAAA,YAAA,GAAA0E,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,cACnDC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAkC,EAAE;AAAA;AAAA,CAAA/E,CAAAA,EAAAA,YAAA,GAAAyE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,kBAC3CC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAsC,EAAE;AAAA;AAAA,CAAA9E,CAAAA,EAAAA,YAAA,GAAAwE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,gBAC/CC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAsC,EAAE;AAAA;AAAA,CAAA7E,CAAAA,EAAAA,YAAA,GAAAuE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,wBAC/CC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA;AAAA,CAAA5E,CAAAA,EAAAA,YAAA,GAAAsE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,qBACPC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA;AAAA,CAAA3E,CAAAA,EAAAA,YAAA,GAAAqE,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,oBACPC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA;AAAA,CAAAN,CAAAA,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,gBA6DPM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,WAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,GAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,2BAAA,EAAA,CAiBNM,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,2BAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAQNM,wBAAAA,EAAAA,CAAAA,MAAM,GAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,wBAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,2BAAA,EAAA,CAYNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,gCAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAQNM,cAAAA,EAAAA,CAAAA,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,cAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,cAAA,EAAA,CASNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,cAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAQNM,gBAAAA,EAAAA,CAAAA,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,gBAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,qBAUNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,gBAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,GAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,kBAAA,EAAA,CAMNM,MAAM,CAAAhG,EAAAA,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAA,kBAAA,CAAA,EAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAD,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAUNM,SAAAA,EAAAA,CAAAA,MAAM,GAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,EAAAtF,SAAAA,CAAAA,EAAAA,MAAA,CAAAsF,SAAA,CAAAD,EAAAA,yBAAA,CAAArF,MAAA,CAAAsF,SAAA,EAAA,SAAA,EAAA,CAWNM,MAAM,CAAA,EAAAhG,MAAA,CAAAiG,wBAAA,CAAA7F,MAAA,CAAAsF,SAAA,cAAAtF,MAAA,CAAAsF,SAAA,CAAA,EAAAtF,MAAA;AAvKmB8F,oBAAA,CAAAC,QAAA,EAAPhG,OAAO,CAAA;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-
|
|
1
|
+
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-81503waH.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { guidFor } from '@ember/object/internals';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this.
|
|
8
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this._panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{did-insert this.didInsertNode}}\n {{will-destroy this.willDestroyNode}}\n>\n {{yield (hash isVisible=this.isVisible)}}\n</section>");
|
|
9
9
|
|
|
10
10
|
var _class;
|
|
11
11
|
let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
|
|
@@ -14,12 +14,13 @@ let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
|
|
|
14
14
|
/**
|
|
15
15
|
* Generate a unique ID for the Panel
|
|
16
16
|
* @return {string}
|
|
17
|
+
* @param _panelId
|
|
17
18
|
*/
|
|
18
|
-
_defineProperty(this, "
|
|
19
|
-
_defineProperty(this, "
|
|
19
|
+
_defineProperty(this, "_panelId", 'panel-' + guidFor(this));
|
|
20
|
+
_defineProperty(this, "_elementId", void 0);
|
|
20
21
|
}
|
|
21
22
|
get nodeIndex() {
|
|
22
|
-
return this.args.panelIds ? this.args.panelIds.indexOf(this.
|
|
23
|
+
return this.args.panelIds ? this.args.panelIds.indexOf(this._panelId) : undefined;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
@@ -42,8 +43,8 @@ let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
|
|
|
42
43
|
didInsertNode
|
|
43
44
|
} = this.args;
|
|
44
45
|
if (typeof didInsertNode === 'function') {
|
|
45
|
-
this.
|
|
46
|
-
didInsertNode(element, this.
|
|
46
|
+
this._elementId = element.id;
|
|
47
|
+
didInsertNode(element, this._elementId);
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
willDestroyNode(element) {
|
|
@@ -54,7 +55,7 @@ let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
|
|
|
54
55
|
willDestroyNode(element);
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
|
-
},
|
|
58
|
+
}, _applyDecoratedDescriptor(_class.prototype, "didInsertNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype), _class);
|
|
58
59
|
setComponentTemplate(TEMPLATE, HdsTabsPanel);
|
|
59
60
|
|
|
60
61
|
export { HdsTabsPanel as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.hbs","../../../../src/components/hds/tabs/panel.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<section\\n class=\\\"hds-tabs__panel\\\"\\n ...attributes\\n role=\\\"tabpanel\\\"\\n id={{this.
|
|
1
|
+
{"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.hbs","../../../../src/components/hds/tabs/panel.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<section\\n class=\\\"hds-tabs__panel\\\"\\n ...attributes\\n role=\\\"tabpanel\\\"\\n id={{this._panelId}}\\n hidden={{not this.isVisible}}\\n aria-labelledby={{this.coupledTabId}}\\n {{did-insert this.didInsertNode}}\\n {{will-destroy this.willDestroyNode}}\\n>\\n {{yield (hash isVisible=this.isVisible)}}\\n</section>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport type { HdsTabsTabSignature } from './tab';\nimport type { HdsTabsPanelIds, HdsTabsTabIds } from './types';\n\nexport interface HdsTabsPanelSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n didInsertNode?: (element: HTMLElement, elementId: string) => void;\n willDestroyNode?: (element: HTMLElement) => void;\n };\n Blocks: {\n default: [\n {\n isVisible?: boolean;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsTabsPanel extends Component<HdsTabsPanelSignature> {\n /**\n * Generate a unique ID for the Panel\n * @return {string}\n * @param _panelId\n */\n private _panelId = 'panel-' + guidFor(this);\n\n private _elementId?: string;\n\n get nodeIndex(): number | undefined {\n return this.args.panelIds\n ? this.args.panelIds.indexOf(this._panelId)\n : undefined;\n }\n\n /**\n * Check the condition if the panel is visible (because the coupled/associated tab is selected) or not\n * @returns {boolean}\n */\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n /**\n * Get the ID of the tab coupled/associated with the panel (it's used by the `aria-labelledby` attribute)\n * @returns string}\n */\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n @action\n didInsertNode(element: HTMLElement): void {\n const { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n this._elementId = element.id;\n didInsertNode(element, this._elementId);\n }\n }\n\n @action\n willDestroyNode(element: HTMLElement): void {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n}\n"],"names":["HdsTabsPanel","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","panelIds","indexOf","_panelId","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","_elementId","id","willDestroyNode","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,uYAAuY;;;AC4BpZA,IAAAA,YAAY,IAAAC,MAAA,GAAlB,MAAMD,YAAY,SAASE,SAAS,CAAwB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AACzE;AACF;AACA;AACA;AACA;AAJEC,IAAAA,eAAA,mBAKmB,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA;IAAAD,eAAA,CAAA,IAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAAA;EAI3C,IAAIE,SAASA,GAAuB;AAClC,IAAA,OAAO,IAAI,CAACH,IAAI,CAACI,QAAQ,GACrB,IAAI,CAACJ,IAAI,CAACI,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACC,QAAQ,CAAC,GACzCC,SAAS;AACf;;AAEA;AACF;AACA;AACA;EACE,IAAIC,SAASA,GAAY;IACvB,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACH,IAAI,CAACS,gBAAgB;AACtD;;AAEA;AACF;AACA;AACA;EACE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAS,GAC/B,IAAI,CAACP,IAAI,CAACW,MAAM,GAAG,IAAI,CAACR,SAAS,CAAC,GAClCI,SAAS;AACf;EAGAK,aAAaA,CAACC,OAAoB,EAAQ;IACxC,MAAM;AAAED,MAAAA;KAAe,GAAG,IAAI,CAACZ,IAAI;AAEnC,IAAA,IAAI,OAAOY,aAAa,KAAK,UAAU,EAAE;AACvC,MAAA,IAAI,CAACE,UAAU,GAAGD,OAAO,CAACE,EAAE;AAC5BH,MAAAA,aAAa,CAACC,OAAO,EAAE,IAAI,CAACC,UAAU,CAAC;AACzC;AACF;EAGAE,eAAeA,CAACH,OAAoB,EAAQ;IAC1C,MAAM;AAAEG,MAAAA;KAAiB,GAAG,IAAI,CAAChB,IAAI;AAErC,IAAA,IAAI,OAAOgB,eAAe,KAAK,UAAU,EAAE;MACzCA,eAAe,CAACH,OAAO,CAAC;AAC1B;AACF;AACF,CAAC,EAAAI,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,oBAlBEC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,eAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,CAAAD,EAAAA,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,EAUNC,iBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,iBAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,GAAArB,MAAA;AA5CwByB,oBAAA,CAAAC,QAAA,EAAZ3B,YAAY,CAAA;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-
|
|
1
|
+
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-81503waH.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { guidFor } from '@ember/object/internals';
|
|
4
4
|
import { action } from '@ember/object';
|
|
5
5
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable require-context-role no-invalid-role }}\n<li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this.
|
|
8
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable require-context-role no-invalid-role }}\n<li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this._tabId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{did-insert this.didInsertNode @isSelected}}\n {{did-update this.didUpdateNode @count @isSelected}}\n {{will-destroy this.willDestroyNode}}\n {{on \"click\" this.onClick}}\n {{on \"keyup\" this.onKeyUp}}\n >\n {{#if @icon}}\n <Hds::Icon @name={{@icon}} class=\"hds-tabs__tab-icon\" role=\"presentation\" />\n {{/if}}\n\n {{yield}}\n\n {{#if @count}}\n <Hds::BadgeCount @text={{@count}} @size=\"small\" class=\"hds-tabs__tab-count\" role=\"presentation\" />\n {{/if}}\n </button>\n</li>\n{{! template-lint-enable require-context-role no-invalid-role }}");
|
|
9
9
|
|
|
10
10
|
var _class;
|
|
11
11
|
let HdsTabsTab = (_class = class HdsTabsTab extends Component {
|
|
@@ -14,11 +14,12 @@ let HdsTabsTab = (_class = class HdsTabsTab extends Component {
|
|
|
14
14
|
/**
|
|
15
15
|
* Generate a unique ID for the Tab
|
|
16
16
|
* @return {string}
|
|
17
|
+
* @param _tabId
|
|
17
18
|
*/
|
|
18
|
-
_defineProperty(this, "
|
|
19
|
+
_defineProperty(this, "_tabId", 'tab-' + guidFor(this));
|
|
19
20
|
}
|
|
20
21
|
get nodeIndex() {
|
|
21
|
-
return this.args.tabIds?.indexOf(this.
|
|
22
|
+
return this.args.tabIds?.indexOf(this._tabId);
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
/**
|
|
@@ -85,7 +86,7 @@ let HdsTabsTab = (_class = class HdsTabsTab extends Component {
|
|
|
85
86
|
}
|
|
86
87
|
return classes.join(' ');
|
|
87
88
|
}
|
|
88
|
-
},
|
|
89
|
+
}, _applyDecoratedDescriptor(_class.prototype, "didInsertNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype), _class);
|
|
89
90
|
setComponentTemplate(TEMPLATE, HdsTabsTab);
|
|
90
91
|
|
|
91
92
|
export { HdsTabsTab as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.hbs","../../../../src/components/hds/tabs/tab.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable require-context-role no-invalid-role }}\\n<li class={{this.classNames}} ...attributes role=\\\"presentation\\\">\\n <button\\n class=\\\"hds-tabs__tab-button\\\"\\n role=\\\"tab\\\"\\n type=\\\"button\\\"\\n id={{this.
|
|
1
|
+
{"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.hbs","../../../../src/components/hds/tabs/tab.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable require-context-role no-invalid-role }}\\n<li class={{this.classNames}} ...attributes role=\\\"presentation\\\">\\n <button\\n class=\\\"hds-tabs__tab-button\\\"\\n role=\\\"tab\\\"\\n type=\\\"button\\\"\\n id={{this._tabId}}\\n aria-selected={{if this.isSelected \\\"true\\\" \\\"false\\\"}}\\n tabindex={{unless this.isSelected \\\"-1\\\"}}\\n {{did-insert this.didInsertNode @isSelected}}\\n {{did-update this.didUpdateNode @count @isSelected}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"click\\\" this.onClick}}\\n {{on \\\"keyup\\\" this.onKeyUp}}\\n >\\n {{#if @icon}}\\n <Hds::Icon @name={{@icon}} class=\\\"hds-tabs__tab-icon\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n\\n {{yield}}\\n\\n {{#if @count}}\\n <Hds::BadgeCount @text={{@count}} @size=\\\"small\\\" class=\\\"hds-tabs__tab-count\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n </button>\\n</li>\\n{{! template-lint-enable require-context-role no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport type { IconName } from '@hashicorp/flight-icons/svg';\nimport type { HdsTabsTabIds } from './types';\n\nexport interface HdsTabsTabSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n selectedTabIndex?: number;\n icon?: IconName;\n count?: string;\n isSelected?: boolean;\n didInsertNode?: (element: HTMLButtonElement, isSelected?: boolean) => void;\n didUpdateNode?: (nodeIndex: number, isSelected?: boolean) => void;\n willDestroyNode?: (element: HTMLButtonElement) => void;\n onClick?: (event: MouseEvent, tabIndex: number) => void;\n onKeyUp?: (nodeIndex: number, event: KeyboardEvent) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLIElement;\n}\n\nexport default class HdsTabsTab extends Component<HdsTabsTabSignature> {\n /**\n * Generate a unique ID for the Tab\n * @return {string}\n * @param _tabId\n */\n private _tabId = 'tab-' + guidFor(this);\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this._tabId);\n }\n\n /**\n * Determine if the tab is the selected tab\n * @return {boolean}\n * @default false (1st tab is selected by default)\n */\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n @action\n didInsertNode(element: HTMLButtonElement, positional: [boolean?]): void {\n const { didInsertNode } = this.args;\n\n const isSelected = positional[0];\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, isSelected);\n }\n }\n\n @action\n didUpdateNode(): void {\n const { didUpdateNode } = this.args;\n\n if (typeof didUpdateNode === 'function' && this.nodeIndex !== undefined) {\n didUpdateNode(this.nodeIndex, this.args.isSelected);\n }\n }\n\n @action\n willDestroyNode(element: HTMLButtonElement): void {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n\n @action\n onClick(event: MouseEvent): false | undefined {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function' && this.nodeIndex !== undefined) {\n onClick(event, this.nodeIndex);\n } else {\n return false;\n }\n }\n\n @action\n onKeyUp(event: KeyboardEvent): void {\n const { onKeyUp } = this.args;\n\n if (typeof onKeyUp === 'function' && this.nodeIndex !== undefined) {\n onKeyUp(this.nodeIndex, event);\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsTabsTab","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","tabIds","indexOf","_tabId","isSelected","undefined","selectedTabIndex","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/tabs/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsTabsSizeValues {\n Medium = 'medium',\n Large = 'large',\n}\n\nexport type HdsTabsSizes = `${HdsTabsSizeValues}`;\n\nexport type HdsTabsPanelIds = string[];\n\nexport type HdsTabsTabIds = string[];\n"],"names":["HdsTabsSizeValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEYA,IAAAA,iBAAiB,0BAAjBA,iBAAiB,EAAA;EAAjBA,iBAAiB,CAAA,QAAA,CAAA,GAAA,QAAA
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/tabs/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsTabsSizeValues {\n Medium = 'medium',\n Large = 'large',\n}\n\nexport type HdsTabsSizes = `${HdsTabsSizeValues}`;\n\nexport type HdsTabsPanelIds = string[];\n\nexport type HdsTabsTabIds = string[];\n"],"names":["HdsTabsSizeValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEYA,IAAAA,iBAAiB,0BAAjBA,iBAAiB,EAAA;EAAjBA,iBAAiB,CAAA,QAAA,CAAA,GAAA,QAAA;EAAjBA,iBAAiB,CAAA,OAAA,CAAA,GAAA,OAAA;AAAA,EAAA,OAAjBA,iBAAiB;AAAA,CAAA,CAAA,EAAA;;;;"}
|