@hashicorp/design-system-components 6.2.0 → 6.3.0-rc-20260514101332
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declarations/components/hds/accordion/index.d.ts +1 -1
- package/declarations/components/hds/accordion/item/button.d.ts +1 -1
- package/declarations/components/hds/accordion/item/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/body.d.ts +4 -0
- package/declarations/components/hds/advanced-table/column-manager/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/column-manager/order.d.ts +4 -0
- package/declarations/components/hds/advanced-table/column-manager/width.d.ts +4 -0
- package/declarations/components/hds/advanced-table/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/td.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-expand.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-sort.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-context-menu.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-reorder-drop-target.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-reorder-handle.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-resize-handle.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-selectable.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th.d.ts +1 -1
- package/declarations/components/hds/advanced-table/tr.d.ts +1 -1
- package/declarations/components/hds/advanced-table/types.d.ts +1 -1
- package/declarations/components/hds/advanced-table/utils.d.ts +1 -1
- package/declarations/components/hds/alert/description.d.ts +1 -1
- package/declarations/components/hds/alert/index.d.ts +10 -1
- package/declarations/components/hds/alert/title.d.ts +1 -1
- package/declarations/components/hds/app-footer/copyright.d.ts +1 -1
- package/declarations/components/hds/app-footer/index.d.ts +1 -1
- package/declarations/components/hds/app-footer/item.d.ts +1 -1
- package/declarations/components/hds/app-footer/legal-links.d.ts +1 -1
- package/declarations/components/hds/app-footer/link.d.ts +1 -1
- package/declarations/components/hds/app-footer/status-link.d.ts +2 -2
- package/declarations/components/hds/app-footer/types.d.ts +1 -1
- package/declarations/components/hds/app-frame/index.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/footer.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/header.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/main.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/modals.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/sidebar.d.ts +1 -1
- package/declarations/components/hds/app-header/home-link.d.ts +1 -1
- package/declarations/components/hds/app-header/index.d.ts +1 -1
- package/declarations/components/hds/app-header/menu-button.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/item.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/link.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/portal/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/portal/target.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts +1 -1
- package/declarations/components/hds/application-state/body.d.ts +1 -1
- package/declarations/components/hds/application-state/footer.d.ts +1 -1
- package/declarations/components/hds/application-state/header.d.ts +1 -1
- package/declarations/components/hds/application-state/index.d.ts +1 -1
- package/declarations/components/hds/application-state/media.d.ts +1 -1
- package/declarations/components/hds/badge/index.d.ts +1 -1
- package/declarations/components/hds/badge-count/index.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/index.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/item.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
- package/declarations/components/hds/button/index.d.ts +3 -1
- package/declarations/components/hds/button-set/index.d.ts +1 -1
- package/declarations/components/hds/card/container.d.ts +1 -1
- package/declarations/components/hds/code-block/copy-button.d.ts +1 -1
- package/declarations/components/hds/code-block/description.d.ts +1 -1
- package/declarations/components/hds/code-block/index.d.ts +1 -1
- package/declarations/components/hds/code-block/title.d.ts +1 -1
- package/declarations/components/hds/code-editor/description.d.ts +1 -1
- package/declarations/components/hds/code-editor/full-screen-button.d.ts +1 -1
- package/declarations/components/hds/code-editor/generic.d.ts +1 -1
- package/declarations/components/hds/code-editor/index.d.ts +1 -1
- package/declarations/components/hds/code-editor/title.d.ts +1 -1
- package/declarations/components/hds/composite/index.d.ts +4 -0
- package/declarations/components/hds/composite/navigation.d.ts +4 -0
- package/declarations/components/hds/composite/types.d.ts +4 -0
- package/declarations/components/hds/copy/button/index.d.ts +1 -1
- package/declarations/components/hds/copy/snippet/index.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/body.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/description.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/footer.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/header.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/overlay.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/wrapper.d.ts +1 -1
- package/declarations/components/hds/disclosure-primitive/index.d.ts +1 -1
- package/declarations/components/hds/dismiss-button/index.d.ts +1 -1
- package/declarations/components/hds/dropdown/footer.d.ts +1 -1
- package/declarations/components/hds/dropdown/header.d.ts +1 -1
- package/declarations/components/hds/dropdown/index.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/checkmark.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/copy-item.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/description.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/generic.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/interactive.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/radio.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/separator.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/title.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/button.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
- package/declarations/components/hds/filter-bar/actions-dropdown.d.ts +1 -1
- package/declarations/components/hds/filter-bar/applied-filters.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/checkbox.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/clear-button.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/date.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/generic.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/numerical.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/radio.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filters-dropdown.d.ts +1 -1
- package/declarations/components/hds/filter-bar/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/panel.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/tab.d.ts +1 -1
- package/declarations/components/hds/filter-bar/types.d.ts +1 -1
- package/declarations/components/hds/flyout/index.d.ts +1 -1
- package/declarations/components/hds/form/character-count/index.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/base.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/field.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
- package/declarations/components/hds/form/error/index.d.ts +1 -1
- package/declarations/components/hds/form/error/message.d.ts +1 -1
- package/declarations/components/hds/form/field/index.d.ts +1 -1
- package/declarations/components/hds/form/fieldset/index.d.ts +1 -1
- package/declarations/components/hds/form/file-input/base.d.ts +1 -1
- package/declarations/components/hds/form/file-input/field.d.ts +1 -1
- package/declarations/components/hds/form/footer/index.d.ts +1 -1
- package/declarations/components/hds/form/header/description.d.ts +1 -1
- package/declarations/components/hds/form/header/index.d.ts +1 -1
- package/declarations/components/hds/form/header/title.d.ts +1 -1
- package/declarations/components/hds/form/helper-text/index.d.ts +1 -1
- package/declarations/components/hds/form/index.d.ts +1 -1
- package/declarations/components/hds/form/indicator/index.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/add-row-button.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/delete-row-button.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/field.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/generic.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/index.d.ts +1 -1
- package/declarations/components/hds/form/label/index.d.ts +1 -1
- package/declarations/components/hds/form/legend/index.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/base.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
- package/declarations/components/hds/form/radio/base.d.ts +1 -1
- package/declarations/components/hds/form/radio/field.d.ts +1 -1
- package/declarations/components/hds/form/radio/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/description.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/index.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/label.d.ts +1 -1
- package/declarations/components/hds/form/section/header.d.ts +1 -1
- package/declarations/components/hds/form/section/index.d.ts +1 -1
- package/declarations/components/hds/form/section/multi-field-group/index.d.ts +1 -1
- package/declarations/components/hds/form/section/multi-field-group/item.d.ts +1 -1
- package/declarations/components/hds/form/select/base.d.ts +1 -1
- package/declarations/components/hds/form/select/field.d.ts +1 -1
- package/declarations/components/hds/form/separator/index.d.ts +1 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -1
- package/declarations/components/hds/form/super-select/option-group.d.ts +1 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/field.d.ts +1 -1
- package/declarations/components/hds/form/text-input/base.d.ts +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts +2 -2
- package/declarations/components/hds/form/textarea/base.d.ts +1 -1
- package/declarations/components/hds/form/textarea/field.d.ts +1 -1
- package/declarations/components/hds/form/toggle/base.d.ts +1 -1
- package/declarations/components/hds/form/toggle/field.d.ts +1 -1
- package/declarations/components/hds/form/toggle/group.d.ts +1 -1
- package/declarations/components/hds/form/visibility-toggle/index.d.ts +1 -1
- package/declarations/components/hds/icon/index.d.ts +21 -5
- package/declarations/components/hds/icon/types.d.ts +7 -0
- package/declarations/components/hds/icon-tile/index.d.ts +1 -1
- package/declarations/components/hds/interactive/index.d.ts +1 -1
- package/declarations/components/hds/layout/flex/index.d.ts +1 -1
- package/declarations/components/hds/layout/flex/item.d.ts +1 -1
- package/declarations/components/hds/layout/grid/index.d.ts +1 -1
- package/declarations/components/hds/layout/grid/item.d.ts +1 -1
- package/declarations/components/hds/link/inline.d.ts +1 -1
- package/declarations/components/hds/link/standalone.d.ts +1 -1
- package/declarations/components/hds/modal/index.d.ts +1 -1
- package/declarations/components/hds/page-header/actions.d.ts +1 -1
- package/declarations/components/hds/page-header/badges.d.ts +1 -1
- package/declarations/components/hds/page-header/description.d.ts +1 -1
- package/declarations/components/hds/page-header/index.d.ts +1 -1
- package/declarations/components/hds/page-header/subtitle.d.ts +1 -1
- package/declarations/components/hds/page-header/title.d.ts +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
- package/declarations/components/hds/pagination/info/index.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/ellipsis.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
- package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
- package/declarations/components/hds/pagination/types.d.ts +1 -1
- package/declarations/components/hds/popover-primitive/index.d.ts +1 -1
- package/declarations/components/hds/reveal/index.d.ts +1 -1
- package/declarations/components/hds/reveal/toggle/button.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/bubble.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/index.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/toggle.d.ts +1 -1
- package/declarations/components/hds/segmented-group/index.d.ts +1 -1
- package/declarations/components/hds/separator/index.d.ts +1 -1
- package/declarations/components/hds/stepper/list/index.d.ts +1 -1
- package/declarations/components/hds/stepper/list/step.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/index.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/panel.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/step.d.ts +1 -1
- package/declarations/components/hds/stepper/step/indicator.d.ts +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts +2 -2
- package/declarations/components/hds/stepper/types.d.ts +1 -1
- package/declarations/components/hds/table/index.d.ts +1 -1
- package/declarations/components/hds/table/td.d.ts +1 -1
- package/declarations/components/hds/table/th-button-sort.d.ts +1 -1
- package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/table/th-selectable.d.ts +1 -1
- package/declarations/components/hds/table/th-sort.d.ts +1 -1
- package/declarations/components/hds/table/th.d.ts +1 -1
- package/declarations/components/hds/table/tr.d.ts +1 -1
- package/declarations/components/hds/table/types.d.ts +1 -1
- package/declarations/components/hds/tabs/index.d.ts +1 -1
- package/declarations/components/hds/tabs/panel.d.ts +1 -1
- package/declarations/components/hds/tabs/tab.d.ts +1 -1
- package/declarations/components/hds/tag/index.d.ts +1 -1
- package/declarations/components/hds/text/body.d.ts +1 -1
- package/declarations/components/hds/text/code.d.ts +1 -1
- package/declarations/components/hds/text/display.d.ts +1 -1
- package/declarations/components/hds/text/index.d.ts +1 -1
- package/declarations/components/hds/theme-context/index.d.ts +24 -0
- package/declarations/components/hds/theme-context/types.d.ts +19 -0
- package/declarations/components/hds/theme-switcher/index.d.ts +43 -0
- package/declarations/components/hds/time/index.d.ts +1 -1
- package/declarations/components/hds/time/range.d.ts +1 -1
- package/declarations/components/hds/time/single.d.ts +1 -1
- package/declarations/components/hds/toast/index.d.ts +1 -1
- package/declarations/components/hds/tooltip-button/index.d.ts +1 -1
- package/declarations/components/hds/yield/index.d.ts +1 -1
- package/declarations/components.d.ts +3 -1
- package/declarations/helpers/hds-t.d.ts +1 -1
- package/declarations/instance-initializers/load-sprite-empty.d.ts +10 -0
- package/declarations/modifiers/hds-advanced-table-cell/dom-management.d.ts +1 -1
- package/declarations/modifiers/hds-advanced-table-cell.d.ts +1 -1
- package/declarations/modifiers/hds-anchored-position.d.ts +1 -1
- package/declarations/modifiers/hds-code-editor/highlight-styles/{hds-dark-highlight-style.d.ts → hds-highlight-style.d.ts} +2 -2
- package/declarations/modifiers/hds-code-editor/themes/hds-theme.d.ts +6 -0
- package/declarations/modifiers/hds-code-editor.d.ts +1 -1
- package/declarations/modifiers/hds-scroll-into-view-on-focus.d.ts +1 -1
- package/declarations/modifiers/hds-tooltip.d.ts +1 -1
- package/declarations/re-exports/codemirror.d.ts +4 -0
- package/declarations/services/hds-icon-registry.d.ts +31 -0
- package/declarations/services/hds-intl.d.ts +1 -1
- package/declarations/services/hds-theming.d.ts +54 -0
- package/declarations/services.d.ts +1 -0
- package/declarations/template-registry.d.ts +7 -1
- package/declarations/utils/hds-aria-described-by.d.ts +1 -1
- package/declarations/utils/hds-link-to-external.d.ts +4 -0
- package/dist/_app_/components/hds/theme-context.js +1 -0
- package/dist/_app_/components/hds/theme-switcher.js +1 -0
- package/dist/_app_/instance-initializers/load-sprite-empty.js +1 -0
- package/dist/_app_/modifiers/hds-code-editor/{palettes/hds-dark-palette.js → highlight-styles/hds-highlight-style.js} +1 -1
- package/dist/_app_/modifiers/hds-code-editor/themes/{hds-dark-theme.js → hds-theme.js} +1 -1
- package/dist/_app_/services/hds-icon-registry.js +1 -0
- package/dist/_app_/services/hds-theming.js +1 -0
- package/dist/components/hds/accordion/index.js +1 -1
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js +1 -1
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/accordion/item/index.js +1 -1
- package/dist/components/hds/accordion/item/index.js.map +1 -1
- package/dist/components/hds/advanced-table/body.js +4 -0
- package/dist/components/hds/advanced-table/body.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/index.js +1 -1
- package/dist/components/hds/advanced-table/column-manager/index.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/order.js +4 -0
- package/dist/components/hds/advanced-table/column-manager/order.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/width.js +4 -0
- package/dist/components/hds/advanced-table/column-manager/width.js.map +1 -1
- package/dist/components/hds/advanced-table/index.js +1 -1
- package/dist/components/hds/advanced-table/td.js +1 -1
- package/dist/components/hds/advanced-table/td.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/advanced-table/th-context-menu.js +1 -1
- package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
- package/dist/components/hds/advanced-table/th-reorder-drop-target.js +1 -1
- package/dist/components/hds/advanced-table/th-reorder-handle.js +1 -1
- package/dist/components/hds/advanced-table/th-reorder-handle.js.map +1 -1
- package/dist/components/hds/advanced-table/th-resize-handle.js +1 -1
- package/dist/components/hds/advanced-table/th-selectable.js +1 -1
- package/dist/components/hds/advanced-table/th.js +1 -1
- package/dist/components/hds/advanced-table/tr.js +1 -1
- package/dist/components/hds/advanced-table/types.js +1 -1
- package/dist/components/hds/advanced-table/types.js.map +1 -1
- package/dist/components/hds/advanced-table/utils.js +1 -1
- package/dist/components/hds/advanced-table/utils.js.map +1 -1
- package/dist/components/hds/alert/description.js +1 -1
- package/dist/components/hds/alert/description.js.map +1 -1
- package/dist/components/hds/alert/index.js +18 -3
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/alert/title.js +1 -1
- package/dist/components/hds/alert/title.js.map +1 -1
- package/dist/components/hds/app-footer/copyright.js +1 -1
- package/dist/components/hds/app-footer/copyright.js.map +1 -1
- package/dist/components/hds/app-footer/index.js +1 -1
- package/dist/components/hds/app-footer/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js +1 -1
- package/dist/components/hds/app-footer/item.js.map +1 -1
- package/dist/components/hds/app-footer/legal-links.js +1 -1
- package/dist/components/hds/app-footer/legal-links.js.map +1 -1
- package/dist/components/hds/app-footer/link.js +1 -1
- package/dist/components/hds/app-footer/link.js.map +1 -1
- package/dist/components/hds/app-footer/status-link.js +1 -1
- package/dist/components/hds/app-footer/status-link.js.map +1 -1
- package/dist/components/hds/app-footer/types.js +1 -1
- package/dist/components/hds/app-footer/types.js.map +1 -1
- package/dist/components/hds/app-frame/index.js +1 -1
- package/dist/components/hds/app-frame/index.js.map +1 -1
- package/dist/components/hds/app-frame/parts/footer.js +1 -1
- package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
- package/dist/components/hds/app-frame/parts/header.js +1 -1
- package/dist/components/hds/app-frame/parts/header.js.map +1 -1
- package/dist/components/hds/app-frame/parts/main.js +1 -1
- package/dist/components/hds/app-frame/parts/main.js.map +1 -1
- package/dist/components/hds/app-frame/parts/modals.js +1 -1
- package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
- package/dist/components/hds/app-header/home-link.js +1 -1
- package/dist/components/hds/app-header/home-link.js.map +1 -1
- package/dist/components/hds/app-header/index.js +1 -1
- package/dist/components/hds/app-header/index.js.map +1 -1
- package/dist/components/hds/app-header/menu-button.js +1 -1
- package/dist/components/hds/app-header/menu-button.js.map +1 -1
- package/dist/components/hds/app-side-nav/index.js +1 -1
- package/dist/components/hds/app-side-nav/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/back-link.js +1 -1
- package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/index.js +1 -1
- package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/item.js +1 -1
- package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/link.js +1 -1
- package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/title.js +1 -1
- package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
- package/dist/components/hds/app-side-nav/portal/index.js +1 -1
- package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/portal/target.js +1 -1
- package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/application-state/body.js +1 -1
- package/dist/components/hds/application-state/body.js.map +1 -1
- package/dist/components/hds/application-state/footer.js +1 -1
- package/dist/components/hds/application-state/footer.js.map +1 -1
- package/dist/components/hds/application-state/header.js +1 -1
- package/dist/components/hds/application-state/header.js.map +1 -1
- package/dist/components/hds/application-state/index.js +1 -1
- package/dist/components/hds/application-state/index.js.map +1 -1
- package/dist/components/hds/application-state/media.js +1 -1
- package/dist/components/hds/application-state/media.js.map +1 -1
- package/dist/components/hds/badge/index.js +1 -1
- package/dist/components/hds/badge/index.js.map +1 -1
- package/dist/components/hds/badge-count/index.js +1 -1
- package/dist/components/hds/badge-count/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/index.js +1 -1
- package/dist/components/hds/breadcrumb/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/item.js +1 -1
- package/dist/components/hds/breadcrumb/item.js.map +1 -1
- package/dist/components/hds/breadcrumb/truncation.js +1 -1
- package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
- package/dist/components/hds/button/index.js +9 -2
- package/dist/components/hds/button/index.js.map +1 -1
- package/dist/components/hds/button-set/index.js +1 -1
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/card/container.js +1 -1
- package/dist/components/hds/card/container.js.map +1 -1
- package/dist/components/hds/code-block/copy-button.js +1 -1
- package/dist/components/hds/code-block/copy-button.js.map +1 -1
- package/dist/components/hds/code-block/description.js +1 -1
- package/dist/components/hds/code-block/description.js.map +1 -1
- package/dist/components/hds/code-block/index.js +1 -1
- package/dist/components/hds/code-block/index.js.map +1 -1
- package/dist/components/hds/code-block/title.js +1 -1
- package/dist/components/hds/code-block/title.js.map +1 -1
- package/dist/components/hds/code-editor/description.js +1 -1
- package/dist/components/hds/code-editor/description.js.map +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js.map +1 -1
- package/dist/components/hds/code-editor/generic.js +1 -1
- package/dist/components/hds/code-editor/generic.js.map +1 -1
- package/dist/components/hds/code-editor/index.js +1 -1
- package/dist/components/hds/code-editor/index.js.map +1 -1
- package/dist/components/hds/code-editor/title.js +1 -1
- package/dist/components/hds/code-editor/title.js.map +1 -1
- package/dist/components/hds/composite/index.js +4 -0
- package/dist/components/hds/composite/index.js.map +1 -1
- package/dist/components/hds/composite/navigation.js +5 -0
- package/dist/components/hds/composite/navigation.js.map +1 -1
- package/dist/components/hds/copy/button/index.js +1 -1
- package/dist/components/hds/copy/button/index.js.map +1 -1
- package/dist/components/hds/copy/snippet/index.js +1 -1
- package/dist/components/hds/copy/snippet/index.js.map +1 -1
- package/dist/components/hds/dialog-primitive/body.js +1 -1
- package/dist/components/hds/dialog-primitive/body.js.map +1 -1
- package/dist/components/hds/dialog-primitive/description.js +1 -1
- package/dist/components/hds/dialog-primitive/description.js.map +1 -1
- package/dist/components/hds/dialog-primitive/footer.js +1 -1
- package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
- package/dist/components/hds/dialog-primitive/header.js +2 -6
- package/dist/components/hds/dialog-primitive/header.js.map +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
- package/dist/components/hds/disclosure-primitive/index.js +1 -1
- package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
- package/dist/components/hds/dismiss-button/index.js +1 -1
- package/dist/components/hds/dismiss-button/index.js.map +1 -1
- package/dist/components/hds/dropdown/footer.js +1 -1
- package/dist/components/hds/dropdown/footer.js.map +1 -1
- package/dist/components/hds/dropdown/header.js +1 -1
- package/dist/components/hds/dropdown/header.js.map +1 -1
- package/dist/components/hds/dropdown/index.js +1 -1
- package/dist/components/hds/dropdown/index.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/description.js +1 -1
- package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/title.js +1 -1
- package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/button.js +1 -1
- package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
- package/dist/components/hds/filter-bar/actions-dropdown.js +1 -1
- package/dist/components/hds/filter-bar/actions-dropdown.js.map +1 -1
- package/dist/components/hds/filter-bar/applied-filters.js +1 -1
- package/dist/components/hds/filter-bar/applied-filters.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/clear-button.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/clear-button.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/date.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/date.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/index.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/index.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js.map +1 -1
- package/dist/components/hds/filter-bar/filters-dropdown.js +1 -1
- package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -1
- package/dist/components/hds/filter-bar/index.js +1 -1
- package/dist/components/hds/filter-bar/index.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/index.js +1 -1
- package/dist/components/hds/filter-bar/tabs/index.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/panel.js +1 -1
- package/dist/components/hds/filter-bar/tabs/panel.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/tab.js +1 -1
- package/dist/components/hds/filter-bar/tabs/tab.js.map +1 -1
- package/dist/components/hds/filter-bar/types.js +1 -1
- package/dist/components/hds/filter-bar/types.js.map +1 -1
- package/dist/components/hds/flyout/index.js +1 -1
- package/dist/components/hds/flyout/index.js.map +1 -1
- package/dist/components/hds/form/character-count/index.js +1 -1
- package/dist/components/hds/form/character-count/index.js.map +1 -1
- package/dist/components/hds/form/checkbox/base.js +1 -1
- package/dist/components/hds/form/checkbox/base.js.map +1 -1
- package/dist/components/hds/form/checkbox/field.js +1 -1
- package/dist/components/hds/form/checkbox/field.js.map +1 -1
- package/dist/components/hds/form/checkbox/group.js +1 -1
- package/dist/components/hds/form/checkbox/group.js.map +1 -1
- package/dist/components/hds/form/error/index.js +1 -1
- package/dist/components/hds/form/error/index.js.map +1 -1
- package/dist/components/hds/form/error/message.js +1 -1
- package/dist/components/hds/form/error/message.js.map +1 -1
- package/dist/components/hds/form/field/index.js +1 -1
- package/dist/components/hds/form/field/index.js.map +1 -1
- package/dist/components/hds/form/fieldset/index.js +1 -1
- package/dist/components/hds/form/fieldset/index.js.map +1 -1
- package/dist/components/hds/form/file-input/base.js +1 -1
- package/dist/components/hds/form/file-input/base.js.map +1 -1
- package/dist/components/hds/form/file-input/field.js +1 -1
- package/dist/components/hds/form/file-input/field.js.map +1 -1
- package/dist/components/hds/form/footer/index.js +1 -1
- package/dist/components/hds/form/footer/index.js.map +1 -1
- package/dist/components/hds/form/header/description.js +1 -1
- package/dist/components/hds/form/header/description.js.map +1 -1
- package/dist/components/hds/form/header/index.js +1 -1
- package/dist/components/hds/form/header/index.js.map +1 -1
- package/dist/components/hds/form/header/title.js +1 -1
- package/dist/components/hds/form/header/title.js.map +1 -1
- package/dist/components/hds/form/helper-text/index.js +1 -1
- package/dist/components/hds/form/helper-text/index.js.map +1 -1
- package/dist/components/hds/form/index.js +1 -1
- package/dist/components/hds/form/index.js.map +1 -1
- package/dist/components/hds/form/indicator/index.js +1 -1
- package/dist/components/hds/form/indicator/index.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/add-row-button.js +1 -1
- package/dist/components/hds/form/key-value-inputs/add-row-button.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/delete-row-button.js +1 -1
- package/dist/components/hds/form/key-value-inputs/delete-row-button.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/field.js +1 -1
- package/dist/components/hds/form/key-value-inputs/field.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/generic.js +1 -1
- package/dist/components/hds/form/key-value-inputs/generic.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/index.js +1 -1
- package/dist/components/hds/form/key-value-inputs/index.js.map +1 -1
- package/dist/components/hds/form/label/index.js +1 -1
- package/dist/components/hds/form/label/index.js.map +1 -1
- package/dist/components/hds/form/legend/index.js +1 -1
- package/dist/components/hds/form/legend/index.js.map +1 -1
- package/dist/components/hds/form/masked-input/base.js +1 -1
- package/dist/components/hds/form/masked-input/base.js.map +1 -1
- package/dist/components/hds/form/masked-input/field.js +1 -1
- package/dist/components/hds/form/masked-input/field.js.map +1 -1
- package/dist/components/hds/form/radio/base.js +1 -1
- package/dist/components/hds/form/radio/base.js.map +1 -1
- package/dist/components/hds/form/radio/field.js +1 -1
- package/dist/components/hds/form/radio/field.js.map +1 -1
- package/dist/components/hds/form/radio/group.js +1 -1
- package/dist/components/hds/form/radio/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/description.js +1 -1
- package/dist/components/hds/form/radio-card/description.js.map +1 -1
- package/dist/components/hds/form/radio-card/group.js +1 -1
- package/dist/components/hds/form/radio-card/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/index.js +1 -1
- package/dist/components/hds/form/radio-card/index.js.map +1 -1
- package/dist/components/hds/form/radio-card/label.js +1 -1
- package/dist/components/hds/form/radio-card/label.js.map +1 -1
- package/dist/components/hds/form/section/header.js +1 -1
- package/dist/components/hds/form/section/header.js.map +1 -1
- package/dist/components/hds/form/section/index.js +1 -1
- package/dist/components/hds/form/section/index.js.map +1 -1
- package/dist/components/hds/form/section/multi-field-group/index.js +1 -1
- package/dist/components/hds/form/section/multi-field-group/index.js.map +1 -1
- package/dist/components/hds/form/section/multi-field-group/item.js +1 -1
- package/dist/components/hds/form/section/multi-field-group/item.js.map +1 -1
- package/dist/components/hds/form/select/base.js +1 -1
- package/dist/components/hds/form/select/base.js.map +1 -1
- package/dist/components/hds/form/select/field.js +1 -1
- package/dist/components/hds/form/select/field.js.map +1 -1
- package/dist/components/hds/form/separator/index.js +1 -1
- package/dist/components/hds/form/separator/index.js.map +1 -1
- package/dist/components/hds/form/super-select/after-options.js +1 -1
- package/dist/components/hds/form/super-select/after-options.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/base.js +1 -1
- package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
- package/dist/components/hds/form/super-select/option-group.js +1 -1
- package/dist/components/hds/form/super-select/option-group.js.map +1 -1
- package/dist/components/hds/form/super-select/placeholder.js +1 -1
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
- package/dist/components/hds/form/super-select/single/base.js +1 -1
- package/dist/components/hds/form/super-select/single/base.js.map +1 -1
- package/dist/components/hds/form/super-select/single/field.js +1 -1
- package/dist/components/hds/form/super-select/single/field.js.map +1 -1
- package/dist/components/hds/form/text-input/base.js +1 -1
- package/dist/components/hds/form/text-input/base.js.map +1 -1
- package/dist/components/hds/form/text-input/field.js +1 -1
- package/dist/components/hds/form/text-input/field.js.map +1 -1
- package/dist/components/hds/form/textarea/base.js +1 -1
- package/dist/components/hds/form/textarea/base.js.map +1 -1
- package/dist/components/hds/form/textarea/field.js +1 -1
- package/dist/components/hds/form/textarea/field.js.map +1 -1
- package/dist/components/hds/form/toggle/base.js +1 -1
- package/dist/components/hds/form/toggle/base.js.map +1 -1
- package/dist/components/hds/form/toggle/field.js +1 -1
- package/dist/components/hds/form/toggle/field.js.map +1 -1
- package/dist/components/hds/form/toggle/group.js +1 -1
- package/dist/components/hds/form/toggle/group.js.map +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
- package/dist/components/hds/icon/index.js +46 -11
- package/dist/components/hds/icon/index.js.map +1 -1
- package/dist/components/hds/icon/types.js +6 -1
- package/dist/components/hds/icon/types.js.map +1 -1
- package/dist/components/hds/icon-tile/index.js +2 -3
- package/dist/components/hds/icon-tile/index.js.map +1 -1
- package/dist/components/hds/interactive/index.js +1 -1
- package/dist/components/hds/interactive/index.js.map +1 -1
- package/dist/components/hds/layout/flex/index.js +1 -1
- package/dist/components/hds/layout/flex/index.js.map +1 -1
- package/dist/components/hds/layout/flex/item.js +1 -1
- package/dist/components/hds/layout/flex/item.js.map +1 -1
- package/dist/components/hds/layout/grid/index.js +1 -1
- package/dist/components/hds/layout/grid/index.js.map +1 -1
- package/dist/components/hds/layout/grid/item.js +1 -1
- package/dist/components/hds/layout/grid/item.js.map +1 -1
- package/dist/components/hds/link/inline.js +1 -1
- package/dist/components/hds/link/inline.js.map +1 -1
- package/dist/components/hds/link/standalone.js +1 -1
- package/dist/components/hds/link/standalone.js.map +1 -1
- package/dist/components/hds/modal/index.js +1 -1
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components/hds/page-header/actions.js +1 -1
- package/dist/components/hds/page-header/actions.js.map +1 -1
- package/dist/components/hds/page-header/badges.js +1 -1
- package/dist/components/hds/page-header/badges.js.map +1 -1
- package/dist/components/hds/page-header/description.js +1 -1
- package/dist/components/hds/page-header/description.js.map +1 -1
- package/dist/components/hds/page-header/index.js +1 -1
- package/dist/components/hds/page-header/index.js.map +1 -1
- package/dist/components/hds/page-header/subtitle.js +1 -1
- package/dist/components/hds/page-header/subtitle.js.map +1 -1
- package/dist/components/hds/page-header/title.js +1 -1
- package/dist/components/hds/page-header/title.js.map +1 -1
- package/dist/components/hds/pagination/compact/index.js +2 -2
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/info/index.js +1 -1
- package/dist/components/hds/pagination/info/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js +1 -1
- package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
- package/dist/components/hds/pagination/nav/number.js +2 -2
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +2 -2
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +2 -2
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/pagination/types.js +1 -1
- package/dist/components/hds/pagination/types.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +1 -1
- package/dist/components/hds/popover-primitive/index.js.map +1 -1
- package/dist/components/hds/reveal/index.js +1 -1
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/reveal/toggle/button.js +1 -1
- package/dist/components/hds/reveal/toggle/button.js.map +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
- package/dist/components/hds/rich-tooltip/index.js +1 -1
- package/dist/components/hds/rich-tooltip/index.js.map +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
- package/dist/components/hds/segmented-group/index.js +1 -1
- package/dist/components/hds/segmented-group/index.js.map +1 -1
- package/dist/components/hds/separator/index.js +1 -1
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/stepper/list/index.js +1 -1
- package/dist/components/hds/stepper/list/index.js.map +1 -1
- package/dist/components/hds/stepper/list/step.js +1 -1
- package/dist/components/hds/stepper/list/step.js.map +1 -1
- package/dist/components/hds/stepper/nav/index.js +1 -1
- package/dist/components/hds/stepper/nav/index.js.map +1 -1
- package/dist/components/hds/stepper/nav/panel.js +1 -1
- package/dist/components/hds/stepper/nav/panel.js.map +1 -1
- package/dist/components/hds/stepper/nav/step.js +1 -1
- package/dist/components/hds/stepper/nav/step.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js +1 -1
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js +1 -1
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/stepper/types.js +1 -1
- package/dist/components/hds/stepper/types.js.map +1 -1
- package/dist/components/hds/table/index.js +1 -1
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/td.js +1 -1
- package/dist/components/hds/table/td.js.map +1 -1
- package/dist/components/hds/table/th-button-sort.js +1 -1
- package/dist/components/hds/table/th-button-sort.js.map +1 -1
- package/dist/components/hds/table/th-button-tooltip.js +1 -1
- package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/table/th-selectable.js +1 -1
- package/dist/components/hds/table/th-selectable.js.map +1 -1
- package/dist/components/hds/table/th-sort.js +1 -1
- package/dist/components/hds/table/th-sort.js.map +1 -1
- package/dist/components/hds/table/th.js +1 -1
- package/dist/components/hds/table/th.js.map +1 -1
- package/dist/components/hds/table/tr.js +1 -1
- package/dist/components/hds/table/tr.js.map +1 -1
- package/dist/components/hds/table/types.js +1 -1
- package/dist/components/hds/table/types.js.map +1 -1
- package/dist/components/hds/tabs/index.js +1 -1
- package/dist/components/hds/tabs/index.js.map +1 -1
- package/dist/components/hds/tabs/panel.js +1 -1
- package/dist/components/hds/tabs/panel.js.map +1 -1
- package/dist/components/hds/tabs/tab.js +1 -1
- package/dist/components/hds/tabs/tab.js.map +1 -1
- package/dist/components/hds/tag/index.js +10 -1
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/text/body.js +1 -1
- package/dist/components/hds/text/body.js.map +1 -1
- package/dist/components/hds/text/code.js +1 -1
- package/dist/components/hds/text/code.js.map +1 -1
- package/dist/components/hds/text/display.js +1 -1
- package/dist/components/hds/text/display.js.map +1 -1
- package/dist/components/hds/text/index.js +1 -1
- package/dist/components/hds/text/index.js.map +1 -1
- package/dist/components/hds/theme-context/index.js +44 -0
- package/dist/components/hds/theme-context/index.js.map +1 -0
- package/dist/components/hds/theme-context/types.js +27 -0
- package/dist/components/hds/theme-context/types.js.map +1 -0
- package/dist/components/hds/theme-switcher/index.js +107 -0
- package/dist/components/hds/theme-switcher/index.js.map +1 -0
- package/dist/components/hds/time/index.js +1 -1
- package/dist/components/hds/time/index.js.map +1 -1
- package/dist/components/hds/time/range.js +1 -1
- package/dist/components/hds/time/range.js.map +1 -1
- package/dist/components/hds/time/single.js +1 -1
- package/dist/components/hds/time/single.js.map +1 -1
- package/dist/components/hds/toast/index.js +1 -1
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/index.js +1 -1
- package/dist/components/hds/tooltip-button/index.js.map +1 -1
- package/dist/components/hds/yield/index.js +1 -1
- package/dist/components/hds/yield/index.js.map +1 -1
- package/dist/components.js +4 -2
- package/dist/components.js.map +1 -1
- package/dist/helpers/hds-t.js +1 -1
- package/dist/helpers/hds-t.js.map +1 -1
- package/dist/{index-B9OqWZ9U.js → index-DtMB-P9m.js} +7 -7
- package/dist/{index-B9OqWZ9U.js.map → index-DtMB-P9m.js.map} +1 -1
- package/dist/instance-initializers/load-sprite-empty.js +45 -0
- package/dist/instance-initializers/load-sprite-empty.js.map +1 -0
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js +1 -1
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js.map +1 -1
- package/dist/modifiers/hds-advanced-table-cell.js +1 -1
- package/dist/modifiers/hds-advanced-table-cell.js.map +1 -1
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-highlight-style.js +107 -0
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-highlight-style.js.map +1 -0
- package/dist/modifiers/hds-code-editor/themes/{hds-dark-theme.js → hds-theme.js} +41 -40
- package/dist/modifiers/hds-code-editor/themes/hds-theme.js.map +1 -0
- package/dist/modifiers/hds-code-editor.js +4 -4
- package/dist/modifiers/hds-code-editor.js.map +1 -1
- package/dist/modifiers/hds-scroll-into-view-on-focus.js +1 -1
- package/dist/modifiers/hds-scroll-into-view-on-focus.js.map +1 -1
- package/dist/modifiers/hds-tooltip.js +2 -5
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/public/assets/fonts/LICENSE.txt +93 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-Italic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-Regular.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-SemiBold.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-SemiBoldItalic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-Italic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-Regular.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-SemiBold.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-SemiBoldItalic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Pi.woff2 +0 -0
- package/dist/services/hds-icon-registry.js +436 -0
- package/dist/services/hds-icon-registry.js.map +1 -0
- package/dist/services/hds-intl.js +1 -1
- package/dist/services/hds-intl.js.map +1 -1
- package/dist/services/hds-theming.js +150 -0
- package/dist/services/hds-theming.js.map +1 -0
- package/dist/services.js +1 -1
- package/dist/styles/@hashicorp/design-system-components-common.css +10170 -0
- package/dist/styles/@hashicorp/design-system-components-common.css.map +1 -0
- package/dist/styles/@hashicorp/design-system-components-common.scss +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +2083 -896
- package/dist/styles/@hashicorp/design-system-components.css.map +1 -1
- package/dist/styles/@hashicorp/design-system-components.scss +1 -1
- package/dist/styles/@hashicorp/design-system-ember-a11y-refocus.scss +5 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.css +362 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.css.map +1 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.scss +62 -0
- package/dist/styles/@hashicorp/design-system-power-select-overrides.css +3 -3
- package/dist/styles/@hashicorp/design-system-power-select-overrides.scss +3 -3
- package/dist/styles/components/advanced-table.scss +1 -1
- package/dist/styles/components/alert.scss +73 -94
- package/dist/styles/components/app-footer.scss +6 -4
- package/dist/styles/components/app-header.scss +134 -15
- package/dist/styles/components/app-side-nav/content.scss +30 -15
- package/dist/styles/components/app-side-nav/main.scss +2 -2
- package/dist/styles/components/app-side-nav/toggle-button.scss +17 -9
- package/dist/styles/components/app-side-nav/vars.scss +1 -1
- package/dist/styles/components/badge-count.scss +27 -76
- package/dist/styles/components/badge.scss +32 -131
- package/dist/styles/components/breadcrumb.scss +108 -21
- package/dist/styles/components/button.scss +5 -0
- package/dist/styles/components/card/container.scss +10 -5
- package/dist/styles/components/code-block/index.scss +54 -33
- package/dist/styles/components/code-block/theme.scss +44 -90
- package/dist/styles/components/code-editor/index.scss +43 -23
- package/dist/styles/components/copy/button.scss +17 -3
- package/dist/styles/components/copy/snippet.scss +17 -0
- package/dist/styles/components/dialog-primitive.scss +50 -10
- package/dist/styles/components/dismiss-button.scss +19 -14
- package/dist/styles/components/dropdown.scss +145 -43
- package/dist/styles/components/filter-bar.scss +1 -1
- package/dist/styles/components/flyout.scss +2 -5
- package/dist/styles/components/form/file-input.scss +2 -2
- package/dist/styles/components/form/key-value-inputs.scss +2 -4
- package/dist/styles/components/form/radio-card.scss +1 -1
- package/dist/styles/components/form/select.scss +1 -1
- package/dist/styles/components/form/super-select.scss +6 -6
- package/dist/styles/components/form/text-input.scss +2 -2
- package/dist/styles/components/form/textarea.scss +2 -2
- package/dist/styles/components/icon-tile.scss +18 -11
- package/dist/styles/components/index.scss +2 -1
- package/dist/styles/components/layout/grid.scss +1 -1
- package/dist/styles/components/link/inline.scss +10 -4
- package/dist/styles/components/link/standalone.scss +17 -80
- package/dist/styles/components/modal.scss +14 -10
- package/dist/styles/components/pagination.scss +104 -8
- package/dist/styles/components/reveal.scss +28 -0
- package/dist/styles/components/rich-tooltip.scss +53 -22
- package/dist/styles/components/tabs.scss +45 -8
- package/dist/styles/components/tag.scss +96 -34
- package/dist/styles/components/theme-context.scss +12 -0
- package/dist/styles/components/tooltip.scss +56 -26
- package/dist/styles/mixins/_button.scss +84 -130
- package/dist/styles/mixins/_carbonization.scss +43 -0
- package/dist/styles/mixins/_focus-ring.scss +2 -2
- package/dist/utils/hds-aria-described-by.js +1 -1
- package/dist/utils/hds-aria-described-by.js.map +1 -1
- package/dist/utils/hds-link-to-external.js +5 -0
- package/dist/utils/hds-link-to-external.js.map +1 -1
- package/package.json +67 -6
- package/declarations/modifiers/hds-code-editor/palettes/hds-dark-palette.d.ts +0 -21
- package/declarations/modifiers/hds-code-editor/themes/hds-dark-theme.d.ts +0 -6
- package/dist/_app_/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js +0 -1
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js +0 -108
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js.map +0 -1
- package/dist/modifiers/hds-code-editor/palettes/hds-dark-palette.js +0 -25
- package/dist/modifiers/hds-code-editor/palettes/hds-dark-palette.js.map +0 -1
- package/dist/modifiers/hds-code-editor/themes/hds-dark-theme.js.map +0 -1
- package/dist/styles/components/code-editor/theme.scss +0 -23
- package/dist/styles/mixins/_interactive-dark-theme.scss +0 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/button/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/button/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { eq } from 'ember-truth-helpers';\n// TEST\n\nimport {\n HdsButtonSizeValues,\n HdsButtonColorValues,\n HdsButtonIconPositionValues,\n} from './types.ts';\nimport HdsInteractive from '../interactive/index.gts';\nimport HdsIcon from '../icon/index.gts';\nimport type HdsThemingService from '../../../services/hds-theming.ts';\n\nimport type {\n HdsButtonSizes,\n HdsButtonColors,\n HdsButtonIconPositions,\n} from './types.ts';\nimport type { HdsInteractiveSignature } from '../interactive/index.gts';\nimport type { HdsIconSignature } from '../icon/index.gts';\n\nexport const SIZES: HdsButtonSizes[] = Object.values(HdsButtonSizeValues);\nexport const COLORS: HdsButtonColors[] = Object.values(HdsButtonColorValues);\nexport const ICON_POSITIONS: HdsButtonIconPositions[] = Object.values(\n HdsButtonIconPositionValues\n);\nexport const DEFAULT_SIZE = HdsButtonSizeValues.Medium;\nexport const DEFAULT_COLOR = HdsButtonColorValues.Primary;\nexport const DEFAULT_ICON_POSITION = HdsButtonIconPositionValues.Leading;\n\nexport interface HdsButtonSignature {\n Args: HdsInteractiveSignature['Args'] & {\n size?: HdsButtonSizes;\n color?: HdsButtonColors;\n text: string;\n icon?: HdsIconSignature['Args']['name'];\n iconPosition?: HdsButtonIconPositions;\n isIconOnly?: boolean;\n isFullWidth?: boolean;\n isInline?: boolean;\n };\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport default class HdsButton extends Component<HdsButtonSignature> {\n @service declare readonly hdsTheming: HdsThemingService;\n\n get text(): string {\n // TEST2\n const { text } = this.args;\n\n assert(\n '@text for \"Hds::Button\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n get size(): HdsButtonSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n get color(): HdsButtonColors {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Button\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n get icon(): HdsIconSignature['Args']['name'] | undefined {\n assert(\n `when the \"Hds::Button\" @color is \"tertiary\" an @icon is required`,\n !(this.color === 'tertiary' && !this.args.icon)\n );\n\n return this.args.icon ?? undefined;\n }\n\n get isIconOnly(): boolean {\n if (this.icon) {\n return this.args.isIconOnly ?? false;\n }\n return false;\n }\n\n get iconPosition(): HdsButtonIconPositions {\n const { iconPosition = DEFAULT_ICON_POSITION } = this.args;\n\n assert(\n `@iconPosition for \"Hds::Button\" must be one of the following: ${ICON_POSITIONS.join(\n ', '\n )}; received: ${iconPosition}`,\n ICON_POSITIONS.includes(iconPosition)\n );\n\n return iconPosition;\n }\n\n get iconSize(): HdsIconSignature['Args']['size'] {\n // the Carbon Button component has a 16px icon also at large size (the 24px icon resized to 16px would have a smaller stroke width, which is not desireable)\n if (this.args.size === 'large' && !this.hdsTheming.isCarbonThemeEnabled) {\n return '24';\n } else {\n return '16';\n }\n }\n\n get isFullWidth(): boolean {\n return this.args.isFullWidth ?? false;\n }\n\n get classNames(): string {\n const classes = ['hds-button'];\n\n // add a class based on the @color argument\n classes.push(`hds-button--color-${this.color}`);\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-button--width-full');\n }\n\n // add a class based on isIconOnly argument\n if (this.isIconOnly) {\n classes.push('hds-button--is-icon-only');\n }\n\n // add a class based on the @isInline argument\n if (this.args.isInline) {\n classes.push('hds-button--is-inline');\n }\n\n // add a class based on the @size argument\n classes.push(`hds-button--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n <template>\n <HdsInteractive\n class={{this.classNames}}\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n ...attributes\n aria-label={{if this.isIconOnly this.text null}}\n >\n {{#if this.isIconOnly}}\n {{#if this.icon}}\n <span class=\"hds-button__icon\">\n <HdsIcon\n @name={{this.icon}}\n @size={{this.iconSize}}\n @stretched={{true}}\n />\n </span>\n {{/if}}\n {{else}}\n {{#if this.icon}}\n {{#if (eq this.iconPosition \"leading\")}}\n <span class=\"hds-button__icon\">\n <HdsIcon\n @name={{this.icon}}\n @size={{this.iconSize}}\n @stretched={{true}}\n />\n </span>\n <span class=\"hds-button__text\">\n {{this.text}}\n </span>\n {{else}}\n <span class=\"hds-button__text\">\n {{this.text}}\n </span>\n <span class=\"hds-button__icon\">\n <HdsIcon\n @name={{this.icon}}\n @size={{this.iconSize}}\n @stretched={{true}}\n />\n </span>\n {{/if}}\n {{else}}\n <span class=\"hds-button__text\">\n {{this.text}}\n </span>\n {{/if}}\n {{/if}}\n </HdsInteractive>\n </template>\n}\n"],"names":["SIZES","Object","values","HdsButtonSizeValues","COLORS","HdsButtonColorValues","ICON_POSITIONS","HdsButtonIconPositionValues","DEFAULT_SIZE","Medium","DEFAULT_COLOR","Primary","DEFAULT_ICON_POSITION","Leading","HdsButton","Component","g","prototype","service","i","text","args","assert","undefined","size","join","includes","color","icon","isIconOnly","iconPosition","iconSize","hdsTheming","isCarbonThemeEnabled","isFullWidth","classNames","classes","push","isInline","setComponentTemplate","precompileTemplate","strictMode","scope","HdsInteractive","HdsIcon","eq"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsButtonSet = setComponentTemplate(precompileTemplate("<div class=\"hds-button-set\" ...attributes>\n {{yield}}\n</div>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/button-set/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/button-set/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface HdsButtonSetSignature {\n Blocks: { default: [] };\n Element: HTMLDivElement;\n}\nconst HdsButtonSet: TemplateOnlyComponent<HdsButtonSetSignature> = <template>\n <div class=\"hds-button-set\" ...attributes>\n {{yield}}\n </div>\n</template>;\n\nexport default HdsButtonSet;\n"],"names":["HdsButtonSet","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAOD,MAAMA,YAAoC,GAAAC,oBAAA,CAAyBC,kBAAA,CAAA,mEAAA,EAInE;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -7,7 +7,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Copyright IBM Corp. 2021,
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
const DEFAULT_LEVEL = HdsCardLevelValues.Base;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sources":["../../../../src/components/hds/card/container.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"container.js","sources":["../../../../src/components/hds/card/container.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { eq } from 'ember-truth-helpers';\nimport { element } from 'ember-element-helper';\n\nimport {\n HdsCardBackgroundValues,\n HdsCardLevelValues,\n HdsCardOverflowValues,\n HdsCardTagValues,\n} from './types.ts';\n\nimport type {\n HdsCardBackground,\n HdsCardLevel,\n HdsCardOverflow,\n HdsCardTag,\n} from './types.ts';\n\nexport const DEFAULT_LEVEL = HdsCardLevelValues.Base;\nexport const DEFAULT_BACKGROUND = HdsCardBackgroundValues.NeutralPrimary;\nexport const DEFAULT_OVERFLOW = HdsCardOverflowValues.Visible;\nexport const DEFAULT_TAG = HdsCardTagValues.Div;\nexport const LEVELS: HdsCardLevel[] = Object.values(HdsCardLevelValues);\nexport const BACKGROUNDS: HdsCardBackground[] = Object.values(\n HdsCardBackgroundValues\n);\nexport const OVERFLOWS: HdsCardOverflow[] = Object.values(\n HdsCardOverflowValues\n);\nexport const TAGS: HdsCardTag[] = Object.values(HdsCardTagValues);\n\nexport interface HdsCardContainerSignature {\n Args: {\n level?: HdsCardLevel;\n levelActive?: HdsCardLevel;\n levelHover?: HdsCardLevel;\n background?: HdsCardBackground;\n hasBorder?: boolean;\n overflow?: HdsCardOverflow;\n tag?: HdsCardTag;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsCardContainer extends Component<HdsCardContainerSignature> {\n // Sets the \"elevation\" level for the component\n get level(): HdsCardLevel {\n const { level = DEFAULT_LEVEL } = this.args;\n\n assert(\n `@level for \"Hds::Card::Container\" must be one of the following: ${LEVELS.join(\n ', '\n )}; received: ${level}`,\n LEVELS.includes(level)\n );\n\n return level;\n }\n\n // Sets the \"elevation\" level for the component on \":hover\" state\n get levelHover(): HdsCardLevel | undefined {\n const { levelHover } = this.args;\n\n if (levelHover) {\n assert(\n `@levelHover for \"Hds::Card::Container\" must be one of the following: ${LEVELS.join(\n ', '\n )}; received: ${levelHover}`,\n LEVELS.includes(levelHover)\n );\n }\n\n return levelHover;\n }\n\n // Sets the \"elevation\" level for the component on \":active\" state\n get levelActive(): HdsCardLevel | undefined {\n const { levelActive } = this.args;\n\n if (levelActive) {\n assert(\n `@levelActive for \"Hds::Card::Container\" must be one of the following: ${LEVELS.join(\n ', '\n )}; received: ${levelActive}`,\n LEVELS.includes(levelActive)\n );\n }\n\n return levelActive;\n }\n\n // Sets the background for the component\n get background(): HdsCardBackground {\n const { background = DEFAULT_BACKGROUND } = this.args;\n\n assert(\n `@background for \"Hds::Card::Container\" must be one of the following: ${BACKGROUNDS.join(\n ', '\n )}; received: ${background}`,\n BACKGROUNDS.includes(background)\n );\n\n return background;\n }\n\n // Sets the level for the card\n get overflow(): HdsCardOverflow {\n const { overflow = DEFAULT_OVERFLOW } = this.args;\n\n assert(\n `@overflow for \"Hds::Card::Container\" must be one of the following: ${OVERFLOWS.join(\n ', '\n )}; received: ${overflow}`,\n OVERFLOWS.includes(overflow)\n );\n\n return overflow;\n }\n\n get componentTag(): HdsCardTag {\n const { tag = DEFAULT_TAG } = this.args;\n\n assert(\n `@tag for \"Hds::Card::Container\" must be one of the following: ${TAGS.join(', ')}; received: ${tag}`,\n TAGS.includes(tag)\n );\n\n return tag;\n }\n\n // Get the class names to apply to the component.\n get classNames(): string {\n const classes = ['hds-card__container'];\n\n // add \"elevation\" classes based on the @level and @hasBorder arguments\n classes.push(\n `hds-card__container--level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.level}`\n );\n if (this.levelHover) {\n classes.push(\n `hds-card__container--hover-level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.levelHover}`\n );\n }\n if (this.levelActive) {\n classes.push(\n `hds-card__container--active-level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.levelActive}`\n );\n }\n\n // add a class based on the @background argument\n classes.push(`hds-card__container--background-${this.background}`);\n\n // add a class based on the @overflow argument\n classes.push(`hds-card__container--overflow-${this.overflow}`);\n\n return classes.join(' ');\n }\n\n <template>\n {{!\n Dynamically generating an HTML tag in Ember creates a dynamic component class (with the corresponding tagName), while rendering\n a plain HTML element requires less computing cycles for Ember (you will notice it doesn't add the ember-view class to it).\n }}\n {{#if (eq this.componentTag \"div\")}}\n <div class={{this.classNames}} ...attributes>{{yield}}</div>\n {{else}}\n {{#let (element this.componentTag) as |Tag|}}\n <Tag\n class={{this.classNames}}\n role={{if (eq this.componentTag \"li\") \"listitem\"}}\n ...attributes\n >{{yield}}</Tag>\n {{/let}}\n {{/if}}\n </template>\n}\n"],"names":["DEFAULT_LEVEL","HdsCardLevelValues","Base","DEFAULT_BACKGROUND","HdsCardBackgroundValues","NeutralPrimary","DEFAULT_OVERFLOW","HdsCardOverflowValues","Visible","DEFAULT_TAG","HdsCardTagValues","Div","LEVELS","Object","values","BACKGROUNDS","OVERFLOWS","TAGS","HdsCardContainer","Component","level","args","assert","join","includes","levelHover","levelActive","background","overflow","componentTag","tag","classNames","classes","push","hasBorder","setComponentTemplate","precompileTemplate","strictMode","scope","eq","element"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Copyright IBM Corp. 2021,
|
|
7
|
+
* Copyright IBM Corp. 2021, 2026
|
|
8
8
|
* SPDX-License-Identifier: MPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
class HdsCodeBlockCopyButton extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button.js","sources":["../../../../src/components/hds/code-block/copy-button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"copy-button.js","sources":["../../../../src/components/hds/code-block/copy-button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\n\nimport HdsCopyButton from '../copy/button/index.gts';\n\nimport type { HdsCopyButtonSignature } from '../copy/button/index.gts';\n\nexport interface HdsCodeBlockCopyButtonSignature {\n Args: {\n targetToCopy?: HdsCopyButtonSignature['Args']['targetToCopy'];\n text?: HdsCopyButtonSignature['Args']['text'];\n onCopy?: HdsCopyButtonSignature['Args']['onSuccess'];\n copySuccessMessageText?: HdsCopyButtonSignature['Args']['ariaMessageText'];\n };\n Blocks: {\n default: [];\n };\n Element: HdsCopyButtonSignature['Element'];\n}\n\nexport default class HdsCodeBlockCopyButton extends Component<HdsCodeBlockCopyButtonSignature> {\n get text(): HdsCopyButtonSignature['Args']['text'] {\n return this.args.text ? this.args.text : 'Copy';\n }\n\n <template>\n <HdsCopyButton\n class=\"hds-code-block__copy-button\"\n @text={{this.text}}\n @isIconOnly={{true}}\n @size=\"small\"\n @targetToCopy={{@targetToCopy}}\n @onSuccess={{@onCopy}}\n @ariaMessageText={{@copySuccessMessageText}}\n ...attributes\n />\n </template>\n}\n"],"names":["HdsCodeBlockCopyButton","Component","text","args","setComponentTemplate","precompileTemplate","strictMode","scope","HdsCopyButton"],"mappings":";;;;;AAAA;;;AAGC;AAqBc,MAAMA,+BAA+BC,SAAA,CAAU;EAC5D,IAAIC,IAAAA,GAA+C;AACjD,IAAA,OAAO,IAAI,CAACC,IAAI,CAACD,IAAI,GAAG,IAAI,CAACC,IAAI,CAACD,IAAI,GAAG,MAAA;AAC3C,EAAA;AAEA,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAAA,oOAAA,EAWA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright IBM Corp. 2021,
|
|
9
|
+
* Copyright IBM Corp. 2021, 2026
|
|
10
10
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
11
|
*/
|
|
12
12
|
class HdsCodeBlockDescription extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"description.js","sources":["../../../../src/components/hds/code-block/description.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"description.js","sources":["../../../../src/components/hds/code-block/description.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\n\nimport HdsTextBody from '../text/body.gts';\n\nimport type { HdsTextBodySignature } from '../text/body.gts';\n\ntype HdsCodeBlockDescriptionElement = HdsTextBodySignature['Element'];\nexport interface HdsCodeBlockDescriptionSignature {\n Args: {\n didInsertNode: (element: HdsCodeBlockDescriptionElement) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsCodeBlockDescriptionElement;\n}\n\nexport default class HdsCodeBlockDescription extends Component<HdsCodeBlockDescriptionSignature> {\n private _id = 'description-' + guidFor(this);\n\n private _setUpDescription = modifier(\n (\n element: HTMLElement,\n [insertCallbackFunction]: [(element: HTMLElement) => void]\n ) => {\n if (typeof insertCallbackFunction === 'function') {\n insertCallbackFunction(element);\n }\n }\n );\n\n <template>\n <HdsTextBody\n id={{this._id}}\n @tag=\"p\"\n @size=\"100\"\n class=\"hds-code-block__description\"\n ...attributes\n {{this._setUpDescription @didInsertNode}}\n >\n {{yield}}\n </HdsTextBody>\n </template>\n}\n"],"names":["HdsCodeBlockDescription","Component","_id","guidFor","_setUpDescription","modifier","element","insertCallbackFunction","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTextBody"],"mappings":";;;;;;;AAAA;;;AAGC;AAqBc,MAAMA,gCAAgCC,SAAA,CAAU;AACrDC,EAAAA,GAAA,GAAM,cAAA,GAAiBC,OAAA,CAAQ,IAAI,CAAA;EAEnCC,iBAAA,GAAoBC,QAAA,CAC1B,CACEC,OAAS,EACT,CAACC,sBAAA,CAAyD,KAAA;AAE1D,IAAA,IAAI,OAAOA,2BAA2B,UAAA,EAAY;MAChDA,sBAAA,CAAuBD,OAAA,CAAA;AACzB,IAAA;AACF,EAAA,CAAA,CAAA;AAGF,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAAA,mLAAA,EAWA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -31,7 +31,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
31
31
|
import { g, i } from 'decorator-transforms/runtime';
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* Copyright IBM Corp. 2021,
|
|
34
|
+
* Copyright IBM Corp. 2021, 2026
|
|
35
35
|
* SPDX-License-Identifier: MPL-2.0
|
|
36
36
|
*/
|
|
37
37
|
const LANGUAGES = Object.values(HdsCodeBlockLanguageValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/code-block/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport Prism from 'prismjs';\nimport style from 'ember-style-modifier';\n\nimport type { SafeString } from '@ember/template';\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { HdsCodeBlockLanguageValues } from './types.ts';\nimport HdsCodeBlockCopyButton from './copy-button.gts';\nimport HdsButton from '../button/index.gts';\nimport HdsCodeBlockTitle from './title.gts';\nimport HdsCodeBlockDescription from './description.gts';\n\nimport type { HdsCodeBlockTitleSignature } from './title.gts';\nimport type { HdsCodeBlockDescriptionSignature } from './description.gts';\nimport type { HdsCodeBlockLanguages } from './types.ts';\nimport type { HdsCopyButtonSignature } from '../copy/button/index.gts';\n\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs/plugins/line-highlight/prism-line-highlight';\n\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-go';\nimport 'prismjs/components/prism-hcl';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/components/prism-log';\nimport 'prismjs/components/prism-ruby';\nimport 'prismjs/components/prism-shell-session';\nimport 'prismjs/components/prism-yaml';\n\n// These imports are required to overcome a global variable clash in Helios website\n// where language import are overriden by the Prism instance in `CodeBlock`\n// Note that `prism-handlebars` is dependant on `prism-markup-templating`\nimport 'prismjs/components/prism-markup-templating';\nimport 'prismjs/components/prism-handlebars';\n\nexport const LANGUAGES: HdsCodeBlockLanguages[] = Object.values(\n HdsCodeBlockLanguageValues\n);\n\nexport interface HdsCodeBlockSignature {\n Args: {\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n hasCopyButton?: boolean;\n hasLineNumbers?: boolean;\n hasLineWrapping?: boolean;\n highlightLines?: string;\n lineNumberStart?: number;\n isStandalone?: boolean;\n language?: HdsCodeBlockLanguages;\n maxHeight?: string;\n value: string;\n copyButtonText?: HdsCopyButtonSignature['Args']['text'];\n onCopy?: HdsCopyButtonSignature['Args']['onSuccess'];\n copySuccessMessageText?: HdsCopyButtonSignature['Args']['ariaMessageText'];\n };\n Blocks: {\n default: [\n {\n Title?: WithBoundArgs<typeof HdsCodeBlockTitle, 'didInsertNode'>;\n Description?: WithBoundArgs<\n typeof HdsCodeBlockDescription,\n 'didInsertNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsCodeBlock extends Component<HdsCodeBlockSignature> {\n @tracked private _prismCode: SafeString = htmlSafe('');\n @tracked private _isExpanded: boolean = false;\n @tracked private _codeContentHeight: number = 0;\n @tracked private _codeContainerHeight: number = 0;\n @tracked private _titleId: string | undefined;\n @tracked private _descriptionId: string | undefined;\n\n // Generates a unique ID for the code content\n private _preCodeId = 'pre-code-' + guidFor(this);\n private _preCodeElement!: HTMLPreElement;\n private _observer!: ResizeObserver;\n\n // If a code block is hidden from view, and made visible after load, the Prism code needs to be re-run\n private _setUpCodeObserver = modifier((element: HTMLElement) => {\n this._preCodeElement = element.querySelector(\n '.hds-code-block__code'\n ) as HTMLPreElement;\n this._observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.contentBoxSize) {\n this._updateCodeHeights();\n this._updatePrismPlugins();\n }\n });\n });\n this._observer.observe(element);\n\n return () => {\n this._observer.disconnect();\n };\n });\n\n private _setUpCodeBlockCode = modifier((element: HTMLElement) => {\n this._isExpanded = false; // reset expanded state on updates\n this.setPrismCode(element);\n return () => {};\n });\n\n get ariaLabelledBy(): string | undefined {\n if (this.args.ariaLabel !== undefined) {\n return;\n }\n\n return this.args.ariaLabelledBy ?? this._titleId;\n }\n\n get ariaDescribedBy(): string | undefined {\n return this.args.ariaDescribedBy ?? this._descriptionId;\n }\n\n // code text content for the CodeBlock\n get code(): string {\n const code = this.args.value;\n\n assert(\n '@code for \"Hds::CodeBlock\" must have a valid value',\n code !== undefined\n );\n\n if (Prism?.plugins?.['NormalizeWhitespace']) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n return Prism.plugins['NormalizeWhitespace'].normalize(code);\n }\n\n return code;\n }\n\n get maxHeight(): string | undefined {\n return this._isExpanded ? 'none' : this.args.maxHeight;\n }\n\n // Shows overlay footer if maxHeight is set and the pre tag content height is greater than the pre tag height\n get showFooter(): boolean {\n if (this.args.maxHeight) {\n return this._codeContentHeight > this._codeContainerHeight;\n }\n return false;\n }\n\n // Name of coding language used within CodeBlock for syntax highlighting\n get language(): HdsCodeBlockLanguages | undefined {\n return this.args.language ?? undefined;\n }\n\n // Displays line numbers if true\n get hasLineNumbers(): boolean {\n return this.args.hasLineNumbers ?? true;\n }\n\n // Make CodeBlock container corners appear rounded (the standalone variation)\n get isStandalone(): boolean {\n return this.args.isStandalone ?? true;\n }\n\n // Make text content wrap to multiple lines\n get hasLineWrapping(): boolean {\n return this.args.hasLineWrapping ?? false;\n }\n\n get copyButtonText(): HdsCopyButtonSignature['Args']['text'] {\n return this.args.copyButtonText ? this.args.copyButtonText : 'Copy';\n }\n\n registerTitleElement = (\n element: HdsCodeBlockTitleSignature['Element']\n ): void => {\n this._titleId = element.id;\n };\n\n registerDescriptionElement = (\n element: HdsCodeBlockDescriptionSignature['Element']\n ): void => {\n this._descriptionId = element.id;\n };\n\n setPrismCode = (element: HTMLElement): void => {\n const code = this.code;\n const language = this.language;\n const grammar = language ? Prism.languages[language] : undefined;\n\n if (code) {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n if (language && grammar) {\n this._prismCode = htmlSafe(Prism.highlight(code, grammar, language));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this._prismCode = htmlSafe(Prism.util.encode(code).toString());\n }\n\n // Existing line numbers must be removed in order to be updated correctly\n const lineNumbers = element.querySelector(\n '.line-numbers-rows'\n ) as HTMLElement;\n if (lineNumbers) {\n element.removeChild(lineNumbers);\n }\n\n if (this.args.highlightLines) {\n this._prismCode = this._addHighlightSrOnlyText(\n this._prismCode.toString()\n );\n }\n\n // Force prism-line-numbers plugin initialization, required for Prism.highlight usage\n // See https://github.com/PrismJS/prism/issues/1234\n Prism.hooks.run('complete', {\n code,\n element,\n });\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._updateCodeHeights();\n // we need to delay re-evaluating the context for prism plugins for as much as possible, and `afterRender` is the 'latest' we can use in the component lifecycle\n this._updatePrismPlugins();\n });\n });\n }\n };\n\n private _updateCodeHeights = (): void => {\n if (!this._isExpanded) {\n // Get the actual height & the content height of the preCodeElement\n this._codeContentHeight = this._preCodeElement?.scrollHeight ?? 0;\n this._codeContainerHeight = this._preCodeElement?.clientHeight ?? 0;\n }\n };\n\n private _updatePrismPlugins = (): void => {\n if (this.hasLineNumbers && Prism?.plugins?.['lineNumbers']) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n Prism.plugins['lineNumbers'].resize(this._preCodeElement);\n }\n\n // Force prism-line-highlight plugin initialization\n // Context: https://github.com/hashicorp/design-system/pull/1749#discussion_r1374288785\n if (this.args.highlightLines) {\n // we piggy-back on the plugin's `resize` event listener to trigger a new call of the `highlightLines` function: https://github.com/PrismJS/prism/blob/master/plugins/line-highlight/prism-line-highlight.js#L337\n if (window) window.dispatchEvent(new Event('resize'));\n }\n };\n\n toggleExpanded = (): void => {\n this._isExpanded = !this._isExpanded;\n };\n\n // Logic for determining where line highlighting starts and ends taken from Prism.js plugin source code\n // Context: https://github.com/PrismJS/prism/blob/19f8de66b0f3a79aedbbf096081a4060fc0e80af/src/plugins/line-highlight/prism-line-highlight.ts#L82\n private _addHighlightSrOnlyText = (code: string): SafeString => {\n const NEW_LINE_EXP = /\\n(?!$)/g;\n const lines = code.split(NEW_LINE_EXP);\n const numLines = lines.length;\n const lineOffset = this.args.lineNumberStart\n ? this.args.lineNumberStart\n : 0;\n\n const highlightStart = '<span class=\"sr-only\">highlight start</span>';\n const highlightEnd = '<span class=\"sr-only\">highlight end</span>';\n\n const ranges = this.args.highlightLines\n ?.replace(/\\s+/g, '')\n .split(',')\n .filter(Boolean);\n\n if (ranges && ranges.length > 0) {\n const highlightedLines = [] as { start: number; end: number }[];\n\n ranges.forEach((currentRange) => {\n const range = currentRange.split('-');\n const start = +range[0]! - lineOffset;\n let end = +range[1]! || start - lineOffset;\n end = Math.min(numLines, end);\n highlightedLines.push({\n start: start,\n end: end,\n });\n });\n\n highlightedLines.forEach((line) => {\n lines[line.start - 1] = highlightStart + lines[line.start - 1];\n lines[line.end - 1] = lines[line.end - 1] + highlightEnd;\n });\n\n return htmlSafe(lines.join('\\n'));\n } else {\n return htmlSafe(code);\n }\n };\n\n get classNames(): string {\n // Currently there is only one theme so the class name is hard-coded.\n // In the future, additional themes such as a \"light\" theme could be added.\n const classes = ['hds-code-block', 'hds-code-block--theme-dark'];\n\n if (this.language) {\n classes.push(`language-${this.language}`);\n }\n\n if (this.isStandalone === true) {\n classes.push('hds-code-block--is-standalone');\n }\n\n if (this.hasLineWrapping === true) {\n classes.push('hds-code-block--has-line-wrapping');\n }\n\n // Note: Prism.js is using the specific class name \"line-numbers\" to determine implementation of line numbers in the UI\n if (this.hasLineNumbers) {\n classes.push('line-numbers');\n }\n\n if (this.showFooter) {\n classes.push('hds-code-block--has-overlay-footer');\n }\n\n if (this._isExpanded) {\n classes.push('hds-code-block--is-expanded');\n }\n\n return classes.join(' ');\n }\n\n <template>\n <div class={{this.classNames}} ...attributes {{this._setUpCodeObserver}}>\n <div class=\"hds-code-block__header\">\n {{~yield\n (hash\n Title=(component\n HdsCodeBlockTitle didInsertNode=this.registerTitleElement\n )\n )\n ~}}\n {{~yield\n (hash\n Description=(component\n HdsCodeBlockDescription\n didInsertNode=this.registerDescriptionElement\n )\n )\n ~}}\n </div>\n <div class=\"hds-code-block__body\">\n {{! content within pre tag is whitespace-sensitive; do not add new lines! }}\n <pre\n class=\"hds-code-block__code\"\n {{style maxHeight=this.maxHeight}}\n data-line={{@highlightLines}}\n data-start={{@lineNumberStart}}\n id={{this._preCodeId}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{this.ariaLabelledBy}}\n aria-describedby={{this.ariaDescribedBy}}\n tabindex=\"0\"\n ><code {{this._setUpCodeBlockCode}}>\n {{~this._prismCode~}}\n </code></pre>\n\n {{#if @hasCopyButton}}\n <HdsCodeBlockCopyButton\n @targetToCopy=\"#{{this._preCodeId}}\"\n aria-describedby={{this._preCodeId}}\n @text={{this.copyButtonText}}\n @onCopy={{@onCopy}}\n @copySuccessMessageText={{@copySuccessMessageText}}\n />\n {{/if}}\n </div>\n {{#if this.showFooter}}\n <div class=\"hds-code-block__overlay-footer\">\n <HdsButton\n class=\"hds-code-block__height-toggle-button\"\n @text={{if this._isExpanded \"Show less code\" \"Show more code\"}}\n @color=\"secondary\"\n @icon={{if this._isExpanded \"unfold-close\" \"unfold-open\"}}\n @size=\"small\"\n {{on \"click\" this.toggleExpanded}}\n />\n </div>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["LANGUAGES","Object","values","HdsCodeBlockLanguageValues","HdsCodeBlock","Component","g","prototype","tracked","htmlSafe","i","_preCodeId","guidFor","_preCodeElement","_observer","_setUpCodeObserver","modifier","element","querySelector","ResizeObserver","entries","forEach","entry","contentBoxSize","_updateCodeHeights","_updatePrismPlugins","observe","disconnect","_setUpCodeBlockCode","_isExpanded","setPrismCode","ariaLabelledBy","args","ariaLabel","undefined","_titleId","ariaDescribedBy","_descriptionId","code","value","assert","Prism","plugins","normalize","maxHeight","showFooter","_codeContentHeight","_codeContainerHeight","language","hasLineNumbers","isStandalone","hasLineWrapping","copyButtonText","registerTitleElement","id","registerDescriptionElement","grammar","languages","next","_prismCode","highlight","util","encode","toString","lineNumbers","removeChild","highlightLines","_addHighlightSrOnlyText","hooks","run","schedule","scrollHeight","clientHeight","resize","window","dispatchEvent","Event","toggleExpanded","NEW_LINE_EXP","lines","split","numLines","length","lineOffset","lineNumberStart","highlightStart","highlightEnd","ranges","replace","filter","Boolean","highlightedLines","currentRange","range","start","end","Math","min","push","line","join","classNames","classes","setComponentTemplate","precompileTemplate","strictMode","scope","hash","HdsCodeBlockTitle","HdsCodeBlockDescription","style","HdsCodeBlockCopyButton","HdsButton","on"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/code-block/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport Prism from 'prismjs';\nimport style from 'ember-style-modifier';\n\nimport type { SafeString } from '@ember/template';\nimport type { WithBoundArgs } from '@glint/template';\n\nimport { HdsCodeBlockLanguageValues } from './types.ts';\nimport HdsCodeBlockCopyButton from './copy-button.gts';\nimport HdsButton from '../button/index.gts';\nimport HdsCodeBlockTitle from './title.gts';\nimport HdsCodeBlockDescription from './description.gts';\n\nimport type { HdsCodeBlockTitleSignature } from './title.gts';\nimport type { HdsCodeBlockDescriptionSignature } from './description.gts';\nimport type { HdsCodeBlockLanguages } from './types.ts';\nimport type { HdsCopyButtonSignature } from '../copy/button/index.gts';\n\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs/plugins/line-highlight/prism-line-highlight';\n\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-go';\nimport 'prismjs/components/prism-hcl';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/components/prism-log';\nimport 'prismjs/components/prism-ruby';\nimport 'prismjs/components/prism-shell-session';\nimport 'prismjs/components/prism-yaml';\n\n// These imports are required to overcome a global variable clash in Helios website\n// where language import are overriden by the Prism instance in `CodeBlock`\n// Note that `prism-handlebars` is dependant on `prism-markup-templating`\nimport 'prismjs/components/prism-markup-templating';\nimport 'prismjs/components/prism-handlebars';\n\nexport const LANGUAGES: HdsCodeBlockLanguages[] = Object.values(\n HdsCodeBlockLanguageValues\n);\n\nexport interface HdsCodeBlockSignature {\n Args: {\n ariaLabel?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n hasCopyButton?: boolean;\n hasLineNumbers?: boolean;\n hasLineWrapping?: boolean;\n highlightLines?: string;\n lineNumberStart?: number;\n isStandalone?: boolean;\n language?: HdsCodeBlockLanguages;\n maxHeight?: string;\n value: string;\n copyButtonText?: HdsCopyButtonSignature['Args']['text'];\n onCopy?: HdsCopyButtonSignature['Args']['onSuccess'];\n copySuccessMessageText?: HdsCopyButtonSignature['Args']['ariaMessageText'];\n };\n Blocks: {\n default: [\n {\n Title?: WithBoundArgs<typeof HdsCodeBlockTitle, 'didInsertNode'>;\n Description?: WithBoundArgs<\n typeof HdsCodeBlockDescription,\n 'didInsertNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsCodeBlock extends Component<HdsCodeBlockSignature> {\n @tracked private _prismCode: SafeString = htmlSafe('');\n @tracked private _isExpanded: boolean = false;\n @tracked private _codeContentHeight: number = 0;\n @tracked private _codeContainerHeight: number = 0;\n @tracked private _titleId: string | undefined;\n @tracked private _descriptionId: string | undefined;\n\n // Generates a unique ID for the code content\n private _preCodeId = 'pre-code-' + guidFor(this);\n private _preCodeElement!: HTMLPreElement;\n private _observer!: ResizeObserver;\n\n // If a code block is hidden from view, and made visible after load, the Prism code needs to be re-run\n private _setUpCodeObserver = modifier((element: HTMLElement) => {\n this._preCodeElement = element.querySelector(\n '.hds-code-block__code'\n ) as HTMLPreElement;\n this._observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.contentBoxSize) {\n this._updateCodeHeights();\n this._updatePrismPlugins();\n }\n });\n });\n this._observer.observe(element);\n\n return () => {\n this._observer.disconnect();\n };\n });\n\n private _setUpCodeBlockCode = modifier((element: HTMLElement) => {\n this._isExpanded = false; // reset expanded state on updates\n this.setPrismCode(element);\n return () => {};\n });\n\n get ariaLabelledBy(): string | undefined {\n if (this.args.ariaLabel !== undefined) {\n return;\n }\n\n return this.args.ariaLabelledBy ?? this._titleId;\n }\n\n get ariaDescribedBy(): string | undefined {\n return this.args.ariaDescribedBy ?? this._descriptionId;\n }\n\n // code text content for the CodeBlock\n get code(): string {\n const code = this.args.value;\n\n assert(\n '@code for \"Hds::CodeBlock\" must have a valid value',\n code !== undefined\n );\n\n if (Prism?.plugins?.['NormalizeWhitespace']) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n return Prism.plugins['NormalizeWhitespace'].normalize(code);\n }\n\n return code;\n }\n\n get maxHeight(): string | undefined {\n return this._isExpanded ? 'none' : this.args.maxHeight;\n }\n\n // Shows overlay footer if maxHeight is set and the pre tag content height is greater than the pre tag height\n get showFooter(): boolean {\n if (this.args.maxHeight) {\n return this._codeContentHeight > this._codeContainerHeight;\n }\n return false;\n }\n\n // Name of coding language used within CodeBlock for syntax highlighting\n get language(): HdsCodeBlockLanguages | undefined {\n return this.args.language ?? undefined;\n }\n\n // Displays line numbers if true\n get hasLineNumbers(): boolean {\n return this.args.hasLineNumbers ?? true;\n }\n\n // Make CodeBlock container corners appear rounded (the standalone variation)\n get isStandalone(): boolean {\n return this.args.isStandalone ?? true;\n }\n\n // Make text content wrap to multiple lines\n get hasLineWrapping(): boolean {\n return this.args.hasLineWrapping ?? false;\n }\n\n get copyButtonText(): HdsCopyButtonSignature['Args']['text'] {\n return this.args.copyButtonText ? this.args.copyButtonText : 'Copy';\n }\n\n registerTitleElement = (\n element: HdsCodeBlockTitleSignature['Element']\n ): void => {\n this._titleId = element.id;\n };\n\n registerDescriptionElement = (\n element: HdsCodeBlockDescriptionSignature['Element']\n ): void => {\n this._descriptionId = element.id;\n };\n\n setPrismCode = (element: HTMLElement): void => {\n const code = this.code;\n const language = this.language;\n const grammar = language ? Prism.languages[language] : undefined;\n\n if (code) {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n if (language && grammar) {\n this._prismCode = htmlSafe(Prism.highlight(code, grammar, language));\n } else {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this._prismCode = htmlSafe(Prism.util.encode(code).toString());\n }\n\n // Existing line numbers must be removed in order to be updated correctly\n const lineNumbers = element.querySelector(\n '.line-numbers-rows'\n ) as HTMLElement;\n if (lineNumbers) {\n element.removeChild(lineNumbers);\n }\n\n if (this.args.highlightLines) {\n this._prismCode = this._addHighlightSrOnlyText(\n this._prismCode.toString()\n );\n }\n\n // Force prism-line-numbers plugin initialization, required for Prism.highlight usage\n // See https://github.com/PrismJS/prism/issues/1234\n Prism.hooks.run('complete', {\n code,\n element,\n });\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this._updateCodeHeights();\n // we need to delay re-evaluating the context for prism plugins for as much as possible, and `afterRender` is the 'latest' we can use in the component lifecycle\n this._updatePrismPlugins();\n });\n });\n }\n };\n\n private _updateCodeHeights = (): void => {\n if (!this._isExpanded) {\n // Get the actual height & the content height of the preCodeElement\n this._codeContentHeight = this._preCodeElement?.scrollHeight ?? 0;\n this._codeContainerHeight = this._preCodeElement?.clientHeight ?? 0;\n }\n };\n\n private _updatePrismPlugins = (): void => {\n if (this.hasLineNumbers && Prism?.plugins?.['lineNumbers']) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n Prism.plugins['lineNumbers'].resize(this._preCodeElement);\n }\n\n // Force prism-line-highlight plugin initialization\n // Context: https://github.com/hashicorp/design-system/pull/1749#discussion_r1374288785\n if (this.args.highlightLines) {\n // we piggy-back on the plugin's `resize` event listener to trigger a new call of the `highlightLines` function: https://github.com/PrismJS/prism/blob/master/plugins/line-highlight/prism-line-highlight.js#L337\n if (window) window.dispatchEvent(new Event('resize'));\n }\n };\n\n toggleExpanded = (): void => {\n this._isExpanded = !this._isExpanded;\n };\n\n // Logic for determining where line highlighting starts and ends taken from Prism.js plugin source code\n // Context: https://github.com/PrismJS/prism/blob/19f8de66b0f3a79aedbbf096081a4060fc0e80af/src/plugins/line-highlight/prism-line-highlight.ts#L82\n private _addHighlightSrOnlyText = (code: string): SafeString => {\n const NEW_LINE_EXP = /\\n(?!$)/g;\n const lines = code.split(NEW_LINE_EXP);\n const numLines = lines.length;\n const lineOffset = this.args.lineNumberStart\n ? this.args.lineNumberStart\n : 0;\n\n const highlightStart = '<span class=\"sr-only\">highlight start</span>';\n const highlightEnd = '<span class=\"sr-only\">highlight end</span>';\n\n const ranges = this.args.highlightLines\n ?.replace(/\\s+/g, '')\n .split(',')\n .filter(Boolean);\n\n if (ranges && ranges.length > 0) {\n const highlightedLines = [] as { start: number; end: number }[];\n\n ranges.forEach((currentRange) => {\n const range = currentRange.split('-');\n const start = +range[0]! - lineOffset;\n let end = +range[1]! || start - lineOffset;\n end = Math.min(numLines, end);\n highlightedLines.push({\n start: start,\n end: end,\n });\n });\n\n highlightedLines.forEach((line) => {\n lines[line.start - 1] = highlightStart + lines[line.start - 1];\n lines[line.end - 1] = lines[line.end - 1] + highlightEnd;\n });\n\n return htmlSafe(lines.join('\\n'));\n } else {\n return htmlSafe(code);\n }\n };\n\n get classNames(): string {\n // Currently there is only one theme so the class name is hard-coded.\n // In the future, additional themes such as a \"light\" theme could be added.\n const classes = ['hds-code-block', 'hds-code-block--theme-dark'];\n\n if (this.language) {\n classes.push(`language-${this.language}`);\n }\n\n if (this.isStandalone === true) {\n classes.push('hds-code-block--is-standalone');\n }\n\n if (this.hasLineWrapping === true) {\n classes.push('hds-code-block--has-line-wrapping');\n }\n\n // Note: Prism.js is using the specific class name \"line-numbers\" to determine implementation of line numbers in the UI\n if (this.hasLineNumbers) {\n classes.push('line-numbers');\n }\n\n if (this.showFooter) {\n classes.push('hds-code-block--has-overlay-footer');\n }\n\n if (this._isExpanded) {\n classes.push('hds-code-block--is-expanded');\n }\n\n return classes.join(' ');\n }\n\n <template>\n <div class={{this.classNames}} ...attributes {{this._setUpCodeObserver}}>\n <div class=\"hds-code-block__header\">\n {{~yield\n (hash\n Title=(component\n HdsCodeBlockTitle didInsertNode=this.registerTitleElement\n )\n )\n ~}}\n {{~yield\n (hash\n Description=(component\n HdsCodeBlockDescription\n didInsertNode=this.registerDescriptionElement\n )\n )\n ~}}\n </div>\n <div class=\"hds-code-block__body\">\n {{! content within pre tag is whitespace-sensitive; do not add new lines! }}\n <pre\n class=\"hds-code-block__code\"\n {{style maxHeight=this.maxHeight}}\n data-line={{@highlightLines}}\n data-start={{@lineNumberStart}}\n id={{this._preCodeId}}\n aria-label={{@ariaLabel}}\n aria-labelledby={{this.ariaLabelledBy}}\n aria-describedby={{this.ariaDescribedBy}}\n tabindex=\"0\"\n ><code {{this._setUpCodeBlockCode}}>\n {{~this._prismCode~}}\n </code></pre>\n\n {{#if @hasCopyButton}}\n <HdsCodeBlockCopyButton\n @targetToCopy=\"#{{this._preCodeId}}\"\n aria-describedby={{this._preCodeId}}\n @text={{this.copyButtonText}}\n @onCopy={{@onCopy}}\n @copySuccessMessageText={{@copySuccessMessageText}}\n />\n {{/if}}\n </div>\n {{#if this.showFooter}}\n <div class=\"hds-code-block__overlay-footer\">\n <HdsButton\n class=\"hds-code-block__height-toggle-button\"\n @text={{if this._isExpanded \"Show less code\" \"Show more code\"}}\n @color=\"secondary\"\n @icon={{if this._isExpanded \"unfold-close\" \"unfold-open\"}}\n @size=\"small\"\n {{on \"click\" this.toggleExpanded}}\n />\n </div>\n {{/if}}\n </div>\n </template>\n}\n"],"names":["LANGUAGES","Object","values","HdsCodeBlockLanguageValues","HdsCodeBlock","Component","g","prototype","tracked","htmlSafe","i","_preCodeId","guidFor","_preCodeElement","_observer","_setUpCodeObserver","modifier","element","querySelector","ResizeObserver","entries","forEach","entry","contentBoxSize","_updateCodeHeights","_updatePrismPlugins","observe","disconnect","_setUpCodeBlockCode","_isExpanded","setPrismCode","ariaLabelledBy","args","ariaLabel","undefined","_titleId","ariaDescribedBy","_descriptionId","code","value","assert","Prism","plugins","normalize","maxHeight","showFooter","_codeContentHeight","_codeContainerHeight","language","hasLineNumbers","isStandalone","hasLineWrapping","copyButtonText","registerTitleElement","id","registerDescriptionElement","grammar","languages","next","_prismCode","highlight","util","encode","toString","lineNumbers","removeChild","highlightLines","_addHighlightSrOnlyText","hooks","run","schedule","scrollHeight","clientHeight","resize","window","dispatchEvent","Event","toggleExpanded","NEW_LINE_EXP","lines","split","numLines","length","lineOffset","lineNumberStart","highlightStart","highlightEnd","ranges","replace","filter","Boolean","highlightedLines","currentRange","range","start","end","Math","min","push","line","join","classNames","classes","setComponentTemplate","precompileTemplate","strictMode","scope","hash","HdsCodeBlockTitle","HdsCodeBlockDescription","style","HdsCodeBlockCopyButton","HdsButton","on"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Copyright IBM Corp. 2021,
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
class HdsCodeBlockTitle extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title.js","sources":["../../../../src/components/hds/code-block/title.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"title.js","sources":["../../../../src/components/hds/code-block/title.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\n\nimport { HdsCodeBlockTitleTagValues } from './types.ts';\nimport HdsTextBody from '../text/body.gts';\n\nimport type { HdsCodeBlockTitleTags } from './types.ts';\nimport type { HdsTextBodySignature } from '../text/body.gts';\n\ntype HdsCodeBlockTitleElement = HdsTextBodySignature['Element'];\nexport interface HdsCodeBlockTitleSignature {\n Args: {\n tag?: HdsCodeBlockTitleTags;\n didInsertNode: (element: HdsCodeBlockTitleElement) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsTextBodySignature['Element'];\n}\n\nexport default class HdsCodeBlockTitle extends Component<HdsCodeBlockTitleSignature> {\n private _id = 'title-' + guidFor(this);\n\n private _setUpTitle = modifier(\n (\n element: HTMLElement,\n [insertCallbackFunction]: [(element: HTMLElement) => void]\n ) => {\n if (typeof insertCallbackFunction === 'function') {\n insertCallbackFunction(element);\n }\n }\n );\n\n get componentTag(): HdsCodeBlockTitleTags {\n return this.args.tag ?? HdsCodeBlockTitleTagValues.P;\n }\n\n <template>\n <HdsTextBody\n id={{this._id}}\n @size=\"200\"\n @tag={{this.componentTag}}\n @weight=\"semibold\"\n class=\"hds-code-block__title\"\n ...attributes\n {{this._setUpTitle @didInsertNode}}\n >\n {{yield}}\n </HdsTextBody>\n </template>\n}\n"],"names":["HdsCodeBlockTitle","Component","_id","guidFor","_setUpTitle","modifier","element","insertCallbackFunction","componentTag","args","tag","HdsCodeBlockTitleTagValues","P","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTextBody"],"mappings":";;;;;;;;AAAA;;;AAGC;AAuBc,MAAMA,0BAA0BC,SAAA,CAAU;AAC/CC,EAAAA,GAAA,GAAM,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE7BC,WAAA,GAAcC,QAAA,CACpB,CACEC,OAAS,EACT,CAACC,sBAAA,CAAyD,KAAA;AAE1D,IAAA,IAAI,OAAOA,2BAA2B,UAAA,EAAY;MAChDA,sBAAA,CAAuBD,OAAA,CAAA;AACzB,IAAA;AACF,EAAA,CAAA,CAAA;EAGF,IAAIE,eAAsC;IACxC,OAAO,IAAI,CAACC,IAAI,CAACC,GAAG,IAAIC,2BAA2BC,CAAC;AACtD,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,4MAAA,EAYA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -5,7 +5,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Copyright IBM Corp. 2021,
|
|
8
|
+
* Copyright IBM Corp. 2021, 2026
|
|
9
9
|
* SPDX-License-Identifier: MPL-2.0
|
|
10
10
|
*/
|
|
11
11
|
class HdsCodeEditorDescription extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"description.js","sources":["../../../../src/components/hds/code-editor/description.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"description.js","sources":["../../../../src/components/hds/code-editor/description.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport HdsTextBody from '../text/body.gts';\n\nimport type { HdsTextBodySignature } from '../text/body.gts';\n\ntype HdsCodeEditorDescriptionElement = HdsTextBodySignature['Element'];\nexport interface HdsCodeEditorDescriptionSignature {\n Args: {\n editorId: string;\n onInsert: (element: HdsCodeEditorDescriptionElement) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsCodeEditorDescriptionElement;\n}\n\nexport default class HdsCodeEditorDescription extends Component<HdsCodeEditorDescriptionSignature> {\n private _id = `${this.args.editorId}-description`;\n\n <template>\n <HdsTextBody\n id={{this._id}}\n class=\"hds-code-editor__description\"\n @tag=\"p\"\n @size=\"100\"\n {{didInsert @onInsert}}\n ...attributes\n >\n {{yield}}\n </HdsTextBody>\n </template>\n}\n"],"names":["HdsCodeEditorDescription","Component","_id","args","editorId","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTextBody","didInsert"],"mappings":";;;;;;AAAA;;;AAGC;AAsBc,MAAMA,iCAAiCC,SAAA,CAAU;AACtDC,EAAAA,GAAA,GAAM,CAAA,EAAG,IAAI,CAACC,IAAI,CAACC,QAAQ,CAAA,YAAA,CAAc;AAEjD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,kKAAA,EAWA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Copyright IBM Corp. 2021,
|
|
9
|
+
* Copyright IBM Corp. 2021, 2026
|
|
10
10
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
11
|
*/
|
|
12
12
|
class HdsCodeEditorFullScreenButton extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full-screen-button.js","sources":["../../../../src/components/hds/code-editor/full-screen-button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"full-screen-button.js","sources":["../../../../src/components/hds/code-editor/full-screen-button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\n\nimport HdsButton from '../button/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type { HdsButtonSignature } from '../button/index.gts';\n\nexport interface HdsCodeEditorFullScreenButtonSignature {\n Args: {\n isFullScreen: boolean;\n onToggleFullScreen: () => void;\n };\n Element: HdsButtonSignature['Element'];\n}\n\nexport default class HdsCodeEditorFullScreenButton extends Component<HdsCodeEditorFullScreenButtonSignature> {\n get state(): 'minimize' | 'maximize' {\n return this.args.isFullScreen ? 'minimize' : 'maximize';\n }\n\n get className(): string {\n const classes = [\n 'hds-code-editor__full-screen-button',\n 'hds-code-editor__button',\n ];\n\n const stateClass = `hds-code-editor__full-screen-button--${this.state}`;\n\n classes.push(stateClass);\n\n return classes.join(' ');\n }\n\n <template>\n <HdsButton\n class={{this.className}}\n aria-pressed={{@isFullScreen}}\n @isIconOnly={{true}}\n @color=\"secondary\"\n @size=\"small\"\n @icon={{this.state}}\n @text={{hdsT\n \"hds.components.code-editor.full-screen-button.text\"\n default=\"Toggle full screen view\"\n }}\n {{on \"click\" @onToggleFullScreen}}\n ...attributes\n />\n </template>\n}\n"],"names":["HdsCodeEditorFullScreenButton","Component","state","args","isFullScreen","className","classes","stateClass","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","HdsButton","hdsT","on"],"mappings":";;;;;;;AAAA;;;AAGC;AAkBc,MAAMA,sCAAsCC,SAAA,CAAU;EACnE,IAAIC,KAAAA,GAAiC;IACnC,OAAO,IAAI,CAACC,IAAI,CAACC,YAAY,GAAG,UAAA,GAAa,UAAA;AAC/C,EAAA;EAEA,IAAIC,SAAAA,GAAoB;AACtB,IAAA,MAAMC,OAAA,GAAU,CACd,qCAAA,EACA,yBAAA,CACD;AAED,IAAA,MAAMC,UAAA,GAAa,CAAA,qCAAA,EAAwC,IAAI,CAACL,KAAK,CAAA,CAAE;AAEvEI,IAAAA,OAAA,CAAQE,IAAI,CAACD,UAAA,CAAA;AAEb,IAAA,OAAOD,OAAA,CAAQG,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,mTAAA,EAeA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -3,7 +3,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
3
3
|
import templateOnly from '@ember/component/template-only';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Copyright IBM Corp. 2021,
|
|
6
|
+
* Copyright IBM Corp. 2021, 2026
|
|
7
7
|
* SPDX-License-Identifier: MPL-2.0
|
|
8
8
|
*/
|
|
9
9
|
const HdsCodeEditorGeneric = setComponentTemplate(precompileTemplate("<div class=\"hds-code-editor__header-generic\" ...attributes>\n {{yield}}\n</div>", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sources":["../../../../src/components/hds/code-editor/generic.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"generic.js","sources":["../../../../src/components/hds/code-editor/generic.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nexport interface HdsCodeEditorGenericSignature {\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nconst HdsCodeEditorGeneric: TemplateOnlyComponent<HdsCodeEditorGenericSignature> =\n <template>\n <div class=\"hds-code-editor__header-generic\" ...attributes>\n {{yield}}\n </div>\n </template>;\n\nexport default HdsCodeEditorGeneric;\n"],"names":["HdsCodeEditorGeneric","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;AAAA;;;AAGC;AAWD,MAAMA,oBAA4C,GAAAC,oBAAA,CAChDC,kBAAA,CAAA,oFAAA,EAIA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -18,7 +18,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
18
18
|
import { g, i } from 'decorator-transforms/runtime';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* Copyright IBM Corp. 2021,
|
|
21
|
+
* Copyright IBM Corp. 2021, 2026
|
|
22
22
|
* SPDX-License-Identifier: MPL-2.0
|
|
23
23
|
*/
|
|
24
24
|
class HdsCodeEditor extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/code-editor/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { modifier } from 'ember-modifier';\nimport { or } from 'ember-truth-helpers';\nimport { tracked } from '@glimmer/tracking';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\n\nimport type { EditorView } from '@codemirror/view';\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport hdsCodeEditorModifier from '../../../modifiers/hds-code-editor.ts';\nimport HdsCodeEditorDescription from './description.gts';\nimport HdsCodeEditorFullScreenButton from './full-screen-button.gts';\nimport HdsCodeEditorGeneric from './generic.gts';\nimport HdsCodeEditorTitle from './title.gts';\nimport HdsCopyButton from '../copy/button/index.gts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type { HdsCodeEditorDescriptionSignature } from './description.gts';\nimport type { HdsCodeEditorSignature as HdsCodeEditorModifierSignature } from '../../../modifiers/hds-code-editor.ts';\nimport type { HdsCodeEditorTitleSignature } from './title.gts';\nimport type { HdsCopyButtonSignature } from '../copy/button/index.gts';\n\nexport interface HdsCodeEditorSignature {\n Args: {\n hasCopyButton?: boolean;\n hasFullScreenButton?: boolean;\n isStandalone?: boolean;\n copyButtonText?: HdsCopyButtonSignature['Args']['text'];\n } & HdsCodeEditorModifierSignature['Args']['Named'];\n Blocks: {\n default: [\n {\n Title?: WithBoundArgs<\n typeof HdsCodeEditorTitle,\n 'onInsert' | 'editorId'\n >;\n Description?: WithBoundArgs<\n typeof HdsCodeEditorDescription,\n 'onInsert' | 'editorId'\n >;\n Generic?: typeof HdsCodeEditorGeneric;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsCodeEditor extends Component<HdsCodeEditorSignature> {\n @tracked private _isFullScreen = false;\n @tracked private _isSetupComplete = false;\n @tracked private _value;\n @tracked private _titleId: string | undefined;\n @tracked private _descriptionId: string | undefined;\n\n private _id = guidFor(this);\n\n private _handleEscape = modifier(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !this._isFullScreen) {\n return;\n }\n\n this.toggleFullScreen();\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n });\n\n constructor(owner: Owner, args: HdsCodeEditorSignature['Args']) {\n super(owner, args);\n\n if (args.value) {\n this._value = args.value;\n }\n }\n\n get ariaLabelledBy(): string | undefined {\n if (this.args.ariaLabel !== undefined) {\n return;\n }\n\n return this.args.ariaLabelledBy ?? this._titleId;\n }\n\n get ariaDescribedBy(): string | undefined {\n return this.args.ariaDescribedBy ?? this._descriptionId;\n }\n\n get hasActions(): boolean {\n return (this.args.hasCopyButton || this.args.hasFullScreenButton) ?? false;\n }\n\n get isStandalone(): boolean {\n return this.args.isStandalone ?? true;\n }\n\n get classNames(): string {\n // Currently there is only one theme so the class name is hard-coded.\n // In the future, additional themes such as a \"light\" theme could be added.\n const classes = ['hds-code-editor', 'hds-code-editor--theme-dark'];\n\n if (this._isFullScreen) {\n classes.push('hds-code-editor--is-full-screen');\n }\n\n if (this.isStandalone) {\n classes.push('hds-code-editor--is-standalone');\n }\n\n return classes.join(' ');\n }\n\n get copyButtonText(): HdsCopyButtonSignature['Args']['text'] {\n return this.args.copyButtonText ? this.args.copyButtonText : 'Copy';\n }\n\n registerTitleElement = (\n element: HdsCodeEditorTitleSignature['Element']\n ): void => {\n this._titleId = element.id;\n };\n\n registerDescriptionElement = (\n element: HdsCodeEditorDescriptionSignature['Element']\n ): void => {\n this._descriptionId = element.id;\n };\n\n toggleFullScreen = (): void => {\n this._isFullScreen = !this._isFullScreen;\n };\n\n onInput = (newValue: string, editorView: EditorView): void => {\n this._value = newValue;\n this.args.onInput?.(newValue, editorView);\n };\n\n onKeyDown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this._isFullScreen) {\n this.toggleFullScreen();\n }\n };\n\n onSetup = (editorView: EditorView): void => {\n this._isSetupComplete = true;\n this.args.onSetup?.(editorView);\n };\n\n <template>\n <div\n id={{this._id}}\n class={{this.classNames}}\n {{focusTrap isActive=this._isFullScreen}}\n {{this._handleEscape}}\n ...attributes\n >\n {{! header }}\n {{#if (or this.hasActions (has-block))}}\n <div class=\"hds-code-editor__header\">\n <div class=\"hds-code-editor__header-content\">\n {{yield\n (hash\n Title=(component\n HdsCodeEditorTitle\n editorId=this._id\n onInsert=this.registerTitleElement\n )\n Description=(component\n HdsCodeEditorDescription\n editorId=this._id\n onInsert=this.registerDescriptionElement\n )\n Generic=HdsCodeEditorGeneric\n )\n }}\n </div>\n\n {{#if this.hasActions}}\n <div class=\"hds-code-editor__header-actions\">\n {{#if @hasCopyButton}}\n <HdsCopyButton\n class=\"hds-code-editor__button hds-code-editor__copy-button\"\n @isIconOnly={{true}}\n @size=\"small\"\n @text={{this.copyButtonText}}\n @textToCopy={{this._value}}\n />\n {{/if}}\n {{#if @hasFullScreenButton}}\n <HdsCodeEditorFullScreenButton\n @isFullScreen={{this._isFullScreen}}\n @onToggleFullScreen={{this.toggleFullScreen}}\n />\n {{/if}}\n </div>\n {{/if}}\n </div>\n {{/if}}\n\n {{! editor }}\n <div\n class=\"hds-code-editor__editor\"\n {{hdsCodeEditorModifier\n ariaDescribedBy=this.ariaDescribedBy\n ariaLabel=@ariaLabel\n ariaLabelledBy=this.ariaLabelledBy\n customExtensions=@customExtensions\n cspNonce=@cspNonce\n extraKeys=@extraKeys\n hasLineWrapping=@hasLineWrapping\n isLintingEnabled=@isLintingEnabled\n language=@language\n value=@value\n onBlur=@onBlur\n onInput=this.onInput\n onSetup=this.onSetup\n onLint=@onLint\n }}\n />\n\n {{! loader }}\n {{#unless this._isSetupComplete}}\n <div class=\"hds-code-editor__loader\" aria-live=\"polite\" role=\"status\">\n <HdsIcon @name=\"loading\" @size=\"24\" />\n <span class=\"sr-only\">{{hdsT\n \"hds.components.common.loading\"\n default=\"Loading\"\n }}</span>\n </div>\n {{/unless}}\n </div>\n </template>\n}\n"],"names":["HdsCodeEditor","Component","g","prototype","tracked","i","_id","guidFor","_handleEscape","modifier","handleKeyDown","event","key","_isFullScreen","toggleFullScreen","document","addEventListener","removeEventListener","constructor","owner","args","value","_value","ariaLabelledBy","ariaLabel","undefined","_titleId","ariaDescribedBy","_descriptionId","hasActions","hasCopyButton","hasFullScreenButton","isStandalone","classNames","classes","push","join","copyButtonText","registerTitleElement","element","id","registerDescriptionElement","onInput","newValue","editorView","onKeyDown","onSetup","_isSetupComplete","setComponentTemplate","precompileTemplate","strictMode","scope","focusTrap","or","hash","HdsCodeEditorTitle","HdsCodeEditorDescription","HdsCodeEditorGeneric","HdsCopyButton","HdsCodeEditorFullScreenButton","hdsCodeEditorModifier","HdsIcon","hdsT"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;AAGC;AAsDc,MAAMA,sBAAsBC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,eAAA,EAAA,CAClDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAgC,KAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,cAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,eAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAChCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAmC,KAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,iBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CACnCC,OAAA,CAAA,CAAA;AAAA;EAAA,OAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACAC,OAAA,CAAA,CAAA;AAAA;EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,gBAAA,EAAA,CACAC,OAAA,CAAA,CAAA;AAAA;EAAA,eAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,gBAAA,CAAA,EAAA,MAAA;AAEOC,EAAAA,GAAA,GAAMC,OAAA,CAAQ,IAAI,CAAA;EAElBC,gBAAgBC,QAAA,CAAS,MAAA;IAC/B,MAAMC,aAAA,GAAiBC,KAAO,IAAA;MAC5B,IAAIA,KAAA,CAAMC,GAAG,KAAK,QAAA,IAAY,CAAC,IAAI,CAACC,aAAa,EAAE;AACjD,QAAA;AACF,MAAA;MAEA,IAAI,CAACC,gBAAgB,EAAA;IACvB,CAAA;AAEAC,IAAAA,QAAA,CAASC,gBAAgB,CAAC,SAAA,EAAWN,aAAA,CAAA;AAErC,IAAA,OAAO,MAAA;AACLK,MAAAA,QAAA,CAASE,mBAAmB,CAAC,SAAA,EAAWP,aAAA,CAAA;IAC1C,CAAA;AACF,EAAA,CAAA,CAAA;AAEAQ,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAoC,EAAE;AAC9D,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;IAEb,IAAIA,IAAA,CAAKC,KAAK,EAAE;AACd,MAAA,IAAI,CAACC,MAAM,GAAGF,IAAA,CAAKC,KAAK;AAC1B,IAAA;AACF,EAAA;EAEA,IAAIE,cAAAA,GAAqC;AACvC,IAAA,IAAI,IAAI,CAACH,IAAI,CAACI,SAAS,KAAKC,SAAA,EAAW;AACrC,MAAA;AACF,IAAA;IAEA,OAAO,IAAI,CAACL,IAAI,CAACG,cAAc,IAAI,IAAI,CAACG,QAAQ;AAClD,EAAA;EAEA,IAAIC,eAAAA,GAAsC;IACxC,OAAO,IAAI,CAACP,IAAI,CAACO,eAAe,IAAI,IAAI,CAACC,cAAc;AACzD,EAAA;EAEA,IAAIC,UAAAA,GAAsB;AACxB,IAAA,OAAO,CAAC,IAAI,CAACT,IAAI,CAACU,aAAa,IAAI,IAAI,CAACV,IAAI,CAACW,mBAAmB,KAAK,KAAA;AACvE,EAAA;EAEA,IAAIC,YAAAA,GAAwB;AAC1B,IAAA,OAAO,IAAI,CAACZ,IAAI,CAACY,YAAY,IAAI,IAAA;AACnC,EAAA;EAEA,IAAIC,UAAAA,GAAqB;AACvB;AACA;AACA,IAAA,MAAMC,OAAA,GAAU,CAAC,iBAAA,EAAmB,6BAAA,CAA8B;IAElE,IAAI,IAAI,CAACrB,aAAa,EAAE;AACtBqB,MAAAA,OAAA,CAAQC,IAAI,CAAC,iCAAA,CAAA;AACf,IAAA;IAEA,IAAI,IAAI,CAACH,YAAY,EAAE;AACrBE,MAAAA,OAAA,CAAQC,IAAI,CAAC,gCAAA,CAAA;AACf,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;EAEA,IAAIC,cAAAA,GAAyD;AAC3D,IAAA,OAAO,IAAI,CAACjB,IAAI,CAACiB,cAAc,GAAG,IAAI,CAACjB,IAAI,CAACiB,cAAc,GAAG,MAAA;AAC/D,EAAA;EAEAC,oBAAA,GACEC,OAAqC,IAChC;AACL,IAAA,IAAI,CAACb,QAAQ,GAAGa,OAAA,CAAQC,EAAE;EAC5B,CAAA;EAEAC,0BAAA,GACEF,OAA2C,IACtC;AACL,IAAA,IAAI,CAACX,cAAc,GAAGW,OAAA,CAAQC,EAAE;EAClC,CAAA;EAEA1B,gBAAA,GAAmBA,MAAQ;AACzB,IAAA,IAAI,CAACD,aAAa,GAAG,CAAC,IAAI,CAACA,aAAa;EAC1C,CAAA;AAEA6B,EAAAA,OAAA,GAAUA,CAACC,QAAgB,EAAEC,eAA6B;IACxD,IAAI,CAACtB,MAAM,GAAGqB,QAAA;IACd,IAAI,CAACvB,IAAI,CAACsB,OAAO,GAAGC,QAAA,EAAUC,UAAA,CAAA;EAChC,CAAA;EAEAC,SAAA,GAAalC,KAAO,IAAoB;IACtC,IAAIA,MAAMC,GAAG,KAAK,YAAY,IAAI,CAACC,aAAa,EAAE;MAChD,IAAI,CAACC,gBAAgB,EAAA;AACvB,IAAA;EACF,CAAA;EAEAgC,OAAA,GAAWF,UAAY,IAAiB;IACtC,IAAI,CAACG,gBAAgB,GAAG,IAAA;AACxB,IAAA,IAAI,CAAC3B,IAAI,CAAC0B,OAAO,GAAGF,UAAA,CAAA;EACtB,CAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAAA,y2DAAA,EAmFA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;QAAAC,EAAA;QAAAC,IAAA;QAAAC,kBAAA;QAAAC,wBAAA;QAAAC,oBAAA;QAAAC,aAAA;QAAAC,6BAAA;+BAAAC,qBAAA;QAAAC,OAAA;AAAAC,cAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/code-editor/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { modifier } from 'ember-modifier';\nimport { or } from 'ember-truth-helpers';\nimport { tracked } from '@glimmer/tracking';\n// @ts-expect-error: missing types https://github.com/josemarluedke/ember-focus-trap/issues/86\nimport focusTrap from 'ember-focus-trap/modifiers/focus-trap';\n\nimport type { EditorView } from '@codemirror/view';\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport hdsCodeEditorModifier from '../../../modifiers/hds-code-editor.ts';\nimport HdsCodeEditorDescription from './description.gts';\nimport HdsCodeEditorFullScreenButton from './full-screen-button.gts';\nimport HdsCodeEditorGeneric from './generic.gts';\nimport HdsCodeEditorTitle from './title.gts';\nimport HdsCopyButton from '../copy/button/index.gts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type { HdsCodeEditorDescriptionSignature } from './description.gts';\nimport type { HdsCodeEditorSignature as HdsCodeEditorModifierSignature } from '../../../modifiers/hds-code-editor.ts';\nimport type { HdsCodeEditorTitleSignature } from './title.gts';\nimport type { HdsCopyButtonSignature } from '../copy/button/index.gts';\n\nexport interface HdsCodeEditorSignature {\n Args: {\n hasCopyButton?: boolean;\n hasFullScreenButton?: boolean;\n isStandalone?: boolean;\n copyButtonText?: HdsCopyButtonSignature['Args']['text'];\n } & HdsCodeEditorModifierSignature['Args']['Named'];\n Blocks: {\n default: [\n {\n Title?: WithBoundArgs<\n typeof HdsCodeEditorTitle,\n 'onInsert' | 'editorId'\n >;\n Description?: WithBoundArgs<\n typeof HdsCodeEditorDescription,\n 'onInsert' | 'editorId'\n >;\n Generic?: typeof HdsCodeEditorGeneric;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsCodeEditor extends Component<HdsCodeEditorSignature> {\n @tracked private _isFullScreen = false;\n @tracked private _isSetupComplete = false;\n @tracked private _value;\n @tracked private _titleId: string | undefined;\n @tracked private _descriptionId: string | undefined;\n\n private _id = guidFor(this);\n\n private _handleEscape = modifier(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || !this._isFullScreen) {\n return;\n }\n\n this.toggleFullScreen();\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n });\n\n constructor(owner: Owner, args: HdsCodeEditorSignature['Args']) {\n super(owner, args);\n\n if (args.value) {\n this._value = args.value;\n }\n }\n\n get ariaLabelledBy(): string | undefined {\n if (this.args.ariaLabel !== undefined) {\n return;\n }\n\n return this.args.ariaLabelledBy ?? this._titleId;\n }\n\n get ariaDescribedBy(): string | undefined {\n return this.args.ariaDescribedBy ?? this._descriptionId;\n }\n\n get hasActions(): boolean {\n return (this.args.hasCopyButton || this.args.hasFullScreenButton) ?? false;\n }\n\n get isStandalone(): boolean {\n return this.args.isStandalone ?? true;\n }\n\n get classNames(): string {\n // Currently there is only one theme so the class name is hard-coded.\n // In the future, additional themes such as a \"light\" theme could be added.\n const classes = ['hds-code-editor', 'hds-code-editor--theme-dark'];\n\n if (this._isFullScreen) {\n classes.push('hds-code-editor--is-full-screen');\n }\n\n if (this.isStandalone) {\n classes.push('hds-code-editor--is-standalone');\n }\n\n return classes.join(' ');\n }\n\n get copyButtonText(): HdsCopyButtonSignature['Args']['text'] {\n return this.args.copyButtonText ? this.args.copyButtonText : 'Copy';\n }\n\n registerTitleElement = (\n element: HdsCodeEditorTitleSignature['Element']\n ): void => {\n this._titleId = element.id;\n };\n\n registerDescriptionElement = (\n element: HdsCodeEditorDescriptionSignature['Element']\n ): void => {\n this._descriptionId = element.id;\n };\n\n toggleFullScreen = (): void => {\n this._isFullScreen = !this._isFullScreen;\n };\n\n onInput = (newValue: string, editorView: EditorView): void => {\n this._value = newValue;\n this.args.onInput?.(newValue, editorView);\n };\n\n onKeyDown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape' && this._isFullScreen) {\n this.toggleFullScreen();\n }\n };\n\n onSetup = (editorView: EditorView): void => {\n this._isSetupComplete = true;\n this.args.onSetup?.(editorView);\n };\n\n <template>\n <div\n id={{this._id}}\n class={{this.classNames}}\n {{focusTrap isActive=this._isFullScreen}}\n {{this._handleEscape}}\n ...attributes\n >\n {{! header }}\n {{#if (or this.hasActions (has-block))}}\n <div class=\"hds-code-editor__header\">\n <div class=\"hds-code-editor__header-content\">\n {{yield\n (hash\n Title=(component\n HdsCodeEditorTitle\n editorId=this._id\n onInsert=this.registerTitleElement\n )\n Description=(component\n HdsCodeEditorDescription\n editorId=this._id\n onInsert=this.registerDescriptionElement\n )\n Generic=HdsCodeEditorGeneric\n )\n }}\n </div>\n\n {{#if this.hasActions}}\n <div class=\"hds-code-editor__header-actions\">\n {{#if @hasCopyButton}}\n <HdsCopyButton\n class=\"hds-code-editor__button hds-code-editor__copy-button\"\n @isIconOnly={{true}}\n @size=\"small\"\n @text={{this.copyButtonText}}\n @textToCopy={{this._value}}\n />\n {{/if}}\n {{#if @hasFullScreenButton}}\n <HdsCodeEditorFullScreenButton\n @isFullScreen={{this._isFullScreen}}\n @onToggleFullScreen={{this.toggleFullScreen}}\n />\n {{/if}}\n </div>\n {{/if}}\n </div>\n {{/if}}\n\n {{! editor }}\n <div\n class=\"hds-code-editor__editor\"\n {{hdsCodeEditorModifier\n ariaDescribedBy=this.ariaDescribedBy\n ariaLabel=@ariaLabel\n ariaLabelledBy=this.ariaLabelledBy\n customExtensions=@customExtensions\n cspNonce=@cspNonce\n extraKeys=@extraKeys\n hasLineWrapping=@hasLineWrapping\n isLintingEnabled=@isLintingEnabled\n language=@language\n value=@value\n onBlur=@onBlur\n onInput=this.onInput\n onSetup=this.onSetup\n onLint=@onLint\n }}\n />\n\n {{! loader }}\n {{#unless this._isSetupComplete}}\n <div class=\"hds-code-editor__loader\" aria-live=\"polite\" role=\"status\">\n <HdsIcon @name=\"loading\" @size=\"24\" />\n <span class=\"sr-only\">{{hdsT\n \"hds.components.common.loading\"\n default=\"Loading\"\n }}</span>\n </div>\n {{/unless}}\n </div>\n </template>\n}\n"],"names":["HdsCodeEditor","Component","g","prototype","tracked","i","_id","guidFor","_handleEscape","modifier","handleKeyDown","event","key","_isFullScreen","toggleFullScreen","document","addEventListener","removeEventListener","constructor","owner","args","value","_value","ariaLabelledBy","ariaLabel","undefined","_titleId","ariaDescribedBy","_descriptionId","hasActions","hasCopyButton","hasFullScreenButton","isStandalone","classNames","classes","push","join","copyButtonText","registerTitleElement","element","id","registerDescriptionElement","onInput","newValue","editorView","onKeyDown","onSetup","_isSetupComplete","setComponentTemplate","precompileTemplate","strictMode","scope","focusTrap","or","hash","HdsCodeEditorTitle","HdsCodeEditorDescription","HdsCodeEditorGeneric","HdsCopyButton","HdsCodeEditorFullScreenButton","hdsCodeEditorModifier","HdsIcon","hdsT"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Copyright IBM Corp. 2021,
|
|
8
|
+
* Copyright IBM Corp. 2021, 2026
|
|
9
9
|
* SPDX-License-Identifier: MPL-2.0
|
|
10
10
|
*/
|
|
11
11
|
class HdsCodeEditorTitle extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title.js","sources":["../../../../src/components/hds/code-editor/title.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021,
|
|
1
|
+
{"version":3,"file":"title.js","sources":["../../../../src/components/hds/code-editor/title.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n\nimport HdsTextBody from '../text/body.gts';\n\nimport type { HdsTextBodySignature } from '../text/body.gts';\n\ntype HdsCodeEditorTitleElement = HdsTextBodySignature['Element'];\n\nexport interface HdsCodeEditorTitleSignature {\n Args: {\n editorId: string;\n tag?: HdsTextBodySignature['Args']['tag'];\n onInsert: (element: HdsCodeEditorTitleElement) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsCodeEditorTitleElement;\n}\n\nexport default class HdsCodeEditorTitle extends Component<HdsCodeEditorTitleSignature> {\n private _id = `${this.args.editorId}-title`;\n\n get tag(): HdsTextBodySignature['Args']['tag'] {\n return this.args.tag ?? 'h2';\n }\n\n <template>\n <HdsTextBody\n id={{this._id}}\n class=\"hds-code-editor__title\"\n @tag={{this.tag}}\n @size=\"200\"\n @weight=\"semibold\"\n {{didInsert @onInsert}}\n ...attributes\n >\n {{yield}}\n </HdsTextBody>\n </template>\n}\n"],"names":["HdsCodeEditorTitle","Component","_id","args","editorId","tag","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTextBody","didInsert"],"mappings":";;;;;;AAAA;;;AAGC;AAwBc,MAAMA,2BAA2BC,SAAA,CAAU;AAChDC,EAAAA,GAAA,GAAM,CAAA,EAAG,IAAI,CAACC,IAAI,CAACC,QAAQ,CAAA,MAAA,CAAQ;EAE3C,IAAIC,GAAAA,GAA2C;AAC7C,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,GAAG,IAAI,IAAA;AAC1B,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,wLAAA,EAYA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -6,6 +6,10 @@ import { findFirstEnabled, handleKey } from './navigation.js';
|
|
|
6
6
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
12
|
+
*/
|
|
9
13
|
function getElementId(element, prefix) {
|
|
10
14
|
if (element.id !== '') {
|
|
11
15
|
return element.id;
|