@hashicorp/design-system-components 4.1.2 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_app_/components/hds/form/super-select/after-options.js +1 -0
- package/dist/_app_/components/hds/form/super-select/multiple/base.js +1 -0
- package/dist/_app_/components/hds/form/super-select/multiple/field.js +1 -0
- package/dist/_app_/components/hds/form/super-select/option-group.js +1 -0
- package/dist/_app_/components/hds/form/super-select/placeholder.js +1 -0
- package/dist/_app_/components/hds/form/super-select/single/base.js +1 -0
- package/dist/_app_/components/hds/form/super-select/single/field.js +1 -0
- package/dist/_app_/components/hds/popover-primitive/index.js +1 -0
- package/dist/_app_/components/hds/rich-tooltip/bubble.js +1 -0
- package/dist/_app_/components/hds/rich-tooltip/index.js +1 -0
- package/dist/_app_/components/hds/rich-tooltip/toggle.js +1 -0
- package/dist/_app_/modifiers/hds-anchored-position.js +1 -0
- package/dist/_app_/modifiers/hds-register-event.js +1 -0
- package/dist/{_rollupPluginBabelHelpers-lqPQKyNs.js → _rollupPluginBabelHelpers-NoJJJNhk.js} +7 -9
- package/dist/{_rollupPluginBabelHelpers-lqPQKyNs.js.map → _rollupPluginBabelHelpers-NoJJJNhk.js.map} +1 -1
- package/dist/components/hds/accordion/index.js +8 -2
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js +12 -8
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/accordion/item/index.js +6 -6
- package/dist/components/hds/accordion/item/index.js.map +1 -1
- package/dist/components/hds/alert/description.js +8 -2
- package/dist/components/hds/alert/description.js.map +1 -1
- package/dist/components/hds/alert/index.js +23 -22
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/alert/title.js +8 -2
- package/dist/components/hds/alert/title.js.map +1 -1
- package/dist/components/hds/alert/types.js +22 -0
- package/dist/components/hds/alert/types.js.map +1 -0
- 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 +6 -6
- package/dist/components/hds/app-footer/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js +10 -4
- 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 +10 -4
- package/dist/components/hds/app-footer/link.js.map +1 -1
- package/dist/components/hds/app-footer/status-link.js +12 -27
- package/dist/components/hds/app-footer/status-link.js.map +1 -1
- package/dist/components/hds/app-footer/types.js +38 -0
- package/dist/components/hds/app-footer/types.js.map +1 -0
- package/dist/components/hds/app-frame/index.js +4 -4
- package/dist/components/hds/app-frame/index.js.map +1 -1
- package/dist/components/hds/app-frame/parts/footer.js +10 -4
- package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
- package/dist/components/hds/app-frame/parts/header.js +10 -4
- package/dist/components/hds/app-frame/parts/header.js.map +1 -1
- package/dist/components/hds/app-frame/parts/main.js +10 -4
- package/dist/components/hds/app-frame/parts/main.js.map +1 -1
- package/dist/components/hds/app-frame/parts/modals.js +10 -4
- package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js +10 -4
- package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
- package/dist/components/hds/badge/index.js +19 -18
- package/dist/components/hds/badge/index.js.map +1 -1
- package/dist/components/hds/badge/types.js +29 -0
- package/dist/components/hds/badge/types.js.map +1 -0
- package/dist/components/hds/badge-count/index.js +15 -14
- package/dist/components/hds/badge-count/index.js.map +1 -1
- package/dist/components/hds/badge-count/types.js +25 -0
- package/dist/components/hds/badge-count/types.js.map +1 -0
- package/dist/components/hds/button/index.js +9 -9
- package/dist/components/hds/button/index.js.map +1 -1
- package/dist/components/hds/button-set/index.js +8 -2
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/card/container.js +25 -24
- package/dist/components/hds/card/container.js.map +1 -1
- package/dist/components/hds/card/types.js +24 -0
- package/dist/components/hds/card/types.js.map +1 -0
- 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/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 +2 -2
- package/dist/components/hds/copy/snippet/index.js.map +1 -1
- package/dist/components/hds/disclosure-primitive/index.js +2 -2
- package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
- package/dist/components/hds/dismiss-button/index.js +3 -3
- package/dist/components/hds/dismiss-button/index.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/checkmark.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.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/toggle/button.js +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/flyout/index.js +3 -9
- package/dist/components/hds/flyout/index.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/label/index.js +18 -2
- package/dist/components/hds/form/label/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/radio-card/index.js +1 -1
- package/dist/components/hds/form/radio-card/index.js.map +1 -1
- package/dist/components/hds/form/super-select/after-options.js +10 -0
- package/dist/components/hds/form/super-select/after-options.js.map +1 -0
- package/dist/components/hds/form/super-select/multiple/base.js +159 -0
- package/dist/components/hds/form/super-select/multiple/base.js.map +1 -0
- package/dist/components/hds/form/super-select/multiple/field.js +21 -0
- package/dist/components/hds/form/super-select/multiple/field.js.map +1 -0
- package/dist/components/hds/form/super-select/option-group.js +22 -0
- package/dist/components/hds/form/super-select/option-group.js.map +1 -0
- package/dist/components/hds/form/super-select/placeholder.js +10 -0
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -0
- package/dist/components/hds/form/super-select/single/base.js +86 -0
- package/dist/components/hds/form/super-select/single/base.js.map +1 -0
- package/dist/components/hds/form/super-select/single/field.js +21 -0
- package/dist/components/hds/form/super-select/single/field.js.map +1 -0
- 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/icon-tile/index.js +15 -11
- package/dist/components/hds/icon-tile/index.js.map +1 -1
- package/dist/components/hds/icon-tile/types.js +32 -0
- package/dist/components/hds/icon-tile/types.js.map +1 -0
- package/dist/components/hds/interactive/index.js +4 -4
- package/dist/components/hds/interactive/index.js.map +1 -1
- package/dist/components/hds/link/inline.js +11 -10
- package/dist/components/hds/link/inline.js.map +1 -1
- package/dist/components/hds/link/standalone.js +16 -15
- package/dist/components/hds/link/standalone.js.map +1 -1
- package/dist/components/hds/link/types.js +24 -0
- package/dist/components/hds/link/types.js.map +1 -0
- package/dist/components/hds/menu-primitive/index.js +1 -1
- package/dist/components/hds/menu-primitive/index.js.map +1 -1
- package/dist/components/hds/modal/index.js +3 -9
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components/hds/pagination/compact/index.js +1 -1
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js +1 -1
- package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
- package/dist/components/hds/pagination/nav/number.js +1 -1
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +1 -1
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +1 -1
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +238 -0
- package/dist/components/hds/popover-primitive/index.js.map +1 -0
- package/dist/components/hds/reveal/index.js +21 -17
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/reveal/toggle/button.js +5 -5
- package/dist/components/hds/reveal/toggle/button.js.map +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js +60 -0
- package/dist/components/hds/rich-tooltip/bubble.js.map +1 -0
- package/dist/components/hds/rich-tooltip/index.js +26 -0
- package/dist/components/hds/rich-tooltip/index.js.map +1 -0
- package/dist/components/hds/rich-tooltip/toggle.js +85 -0
- package/dist/components/hds/rich-tooltip/toggle.js.map +1 -0
- package/dist/components/hds/separator/index.js +9 -8
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/separator/types.js +13 -0
- package/dist/components/hds/separator/types.js.map +1 -0
- package/dist/components/hds/side-nav/index.js +1 -1
- package/dist/components/hds/side-nav/index.js.map +1 -1
- package/dist/components/hds/side-nav/portal/target.js +1 -1
- package/dist/components/hds/side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js +9 -8
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js +10 -14
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/stepper/types.js +21 -0
- package/dist/components/hds/stepper/types.js.map +1 -0
- package/dist/components/hds/table/index.js +1 -1
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/th-button-sort.js +1 -1
- package/dist/components/hds/table/th-button-tooltip.js +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.js +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 +11 -10
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/tag/types.js +13 -0
- package/dist/components/hds/tag/types.js.map +1 -0
- package/dist/components/hds/text/body.js +8 -7
- package/dist/components/hds/text/body.js.map +1 -1
- package/dist/components/hds/text/code.js +8 -7
- package/dist/components/hds/text/code.js.map +1 -1
- package/dist/components/hds/text/display.js +19 -12
- package/dist/components/hds/text/display.js.map +1 -1
- package/dist/components/hds/text/index.js +17 -13
- package/dist/components/hds/text/index.js.map +1 -1
- package/dist/components/hds/text/types.js +58 -0
- package/dist/components/hds/text/types.js.map +1 -0
- package/dist/components/hds/toast/index.js +8 -2
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/yield/index.js +8 -2
- package/dist/components/hds/yield/index.js.map +1 -1
- package/dist/helpers/hds-link-to-models.js.map +1 -1
- package/dist/modifiers/hds-anchored-position.js +175 -0
- package/dist/modifiers/hds-anchored-position.js.map +1 -0
- package/dist/modifiers/hds-register-event.js +40 -0
- package/dist/modifiers/hds-register-event.js.map +1 -0
- package/dist/modifiers/hds-tooltip.js +10 -14
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +565 -3
- package/dist/styles/@hashicorp/design-system-components.scss +1 -0
- package/dist/styles/@hashicorp/design-system-power-select-overrides.scss +0 -1
- package/dist/styles/components/code-block/theme.scss +1 -1
- package/dist/styles/components/dropdown.scss +7 -0
- package/dist/styles/components/form/index.scss +1 -0
- package/dist/styles/components/form/select.scss +0 -1
- package/dist/styles/components/form/super-select.scss +515 -0
- package/dist/styles/components/form/text-input.scss +0 -1
- package/dist/styles/components/form/textarea.scss +0 -1
- package/dist/styles/components/page-header.scss +1 -0
- package/dist/styles/components/rich-tooltip.scss +247 -0
- package/dist/styles/components/tabs.scss +2 -1
- package/dist/styles/components/tooltip.scss +1 -1
- package/package.json +58 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.hbs","../../../../src/components/hds/table/th-selectable.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::Table::Th class=\\\"hds-table__th--is-selectable\\\" @scope={{@selectionScope}} ...attributes>\\n <Hds::Form::Checkbox::Base\\n id={{this.checkboxId}}\\n class=\\\"hds-table__checkbox\\\"\\n checked={{@isSelected}}\\n aria-label={{this.ariaLabel}}\\n {{did-insert this.didInsert}}\\n {{will-destroy this.willDestroy}}\\n {{on \\\"change\\\" this.onSelectionChange}}\\n />\\n</Hds::Table::Th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\n\nexport default class HdsTableThSelectableComponent extends Component {\n @tracked isSelected = this.args.isSelected;\n\n /**\n * Generate a unique ID for the Checkbox\n * @return {string}\n */\n checkboxId = 'checkbox-' + guidFor(this);\n\n get ariaLabel() {\n let { selectionAriaLabelSuffix } = this.args;\n const prefix = this.isSelected ? 'Deselect' : 'Select';\n if (selectionAriaLabelSuffix) {\n return `${prefix} ${selectionAriaLabelSuffix}`;\n } else {\n return prefix;\n }\n }\n\n @action\n didInsert(checkbox) {\n let { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n // we need to use a custom event listener here because changing the `checked` value via JS\n // (and this happens with the \"select all\") doesn't trigger the `change` event\n // and consequently the `aria-label` won't be automatically updated (and so we have to force it)\n checkbox.addEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\n );\n }\n }\n\n @action\n willDestroy(checkbox) {\n super.willDestroy(...arguments);\n let { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n if (checkbox) {\n checkbox.removeEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\n );\n }\n }\n }\n\n @action\n onSelectionChange(event) {\n this.isSelected = event.target.checked;\n let { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(event.target, this.args.selectionKey);\n }\n }\n\n updateAriaLabel(event) {\n // updating the `isSelected` value will trigger the update of the `aria-label` value via the `ariaLabel` getter\n this.isSelected = event.target.checked;\n }\n}\n"],"names":["HdsTableThSelectableComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","guidFor","ariaLabel","selectionAriaLabelSuffix","prefix","isSelected","didInsert","checkbox","selectionKey","addEventListener","updateAriaLabel","bind","willDestroy","arguments","removeEventListener","onSelectionChange","event","target","checked","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.hbs","../../../../src/components/hds/table/th-selectable.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<Hds::Table::Th class=\\\"hds-table__th--is-selectable\\\" @scope={{@selectionScope}} ...attributes>\\n <Hds::Form::Checkbox::Base\\n id={{this.checkboxId}}\\n class=\\\"hds-table__checkbox\\\"\\n checked={{@isSelected}}\\n aria-label={{this.ariaLabel}}\\n {{did-insert this.didInsert}}\\n {{will-destroy this.willDestroy}}\\n {{on \\\"change\\\" this.onSelectionChange}}\\n />\\n</Hds::Table::Th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\n\nexport default class HdsTableThSelectableComponent extends Component {\n @tracked isSelected = this.args.isSelected;\n\n /**\n * Generate a unique ID for the Checkbox\n * @return {string}\n */\n checkboxId = 'checkbox-' + guidFor(this);\n\n get ariaLabel() {\n let { selectionAriaLabelSuffix } = this.args;\n const prefix = this.isSelected ? 'Deselect' : 'Select';\n if (selectionAriaLabelSuffix) {\n return `${prefix} ${selectionAriaLabelSuffix}`;\n } else {\n return prefix;\n }\n }\n\n @action\n didInsert(checkbox) {\n let { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n // we need to use a custom event listener here because changing the `checked` value via JS\n // (and this happens with the \"select all\") doesn't trigger the `change` event\n // and consequently the `aria-label` won't be automatically updated (and so we have to force it)\n checkbox.addEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\n );\n }\n }\n\n @action\n willDestroy(checkbox) {\n super.willDestroy(...arguments);\n let { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n if (checkbox) {\n checkbox.removeEventListener(\n 'toggle',\n this.updateAriaLabel.bind(this),\n true\n );\n }\n }\n }\n\n @action\n onSelectionChange(event) {\n this.isSelected = event.target.checked;\n let { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(event.target, this.args.selectionKey);\n }\n }\n\n updateAriaLabel(event) {\n // updating the `isSelected` value will trigger the update of the `aria-label` value via the `ariaLabel` getter\n this.isSelected = event.target.checked;\n }\n}\n"],"names":["HdsTableThSelectableComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","guidFor","ariaLabel","selectionAriaLabelSuffix","prefix","isSelected","didInsert","checkbox","selectionKey","addEventListener","updateAriaLabel","bind","willDestroy","arguments","removeEventListener","onSelectionChange","event","target","checked","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as _defineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { guidFor } from '@ember/object/internals';
|
|
4
4
|
import { assert } from '@ember/debug';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as _defineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { guidFor } from '@ember/object/internals';
|
|
4
4
|
import { assert } from '@ember/debug';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { action } from '@ember/object';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.hbs","../../../../src/components/hds/tabs/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable no-invalid-role }}\\n<div\\n class={{this.classNames}}\\n {{did-insert this.didInsert}}\\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\\n {{did-update this.didUpdateSelectedTabId this.selectedTabId}}\\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\\n ...attributes\\n>\\n <div class=\\\"hds-tabs__tablist-wrapper\\\">\\n <ul class=\\\"hds-tabs__tablist\\\" role=\\\"tablist\\\">\\n {{yield\\n (hash\\n Tab=(component\\n \\\"hds/tabs/tab\\\"\\n didInsertNode=this.didInsertTab\\n didUpdateNode=this.didUpdateTab\\n willDestroyNode=this.willDestroyTab\\n tabIds=this.tabIds\\n selectedTabIndex=this.selectedTabIndex\\n onClick=this.onClick\\n onKeyUp=this.onKeyUp\\n )\\n )\\n }}\\n <li class=\\\"hds-tabs__tab-indicator\\\" role=\\\"presentation\\\"></li>\\n </ul>\\n </div>\\n\\n {{yield\\n (hash\\n Panel=(component\\n \\\"hds/tabs/panel\\\"\\n didInsertNode=this.didInsertPanel\\n willDestroyNode=this.willDestroyPanel\\n tabIds=this.tabIds\\n panelIds=this.panelIds\\n selectedTabIndex=this.selectedTabIndex\\n )\\n )\\n }}\\n</div>\\n{{! template-lint-enable no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\n\nexport const DEFAULT_SIZE = 'medium';\nexport const SIZES = ['medium', 'large'];\n\nexport default class HdsTabsIndexComponent extends Component {\n @tracked tabNodes = [];\n @tracked tabIds = [];\n @tracked panelNodes = [];\n @tracked panelIds = [];\n @tracked _selectedTabIndex = this.args.selectedTabIndex ?? 0;\n @tracked selectedTabId;\n @tracked isControlled;\n\n /**\n * Sets the size of Tabs\n * Accepted values: medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor() {\n super(...arguments);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this.isControlled = this.args.selectedTabIndex !== undefined;\n }\n\n get selectedTabIndex() {\n if (this.isControlled) {\n return this.args.selectedTabIndex;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n @action\n didInsert() {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this.tabNodes.length === this.panelNodes.length\n );\n\n if (this.selectedTabId) {\n this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);\n }\n\n schedule('afterRender', () => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabIndex() {\n schedule('afterRender', () => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabId() {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this.selectedTabId) {\n this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);\n }\n }\n\n @action\n didUpdateParentVisibility() {\n schedule('afterRender', () => {\n this.setTabIndicator();\n });\n }\n\n @action\n didInsertTab(element, isSelected) {\n this.tabNodes = [...this.tabNodes, element];\n this.tabIds = [...this.tabIds, element.id];\n if (isSelected) {\n this.selectedTabId = element.id;\n }\n }\n\n @action\n didUpdateTab(tabIndex, isSelected) {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n }\n\n @action\n willDestroyTab(element) {\n this.tabNodes = this.tabNodes.filter((node) => node.id !== element.id);\n this.tabIds = this.tabIds.filter((tabId) => tabId !== element.id);\n }\n\n @action\n didInsertPanel(element, panelId) {\n this.panelNodes = [...this.panelNodes, element];\n this.panelIds = [...this.panelIds, panelId];\n }\n\n @action\n willDestroyPanel(element) {\n this.panelNodes = this.panelNodes.filter((node) => node.id !== element.id);\n this.panelIds = this.panelIds.filter((panelId) => panelId !== element.id);\n }\n\n @action\n onClick(event, tabIndex) {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n }\n\n @action\n onKeyUp(tabIndex, event) {\n const leftArrow = 37;\n const rightArrow = 39;\n const enterKey = 13;\n const spaceKey = 32;\n\n if (event.keyCode === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this.tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.keyCode === leftArrow) {\n const prevTabIndex =\n (tabIndex + this.tabIds.length - 1) % this.tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.keyCode === enterKey || event.keyCode === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n this.tabNodes[this.selectedTabIndex].parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n // Focus tab for keyboard & mouse navigation:\n focusTab(tabIndex, e) {\n e.preventDefault();\n this.tabNodes[tabIndex].focus();\n }\n\n setSelectedPanelFocus(tabIndex, e) {\n e.preventDefault();\n this.panelNodes[tabIndex].focus();\n }\n\n setTabIndicator() {\n next(() => {\n const tabElem = this.tabNodes[this.selectedTabIndex];\n\n if (tabElem) {\n const tabsParentElem = tabElem.closest('.hds-tabs__tablist');\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElem.parentNode.offsetParent) {\n const tabLeftPos = tabElem.parentNode.offsetLeft;\n const tabWidth = tabElem.parentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsParentElem.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsParentElem.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message;\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this.tabNodes.length === 0) {\n message +=\n ' (the array `this.tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this.tabNodes\\`, whose index range is [0 - ${\n this.tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n }\n}\n"],"names":["DEFAULT_SIZE","SIZES","HdsTabsIndexComponent","_class","Component","size","args","assert","join","includes","constructor","arguments","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","tabNodes","length","panelNodes","selectedTabId","tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","keyCode","nextTabIndex","focusTab","prevTabIndex","parentNode","scrollIntoView","behavior","block","inline","e","preventDefault","focus","setSelectedPanelFocus","next","tabElem","tabsParentElem","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.hbs","../../../../src/components/hds/tabs/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable no-invalid-role }}\\n<div\\n class={{this.classNames}}\\n {{did-insert this.didInsert}}\\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\\n {{did-update this.didUpdateSelectedTabId this.selectedTabId}}\\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\\n ...attributes\\n>\\n <div class=\\\"hds-tabs__tablist-wrapper\\\">\\n <ul class=\\\"hds-tabs__tablist\\\" role=\\\"tablist\\\">\\n {{yield\\n (hash\\n Tab=(component\\n \\\"hds/tabs/tab\\\"\\n didInsertNode=this.didInsertTab\\n didUpdateNode=this.didUpdateTab\\n willDestroyNode=this.willDestroyTab\\n tabIds=this.tabIds\\n selectedTabIndex=this.selectedTabIndex\\n onClick=this.onClick\\n onKeyUp=this.onKeyUp\\n )\\n )\\n }}\\n <li class=\\\"hds-tabs__tab-indicator\\\" role=\\\"presentation\\\"></li>\\n </ul>\\n </div>\\n\\n {{yield\\n (hash\\n Panel=(component\\n \\\"hds/tabs/panel\\\"\\n didInsertNode=this.didInsertPanel\\n willDestroyNode=this.willDestroyPanel\\n tabIds=this.tabIds\\n panelIds=this.panelIds\\n selectedTabIndex=this.selectedTabIndex\\n )\\n )\\n }}\\n</div>\\n{{! template-lint-enable no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\n\nexport const DEFAULT_SIZE = 'medium';\nexport const SIZES = ['medium', 'large'];\n\nexport default class HdsTabsIndexComponent extends Component {\n @tracked tabNodes = [];\n @tracked tabIds = [];\n @tracked panelNodes = [];\n @tracked panelIds = [];\n @tracked _selectedTabIndex = this.args.selectedTabIndex ?? 0;\n @tracked selectedTabId;\n @tracked isControlled;\n\n /**\n * Sets the size of Tabs\n * Accepted values: medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor() {\n super(...arguments);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this.isControlled = this.args.selectedTabIndex !== undefined;\n }\n\n get selectedTabIndex() {\n if (this.isControlled) {\n return this.args.selectedTabIndex;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n @action\n didInsert() {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this.tabNodes.length === this.panelNodes.length\n );\n\n if (this.selectedTabId) {\n this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);\n }\n\n schedule('afterRender', () => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabIndex() {\n schedule('afterRender', () => {\n this.setTabIndicator();\n });\n }\n\n @action\n didUpdateSelectedTabId() {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this.selectedTabId) {\n this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);\n }\n }\n\n @action\n didUpdateParentVisibility() {\n schedule('afterRender', () => {\n this.setTabIndicator();\n });\n }\n\n @action\n didInsertTab(element, isSelected) {\n this.tabNodes = [...this.tabNodes, element];\n this.tabIds = [...this.tabIds, element.id];\n if (isSelected) {\n this.selectedTabId = element.id;\n }\n }\n\n @action\n didUpdateTab(tabIndex, isSelected) {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n }\n\n @action\n willDestroyTab(element) {\n this.tabNodes = this.tabNodes.filter((node) => node.id !== element.id);\n this.tabIds = this.tabIds.filter((tabId) => tabId !== element.id);\n }\n\n @action\n didInsertPanel(element, panelId) {\n this.panelNodes = [...this.panelNodes, element];\n this.panelIds = [...this.panelIds, panelId];\n }\n\n @action\n willDestroyPanel(element) {\n this.panelNodes = this.panelNodes.filter((node) => node.id !== element.id);\n this.panelIds = this.panelIds.filter((panelId) => panelId !== element.id);\n }\n\n @action\n onClick(event, tabIndex) {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n }\n\n @action\n onKeyUp(tabIndex, event) {\n const leftArrow = 37;\n const rightArrow = 39;\n const enterKey = 13;\n const spaceKey = 32;\n\n if (event.keyCode === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this.tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.keyCode === leftArrow) {\n const prevTabIndex =\n (tabIndex + this.tabIds.length - 1) % this.tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.keyCode === enterKey || event.keyCode === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n this.tabNodes[this.selectedTabIndex].parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n\n // Focus tab for keyboard & mouse navigation:\n focusTab(tabIndex, e) {\n e.preventDefault();\n this.tabNodes[tabIndex].focus();\n }\n\n setSelectedPanelFocus(tabIndex, e) {\n e.preventDefault();\n this.panelNodes[tabIndex].focus();\n }\n\n setTabIndicator() {\n next(() => {\n const tabElem = this.tabNodes[this.selectedTabIndex];\n\n if (tabElem) {\n const tabsParentElem = tabElem.closest('.hds-tabs__tablist');\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElem.parentNode.offsetParent) {\n const tabLeftPos = tabElem.parentNode.offsetLeft;\n const tabWidth = tabElem.parentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsParentElem.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsParentElem.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message;\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this.tabNodes.length === 0) {\n message +=\n ' (the array `this.tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this.tabNodes\\`, whose index range is [0 - ${\n this.tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n }\n}\n"],"names":["DEFAULT_SIZE","SIZES","HdsTabsIndexComponent","_class","Component","size","args","assert","join","includes","constructor","arguments","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","tabNodes","length","panelNodes","selectedTabId","tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","keyCode","nextTabIndex","focusTab","prevTabIndex","parentNode","scrollIntoView","behavior","block","inline","e","preventDefault","focus","setSelectedPanelFocus","next","tabElem","tabsParentElem","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { guidFor } from '@ember/object/internals';
|
|
4
4
|
import { action } from '@ember/object';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.hbs","../../../../src/components/hds/tabs/panel.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<section\\n class=\\\"hds-tabs__panel\\\"\\n ...attributes\\n role=\\\"tabpanel\\\"\\n id={{this.panelId}}\\n hidden={{not this.isVisible}}\\n aria-labelledby={{this.coupledTabId}}\\n {{did-insert this.didInsertNode}}\\n {{will-destroy this.willDestroyNode}}\\n>\\n {{yield (hash isVisible=this.isVisible)}}\\n</section>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nexport default class HdsTabsPanelComponent extends Component {\n /**\n * Generate a unique ID for the Panel\n * @return {string}\n */\n panelId = 'panel-' + guidFor(this);\n\n get nodeIndex() {\n return this.args.panelIds\n ? this.args.panelIds.indexOf(this.panelId)\n : undefined;\n }\n\n /**\n * Check the condition if the panel is visible (because the coupled/associated tab is selected) or not\n * @returns {boolean}\n */\n get isVisible() {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n /**\n * Get the ID of the tab coupled/associated with the panel (it's used by the `aria-labelledby` attribute)\n * @returns string}\n */\n get coupledTabId() {\n return this.nodeIndex !== undefined\n ? this.args.tabIds[this.nodeIndex]\n : undefined;\n }\n\n @action\n didInsertNode(element) {\n let { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n this.elementId = element.id;\n didInsertNode(element, this.elementId);\n }\n }\n\n @action\n willDestroyNode(element) {\n let { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n}\n"],"names":["HdsTabsPanelComponent","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","panelIds","indexOf","panelId","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","elementId","id","willDestroyNode","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,sYAAsY;;;ACQnZA,IAAAA,qBAAqB,IAAAC,MAAA,GAA3B,MAAMD,qBAAqB,SAASE,SAAS,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAC3D;AACF;AACA;AACA;AAHEC,IAAAA,eAAA,kBAIU,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAElC,IAAIC,SAASA,GAAG;AACd,IAAA,OAAO,IAAI,CAACH,IAAI,CAACI,QAAQ,GACrB,IAAI,CAACJ,IAAI,CAACI,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACC,OAAO,CAAC,GACxCC,SAAS,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;EACE,IAAIC,SAASA,GAAG;IACd,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACH,IAAI,CAACS,gBAAgB,CAAA;AACtD,GAAA;;AAEA;AACF;AACA;AACA;EACE,IAAIC,YAAYA,GAAG;AACjB,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAS,GAC/B,IAAI,CAACP,IAAI,CAACW,MAAM,CAAC,IAAI,CAACR,SAAS,CAAC,GAChCI,SAAS,CAAA;AACf,GAAA;EAGAK,aAAaA,CAACC,OAAO,EAAE;IACrB,IAAI;AAAED,MAAAA,aAAAA;KAAe,GAAG,IAAI,CAACZ,IAAI,CAAA;AAEjC,IAAA,IAAI,OAAOY,aAAa,KAAK,UAAU,EAAE;AACvC,MAAA,IAAI,CAACE,SAAS,GAAGD,OAAO,CAACE,EAAE,CAAA;AAC3BH,MAAAA,aAAa,CAACC,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC,CAAA;AACxC,KAAA;AACF,GAAA;EAGAE,eAAeA,CAACH,OAAO,EAAE;IACvB,IAAI;AAAEG,MAAAA,eAAAA;KAAiB,GAAG,IAAI,CAAChB,IAAI,CAAA;AAEnC,IAAA,IAAI,OAAOgB,eAAe,KAAK,UAAU,EAAE;MACzCA,eAAe,CAACH,OAAO,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;AACF,CAAC,GAAAI,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,oBAlBEC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,eAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,CAAAD,EAAAA,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,EAUNC,iBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,iBAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,IAAArB,MAAA,EAAA;AAzCiCyB,oBAAA,CAAAC,QAAA,
|
|
1
|
+
{"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.hbs","../../../../src/components/hds/tabs/panel.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<section\\n class=\\\"hds-tabs__panel\\\"\\n ...attributes\\n role=\\\"tabpanel\\\"\\n id={{this.panelId}}\\n hidden={{not this.isVisible}}\\n aria-labelledby={{this.coupledTabId}}\\n {{did-insert this.didInsertNode}}\\n {{will-destroy this.willDestroyNode}}\\n>\\n {{yield (hash isVisible=this.isVisible)}}\\n</section>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nexport default class HdsTabsPanelComponent extends Component {\n /**\n * Generate a unique ID for the Panel\n * @return {string}\n */\n panelId = 'panel-' + guidFor(this);\n\n get nodeIndex() {\n return this.args.panelIds\n ? this.args.panelIds.indexOf(this.panelId)\n : undefined;\n }\n\n /**\n * Check the condition if the panel is visible (because the coupled/associated tab is selected) or not\n * @returns {boolean}\n */\n get isVisible() {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n /**\n * Get the ID of the tab coupled/associated with the panel (it's used by the `aria-labelledby` attribute)\n * @returns string}\n */\n get coupledTabId() {\n return this.nodeIndex !== undefined\n ? this.args.tabIds[this.nodeIndex]\n : undefined;\n }\n\n @action\n didInsertNode(element) {\n let { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n this.elementId = element.id;\n didInsertNode(element, this.elementId);\n }\n }\n\n @action\n willDestroyNode(element) {\n let { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n}\n"],"names":["HdsTabsPanelComponent","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","panelIds","indexOf","panelId","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","elementId","id","willDestroyNode","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,sYAAsY;;;ACQnZA,IAAAA,qBAAqB,IAAAC,MAAA,GAA3B,MAAMD,qBAAqB,SAASE,SAAS,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAC3D;AACF;AACA;AACA;AAHEC,IAAAA,eAAA,kBAIU,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAElC,IAAIC,SAASA,GAAG;AACd,IAAA,OAAO,IAAI,CAACH,IAAI,CAACI,QAAQ,GACrB,IAAI,CAACJ,IAAI,CAACI,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACC,OAAO,CAAC,GACxCC,SAAS,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;EACE,IAAIC,SAASA,GAAG;IACd,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACH,IAAI,CAACS,gBAAgB,CAAA;AACtD,GAAA;;AAEA;AACF;AACA;AACA;EACE,IAAIC,YAAYA,GAAG;AACjB,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAS,GAC/B,IAAI,CAACP,IAAI,CAACW,MAAM,CAAC,IAAI,CAACR,SAAS,CAAC,GAChCI,SAAS,CAAA;AACf,GAAA;EAGAK,aAAaA,CAACC,OAAO,EAAE;IACrB,IAAI;AAAED,MAAAA,aAAAA;KAAe,GAAG,IAAI,CAACZ,IAAI,CAAA;AAEjC,IAAA,IAAI,OAAOY,aAAa,KAAK,UAAU,EAAE;AACvC,MAAA,IAAI,CAACE,SAAS,GAAGD,OAAO,CAACE,EAAE,CAAA;AAC3BH,MAAAA,aAAa,CAACC,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC,CAAA;AACxC,KAAA;AACF,GAAA;EAGAE,eAAeA,CAACH,OAAO,EAAE;IACvB,IAAI;AAAEG,MAAAA,eAAAA;KAAiB,GAAG,IAAI,CAAChB,IAAI,CAAA;AAEnC,IAAA,IAAI,OAAOgB,eAAe,KAAK,UAAU,EAAE;MACzCA,eAAe,CAACH,OAAO,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;AACF,CAAC,GAAAI,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,oBAlBEC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,eAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,CAAAD,EAAAA,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,EAUNC,iBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,iBAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,IAAArB,MAAA,EAAA;AAzCiCyB,oBAAA,CAAAC,QAAA,EAArB3B,qBAAqB,CAAA;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
|
|
2
2
|
import Component from '@glimmer/component';
|
|
3
3
|
import { guidFor } from '@ember/object/internals';
|
|
4
4
|
import { action } from '@ember/object';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.hbs","../../../../src/components/hds/tabs/tab.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable require-context-role no-invalid-role }}\\n<li class={{this.classNames}} ...attributes role=\\\"presentation\\\">\\n <button\\n class=\\\"hds-tabs__tab-button\\\"\\n role=\\\"tab\\\"\\n type=\\\"button\\\"\\n id={{this.tabId}}\\n aria-selected={{if this.isSelected \\\"true\\\" \\\"false\\\"}}\\n tabindex={{unless this.isSelected \\\"-1\\\"}}\\n {{did-insert this.didInsertNode @isSelected}}\\n {{did-update this.didUpdateNode @count @isSelected}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"click\\\" this.onClick}}\\n {{on \\\"keyup\\\" this.onKeyUp}}\\n >\\n {{#if @icon}}\\n <FlightIcon @name={{@icon}} class=\\\"hds-tabs__tab-icon\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n\\n {{yield}}\\n\\n {{#if @count}}\\n <Hds::BadgeCount @text={{@count}} @size=\\\"small\\\" class=\\\"hds-tabs__tab-count\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n </button>\\n</li>\\n{{! template-lint-enable require-context-role no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nexport default class HdsTabsTabComponent extends Component {\n /**\n * Generate a unique ID for the Tab\n * @return {string}\n */\n tabId = 'tab-' + guidFor(this);\n\n get nodeIndex() {\n return this.args.tabIds ? this.args.tabIds.indexOf(this.tabId) : undefined;\n }\n\n /**\n * Determine if the tab is the selected tab\n * @return {boolean}\n * @default false (1st tab is selected by default)\n */\n get isSelected() {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n @action\n didInsertNode(element, positional) {\n let { didInsertNode } = this.args;\n\n const isSelected = positional[0];\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, isSelected);\n }\n }\n\n @action\n didUpdateNode() {\n let { didUpdateNode } = this.args;\n\n if (typeof didUpdateNode === 'function') {\n didUpdateNode(this.nodeIndex, this.args.isSelected);\n }\n }\n\n @action\n willDestroyNode(element) {\n let { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n\n @action\n onClick(event) {\n let { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(event, this.nodeIndex);\n } else {\n return false;\n }\n }\n\n @action\n onKeyUp(event) {\n let { onKeyUp } = this.args;\n\n if (typeof onKeyUp === 'function') {\n onKeyUp(this.nodeIndex, event);\n } else {\n return false;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsTabsTabComponent","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","tabIds","indexOf","tabId","undefined","isSelected","selectedTabIndex","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.hbs","../../../../src/components/hds/tabs/tab.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable require-context-role no-invalid-role }}\\n<li class={{this.classNames}} ...attributes role=\\\"presentation\\\">\\n <button\\n class=\\\"hds-tabs__tab-button\\\"\\n role=\\\"tab\\\"\\n type=\\\"button\\\"\\n id={{this.tabId}}\\n aria-selected={{if this.isSelected \\\"true\\\" \\\"false\\\"}}\\n tabindex={{unless this.isSelected \\\"-1\\\"}}\\n {{did-insert this.didInsertNode @isSelected}}\\n {{did-update this.didUpdateNode @count @isSelected}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"click\\\" this.onClick}}\\n {{on \\\"keyup\\\" this.onKeyUp}}\\n >\\n {{#if @icon}}\\n <FlightIcon @name={{@icon}} class=\\\"hds-tabs__tab-icon\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n\\n {{yield}}\\n\\n {{#if @count}}\\n <Hds::BadgeCount @text={{@count}} @size=\\\"small\\\" class=\\\"hds-tabs__tab-count\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n </button>\\n</li>\\n{{! template-lint-enable require-context-role no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nexport default class HdsTabsTabComponent extends Component {\n /**\n * Generate a unique ID for the Tab\n * @return {string}\n */\n tabId = 'tab-' + guidFor(this);\n\n get nodeIndex() {\n return this.args.tabIds ? this.args.tabIds.indexOf(this.tabId) : undefined;\n }\n\n /**\n * Determine if the tab is the selected tab\n * @return {boolean}\n * @default false (1st tab is selected by default)\n */\n get isSelected() {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n @action\n didInsertNode(element, positional) {\n let { didInsertNode } = this.args;\n\n const isSelected = positional[0];\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, isSelected);\n }\n }\n\n @action\n didUpdateNode() {\n let { didUpdateNode } = this.args;\n\n if (typeof didUpdateNode === 'function') {\n didUpdateNode(this.nodeIndex, this.args.isSelected);\n }\n }\n\n @action\n willDestroyNode(element) {\n let { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n\n @action\n onClick(event) {\n let { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(event, this.nodeIndex);\n } else {\n return false;\n }\n }\n\n @action\n onKeyUp(event) {\n let { onKeyUp } = this.args;\n\n if (typeof onKeyUp === 'function') {\n onKeyUp(this.nodeIndex, event);\n } else {\n return false;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsTabsTabComponent","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","tabIds","indexOf","tabId","undefined","isSelected","selectedTabIndex","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,qgCAAqgC;;;ACQlhCA,IAAAA,mBAAmB,IAAAC,MAAA,GAAzB,MAAMD,mBAAmB,SAASE,SAAS,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AACzD;AACF;AACA;AACA;AAHEC,IAAAA,eAAA,gBAIQ,MAAM,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAE9B,IAAIC,SAASA,GAAG;AACd,IAAA,OAAO,IAAI,CAACH,IAAI,CAACI,MAAM,GAAG,IAAI,CAACJ,IAAI,CAACI,MAAM,CAACC,OAAO,CAAC,IAAI,CAACC,KAAK,CAAC,GAAGC,SAAS,CAAA;AAC5E,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAG;AACf,IAAA,OACE,IAAI,CAACL,SAAS,KAAKI,SAAS,IAC5B,IAAI,CAACJ,SAAS,KAAK,IAAI,CAACH,IAAI,CAACS,gBAAgB,CAAA;AAEjD,GAAA;AAGAC,EAAAA,aAAaA,CAACC,OAAO,EAAEC,UAAU,EAAE;IACjC,IAAI;AAAEF,MAAAA,aAAAA;KAAe,GAAG,IAAI,CAACV,IAAI,CAAA;AAEjC,IAAA,MAAMQ,UAAU,GAAGI,UAAU,CAAC,CAAC,CAAC,CAAA;AAEhC,IAAA,IAAI,OAAOF,aAAa,KAAK,UAAU,EAAE;AACvCA,MAAAA,aAAa,CAACC,OAAO,EAAEH,UAAU,CAAC,CAAA;AACpC,KAAA;AACF,GAAA;AAGAK,EAAAA,aAAaA,GAAG;IACd,IAAI;AAAEA,MAAAA,aAAAA;KAAe,GAAG,IAAI,CAACb,IAAI,CAAA;AAEjC,IAAA,IAAI,OAAOa,aAAa,KAAK,UAAU,EAAE;MACvCA,aAAa,CAAC,IAAI,CAACV,SAAS,EAAE,IAAI,CAACH,IAAI,CAACQ,UAAU,CAAC,CAAA;AACrD,KAAA;AACF,GAAA;EAGAM,eAAeA,CAACH,OAAO,EAAE;IACvB,IAAI;AAAEG,MAAAA,eAAAA;KAAiB,GAAG,IAAI,CAACd,IAAI,CAAA;AAEnC,IAAA,IAAI,OAAOc,eAAe,KAAK,UAAU,EAAE;MACzCA,eAAe,CAACH,OAAO,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;EAGAI,OAAOA,CAACC,KAAK,EAAE;IACb,IAAI;AAAED,MAAAA,OAAAA;KAAS,GAAG,IAAI,CAACf,IAAI,CAAA;AAE3B,IAAA,IAAI,OAAOe,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAACC,KAAK,EAAE,IAAI,CAACb,SAAS,CAAC,CAAA;AAChC,KAAC,MAAM;AACL,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;EAGAc,OAAOA,CAACD,KAAK,EAAE;IACb,IAAI;AAAEC,MAAAA,OAAAA;KAAS,GAAG,IAAI,CAACjB,IAAI,CAAA;AAE3B,IAAA,IAAI,OAAOiB,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACd,SAAS,EAAEa,KAAK,CAAC,CAAA;AAChC,KAAC,MAAM;AACL,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIE,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAA;IAE/B,IAAI,IAAI,CAACX,UAAU,EAAE;AACnBW,MAAAA,OAAO,CAACC,IAAI,CAAE,CAAA,0BAAA,CAA2B,CAAC,CAAA;AAC5C,KAAA;AAEA,IAAA,OAAOD,OAAO,CAACE,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAC,GAAAC,yBAAA,CAAAzB,MAAA,CAAA0B,SAAA,EAAA,eAAA,EAAA,CAjEEC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAA7B,MAAA,CAAA0B,SAAA,EAAA,eAAA,CAAA,EAAA1B,MAAA,CAAA0B,SAAA,CAAAD,EAAAA,yBAAA,CAAAzB,MAAA,CAAA0B,SAAA,EAAA,eAAA,EAAA,CAWNC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAA7B,MAAA,CAAA0B,SAAA,EAAA,eAAA,CAAA,EAAA1B,MAAA,CAAA0B,SAAA,GAAAD,yBAAA,CAAAzB,MAAA,CAAA0B,SAAA,EASNC,iBAAAA,EAAAA,CAAAA,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAA7B,MAAA,CAAA0B,SAAA,sBAAA1B,MAAA,CAAA0B,SAAA,CAAA,EAAAD,yBAAA,CAAAzB,MAAA,CAAA0B,SAAA,cASNC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAA7B,MAAA,CAAA0B,SAAA,cAAA1B,MAAA,CAAA0B,SAAA,CAAAD,EAAAA,yBAAA,CAAAzB,MAAA,CAAA0B,SAAA,EAAA,SAAA,EAAA,CAWNC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAA7B,MAAA,CAAA0B,SAAA,cAAA1B,MAAA,CAAA0B,SAAA,CAAA,GAAA1B,MAAA,EAAA;AA/D+B8B,oBAAA,CAAAC,QAAA,EAAnBhC,mBAAmB,CAAA;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { assert } from '@ember/debug';
|
|
3
|
+
import { HdsTagColorValues } from './types.js';
|
|
3
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
5
|
import { setComponentTemplate } from '@ember/component';
|
|
5
6
|
|
|
@@ -10,16 +11,16 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
|
|
|
10
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
class
|
|
14
|
+
const COLORS = Object.values(HdsTagColorValues);
|
|
15
|
+
const DEFAULT_COLOR = HdsTagColorValues.Primary;
|
|
16
|
+
class HdsTagComponent extends Component {
|
|
16
17
|
/**
|
|
17
18
|
* @param onDismiss
|
|
18
19
|
* @type {function}
|
|
19
20
|
* @default () => {}
|
|
20
21
|
*/
|
|
21
22
|
get onDismiss() {
|
|
22
|
-
|
|
23
|
+
const {
|
|
23
24
|
onDismiss
|
|
24
25
|
} = this.args;
|
|
25
26
|
if (typeof onDismiss === 'function') {
|
|
@@ -35,7 +36,7 @@ class HdsTagIndexComponent extends Component {
|
|
|
35
36
|
* @description The text of the tag. If no text value is defined, an error will be thrown.
|
|
36
37
|
*/
|
|
37
38
|
get text() {
|
|
38
|
-
|
|
39
|
+
const {
|
|
39
40
|
text
|
|
40
41
|
} = this.args;
|
|
41
42
|
assert('@text for "Hds::Tag" must have a valid value', text !== undefined);
|
|
@@ -48,7 +49,7 @@ class HdsTagIndexComponent extends Component {
|
|
|
48
49
|
* @default 'Dismiss'
|
|
49
50
|
*/
|
|
50
51
|
get ariaLabel() {
|
|
51
|
-
|
|
52
|
+
const tagAriaLabel = this.args.ariaLabel ?? 'Dismiss';
|
|
52
53
|
return tagAriaLabel + ' ' + this.args.text;
|
|
53
54
|
}
|
|
54
55
|
|
|
@@ -60,7 +61,7 @@ class HdsTagIndexComponent extends Component {
|
|
|
60
61
|
*/
|
|
61
62
|
get color() {
|
|
62
63
|
if (this.args.href || this.args.route) {
|
|
63
|
-
|
|
64
|
+
const {
|
|
64
65
|
color = DEFAULT_COLOR
|
|
65
66
|
} = this.args;
|
|
66
67
|
assert(`@color for "Hds::Tag" must be one of the following: ${COLORS.join(', ')}; received: ${color}`, COLORS.includes(color));
|
|
@@ -77,7 +78,7 @@ class HdsTagIndexComponent extends Component {
|
|
|
77
78
|
* @return {string} The "class" attribute to apply to the component.
|
|
78
79
|
*/
|
|
79
80
|
get classNames() {
|
|
80
|
-
|
|
81
|
+
const classes = ['hds-tag'];
|
|
81
82
|
|
|
82
83
|
// add a class based on the @color argument
|
|
83
84
|
if (this.color) {
|
|
@@ -86,7 +87,7 @@ class HdsTagIndexComponent extends Component {
|
|
|
86
87
|
return classes.join(' ');
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
|
-
setComponentTemplate(TEMPLATE,
|
|
90
|
+
setComponentTemplate(TEMPLATE, HdsTagComponent);
|
|
90
91
|
|
|
91
|
-
export { COLORS, DEFAULT_COLOR,
|
|
92
|
+
export { COLORS, DEFAULT_COLOR, HdsTagComponent as default };
|
|
92
93
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tag/index.hbs","../../../../src/components/hds/tag/index.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/tag/index.hbs","../../../../src/components/hds/tag/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::Text::Body class={{this.classNames}} @tag=\\\"span\\\" @size=\\\"100\\\" @weight=\\\"medium\\\" @color=\\\"primary\\\" ...attributes>\\n {{#if this.onDismiss}}\\n <button class=\\\"hds-tag__dismiss\\\" type=\\\"button\\\" aria-label={{this.ariaLabel}} {{on \\\"click\\\" this.onDismiss}}>\\n <FlightIcon class=\\\"hds-tag__dismiss-icon\\\" @name=\\\"x\\\" @size=\\\"16\\\" @isInlineBlock={{false}} />\\n </button>\\n {{/if}}\\n {{#if (or @href @route)}}\\n <Hds::Interactive\\n class=\\\"hds-tag__link\\\"\\n @current-when={{@current-when}}\\n @models={{hds-link-to-models @model @models}}\\n @query={{hds-link-to-query @query}}\\n @replace={{@replace}}\\n @route={{@route}}\\n @isRouteExternal={{@isRouteExternal}}\\n @href={{@href}}\\n @isHrefExternal={{@isHrefExternal}}\\n >\\n {{this.text}}\\n </Hds::Interactive>\\n {{else}}\\n <span class=\\\"hds-tag__text\\\">\\n {{this.text}}\\n </span>\\n {{/if}}\\n</Hds::Text::Body>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport { HdsTagColorValues } from './types.ts';\nimport type { HdsTagColors } from './types.ts';\nimport type { HdsInteractiveSignature } from '../interactive/';\n\nexport const COLORS: string[] = Object.values(HdsTagColorValues);\nexport const DEFAULT_COLOR = HdsTagColorValues.Primary;\n\ninterface HdsTagSignature {\n Args: HdsInteractiveSignature['Args'] & {\n color?: HdsTagColors;\n text: string;\n ariaLabel?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n };\n Element: HTMLSpanElement;\n}\n\nexport default class HdsTagComponent extends Component<HdsTagSignature> {\n /**\n * @param onDismiss\n * @type {function}\n * @default () => {}\n */\n get onDismiss() {\n const { onDismiss } = this.args;\n\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return false;\n }\n }\n\n /**\n * @param text\n * @type {string}\n * @description The text of the tag. If no text value is defined, an error will be thrown.\n */\n get text() {\n const { text } = this.args;\n\n assert('@text for \"Hds::Tag\" must have a valid value', text !== undefined);\n\n return text;\n }\n\n /**\n * @param ariaLabel\n * @type {string}\n * @default 'Dismiss'\n */\n get ariaLabel() {\n const tagAriaLabel = this.args.ariaLabel ?? 'Dismiss';\n return tagAriaLabel + ' ' + this.args.text;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of link to be used; acceptable values are `primary` and `secondary`\n */\n get color() {\n if (this.args.href || this.args.route) {\n const { color = DEFAULT_COLOR } = this.args;\n assert(\n `@color for \"Hds::Tag\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n return color;\n } else if (this.args.color) {\n assert(\n '@color can only be applied to \"Hds::Tag\" along with either @href or @route',\n this.args.href || this.args.route\n );\n }\n return false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-tag'];\n\n // add a class based on the @color argument\n if (this.color) {\n classes.push(`hds-tag--color-${this.color}`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["COLORS","Object","values","HdsTagColorValues","DEFAULT_COLOR","Primary","HdsTagComponent","Component","onDismiss","args","text","assert","undefined","ariaLabel","tagAriaLabel","color","href","route","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,mgCAAmgC;;ACDriC;AACA;AACA;AACA;;AASO,MAAMA,MAAgB,GAAGC,MAAM,CAACC,MAAM,CAACC,iBAAiB,EAAC;AACnDC,MAAAA,aAAa,GAAGD,iBAAiB,CAACE,QAAO;AAavC,MAAMC,eAAe,SAASC,SAAS,CAAkB;AACtE;AACF;AACA;AACA;AACA;EACE,IAAIC,SAASA,GAAG;IACd,MAAM;AAAEA,MAAAA,SAAAA;KAAW,GAAG,IAAI,CAACC,IAAI,CAAA;AAE/B,IAAA,IAAI,OAAOD,SAAS,KAAK,UAAU,EAAE;AACnC,MAAA,OAAOA,SAAS,CAAA;AAClB,KAAC,MAAM;AACL,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIE,IAAIA,GAAG;IACT,MAAM;AAAEA,MAAAA,IAAAA;KAAM,GAAG,IAAI,CAACD,IAAI,CAAA;AAE1BE,IAAAA,MAAM,CAAC,8CAA8C,EAAED,IAAI,KAAKE,SAAS,CAAC,CAAA;AAE1E,IAAA,OAAOF,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,SAASA,GAAG;IACd,MAAMC,YAAY,GAAG,IAAI,CAACL,IAAI,CAACI,SAAS,IAAI,SAAS,CAAA;IACrD,OAAOC,YAAY,GAAG,GAAG,GAAG,IAAI,CAACL,IAAI,CAACC,IAAI,CAAA;AAC5C,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,IAAIK,KAAKA,GAAG;IACV,IAAI,IAAI,CAACN,IAAI,CAACO,IAAI,IAAI,IAAI,CAACP,IAAI,CAACQ,KAAK,EAAE;MACrC,MAAM;AAAEF,QAAAA,KAAK,GAAGX,aAAAA;OAAe,GAAG,IAAI,CAACK,IAAI,CAAA;AAC3CE,MAAAA,MAAM,CACH,CAAsDX,oDAAAA,EAAAA,MAAM,CAACkB,IAAI,CAChE,IACF,CAAE,CAAA,YAAA,EAAcH,KAAM,CAAA,CAAC,EACvBf,MAAM,CAACmB,QAAQ,CAACJ,KAAK,CACvB,CAAC,CAAA;AACD,MAAA,OAAOA,KAAK,CAAA;AACd,KAAC,MAAM,IAAI,IAAI,CAACN,IAAI,CAACM,KAAK,EAAE;AAC1BJ,MAAAA,MAAM,CACJ,4EAA4E,EAC5E,IAAI,CAACF,IAAI,CAACO,IAAI,IAAI,IAAI,CAACP,IAAI,CAACQ,KAC9B,CAAC,CAAA;AACH,KAAA;AACA,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,UAAUA,GAAG;AACf,IAAA,MAAMC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;;AAE3B;IACA,IAAI,IAAI,CAACN,KAAK,EAAE;MACdM,OAAO,CAACC,IAAI,CAAE,CAAA,eAAA,EAAiB,IAAI,CAACP,KAAM,EAAC,CAAC,CAAA;AAC9C,KAAA;AAEA,IAAA,OAAOM,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACK,oBAAA,CAAAC,QAAA,EA/EoBlB,eAAe,CAAA;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) HashiCorp, Inc.
|
|
3
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
let HdsTagColorValues = /*#__PURE__*/function (HdsTagColorValues) {
|
|
7
|
+
HdsTagColorValues["Primary"] = "primary";
|
|
8
|
+
HdsTagColorValues["Secondary"] = "secondary";
|
|
9
|
+
return HdsTagColorValues;
|
|
10
|
+
}({});
|
|
11
|
+
|
|
12
|
+
export { HdsTagColorValues };
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/components/hds/tag/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsTagColorValues {\n Primary = 'primary',\n Secondary = 'secondary',\n}\nexport type HdsTagColors = `${HdsTagColorValues}`;\n"],"names":["HdsTagColorValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEYA,IAAAA,iBAAiB,0BAAjBA,iBAAiB,EAAA;EAAjBA,iBAAiB,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAjBA,iBAAiB,CAAA,WAAA,CAAA,GAAA,WAAA,CAAA;AAAA,EAAA,OAAjBA,iBAAiB,CAAA;AAAA,CAAA,CAAA,EAAA;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { assert } from '@ember/debug';
|
|
3
|
+
import { HdsTextSizeValues, HdsTextWeightValues } from './types.js';
|
|
3
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
5
|
import { setComponentTemplate } from '@ember/component';
|
|
5
6
|
|
|
@@ -10,13 +11,13 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
|
|
|
10
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const DEFAULT_WEIGHT =
|
|
14
|
+
const AVAILABLE_SIZES = [HdsTextSizeValues.ThreeHundred, HdsTextSizeValues.TwoHundred, HdsTextSizeValues.OneHundred];
|
|
15
|
+
const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;
|
|
16
|
+
const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;
|
|
16
17
|
const AVAILABLE_WEIGHTS_PER_SIZE = {
|
|
17
|
-
300: [
|
|
18
|
-
200: [
|
|
19
|
-
100: [
|
|
18
|
+
300: [HdsTextWeightValues.Regular, HdsTextWeightValues.Medium, HdsTextWeightValues.Semibold],
|
|
19
|
+
200: [HdsTextWeightValues.Regular, HdsTextWeightValues.Medium, HdsTextWeightValues.Semibold],
|
|
20
|
+
100: [HdsTextWeightValues.Regular, HdsTextWeightValues.Medium, HdsTextWeightValues.Semibold]
|
|
20
21
|
};
|
|
21
22
|
class HdsTextBodyComponent extends Component {
|
|
22
23
|
/**
|
|
@@ -49,7 +50,7 @@ class HdsTextBodyComponent extends Component {
|
|
|
49
50
|
* @param variant
|
|
50
51
|
*/
|
|
51
52
|
get weight() {
|
|
52
|
-
|
|
53
|
+
const {
|
|
53
54
|
weight = DEFAULT_WEIGHT
|
|
54
55
|
} = this.args;
|
|
55
56
|
const availableWeights = AVAILABLE_WEIGHTS_PER_SIZE[this.size];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sources":["../../../../src/components/hds/text/body.hbs","../../../../src/components/hds/text/body.
|
|
1
|
+
{"version":3,"file":"body.js","sources":["../../../../src/components/hds/text/body.hbs","../../../../src/components/hds/text/body.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::Text\\n @group=\\\"body\\\"\\n @size={{this.size}}\\n @weight={{this.weight}}\\n @align={{@align}}\\n @color={{@color}}\\n @tag={{@tag}}\\n ...attributes\\n>{{yield}}</Hds::Text>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTextSizeValues, HdsTextWeightValues } from './types.ts';\nimport type {\n HdsTextAligns,\n HdsTextColors,\n HdsTextTags,\n HdsTextWeights,\n} from './types.ts';\n\n// notice: only some combinations of size + font-weight are allowed (per design specs)\n// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192\n\n// Allow consumers to provide either string or number representation of size\ntype HdsTextBodySizeNumber = Extract<\n HdsTextSizeValues,\n | HdsTextSizeValues.OneHundred\n | HdsTextSizeValues.TwoHundred\n | HdsTextSizeValues.ThreeHundred\n>;\ntype HdsTextBodySizeString = `${HdsTextBodySizeNumber}`;\nexport type HdsTextBodySizes = HdsTextBodySizeNumber | HdsTextBodySizeString;\nexport const AVAILABLE_SIZES = [\n HdsTextSizeValues.ThreeHundred,\n HdsTextSizeValues.TwoHundred,\n HdsTextSizeValues.OneHundred,\n];\nexport const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;\n\nexport const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;\nexport type HdsTextBodyWeight = Extract<\n HdsTextWeights,\n 'regular' | 'medium' | 'semibold'\n>;\nexport const AVAILABLE_WEIGHTS_PER_SIZE: Record<\n HdsTextBodySizes,\n HdsTextBodyWeight[]\n> = {\n 300: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 200: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 100: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n};\n\nexport interface HdsTextBodySignature {\n Args: {\n size?: HdsTextBodySizes;\n tag?: HdsTextTags;\n weight?: HdsTextBodyWeight;\n align?: HdsTextAligns;\n color?: string | HdsTextColors;\n };\n Element:\n | HTMLSpanElement\n | HTMLHeadingElement\n | HTMLParagraphElement\n | HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport default class HdsTextBodyComponent extends Component<HdsTextBodySignature> {\n /**\n * Sets the \"size\" for the text\n * Accepted values: see AVAILABLE_SIZES\n *\n * @type {string}\n *\n * @param size\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n // let's be a bit forgiving with the consumers\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n assert(\n `@size for \"Hds::Text::Body\" must be one of the following: ${AVAILABLE_SIZES.join(\n ', '\n )}; received: ${size}`,\n AVAILABLE_SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the \"weight\" for the text\n * Accepted values: see AVAILABLE_WEIGHTS_PER_SIZE\n *\n * @type {string}\n *\n * @param variant\n */\n get weight() {\n const { weight = DEFAULT_WEIGHT } = this.args;\n\n const availableWeights = AVAILABLE_WEIGHTS_PER_SIZE[this.size];\n\n assert(\n `@weight for \"Hds::Text::Body\" with @size=${\n this.size\n } must be one of the following: ${availableWeights.join(\n ', '\n )}; received: ${weight}`,\n availableWeights.includes(weight)\n );\n\n return weight;\n }\n}\n"],"names":["AVAILABLE_SIZES","HdsTextSizeValues","ThreeHundred","TwoHundred","OneHundred","DEFAULT_SIZE","DEFAULT_WEIGHT","HdsTextWeightValues","Regular","AVAILABLE_WEIGHTS_PER_SIZE","Medium","Semibold","HdsTextBodyComponent","Component","size","args","parseInt","assert","join","includes","weight","availableWeights","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,mQAAmQ;;ACDrS;AACA;AACA;AACA;;AAwBaA,MAAAA,eAAe,GAAG,CAC7BC,iBAAiB,CAACC,YAAY,EAC9BD,iBAAiB,CAACE,UAAU,EAC5BF,iBAAiB,CAACG,UAAU,EAC7B;AACYC,MAAAA,YAAY,GAAGJ,iBAAiB,CAACE,WAAU;AAE3CG,MAAAA,cAAc,GAAGC,mBAAmB,CAACC,QAAO;AAKlD,MAAMC,0BAGZ,GAAG;AACF,EAAA,GAAG,EAAE,CACHF,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACG,MAAM,EAC1BH,mBAAmB,CAACI,QAAQ,CAC7B;AACD,EAAA,GAAG,EAAE,CACHJ,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACG,MAAM,EAC1BH,mBAAmB,CAACI,QAAQ,CAC7B;AACD,EAAA,GAAG,EAAE,CACHJ,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACG,MAAM,EAC1BH,mBAAmB,CAACI,QAAQ,CAAA;AAEhC,EAAC;AAoBc,MAAMC,oBAAoB,SAASC,SAAS,CAAuB;AAChF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,IAAI;AAAEA,MAAAA,IAAI,GAAGT,YAAAA;KAAc,GAAG,IAAI,CAACU,IAAI,CAAA;;AAEvC;AACA,IAAA,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;AAC5BA,MAAAA,IAAI,GAAGE,QAAQ,CAACF,IAAI,EAAE,EAAE,CAAC,CAAA;AAC3B,KAAA;AAEAG,IAAAA,MAAM,CACH,CAA4DjB,0DAAAA,EAAAA,eAAe,CAACkB,IAAI,CAC/E,IACF,CAAE,CAAA,YAAA,EAAcJ,IAAK,CAAA,CAAC,EACtBd,eAAe,CAACmB,QAAQ,CAACL,IAAI,CAC/B,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIM,MAAMA,GAAG;IACX,MAAM;AAAEA,MAAAA,MAAM,GAAGd,cAAAA;KAAgB,GAAG,IAAI,CAACS,IAAI,CAAA;AAE7C,IAAA,MAAMM,gBAAgB,GAAGZ,0BAA0B,CAAC,IAAI,CAACK,IAAI,CAAC,CAAA;IAE9DG,MAAM,CACH,4CACC,IAAI,CAACH,IACN,CAAiCO,+BAAAA,EAAAA,gBAAgB,CAACH,IAAI,CACrD,IACF,CAAE,CAAcE,YAAAA,EAAAA,MAAO,EAAC,EACxBC,gBAAgB,CAACF,QAAQ,CAACC,MAAM,CAClC,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AACF,CAAA;AAACE,oBAAA,CAAAC,QAAA,EAnDoBX,oBAAoB,CAAA;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { assert } from '@ember/debug';
|
|
3
|
+
import { HdsTextSizeValues, HdsTextWeightValues } from './types.js';
|
|
3
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
5
|
import { setComponentTemplate } from '@ember/component';
|
|
5
6
|
|
|
@@ -10,13 +11,13 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
|
|
|
10
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const DEFAULT_WEIGHT =
|
|
14
|
+
const AVAILABLE_SIZES = [HdsTextSizeValues.ThreeHundred, HdsTextSizeValues.TwoHundred, HdsTextSizeValues.OneHundred];
|
|
15
|
+
const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;
|
|
16
|
+
const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;
|
|
16
17
|
const AVAILABLE_WEIGHTS_PER_SIZE = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
[HdsTextSizeValues.ThreeHundred]: [HdsTextWeightValues.Regular, HdsTextWeightValues.Bold],
|
|
19
|
+
[HdsTextSizeValues.TwoHundred]: [HdsTextWeightValues.Regular, HdsTextWeightValues.Bold],
|
|
20
|
+
[HdsTextSizeValues.OneHundred]: [HdsTextWeightValues.Regular, HdsTextWeightValues.Bold]
|
|
20
21
|
};
|
|
21
22
|
class HdsTextCodeComponent extends Component {
|
|
22
23
|
/**
|
|
@@ -49,7 +50,7 @@ class HdsTextCodeComponent extends Component {
|
|
|
49
50
|
* @param variant
|
|
50
51
|
*/
|
|
51
52
|
get weight() {
|
|
52
|
-
|
|
53
|
+
const {
|
|
53
54
|
weight = DEFAULT_WEIGHT
|
|
54
55
|
} = this.args;
|
|
55
56
|
const availableWeights = AVAILABLE_WEIGHTS_PER_SIZE[this.size];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sources":["../../../../src/components/hds/text/code.hbs","../../../../src/components/hds/text/code.
|
|
1
|
+
{"version":3,"file":"code.js","sources":["../../../../src/components/hds/text/code.hbs","../../../../src/components/hds/text/code.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::Text\\n @group=\\\"code\\\"\\n @size={{this.size}}\\n @weight={{this.weight}}\\n @align={{@align}}\\n @color={{@color}}\\n @tag={{@tag}}\\n ...attributes\\n>{{yield}}</Hds::Text>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTextSizeValues, HdsTextWeightValues } from './types.ts';\nimport type {\n HdsTextAligns,\n HdsTextColors,\n HdsTextTags,\n HdsTextWeights,\n} from './types.ts';\n\n// notice: only some combinations of size + font-weight are allowed (per design specs)\n// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192\n\n// Allow consumers to provide either string or number representation of size\ntype HdsTextCodeSizeNumber = Extract<\n HdsTextSizeValues,\n | HdsTextSizeValues.OneHundred\n | HdsTextSizeValues.TwoHundred\n | HdsTextSizeValues.ThreeHundred\n>;\ntype HdsTextCodeSizeString = `${HdsTextCodeSizeNumber}`;\nexport type HdsTextCodeSizes = HdsTextCodeSizeNumber | HdsTextCodeSizeString;\nexport const AVAILABLE_SIZES = [\n HdsTextSizeValues.ThreeHundred,\n HdsTextSizeValues.TwoHundred,\n HdsTextSizeValues.OneHundred,\n];\nexport const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;\n\nexport const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;\nexport type HdsTextCodeWeight = Extract<HdsTextWeights, 'regular' | 'bold'>;\nexport const AVAILABLE_WEIGHTS_PER_SIZE: Record<\n HdsTextCodeSizes,\n HdsTextCodeWeight[]\n> = {\n [HdsTextSizeValues.ThreeHundred]: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Bold,\n ],\n [HdsTextSizeValues.TwoHundred]: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Bold,\n ],\n [HdsTextSizeValues.OneHundred]: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Bold,\n ],\n};\n\nexport interface HdsTextCodeSignature {\n Args: {\n size?: HdsTextCodeSizes;\n tag?: HdsTextTags;\n weight?: HdsTextCodeWeight;\n align?: HdsTextAligns;\n color?: string | HdsTextColors;\n };\n Element:\n | HTMLSpanElement\n | HTMLHeadingElement\n | HTMLParagraphElement\n | HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport default class HdsTextCodeComponent extends Component<HdsTextCodeSignature> {\n /**\n * Sets the \"size\" for the text\n * Accepted values: see AVAILABLE_SIZES\n *\n * @type {string}\n *\n * @param size\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n // let's be a bit forgiving with the consumers\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n assert(\n `@size for \"Hds::Text::Code\" must be one of the following: ${AVAILABLE_SIZES.join(\n ', '\n )}; received: ${size}`,\n AVAILABLE_SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the \"weight\" for the text\n * Accepted values: see AVAILABLE_WEIGHTS_PER_SIZE\n *\n * @type {string}\n *\n * @param variant\n */\n get weight() {\n const { weight = DEFAULT_WEIGHT } = this.args;\n\n const availableWeights = AVAILABLE_WEIGHTS_PER_SIZE[this.size];\n\n assert(\n `@weight for \"Hds::Text::Code\" with @size=${\n this.size\n } must be one of the following: ${availableWeights.join(\n ', '\n )}; received: ${weight}`,\n availableWeights.includes(weight)\n );\n\n return weight;\n }\n}\n"],"names":["AVAILABLE_SIZES","HdsTextSizeValues","ThreeHundred","TwoHundred","OneHundred","DEFAULT_SIZE","DEFAULT_WEIGHT","HdsTextWeightValues","Regular","AVAILABLE_WEIGHTS_PER_SIZE","Bold","HdsTextCodeComponent","Component","size","args","parseInt","assert","join","includes","weight","availableWeights","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,mQAAmQ;;ACDrS;AACA;AACA;AACA;;AAwBaA,MAAAA,eAAe,GAAG,CAC7BC,iBAAiB,CAACC,YAAY,EAC9BD,iBAAiB,CAACE,UAAU,EAC5BF,iBAAiB,CAACG,UAAU,EAC7B;AACYC,MAAAA,YAAY,GAAGJ,iBAAiB,CAACE,WAAU;AAE3CG,MAAAA,cAAc,GAAGC,mBAAmB,CAACC,QAAO;AAElD,MAAMC,0BAGZ,GAAG;AACF,EAAA,CAACR,iBAAiB,CAACC,YAAY,GAAG,CAChCK,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACG,IAAI,CACzB;AACD,EAAA,CAACT,iBAAiB,CAACE,UAAU,GAAG,CAC9BI,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACG,IAAI,CACzB;EACD,CAACT,iBAAiB,CAACG,UAAU,GAAG,CAC9BG,mBAAmB,CAACC,OAAO,EAC3BD,mBAAmB,CAACG,IAAI,CAAA;AAE5B,EAAC;AAoBc,MAAMC,oBAAoB,SAASC,SAAS,CAAuB;AAChF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,IAAI;AAAEA,MAAAA,IAAI,GAAGR,YAAAA;KAAc,GAAG,IAAI,CAACS,IAAI,CAAA;;AAEvC;AACA,IAAA,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;AAC5BA,MAAAA,IAAI,GAAGE,QAAQ,CAACF,IAAI,EAAE,EAAE,CAAC,CAAA;AAC3B,KAAA;AAEAG,IAAAA,MAAM,CACH,CAA4DhB,0DAAAA,EAAAA,eAAe,CAACiB,IAAI,CAC/E,IACF,CAAE,CAAA,YAAA,EAAcJ,IAAK,CAAA,CAAC,EACtBb,eAAe,CAACkB,QAAQ,CAACL,IAAI,CAC/B,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIM,MAAMA,GAAG;IACX,MAAM;AAAEA,MAAAA,MAAM,GAAGb,cAAAA;KAAgB,GAAG,IAAI,CAACQ,IAAI,CAAA;AAE7C,IAAA,MAAMM,gBAAgB,GAAGX,0BAA0B,CAAC,IAAI,CAACI,IAAI,CAAC,CAAA;IAE9DG,MAAM,CACH,4CACC,IAAI,CAACH,IACN,CAAiCO,+BAAAA,EAAAA,gBAAgB,CAACH,IAAI,CACrD,IACF,CAAE,CAAcE,YAAAA,EAAAA,MAAO,EAAC,EACxBC,gBAAgB,CAACF,QAAQ,CAACC,MAAM,CAClC,CAAC,CAAA;AAED,IAAA,OAAOA,MAAM,CAAA;AACf,GAAA;AACF,CAAA;AAACE,oBAAA,CAAAC,QAAA,EAnDoBX,oBAAoB,CAAA;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
2
|
import { assert } from '@ember/debug';
|
|
3
|
+
import { HdsTextSizeValues, HdsTextWeightValues } from './types.js';
|
|
3
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
5
|
import { setComponentTemplate } from '@ember/component';
|
|
5
6
|
|
|
@@ -10,21 +11,27 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
|
|
|
10
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
// notice: only some combinations of size + font-weight are allowed (per design specs)
|
|
15
|
+
// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192
|
|
16
|
+
|
|
17
|
+
const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;
|
|
18
|
+
|
|
19
|
+
// Filter out reverse mappings from enum
|
|
20
|
+
// https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings
|
|
21
|
+
const AVAILABLE_SIZES = Object.values(HdsTextSizeValues).filter(v => typeof v === 'number');
|
|
15
22
|
const DEFAULT_WEIGHTS_PER_SIZE = {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
[HdsTextSizeValues.FiveHundred]: HdsTextWeightValues.Bold,
|
|
24
|
+
[HdsTextSizeValues.FourHundred]: HdsTextWeightValues.Semibold,
|
|
25
|
+
[HdsTextSizeValues.ThreeHundred]: HdsTextWeightValues.Semibold,
|
|
26
|
+
[HdsTextSizeValues.TwoHundred]: HdsTextWeightValues.Semibold,
|
|
27
|
+
[HdsTextSizeValues.OneHundred]: HdsTextWeightValues.Medium
|
|
21
28
|
};
|
|
22
29
|
const AVAILABLE_WEIGHTS_PER_SIZE = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
[HdsTextSizeValues.FiveHundred]: [HdsTextWeightValues.Bold],
|
|
31
|
+
[HdsTextSizeValues.FourHundred]: [HdsTextWeightValues.Medium, HdsTextWeightValues.Semibold, HdsTextWeightValues.Bold],
|
|
32
|
+
[HdsTextSizeValues.ThreeHundred]: [HdsTextWeightValues.Medium, HdsTextWeightValues.Semibold, HdsTextWeightValues.Bold],
|
|
33
|
+
[HdsTextSizeValues.TwoHundred]: [HdsTextWeightValues.Semibold],
|
|
34
|
+
[HdsTextSizeValues.OneHundred]: [HdsTextWeightValues.Medium]
|
|
28
35
|
};
|
|
29
36
|
class HdsTextDisplayComponent extends Component {
|
|
30
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sources":["../../../../src/components/hds/text/display.hbs","../../../../src/components/hds/text/display.
|
|
1
|
+
{"version":3,"file":"display.js","sources":["../../../../src/components/hds/text/display.hbs","../../../../src/components/hds/text/display.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::Text\\n @group=\\\"display\\\"\\n @size={{this.size}}\\n @weight={{this.weight}}\\n @align={{@align}}\\n @color={{@color}}\\n @tag={{@tag}}\\n ...attributes\\n>{{yield}}</Hds::Text>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTextSizeValues, HdsTextWeightValues } from './types.ts';\nimport type {\n HdsTextAligns,\n HdsTextColors,\n HdsTextSizes,\n HdsTextTags,\n HdsTextWeights,\n} from './types.ts';\n\n// notice: only some combinations of size + font-weight are allowed (per design specs)\n// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192\n\nexport const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;\n\n// Filter out reverse mappings from enum\n// https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings\nexport const AVAILABLE_SIZES = Object.values(HdsTextSizeValues).filter(\n (v) => typeof v === 'number'\n);\n\nexport type HdsTextDisplayWeight = Extract<\n HdsTextWeights,\n 'medium' | 'semibold' | 'bold'\n>;\nexport const DEFAULT_WEIGHTS_PER_SIZE: Record<\n HdsTextSizeValues,\n HdsTextDisplayWeight\n> = {\n [HdsTextSizeValues.FiveHundred]: HdsTextWeightValues.Bold,\n [HdsTextSizeValues.FourHundred]: HdsTextWeightValues.Semibold,\n [HdsTextSizeValues.ThreeHundred]: HdsTextWeightValues.Semibold,\n [HdsTextSizeValues.TwoHundred]: HdsTextWeightValues.Semibold,\n [HdsTextSizeValues.OneHundred]: HdsTextWeightValues.Medium,\n};\nexport const AVAILABLE_WEIGHTS_PER_SIZE: Record<\n HdsTextSizes,\n HdsTextDisplayWeight[]\n> = {\n [HdsTextSizeValues.FiveHundred]: [HdsTextWeightValues.Bold],\n [HdsTextSizeValues.FourHundred]: [\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n HdsTextWeightValues.Bold,\n ],\n [HdsTextSizeValues.ThreeHundred]: [\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n HdsTextWeightValues.Bold,\n ],\n [HdsTextSizeValues.TwoHundred]: [HdsTextWeightValues.Semibold],\n [HdsTextSizeValues.OneHundred]: [HdsTextWeightValues.Medium],\n};\n\nexport interface HdsTextDisplaySignature {\n Args: {\n size?: HdsTextSizes;\n tag?: HdsTextTags;\n weight?: HdsTextDisplayWeight;\n align?: HdsTextAligns;\n color?: string | HdsTextColors;\n };\n Element:\n | HTMLSpanElement\n | HTMLHeadingElement\n | HTMLParagraphElement\n | HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport default class HdsTextDisplayComponent extends Component<HdsTextDisplaySignature> {\n /**\n * Sets the \"size\" for the text\n * Accepted values: see AVAILABLE_SIZES\n *\n * @type {string}\n *\n * @param size\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n // let's be a bit forgiving with the consumers\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n assert(\n `@size for \"Hds::Text::Display\" must be one of the following: ${AVAILABLE_SIZES.join(\n ', '\n )}; received: ${size}`,\n AVAILABLE_SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the \"weight\" for the text\n * Accepted values: see AVAILABLE_WEIGHTS_PER_SIZE\n *\n * @type {string}\n *\n * @param variant\n */\n get weight() {\n let { weight } = this.args;\n\n if (weight) {\n const availableWeights = AVAILABLE_WEIGHTS_PER_SIZE[this.size];\n assert(\n `@weight for \"Hds::Text::Display\" with @size=${\n this.size\n } must be one of the following: ${availableWeights.join(\n ', '\n )}; received: ${weight}`,\n availableWeights.includes(weight)\n );\n } else {\n // use the default (first item in the array)\n weight = DEFAULT_WEIGHTS_PER_SIZE[this.size];\n }\n\n return weight;\n }\n}\n"],"names":["DEFAULT_SIZE","HdsTextSizeValues","TwoHundred","AVAILABLE_SIZES","Object","values","filter","v","DEFAULT_WEIGHTS_PER_SIZE","FiveHundred","HdsTextWeightValues","Bold","FourHundred","Semibold","ThreeHundred","OneHundred","Medium","AVAILABLE_WEIGHTS_PER_SIZE","HdsTextDisplayComponent","Component","size","args","parseInt","assert","join","includes","weight","availableWeights","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,sQAAsQ;;ACDxS;AACA;AACA;AACA;;AAaA;AACA;;AAEaA,MAAAA,YAAY,GAAGC,iBAAiB,CAACC,WAAU;;AAExD;AACA;MACaC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAACJ,iBAAiB,CAAC,CAACK,MAAM,CACnEC,CAAC,IAAK,OAAOA,CAAC,KAAK,QACtB,EAAC;AAMM,MAAMC,wBAGZ,GAAG;AACF,EAAA,CAACP,iBAAiB,CAACQ,WAAW,GAAGC,mBAAmB,CAACC,IAAI;AACzD,EAAA,CAACV,iBAAiB,CAACW,WAAW,GAAGF,mBAAmB,CAACG,QAAQ;AAC7D,EAAA,CAACZ,iBAAiB,CAACa,YAAY,GAAGJ,mBAAmB,CAACG,QAAQ;AAC9D,EAAA,CAACZ,iBAAiB,CAACC,UAAU,GAAGQ,mBAAmB,CAACG,QAAQ;AAC5D,EAAA,CAACZ,iBAAiB,CAACc,UAAU,GAAGL,mBAAmB,CAACM,MAAAA;AACtD,EAAC;AACM,MAAMC,0BAGZ,GAAG;EACF,CAAChB,iBAAiB,CAACQ,WAAW,GAAG,CAACC,mBAAmB,CAACC,IAAI,CAAC;AAC3D,EAAA,CAACV,iBAAiB,CAACW,WAAW,GAAG,CAC/BF,mBAAmB,CAACM,MAAM,EAC1BN,mBAAmB,CAACG,QAAQ,EAC5BH,mBAAmB,CAACC,IAAI,CACzB;AACD,EAAA,CAACV,iBAAiB,CAACa,YAAY,GAAG,CAChCJ,mBAAmB,CAACM,MAAM,EAC1BN,mBAAmB,CAACG,QAAQ,EAC5BH,mBAAmB,CAACC,IAAI,CACzB;EACD,CAACV,iBAAiB,CAACC,UAAU,GAAG,CAACQ,mBAAmB,CAACG,QAAQ,CAAC;AAC9D,EAAA,CAACZ,iBAAiB,CAACc,UAAU,GAAG,CAACL,mBAAmB,CAACM,MAAM,CAAA;AAC7D,EAAC;AAoBc,MAAME,uBAAuB,SAASC,SAAS,CAA0B;AACtF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,IAAI;AAAEA,MAAAA,IAAI,GAAGpB,YAAAA;KAAc,GAAG,IAAI,CAACqB,IAAI,CAAA;;AAEvC;AACA,IAAA,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;AAC5BA,MAAAA,IAAI,GAAGE,QAAQ,CAACF,IAAI,EAAE,EAAE,CAAC,CAAA;AAC3B,KAAA;AAEAG,IAAAA,MAAM,CACH,CAA+DpB,6DAAAA,EAAAA,eAAe,CAACqB,IAAI,CAClF,IACF,CAAE,CAAA,YAAA,EAAcJ,IAAK,CAAA,CAAC,EACtBjB,eAAe,CAACsB,QAAQ,CAACL,IAAI,CAC/B,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIM,MAAMA,GAAG;IACX,IAAI;AAAEA,MAAAA,MAAAA;KAAQ,GAAG,IAAI,CAACL,IAAI,CAAA;AAE1B,IAAA,IAAIK,MAAM,EAAE;AACV,MAAA,MAAMC,gBAAgB,GAAGV,0BAA0B,CAAC,IAAI,CAACG,IAAI,CAAC,CAAA;MAC9DG,MAAM,CACH,+CACC,IAAI,CAACH,IACN,CAAiCO,+BAAAA,EAAAA,gBAAgB,CAACH,IAAI,CACrD,IACF,CAAE,CAAcE,YAAAA,EAAAA,MAAO,EAAC,EACxBC,gBAAgB,CAACF,QAAQ,CAACC,MAAM,CAClC,CAAC,CAAA;AACH,KAAC,MAAM;AACL;AACAA,MAAAA,MAAM,GAAGlB,wBAAwB,CAAC,IAAI,CAACY,IAAI,CAAC,CAAA;AAC9C,KAAA;AAEA,IAAA,OAAOM,MAAM,CAAA;AACf,GAAA;AACF,CAAA;AAACE,oBAAA,CAAAC,QAAA,EAvDoBX,uBAAuB,CAAA;;;;"}
|