@hashicorp/design-system-components 4.13.1 → 4.14.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.
Files changed (166) hide show
  1. package/declarations/components/hds/app-side-nav/index.d.ts +45 -0
  2. package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -0
  3. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +15 -0
  4. package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -0
  5. package/declarations/components/hds/app-side-nav/list/index.d.ts +32 -0
  6. package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -0
  7. package/declarations/components/hds/app-side-nav/list/item.d.ts +14 -0
  8. package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -0
  9. package/declarations/components/hds/app-side-nav/list/link.d.ts +24 -0
  10. package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -0
  11. package/declarations/components/hds/app-side-nav/list/title.d.ts +19 -0
  12. package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -0
  13. package/declarations/components/hds/app-side-nav/portal/index.d.ts +27 -0
  14. package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -0
  15. package/declarations/components/hds/app-side-nav/portal/target.d.ts +37 -0
  16. package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -0
  17. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +15 -0
  18. package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -0
  19. package/declarations/components/hds/dropdown/index.d.ts +3 -0
  20. package/declarations/components/hds/dropdown/index.d.ts.map +1 -1
  21. package/declarations/components/hds/form/masked-input/base.d.ts +1 -23
  22. package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
  23. package/declarations/components/hds/form/text-input/field.d.ts +2 -16
  24. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  25. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  26. package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
  27. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  28. package/declarations/components/hds/popover-primitive/index.d.ts +1 -0
  29. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  30. package/declarations/components/hds/side-nav/index.d.ts +9 -8
  31. package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
  32. package/declarations/components/hds/side-nav/list/index.d.ts +6 -3
  33. package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
  34. package/declarations/components/hds/side-nav/list/title.d.ts +8 -3
  35. package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
  36. package/declarations/components/hds/table/index.d.ts +1 -0
  37. package/declarations/components/hds/table/index.d.ts.map +1 -1
  38. package/declarations/components/hds/table/th-selectable.d.ts +1 -0
  39. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  40. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  41. package/declarations/modifiers/hds-anchored-position.d.ts +1 -0
  42. package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
  43. package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
  44. package/declarations/template-registry.d.ts +36 -0
  45. package/declarations/template-registry.d.ts.map +1 -1
  46. package/dist/components/hds/alert/description.js +2 -2
  47. package/dist/components/hds/app-footer/item.js +2 -2
  48. package/dist/components/hds/app-footer/link.js +2 -2
  49. package/dist/components/hds/app-frame/parts/footer.js +2 -2
  50. package/dist/components/hds/app-frame/parts/header.js +2 -2
  51. package/dist/components/hds/app-frame/parts/main.js +2 -2
  52. package/dist/components/hds/app-frame/parts/modals.js +2 -2
  53. package/dist/components/hds/app-frame/parts/sidebar.js +2 -2
  54. package/dist/components/hds/app-side-nav/index.js +187 -0
  55. package/dist/components/hds/app-side-nav/index.js.map +1 -0
  56. package/dist/components/hds/app-side-nav/list/back-link.js +16 -0
  57. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -0
  58. package/dist/components/hds/app-side-nav/list/index.js +33 -0
  59. package/dist/components/hds/app-side-nav/list/index.js.map +1 -0
  60. package/dist/components/hds/app-side-nav/list/item.js +16 -0
  61. package/dist/components/hds/app-side-nav/list/item.js.map +1 -0
  62. package/dist/components/hds/app-side-nav/list/link.js +16 -0
  63. package/dist/components/hds/app-side-nav/list/link.js.map +1 -0
  64. package/dist/components/hds/app-side-nav/list/title.js +29 -0
  65. package/dist/components/hds/app-side-nav/list/title.js.map +1 -0
  66. package/dist/components/hds/app-side-nav/portal/index.js +16 -0
  67. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -0
  68. package/dist/components/hds/app-side-nav/portal/target.js +173 -0
  69. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -0
  70. package/dist/components/hds/app-side-nav/toggle-button.js +16 -0
  71. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -0
  72. package/dist/components/hds/application-state/body.js +2 -2
  73. package/dist/components/hds/application-state/footer.js +2 -2
  74. package/dist/components/hds/application-state/media.js +2 -2
  75. package/dist/components/hds/button-set/index.js +2 -2
  76. package/dist/components/hds/code-block/copy-button.js +2 -2
  77. package/dist/components/hds/code-block/description.js +2 -2
  78. package/dist/components/hds/dialog-primitive/body.js +2 -2
  79. package/dist/components/hds/dialog-primitive/description.js +2 -2
  80. package/dist/components/hds/dialog-primitive/overlay.js +2 -2
  81. package/dist/components/hds/dialog-primitive/wrapper.js +2 -2
  82. package/dist/components/hds/dropdown/footer.js +2 -2
  83. package/dist/components/hds/dropdown/header.js +2 -2
  84. package/dist/components/hds/dropdown/index.js +7 -3
  85. package/dist/components/hds/dropdown/index.js.map +1 -1
  86. package/dist/components/hds/dropdown/list-item/generic.js +2 -2
  87. package/dist/components/hds/dropdown/list-item/separator.js +2 -2
  88. package/dist/components/hds/dropdown/toggle/chevron.js +2 -2
  89. package/dist/components/hds/form/checkbox/base.js +2 -2
  90. package/dist/components/hds/form/checkbox/field.js +2 -2
  91. package/dist/components/hds/form/checkbox/group.js +2 -2
  92. package/dist/components/hds/form/error/message.js +2 -2
  93. package/dist/components/hds/form/file-input/base.js +2 -2
  94. package/dist/components/hds/form/file-input/field.js +2 -2
  95. package/dist/components/hds/form/masked-input/base.js +5 -34
  96. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  97. package/dist/components/hds/form/masked-input/field.js +2 -2
  98. package/dist/components/hds/form/radio/base.js +2 -2
  99. package/dist/components/hds/form/radio/field.js +2 -2
  100. package/dist/components/hds/form/radio/group.js +2 -2
  101. package/dist/components/hds/form/radio-card/description.js +2 -2
  102. package/dist/components/hds/form/radio-card/group.js +2 -2
  103. package/dist/components/hds/form/radio-card/label.js +2 -2
  104. package/dist/components/hds/form/select/field.js +2 -2
  105. package/dist/components/hds/form/super-select/after-options.js +2 -2
  106. package/dist/components/hds/form/super-select/placeholder.js +2 -2
  107. package/dist/components/hds/form/text-input/field.js +10 -33
  108. package/dist/components/hds/form/text-input/field.js.map +1 -1
  109. package/dist/components/hds/form/textarea/field.js +2 -2
  110. package/dist/components/hds/form/toggle/base.js +2 -2
  111. package/dist/components/hds/form/toggle/field.js +2 -2
  112. package/dist/components/hds/form/toggle/group.js +2 -2
  113. package/dist/components/hds/form/visibility-toggle/index.js +2 -2
  114. package/dist/components/hds/page-header/actions.js +2 -2
  115. package/dist/components/hds/page-header/badges.js +2 -2
  116. package/dist/components/hds/page-header/description.js +2 -2
  117. package/dist/components/hds/page-header/index.js +2 -2
  118. package/dist/components/hds/page-header/subtitle.js +2 -2
  119. package/dist/components/hds/page-header/title.js +2 -2
  120. package/dist/components/hds/pagination/compact/index.js +4 -3
  121. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  122. package/dist/components/hds/pagination/nav/ellipsis.js +2 -2
  123. package/dist/components/hds/pagination/numbered/index.js +5 -7
  124. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  125. package/dist/components/hds/popover-primitive/index.js +4 -5
  126. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  127. package/dist/components/hds/segmented-group/index.js +2 -2
  128. package/dist/components/hds/side-nav/base.js +3 -3
  129. package/dist/components/hds/side-nav/base.js.map +1 -1
  130. package/dist/components/hds/side-nav/header/index.js +2 -2
  131. package/dist/components/hds/side-nav/index.js +37 -36
  132. package/dist/components/hds/side-nav/index.js.map +1 -1
  133. package/dist/components/hds/side-nav/list/back-link.js +2 -2
  134. package/dist/components/hds/side-nav/list/index.js +27 -10
  135. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  136. package/dist/components/hds/side-nav/list/item.js +2 -2
  137. package/dist/components/hds/side-nav/list/link.js +2 -2
  138. package/dist/components/hds/side-nav/list/title.js +23 -10
  139. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  140. package/dist/components/hds/side-nav/portal/index.js +2 -2
  141. package/dist/components/hds/side-nav/toggle-button.js +2 -2
  142. package/dist/components/hds/table/index.js +6 -8
  143. package/dist/components/hds/table/index.js.map +1 -1
  144. package/dist/components/hds/table/th-selectable.js +4 -5
  145. package/dist/components/hds/table/th-selectable.js.map +1 -1
  146. package/dist/components/hds/tabs/index.js +2 -3
  147. package/dist/components/hds/tabs/index.js.map +1 -1
  148. package/dist/components/hds/toast/index.js +2 -2
  149. package/dist/components/hds/yield/index.js +2 -2
  150. package/dist/modifiers/hds-anchored-position.js +15 -16
  151. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  152. package/dist/modifiers/hds-clipboard.js +15 -6
  153. package/dist/modifiers/hds-clipboard.js.map +1 -1
  154. package/dist/styles/@hashicorp/design-system-components.css +41 -293
  155. package/dist/styles/@hashicorp/design-system-components.scss +2 -1
  156. package/dist/styles/components/app-side-nav/content.scss +182 -0
  157. package/dist/styles/components/app-side-nav/index.scss +9 -0
  158. package/dist/styles/components/app-side-nav/main.scss +147 -0
  159. package/dist/styles/components/app-side-nav/toggle-button.scss +101 -0
  160. package/dist/styles/components/app-side-nav/vars.scss +36 -0
  161. package/dist/styles/components/dropdown.scss +6 -0
  162. package/dist/styles/components/side-nav/content.scss +5 -0
  163. package/package.json +2 -4
  164. package/dist/_app_/components/hds/app-header/home-link.js +0 -1
  165. package/dist/_app_/components/hds/app-header/index.js +0 -1
  166. package/dist/_app_/components/hds/app-header/menu-button.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/dropdown/index.hbs","../../../../src/components/hds/dropdown/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::PopoverPrimitive @isOpen={{@isOpen}} @onClose={{@onClose}} @enableClickEvents={{true}} as |PP|>\\n <div class={{this.classNames}} ...attributes {{PP.setupPrimitiveContainer}}>\\n {{yield\\n (hash\\n ToggleButton=(component\\n \\\"hds/dropdown/toggle/button\\\" isOpen=PP.isOpen setupPrimitiveToggle=PP.setupPrimitiveToggle\\n )\\n ToggleIcon=(component \\\"hds/dropdown/toggle/icon\\\" isOpen=PP.isOpen setupPrimitiveToggle=PP.setupPrimitiveToggle)\\n )\\n }}\\n <div\\n tabindex=\\\"-1\\\"\\n class={{this.classNamesContent}}\\n {{style width=@width max-height=@height}}\\n {{PP.setupPrimitivePopover anchoredPositionOptions=this.anchoredPositionOptions}}\\n >\\n {{#if (or PP.isOpen @preserveContentInDom)}}\\n {{yield (hash Header=(component \\\"hds/dropdown/header\\\"))}}\\n <ul class=\\\"hds-dropdown__list\\\" {{did-insert this.didInsertList}}>\\n {{yield\\n (hash\\n close=PP.hidePopover\\n Checkbox=(component \\\"hds/dropdown/list-item/checkbox\\\")\\n Checkmark=(component \\\"hds/dropdown/list-item/checkmark\\\")\\n CopyItem=(component \\\"hds/dropdown/list-item/copy-item\\\")\\n Description=(component \\\"hds/dropdown/list-item/description\\\")\\n Generic=(component \\\"hds/dropdown/list-item/generic\\\")\\n Interactive=(component \\\"hds/dropdown/list-item/interactive\\\")\\n Radio=(component \\\"hds/dropdown/list-item/radio\\\")\\n Separator=(component \\\"hds/dropdown/list-item/separator\\\")\\n Title=(component \\\"hds/dropdown/list-item/title\\\")\\n )\\n }}\\n </ul>\\n {{yield (hash close=PP.hidePopover Footer=(component \\\"hds/dropdown/footer\\\"))}}\\n {{/if}}\\n </div>\\n </div>\\n</Hds::PopoverPrimitive>\")","/**\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 { assert } from '@ember/debug';\n\nimport {\n // map Dropdown's `listPosition` values to PopoverPrimitive's `placement` values\n HdsDropdownPositionToPlacementValues,\n // Dropdown's `listPosition` values\n HdsDropdownPositionValues,\n} from './types.ts';\n\nimport type { ComponentLike } from '@glint/template';\nimport type { MenuPrimitiveSignature } from '../menu-primitive';\nimport type { HdsDropdownFooterSignature } from './footer';\nimport type { HdsDropdownHeaderSignature } from './header';\nimport type { HdsDropdownListItemCheckboxSignature } from './list-item/checkbox';\nimport type { HdsDropdownListItemCheckmarkSignature } from './list-item/checkmark';\nimport type { HdsDropdownListItemCopyItemSignature } from './list-item/copy-item';\nimport type { HdsDropdownListItemDescriptionSignature } from './list-item/description';\nimport type { HdsDropdownListItemGenericSignature } from './list-item/generic';\nimport type { HdsDropdownListItemInteractiveSignature } from './list-item/interactive';\nimport type { HdsDropdownListItemRadioSignature } from './list-item/radio';\nimport type { HdsDropdownListItemSeparatorSignature } from './list-item/separator';\nimport type { HdsDropdownListItemTitleSignature } from './list-item/title';\nimport type { HdsDropdownToggleButtonSignature } from './toggle/button';\nimport type { HdsDropdownToggleIconSignature } from './toggle/icon';\nimport type { HdsDropdownPositions } from './types';\n\nimport type { FloatingUIOptions } from '../../../modifiers/hds-anchored-position.ts';\n\nexport const DEFAULT_POSITION = HdsDropdownPositionValues.BottomRight;\nexport const POSITIONS: string[] = Object.values(HdsDropdownPositionValues);\n\nexport interface HdsDropdownSignature {\n Args: MenuPrimitiveSignature['Args'] & {\n height?: string;\n isInline?: boolean;\n isOpen?: boolean;\n listPosition?: HdsDropdownPositions;\n width?: string;\n enableCollisionDetection?: FloatingUIOptions['enableCollisionDetection'];\n preserveContentInDom?: boolean;\n };\n Blocks: {\n default: [\n {\n Footer?: ComponentLike<HdsDropdownFooterSignature>;\n Header?: ComponentLike<HdsDropdownHeaderSignature>;\n Checkbox?: ComponentLike<HdsDropdownListItemCheckboxSignature>;\n Checkmark?: ComponentLike<HdsDropdownListItemCheckmarkSignature>;\n CopyItem?: ComponentLike<HdsDropdownListItemCopyItemSignature>;\n Description?: ComponentLike<HdsDropdownListItemDescriptionSignature>;\n Generic?: ComponentLike<HdsDropdownListItemGenericSignature>;\n Interactive?: ComponentLike<HdsDropdownListItemInteractiveSignature>;\n Radio?: ComponentLike<HdsDropdownListItemRadioSignature>;\n Separator?: ComponentLike<HdsDropdownListItemSeparatorSignature>;\n Title?: ComponentLike<HdsDropdownListItemTitleSignature>;\n ToggleButton?: ComponentLike<HdsDropdownToggleButtonSignature>;\n ToggleIcon?: ComponentLike<HdsDropdownToggleIconSignature>;\n close?: () => void;\n },\n ];\n };\n Element: MenuPrimitiveSignature['Element'];\n}\n\nexport default class HdsDropdown extends Component<HdsDropdownSignature> {\n /**\n * @param listPosition\n * @type {string}\n * @default bottom-right\n * @description Determines the position of the \"list\"\n */\n get listPosition(): HdsDropdownPositions {\n const { listPosition = DEFAULT_POSITION } = this.args;\n\n assert(\n `@listPosition for \"Hds::Dropdown::Index\" must be one of the following: ${POSITIONS.join(\n ', '\n )}; received: ${listPosition}`,\n POSITIONS.includes(listPosition)\n );\n\n return listPosition;\n }\n\n get enableCollisionDetection(): FloatingUIOptions['enableCollisionDetection'] {\n return this.args.enableCollisionDetection ?? false;\n }\n\n get anchoredPositionOptions(): {\n placement: FloatingUIOptions['placement'];\n offsetOptions: FloatingUIOptions['offsetOptions'];\n enableCollisionDetection: FloatingUIOptions['enableCollisionDetection'];\n } {\n // custom options specific for the `RichTooltip` component\n // for details see the `hds-anchored-position` modifier\n return {\n placement: HdsDropdownPositionToPlacementValues[this.listPosition],\n offsetOptions: 4,\n enableCollisionDetection: this.enableCollisionDetection ? 'flip' : false,\n };\n }\n\n /**\n * Get the class names to apply to the element\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the root element\n */\n get classNames(): string {\n const classes = ['hds-dropdown'];\n\n // add a class based on the @isInline argument\n if (this.args.isInline) {\n classes.push('hds-dropdown--is-inline');\n }\n\n return classes.join(' ');\n }\n\n /**\n * Get the class names to apply to the content\n * @method classNamesContent\n * @return {string} The \"class\" attribute to apply to the disclosed content\n */\n get classNamesContent(): string {\n const classes = ['hds-dropdown__content'];\n\n // add a class based on the @listPosition argument\n // TODO: we preserved these classes to avoid introducing breaking changes for consumers who rely on these classes for tests, but we aim to remove them in the next major release\n // context: https://github.com/hashicorp/design-system/pull/2309#discussion_r1706941892\n classes.push(`hds-dropdown__content--position-${this.listPosition}`);\n\n // add a class based on the @width argument\n if (this.args.width) {\n classes.push('hds-dropdown__content--fixed-width');\n }\n\n return classes.join(' ');\n }\n\n @action\n didInsertList(element: HTMLUListElement): void {\n const checkmarkItems = element.querySelectorAll(`[role=\"option\"]`);\n if (checkmarkItems.length) {\n const toggleButtonId = element\n .closest('.hds-dropdown')\n ?.querySelector('.hds-dropdown-toggle-button')\n ?.getAttribute('id');\n\n element.setAttribute('role', 'listbox');\n\n if (toggleButtonId) {\n element.setAttribute('aria-labelledby', toggleButtonId);\n }\n }\n }\n}\n"],"names":["DEFAULT_POSITION","HdsDropdownPositionValues","BottomRight","POSITIONS","Object","values","HdsDropdown","_class","Component","listPosition","args","assert","join","includes","enableCollisionDetection","anchoredPositionOptions","placement","HdsDropdownPositionToPlacementValues","offsetOptions","classNames","classes","isInline","push","classNamesContent","width","didInsertList","element","checkmarkItems","querySelectorAll","length","toggleButtonId","closest","querySelector","getAttribute","setAttribute","_applyDecoratedDescriptor","prototype","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/dropdown/index.hbs","../../../../src/components/hds/dropdown/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::PopoverPrimitive @isOpen={{@isOpen}} @onClose={{@onClose}} @enableClickEvents={{true}} as |PP|>\\n <div class={{this.classNames}} ...attributes {{PP.setupPrimitiveContainer}}>\\n {{yield\\n (hash\\n ToggleButton=(component\\n \\\"hds/dropdown/toggle/button\\\" isOpen=PP.isOpen setupPrimitiveToggle=PP.setupPrimitiveToggle\\n )\\n ToggleIcon=(component \\\"hds/dropdown/toggle/icon\\\" isOpen=PP.isOpen setupPrimitiveToggle=PP.setupPrimitiveToggle)\\n )\\n }}\\n <div\\n tabindex=\\\"-1\\\"\\n class={{this.classNamesContent}}\\n {{style width=@width max-height=@height}}\\n {{PP.setupPrimitivePopover anchoredPositionOptions=this.anchoredPositionOptions}}\\n >\\n {{#if (or PP.isOpen @preserveContentInDom)}}\\n {{yield (hash Header=(component \\\"hds/dropdown/header\\\"))}}\\n <ul class=\\\"hds-dropdown__list\\\" {{did-insert this.didInsertList}}>\\n {{yield\\n (hash\\n close=PP.hidePopover\\n Checkbox=(component \\\"hds/dropdown/list-item/checkbox\\\")\\n Checkmark=(component \\\"hds/dropdown/list-item/checkmark\\\")\\n CopyItem=(component \\\"hds/dropdown/list-item/copy-item\\\")\\n Description=(component \\\"hds/dropdown/list-item/description\\\")\\n Generic=(component \\\"hds/dropdown/list-item/generic\\\")\\n Interactive=(component \\\"hds/dropdown/list-item/interactive\\\")\\n Radio=(component \\\"hds/dropdown/list-item/radio\\\")\\n Separator=(component \\\"hds/dropdown/list-item/separator\\\")\\n Title=(component \\\"hds/dropdown/list-item/title\\\")\\n )\\n }}\\n </ul>\\n {{yield (hash close=PP.hidePopover Footer=(component \\\"hds/dropdown/footer\\\"))}}\\n {{/if}}\\n </div>\\n </div>\\n</Hds::PopoverPrimitive>\")","/**\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 { assert } from '@ember/debug';\n\nimport {\n // map Dropdown's `listPosition` values to PopoverPrimitive's `placement` values\n HdsDropdownPositionToPlacementValues,\n // Dropdown's `listPosition` values\n HdsDropdownPositionValues,\n} from './types.ts';\n\nimport type { ComponentLike } from '@glint/template';\nimport type { MenuPrimitiveSignature } from '../menu-primitive';\nimport type { HdsDropdownFooterSignature } from './footer';\nimport type { HdsDropdownHeaderSignature } from './header';\nimport type { HdsDropdownListItemCheckboxSignature } from './list-item/checkbox';\nimport type { HdsDropdownListItemCheckmarkSignature } from './list-item/checkmark';\nimport type { HdsDropdownListItemCopyItemSignature } from './list-item/copy-item';\nimport type { HdsDropdownListItemDescriptionSignature } from './list-item/description';\nimport type { HdsDropdownListItemGenericSignature } from './list-item/generic';\nimport type { HdsDropdownListItemInteractiveSignature } from './list-item/interactive';\nimport type { HdsDropdownListItemRadioSignature } from './list-item/radio';\nimport type { HdsDropdownListItemSeparatorSignature } from './list-item/separator';\nimport type { HdsDropdownListItemTitleSignature } from './list-item/title';\nimport type { HdsDropdownToggleButtonSignature } from './toggle/button';\nimport type { HdsDropdownToggleIconSignature } from './toggle/icon';\nimport type { HdsDropdownPositions } from './types';\n\nimport type { FloatingUIOptions } from '../../../modifiers/hds-anchored-position.ts';\n\nexport const DEFAULT_POSITION = HdsDropdownPositionValues.BottomRight;\nexport const POSITIONS: string[] = Object.values(HdsDropdownPositionValues);\n\nexport interface HdsDropdownSignature {\n Args: MenuPrimitiveSignature['Args'] & {\n height?: string;\n isInline?: boolean;\n isOpen?: boolean;\n listPosition?: HdsDropdownPositions;\n width?: string;\n enableCollisionDetection?: FloatingUIOptions['enableCollisionDetection'];\n preserveContentInDom?: boolean;\n matchToggleWidth?: boolean;\n };\n Blocks: {\n default: [\n {\n Footer?: ComponentLike<HdsDropdownFooterSignature>;\n Header?: ComponentLike<HdsDropdownHeaderSignature>;\n Checkbox?: ComponentLike<HdsDropdownListItemCheckboxSignature>;\n Checkmark?: ComponentLike<HdsDropdownListItemCheckmarkSignature>;\n CopyItem?: ComponentLike<HdsDropdownListItemCopyItemSignature>;\n Description?: ComponentLike<HdsDropdownListItemDescriptionSignature>;\n Generic?: ComponentLike<HdsDropdownListItemGenericSignature>;\n Interactive?: ComponentLike<HdsDropdownListItemInteractiveSignature>;\n Radio?: ComponentLike<HdsDropdownListItemRadioSignature>;\n Separator?: ComponentLike<HdsDropdownListItemSeparatorSignature>;\n Title?: ComponentLike<HdsDropdownListItemTitleSignature>;\n ToggleButton?: ComponentLike<HdsDropdownToggleButtonSignature>;\n ToggleIcon?: ComponentLike<HdsDropdownToggleIconSignature>;\n close?: () => void;\n },\n ];\n };\n Element: MenuPrimitiveSignature['Element'];\n}\n\nexport default class HdsDropdown extends Component<HdsDropdownSignature> {\n /**\n * @param listPosition\n * @type {string}\n * @default bottom-right\n * @description Determines the position of the \"list\"\n */\n get listPosition(): HdsDropdownPositions {\n const { listPosition = DEFAULT_POSITION } = this.args;\n\n assert(\n `@listPosition for \"Hds::Dropdown::Index\" must be one of the following: ${POSITIONS.join(\n ', '\n )}; received: ${listPosition}`,\n POSITIONS.includes(listPosition)\n );\n\n return listPosition;\n }\n\n get enableCollisionDetection(): FloatingUIOptions['enableCollisionDetection'] {\n return this.args.enableCollisionDetection ?? false;\n }\n\n get matchToggleWidth(): FloatingUIOptions['matchToggleWidth'] {\n return this.args.matchToggleWidth ?? false;\n }\n\n get anchoredPositionOptions(): {\n placement: FloatingUIOptions['placement'];\n offsetOptions: FloatingUIOptions['offsetOptions'];\n enableCollisionDetection: FloatingUIOptions['enableCollisionDetection'];\n matchToggleWidth: FloatingUIOptions['matchToggleWidth'];\n } {\n // custom options specific for the `RichTooltip` component\n // for details see the `hds-anchored-position` modifier\n return {\n placement: HdsDropdownPositionToPlacementValues[this.listPosition],\n offsetOptions: 4,\n enableCollisionDetection: this.enableCollisionDetection ? 'flip' : false,\n matchToggleWidth: this.matchToggleWidth,\n };\n }\n\n /**\n * Get the class names to apply to the element\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the root element\n */\n get classNames(): string {\n const classes = ['hds-dropdown'];\n\n // add a class based on the @isInline argument\n if (this.args.isInline) {\n classes.push('hds-dropdown--is-inline');\n }\n\n return classes.join(' ');\n }\n\n /**\n * Get the class names to apply to the content\n * @method classNamesContent\n * @return {string} The \"class\" attribute to apply to the disclosed content\n */\n get classNamesContent(): string {\n const classes = ['hds-dropdown__content'];\n\n // add a class based on the @listPosition argument\n // TODO: we preserved these classes to avoid introducing breaking changes for consumers who rely on these classes for tests, but we aim to remove them in the next major release\n // context: https://github.com/hashicorp/design-system/pull/2309#discussion_r1706941892\n classes.push(`hds-dropdown__content--position-${this.listPosition}`);\n\n // add a class based on the @width or @matchToggleWidth arguments\n if (this.args.width || this.args.matchToggleWidth) {\n classes.push('hds-dropdown__content--fixed-width');\n }\n\n return classes.join(' ');\n }\n\n @action\n didInsertList(element: HTMLUListElement): void {\n const checkmarkItems = element.querySelectorAll(`[role=\"option\"]`);\n if (checkmarkItems.length) {\n const toggleButtonId = element\n .closest('.hds-dropdown')\n ?.querySelector('.hds-dropdown-toggle-button')\n ?.getAttribute('id');\n\n element.setAttribute('role', 'listbox');\n\n if (toggleButtonId) {\n element.setAttribute('aria-labelledby', toggleButtonId);\n }\n }\n }\n}\n"],"names":["DEFAULT_POSITION","HdsDropdownPositionValues","BottomRight","POSITIONS","Object","values","HdsDropdown","_class","Component","listPosition","args","assert","join","includes","enableCollisionDetection","matchToggleWidth","anchoredPositionOptions","placement","HdsDropdownPositionToPlacementValues","offsetOptions","classNames","classes","isInline","push","classNamesContent","width","didInsertList","element","checkmarkItems","querySelectorAll","length","toggleButtonId","closest","querySelector","getAttribute","setAttribute","_applyDecoratedDescriptor","prototype","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDropdownListItemGeneric = templateOnlyComponent();
12
+ const HdsDropdownListItemGeneric = TemplateOnlyComponent();
13
13
  var generic = setComponentTemplate(TEMPLATE, HdsDropdownListItemGeneric);
14
14
 
15
15
  export { generic as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDropdownListItemSeparator = templateOnlyComponent();
12
+ const HdsDropdownListItemSeparator = TemplateOnlyComponent();
13
13
  var separator = setComponentTemplate(TEMPLATE, HdsDropdownListItemSeparator);
14
14
 
15
15
  export { separator as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsDropdownToggleChevron = templateOnlyComponent();
12
+ const HdsDropdownToggleChevron = TemplateOnlyComponent();
13
13
  var chevron = setComponentTemplate(TEMPLATE, HdsDropdownToggleChevron);
14
14
 
15
15
  export { chevron as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormCheckboxBase = templateOnlyComponent();
12
+ const HdsFormCheckboxBase = TemplateOnlyComponent();
13
13
  var base = setComponentTemplate(TEMPLATE, HdsFormCheckboxBase);
14
14
 
15
15
  export { base as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormCheckboxField = templateOnlyComponent();
12
+ const HdsFormCheckboxField = TemplateOnlyComponent();
13
13
  var field = setComponentTemplate(TEMPLATE, HdsFormCheckboxField);
14
14
 
15
15
  export { field as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormCheckboxGroup = templateOnlyComponent();
12
+ const HdsFormCheckboxGroup = TemplateOnlyComponent();
13
13
  var group = setComponentTemplate(TEMPLATE, HdsFormCheckboxGroup);
14
14
 
15
15
  export { group as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormErrorMessage = templateOnlyComponent();
12
+ const HdsFormErrorMessage = TemplateOnlyComponent();
13
13
  var message = setComponentTemplate(TEMPLATE, HdsFormErrorMessage);
14
14
 
15
15
  export { message as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormFileInputBase = templateOnlyComponent();
12
+ const HdsFormFileInputBase = TemplateOnlyComponent();
13
13
  var base = setComponentTemplate(TEMPLATE, HdsFormFileInputBase);
14
14
 
15
15
  export { base as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormFileInputField = templateOnlyComponent();
12
+ const HdsFormFileInputField = TemplateOnlyComponent();
13
13
  var field = setComponentTemplate(TEMPLATE, HdsFormFileInputField);
14
14
 
15
15
  export { field as default };
@@ -1,8 +1,8 @@
1
1
  import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
- import { tracked } from '@glimmer/tracking';
4
3
  import { action } from '@ember/object';
5
4
  import { getElementId } from '../../../../utils/hds-get-element-id.js';
5
+ import { tracked } from '@glimmer/tracking';
6
6
  import { precompileTemplate } from '@ember/template-compilation';
7
7
  import { setComponentTemplate } from '@ember/component';
8
8
 
@@ -10,26 +10,17 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
10
10
 
11
11
  var _class, _descriptor;
12
12
  let HdsFormMaskedInputBase = (_class = class HdsFormMaskedInputBase extends Component {
13
- constructor(...args) {
14
- super(...args);
13
+ constructor(owner, args) {
14
+ super(owner, args);
15
15
  _initializerDefineProperty(this, "isContentMasked", _descriptor, this);
16
+ this.isContentMasked = this.args.isContentMasked ?? true;
16
17
  }
17
18
  onClickToggleMasking() {
18
19
  this.isContentMasked = !this.isContentMasked;
19
20
  }
20
-
21
- /**
22
- * Calculates the unique ID to assign to the form control
23
- */
24
21
  get id() {
25
22
  return getElementId(this);
26
23
  }
27
-
28
- /**
29
- * @param ariaLabel
30
- * @type {string}
31
- * @default 'Show masked content'
32
- */
33
24
  get visibilityToggleAriaLabel() {
34
25
  if (this.args.visibilityToggleAriaLabel) {
35
26
  return this.args.visibilityToggleAriaLabel;
@@ -39,12 +30,6 @@ let HdsFormMaskedInputBase = (_class = class HdsFormMaskedInputBase extends Comp
39
30
  return 'Hide masked content';
40
31
  }
41
32
  }
42
-
43
- /**
44
- * @param ariaMessageText
45
- * @type {string}
46
- * @default 'Input content is now hidden'
47
- */
48
33
  get visibilityToggleAriaMessageText() {
49
34
  if (this.args.visibilityToggleAriaMessageText) {
50
35
  return this.args.visibilityToggleAriaMessageText;
@@ -54,12 +39,6 @@ let HdsFormMaskedInputBase = (_class = class HdsFormMaskedInputBase extends Comp
54
39
  return 'Input content is visible';
55
40
  }
56
41
  }
57
-
58
- /**
59
- * @param copyButtonText
60
- * @type {string}
61
- * @default 'Copy masked content'
62
- */
63
42
  get copyButtonText() {
64
43
  if (this.args.copyButtonText) {
65
44
  return this.args.copyButtonText;
@@ -67,12 +46,6 @@ let HdsFormMaskedInputBase = (_class = class HdsFormMaskedInputBase extends Comp
67
46
  return 'Copy masked content';
68
47
  }
69
48
  }
70
-
71
- /**
72
- * Get the class names to apply to the component.
73
- * @method classNames
74
- * @return {string} The "class" attribute to apply to the component.
75
- */
76
49
  get classNames() {
77
50
  const classes = ['hds-form-masked-input'];
78
51
  if (this.isContentMasked) {
@@ -86,9 +59,7 @@ let HdsFormMaskedInputBase = (_class = class HdsFormMaskedInputBase extends Comp
86
59
  configurable: true,
87
60
  enumerable: true,
88
61
  writable: true,
89
- initializer: function () {
90
- return this.args.isContentMasked ?? true;
91
- }
62
+ initializer: null
92
63
  }), _applyDecoratedDescriptor(_class.prototype, "onClickToggleMasking", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClickToggleMasking"), _class.prototype)), _class);
93
64
  setComponentTemplate(TEMPLATE, HdsFormMaskedInputBase);
94
65
 
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":["../../../../../src/components/hds/form/masked-input/base.hbs","../../../../../src/components/hds/form/masked-input/base.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<div class={{this.classNames}} {{style width=@width}}>\\n {{#if @isMultiline}}\\n <Hds::Form::Textarea::Base\\n class=\\\"hds-form-masked-input__control\\\"\\n @value={{@value}}\\n @isInvalid={{@isInvalid}}\\n @height={{@height}}\\n id={{this.id}}\\n ...attributes\\n />\\n {{else}}\\n <Hds::Form::TextInput::Base\\n class=\\\"hds-form-masked-input__control\\\"\\n @value={{@value}}\\n @isInvalid={{@isInvalid}}\\n id={{this.id}}\\n ...attributes\\n />\\n {{/if}}\\n <Hds::Form::VisibilityToggle\\n @isVisible={{this.isContentMasked}}\\n @ariaLabel={{this.visibilityToggleAriaLabel}}\\n @ariaMessageText={{this.visibilityToggleAriaMessageText}}\\n aria-controls={{this.id}}\\n class=\\\"hds-form-masked-input__toggle-button\\\"\\n {{on \\\"click\\\" this.onClickToggleMasking}}\\n />\\n {{#if @hasCopyButton}}\\n <Hds::Copy::Button\\n class=\\\"hds-form-masked-input__copy-button\\\"\\n @text={{this.copyButtonText}}\\n @isIconOnly={{true}}\\n @targetToCopy=\\\"#{{this.id}}\\\"\\n />\\n {{/if}}\\n</div>\")","/**\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 { getElementId } from '../../../../utils/hds-get-element-id.ts';\nimport type { HdsCopyButtonSignature } from '../../copy/button/index.ts';\nimport type { HdsFormVisibilityToggleSignature } from '../visibility-toggle/index.ts';\n\nexport interface HdsFormMaskedInputBaseSignature {\n Args: {\n copyButtonText?: HdsCopyButtonSignature['Args']['text'];\n hasCopyButton?: boolean;\n isContentMasked?: boolean;\n isInvalid?: boolean;\n isMultiline?: boolean;\n id?: string;\n value?: string;\n visibilityToggleAriaLabel?: HdsFormVisibilityToggleSignature['Args']['ariaLabel'];\n visibilityToggleAriaMessageText?: HdsFormVisibilityToggleSignature['Args']['ariaMessageText'];\n width?: string;\n height?: string;\n };\n Element: HTMLElement;\n}\n\nexport default class HdsFormMaskedInputBase extends Component<HdsFormMaskedInputBaseSignature> {\n @tracked isContentMasked = this.args.isContentMasked ?? true;\n\n @action\n onClickToggleMasking(): void {\n this.isContentMasked = !this.isContentMasked;\n }\n\n /**\n * Calculates the unique ID to assign to the form control\n */\n get id(): string {\n return getElementId(this);\n }\n\n /**\n * @param ariaLabel\n * @type {string}\n * @default 'Show masked content'\n */\n get visibilityToggleAriaLabel(): string {\n if (this.args.visibilityToggleAriaLabel) {\n return this.args.visibilityToggleAriaLabel;\n } else if (this.isContentMasked) {\n return 'Show masked content';\n } else {\n return 'Hide masked content';\n }\n }\n\n /**\n * @param ariaMessageText\n * @type {string}\n * @default 'Input content is now hidden'\n */\n get visibilityToggleAriaMessageText(): string {\n if (this.args.visibilityToggleAriaMessageText) {\n return this.args.visibilityToggleAriaMessageText;\n } else if (this.isContentMasked) {\n return 'Input content is hidden';\n } else {\n return 'Input content is visible';\n }\n }\n\n /**\n * @param copyButtonText\n * @type {string}\n * @default 'Copy masked content'\n */\n get copyButtonText(): string {\n if (this.args.copyButtonText) {\n return this.args.copyButtonText;\n } else {\n return 'Copy masked content';\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-form-masked-input'];\n\n if (this.isContentMasked) {\n classes.push(`hds-form-masked-input--is-masked`);\n } else {\n classes.push(`hds-form-masked-input--is-not-masked`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsFormMaskedInputBase","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","onClickToggleMasking","isContentMasked","id","getElementId","visibilityToggleAriaLabel","visibilityToggleAriaMessageText","copyButtonText","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sources":["../../../../../src/components/hds/form/masked-input/base.hbs","../../../../../src/components/hds/form/masked-input/base.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<div class={{this.classNames}} {{style width=@width}}>\\n {{#if @isMultiline}}\\n <Hds::Form::Textarea::Base\\n class=\\\"hds-form-masked-input__control\\\"\\n @value={{@value}}\\n @isInvalid={{@isInvalid}}\\n @height={{@height}}\\n id={{this.id}}\\n ...attributes\\n />\\n {{else}}\\n <Hds::Form::TextInput::Base\\n class=\\\"hds-form-masked-input__control\\\"\\n @value={{@value}}\\n @isInvalid={{@isInvalid}}\\n id={{this.id}}\\n ...attributes\\n />\\n {{/if}}\\n <Hds::Form::VisibilityToggle\\n @isVisible={{this.isContentMasked}}\\n @ariaLabel={{this.visibilityToggleAriaLabel}}\\n @ariaMessageText={{this.visibilityToggleAriaMessageText}}\\n aria-controls={{this.id}}\\n class=\\\"hds-form-masked-input__toggle-button\\\"\\n {{on \\\"click\\\" this.onClickToggleMasking}}\\n />\\n {{#if @hasCopyButton}}\\n <Hds::Copy::Button\\n class=\\\"hds-form-masked-input__copy-button\\\"\\n @text={{this.copyButtonText}}\\n @isIconOnly={{true}}\\n @targetToCopy=\\\"#{{this.id}}\\\"\\n />\\n {{/if}}\\n</div>\")","/**\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 { getElementId } from '../../../../utils/hds-get-element-id.ts';\nimport type { HdsCopyButtonSignature } from '../../copy/button/index.ts';\nimport type { HdsFormVisibilityToggleSignature } from '../visibility-toggle/index.ts';\nimport { tracked } from '@glimmer/tracking';\n\nexport interface HdsFormMaskedInputBaseSignature {\n Args: {\n copyButtonText?: HdsCopyButtonSignature['Args']['text'];\n hasCopyButton?: boolean;\n isContentMasked?: boolean;\n isInvalid?: boolean;\n isMultiline?: boolean;\n id?: string;\n value?: string;\n visibilityToggleAriaLabel?: HdsFormVisibilityToggleSignature['Args']['ariaLabel'];\n visibilityToggleAriaMessageText?: HdsFormVisibilityToggleSignature['Args']['ariaMessageText'];\n width?: string;\n height?: string;\n };\n Element: HTMLElement;\n}\n\nexport default class HdsFormMaskedInputBase extends Component<HdsFormMaskedInputBaseSignature> {\n @tracked isContentMasked;\n\n constructor(owner: unknown, args: HdsFormMaskedInputBaseSignature['Args']) {\n super(owner, args);\n this.isContentMasked = this.args.isContentMasked ?? true;\n }\n\n @action\n onClickToggleMasking(): void {\n this.isContentMasked = !this.isContentMasked;\n }\n\n get id(): string {\n return getElementId(this);\n }\n\n get visibilityToggleAriaLabel(): string {\n if (this.args.visibilityToggleAriaLabel) {\n return this.args.visibilityToggleAriaLabel;\n } else if (this.isContentMasked) {\n return 'Show masked content';\n } else {\n return 'Hide masked content';\n }\n }\n\n get visibilityToggleAriaMessageText(): string {\n if (this.args.visibilityToggleAriaMessageText) {\n return this.args.visibilityToggleAriaMessageText;\n } else if (this.isContentMasked) {\n return 'Input content is hidden';\n } else {\n return 'Input content is visible';\n }\n }\n\n get copyButtonText(): string {\n if (this.args.copyButtonText) {\n return this.args.copyButtonText;\n } else {\n return 'Copy masked content';\n }\n }\n\n get classNames(): string {\n const classes = ['hds-form-masked-input'];\n\n if (this.isContentMasked) {\n classes.push(`hds-form-masked-input--is-masked`);\n } else {\n classes.push(`hds-form-masked-input--is-not-masked`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsFormMaskedInputBase","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","isContentMasked","onClickToggleMasking","id","getElementId","visibilityToggleAriaLabel","visibilityToggleAriaMessageText","copyButtonText","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,unCAAunC;;;AC4BpoCA,IAAAA,sBAAsB,IAAAC,MAAA,GAA5B,MAAMD,sBAAsB,SAASE,SAAS,CAAkC;AAG7FC,EAAAA,WAAWA,CAACC,KAAc,EAAEC,IAA6C,EAAE;AACzE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC,CAAA;AAACC,IAAAA,0BAAA,0BAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;IACnB,IAAI,CAACC,eAAe,GAAG,IAAI,CAACH,IAAI,CAACG,eAAe,IAAI,IAAI,CAAA;AAC1D,GAAA;AAGAC,EAAAA,oBAAoBA,GAAS;AAC3B,IAAA,IAAI,CAACD,eAAe,GAAG,CAAC,IAAI,CAACA,eAAe,CAAA;AAC9C,GAAA;EAEA,IAAIE,EAAEA,GAAW;IACf,OAAOC,YAAY,CAAC,IAAI,CAAC,CAAA;AAC3B,GAAA;EAEA,IAAIC,yBAAyBA,GAAW;AACtC,IAAA,IAAI,IAAI,CAACP,IAAI,CAACO,yBAAyB,EAAE;AACvC,MAAA,OAAO,IAAI,CAACP,IAAI,CAACO,yBAAyB,CAAA;AAC5C,KAAC,MAAM,IAAI,IAAI,CAACJ,eAAe,EAAE;AAC/B,MAAA,OAAO,qBAAqB,CAAA;AAC9B,KAAC,MAAM;AACL,MAAA,OAAO,qBAAqB,CAAA;AAC9B,KAAA;AACF,GAAA;EAEA,IAAIK,+BAA+BA,GAAW;AAC5C,IAAA,IAAI,IAAI,CAACR,IAAI,CAACQ,+BAA+B,EAAE;AAC7C,MAAA,OAAO,IAAI,CAACR,IAAI,CAACQ,+BAA+B,CAAA;AAClD,KAAC,MAAM,IAAI,IAAI,CAACL,eAAe,EAAE;AAC/B,MAAA,OAAO,yBAAyB,CAAA;AAClC,KAAC,MAAM;AACL,MAAA,OAAO,0BAA0B,CAAA;AACnC,KAAA;AACF,GAAA;EAEA,IAAIM,cAAcA,GAAW;AAC3B,IAAA,IAAI,IAAI,CAACT,IAAI,CAACS,cAAc,EAAE;AAC5B,MAAA,OAAO,IAAI,CAACT,IAAI,CAACS,cAAc,CAAA;AACjC,KAAC,MAAM;AACL,MAAA,OAAO,qBAAqB,CAAA;AAC9B,KAAA;AACF,GAAA;EAEA,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,uBAAuB,CAAC,CAAA;IAEzC,IAAI,IAAI,CAACR,eAAe,EAAE;AACxBQ,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,gCAAA,CAAkC,CAAC,CAAA;AAClD,KAAC,MAAM;AACLD,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,oCAAA,CAAsC,CAAC,CAAA;AACtD,KAAA;AAEA,IAAA,OAAOD,OAAO,CAACE,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAC,GAAAX,WAAA,GAAAY,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,iBAAA,EAAA,CAvDEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAAN,CAAAA,EAAAA,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAOPM,sBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAA3B,MAAA,CAAAmB,SAAA,EAAA,sBAAA,CAAA,EAAAnB,MAAA,CAAAmB,SAAA,IAAAnB,MAAA,EAAA;AARkC4B,oBAAA,CAAAC,QAAA,EAAtB9B,sBAAsB,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormMaskedInputField = templateOnlyComponent();
12
+ const HdsFormMaskedInputField = TemplateOnlyComponent();
13
13
  var field = setComponentTemplate(TEMPLATE, HdsFormMaskedInputField);
14
14
 
15
15
  export { field as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormRadioBase = templateOnlyComponent();
12
+ const HdsFormRadioBase = TemplateOnlyComponent();
13
13
  var base = setComponentTemplate(TEMPLATE, HdsFormRadioBase);
14
14
 
15
15
  export { base as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormRadioField = templateOnlyComponent();
12
+ const HdsFormRadioField = TemplateOnlyComponent();
13
13
  var field = setComponentTemplate(TEMPLATE, HdsFormRadioField);
14
14
 
15
15
  export { field as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormRadioGroup = templateOnlyComponent();
12
+ const HdsFormRadioGroup = TemplateOnlyComponent();
13
13
  var group = setComponentTemplate(TEMPLATE, HdsFormRadioGroup);
14
14
 
15
15
  export { group as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormRadioCardDescription = templateOnlyComponent();
12
+ const HdsFormRadioCardDescription = TemplateOnlyComponent();
13
13
  var description = setComponentTemplate(TEMPLATE, HdsFormRadioCardDescription);
14
14
 
15
15
  export { description as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormRadioCardGroup = templateOnlyComponent();
12
+ const HdsFormRadioCardGroup = TemplateOnlyComponent();
13
13
  var group = setComponentTemplate(TEMPLATE, HdsFormRadioCardGroup);
14
14
 
15
15
  export { group as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormRadioCardLabel = templateOnlyComponent();
12
+ const HdsFormRadioCardLabel = TemplateOnlyComponent();
13
13
  var label = setComponentTemplate(TEMPLATE, HdsFormRadioCardLabel);
14
14
 
15
15
  export { label as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormSelectField = templateOnlyComponent();
12
+ const HdsFormSelectField = TemplateOnlyComponent();
13
13
  var field = setComponentTemplate(TEMPLATE, HdsFormSelectField);
14
14
 
15
15
  export { field as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormSuperSelectAfterOptions = templateOnlyComponent();
12
+ const HdsFormSuperSelectAfterOptions = TemplateOnlyComponent();
13
13
  var afterOptions = setComponentTemplate(TEMPLATE, HdsFormSuperSelectAfterOptions);
14
14
 
15
15
  export { afterOptions as default };
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormSuperSelectPlaceholder = templateOnlyComponent();
12
+ const HdsFormSuperSelectPlaceholder = TemplateOnlyComponent();
13
13
  var placeholder = setComponentTemplate(TEMPLATE, HdsFormSuperSelectPlaceholder);
14
14
 
15
15
  export { placeholder as default };
@@ -8,28 +8,20 @@ import { setComponentTemplate } from '@ember/component';
8
8
 
9
9
  var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::Form::Field\n @layout=\"vertical\"\n @extraAriaDescribedBy={{@extraAriaDescribedBy}}\n @isRequired={{@isRequired}}\n @isOptional={{@isOptional}}\n @id={{@id}}\n as |F|\n>\n {{! Notice: the order of the elements is not relevant here, because is controlled at \"Hds::Form::Field\" component level }}\n {{yield (hash Label=F.Label HelperText=F.HelperText Error=F.Error)}}\n {{#if F.CharacterCount}}\n {{yield (hash CharacterCount=(component F.CharacterCount value=@value))}}\n {{/if}}\n <F.Control>\n <div class=\"hds-form-text-input__wrapper\" {{style width=@width}}>\n <Hds::Form::TextInput::Base\n @type={{this.type}}\n @value={{@value}}\n @isInvalid={{@isInvalid}}\n @isLoading={{@isLoading}}\n @hasVisibilityToggle={{this.showVisibilityToggle}}\n required={{@isRequired}}\n ...attributes\n id={{F.id}}\n aria-describedby={{F.ariaDescribedBy}}\n />\n {{#if this.showVisibilityToggle}}\n <Hds::Form::VisibilityToggle\n @isVisible={{this.isPasswordMasked}}\n @ariaLabel={{this.visibilityToggleAriaLabel}}\n @ariaMessageText={{this.visibilityToggleAriaMessageText}}\n aria-controls={{F.id}}\n class=\"hds-form-text-input__visibility-toggle\"\n {{on \"click\" this.onClickTogglePasswordReadability}}\n />\n {{/if}}\n </div>\n </F.Control>\n</Hds::Form::Field>");
10
10
 
11
- var _class, _descriptor, _descriptor2, _descriptor3;
11
+ var _class, _descriptor, _descriptor2;
12
12
  let HdsFormTextInputField = (_class = class HdsFormTextInputField extends Component {
13
- constructor(...args) {
14
- super(...args);
13
+ constructor(owner, args) {
14
+ super(owner, args);
15
15
  _initializerDefineProperty(this, "isPasswordMasked", _descriptor, this);
16
- _initializerDefineProperty(this, "hasVisibilityToggle", _descriptor2, this);
17
- _initializerDefineProperty(this, "type", _descriptor3, this);
16
+ _initializerDefineProperty(this, "type", _descriptor2, this);
17
+ this.type = this.args.type ?? 'text';
18
+ }
19
+ get hasVisibilityToggle() {
20
+ return this.args.hasVisibilityToggle ?? true;
18
21
  }
19
- /**
20
- * @param showVisibilityToggle
21
- * @type {boolean}
22
- * @default false
23
- */
24
22
  get showVisibilityToggle() {
25
23
  return this.args.type === 'password' && this.hasVisibilityToggle;
26
24
  }
27
-
28
- /**
29
- * @param visibilityToggleAriaLabel
30
- * @type {string}
31
- * @default 'Show password'
32
- */
33
25
  get visibilityToggleAriaLabel() {
34
26
  if (this.args.visibilityToggleAriaLabel) {
35
27
  return this.args.visibilityToggleAriaLabel;
@@ -39,12 +31,6 @@ let HdsFormTextInputField = (_class = class HdsFormTextInputField extends Compon
39
31
  return 'Hide password';
40
32
  }
41
33
  }
42
-
43
- /**
44
- * @param visibilityToggleAriaMessageText
45
- * @type {string}
46
- * @default 'Password is now hidden'
47
- */
48
34
  get visibilityToggleAriaMessageText() {
49
35
  if (this.args.visibilityToggleAriaMessageText) {
50
36
  return this.args.visibilityToggleAriaMessageText;
@@ -65,20 +51,11 @@ let HdsFormTextInputField = (_class = class HdsFormTextInputField extends Compon
65
51
  initializer: function () {
66
52
  return true;
67
53
  }
68
- }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "hasVisibilityToggle", [tracked], {
69
- configurable: true,
70
- enumerable: true,
71
- writable: true,
72
- initializer: function () {
73
- return this.args.hasVisibilityToggle ?? true;
74
- }
75
- }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "type", [tracked], {
54
+ }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "type", [tracked], {
76
55
  configurable: true,
77
56
  enumerable: true,
78
57
  writable: true,
79
- initializer: function () {
80
- return this.args.type ?? 'text';
81
- }
58
+ initializer: null
82
59
  }), _applyDecoratedDescriptor(_class.prototype, "onClickTogglePasswordReadability", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClickTogglePasswordReadability"), _class.prototype)), _class);
83
60
  setComponentTemplate(TEMPLATE, HdsFormTextInputField);
84
61
 
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sources":["../../../../../src/components/hds/form/text-input/field.hbs","../../../../../src/components/hds/form/text-input/field.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::Form::Field\\n @layout=\\\"vertical\\\"\\n @extraAriaDescribedBy={{@extraAriaDescribedBy}}\\n @isRequired={{@isRequired}}\\n @isOptional={{@isOptional}}\\n @id={{@id}}\\n as |F|\\n>\\n {{! Notice: the order of the elements is not relevant here, because is controlled at \\\"Hds::Form::Field\\\" component level }}\\n {{yield (hash Label=F.Label HelperText=F.HelperText Error=F.Error)}}\\n {{#if F.CharacterCount}}\\n {{yield (hash CharacterCount=(component F.CharacterCount value=@value))}}\\n {{/if}}\\n <F.Control>\\n <div class=\\\"hds-form-text-input__wrapper\\\" {{style width=@width}}>\\n <Hds::Form::TextInput::Base\\n @type={{this.type}}\\n @value={{@value}}\\n @isInvalid={{@isInvalid}}\\n @isLoading={{@isLoading}}\\n @hasVisibilityToggle={{this.showVisibilityToggle}}\\n required={{@isRequired}}\\n ...attributes\\n id={{F.id}}\\n aria-describedby={{F.ariaDescribedBy}}\\n />\\n {{#if this.showVisibilityToggle}}\\n <Hds::Form::VisibilityToggle\\n @isVisible={{this.isPasswordMasked}}\\n @ariaLabel={{this.visibilityToggleAriaLabel}}\\n @ariaMessageText={{this.visibilityToggleAriaMessageText}}\\n aria-controls={{F.id}}\\n class=\\\"hds-form-text-input__visibility-toggle\\\"\\n {{on \\\"click\\\" this.onClickTogglePasswordReadability}}\\n />\\n {{/if}}\\n </div>\\n </F.Control>\\n</Hds::Form::Field>\")","/**\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';\n\nimport type { ComponentLike, WithBoundArgs } from '@glint/template';\nimport type { HdsFormFieldSignature } from '../field';\nimport type { HdsFormTextInputBaseSignature } from './base';\nimport type { HdsFormErrorSignature } from '../error';\nimport type { HdsFormHelperTextSignature } from '../helper-text';\nimport type { HdsFormLabelSignature } from '../label';\nimport type { HdsFormVisibilityToggleSignature } from '../visibility-toggle';\nimport HdsFormCharacterCountComponent from '../character-count/index.ts';\n\nexport interface HdsFormTextInputFieldSignature {\n Args: Omit<HdsFormFieldSignature['Args'], 'contextualClass' | 'layout'> &\n HdsFormTextInputBaseSignature['Args'] & {\n visibilityToggleAriaLabel?: HdsFormVisibilityToggleSignature['Args']['ariaLabel'];\n visibilityToggleAriaMessageText?: HdsFormVisibilityToggleSignature['Args']['ariaMessageText'];\n };\n Blocks: {\n default: [\n {\n Label?: ComponentLike<HdsFormLabelSignature>;\n HelperText?: ComponentLike<HdsFormHelperTextSignature>;\n Error?: ComponentLike<HdsFormErrorSignature>;\n CharacterCount?: WithBoundArgs<\n typeof HdsFormCharacterCountComponent,\n 'value'\n >;\n },\n ];\n };\n Element: HdsFormFieldSignature['Element'];\n}\n\nexport default class HdsFormTextInputField extends Component<HdsFormTextInputFieldSignature> {\n @tracked isPasswordMasked = true;\n @tracked hasVisibilityToggle = this.args.hasVisibilityToggle ?? true;\n @tracked type = this.args.type ?? 'text';\n\n /**\n * @param showVisibilityToggle\n * @type {boolean}\n * @default false\n */\n get showVisibilityToggle(): boolean {\n return this.args.type === 'password' && this.hasVisibilityToggle;\n }\n\n /**\n * @param visibilityToggleAriaLabel\n * @type {string}\n * @default 'Show password'\n */\n get visibilityToggleAriaLabel(): string | undefined {\n if (this.args.visibilityToggleAriaLabel) {\n return this.args.visibilityToggleAriaLabel;\n } else if (this.isPasswordMasked) {\n return 'Show password';\n } else {\n return 'Hide password';\n }\n }\n\n /**\n * @param visibilityToggleAriaMessageText\n * @type {string}\n * @default 'Password is now hidden'\n */\n get visibilityToggleAriaMessageText(): string | undefined {\n if (this.args.visibilityToggleAriaMessageText) {\n return this.args.visibilityToggleAriaMessageText;\n } else if (this.isPasswordMasked) {\n return 'Password is hidden';\n } else {\n return 'Password is visible';\n }\n }\n\n @action\n onClickTogglePasswordReadability(): void {\n this.isPasswordMasked = !this.isPasswordMasked;\n this.type = this.isPasswordMasked ? 'password' : 'text';\n }\n}\n"],"names":["HdsFormTextInputField","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","showVisibilityToggle","type","hasVisibilityToggle","visibilityToggleAriaLabel","isPasswordMasked","visibilityToggleAriaMessageText","onClickTogglePasswordReadability","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,0+CAA0+C;;;ACuCv/CA,IAAAA,qBAAqB,IAAAC,MAAA,GAA3B,MAAMD,qBAAqB,SAASE,SAAS,CAAiC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,0BAAA,2BAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAAD,IAAAA,0BAAA,8BAAAE,YAAA,EAAA,IAAA,CAAA,CAAA;AAAAF,IAAAA,0BAAA,eAAAG,YAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GAAA;AAK3F;AACF;AACA;AACA;AACA;EACE,IAAIC,oBAAoBA,GAAY;IAClC,OAAO,IAAI,CAACL,IAAI,CAACM,IAAI,KAAK,UAAU,IAAI,IAAI,CAACC,mBAAmB,CAAA;AAClE,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,yBAAyBA,GAAuB;AAClD,IAAA,IAAI,IAAI,CAACR,IAAI,CAACQ,yBAAyB,EAAE;AACvC,MAAA,OAAO,IAAI,CAACR,IAAI,CAACQ,yBAAyB,CAAA;AAC5C,KAAC,MAAM,IAAI,IAAI,CAACC,gBAAgB,EAAE;AAChC,MAAA,OAAO,eAAe,CAAA;AACxB,KAAC,MAAM;AACL,MAAA,OAAO,eAAe,CAAA;AACxB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,+BAA+BA,GAAuB;AACxD,IAAA,IAAI,IAAI,CAACV,IAAI,CAACU,+BAA+B,EAAE;AAC7C,MAAA,OAAO,IAAI,CAACV,IAAI,CAACU,+BAA+B,CAAA;AAClD,KAAC,MAAM,IAAI,IAAI,CAACD,gBAAgB,EAAE;AAChC,MAAA,OAAO,oBAAoB,CAAA;AAC7B,KAAC,MAAM;AACL,MAAA,OAAO,qBAAqB,CAAA;AAC9B,KAAA;AACF,GAAA;AAGAE,EAAAA,gCAAgCA,GAAS;AACvC,IAAA,IAAI,CAACF,gBAAgB,GAAG,CAAC,IAAI,CAACA,gBAAgB,CAAA;IAC9C,IAAI,CAACH,IAAI,GAAG,IAAI,CAACG,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAA;AACzD,GAAA;AACF,CAAC,GAAAP,WAAA,GAAAU,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,EAAA,kBAAA,EAAA,CAhDEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAoB,IAAI,CAAA;AAAA,GAAA;AAAA,CAAAf,CAAAA,EAAAA,YAAA,GAAAS,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,0BAC/BC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAuB,IAAI,CAAClB,IAAI,CAACO,mBAAmB,IAAI,IAAI,CAAA;AAAA,GAAA;AAAA,CAAAH,CAAAA,EAAAA,YAAA,GAAAQ,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,WACnEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAQ,IAAI,CAAClB,IAAI,CAACM,IAAI,IAAI,MAAM,CAAA;AAAA,GAAA;AAAA,CAAAM,CAAAA,EAAAA,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,EAyCvCM,kCAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAgB,SAAA,EAAA,kCAAA,CAAA,EAAAhB,MAAA,CAAAgB,SAAA,IAAAhB,MAAA,EAAA;AA5CiCyB,oBAAA,CAAAC,QAAA,EAArB3B,qBAAqB,CAAA;;;;"}
1
+ {"version":3,"file":"field.js","sources":["../../../../../src/components/hds/form/text-input/field.hbs","../../../../../src/components/hds/form/text-input/field.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::Form::Field\\n @layout=\\\"vertical\\\"\\n @extraAriaDescribedBy={{@extraAriaDescribedBy}}\\n @isRequired={{@isRequired}}\\n @isOptional={{@isOptional}}\\n @id={{@id}}\\n as |F|\\n>\\n {{! Notice: the order of the elements is not relevant here, because is controlled at \\\"Hds::Form::Field\\\" component level }}\\n {{yield (hash Label=F.Label HelperText=F.HelperText Error=F.Error)}}\\n {{#if F.CharacterCount}}\\n {{yield (hash CharacterCount=(component F.CharacterCount value=@value))}}\\n {{/if}}\\n <F.Control>\\n <div class=\\\"hds-form-text-input__wrapper\\\" {{style width=@width}}>\\n <Hds::Form::TextInput::Base\\n @type={{this.type}}\\n @value={{@value}}\\n @isInvalid={{@isInvalid}}\\n @isLoading={{@isLoading}}\\n @hasVisibilityToggle={{this.showVisibilityToggle}}\\n required={{@isRequired}}\\n ...attributes\\n id={{F.id}}\\n aria-describedby={{F.ariaDescribedBy}}\\n />\\n {{#if this.showVisibilityToggle}}\\n <Hds::Form::VisibilityToggle\\n @isVisible={{this.isPasswordMasked}}\\n @ariaLabel={{this.visibilityToggleAriaLabel}}\\n @ariaMessageText={{this.visibilityToggleAriaMessageText}}\\n aria-controls={{F.id}}\\n class=\\\"hds-form-text-input__visibility-toggle\\\"\\n {{on \\\"click\\\" this.onClickTogglePasswordReadability}}\\n />\\n {{/if}}\\n </div>\\n </F.Control>\\n</Hds::Form::Field>\")","/**\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';\n\nimport type { ComponentLike, WithBoundArgs } from '@glint/template';\nimport type { HdsFormFieldSignature } from '../field';\nimport type { HdsFormTextInputBaseSignature } from './base';\nimport type { HdsFormErrorSignature } from '../error';\nimport type { HdsFormHelperTextSignature } from '../helper-text';\nimport type { HdsFormLabelSignature } from '../label';\nimport type { HdsFormVisibilityToggleSignature } from '../visibility-toggle';\nimport HdsFormCharacterCountComponent from '../character-count/index.ts';\n\nexport interface HdsFormTextInputFieldSignature {\n Args: Omit<HdsFormFieldSignature['Args'], 'contextualClass' | 'layout'> &\n HdsFormTextInputBaseSignature['Args'] & {\n visibilityToggleAriaLabel?: HdsFormVisibilityToggleSignature['Args']['ariaLabel'];\n visibilityToggleAriaMessageText?: HdsFormVisibilityToggleSignature['Args']['ariaMessageText'];\n };\n Blocks: {\n default: [\n {\n Label?: ComponentLike<HdsFormLabelSignature>;\n HelperText?: ComponentLike<HdsFormHelperTextSignature>;\n Error?: ComponentLike<HdsFormErrorSignature>;\n CharacterCount?: WithBoundArgs<\n typeof HdsFormCharacterCountComponent,\n 'value'\n >;\n },\n ];\n };\n Element: HdsFormFieldSignature['Element'];\n}\n\nexport default class HdsFormTextInputField extends Component<HdsFormTextInputFieldSignature> {\n @tracked isPasswordMasked = true;\n @tracked type;\n\n constructor(owner: unknown, args: HdsFormTextInputFieldSignature['Args']) {\n super(owner, args);\n this.type = this.args.type ?? 'text';\n }\n\n get hasVisibilityToggle(): boolean {\n return this.args.hasVisibilityToggle ?? true;\n }\n\n get showVisibilityToggle(): boolean {\n return this.args.type === 'password' && this.hasVisibilityToggle;\n }\n\n get visibilityToggleAriaLabel(): string | undefined {\n if (this.args.visibilityToggleAriaLabel) {\n return this.args.visibilityToggleAriaLabel;\n } else if (this.isPasswordMasked) {\n return 'Show password';\n } else {\n return 'Hide password';\n }\n }\n\n get visibilityToggleAriaMessageText(): string | undefined {\n if (this.args.visibilityToggleAriaMessageText) {\n return this.args.visibilityToggleAriaMessageText;\n } else if (this.isPasswordMasked) {\n return 'Password is hidden';\n } else {\n return 'Password is visible';\n }\n }\n\n @action\n onClickTogglePasswordReadability(): void {\n this.isPasswordMasked = !this.isPasswordMasked;\n this.type = this.isPasswordMasked ? 'password' : 'text';\n }\n}\n"],"names":["HdsFormTextInputField","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","type","hasVisibilityToggle","showVisibilityToggle","visibilityToggleAriaLabel","isPasswordMasked","visibilityToggleAriaMessageText","onClickTogglePasswordReadability","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,0+CAA0+C;;;ACuCv/CA,IAAAA,qBAAqB,IAAAC,MAAA,GAA3B,MAAMD,qBAAqB,SAASE,SAAS,CAAiC;AAI3FC,EAAAA,WAAWA,CAACC,KAAc,EAAEC,IAA4C,EAAE;AACxE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC,CAAA;AAACC,IAAAA,0BAAA,2BAAAC,WAAA,EAAA,IAAA,CAAA,CAAA;AAAAD,IAAAA,0BAAA,eAAAE,YAAA,EAAA,IAAA,CAAA,CAAA;IACnB,IAAI,CAACC,IAAI,GAAG,IAAI,CAACJ,IAAI,CAACI,IAAI,IAAI,MAAM,CAAA;AACtC,GAAA;EAEA,IAAIC,mBAAmBA,GAAY;AACjC,IAAA,OAAO,IAAI,CAACL,IAAI,CAACK,mBAAmB,IAAI,IAAI,CAAA;AAC9C,GAAA;EAEA,IAAIC,oBAAoBA,GAAY;IAClC,OAAO,IAAI,CAACN,IAAI,CAACI,IAAI,KAAK,UAAU,IAAI,IAAI,CAACC,mBAAmB,CAAA;AAClE,GAAA;EAEA,IAAIE,yBAAyBA,GAAuB;AAClD,IAAA,IAAI,IAAI,CAACP,IAAI,CAACO,yBAAyB,EAAE;AACvC,MAAA,OAAO,IAAI,CAACP,IAAI,CAACO,yBAAyB,CAAA;AAC5C,KAAC,MAAM,IAAI,IAAI,CAACC,gBAAgB,EAAE;AAChC,MAAA,OAAO,eAAe,CAAA;AACxB,KAAC,MAAM;AACL,MAAA,OAAO,eAAe,CAAA;AACxB,KAAA;AACF,GAAA;EAEA,IAAIC,+BAA+BA,GAAuB;AACxD,IAAA,IAAI,IAAI,CAACT,IAAI,CAACS,+BAA+B,EAAE;AAC7C,MAAA,OAAO,IAAI,CAACT,IAAI,CAACS,+BAA+B,CAAA;AAClD,KAAC,MAAM,IAAI,IAAI,CAACD,gBAAgB,EAAE;AAChC,MAAA,OAAO,oBAAoB,CAAA;AAC7B,KAAC,MAAM;AACL,MAAA,OAAO,qBAAqB,CAAA;AAC9B,KAAA;AACF,GAAA;AAGAE,EAAAA,gCAAgCA,GAAS;AACvC,IAAA,IAAI,CAACF,gBAAgB,GAAG,CAAC,IAAI,CAACA,gBAAgB,CAAA;IAC9C,IAAI,CAACJ,IAAI,GAAG,IAAI,CAACI,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAA;AACzD,GAAA;AACF,CAAC,GAAAN,WAAA,GAAAS,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,EAAA,kBAAA,EAAA,CAzCEC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;AAAAC,EAAAA,WAAA,cAAA;AAAA,IAAA,OAAoB,IAAI,CAAA;AAAA,GAAA;AAAA,CAAAd,CAAAA,EAAAA,YAAA,GAAAQ,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,WAC/BC,OAAO,CAAA,EAAA;EAAAC,YAAA,EAAA,IAAA;EAAAC,UAAA,EAAA,IAAA;EAAAC,QAAA,EAAA,IAAA;EAAAC,WAAA,EAAA,IAAA;AAAA,CAAAN,CAAAA,EAAAA,yBAAA,CAAAf,MAAA,CAAAgB,SAAA,EAmCPM,kCAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAgB,SAAA,EAAA,kCAAA,CAAA,EAAAhB,MAAA,CAAAgB,SAAA,IAAAhB,MAAA,EAAA;AArCiCyB,oBAAA,CAAAC,QAAA,EAArB3B,qBAAqB,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import templateOnlyComponent from '@ember/component/template-only';
1
+ import TemplateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
@@ -9,7 +9,7 @@ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
12
- const HdsFormTextareaField = templateOnlyComponent();
12
+ const HdsFormTextareaField = TemplateOnlyComponent();
13
13
  var field = setComponentTemplate(TEMPLATE, HdsFormTextareaField);
14
14
 
15
15
  export { field as default };