@hashicorp/design-system-components 4.4.1 → 4.5.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 (252) hide show
  1. package/declarations/components/hds/alert/index.d.ts +3 -2
  2. package/declarations/components/hds/alert/index.d.ts.map +1 -1
  3. package/declarations/components/hds/alert/types.d.ts +1 -1
  4. package/declarations/components/hds/alert/types.d.ts.map +1 -1
  5. package/declarations/components/hds/app-footer/link.d.ts +2 -1
  6. package/declarations/components/hds/app-footer/link.d.ts.map +1 -1
  7. package/declarations/components/hds/app-footer/status-link.d.ts +4 -3
  8. package/declarations/components/hds/app-footer/status-link.d.ts.map +1 -1
  9. package/declarations/components/hds/app-footer/types.d.ts +2 -1
  10. package/declarations/components/hds/app-footer/types.d.ts.map +1 -1
  11. package/declarations/components/hds/application-state/body.d.ts +16 -1
  12. package/declarations/components/hds/application-state/body.d.ts.map +1 -1
  13. package/declarations/components/hds/application-state/footer.d.ts +21 -3
  14. package/declarations/components/hds/application-state/footer.d.ts.map +1 -1
  15. package/declarations/components/hds/application-state/header.d.ts +16 -1
  16. package/declarations/components/hds/application-state/header.d.ts.map +1 -1
  17. package/declarations/components/hds/application-state/index.d.ts +23 -1
  18. package/declarations/components/hds/application-state/index.d.ts.map +1 -1
  19. package/declarations/components/hds/badge/index.d.ts +3 -2
  20. package/declarations/components/hds/badge/index.d.ts.map +1 -1
  21. package/declarations/components/hds/button/index.d.ts +3 -2
  22. package/declarations/components/hds/button/index.d.ts.map +1 -1
  23. package/declarations/components/hds/copy/button/index.d.ts +1 -1
  24. package/declarations/components/hds/copy/button/index.d.ts.map +1 -1
  25. package/declarations/components/hds/copy/snippet/index.d.ts +1 -1
  26. package/declarations/components/hds/copy/snippet/index.d.ts.map +1 -1
  27. package/declarations/components/hds/dropdown/toggle/icon.d.ts.map +1 -1
  28. package/declarations/components/hds/icon-tile/index.d.ts +6 -5
  29. package/declarations/components/hds/icon-tile/index.d.ts.map +1 -1
  30. package/declarations/components/hds/link/inline.d.ts +2 -1
  31. package/declarations/components/hds/link/inline.d.ts.map +1 -1
  32. package/declarations/components/hds/link/standalone.d.ts +3 -2
  33. package/declarations/components/hds/link/standalone.d.ts.map +1 -1
  34. package/declarations/components/hds/page-header/actions.d.ts +13 -1
  35. package/declarations/components/hds/page-header/actions.d.ts.map +1 -1
  36. package/declarations/components/hds/page-header/badges.d.ts +13 -1
  37. package/declarations/components/hds/page-header/badges.d.ts.map +1 -1
  38. package/declarations/components/hds/page-header/description.d.ts +15 -1
  39. package/declarations/components/hds/page-header/description.d.ts.map +1 -1
  40. package/declarations/components/hds/page-header/index.d.ts +32 -1
  41. package/declarations/components/hds/page-header/index.d.ts.map +1 -1
  42. package/declarations/components/hds/page-header/subtitle.d.ts +15 -1
  43. package/declarations/components/hds/page-header/subtitle.d.ts.map +1 -1
  44. package/declarations/components/hds/page-header/title.d.ts +15 -1
  45. package/declarations/components/hds/page-header/title.d.ts.map +1 -1
  46. package/declarations/components/hds/side-nav/base.d.ts +16 -1
  47. package/declarations/components/hds/side-nav/base.d.ts.map +1 -1
  48. package/declarations/components/hds/side-nav/header/home-link.d.ts +17 -3
  49. package/declarations/components/hds/side-nav/header/home-link.d.ts.map +1 -1
  50. package/declarations/components/hds/side-nav/header/icon-button.d.ts +16 -3
  51. package/declarations/components/hds/side-nav/header/icon-button.d.ts.map +1 -1
  52. package/declarations/components/hds/side-nav/header/index.d.ts +14 -1
  53. package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
  54. package/declarations/components/hds/side-nav/index.d.ts +58 -15
  55. package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
  56. package/declarations/components/hds/side-nav/list/back-link.d.ts +14 -1
  57. package/declarations/components/hds/side-nav/list/back-link.d.ts.map +1 -1
  58. package/declarations/components/hds/side-nav/list/index.d.ts +28 -1
  59. package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
  60. package/declarations/components/hds/side-nav/list/item.d.ts +13 -1
  61. package/declarations/components/hds/side-nav/list/item.d.ts.map +1 -1
  62. package/declarations/components/hds/side-nav/list/link.d.ts +23 -1
  63. package/declarations/components/hds/side-nav/list/link.d.ts.map +1 -1
  64. package/declarations/components/hds/side-nav/list/title.d.ts +13 -1
  65. package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
  66. package/declarations/components/hds/side-nav/portal/index.d.ts +26 -0
  67. package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
  68. package/declarations/components/hds/side-nav/portal/target.d.ts +33 -10
  69. package/declarations/components/hds/side-nav/portal/target.d.ts.map +1 -1
  70. package/declarations/components/hds/side-nav/toggle-button.d.ts +14 -1
  71. package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
  72. package/declarations/components/hds/stepper/task/indicator.d.ts +2 -2
  73. package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
  74. package/declarations/components/hds/stepper/types.d.ts +2 -1
  75. package/declarations/components/hds/stepper/types.d.ts.map +1 -1
  76. package/declarations/components/hds/tabs/index.d.ts +48 -23
  77. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  78. package/declarations/components/hds/tabs/panel.d.ts +30 -8
  79. package/declarations/components/hds/tabs/panel.d.ts.map +1 -1
  80. package/declarations/components/hds/tabs/tab.d.ts +31 -8
  81. package/declarations/components/hds/tabs/tab.d.ts.map +1 -1
  82. package/declarations/components/hds/tabs/types.d.ts +8 -0
  83. package/declarations/components/hds/tabs/types.d.ts.map +1 -0
  84. package/declarations/components.d.ts +3 -1
  85. package/declarations/components.d.ts.map +1 -1
  86. package/declarations/template-registry.d.ts +91 -0
  87. package/declarations/template-registry.d.ts.map +1 -1
  88. package/dist/_rollupPluginBabelHelpers-KIi_qCIU.js +51 -0
  89. package/dist/_rollupPluginBabelHelpers-KIi_qCIU.js.map +1 -0
  90. package/dist/components/hds/accordion/item/button.js +1 -1
  91. package/dist/components/hds/accordion/item/index.js +1 -1
  92. package/dist/components/hds/alert/index.js +1 -1
  93. package/dist/components/hds/alert/index.js.map +1 -1
  94. package/dist/components/hds/alert/types.js +1 -1
  95. package/dist/components/hds/alert/types.js.map +1 -1
  96. package/dist/components/hds/app-footer/index.js.map +1 -1
  97. package/dist/components/hds/app-footer/link.js.map +1 -1
  98. package/dist/components/hds/app-footer/status-link.js.map +1 -1
  99. package/dist/components/hds/app-footer/types.js.map +1 -1
  100. package/dist/components/hds/application-state/body.js +8 -2
  101. package/dist/components/hds/application-state/body.js.map +1 -1
  102. package/dist/components/hds/application-state/footer.js +3 -3
  103. package/dist/components/hds/application-state/footer.js.map +1 -1
  104. package/dist/components/hds/application-state/header.js +8 -2
  105. package/dist/components/hds/application-state/header.js.map +1 -1
  106. package/dist/components/hds/application-state/index.js +8 -2
  107. package/dist/components/hds/application-state/index.js.map +1 -1
  108. package/dist/components/hds/badge/index.js.map +1 -1
  109. package/dist/components/hds/badge-count/index.js.map +1 -1
  110. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  111. package/dist/components/hds/button/index.js.map +1 -1
  112. package/dist/components/hds/card/container.js.map +1 -1
  113. package/dist/components/hds/code-block/index.js +1 -1
  114. package/dist/components/hds/code-block/index.js.map +1 -1
  115. package/dist/components/hds/copy/button/index.js +1 -1
  116. package/dist/components/hds/copy/button/index.js.map +1 -1
  117. package/dist/components/hds/copy/snippet/index.js +1 -1
  118. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  119. package/dist/components/hds/disclosure-primitive/index.js +1 -1
  120. package/dist/components/hds/dropdown/index.js +1 -1
  121. package/dist/components/hds/dropdown/index.js.map +1 -1
  122. package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
  123. package/dist/components/hds/dropdown/toggle/button.js +1 -1
  124. package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
  125. package/dist/components/hds/dropdown/toggle/icon.js +11 -4
  126. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  127. package/dist/components/hds/flyout/index.js +1 -1
  128. package/dist/components/hds/flyout/index.js.map +1 -1
  129. package/dist/components/hds/form/character-count/index.js.map +1 -1
  130. package/dist/components/hds/form/error/index.js.map +1 -1
  131. package/dist/components/hds/form/field/index.js +1 -1
  132. package/dist/components/hds/form/field/index.js.map +1 -1
  133. package/dist/components/hds/form/fieldset/index.js +1 -1
  134. package/dist/components/hds/form/fieldset/index.js.map +1 -1
  135. package/dist/components/hds/form/helper-text/index.js.map +1 -1
  136. package/dist/components/hds/form/label/index.js.map +1 -1
  137. package/dist/components/hds/form/masked-input/base.js +1 -1
  138. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  139. package/dist/components/hds/form/radio-card/index.js +1 -1
  140. package/dist/components/hds/form/radio-card/index.js.map +1 -1
  141. package/dist/components/hds/form/select/base.js.map +1 -1
  142. package/dist/components/hds/form/super-select/multiple/base.js +1 -1
  143. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  144. package/dist/components/hds/form/super-select/option-group.js +1 -1
  145. package/dist/components/hds/form/super-select/single/base.js +1 -1
  146. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  147. package/dist/components/hds/form/text-input/base.js.map +1 -1
  148. package/dist/components/hds/form/text-input/field.js +1 -1
  149. package/dist/components/hds/form/textarea/base.js.map +1 -1
  150. package/dist/components/hds/icon-tile/index.js.map +1 -1
  151. package/dist/components/hds/interactive/index.js +1 -1
  152. package/dist/components/hds/link/inline.js.map +1 -1
  153. package/dist/components/hds/link/standalone.js.map +1 -1
  154. package/dist/components/hds/menu-primitive/index.js +1 -1
  155. package/dist/components/hds/modal/index.js +1 -1
  156. package/dist/components/hds/modal/index.js.map +1 -1
  157. package/dist/components/hds/page-header/actions.js +8 -2
  158. package/dist/components/hds/page-header/actions.js.map +1 -1
  159. package/dist/components/hds/page-header/badges.js +8 -2
  160. package/dist/components/hds/page-header/badges.js.map +1 -1
  161. package/dist/components/hds/page-header/description.js +8 -2
  162. package/dist/components/hds/page-header/description.js.map +1 -1
  163. package/dist/components/hds/page-header/index.js +8 -2
  164. package/dist/components/hds/page-header/index.js.map +1 -1
  165. package/dist/components/hds/page-header/subtitle.js +8 -2
  166. package/dist/components/hds/page-header/subtitle.js.map +1 -1
  167. package/dist/components/hds/page-header/title.js +8 -2
  168. package/dist/components/hds/page-header/title.js.map +1 -1
  169. package/dist/components/hds/pagination/compact/index.js +1 -1
  170. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  171. package/dist/components/hds/pagination/nav/arrow.js +1 -1
  172. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  173. package/dist/components/hds/pagination/nav/number.js +1 -1
  174. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  175. package/dist/components/hds/pagination/numbered/index.js +1 -1
  176. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  177. package/dist/components/hds/pagination/size-selector/index.js +1 -1
  178. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  179. package/dist/components/hds/popover-primitive/index.js +1 -1
  180. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  181. package/dist/components/hds/reveal/index.js +1 -1
  182. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  183. package/dist/components/hds/rich-tooltip/index.js +1 -1
  184. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  185. package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
  186. package/dist/components/hds/separator/index.js.map +1 -1
  187. package/dist/components/hds/side-nav/base.js +8 -2
  188. package/dist/components/hds/side-nav/base.js.map +1 -1
  189. package/dist/components/hds/side-nav/header/home-link.js +2 -2
  190. package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
  191. package/dist/components/hds/side-nav/header/icon-button.js +2 -2
  192. package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
  193. package/dist/components/hds/side-nav/header/index.js +8 -2
  194. package/dist/components/hds/side-nav/header/index.js.map +1 -1
  195. package/dist/components/hds/side-nav/index.js +14 -10
  196. package/dist/components/hds/side-nav/index.js.map +1 -1
  197. package/dist/components/hds/side-nav/list/back-link.js +8 -2
  198. package/dist/components/hds/side-nav/list/back-link.js.map +1 -1
  199. package/dist/components/hds/side-nav/list/index.js +8 -2
  200. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  201. package/dist/components/hds/side-nav/list/item.js +8 -2
  202. package/dist/components/hds/side-nav/list/item.js.map +1 -1
  203. package/dist/components/hds/side-nav/list/link.js +8 -2
  204. package/dist/components/hds/side-nav/list/link.js.map +1 -1
  205. package/dist/components/hds/side-nav/list/title.js +8 -2
  206. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  207. package/dist/components/hds/side-nav/portal/index.js +10 -4
  208. package/dist/components/hds/side-nav/portal/index.js.map +1 -1
  209. package/dist/components/hds/side-nav/portal/target.js +25 -25
  210. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  211. package/dist/components/hds/side-nav/toggle-button.js +8 -2
  212. package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
  213. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  214. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  215. package/dist/components/hds/stepper/types.js.map +1 -1
  216. package/dist/components/hds/table/index.js +1 -1
  217. package/dist/components/hds/table/index.js.map +1 -1
  218. package/dist/components/hds/table/td.js.map +1 -1
  219. package/dist/components/hds/table/th-button-sort.js +1 -1
  220. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  221. package/dist/components/hds/table/th-button-tooltip.js +1 -1
  222. package/dist/components/hds/table/th-selectable.js +1 -1
  223. package/dist/components/hds/table/th-selectable.js.map +1 -1
  224. package/dist/components/hds/table/th-sort.js +1 -1
  225. package/dist/components/hds/table/th-sort.js.map +1 -1
  226. package/dist/components/hds/table/th.js +1 -1
  227. package/dist/components/hds/table/th.js.map +1 -1
  228. package/dist/components/hds/table/tr.js.map +1 -1
  229. package/dist/components/hds/tabs/index.js +37 -36
  230. package/dist/components/hds/tabs/index.js.map +1 -1
  231. package/dist/components/hds/tabs/panel.js +4 -3
  232. package/dist/components/hds/tabs/panel.js.map +1 -1
  233. package/dist/components/hds/tabs/tab.js +11 -11
  234. package/dist/components/hds/tabs/tab.js.map +1 -1
  235. package/dist/components/hds/tabs/types.js +8 -0
  236. package/dist/components/hds/tabs/types.js.map +1 -0
  237. package/dist/components/hds/tag/index.js.map +1 -1
  238. package/dist/components/hds/text/body.js.map +1 -1
  239. package/dist/components/hds/text/code.js.map +1 -1
  240. package/dist/components/hds/text/display.js.map +1 -1
  241. package/dist/components/hds/text/index.js.map +1 -1
  242. package/dist/components.js +2 -0
  243. package/dist/components.js.map +1 -1
  244. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  245. package/dist/modifiers/hds-clipboard.js.map +1 -1
  246. package/dist/modifiers/hds-tooltip.js +1 -1
  247. package/dist/modifiers/hds-tooltip.js.map +1 -1
  248. package/dist/styles/@hashicorp/design-system-components.css +5 -0
  249. package/dist/styles/components/dropdown.scss +15 -2
  250. package/package.json +18 -18
  251. package/dist/_rollupPluginBabelHelpers-NoJJJNhk.js +0 -76
  252. package/dist/_rollupPluginBabelHelpers-NoJJJNhk.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/badge/index.hbs","../../../../src/components/hds/badge/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<div class={{this.classNames}} ...attributes>\\n {{#if this.icon}}\\n <div class=\\\"hds-badge__icon\\\">\\n <FlightIcon @name={{this.icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n {{#if this.isIconOnly}}\\n <span class=\\\"sr-only\\\">{{this.text}}</span>\\n {{else}}\\n <div class=\\\"hds-badge__text\\\">\\n {{this.text}}\\n </div>\\n {{/if}}\\n</div>\")","/**\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 {\n HdsBadgeColorValues,\n HdsBadgeSizeValues,\n HdsBadgeTypeValues,\n} from './types.ts';\n\nimport type { HdsBadgeColors, HdsBadgeSizes, HdsBadgeTypes } from './types.ts';\n\nexport const SIZES: string[] = Object.values(HdsBadgeSizeValues);\nexport const TYPES: string[] = Object.values(HdsBadgeTypeValues);\nexport const COLORS: string[] = Object.values(HdsBadgeColorValues);\nexport const DEFAULT_SIZE = HdsBadgeSizeValues.Medium;\nexport const DEFAULT_TYPE = HdsBadgeTypeValues.Filled;\nexport const DEFAULT_COLOR = HdsBadgeColorValues.Neutral;\n\nexport interface HdsBadgeSignature {\n Args: {\n size?: HdsBadgeSizes;\n type?: HdsBadgeTypes;\n color?: HdsBadgeColors;\n text: string;\n icon?: string | null;\n isIconOnly?: boolean;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsBadgeComponent extends Component<HdsBadgeSignature> {\n /**\n * Sets the size for the component\n * Accepted values: small, medium, large\n *\n * @param size\n * @type {HdsBadgeSizes}\n * @default 'medium'\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Badge\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the type of the component\n * Accepted values: filled, inverted, outlined\n *\n * @param type\n * @type {HdsBadgeTypes}\n * @default 'filled'\n */\n get type() {\n const { type = DEFAULT_TYPE } = this.args;\n\n assert(\n `@type for \"Hds::Badge\" must be one of the following: ${TYPES.join(\n ', '\n )}; received: ${type}`,\n TYPES.includes(type)\n );\n\n return type;\n }\n\n /**\n * Sets the color scheme for the component\n * Accepted values: neutral, neutral-dark-mode, highlight, success, warning, critical\n *\n * @param color\n * @type {HdsBadgeColors}\n * @default 'neutral'\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Badge\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param text\n * @type {string}\n * @description The text of the badge. If `isIconOnly` is set to `true`, the text will be visually hidden but still available to assistive technology. If no text value is defined, an error will be thrown.\n */\n get text() {\n const { text } = this.args;\n\n assert(\n '@text for \"Hds::Badge\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * Sets the icon name if there is one\n *\n * @param icon\n * @type {string|null}\n * @default null\n */\n get icon() {\n return this.args.icon ?? null;\n }\n\n /**\n * @param isIconOnly\n * @type {boolean}\n * @default false\n * @description Indicates if the badge will only contain an icon; component will also ensure that accessible text is still applied to the component.\n */\n get isIconOnly() {\n if (this.icon) {\n return this.args.isIconOnly ?? false;\n }\n return false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method Badge#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-badge'];\n\n // add a class based on the @size argument\n classes.push(`hds-badge--size-${this.size}`);\n\n // add a class based on the @type argument\n classes.push(`hds-badge--type-${this.type}`);\n\n // add a class based on the @color argument\n classes.push(`hds-badge--color-${this.color}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["SIZES","Object","values","HdsBadgeSizeValues","TYPES","HdsBadgeTypeValues","COLORS","HdsBadgeColorValues","DEFAULT_SIZE","Medium","DEFAULT_TYPE","Filled","DEFAULT_COLOR","Neutral","HdsBadgeComponent","Component","size","args","assert","join","includes","type","color","text","undefined","icon","isIconOnly","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/badge/index.hbs","../../../../src/components/hds/badge/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<div class={{this.classNames}} ...attributes>\\n {{#if this.icon}}\\n <div class=\\\"hds-badge__icon\\\">\\n <FlightIcon @name={{this.icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n {{#if this.isIconOnly}}\\n <span class=\\\"sr-only\\\">{{this.text}}</span>\\n {{else}}\\n <div class=\\\"hds-badge__text\\\">\\n {{this.text}}\\n </div>\\n {{/if}}\\n</div>\")","/**\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 {\n HdsBadgeColorValues,\n HdsBadgeSizeValues,\n HdsBadgeTypeValues,\n} from './types.ts';\n\nimport type { HdsBadgeColors, HdsBadgeSizes, HdsBadgeTypes } from './types.ts';\nimport type { FlightIconSignature } from '@hashicorp/ember-flight-icons/components/flight-icon';\n\nexport const SIZES: string[] = Object.values(HdsBadgeSizeValues);\nexport const TYPES: string[] = Object.values(HdsBadgeTypeValues);\nexport const COLORS: string[] = Object.values(HdsBadgeColorValues);\nexport const DEFAULT_SIZE = HdsBadgeSizeValues.Medium;\nexport const DEFAULT_TYPE = HdsBadgeTypeValues.Filled;\nexport const DEFAULT_COLOR = HdsBadgeColorValues.Neutral;\n\nexport interface HdsBadgeSignature {\n Args: {\n size?: HdsBadgeSizes;\n type?: HdsBadgeTypes;\n color?: HdsBadgeColors;\n text: string;\n icon?: FlightIconSignature['Args']['name'];\n isIconOnly?: boolean;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsBadgeComponent extends Component<HdsBadgeSignature> {\n /**\n * Sets the size for the component\n * Accepted values: small, medium, large\n *\n * @param size\n * @type {HdsBadgeSizes}\n * @default 'medium'\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Badge\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the type of the component\n * Accepted values: filled, inverted, outlined\n *\n * @param type\n * @type {HdsBadgeTypes}\n * @default 'filled'\n */\n get type() {\n const { type = DEFAULT_TYPE } = this.args;\n\n assert(\n `@type for \"Hds::Badge\" must be one of the following: ${TYPES.join(\n ', '\n )}; received: ${type}`,\n TYPES.includes(type)\n );\n\n return type;\n }\n\n /**\n * Sets the color scheme for the component\n * Accepted values: neutral, neutral-dark-mode, highlight, success, warning, critical\n *\n * @param color\n * @type {HdsBadgeColors}\n * @default 'neutral'\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Badge\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param text\n * @type {string}\n * @description The text of the badge. If `isIconOnly` is set to `true`, the text will be visually hidden but still available to assistive technology. If no text value is defined, an error will be thrown.\n */\n get text() {\n const { text } = this.args;\n\n assert(\n '@text for \"Hds::Badge\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * Sets the icon name if there is one\n *\n * @param icon\n * @type {string|null}\n * @default null\n */\n get icon() {\n return this.args.icon ?? null;\n }\n\n /**\n * @param isIconOnly\n * @type {boolean}\n * @default false\n * @description Indicates if the badge will only contain an icon; component will also ensure that accessible text is still applied to the component.\n */\n get isIconOnly() {\n if (this.icon) {\n return this.args.isIconOnly ?? false;\n }\n return false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method Badge#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-badge'];\n\n // add a class based on the @size argument\n classes.push(`hds-badge--size-${this.size}`);\n\n // add a class based on the @type argument\n classes.push(`hds-badge--type-${this.type}`);\n\n // add a class based on the @color argument\n classes.push(`hds-badge--color-${this.color}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["SIZES","Object","values","HdsBadgeSizeValues","TYPES","HdsBadgeTypeValues","COLORS","HdsBadgeColorValues","DEFAULT_SIZE","Medium","DEFAULT_TYPE","Filled","DEFAULT_COLOR","Neutral","HdsBadgeComponent","Component","size","args","assert","join","includes","type","color","text","undefined","icon","isIconOnly","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/badge-count/index.hbs","../../../../src/components/hds/badge-count/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<div class={{this.classNames}} ...attributes>\\n {{@text}}\\n</div>\")","/**\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 {\n HdsBadgeCountColorValues,\n HdsBadgeCountSizeValues,\n HdsBadgeCountTypeValues,\n} from './types.ts';\nimport type {\n HdsBadgeCountColors,\n HdsBadgeSizes,\n HdsBadgeTypes,\n} from './types.ts';\n\nexport const SIZES: string[] = Object.values(HdsBadgeCountSizeValues);\nexport const TYPES: string[] = Object.values(HdsBadgeCountTypeValues);\nexport const COLORS: string[] = Object.values(HdsBadgeCountColorValues);\nexport const DEFAULT_SIZE = HdsBadgeCountSizeValues.Medium;\nexport const DEFAULT_TYPE = HdsBadgeCountTypeValues.Filled;\nexport const DEFAULT_COLOR = HdsBadgeCountColorValues.Neutral;\n\ninterface HdsBadgeCountSignature {\n Args: {\n size?: HdsBadgeSizes;\n type?: HdsBadgeTypes;\n color?: HdsBadgeCountColors;\n text: string;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsBadgeCountComponent extends Component<HdsBadgeCountSignature> {\n /**\n * Sets the size for the component\n * Accepted sizes: small, medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::BadgeCount\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the type of the component\n * Accepted values: filled, inverted, outlined\n *\n * @param type\n * @type {string}\n * @default 'filled'\n */\n get type() {\n const { type = DEFAULT_TYPE } = this.args;\n\n assert(\n `@type for \"Hds::BadgeCount\" must be one of the following: ${TYPES.join(\n ', '\n )}; received: ${type}`,\n TYPES.includes(type)\n );\n\n return type;\n }\n\n /**\n * Sets the color scheme for the component\n * Accepted colors: neutral, neutral-dark-mode\n *\n * @param color\n * @type {string}\n * @default 'neutral'\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::BadgeCount\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method BadgeCount#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-badge-count'];\n\n // add a class based on the @size argument\n classes.push(`hds-badge-count--size-${this.size}`);\n\n // add a class based on the @type argument\n classes.push(`hds-badge-count--type-${this.type}`);\n\n // add a class based on the @color argument\n classes.push(`hds-badge-count--color-${this.color}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["SIZES","Object","values","HdsBadgeCountSizeValues","TYPES","HdsBadgeCountTypeValues","COLORS","HdsBadgeCountColorValues","DEFAULT_SIZE","Medium","DEFAULT_TYPE","Filled","DEFAULT_COLOR","Neutral","HdsBadgeCountComponent","Component","size","args","assert","join","includes","type","color","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,kJAAkJ;;ACDpL;AACA;AACA;AACA;;AAgBO,MAAMA,KAAe,GAAGC,MAAM,CAACC,MAAM,CAACC,uBAAuB,EAAC;AAC9D,MAAMC,KAAe,GAAGH,MAAM,CAACC,MAAM,CAACG,uBAAuB,EAAC;AAC9D,MAAMC,MAAgB,GAAGL,MAAM,CAACC,MAAM,CAACK,wBAAwB,EAAC;AAC1DC,MAAAA,YAAY,GAAGL,uBAAuB,CAACM,OAAM;AAC7CC,MAAAA,YAAY,GAAGL,uBAAuB,CAACM,OAAM;AAC7CC,MAAAA,aAAa,GAAGL,wBAAwB,CAACM,QAAO;AAY9C,MAAMC,sBAAsB,SAASC,SAAS,CAAyB;AACpF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,MAAM;AAAEA,MAAAA,IAAI,GAAGR,YAAAA;KAAc,GAAG,IAAI,CAACS,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACH,CAA4DlB,0DAAAA,EAAAA,KAAK,CAACmB,IAAI,CACrE,IACF,CAAE,CAAA,YAAA,EAAcH,IAAK,CAAA,CAAC,EACtBhB,KAAK,CAACoB,QAAQ,CAACJ,IAAI,CACrB,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIK,IAAIA,GAAG;IACT,MAAM;AAAEA,MAAAA,IAAI,GAAGX,YAAAA;KAAc,GAAG,IAAI,CAACO,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACH,CAA4Dd,0DAAAA,EAAAA,KAAK,CAACe,IAAI,CACrE,IACF,CAAE,CAAA,YAAA,EAAcE,IAAK,CAAA,CAAC,EACtBjB,KAAK,CAACgB,QAAQ,CAACC,IAAI,CACrB,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,KAAKA,GAAG;IACV,MAAM;AAAEA,MAAAA,KAAK,GAAGV,aAAAA;KAAe,GAAG,IAAI,CAACK,IAAI,CAAA;AAE3CC,IAAAA,MAAM,CACH,CAA6DZ,2DAAAA,EAAAA,MAAM,CAACa,IAAI,CACvE,IACF,CAAE,CAAA,YAAA,EAAcG,KAAM,CAAA,CAAC,EACvBhB,MAAM,CAACc,QAAQ,CAACE,KAAK,CACvB,CAAC,CAAA;AAED,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAG;AACf,IAAA,MAAMC,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAA;;AAEnC;IACAA,OAAO,CAACC,IAAI,CAAE,CAAA,sBAAA,EAAwB,IAAI,CAACT,IAAK,EAAC,CAAC,CAAA;;AAElD;IACAQ,OAAO,CAACC,IAAI,CAAE,CAAA,sBAAA,EAAwB,IAAI,CAACJ,IAAK,EAAC,CAAC,CAAA;;AAElD;IACAG,OAAO,CAACC,IAAI,CAAE,CAAA,uBAAA,EAAyB,IAAI,CAACH,KAAM,EAAC,CAAC,CAAA;AAEpD,IAAA,OAAOE,OAAO,CAACL,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACO,oBAAA,CAAAC,QAAA,EAnFoBb,sBAAsB,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/badge-count/index.hbs","../../../../src/components/hds/badge-count/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<div class={{this.classNames}} ...attributes>\\n {{@text}}\\n</div>\")","/**\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 {\n HdsBadgeCountColorValues,\n HdsBadgeCountSizeValues,\n HdsBadgeCountTypeValues,\n} from './types.ts';\nimport type {\n HdsBadgeCountColors,\n HdsBadgeSizes,\n HdsBadgeTypes,\n} from './types.ts';\n\nexport const SIZES: string[] = Object.values(HdsBadgeCountSizeValues);\nexport const TYPES: string[] = Object.values(HdsBadgeCountTypeValues);\nexport const COLORS: string[] = Object.values(HdsBadgeCountColorValues);\nexport const DEFAULT_SIZE = HdsBadgeCountSizeValues.Medium;\nexport const DEFAULT_TYPE = HdsBadgeCountTypeValues.Filled;\nexport const DEFAULT_COLOR = HdsBadgeCountColorValues.Neutral;\n\ninterface HdsBadgeCountSignature {\n Args: {\n size?: HdsBadgeSizes;\n type?: HdsBadgeTypes;\n color?: HdsBadgeCountColors;\n text: string;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsBadgeCountComponent extends Component<HdsBadgeCountSignature> {\n /**\n * Sets the size for the component\n * Accepted sizes: small, medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::BadgeCount\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Sets the type of the component\n * Accepted values: filled, inverted, outlined\n *\n * @param type\n * @type {string}\n * @default 'filled'\n */\n get type() {\n const { type = DEFAULT_TYPE } = this.args;\n\n assert(\n `@type for \"Hds::BadgeCount\" must be one of the following: ${TYPES.join(\n ', '\n )}; received: ${type}`,\n TYPES.includes(type)\n );\n\n return type;\n }\n\n /**\n * Sets the color scheme for the component\n * Accepted colors: neutral, neutral-dark-mode\n *\n * @param color\n * @type {string}\n * @default 'neutral'\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::BadgeCount\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method BadgeCount#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-badge-count'];\n\n // add a class based on the @size argument\n classes.push(`hds-badge-count--size-${this.size}`);\n\n // add a class based on the @type argument\n classes.push(`hds-badge-count--type-${this.type}`);\n\n // add a class based on the @color argument\n classes.push(`hds-badge-count--color-${this.color}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["SIZES","Object","values","HdsBadgeCountSizeValues","TYPES","HdsBadgeCountTypeValues","COLORS","HdsBadgeCountColorValues","DEFAULT_SIZE","Medium","DEFAULT_TYPE","Filled","DEFAULT_COLOR","Neutral","HdsBadgeCountComponent","Component","size","args","assert","join","includes","type","color","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,kJAAkJ;;ACDpL;AACA;AACA;AACA;;AAgBO,MAAMA,KAAe,GAAGC,MAAM,CAACC,MAAM,CAACC,uBAAuB,EAAC;AAC9D,MAAMC,KAAe,GAAGH,MAAM,CAACC,MAAM,CAACG,uBAAuB,EAAC;AAC9D,MAAMC,MAAgB,GAAGL,MAAM,CAACC,MAAM,CAACK,wBAAwB,EAAC;AAC1DC,MAAAA,YAAY,GAAGL,uBAAuB,CAACM,OAAM;AAC7CC,MAAAA,YAAY,GAAGL,uBAAuB,CAACM,OAAM;AAC7CC,MAAAA,aAAa,GAAGL,wBAAwB,CAACM,QAAO;AAY9C,MAAMC,sBAAsB,SAASC,SAAS,CAAyB;AACpF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,MAAM;AAAEA,MAAAA,IAAI,GAAGR,YAAAA;KAAc,GAAG,IAAI,CAACS,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACJ,CAA6DlB,0DAAAA,EAAAA,KAAK,CAACmB,IAAI,CACrE,IACF,CAAC,CAAA,YAAA,EAAeH,IAAI,CAAA,CAAE,EACtBhB,KAAK,CAACoB,QAAQ,CAACJ,IAAI,CACrB,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIK,IAAIA,GAAG;IACT,MAAM;AAAEA,MAAAA,IAAI,GAAGX,YAAAA;KAAc,GAAG,IAAI,CAACO,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACJ,CAA6Dd,0DAAAA,EAAAA,KAAK,CAACe,IAAI,CACrE,IACF,CAAC,CAAA,YAAA,EAAeE,IAAI,CAAA,CAAE,EACtBjB,KAAK,CAACgB,QAAQ,CAACC,IAAI,CACrB,CAAC,CAAA;AAED,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,KAAKA,GAAG;IACV,MAAM;AAAEA,MAAAA,KAAK,GAAGV,aAAAA;KAAe,GAAG,IAAI,CAACK,IAAI,CAAA;AAE3CC,IAAAA,MAAM,CACJ,CAA8DZ,2DAAAA,EAAAA,MAAM,CAACa,IAAI,CACvE,IACF,CAAC,CAAA,YAAA,EAAeG,KAAK,CAAA,CAAE,EACvBhB,MAAM,CAACc,QAAQ,CAACE,KAAK,CACvB,CAAC,CAAA;AAED,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAG;AACf,IAAA,MAAMC,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAA;;AAEnC;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAACT,IAAI,EAAE,CAAC,CAAA;;AAElD;IACAQ,OAAO,CAACC,IAAI,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAACJ,IAAI,EAAE,CAAC,CAAA;;AAElD;IACAG,OAAO,CAACC,IAAI,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAACH,KAAK,EAAE,CAAC,CAAA;AAEpD,IAAA,OAAOE,OAAO,CAACL,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACO,oBAAA,CAAAC,QAAA,EAnFoBb,sBAAsB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sources":["../../../../src/components/hds/breadcrumb/item.hbs","../../../../src/components/hds/breadcrumb/item.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<li class=\\\"hds-breadcrumb__item\\\" style={{this.itemStyle}} ...attributes>\\n {{#if @current}}\\n <div class=\\\"hds-breadcrumb__current\\\">\\n {{#if @icon}}\\n <div class=\\\"hds-breadcrumb__icon\\\">\\n <FlightIcon @name={{@icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n <span class=\\\"hds-breadcrumb__text\\\">{{@text}}</span>\\n </div>\\n {{else}}\\n {{#if @isRouteExternal}}\\n <LinkToExternal\\n class=\\\"hds-breadcrumb__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 >\\n {{#if @icon}}\\n <div class=\\\"hds-breadcrumb__icon\\\">\\n <FlightIcon @name={{@icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n <span class=\\\"hds-breadcrumb__text\\\">{{@text}}</span>\\n </LinkToExternal>\\n {{else}}\\n <LinkTo\\n class=\\\"hds-breadcrumb__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 >\\n {{#if @icon}}\\n <div class=\\\"hds-breadcrumb__icon\\\">\\n <FlightIcon @name={{@icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n <span class=\\\"hds-breadcrumb__text\\\">{{@text}}</span>\\n </LinkTo>\\n {{/if}}\\n {{/if}}\\n</li>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { htmlSafe } from '@ember/template';\nimport { assert } from '@ember/debug';\n\nexport default class HdsBreadcrumbItemComponent extends Component {\n /**\n * @param maxWidth\n * @type {string}\n * @default undefined\n * @description A parameter that can be applied to an \"item\" to limit its max-width\n */\n get maxWidth() {\n let { maxWidth } = this.args;\n\n if (maxWidth) {\n assert(\n `@maxWidth for \"Hds::Breadcrumb::Item\" must be a size as number in 'px' or in 'em' (eg. '200px' or '24em'); received: ${maxWidth}`,\n maxWidth.match(/^\\d+(px|em)$/)\n );\n\n return maxWidth;\n } else {\n return undefined;\n }\n }\n\n /**\n * Get the inline style to apply to the item.\n * @method BreadcrumbItem#itemStyle\n * @return {string} The \"style\" attribute to apply to the item.\n */\n get itemStyle() {\n if (this.maxWidth) {\n return htmlSafe(`max-width: ${this.maxWidth}`);\n } else {\n return undefined;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method BreadcrumbItem#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-breadcrumb__item'];\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsBreadcrumbItemComponent","Component","maxWidth","args","assert","match","undefined","itemStyle","htmlSafe","classNames","classes","join","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,6nDAA6nD;;ACD/pD;AACA;AACA;AACA;;AAMe,MAAMA,0BAA0B,SAASC,SAAS,CAAC;AAChE;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,QAAQA,GAAG;IACb,IAAI;AAAEA,MAAAA,QAAAA;KAAU,GAAG,IAAI,CAACC,IAAI,CAAA;AAE5B,IAAA,IAAID,QAAQ,EAAE;MACZE,MAAM,CACH,CAAuHF,qHAAAA,EAAAA,QAAS,CAAC,CAAA,EAClIA,QAAQ,CAACG,KAAK,CAAC,cAAc,CAC/B,CAAC,CAAA;AAED,MAAA,OAAOH,QAAQ,CAAA;AACjB,KAAC,MAAM;AACL,MAAA,OAAOI,SAAS,CAAA;AAClB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,SAASA,GAAG;IACd,IAAI,IAAI,CAACL,QAAQ,EAAE;AACjB,MAAA,OAAOM,QAAQ,CAAE,CAAA,WAAA,EAAa,IAAI,CAACN,QAAS,EAAC,CAAC,CAAA;AAChD,KAAC,MAAM;AACL,MAAA,OAAOI,SAAS,CAAA;AAClB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEtC,IAAA,OAAOA,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACC,oBAAA,CAAAC,QAAA,EA7CoBb,0BAA0B,CAAA;;;;"}
1
+ {"version":3,"file":"item.js","sources":["../../../../src/components/hds/breadcrumb/item.hbs","../../../../src/components/hds/breadcrumb/item.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<li class=\\\"hds-breadcrumb__item\\\" style={{this.itemStyle}} ...attributes>\\n {{#if @current}}\\n <div class=\\\"hds-breadcrumb__current\\\">\\n {{#if @icon}}\\n <div class=\\\"hds-breadcrumb__icon\\\">\\n <FlightIcon @name={{@icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n <span class=\\\"hds-breadcrumb__text\\\">{{@text}}</span>\\n </div>\\n {{else}}\\n {{#if @isRouteExternal}}\\n <LinkToExternal\\n class=\\\"hds-breadcrumb__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 >\\n {{#if @icon}}\\n <div class=\\\"hds-breadcrumb__icon\\\">\\n <FlightIcon @name={{@icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n <span class=\\\"hds-breadcrumb__text\\\">{{@text}}</span>\\n </LinkToExternal>\\n {{else}}\\n <LinkTo\\n class=\\\"hds-breadcrumb__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 >\\n {{#if @icon}}\\n <div class=\\\"hds-breadcrumb__icon\\\">\\n <FlightIcon @name={{@icon}} @size=\\\"16\\\" @stretched={{true}} />\\n </div>\\n {{/if}}\\n <span class=\\\"hds-breadcrumb__text\\\">{{@text}}</span>\\n </LinkTo>\\n {{/if}}\\n {{/if}}\\n</li>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { htmlSafe } from '@ember/template';\nimport { assert } from '@ember/debug';\n\nexport default class HdsBreadcrumbItemComponent extends Component {\n /**\n * @param maxWidth\n * @type {string}\n * @default undefined\n * @description A parameter that can be applied to an \"item\" to limit its max-width\n */\n get maxWidth() {\n let { maxWidth } = this.args;\n\n if (maxWidth) {\n assert(\n `@maxWidth for \"Hds::Breadcrumb::Item\" must be a size as number in 'px' or in 'em' (eg. '200px' or '24em'); received: ${maxWidth}`,\n maxWidth.match(/^\\d+(px|em)$/)\n );\n\n return maxWidth;\n } else {\n return undefined;\n }\n }\n\n /**\n * Get the inline style to apply to the item.\n * @method BreadcrumbItem#itemStyle\n * @return {string} The \"style\" attribute to apply to the item.\n */\n get itemStyle() {\n if (this.maxWidth) {\n return htmlSafe(`max-width: ${this.maxWidth}`);\n } else {\n return undefined;\n }\n }\n\n /**\n * Get the class names to apply to the component.\n * @method BreadcrumbItem#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-breadcrumb__item'];\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsBreadcrumbItemComponent","Component","maxWidth","args","assert","match","undefined","itemStyle","htmlSafe","classNames","classes","join","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AACA,eAAe,kBAAkB,CAAC,6nDAA6nD;;ACD/pD;AACA;AACA;AACA;;AAMe,MAAMA,0BAA0B,SAASC,SAAS,CAAC;AAChE;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,QAAQA,GAAG;IACb,IAAI;AAAEA,MAAAA,QAAAA;KAAU,GAAG,IAAI,CAACC,IAAI,CAAA;AAE5B,IAAA,IAAID,QAAQ,EAAE;MACZE,MAAM,CACJ,CAAwHF,qHAAAA,EAAAA,QAAQ,CAAE,CAAA,EAClIA,QAAQ,CAACG,KAAK,CAAC,cAAc,CAC/B,CAAC,CAAA;AAED,MAAA,OAAOH,QAAQ,CAAA;AACjB,KAAC,MAAM;AACL,MAAA,OAAOI,SAAS,CAAA;AAClB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,SAASA,GAAG;IACd,IAAI,IAAI,CAACL,QAAQ,EAAE;AACjB,MAAA,OAAOM,QAAQ,CAAC,CAAA,WAAA,EAAc,IAAI,CAACN,QAAQ,EAAE,CAAC,CAAA;AAChD,KAAC,MAAM;AACL,MAAA,OAAOI,SAAS,CAAA;AAClB,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEtC,IAAA,OAAOA,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACC,oBAAA,CAAAC,QAAA,EA7CoBb,0BAA0B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/button/index.hbs","../../../../src/components/hds/button/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::Interactive\\n class={{this.classNames}}\\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 ...attributes\\n aria-label={{if this.isIconOnly this.text null}}\\n>\\n {{#if this.isIconOnly}}\\n <span class=\\\"hds-button__icon\\\">\\n <FlightIcon @name={{this.icon}} @size={{this.iconSize}} @stretched={{true}} />\\n </span>\\n {{else}}\\n {{#if this.icon}}\\n {{#if (eq this.iconPosition \\\"leading\\\")}}\\n <span class=\\\"hds-button__icon\\\">\\n <FlightIcon @name={{this.icon}} @size={{this.iconSize}} @stretched={{true}} />\\n </span>\\n <span class=\\\"hds-button__text\\\">\\n {{this.text}}\\n </span>\\n {{else}}\\n <span class=\\\"hds-button__text\\\">\\n {{this.text}}\\n </span>\\n <span class=\\\"hds-button__icon\\\">\\n <FlightIcon @name={{this.icon}} @size={{this.iconSize}} @stretched={{true}} />\\n </span>\\n {{/if}}\\n {{else}}\\n <span class=\\\"hds-button__text\\\">\\n {{this.text}}\\n </span>\\n {{/if}}\\n {{/if}}\\n</Hds::Interactive>\")","/**\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 type { HdsInteractiveSignature } from '../interactive/';\n\nexport const DEFAULT_SIZE = 'medium';\nexport const DEFAULT_COLOR = 'primary';\nexport const DEFAULT_ICONPOSITION = 'leading';\nexport const SIZES = ['small', 'medium', 'large'] as const;\nexport const COLORS = ['primary', 'secondary', 'tertiary', 'critical'] as const;\nexport const ICONPOSITIONS = ['leading', 'trailing'] as const;\n\nexport type HdsButtonSize = (typeof SIZES)[number];\nexport type HdsButtonColor = (typeof COLORS)[number];\nexport type HdsButtonIconPosition = (typeof ICONPOSITIONS)[number];\n\nexport interface HdsButtonSignature {\n Args: HdsInteractiveSignature['Args'] & {\n size?: HdsButtonSize;\n color?: HdsButtonColor;\n text: string;\n icon?: string;\n iconPosition?: HdsButtonIconPosition;\n isIconOnly?: boolean;\n isFullWidth?: boolean;\n isInline?: boolean;\n };\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport default class HdsButtonComponent extends Component<HdsButtonSignature> {\n /**\n * @param text\n * @type {string}\n * @description The text of the button or value of `aria-label` if `isIconOnly` is set to `true`. If no text value is defined an error will be thrown.\n */\n get text() {\n const { text } = this.args;\n\n assert(\n '@text for \"Hds::Button\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the button; acceptable values are `small`, `medium`, and `large`\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of button to be used; acceptable values are `primary`, `secondary`, and `critical`\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Button\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param icon\n * @type {string}\n * @default null\n * @description The name of the icon to be used.\n */\n get icon() {\n assert(\n `when the \"Hds::Button\" @color is \"tertiary\" an @icon is required`,\n !(this.color === 'tertiary' && !this.args.icon)\n );\n\n return this.args.icon ?? undefined;\n }\n\n /**\n * @param isIconOnly\n * @type {boolean}\n * @default false\n * @description Indicates if the button will only contain an icon; component will also ensure that accessible text is still applied to the component.\n */\n get isIconOnly() {\n if (this.icon) {\n return this.args.isIconOnly ?? false;\n }\n return false;\n }\n\n /**\n * @param iconPosition\n * @type {string}\n * @default leading\n * @description Positions the icon before or after the text; allowed values are `leading` or `trailing`\n */\n get iconPosition() {\n const { iconPosition = DEFAULT_ICONPOSITION } = this.args;\n\n assert(\n `@iconPosition for \"Hds::Button\" must be one of the following: ${ICONPOSITIONS.join(\n ', '\n )}; received: ${iconPosition}`,\n ICONPOSITIONS.includes(iconPosition)\n );\n\n return iconPosition;\n }\n\n /**\n * @param iconSize\n * @type {string}\n * @default 16\n * @description ensures that the correct icon size is used. Automatically calculated.\n */\n get iconSize() {\n if (this.args.size === 'large') {\n return '24';\n } else {\n return '16';\n }\n }\n\n /**\n * @param isFullWidth\n * @type {boolean}\n * @default false\n * @description Indicates that a button should take up the full width of the parent container. The default is false.\n */\n get isFullWidth() {\n return this.args.isFullWidth ?? false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method Button#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-button'];\n\n // add a class based on the @color argument\n classes.push(`hds-button--color-${this.color}`);\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-button--width-full');\n }\n\n // add a class based on isIconOnly argument\n if (this.isIconOnly) {\n classes.push('hds-button--is-icon-only');\n }\n\n // add a class based on the @isInline argument\n if (this.args.isInline) {\n classes.push('hds-button--is-inline');\n }\n\n // add a class based on the @size argument\n classes.push(`hds-button--size-${this.size}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_SIZE","DEFAULT_COLOR","DEFAULT_ICONPOSITION","SIZES","COLORS","ICONPOSITIONS","HdsButtonComponent","Component","text","args","assert","undefined","size","join","includes","color","icon","isIconOnly","iconPosition","iconSize","isFullWidth","classNames","classes","push","isInline","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/button/index.hbs","../../../../src/components/hds/button/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::Interactive\\n class={{this.classNames}}\\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 ...attributes\\n aria-label={{if this.isIconOnly this.text null}}\\n>\\n {{#if this.isIconOnly}}\\n <span class=\\\"hds-button__icon\\\">\\n <FlightIcon @name={{this.icon}} @size={{this.iconSize}} @stretched={{true}} />\\n </span>\\n {{else}}\\n {{#if this.icon}}\\n {{#if (eq this.iconPosition \\\"leading\\\")}}\\n <span class=\\\"hds-button__icon\\\">\\n <FlightIcon @name={{this.icon}} @size={{this.iconSize}} @stretched={{true}} />\\n </span>\\n <span class=\\\"hds-button__text\\\">\\n {{this.text}}\\n </span>\\n {{else}}\\n <span class=\\\"hds-button__text\\\">\\n {{this.text}}\\n </span>\\n <span class=\\\"hds-button__icon\\\">\\n <FlightIcon @name={{this.icon}} @size={{this.iconSize}} @stretched={{true}} />\\n </span>\\n {{/if}}\\n {{else}}\\n <span class=\\\"hds-button__text\\\">\\n {{this.text}}\\n </span>\\n {{/if}}\\n {{/if}}\\n</Hds::Interactive>\")","/**\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 type { HdsInteractiveSignature } from '../interactive/';\nimport type { FlightIconSignature } from '@hashicorp/ember-flight-icons/components/flight-icon';\n\nexport const DEFAULT_SIZE = 'medium';\nexport const DEFAULT_COLOR = 'primary';\nexport const DEFAULT_ICONPOSITION = 'leading';\nexport const SIZES = ['small', 'medium', 'large'] as const;\nexport const COLORS = ['primary', 'secondary', 'tertiary', 'critical'] as const;\nexport const ICONPOSITIONS = ['leading', 'trailing'] as const;\n\nexport type HdsButtonSize = (typeof SIZES)[number];\nexport type HdsButtonColor = (typeof COLORS)[number];\nexport type HdsButtonIconPosition = (typeof ICONPOSITIONS)[number];\n\nexport interface HdsButtonSignature {\n Args: HdsInteractiveSignature['Args'] & {\n size?: HdsButtonSize;\n color?: HdsButtonColor;\n text: string;\n icon?: FlightIconSignature['Args']['name'];\n iconPosition?: HdsButtonIconPosition;\n isIconOnly?: boolean;\n isFullWidth?: boolean;\n isInline?: boolean;\n };\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport default class HdsButtonComponent extends Component<HdsButtonSignature> {\n /**\n * @param text\n * @type {string}\n * @description The text of the button or value of `aria-label` if `isIconOnly` is set to `true`. If no text value is defined an error will be thrown.\n */\n get text() {\n const { text } = this.args;\n\n assert(\n '@text for \"Hds::Button\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the button; acceptable values are `small`, `medium`, and `large`\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of button to be used; acceptable values are `primary`, `secondary`, and `critical`\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Button\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param icon\n * @type {string}\n * @default null\n * @description The name of the icon to be used.\n */\n get icon() {\n assert(\n `when the \"Hds::Button\" @color is \"tertiary\" an @icon is required`,\n !(this.color === 'tertiary' && !this.args.icon)\n );\n\n return this.args.icon ?? undefined;\n }\n\n /**\n * @param isIconOnly\n * @type {boolean}\n * @default false\n * @description Indicates if the button will only contain an icon; component will also ensure that accessible text is still applied to the component.\n */\n get isIconOnly() {\n if (this.icon) {\n return this.args.isIconOnly ?? false;\n }\n return false;\n }\n\n /**\n * @param iconPosition\n * @type {string}\n * @default leading\n * @description Positions the icon before or after the text; allowed values are `leading` or `trailing`\n */\n get iconPosition() {\n const { iconPosition = DEFAULT_ICONPOSITION } = this.args;\n\n assert(\n `@iconPosition for \"Hds::Button\" must be one of the following: ${ICONPOSITIONS.join(\n ', '\n )}; received: ${iconPosition}`,\n ICONPOSITIONS.includes(iconPosition)\n );\n\n return iconPosition;\n }\n\n /**\n * @param iconSize\n * @type {string}\n * @default 16\n * @description ensures that the correct icon size is used. Automatically calculated.\n */\n get iconSize() {\n if (this.args.size === 'large') {\n return '24';\n } else {\n return '16';\n }\n }\n\n /**\n * @param isFullWidth\n * @type {boolean}\n * @default false\n * @description Indicates that a button should take up the full width of the parent container. The default is false.\n */\n get isFullWidth() {\n return this.args.isFullWidth ?? false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method Button#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-button'];\n\n // add a class based on the @color argument\n classes.push(`hds-button--color-${this.color}`);\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-button--width-full');\n }\n\n // add a class based on isIconOnly argument\n if (this.isIconOnly) {\n classes.push('hds-button--is-icon-only');\n }\n\n // add a class based on the @isInline argument\n if (this.args.isInline) {\n classes.push('hds-button--is-inline');\n }\n\n // add a class based on the @size argument\n classes.push(`hds-button--size-${this.size}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_SIZE","DEFAULT_COLOR","DEFAULT_ICONPOSITION","SIZES","COLORS","ICONPOSITIONS","HdsButtonComponent","Component","text","args","assert","undefined","size","join","includes","color","icon","isIconOnly","iconPosition","iconSize","isFullWidth","classNames","classes","push","isInline","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sources":["../../../../src/components/hds/card/container.hbs","../../../../src/components/hds/card/container.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}} ...attributes>\\n {{yield}}\\n</div>\")","/**\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 {\n HdsCardBackgroundValues,\n HdsCardLevelValues,\n HdsCardOverflowValues,\n} from './types.ts';\nimport type {\n HdsCardBackground,\n HdsCardLevel,\n HdsCardOverflow,\n} from './types.ts';\n\nexport const DEFAULT_LEVEL = HdsCardLevelValues.Base;\nexport const DEFAULT_BACKGROUND = HdsCardBackgroundValues.NeutralPrimary;\nexport const DEFAULT_OVERFLOW = HdsCardOverflowValues.Visible;\nexport const AVAILABLE_LEVELS: string[] = Object.values(HdsCardLevelValues);\nexport const AVAILABLE_BACKGROUNDS: string[] = Object.values(\n HdsCardBackgroundValues\n);\nexport const AVAILABLE_OVERFLOWS: string[] = Object.values(\n HdsCardOverflowValues\n);\n\nexport interface HdsCardContainerSignature {\n Args: {\n level?: HdsCardLevel;\n levelActive?: HdsCardLevel;\n levelHover?: HdsCardLevel;\n background?: HdsCardBackground;\n hasBorder?: boolean;\n overflow?: HdsCardOverflow;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsCardContainerComponent extends Component<HdsCardContainerSignature> {\n /**\n * Sets the \"elevation\" level for the component\n * Accepted values: base, mid, high\n *\n * @param level\n * @type {HdsCardLevel}\n * @default 'base'\n */\n get level(): HdsCardLevel {\n const { level = DEFAULT_LEVEL } = this.args;\n\n assert(\n `@level for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_LEVELS.join(\n ', '\n )}; received: ${level}`,\n AVAILABLE_LEVELS.includes(level)\n );\n\n return level;\n }\n\n /**\n * Sets the \"elevation\" level for the component on \":hover\" state\n * Accepted values: base, mid, high\n *\n * @param levelHover\n * @type {HdsCardLevel}\n */\n get levelHover(): HdsCardLevel | undefined {\n const { levelHover } = this.args;\n\n if (levelHover) {\n assert(\n `@levelHover for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_LEVELS.join(\n ', '\n )}; received: ${levelHover}`,\n AVAILABLE_LEVELS.includes(levelHover)\n );\n }\n\n return levelHover;\n }\n\n /**\n * Sets the \"elevation\" level for the component on \":active\" state\n * Accepted values: base, mid, high\n *\n * @param levelActive\n * @type {HdsCardLevel}\n */\n get levelActive(): HdsCardLevel | undefined {\n const { levelActive } = this.args;\n\n if (levelActive) {\n assert(\n `@levelActive for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_LEVELS.join(\n ', '\n )}; received: ${levelActive}`,\n AVAILABLE_LEVELS.includes(levelActive)\n );\n }\n\n return levelActive;\n }\n\n /**\n * Sets the background for the component\n * Accepted values: neutral-primary, neutral-secondary\n *\n * @param background\n * @type {HdsCardBackground}\n * @default 'base'\n */\n get background(): HdsCardBackground {\n const { background = DEFAULT_BACKGROUND } = this.args;\n\n assert(\n `@background for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_BACKGROUNDS.join(\n ', '\n )}; received: ${background}`,\n AVAILABLE_BACKGROUNDS.includes(background)\n );\n\n return background;\n }\n\n /**\n * Sets the level for the card\n * Accepted values: visible, hidden\n *\n * @param overflow\n * @type {HdsCardOverflow}\n * @default 'visible'\n */\n get overflow(): HdsCardOverflow {\n const { overflow = DEFAULT_OVERFLOW } = this.args;\n\n assert(\n `@overflow for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_OVERFLOWS.join(\n ', '\n )}; received: ${overflow}`,\n AVAILABLE_OVERFLOWS.includes(overflow)\n );\n\n return overflow;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method Card#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-card__container'];\n\n // add \"elevation\" classes based on the @level and @hasBorder arguments\n classes.push(\n `hds-card__container--level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.level}`\n );\n if (this.levelHover) {\n classes.push(\n `hds-card__container--hover-level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.levelHover}`\n );\n }\n if (this.levelActive) {\n classes.push(\n `hds-card__container--active-level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.levelActive}`\n );\n }\n\n // add a class based on the @background argument\n classes.push(`hds-card__container--background-${this.background}`);\n\n // add a class based on the @overflow argument\n classes.push(`hds-card__container--overflow-${this.overflow}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_LEVEL","HdsCardLevelValues","Base","DEFAULT_BACKGROUND","HdsCardBackgroundValues","NeutralPrimary","DEFAULT_OVERFLOW","HdsCardOverflowValues","Visible","AVAILABLE_LEVELS","Object","values","AVAILABLE_BACKGROUNDS","AVAILABLE_OVERFLOWS","HdsCardContainerComponent","Component","level","args","assert","join","includes","levelHover","levelActive","background","overflow","classNames","classes","push","hasBorder","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sources":["../../../../src/components/hds/card/container.hbs","../../../../src/components/hds/card/container.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}} ...attributes>\\n {{yield}}\\n</div>\")","/**\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 {\n HdsCardBackgroundValues,\n HdsCardLevelValues,\n HdsCardOverflowValues,\n} from './types.ts';\nimport type {\n HdsCardBackground,\n HdsCardLevel,\n HdsCardOverflow,\n} from './types.ts';\n\nexport const DEFAULT_LEVEL = HdsCardLevelValues.Base;\nexport const DEFAULT_BACKGROUND = HdsCardBackgroundValues.NeutralPrimary;\nexport const DEFAULT_OVERFLOW = HdsCardOverflowValues.Visible;\nexport const AVAILABLE_LEVELS: string[] = Object.values(HdsCardLevelValues);\nexport const AVAILABLE_BACKGROUNDS: string[] = Object.values(\n HdsCardBackgroundValues\n);\nexport const AVAILABLE_OVERFLOWS: string[] = Object.values(\n HdsCardOverflowValues\n);\n\nexport interface HdsCardContainerSignature {\n Args: {\n level?: HdsCardLevel;\n levelActive?: HdsCardLevel;\n levelHover?: HdsCardLevel;\n background?: HdsCardBackground;\n hasBorder?: boolean;\n overflow?: HdsCardOverflow;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsCardContainerComponent extends Component<HdsCardContainerSignature> {\n /**\n * Sets the \"elevation\" level for the component\n * Accepted values: base, mid, high\n *\n * @param level\n * @type {HdsCardLevel}\n * @default 'base'\n */\n get level(): HdsCardLevel {\n const { level = DEFAULT_LEVEL } = this.args;\n\n assert(\n `@level for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_LEVELS.join(\n ', '\n )}; received: ${level}`,\n AVAILABLE_LEVELS.includes(level)\n );\n\n return level;\n }\n\n /**\n * Sets the \"elevation\" level for the component on \":hover\" state\n * Accepted values: base, mid, high\n *\n * @param levelHover\n * @type {HdsCardLevel}\n */\n get levelHover(): HdsCardLevel | undefined {\n const { levelHover } = this.args;\n\n if (levelHover) {\n assert(\n `@levelHover for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_LEVELS.join(\n ', '\n )}; received: ${levelHover}`,\n AVAILABLE_LEVELS.includes(levelHover)\n );\n }\n\n return levelHover;\n }\n\n /**\n * Sets the \"elevation\" level for the component on \":active\" state\n * Accepted values: base, mid, high\n *\n * @param levelActive\n * @type {HdsCardLevel}\n */\n get levelActive(): HdsCardLevel | undefined {\n const { levelActive } = this.args;\n\n if (levelActive) {\n assert(\n `@levelActive for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_LEVELS.join(\n ', '\n )}; received: ${levelActive}`,\n AVAILABLE_LEVELS.includes(levelActive)\n );\n }\n\n return levelActive;\n }\n\n /**\n * Sets the background for the component\n * Accepted values: neutral-primary, neutral-secondary\n *\n * @param background\n * @type {HdsCardBackground}\n * @default 'base'\n */\n get background(): HdsCardBackground {\n const { background = DEFAULT_BACKGROUND } = this.args;\n\n assert(\n `@background for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_BACKGROUNDS.join(\n ', '\n )}; received: ${background}`,\n AVAILABLE_BACKGROUNDS.includes(background)\n );\n\n return background;\n }\n\n /**\n * Sets the level for the card\n * Accepted values: visible, hidden\n *\n * @param overflow\n * @type {HdsCardOverflow}\n * @default 'visible'\n */\n get overflow(): HdsCardOverflow {\n const { overflow = DEFAULT_OVERFLOW } = this.args;\n\n assert(\n `@overflow for \"Hds::Card::Container\" must be one of the following: ${AVAILABLE_OVERFLOWS.join(\n ', '\n )}; received: ${overflow}`,\n AVAILABLE_OVERFLOWS.includes(overflow)\n );\n\n return overflow;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method Card#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-card__container'];\n\n // add \"elevation\" classes based on the @level and @hasBorder arguments\n classes.push(\n `hds-card__container--level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.level}`\n );\n if (this.levelHover) {\n classes.push(\n `hds-card__container--hover-level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.levelHover}`\n );\n }\n if (this.levelActive) {\n classes.push(\n `hds-card__container--active-level-${\n this.args.hasBorder ? 'surface' : 'elevation'\n }-${this.levelActive}`\n );\n }\n\n // add a class based on the @background argument\n classes.push(`hds-card__container--background-${this.background}`);\n\n // add a class based on the @overflow argument\n classes.push(`hds-card__container--overflow-${this.overflow}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_LEVEL","HdsCardLevelValues","Base","DEFAULT_BACKGROUND","HdsCardBackgroundValues","NeutralPrimary","DEFAULT_OVERFLOW","HdsCardOverflowValues","Visible","AVAILABLE_LEVELS","Object","values","AVAILABLE_BACKGROUNDS","AVAILABLE_OVERFLOWS","HdsCardContainerComponent","Component","level","args","assert","join","includes","levelHover","levelActive","background","overflow","classNames","classes","push","hasBorder","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { action } from '@ember/object';
4
4
  import { tracked } from '@glimmer/tracking';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/code-block/index.hbs","../../../../src/components/hds/code-block/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<div class={{this.classNames}} ...attributes>\\n <div class=\\\"hds-code-block__header\\\">\\n {{~yield (hash Title=(component \\\"hds/code-block/title\\\"))~}}\\n {{~yield (hash Description=(component \\\"hds/code-block/description\\\"))~}}\\n </div>\\n <div class=\\\"hds-code-block__body\\\">\\n {{! content within pre tag is whitespace-sensitive; do not add new lines! }}\\n <pre\\n class=\\\"hds-code-block__code\\\"\\n {{style maxHeight=@maxHeight}}\\n data-line={{@highlightLines}}\\n id={{this.preCodeId}}\\n tabindex=\\\"0\\\"\\n ><code {{did-insert this.setPrismCode}} {{did-update this.setPrismCode this.code @language}}>\\n {{~this.prismCode~}}\\n </code></pre>\\n\\n {{#if @hasCopyButton}}\\n <Hds::CodeBlock::CopyButton @targetToCopy=\\\"#{{this.preCodeId}}\\\" aria-describedby={{this.preCodeId}} />\\n {{/if}}\\n </div>\\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 { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport { guidFor } from '@ember/object/internals';\n\nimport Prism from 'prismjs';\n\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs/plugins/line-highlight/prism-line-highlight';\n\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-go';\nimport 'prismjs/components/prism-hcl';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/components/prism-log';\nimport 'prismjs/components/prism-ruby';\nimport 'prismjs/components/prism-shell-session';\nimport 'prismjs/components/prism-yaml';\n\n// These imports are required to overcome a global variable clash in Helios website\n// where language import are overriden by the Prism instance in `CodeBlock`\n// Note that `prism-handlebars` is dependant on `prism-markup-templating`\nimport 'prismjs/components/prism-markup-templating';\nimport 'prismjs/components/prism-handlebars';\n\nexport default class HdsCodeBlockIndexComponent extends Component {\n @tracked prismCode = '';\n\n /**\n * Generates a unique ID for the code content\n *\n * @param preCodeId\n */\n preCodeId = 'pre-code-' + guidFor(this);\n\n /**\n * @param code\n * @type {string}\n * @description code text content for the CodeBlock\n */\n get code() {\n const code = this.args.value;\n\n assert(\n '@code for \"Hds::CodeBlock\" must have a valid value',\n code !== undefined\n );\n\n if (Prism?.plugins?.NormalizeWhitespace) {\n return Prism.plugins.NormalizeWhitespace.normalize(code);\n }\n\n return code;\n }\n\n /**\n * @param language\n * @type {string}\n * @default undefined\n * @description name of coding language used within CodeBlock for syntax highlighting\n */\n get language() {\n return this.args.language ?? undefined;\n }\n\n /**\n * @param hasLineNumbers\n * @type {boolean}\n * @default true\n * @description Displays line numbers if true\n */\n get hasLineNumbers() {\n return this.args.hasLineNumbers ?? true;\n }\n\n /**\n * @param isStandalone\n * @type {boolean}\n * @default true\n * @description Make CodeBlock container corners appear rounded\n */\n get isStandalone() {\n return this.args.isStandalone ?? true;\n }\n\n /**\n * @param hasLineWrapping\n * @type {boolean}\n * @default false\n * @description Make text content wrap on multiple lines\n */\n get hasLineWrapping() {\n return this.args.hasLineWrapping ?? false;\n }\n\n @action\n setPrismCode(element) {\n const code = this.code;\n const language = this.language;\n const grammar = Prism.languages[language];\n\n if (code) {\n next(() => {\n if (language && grammar) {\n this.prismCode = htmlSafe(Prism.highlight(code, grammar, language));\n } else {\n this.prismCode = htmlSafe(Prism.util.encode(code));\n }\n\n // Force prism-line-numbers plugin initialization, required for Prism.highlight usage\n // See https://github.com/PrismJS/prism/issues/1234\n Prism.hooks.run('complete', {\n code,\n element,\n });\n\n // Force prism-line-highlight plugin initialization\n // Context: https://github.com/hashicorp/design-system/pull/1749#discussion_r1374288785\n if (this.args.highlightLines) {\n // we need to delay re-evaluating the context for prism-line-highlight for as much as possible, and `afterRender` is the 'latest' we can use in the component lifecycle\n schedule('afterRender', () => {\n // we piggy-back on the plugin's `resize` event listener to trigger a new call of the `highlightLines` function: https://github.com/PrismJS/prism/blob/master/plugins/line-highlight/prism-line-highlight.js#L337\n if (window) window.dispatchEvent(new Event('resize'));\n });\n }\n });\n }\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 // Currently there is only one theme so the class name is hard-coded.\n // In the future, additional themes such as a \"light\" theme could be added.\n let classes = ['hds-code-block', 'hds-code-block--theme-dark'];\n\n if (this.language) {\n classes.push(`language-${this.language}`);\n }\n\n if (this.isStandalone === true) {\n classes.push('hds-code-block--is-standalone');\n }\n\n if (this.hasLineWrapping === true) {\n classes.push('hds-code-block--has-line-wrapping');\n }\n\n // Note: Prism.js is using the specific class name \"line-numbers\" to determine implementation of line numbers in the UI\n if (this.hasLineNumbers || this.args.highlightLines) {\n classes.push('line-numbers');\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsCodeBlockIndexComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","guidFor","code","value","assert","undefined","Prism","plugins","NormalizeWhitespace","normalize","language","hasLineNumbers","isStandalone","hasLineWrapping","setPrismCode","element","grammar","languages","next","prismCode","htmlSafe","highlight","util","encode","hooks","run","highlightLines","schedule","window","dispatchEvent","Event","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":"index.js","sources":["../../../../src/components/hds/code-block/index.hbs","../../../../src/components/hds/code-block/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<div class={{this.classNames}} ...attributes>\\n <div class=\\\"hds-code-block__header\\\">\\n {{~yield (hash Title=(component \\\"hds/code-block/title\\\"))~}}\\n {{~yield (hash Description=(component \\\"hds/code-block/description\\\"))~}}\\n </div>\\n <div class=\\\"hds-code-block__body\\\">\\n {{! content within pre tag is whitespace-sensitive; do not add new lines! }}\\n <pre\\n class=\\\"hds-code-block__code\\\"\\n {{style maxHeight=@maxHeight}}\\n data-line={{@highlightLines}}\\n id={{this.preCodeId}}\\n tabindex=\\\"0\\\"\\n ><code {{did-insert this.setPrismCode}} {{did-update this.setPrismCode this.code @language}}>\\n {{~this.prismCode~}}\\n </code></pre>\\n\\n {{#if @hasCopyButton}}\\n <Hds::CodeBlock::CopyButton @targetToCopy=\\\"#{{this.preCodeId}}\\\" aria-describedby={{this.preCodeId}} />\\n {{/if}}\\n </div>\\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 { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { htmlSafe } from '@ember/template';\nimport { guidFor } from '@ember/object/internals';\n\nimport Prism from 'prismjs';\n\nimport 'prismjs/plugins/line-numbers/prism-line-numbers';\nimport 'prismjs/plugins/line-highlight/prism-line-highlight';\n\nimport 'prismjs/components/prism-bash';\nimport 'prismjs/components/prism-go';\nimport 'prismjs/components/prism-hcl';\nimport 'prismjs/components/prism-json';\nimport 'prismjs/components/prism-log';\nimport 'prismjs/components/prism-ruby';\nimport 'prismjs/components/prism-shell-session';\nimport 'prismjs/components/prism-yaml';\n\n// These imports are required to overcome a global variable clash in Helios website\n// where language import are overriden by the Prism instance in `CodeBlock`\n// Note that `prism-handlebars` is dependant on `prism-markup-templating`\nimport 'prismjs/components/prism-markup-templating';\nimport 'prismjs/components/prism-handlebars';\n\nexport default class HdsCodeBlockIndexComponent extends Component {\n @tracked prismCode = '';\n\n /**\n * Generates a unique ID for the code content\n *\n * @param preCodeId\n */\n preCodeId = 'pre-code-' + guidFor(this);\n\n /**\n * @param code\n * @type {string}\n * @description code text content for the CodeBlock\n */\n get code() {\n const code = this.args.value;\n\n assert(\n '@code for \"Hds::CodeBlock\" must have a valid value',\n code !== undefined\n );\n\n if (Prism?.plugins?.NormalizeWhitespace) {\n return Prism.plugins.NormalizeWhitespace.normalize(code);\n }\n\n return code;\n }\n\n /**\n * @param language\n * @type {string}\n * @default undefined\n * @description name of coding language used within CodeBlock for syntax highlighting\n */\n get language() {\n return this.args.language ?? undefined;\n }\n\n /**\n * @param hasLineNumbers\n * @type {boolean}\n * @default true\n * @description Displays line numbers if true\n */\n get hasLineNumbers() {\n return this.args.hasLineNumbers ?? true;\n }\n\n /**\n * @param isStandalone\n * @type {boolean}\n * @default true\n * @description Make CodeBlock container corners appear rounded\n */\n get isStandalone() {\n return this.args.isStandalone ?? true;\n }\n\n /**\n * @param hasLineWrapping\n * @type {boolean}\n * @default false\n * @description Make text content wrap on multiple lines\n */\n get hasLineWrapping() {\n return this.args.hasLineWrapping ?? false;\n }\n\n @action\n setPrismCode(element) {\n const code = this.code;\n const language = this.language;\n const grammar = Prism.languages[language];\n\n if (code) {\n next(() => {\n if (language && grammar) {\n this.prismCode = htmlSafe(Prism.highlight(code, grammar, language));\n } else {\n this.prismCode = htmlSafe(Prism.util.encode(code));\n }\n\n // Force prism-line-numbers plugin initialization, required for Prism.highlight usage\n // See https://github.com/PrismJS/prism/issues/1234\n Prism.hooks.run('complete', {\n code,\n element,\n });\n\n // Force prism-line-highlight plugin initialization\n // Context: https://github.com/hashicorp/design-system/pull/1749#discussion_r1374288785\n if (this.args.highlightLines) {\n // we need to delay re-evaluating the context for prism-line-highlight for as much as possible, and `afterRender` is the 'latest' we can use in the component lifecycle\n schedule('afterRender', () => {\n // we piggy-back on the plugin's `resize` event listener to trigger a new call of the `highlightLines` function: https://github.com/PrismJS/prism/blob/master/plugins/line-highlight/prism-line-highlight.js#L337\n if (window) window.dispatchEvent(new Event('resize'));\n });\n }\n });\n }\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 // Currently there is only one theme so the class name is hard-coded.\n // In the future, additional themes such as a \"light\" theme could be added.\n let classes = ['hds-code-block', 'hds-code-block--theme-dark'];\n\n if (this.language) {\n classes.push(`language-${this.language}`);\n }\n\n if (this.isStandalone === true) {\n classes.push('hds-code-block--is-standalone');\n }\n\n if (this.hasLineWrapping === true) {\n classes.push('hds-code-block--has-line-wrapping');\n }\n\n // Note: Prism.js is using the specific class name \"line-numbers\" to determine implementation of line numbers in the UI\n if (this.hasLineNumbers || this.args.highlightLines) {\n classes.push('line-numbers');\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsCodeBlockIndexComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","guidFor","code","value","assert","undefined","Prism","plugins","NormalizeWhitespace","normalize","language","hasLineNumbers","isStandalone","hasLineWrapping","setPrismCode","element","grammar","languages","next","prismCode","htmlSafe","highlight","util","encode","hooks","run","highlightLines","schedule","window","dispatchEvent","Event","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { assert } from '@ember/debug';
4
4
  import { tracked } from '@glimmer/tracking';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/button/index.hbs","../../../../../src/components/hds/copy/button/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::Button\\n class={{this.classNames}}\\n @size={{this.size}}\\n @isFullWidth={{@isFullWidth}}\\n @text={{@text}}\\n @icon={{this.icon}}\\n @isIconOnly={{@isIconOnly}}\\n @color=\\\"secondary\\\"\\n @iconPosition=\\\"trailing\\\"\\n {{hds-clipboard text=@textToCopy target=@targetToCopy onSuccess=this.onSuccess onError=this.onError}}\\n ...attributes\\n/>\")","/**\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 { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { HdsCopyButtonSizeValues } from './types.ts';\nimport type { HdsCopyButtonSizes } from './types.ts';\nimport type { HdsButtonSignature } from '../../button/';\nimport type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts';\n\nexport const DEFAULT_SIZE = HdsCopyButtonSizeValues.Medium;\nexport const SIZES: string[] = Object.values(HdsCopyButtonSizeValues);\nexport const DEFAULT_ICON = 'clipboard-copy';\nexport const SUCCESS_ICON = 'clipboard-checked';\nexport const ERROR_ICON = 'clipboard-x';\nexport const DEFAULT_STATUS = 'idle';\n\nexport interface HdsCopyButtonSignature {\n Args: HdsButtonSignature['Args'] & {\n size?: HdsCopyButtonSizes;\n textToCopy?: HdsClipboardModifierSignature['Args']['Named']['text'];\n targetToCopy?: HdsClipboardModifierSignature['Args']['Named']['target'];\n onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess'];\n onError?: HdsClipboardModifierSignature['Args']['Named']['onError'];\n };\n Element: HdsButtonSignature['Element'];\n}\n\nexport default class HdsCopyButtonComponent extends Component<HdsCopyButtonSignature> {\n @tracked status = DEFAULT_STATUS;\n @tracked timer: ReturnType<typeof setTimeout> | undefined;\n\n /**\n * @param icon\n * @type {string}\n * @description The icon to be displayed for each status; automatically calculated based on the tracked property `status`.\n */\n get icon() {\n let icon = DEFAULT_ICON;\n if (this.status === 'success') {\n icon = SUCCESS_ICON;\n } else if (this.status === 'error') {\n icon = ERROR_ICON;\n }\n return icon;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the copy/button; acceptable values are `small` and `medium`\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Copy::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method CopyButton#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-copy-button'];\n\n // add a class based on the @size argument\n classes.push(`hds-button--size-${this.size}`);\n\n classes.push(`hds-copy-button--status-${this.status}`);\n\n return classes.join(' ');\n }\n\n @action\n onSuccess(args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']) {\n this.status = 'success';\n this.resetStatusDelayed();\n\n const { onSuccess } = this.args;\n\n if (typeof onSuccess === 'function') {\n onSuccess(args);\n }\n }\n\n @action\n onError(args: HdsClipboardModifierSignature['Args']['Named']['onError']) {\n this.status = 'error';\n this.resetStatusDelayed();\n\n const { onError } = this.args;\n\n if (typeof onError === 'function') {\n onError(args);\n }\n }\n\n resetStatusDelayed() {\n clearTimeout(this.timer);\n // make it fade back to the default state\n this.timer = setTimeout(() => {\n this.status = DEFAULT_STATUS;\n }, 1500);\n }\n}\n"],"names":["DEFAULT_SIZE","HdsCopyButtonSizeValues","Medium","SIZES","Object","values","DEFAULT_ICON","SUCCESS_ICON","ERROR_ICON","DEFAULT_STATUS","HdsCopyButtonComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","icon","status","size","assert","join","includes","classNames","classes","push","onSuccess","resetStatusDelayed","onError","clearTimeout","timer","setTimeout","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/button/index.hbs","../../../../../src/components/hds/copy/button/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::Button\\n class={{this.classNames}}\\n @size={{this.size}}\\n @isFullWidth={{@isFullWidth}}\\n @text={{@text}}\\n @icon={{this.icon}}\\n @isIconOnly={{@isIconOnly}}\\n @color=\\\"secondary\\\"\\n @iconPosition=\\\"trailing\\\"\\n {{hds-clipboard text=@textToCopy target=@targetToCopy onSuccess=this.onSuccess onError=this.onError}}\\n ...attributes\\n/>\")","/**\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 { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { HdsCopyButtonSizeValues } from './types.ts';\nimport type { HdsCopyButtonSizes } from './types.ts';\nimport type { HdsButtonSignature } from '../../button/';\nimport type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts';\nimport type { FlightIconSignature } from '@hashicorp/ember-flight-icons/components/flight-icon';\n\nexport const DEFAULT_SIZE = HdsCopyButtonSizeValues.Medium;\nexport const SIZES: string[] = Object.values(HdsCopyButtonSizeValues);\nexport const DEFAULT_ICON = 'clipboard-copy';\nexport const SUCCESS_ICON = 'clipboard-checked';\nexport const ERROR_ICON = 'clipboard-x';\nexport const DEFAULT_STATUS = 'idle';\n\nexport interface HdsCopyButtonSignature {\n Args: HdsButtonSignature['Args'] & {\n size?: HdsCopyButtonSizes;\n textToCopy?: HdsClipboardModifierSignature['Args']['Named']['text'];\n targetToCopy?: HdsClipboardModifierSignature['Args']['Named']['target'];\n onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess'];\n onError?: HdsClipboardModifierSignature['Args']['Named']['onError'];\n };\n Element: HdsButtonSignature['Element'];\n}\n\nexport default class HdsCopyButtonComponent extends Component<HdsCopyButtonSignature> {\n @tracked status = DEFAULT_STATUS;\n @tracked timer: ReturnType<typeof setTimeout> | undefined;\n\n /**\n * @param icon\n * @type {string}\n * @description The icon to be displayed for each status; automatically calculated based on the tracked property `status`.\n */\n get icon() {\n let icon: FlightIconSignature['Args']['name'] = DEFAULT_ICON;\n if (this.status === 'success') {\n icon = SUCCESS_ICON;\n } else if (this.status === 'error') {\n icon = ERROR_ICON;\n }\n return icon;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the copy/button; acceptable values are `small` and `medium`\n */\n get size() {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Copy::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method CopyButton#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-copy-button'];\n\n // add a class based on the @size argument\n classes.push(`hds-button--size-${this.size}`);\n\n classes.push(`hds-copy-button--status-${this.status}`);\n\n return classes.join(' ');\n }\n\n @action\n onSuccess(args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']) {\n this.status = 'success';\n this.resetStatusDelayed();\n\n const { onSuccess } = this.args;\n\n if (typeof onSuccess === 'function') {\n onSuccess(args);\n }\n }\n\n @action\n onError(args: HdsClipboardModifierSignature['Args']['Named']['onError']) {\n this.status = 'error';\n this.resetStatusDelayed();\n\n const { onError } = this.args;\n\n if (typeof onError === 'function') {\n onError(args);\n }\n }\n\n resetStatusDelayed() {\n clearTimeout(this.timer);\n // make it fade back to the default state\n this.timer = setTimeout(() => {\n this.status = DEFAULT_STATUS;\n }, 1500);\n }\n}\n"],"names":["DEFAULT_SIZE","HdsCopyButtonSizeValues","Medium","SIZES","Object","values","DEFAULT_ICON","SUCCESS_ICON","ERROR_ICON","DEFAULT_STATUS","HdsCopyButtonComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","icon","status","size","assert","join","includes","classNames","classes","push","onSuccess","resetStatusDelayed","onError","clearTimeout","timer","setTimeout","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { assert } from '@ember/debug';
4
4
  import { tracked } from '@glimmer/tracking';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/snippet/index.hbs","../../../../../src/components/hds/copy/snippet/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<button\\n type=\\\"button\\\"\\n class={{this.classNames}}\\n {{hds-clipboard text=@textToCopy onSuccess=this.onSuccess onError=this.onError}}\\n aria-label={{concat \\\"copy \\\" @textToCopy}}\\n ...attributes\\n>\\n <Hds::Text::Code class=\\\"hds-copy-snippet__text\\\" @tag=\\\"span\\\" @size=\\\"100\\\">\\n {{this.textToShow}}\\n </Hds::Text::Code>\\n <FlightIcon @name={{this.icon}} class=\\\"hds-copy-snippet__icon\\\" />\\n</button>\")","/**\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 { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { HdsCopySnippetColorValues } from './types.ts';\nimport type { HdsCopySnippetColors } from './types.ts';\nimport type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts';\n\nexport const DEFAULT_COLOR = HdsCopySnippetColorValues.Primary;\nexport const COLORS: string[] = Object.values(HdsCopySnippetColorValues);\n\nexport const DEFAULT_ICON = 'clipboard-copy';\nexport const SUCCESS_ICON = 'clipboard-checked';\nexport const ERROR_ICON = 'clipboard-x';\nexport const DEFAULT_STATUS = 'idle';\n\ninterface HdsCopySnippetSignature {\n Args: {\n color?: HdsCopySnippetColors;\n isFullWidth?: boolean;\n textToCopy: HdsClipboardModifierSignature['Args']['Named']['text'];\n isTruncated?: boolean;\n onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess'];\n onError?: HdsClipboardModifierSignature['Args']['Named']['onError'];\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsCopySnippetComponent extends Component<HdsCopySnippetSignature> {\n @tracked status = DEFAULT_STATUS;\n @tracked timer: ReturnType<typeof setTimeout> | undefined;\n\n /**\n * @param textToCopy\n * @type {string | number | bigint | undefined} ???\n */\n get textToShow() {\n const { textToCopy = '' } = this.args;\n\n if (typeof textToCopy === 'string') {\n return textToCopy;\n } else {\n return textToCopy.toString();\n }\n }\n\n /**\n * @param icon\n * @type {string}\n * @default DEFAULT_ICON\n * @description Determines the icon to be used, based on the success state. Note that this is auto-tracked because it depends on a tracked property (status).\n */\n get icon() {\n let icon = DEFAULT_ICON;\n if (this.status === 'success') {\n icon = SUCCESS_ICON;\n } else if (this.status === 'error') {\n icon = ERROR_ICON;\n }\n return icon;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of button to be used; acceptable values are `primary` and `secondary`\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Copy::Snippet\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param isFullWidth\n * @type {boolean}\n * @default false\n * @description Indicates that the component should take up the full width of the parent container.\n */\n get isFullWidth() {\n return this.args.isFullWidth ?? false;\n }\n\n /**\n * @param isTruncated\n * @type {boolean}\n * @default false\n * @description Indicates that the component should be truncated instead of wrapping text and using multiple lines.\n */\n get isTruncated() {\n return this.args.isTruncated ?? false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method CopySnippet#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-copy-snippet'];\n\n // add a class based on the @color argument\n classes.push(`hds-copy-snippet--color-${this.color}`);\n\n // add a class based on the tracked status (idle/success/error)\n classes.push(`hds-copy-snippet--status-${this.status}`);\n\n // add a class based on the @isTruncated argument\n if (this.isTruncated) {\n classes.push('hds-copy-snippet--is-truncated');\n }\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-copy-snippet--width-full');\n }\n\n return classes.join(' ');\n }\n\n @action\n onSuccess(args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']) {\n this.status = 'success';\n this.resetStatusDelayed();\n\n const { onSuccess } = this.args;\n\n if (typeof onSuccess === 'function') {\n onSuccess(args);\n }\n }\n\n @action\n onError(args: HdsClipboardModifierSignature['Args']['Named']['onError']) {\n this.status = 'error';\n this.resetStatusDelayed();\n\n const { onError } = this.args;\n\n if (typeof onError === 'function') {\n onError(args);\n }\n }\n\n resetStatusDelayed() {\n clearTimeout(this.timer);\n // make it fade back to the default state\n this.timer = setTimeout(() => {\n this.status = DEFAULT_STATUS;\n }, 1500);\n }\n}\n"],"names":["DEFAULT_COLOR","HdsCopySnippetColorValues","Primary","COLORS","Object","values","DEFAULT_ICON","SUCCESS_ICON","ERROR_ICON","DEFAULT_STATUS","HdsCopySnippetComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","textToShow","textToCopy","toString","icon","status","color","assert","join","includes","isFullWidth","isTruncated","classNames","classes","push","onSuccess","resetStatusDelayed","onError","clearTimeout","timer","setTimeout","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/copy/snippet/index.hbs","../../../../../src/components/hds/copy/snippet/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<button\\n type=\\\"button\\\"\\n class={{this.classNames}}\\n {{hds-clipboard text=@textToCopy onSuccess=this.onSuccess onError=this.onError}}\\n aria-label={{concat \\\"copy \\\" @textToCopy}}\\n ...attributes\\n>\\n <Hds::Text::Code class=\\\"hds-copy-snippet__text\\\" @tag=\\\"span\\\" @size=\\\"100\\\">\\n {{this.textToShow}}\\n </Hds::Text::Code>\\n <FlightIcon @name={{this.icon}} class=\\\"hds-copy-snippet__icon\\\" />\\n</button>\")","/**\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 { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { HdsCopySnippetColorValues } from './types.ts';\nimport type { HdsCopySnippetColors } from './types.ts';\nimport type { HdsClipboardModifierSignature } from '../../../../modifiers/hds-clipboard.ts';\nimport type { FlightIconSignature } from '@hashicorp/ember-flight-icons/components/flight-icon';\n\nexport const DEFAULT_COLOR = HdsCopySnippetColorValues.Primary;\nexport const COLORS: string[] = Object.values(HdsCopySnippetColorValues);\n\nexport const DEFAULT_ICON = 'clipboard-copy';\nexport const SUCCESS_ICON = 'clipboard-checked';\nexport const ERROR_ICON = 'clipboard-x';\nexport const DEFAULT_STATUS = 'idle';\n\ninterface HdsCopySnippetSignature {\n Args: {\n color?: HdsCopySnippetColors;\n isFullWidth?: boolean;\n textToCopy: HdsClipboardModifierSignature['Args']['Named']['text'];\n isTruncated?: boolean;\n onSuccess?: HdsClipboardModifierSignature['Args']['Named']['onSuccess'];\n onError?: HdsClipboardModifierSignature['Args']['Named']['onError'];\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsCopySnippetComponent extends Component<HdsCopySnippetSignature> {\n @tracked status = DEFAULT_STATUS;\n @tracked timer: ReturnType<typeof setTimeout> | undefined;\n\n /**\n * @param textToCopy\n * @type {string | number | bigint | undefined} ???\n */\n get textToShow() {\n const { textToCopy = '' } = this.args;\n\n if (typeof textToCopy === 'string') {\n return textToCopy;\n } else {\n return textToCopy.toString();\n }\n }\n\n /**\n * @param icon\n * @type {string}\n * @default DEFAULT_ICON\n * @description Determines the icon to be used, based on the success state. Note that this is auto-tracked because it depends on a tracked property (status).\n */\n get icon() {\n let icon: FlightIconSignature['Args']['name'] = DEFAULT_ICON;\n if (this.status === 'success') {\n icon = SUCCESS_ICON;\n } else if (this.status === 'error') {\n icon = ERROR_ICON;\n }\n return icon;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of button to be used; acceptable values are `primary` and `secondary`\n */\n get color() {\n const { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Copy::Snippet\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param isFullWidth\n * @type {boolean}\n * @default false\n * @description Indicates that the component should take up the full width of the parent container.\n */\n get isFullWidth() {\n return this.args.isFullWidth ?? false;\n }\n\n /**\n * @param isTruncated\n * @type {boolean}\n * @default false\n * @description Indicates that the component should be truncated instead of wrapping text and using multiple lines.\n */\n get isTruncated() {\n return this.args.isTruncated ?? false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method CopySnippet#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n const classes = ['hds-copy-snippet'];\n\n // add a class based on the @color argument\n classes.push(`hds-copy-snippet--color-${this.color}`);\n\n // add a class based on the tracked status (idle/success/error)\n classes.push(`hds-copy-snippet--status-${this.status}`);\n\n // add a class based on the @isTruncated argument\n if (this.isTruncated) {\n classes.push('hds-copy-snippet--is-truncated');\n }\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-copy-snippet--width-full');\n }\n\n return classes.join(' ');\n }\n\n @action\n onSuccess(args: HdsClipboardModifierSignature['Args']['Named']['onSuccess']) {\n this.status = 'success';\n this.resetStatusDelayed();\n\n const { onSuccess } = this.args;\n\n if (typeof onSuccess === 'function') {\n onSuccess(args);\n }\n }\n\n @action\n onError(args: HdsClipboardModifierSignature['Args']['Named']['onError']) {\n this.status = 'error';\n this.resetStatusDelayed();\n\n const { onError } = this.args;\n\n if (typeof onError === 'function') {\n onError(args);\n }\n }\n\n resetStatusDelayed() {\n clearTimeout(this.timer);\n // make it fade back to the default state\n this.timer = setTimeout(() => {\n this.status = DEFAULT_STATUS;\n }, 1500);\n }\n}\n"],"names":["DEFAULT_COLOR","HdsCopySnippetColorValues","Primary","COLORS","Object","values","DEFAULT_ICON","SUCCESS_ICON","ERROR_ICON","DEFAULT_STATUS","HdsCopySnippetComponent","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","textToShow","textToCopy","toString","icon","status","color","assert","join","includes","isFullWidth","isTruncated","classNames","classes","push","onSuccess","resetStatusDelayed","onError","clearTimeout","timer","setTimeout","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { action } from '@ember/object';
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor } from '../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { _ as _applyDecoratedDescriptor } from '../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { action } from '@ember/object';
4
4
  import { assert } from '@ember/debug';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/dropdown/index.hbs","../../../../src/components/hds/dropdown/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::MenuPrimitive class={{this.classNames}} @onClose={{@onClose}} ...attributes>\\n <:toggle as |t|>\\n {{yield\\n (hash\\n ToggleButton=(component \\\"hds/dropdown/toggle/button\\\" isOpen=t.isOpen onClick=t.onClickToggle)\\n ToggleIcon=(component \\\"hds/dropdown/toggle/icon\\\" isOpen=t.isOpen onClick=t.onClickToggle)\\n )\\n }}\\n </:toggle>\\n <:content as |c|>\\n <div class={{this.classNamesContent}} {{style width=@width max-height=@height}}>\\n {{yield (hash Header=(component \\\"hds/dropdown/header\\\"))}}\\n <ul class=\\\"hds-dropdown__list\\\" {{did-insert this.didInsertList}}>\\n {{yield\\n (hash\\n close=c.close\\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=c.close Footer=(component \\\"hds/dropdown/footer\\\"))}}\\n </div>\\n </:content>\\n</Hds::MenuPrimitive>\")","/**\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\nexport const DEFAULT_POSITION = 'bottom-right';\nexport const POSITIONS = [\n 'bottom-left',\n 'bottom-right',\n 'top-left',\n 'top-right',\n];\n\nexport default class HdsDropdownIndexComponent extends Component {\n /**\n * @param listPosition\n * @type {string}\n * @default bottom-right\n * @description Determines the position of the \"list\"\n */\n get listPosition() {\n let { 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 /**\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() {\n let 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() {\n let classes = ['hds-dropdown__content'];\n\n // add a class based on the @listPosition argument\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) {\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 element.setAttribute('role', 'listbox');\n element.setAttribute('aria-labelledby', toggleButtonId);\n }\n }\n}\n"],"names":["DEFAULT_POSITION","POSITIONS","HdsDropdownIndexComponent","_class","Component","listPosition","args","assert","join","includes","classNames","classes","isInline","push","classNamesContent","width","didInsertList","element","checkmarkItems","querySelectorAll","length","toggleButtonId","closest","querySelector","getAttribute","setAttribute","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,8jDAA8jD;;;ACQzlD,MAAMA,gBAAgB,GAAG,eAAc;AACvC,MAAMC,SAAS,GAAG,CACvB,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACZ;AAEoBC,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAC;AAC/D;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,YAAYA,GAAG;IACjB,IAAI;AAAEA,MAAAA,YAAY,GAAGL,gBAAAA;KAAkB,GAAG,IAAI,CAACM,IAAI,CAAA;AAEnDC,IAAAA,MAAM,CACH,CAAyEN,uEAAAA,EAAAA,SAAS,CAACO,IAAI,CACtF,IACF,CAAE,CAAA,YAAA,EAAcH,YAAa,CAAA,CAAC,EAC9BJ,SAAS,CAACQ,QAAQ,CAACJ,YAAY,CACjC,CAAC,CAAA;AAED,IAAA,OAAOA,YAAY,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIK,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;;AAE9B;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACM,QAAQ,EAAE;AACtBD,MAAAA,OAAO,CAACE,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACzC,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIM,iBAAiBA,GAAG;AACtB,IAAA,IAAIH,OAAO,GAAG,CAAC,uBAAuB,CAAC,CAAA;;AAEvC;IACAA,OAAO,CAACE,IAAI,CAAE,CAAA,gCAAA,EAAkC,IAAI,CAACR,YAAa,EAAC,CAAC,CAAA;;AAEpE;AACA,IAAA,IAAI,IAAI,CAACC,IAAI,CAACS,KAAK,EAAE;AACnBJ,MAAAA,OAAO,CAACE,IAAI,CAAC,oCAAoC,CAAC,CAAA;AACpD,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;EAGAQ,aAAaA,CAACC,OAAO,EAAE;AACrB,IAAA,MAAMC,cAAc,GAAGD,OAAO,CAACE,gBAAgB,CAAE,iBAAgB,CAAC,CAAA;IAClE,IAAID,cAAc,CAACE,MAAM,EAAE;AACzB,MAAA,MAAMC,cAAc,GAAGJ,OAAO,CAC3BK,OAAO,CAAC,eAAe,CAAC,EACvBC,aAAa,CAAC,6BAA6B,CAAC,EAC5CC,YAAY,CAAC,IAAI,CAAC,CAAA;AACtBP,MAAAA,OAAO,CAACQ,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AACvCR,MAAAA,OAAO,CAACQ,YAAY,CAAC,iBAAiB,EAAEJ,cAAc,CAAC,CAAA;AACzD,KAAA;AACF,GAAA;AACF,CAAC,GAAAK,yBAAA,CAAAvB,MAAA,CAAAwB,SAAA,EAAA,eAAA,EAAA,CAZEC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAA3B,MAAA,CAAAwB,SAAA,oBAAAxB,MAAA,CAAAwB,SAAA,CAAA,GAAAxB,MAAA,EAAA;AAvDqC4B,oBAAA,CAAAC,QAAA,EAAzB9B,yBAAyB,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/dropdown/index.hbs","../../../../src/components/hds/dropdown/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::MenuPrimitive class={{this.classNames}} @onClose={{@onClose}} ...attributes>\\n <:toggle as |t|>\\n {{yield\\n (hash\\n ToggleButton=(component \\\"hds/dropdown/toggle/button\\\" isOpen=t.isOpen onClick=t.onClickToggle)\\n ToggleIcon=(component \\\"hds/dropdown/toggle/icon\\\" isOpen=t.isOpen onClick=t.onClickToggle)\\n )\\n }}\\n </:toggle>\\n <:content as |c|>\\n <div class={{this.classNamesContent}} {{style width=@width max-height=@height}}>\\n {{yield (hash Header=(component \\\"hds/dropdown/header\\\"))}}\\n <ul class=\\\"hds-dropdown__list\\\" {{did-insert this.didInsertList}}>\\n {{yield\\n (hash\\n close=c.close\\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=c.close Footer=(component \\\"hds/dropdown/footer\\\"))}}\\n </div>\\n </:content>\\n</Hds::MenuPrimitive>\")","/**\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\nexport const DEFAULT_POSITION = 'bottom-right';\nexport const POSITIONS = [\n 'bottom-left',\n 'bottom-right',\n 'top-left',\n 'top-right',\n];\n\nexport default class HdsDropdownIndexComponent extends Component {\n /**\n * @param listPosition\n * @type {string}\n * @default bottom-right\n * @description Determines the position of the \"list\"\n */\n get listPosition() {\n let { 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 /**\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() {\n let 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() {\n let classes = ['hds-dropdown__content'];\n\n // add a class based on the @listPosition argument\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) {\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 element.setAttribute('role', 'listbox');\n element.setAttribute('aria-labelledby', toggleButtonId);\n }\n }\n}\n"],"names":["DEFAULT_POSITION","POSITIONS","HdsDropdownIndexComponent","_class","Component","listPosition","args","assert","join","includes","classNames","classes","isInline","push","classNamesContent","width","didInsertList","element","checkmarkItems","querySelectorAll","length","toggleButtonId","closest","querySelector","getAttribute","setAttribute","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,8jDAA8jD;;;ACQzlD,MAAMA,gBAAgB,GAAG,eAAc;AACvC,MAAMC,SAAS,GAAG,CACvB,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACZ;AAEoBC,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAC;AAC/D;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,YAAYA,GAAG;IACjB,IAAI;AAAEA,MAAAA,YAAY,GAAGL,gBAAAA;KAAkB,GAAG,IAAI,CAACM,IAAI,CAAA;AAEnDC,IAAAA,MAAM,CACJ,CAA0EN,uEAAAA,EAAAA,SAAS,CAACO,IAAI,CACtF,IACF,CAAC,CAAA,YAAA,EAAeH,YAAY,CAAA,CAAE,EAC9BJ,SAAS,CAACQ,QAAQ,CAACJ,YAAY,CACjC,CAAC,CAAA;AAED,IAAA,OAAOA,YAAY,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIK,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;;AAE9B;AACA,IAAA,IAAI,IAAI,CAACL,IAAI,CAACM,QAAQ,EAAE;AACtBD,MAAAA,OAAO,CAACE,IAAI,CAAC,yBAAyB,CAAC,CAAA;AACzC,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIM,iBAAiBA,GAAG;AACtB,IAAA,IAAIH,OAAO,GAAG,CAAC,uBAAuB,CAAC,CAAA;;AAEvC;IACAA,OAAO,CAACE,IAAI,CAAC,CAAA,gCAAA,EAAmC,IAAI,CAACR,YAAY,EAAE,CAAC,CAAA;;AAEpE;AACA,IAAA,IAAI,IAAI,CAACC,IAAI,CAACS,KAAK,EAAE;AACnBJ,MAAAA,OAAO,CAACE,IAAI,CAAC,oCAAoC,CAAC,CAAA;AACpD,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;EAGAQ,aAAaA,CAACC,OAAO,EAAE;AACrB,IAAA,MAAMC,cAAc,GAAGD,OAAO,CAACE,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;IAClE,IAAID,cAAc,CAACE,MAAM,EAAE;AACzB,MAAA,MAAMC,cAAc,GAAGJ,OAAO,CAC3BK,OAAO,CAAC,eAAe,CAAC,EACvBC,aAAa,CAAC,6BAA6B,CAAC,EAC5CC,YAAY,CAAC,IAAI,CAAC,CAAA;AACtBP,MAAAA,OAAO,CAACQ,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AACvCR,MAAAA,OAAO,CAACQ,YAAY,CAAC,iBAAiB,EAAEJ,cAAc,CAAC,CAAA;AACzD,KAAA;AACF,GAAA;AACF,CAAC,GAAAK,yBAAA,CAAAvB,MAAA,CAAAwB,SAAA,EAAA,eAAA,EAAA,CAZEC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAA3B,MAAA,CAAAwB,SAAA,oBAAAxB,MAAA,CAAAwB,SAAA,CAAA,GAAAxB,MAAA,EAAA;AAvDqC4B,oBAAA,CAAAC,QAAA,EAAzB9B,yBAAyB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sources":["../../../../../src/components/hds/dropdown/list-item/interactive.hbs","../../../../../src/components/hds/dropdown/list-item/interactive.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<li class={{this.classNames}}>\\n {{#if @isLoading}}\\n <div class=\\\"hds-dropdown-list-item__interactive-loading-wrapper\\\" ...attributes>\\n <div class=\\\"hds-dropdown-list-item__interactive-icon hds-dropdown-list-item__interactive-icon--leading\\\">\\n <FlightIcon @name=\\\"loading\\\" @isInlineBlock={{false}} />\\n </div>\\n <Hds::Text::Body @tag=\\\"div\\\" @size=\\\"100\\\" @weight=\\\"regular\\\" class=\\\"hds-dropdown-list-item__interactive-text\\\">\\n {{this.text}}\\n </Hds::Text::Body>\\n </div>\\n {{else}}\\n <Hds::Interactive\\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 ...attributes\\n >\\n {{#if @icon}}\\n <span class=\\\"hds-dropdown-list-item__interactive-icon hds-dropdown-list-item__interactive-icon--leading\\\">\\n <FlightIcon @name={{@icon}} @isInlineBlock={{false}} />\\n </span>\\n {{/if}}\\n <Hds::Text::Body class=\\\"hds-dropdown-list-item__interactive-text\\\" @tag=\\\"span\\\" @size=\\\"200\\\" @weight=\\\"medium\\\">\\n {{this.text}}\\n </Hds::Text::Body>\\n {{#if @trailingIcon}}\\n <span class=\\\"hds-dropdown-list-item__interactive-icon hds-dropdown-list-item__interactive-icon--trailing\\\">\\n <FlightIcon @name={{@trailingIcon}} @isInlineBlock={{false}} />\\n </span>\\n {{/if}}\\n </Hds::Interactive>\\n {{/if}}\\n</li>\")","/**\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\nexport const DEFAULT_COLOR = 'action';\nexport const COLORS = ['action', 'critical'];\n\nexport default class HdsDropdownListItemInteractiveComponent extends Component {\n /**\n * @param text\n * @type {string}\n * @description The text of the item. If no text value is defined an error will be thrown\n */\n get text() {\n let { text } = this.args;\n\n assert(\n '@text for \"Hds::Dropdown::ListItem::Interactive\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of the item (when item is set to interactive)\n */\n get color() {\n let { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Dropdown::ListItem::Interactive\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\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 = [\n 'hds-dropdown-list-item',\n 'hds-dropdown-list-item--variant-interactive',\n ];\n\n // add a class based on the @color argument\n classes.push(`hds-dropdown-list-item--color-${this.color}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_COLOR","COLORS","HdsDropdownListItemInteractiveComponent","Component","text","args","assert","undefined","color","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;AACA,eAAe,kBAAkB,CAAC,4qDAA4qD;;ACD9sD;AACA;AACA;AACA;;AAKO,MAAMA,aAAa,GAAG,SAAQ;MACxBC,MAAM,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAC;AAE7B,MAAMC,uCAAuC,SAASC,SAAS,CAAC;AAC7E;AACF;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,IAAI;AAAEA,MAAAA,IAAAA;KAAM,GAAG,IAAI,CAACC,IAAI,CAAA;AAExBC,IAAAA,MAAM,CACJ,0EAA0E,EAC1EF,IAAI,KAAKG,SACX,CAAC,CAAA;AAED,IAAA,OAAOH,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,IAAII,KAAKA,GAAG;IACV,IAAI;AAAEA,MAAAA,KAAK,GAAGR,aAAAA;KAAe,GAAG,IAAI,CAACK,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACH,CAAkFL,gFAAAA,EAAAA,MAAM,CAACQ,IAAI,CAC5F,IACF,CAAE,CAAA,YAAA,EAAcD,KAAM,CAAA,CAAC,EACvBP,MAAM,CAACS,QAAQ,CAACF,KAAK,CACvB,CAAC,CAAA;AAED,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CACZ,wBAAwB,EACxB,6CAA6C,CAC9C,CAAA;;AAED;IACAA,OAAO,CAACC,IAAI,CAAE,CAAA,8BAAA,EAAgC,IAAI,CAACL,KAAM,EAAC,CAAC,CAAA;AAE3D,IAAA,OAAOI,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACK,oBAAA,CAAAC,QAAA,EApDoBb,uCAAuC,CAAA;;;;"}
1
+ {"version":3,"file":"interactive.js","sources":["../../../../../src/components/hds/dropdown/list-item/interactive.hbs","../../../../../src/components/hds/dropdown/list-item/interactive.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<li class={{this.classNames}}>\\n {{#if @isLoading}}\\n <div class=\\\"hds-dropdown-list-item__interactive-loading-wrapper\\\" ...attributes>\\n <div class=\\\"hds-dropdown-list-item__interactive-icon hds-dropdown-list-item__interactive-icon--leading\\\">\\n <FlightIcon @name=\\\"loading\\\" @isInlineBlock={{false}} />\\n </div>\\n <Hds::Text::Body @tag=\\\"div\\\" @size=\\\"100\\\" @weight=\\\"regular\\\" class=\\\"hds-dropdown-list-item__interactive-text\\\">\\n {{this.text}}\\n </Hds::Text::Body>\\n </div>\\n {{else}}\\n <Hds::Interactive\\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 ...attributes\\n >\\n {{#if @icon}}\\n <span class=\\\"hds-dropdown-list-item__interactive-icon hds-dropdown-list-item__interactive-icon--leading\\\">\\n <FlightIcon @name={{@icon}} @isInlineBlock={{false}} />\\n </span>\\n {{/if}}\\n <Hds::Text::Body class=\\\"hds-dropdown-list-item__interactive-text\\\" @tag=\\\"span\\\" @size=\\\"200\\\" @weight=\\\"medium\\\">\\n {{this.text}}\\n </Hds::Text::Body>\\n {{#if @trailingIcon}}\\n <span class=\\\"hds-dropdown-list-item__interactive-icon hds-dropdown-list-item__interactive-icon--trailing\\\">\\n <FlightIcon @name={{@trailingIcon}} @isInlineBlock={{false}} />\\n </span>\\n {{/if}}\\n </Hds::Interactive>\\n {{/if}}\\n</li>\")","/**\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\nexport const DEFAULT_COLOR = 'action';\nexport const COLORS = ['action', 'critical'];\n\nexport default class HdsDropdownListItemInteractiveComponent extends Component {\n /**\n * @param text\n * @type {string}\n * @description The text of the item. If no text value is defined an error will be thrown\n */\n get text() {\n let { text } = this.args;\n\n assert(\n '@text for \"Hds::Dropdown::ListItem::Interactive\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of the item (when item is set to interactive)\n */\n get color() {\n let { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Dropdown::ListItem::Interactive\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\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 = [\n 'hds-dropdown-list-item',\n 'hds-dropdown-list-item--variant-interactive',\n ];\n\n // add a class based on the @color argument\n classes.push(`hds-dropdown-list-item--color-${this.color}`);\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_COLOR","COLORS","HdsDropdownListItemInteractiveComponent","Component","text","args","assert","undefined","color","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;AACA,eAAe,kBAAkB,CAAC,4qDAA4qD;;ACD9sD;AACA;AACA;AACA;;AAKO,MAAMA,aAAa,GAAG,SAAQ;MACxBC,MAAM,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAC;AAE7B,MAAMC,uCAAuC,SAASC,SAAS,CAAC;AAC7E;AACF;AACA;AACA;AACA;EACE,IAAIC,IAAIA,GAAG;IACT,IAAI;AAAEA,MAAAA,IAAAA;KAAM,GAAG,IAAI,CAACC,IAAI,CAAA;AAExBC,IAAAA,MAAM,CACJ,0EAA0E,EAC1EF,IAAI,KAAKG,SACX,CAAC,CAAA;AAED,IAAA,OAAOH,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,IAAII,KAAKA,GAAG;IACV,IAAI;AAAEA,MAAAA,KAAK,GAAGR,aAAAA;KAAe,GAAG,IAAI,CAACK,IAAI,CAAA;AAEzCC,IAAAA,MAAM,CACJ,CAAmFL,gFAAAA,EAAAA,MAAM,CAACQ,IAAI,CAC5F,IACF,CAAC,CAAA,YAAA,EAAeD,KAAK,CAAA,CAAE,EACvBP,MAAM,CAACS,QAAQ,CAACF,KAAK,CACvB,CAAC,CAAA;AAED,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CACZ,wBAAwB,EACxB,6CAA6C,CAC9C,CAAA;;AAED;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,8BAAA,EAAiC,IAAI,CAACL,KAAK,EAAE,CAAC,CAAA;AAE3D,IAAA,OAAOI,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACK,oBAAA,CAAAC,QAAA,EApDoBb,uCAAuC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { a as _defineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { assert } from '@ember/debug';
4
4
  import { guidFor } from '@ember/object/internals';
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../../../../../src/components/hds/dropdown/toggle/button.hbs","../../../../../src/components/hds/dropdown/toggle/button.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<button\\n class={{this.classNames}}\\n id={{this.toggleButtonId}}\\n ...attributes\\n type=\\\"button\\\"\\n aria-expanded={{if @isOpen \\\"true\\\" \\\"false\\\"}}\\n {{on \\\"click\\\" this.onClick}}\\n>\\n {{#if @icon}}\\n <div class=\\\"hds-dropdown-toggle-button__icon\\\">\\n <FlightIcon @name={{@icon}} @stretched={{true}} />\\n </div>\\n {{/if}}\\n <div class=\\\"hds-dropdown-toggle-button__text\\\">\\n {{this.text}}\\n </div>\\n {{#if @count}}\\n <Hds::BadgeCount\\n @text={{@count}}\\n @size=\\\"small\\\"\\n @type={{this.badgeType}}\\n class=\\\"hds-dropdown-toggle-button__count\\\"\\n />\\n {{/if}}\\n {{#if @badge}}\\n <Hds::Badge\\n @text={{@badge}}\\n @icon={{@badgeIcon}}\\n @size=\\\"small\\\"\\n @type={{this.badgeType}}\\n class=\\\"hds-dropdown-toggle-button__badge\\\"\\n />\\n {{/if}}\\n <Hds::Dropdown::Toggle::Chevron />\\n</button>\")","/**\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 { guidFor } from '@ember/object/internals';\n\nexport const DEFAULT_SIZE = 'medium';\nexport const DEFAULT_COLOR = 'primary';\nexport const SIZES = ['small', 'medium'];\nexport const COLORS = ['primary', 'secondary'];\n\nconst NOOP = () => {};\n\nexport default class HdsDropdownToggleButtonComponent extends Component {\n /**\n * Generates a unique ID for the button\n *\n * @param toggleButtonId\n */\n toggleButtonId = 'toggle-button-' + guidFor(this);\n\n /**\n * @param text\n * @type {string}\n * @description The text of the button. If no text value is defined an error will be thrown.\n */\n get text() {\n let { text } = this.args;\n\n assert(\n '@text for \"Hds::Dropdown::Toggle::Button\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the button; acceptable values are `small` and `medium`\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Dropdown::Toggle::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of button to be used; acceptable values are `primary` and `secondary`\n */\n get color() {\n let { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Dropdown::Toggle::Button\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param isFullWidth\n * @type {boolean}\n * @default false\n * @description Indicates that a button should take up the full width of the parent container. The default is false.\n */\n get isFullWidth() {\n return this.args.isFullWidth ?? false;\n }\n\n /**\n * @param onClick\n * @type {function}\n * @default () => {}\n */\n get onClick() {\n let { onClick } = this.args;\n\n // notice: this is a guard used in case the toggle is used as standalone element (eg. in the showcase)\n // in reality it's always used inside the Dropdown main component as yielded component, so the onClick handler is always defined\n if (typeof onClick === 'function') {\n return onClick;\n } else {\n return NOOP;\n }\n }\n\n /**\n * @param badgeType\n * @type {string}\n * @default 'filled'\n * @description ensures that the correct Badge/BadgeCount type is used to meet contrast requirements\n */\n get badgeType() {\n return this.color !== 'primary' ? 'inverted' : 'filled';\n }\n\n /**\n * Get the class names to apply to the component.\n * @method ToggleButton#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-dropdown-toggle-button'];\n\n // add a class based on the @size argument\n classes.push(`hds-dropdown-toggle-button--size-${this.size}`);\n\n // add a class based on the @color argument\n classes.push(`hds-dropdown-toggle-button--color-${this.color}`);\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-dropdown-toggle-button--width-full');\n }\n\n // add a class based on the @isOpen argument\n if (this.args.isOpen) {\n classes.push('hds-dropdown-toggle-button--is-open');\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_SIZE","DEFAULT_COLOR","SIZES","COLORS","NOOP","HdsDropdownToggleButtonComponent","Component","constructor","args","_defineProperty","guidFor","text","assert","undefined","size","join","includes","color","isFullWidth","onClick","badgeType","classNames","classes","push","isOpen","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"button.js","sources":["../../../../../src/components/hds/dropdown/toggle/button.hbs","../../../../../src/components/hds/dropdown/toggle/button.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<button\\n class={{this.classNames}}\\n id={{this.toggleButtonId}}\\n ...attributes\\n type=\\\"button\\\"\\n aria-expanded={{if @isOpen \\\"true\\\" \\\"false\\\"}}\\n {{on \\\"click\\\" this.onClick}}\\n>\\n {{#if @icon}}\\n <div class=\\\"hds-dropdown-toggle-button__icon\\\">\\n <FlightIcon @name={{@icon}} @stretched={{true}} />\\n </div>\\n {{/if}}\\n <div class=\\\"hds-dropdown-toggle-button__text\\\">\\n {{this.text}}\\n </div>\\n {{#if @count}}\\n <Hds::BadgeCount\\n @text={{@count}}\\n @size=\\\"small\\\"\\n @type={{this.badgeType}}\\n class=\\\"hds-dropdown-toggle-button__count\\\"\\n />\\n {{/if}}\\n {{#if @badge}}\\n <Hds::Badge\\n @text={{@badge}}\\n @icon={{@badgeIcon}}\\n @size=\\\"small\\\"\\n @type={{this.badgeType}}\\n class=\\\"hds-dropdown-toggle-button__badge\\\"\\n />\\n {{/if}}\\n <Hds::Dropdown::Toggle::Chevron />\\n</button>\")","/**\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 { guidFor } from '@ember/object/internals';\n\nexport const DEFAULT_SIZE = 'medium';\nexport const DEFAULT_COLOR = 'primary';\nexport const SIZES = ['small', 'medium'];\nexport const COLORS = ['primary', 'secondary'];\n\nconst NOOP = () => {};\n\nexport default class HdsDropdownToggleButtonComponent extends Component {\n /**\n * Generates a unique ID for the button\n *\n * @param toggleButtonId\n */\n toggleButtonId = 'toggle-button-' + guidFor(this);\n\n /**\n * @param text\n * @type {string}\n * @description The text of the button. If no text value is defined an error will be thrown.\n */\n get text() {\n let { text } = this.args;\n\n assert(\n '@text for \"Hds::Dropdown::Toggle::Button\" must have a valid value',\n text !== undefined\n );\n\n return text;\n }\n\n /**\n * @param size\n * @type {string}\n * @default medium\n * @description The size of the button; acceptable values are `small` and `medium`\n */\n get size() {\n let { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Dropdown::Toggle::Button\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n /**\n * @param color\n * @type {string}\n * @default primary\n * @description Determines the color of button to be used; acceptable values are `primary` and `secondary`\n */\n get color() {\n let { color = DEFAULT_COLOR } = this.args;\n\n assert(\n `@color for \"Hds::Dropdown::Toggle::Button\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n\n return color;\n }\n\n /**\n * @param isFullWidth\n * @type {boolean}\n * @default false\n * @description Indicates that a button should take up the full width of the parent container. The default is false.\n */\n get isFullWidth() {\n return this.args.isFullWidth ?? false;\n }\n\n /**\n * @param onClick\n * @type {function}\n * @default () => {}\n */\n get onClick() {\n let { onClick } = this.args;\n\n // notice: this is a guard used in case the toggle is used as standalone element (eg. in the showcase)\n // in reality it's always used inside the Dropdown main component as yielded component, so the onClick handler is always defined\n if (typeof onClick === 'function') {\n return onClick;\n } else {\n return NOOP;\n }\n }\n\n /**\n * @param badgeType\n * @type {string}\n * @default 'filled'\n * @description ensures that the correct Badge/BadgeCount type is used to meet contrast requirements\n */\n get badgeType() {\n return this.color !== 'primary' ? 'inverted' : 'filled';\n }\n\n /**\n * Get the class names to apply to the component.\n * @method ToggleButton#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-dropdown-toggle-button'];\n\n // add a class based on the @size argument\n classes.push(`hds-dropdown-toggle-button--size-${this.size}`);\n\n // add a class based on the @color argument\n classes.push(`hds-dropdown-toggle-button--color-${this.color}`);\n\n // add a class based on the @isFullWidth argument\n if (this.isFullWidth) {\n classes.push('hds-dropdown-toggle-button--width-full');\n }\n\n // add a class based on the @isOpen argument\n if (this.args.isOpen) {\n classes.push('hds-dropdown-toggle-button--is-open');\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_SIZE","DEFAULT_COLOR","SIZES","COLORS","NOOP","HdsDropdownToggleButtonComponent","Component","constructor","args","_defineProperty","guidFor","text","assert","undefined","size","join","includes","color","isFullWidth","onClick","badgeType","classNames","classes","push","isOpen","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-NoJJJNhk.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { action } from '@ember/object';
4
4
  import { assert } from '@ember/debug';
@@ -61,10 +61,12 @@ let HdsDropdownToggleIconComponent = (_class = class HdsDropdownToggleIconCompon
61
61
  * @description ensures that the correct icon size is used
62
62
  */
63
63
  get iconSize() {
64
- if (this.args.size === 'small') {
65
- return '16';
66
- } else {
64
+ if (this.args.size === 'medium' && !this.hasChevron) {
65
+ // in this special case we use a larger SVG
67
66
  return '24';
67
+ } else {
68
+ // this is the default size (notice: for the "small" variant with chevron, we set the actual size to `12px` via CSS)
69
+ return '16';
68
70
  }
69
71
  }
70
72
 
@@ -113,6 +115,11 @@ let HdsDropdownToggleIconComponent = (_class = class HdsDropdownToggleIconCompon
113
115
  if (this.args.isOpen) {
114
116
  classes.push('hds-dropdown-toggle-icon--is-open');
115
117
  }
118
+
119
+ // add a class based on the @hasChevron argument
120
+ if (this.hasChevron) {
121
+ classes.push('hds-dropdown-toggle-icon--has-chevron');
122
+ }
116
123
  return classes.join(' ');
117
124
  }
118
125
  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "hasImage", [tracked], {