@hashicorp/design-system-components 6.2.0 → 6.2.1

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 (748) hide show
  1. package/declarations/components/hds/accordion/index.d.ts +1 -1
  2. package/declarations/components/hds/accordion/item/button.d.ts +1 -1
  3. package/declarations/components/hds/accordion/item/index.d.ts +1 -1
  4. package/declarations/components/hds/advanced-table/body.d.ts +4 -0
  5. package/declarations/components/hds/advanced-table/column-manager/index.d.ts +1 -1
  6. package/declarations/components/hds/advanced-table/column-manager/order.d.ts +4 -0
  7. package/declarations/components/hds/advanced-table/column-manager/width.d.ts +4 -0
  8. package/declarations/components/hds/advanced-table/index.d.ts +1 -1
  9. package/declarations/components/hds/advanced-table/td.d.ts +1 -1
  10. package/declarations/components/hds/advanced-table/th-button-expand.d.ts +1 -1
  11. package/declarations/components/hds/advanced-table/th-button-sort.d.ts +1 -1
  12. package/declarations/components/hds/advanced-table/th-button-tooltip.d.ts +1 -1
  13. package/declarations/components/hds/advanced-table/th-context-menu.d.ts +1 -1
  14. package/declarations/components/hds/advanced-table/th-reorder-drop-target.d.ts +1 -1
  15. package/declarations/components/hds/advanced-table/th-reorder-handle.d.ts +1 -1
  16. package/declarations/components/hds/advanced-table/th-resize-handle.d.ts +1 -1
  17. package/declarations/components/hds/advanced-table/th-selectable.d.ts +1 -1
  18. package/declarations/components/hds/advanced-table/th.d.ts +1 -1
  19. package/declarations/components/hds/advanced-table/tr.d.ts +1 -1
  20. package/declarations/components/hds/advanced-table/types.d.ts +1 -1
  21. package/declarations/components/hds/advanced-table/utils.d.ts +1 -1
  22. package/declarations/components/hds/alert/description.d.ts +1 -1
  23. package/declarations/components/hds/alert/index.d.ts +1 -1
  24. package/declarations/components/hds/alert/title.d.ts +1 -1
  25. package/declarations/components/hds/app-footer/copyright.d.ts +1 -1
  26. package/declarations/components/hds/app-footer/index.d.ts +1 -1
  27. package/declarations/components/hds/app-footer/item.d.ts +1 -1
  28. package/declarations/components/hds/app-footer/legal-links.d.ts +1 -1
  29. package/declarations/components/hds/app-footer/link.d.ts +1 -1
  30. package/declarations/components/hds/app-footer/status-link.d.ts +3 -3
  31. package/declarations/components/hds/app-footer/types.d.ts +1 -1
  32. package/declarations/components/hds/app-frame/index.d.ts +1 -1
  33. package/declarations/components/hds/app-frame/parts/footer.d.ts +1 -1
  34. package/declarations/components/hds/app-frame/parts/header.d.ts +1 -1
  35. package/declarations/components/hds/app-frame/parts/main.d.ts +1 -1
  36. package/declarations/components/hds/app-frame/parts/modals.d.ts +1 -1
  37. package/declarations/components/hds/app-frame/parts/sidebar.d.ts +1 -1
  38. package/declarations/components/hds/app-header/home-link.d.ts +1 -1
  39. package/declarations/components/hds/app-header/index.d.ts +1 -1
  40. package/declarations/components/hds/app-header/menu-button.d.ts +1 -1
  41. package/declarations/components/hds/app-side-nav/index.d.ts +1 -1
  42. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +1 -1
  43. package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
  44. package/declarations/components/hds/app-side-nav/list/item.d.ts +1 -1
  45. package/declarations/components/hds/app-side-nav/list/link.d.ts +1 -1
  46. package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
  47. package/declarations/components/hds/app-side-nav/portal/index.d.ts +1 -1
  48. package/declarations/components/hds/app-side-nav/portal/target.d.ts +1 -1
  49. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +1 -1
  50. package/declarations/components/hds/application-state/body.d.ts +1 -1
  51. package/declarations/components/hds/application-state/footer.d.ts +1 -1
  52. package/declarations/components/hds/application-state/header.d.ts +1 -1
  53. package/declarations/components/hds/application-state/index.d.ts +1 -1
  54. package/declarations/components/hds/application-state/media.d.ts +1 -1
  55. package/declarations/components/hds/badge/index.d.ts +1 -1
  56. package/declarations/components/hds/badge-count/index.d.ts +1 -1
  57. package/declarations/components/hds/breadcrumb/index.d.ts +1 -1
  58. package/declarations/components/hds/breadcrumb/item.d.ts +2 -3
  59. package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
  60. package/declarations/components/hds/button/index.d.ts +1 -1
  61. package/declarations/components/hds/button-set/index.d.ts +1 -1
  62. package/declarations/components/hds/card/container.d.ts +1 -1
  63. package/declarations/components/hds/code-block/copy-button.d.ts +1 -1
  64. package/declarations/components/hds/code-block/description.d.ts +1 -1
  65. package/declarations/components/hds/code-block/index.d.ts +1 -1
  66. package/declarations/components/hds/code-block/title.d.ts +1 -1
  67. package/declarations/components/hds/code-editor/description.d.ts +1 -1
  68. package/declarations/components/hds/code-editor/full-screen-button.d.ts +1 -1
  69. package/declarations/components/hds/code-editor/generic.d.ts +1 -1
  70. package/declarations/components/hds/code-editor/index.d.ts +1 -1
  71. package/declarations/components/hds/code-editor/title.d.ts +1 -1
  72. package/declarations/components/hds/composite/index.d.ts +4 -0
  73. package/declarations/components/hds/composite/navigation.d.ts +4 -0
  74. package/declarations/components/hds/composite/types.d.ts +4 -0
  75. package/declarations/components/hds/copy/button/index.d.ts +1 -1
  76. package/declarations/components/hds/copy/snippet/index.d.ts +5 -1
  77. package/declarations/components/hds/dialog-primitive/body.d.ts +1 -1
  78. package/declarations/components/hds/dialog-primitive/description.d.ts +1 -1
  79. package/declarations/components/hds/dialog-primitive/footer.d.ts +1 -1
  80. package/declarations/components/hds/dialog-primitive/header.d.ts +1 -1
  81. package/declarations/components/hds/dialog-primitive/overlay.d.ts +1 -1
  82. package/declarations/components/hds/dialog-primitive/wrapper.d.ts +1 -1
  83. package/declarations/components/hds/disclosure-primitive/index.d.ts +1 -1
  84. package/declarations/components/hds/dismiss-button/index.d.ts +1 -1
  85. package/declarations/components/hds/dropdown/footer.d.ts +1 -1
  86. package/declarations/components/hds/dropdown/header.d.ts +1 -1
  87. package/declarations/components/hds/dropdown/index.d.ts +1 -1
  88. package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +1 -1
  89. package/declarations/components/hds/dropdown/list-item/checkmark.d.ts +1 -1
  90. package/declarations/components/hds/dropdown/list-item/copy-item.d.ts +1 -1
  91. package/declarations/components/hds/dropdown/list-item/description.d.ts +1 -1
  92. package/declarations/components/hds/dropdown/list-item/generic.d.ts +1 -1
  93. package/declarations/components/hds/dropdown/list-item/interactive.d.ts +1 -1
  94. package/declarations/components/hds/dropdown/list-item/radio.d.ts +1 -1
  95. package/declarations/components/hds/dropdown/list-item/separator.d.ts +1 -1
  96. package/declarations/components/hds/dropdown/list-item/title.d.ts +1 -1
  97. package/declarations/components/hds/dropdown/toggle/button.d.ts +1 -1
  98. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
  99. package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
  100. package/declarations/components/hds/filter-bar/actions-dropdown.d.ts +1 -1
  101. package/declarations/components/hds/filter-bar/applied-filters.d.ts +1 -1
  102. package/declarations/components/hds/filter-bar/filter-group/checkbox.d.ts +1 -1
  103. package/declarations/components/hds/filter-bar/filter-group/clear-button.d.ts +1 -1
  104. package/declarations/components/hds/filter-bar/filter-group/date.d.ts +1 -1
  105. package/declarations/components/hds/filter-bar/filter-group/generic.d.ts +1 -1
  106. package/declarations/components/hds/filter-bar/filter-group/index.d.ts +1 -1
  107. package/declarations/components/hds/filter-bar/filter-group/numerical.d.ts +1 -1
  108. package/declarations/components/hds/filter-bar/filter-group/radio.d.ts +1 -1
  109. package/declarations/components/hds/filter-bar/filters-dropdown.d.ts +1 -1
  110. package/declarations/components/hds/filter-bar/index.d.ts +1 -1
  111. package/declarations/components/hds/filter-bar/tabs/index.d.ts +1 -1
  112. package/declarations/components/hds/filter-bar/tabs/panel.d.ts +1 -1
  113. package/declarations/components/hds/filter-bar/tabs/tab.d.ts +1 -1
  114. package/declarations/components/hds/filter-bar/types.d.ts +1 -1
  115. package/declarations/components/hds/flyout/index.d.ts +1 -1
  116. package/declarations/components/hds/form/character-count/index.d.ts +1 -1
  117. package/declarations/components/hds/form/checkbox/base.d.ts +1 -1
  118. package/declarations/components/hds/form/checkbox/field.d.ts +1 -1
  119. package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
  120. package/declarations/components/hds/form/error/index.d.ts +1 -1
  121. package/declarations/components/hds/form/error/message.d.ts +1 -1
  122. package/declarations/components/hds/form/field/index.d.ts +1 -1
  123. package/declarations/components/hds/form/fieldset/index.d.ts +1 -1
  124. package/declarations/components/hds/form/file-input/base.d.ts +1 -1
  125. package/declarations/components/hds/form/file-input/field.d.ts +1 -1
  126. package/declarations/components/hds/form/footer/index.d.ts +1 -1
  127. package/declarations/components/hds/form/header/description.d.ts +1 -1
  128. package/declarations/components/hds/form/header/index.d.ts +1 -1
  129. package/declarations/components/hds/form/header/title.d.ts +1 -1
  130. package/declarations/components/hds/form/helper-text/index.d.ts +1 -1
  131. package/declarations/components/hds/form/index.d.ts +1 -1
  132. package/declarations/components/hds/form/indicator/index.d.ts +1 -1
  133. package/declarations/components/hds/form/key-value-inputs/add-row-button.d.ts +1 -1
  134. package/declarations/components/hds/form/key-value-inputs/delete-row-button.d.ts +1 -1
  135. package/declarations/components/hds/form/key-value-inputs/field.d.ts +1 -1
  136. package/declarations/components/hds/form/key-value-inputs/generic.d.ts +1 -1
  137. package/declarations/components/hds/form/key-value-inputs/index.d.ts +1 -1
  138. package/declarations/components/hds/form/label/index.d.ts +1 -1
  139. package/declarations/components/hds/form/legend/index.d.ts +1 -1
  140. package/declarations/components/hds/form/masked-input/base.d.ts +1 -1
  141. package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
  142. package/declarations/components/hds/form/radio/base.d.ts +1 -1
  143. package/declarations/components/hds/form/radio/field.d.ts +1 -1
  144. package/declarations/components/hds/form/radio/group.d.ts +1 -1
  145. package/declarations/components/hds/form/radio-card/description.d.ts +1 -1
  146. package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
  147. package/declarations/components/hds/form/radio-card/index.d.ts +1 -1
  148. package/declarations/components/hds/form/radio-card/label.d.ts +1 -1
  149. package/declarations/components/hds/form/section/header.d.ts +1 -1
  150. package/declarations/components/hds/form/section/index.d.ts +1 -1
  151. package/declarations/components/hds/form/section/multi-field-group/index.d.ts +1 -1
  152. package/declarations/components/hds/form/section/multi-field-group/item.d.ts +1 -1
  153. package/declarations/components/hds/form/select/base.d.ts +1 -1
  154. package/declarations/components/hds/form/select/field.d.ts +1 -1
  155. package/declarations/components/hds/form/separator/index.d.ts +1 -1
  156. package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
  157. package/declarations/components/hds/form/super-select/multiple/base.d.ts +1 -1
  158. package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -1
  159. package/declarations/components/hds/form/super-select/option-group.d.ts +1 -1
  160. package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
  161. package/declarations/components/hds/form/super-select/single/base.d.ts +1 -1
  162. package/declarations/components/hds/form/super-select/single/field.d.ts +1 -1
  163. package/declarations/components/hds/form/text-input/base.d.ts +1 -1
  164. package/declarations/components/hds/form/text-input/field.d.ts +1 -1
  165. package/declarations/components/hds/form/textarea/base.d.ts +1 -1
  166. package/declarations/components/hds/form/textarea/field.d.ts +1 -1
  167. package/declarations/components/hds/form/toggle/base.d.ts +1 -1
  168. package/declarations/components/hds/form/toggle/field.d.ts +1 -1
  169. package/declarations/components/hds/form/toggle/group.d.ts +1 -1
  170. package/declarations/components/hds/form/visibility-toggle/index.d.ts +1 -1
  171. package/declarations/components/hds/icon/index.d.ts +1 -1
  172. package/declarations/components/hds/icon-tile/index.d.ts +1 -1
  173. package/declarations/components/hds/interactive/index.d.ts +1 -1
  174. package/declarations/components/hds/layout/flex/index.d.ts +1 -1
  175. package/declarations/components/hds/layout/flex/item.d.ts +1 -1
  176. package/declarations/components/hds/layout/grid/index.d.ts +1 -1
  177. package/declarations/components/hds/layout/grid/item.d.ts +1 -1
  178. package/declarations/components/hds/link/inline.d.ts +1 -1
  179. package/declarations/components/hds/link/standalone.d.ts +1 -1
  180. package/declarations/components/hds/modal/index.d.ts +1 -1
  181. package/declarations/components/hds/page-header/actions.d.ts +1 -1
  182. package/declarations/components/hds/page-header/badges.d.ts +1 -1
  183. package/declarations/components/hds/page-header/description.d.ts +1 -1
  184. package/declarations/components/hds/page-header/index.d.ts +1 -1
  185. package/declarations/components/hds/page-header/subtitle.d.ts +1 -1
  186. package/declarations/components/hds/page-header/title.d.ts +1 -1
  187. package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
  188. package/declarations/components/hds/pagination/info/index.d.ts +1 -1
  189. package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
  190. package/declarations/components/hds/pagination/nav/ellipsis.d.ts +1 -1
  191. package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
  192. package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
  193. package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
  194. package/declarations/components/hds/pagination/types.d.ts +1 -1
  195. package/declarations/components/hds/popover-primitive/index.d.ts +1 -1
  196. package/declarations/components/hds/reveal/index.d.ts +1 -1
  197. package/declarations/components/hds/reveal/toggle/button.d.ts +1 -1
  198. package/declarations/components/hds/rich-tooltip/bubble.d.ts +1 -1
  199. package/declarations/components/hds/rich-tooltip/index.d.ts +1 -1
  200. package/declarations/components/hds/rich-tooltip/toggle.d.ts +1 -1
  201. package/declarations/components/hds/segmented-group/index.d.ts +1 -1
  202. package/declarations/components/hds/separator/index.d.ts +1 -1
  203. package/declarations/components/hds/stepper/list/index.d.ts +1 -1
  204. package/declarations/components/hds/stepper/list/step.d.ts +1 -1
  205. package/declarations/components/hds/stepper/nav/index.d.ts +1 -1
  206. package/declarations/components/hds/stepper/nav/panel.d.ts +1 -1
  207. package/declarations/components/hds/stepper/nav/step.d.ts +1 -1
  208. package/declarations/components/hds/stepper/step/indicator.d.ts +1 -1
  209. package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
  210. package/declarations/components/hds/stepper/types.d.ts +1 -1
  211. package/declarations/components/hds/table/index.d.ts +1 -1
  212. package/declarations/components/hds/table/td.d.ts +1 -1
  213. package/declarations/components/hds/table/th-button-sort.d.ts +1 -1
  214. package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
  215. package/declarations/components/hds/table/th-selectable.d.ts +1 -1
  216. package/declarations/components/hds/table/th-sort.d.ts +1 -1
  217. package/declarations/components/hds/table/th.d.ts +1 -1
  218. package/declarations/components/hds/table/tr.d.ts +1 -1
  219. package/declarations/components/hds/table/types.d.ts +1 -1
  220. package/declarations/components/hds/tabs/index.d.ts +1 -1
  221. package/declarations/components/hds/tabs/panel.d.ts +1 -1
  222. package/declarations/components/hds/tabs/tab.d.ts +1 -1
  223. package/declarations/components/hds/tag/index.d.ts +1 -1
  224. package/declarations/components/hds/text/body.d.ts +1 -1
  225. package/declarations/components/hds/text/code.d.ts +1 -1
  226. package/declarations/components/hds/text/display.d.ts +1 -1
  227. package/declarations/components/hds/text/index.d.ts +1 -1
  228. package/declarations/components/hds/time/index.d.ts +1 -1
  229. package/declarations/components/hds/time/range.d.ts +1 -1
  230. package/declarations/components/hds/time/single.d.ts +1 -1
  231. package/declarations/components/hds/toast/index.d.ts +1 -1
  232. package/declarations/components/hds/tooltip-button/index.d.ts +1 -1
  233. package/declarations/components/hds/yield/index.d.ts +1 -1
  234. package/declarations/components.d.ts +1 -1
  235. package/declarations/helpers/hds-t.d.ts +1 -1
  236. package/declarations/modifiers/hds-advanced-table-cell/dom-management.d.ts +1 -1
  237. package/declarations/modifiers/hds-advanced-table-cell.d.ts +1 -1
  238. package/declarations/modifiers/hds-code-editor.d.ts +1 -1
  239. package/declarations/modifiers/hds-scroll-into-view-on-focus.d.ts +1 -1
  240. package/declarations/modifiers/hds-tooltip.d.ts +1 -1
  241. package/declarations/re-exports/codemirror.d.ts +4 -0
  242. package/declarations/services/hds-intl.d.ts +1 -1
  243. package/declarations/template-registry.d.ts +1 -1
  244. package/declarations/utils/hds-aria-described-by.d.ts +1 -1
  245. package/declarations/utils/hds-link-to-external.d.ts +4 -0
  246. package/dist/components/hds/accordion/index.js +1 -1
  247. package/dist/components/hds/accordion/index.js.map +1 -1
  248. package/dist/components/hds/accordion/item/button.js +1 -1
  249. package/dist/components/hds/accordion/item/button.js.map +1 -1
  250. package/dist/components/hds/accordion/item/index.js +1 -1
  251. package/dist/components/hds/accordion/item/index.js.map +1 -1
  252. package/dist/components/hds/advanced-table/body.js +4 -0
  253. package/dist/components/hds/advanced-table/body.js.map +1 -1
  254. package/dist/components/hds/advanced-table/column-manager/index.js +1 -1
  255. package/dist/components/hds/advanced-table/column-manager/index.js.map +1 -1
  256. package/dist/components/hds/advanced-table/column-manager/order.js +4 -0
  257. package/dist/components/hds/advanced-table/column-manager/order.js.map +1 -1
  258. package/dist/components/hds/advanced-table/column-manager/width.js +4 -0
  259. package/dist/components/hds/advanced-table/column-manager/width.js.map +1 -1
  260. package/dist/components/hds/advanced-table/index.js +1 -1
  261. package/dist/components/hds/advanced-table/td.js +1 -1
  262. package/dist/components/hds/advanced-table/td.js.map +1 -1
  263. package/dist/components/hds/advanced-table/th-button-expand.js +1 -1
  264. package/dist/components/hds/advanced-table/th-button-expand.js.map +1 -1
  265. package/dist/components/hds/advanced-table/th-button-sort.js +1 -1
  266. package/dist/components/hds/advanced-table/th-button-sort.js.map +1 -1
  267. package/dist/components/hds/advanced-table/th-button-tooltip.js +1 -1
  268. package/dist/components/hds/advanced-table/th-button-tooltip.js.map +1 -1
  269. package/dist/components/hds/advanced-table/th-context-menu.js +1 -1
  270. package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
  271. package/dist/components/hds/advanced-table/th-reorder-drop-target.js +1 -1
  272. package/dist/components/hds/advanced-table/th-reorder-handle.js +1 -1
  273. package/dist/components/hds/advanced-table/th-reorder-handle.js.map +1 -1
  274. package/dist/components/hds/advanced-table/th-resize-handle.js +1 -1
  275. package/dist/components/hds/advanced-table/th-selectable.js +1 -1
  276. package/dist/components/hds/advanced-table/th.js +1 -1
  277. package/dist/components/hds/advanced-table/tr.js +1 -1
  278. package/dist/components/hds/advanced-table/types.js +1 -1
  279. package/dist/components/hds/advanced-table/types.js.map +1 -1
  280. package/dist/components/hds/advanced-table/utils.js +1 -1
  281. package/dist/components/hds/advanced-table/utils.js.map +1 -1
  282. package/dist/components/hds/alert/description.js +1 -1
  283. package/dist/components/hds/alert/description.js.map +1 -1
  284. package/dist/components/hds/alert/index.js +1 -1
  285. package/dist/components/hds/alert/index.js.map +1 -1
  286. package/dist/components/hds/alert/title.js +1 -1
  287. package/dist/components/hds/alert/title.js.map +1 -1
  288. package/dist/components/hds/app-footer/copyright.js +1 -1
  289. package/dist/components/hds/app-footer/copyright.js.map +1 -1
  290. package/dist/components/hds/app-footer/index.js +1 -1
  291. package/dist/components/hds/app-footer/index.js.map +1 -1
  292. package/dist/components/hds/app-footer/item.js +1 -1
  293. package/dist/components/hds/app-footer/item.js.map +1 -1
  294. package/dist/components/hds/app-footer/legal-links.js +1 -1
  295. package/dist/components/hds/app-footer/legal-links.js.map +1 -1
  296. package/dist/components/hds/app-footer/link.js +1 -1
  297. package/dist/components/hds/app-footer/link.js.map +1 -1
  298. package/dist/components/hds/app-footer/status-link.js +9 -6
  299. package/dist/components/hds/app-footer/status-link.js.map +1 -1
  300. package/dist/components/hds/app-footer/types.js +1 -1
  301. package/dist/components/hds/app-footer/types.js.map +1 -1
  302. package/dist/components/hds/app-frame/index.js +1 -1
  303. package/dist/components/hds/app-frame/index.js.map +1 -1
  304. package/dist/components/hds/app-frame/parts/footer.js +1 -1
  305. package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
  306. package/dist/components/hds/app-frame/parts/header.js +1 -1
  307. package/dist/components/hds/app-frame/parts/header.js.map +1 -1
  308. package/dist/components/hds/app-frame/parts/main.js +1 -1
  309. package/dist/components/hds/app-frame/parts/main.js.map +1 -1
  310. package/dist/components/hds/app-frame/parts/modals.js +1 -1
  311. package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
  312. package/dist/components/hds/app-frame/parts/sidebar.js +1 -1
  313. package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
  314. package/dist/components/hds/app-header/home-link.js +1 -1
  315. package/dist/components/hds/app-header/home-link.js.map +1 -1
  316. package/dist/components/hds/app-header/index.js +1 -1
  317. package/dist/components/hds/app-header/index.js.map +1 -1
  318. package/dist/components/hds/app-header/menu-button.js +1 -1
  319. package/dist/components/hds/app-header/menu-button.js.map +1 -1
  320. package/dist/components/hds/app-side-nav/index.js +1 -1
  321. package/dist/components/hds/app-side-nav/index.js.map +1 -1
  322. package/dist/components/hds/app-side-nav/list/back-link.js +1 -1
  323. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
  324. package/dist/components/hds/app-side-nav/list/index.js +1 -1
  325. package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
  326. package/dist/components/hds/app-side-nav/list/item.js +1 -1
  327. package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
  328. package/dist/components/hds/app-side-nav/list/link.js +1 -1
  329. package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
  330. package/dist/components/hds/app-side-nav/list/title.js +1 -1
  331. package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
  332. package/dist/components/hds/app-side-nav/portal/index.js +1 -1
  333. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
  334. package/dist/components/hds/app-side-nav/portal/target.js +1 -1
  335. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
  336. package/dist/components/hds/app-side-nav/toggle-button.js +1 -1
  337. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
  338. package/dist/components/hds/application-state/body.js +1 -1
  339. package/dist/components/hds/application-state/body.js.map +1 -1
  340. package/dist/components/hds/application-state/footer.js +1 -1
  341. package/dist/components/hds/application-state/footer.js.map +1 -1
  342. package/dist/components/hds/application-state/header.js +1 -1
  343. package/dist/components/hds/application-state/header.js.map +1 -1
  344. package/dist/components/hds/application-state/index.js +1 -1
  345. package/dist/components/hds/application-state/index.js.map +1 -1
  346. package/dist/components/hds/application-state/media.js +1 -1
  347. package/dist/components/hds/application-state/media.js.map +1 -1
  348. package/dist/components/hds/badge/index.js +1 -1
  349. package/dist/components/hds/badge/index.js.map +1 -1
  350. package/dist/components/hds/badge-count/index.js +1 -1
  351. package/dist/components/hds/badge-count/index.js.map +1 -1
  352. package/dist/components/hds/breadcrumb/index.js +1 -1
  353. package/dist/components/hds/breadcrumb/index.js.map +1 -1
  354. package/dist/components/hds/breadcrumb/item.js +8 -5
  355. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  356. package/dist/components/hds/breadcrumb/truncation.js +1 -1
  357. package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
  358. package/dist/components/hds/button/index.js +1 -1
  359. package/dist/components/hds/button/index.js.map +1 -1
  360. package/dist/components/hds/button-set/index.js +1 -1
  361. package/dist/components/hds/button-set/index.js.map +1 -1
  362. package/dist/components/hds/card/container.js +1 -1
  363. package/dist/components/hds/card/container.js.map +1 -1
  364. package/dist/components/hds/code-block/copy-button.js +1 -1
  365. package/dist/components/hds/code-block/copy-button.js.map +1 -1
  366. package/dist/components/hds/code-block/description.js +1 -1
  367. package/dist/components/hds/code-block/description.js.map +1 -1
  368. package/dist/components/hds/code-block/index.js +4 -2
  369. package/dist/components/hds/code-block/index.js.map +1 -1
  370. package/dist/components/hds/code-block/title.js +1 -1
  371. package/dist/components/hds/code-block/title.js.map +1 -1
  372. package/dist/components/hds/code-editor/description.js +1 -1
  373. package/dist/components/hds/code-editor/description.js.map +1 -1
  374. package/dist/components/hds/code-editor/full-screen-button.js +1 -1
  375. package/dist/components/hds/code-editor/full-screen-button.js.map +1 -1
  376. package/dist/components/hds/code-editor/generic.js +1 -1
  377. package/dist/components/hds/code-editor/generic.js.map +1 -1
  378. package/dist/components/hds/code-editor/index.js +1 -1
  379. package/dist/components/hds/code-editor/index.js.map +1 -1
  380. package/dist/components/hds/code-editor/title.js +1 -1
  381. package/dist/components/hds/code-editor/title.js.map +1 -1
  382. package/dist/components/hds/composite/index.js +4 -0
  383. package/dist/components/hds/composite/index.js.map +1 -1
  384. package/dist/components/hds/composite/navigation.js +5 -0
  385. package/dist/components/hds/composite/navigation.js.map +1 -1
  386. package/dist/components/hds/copy/button/index.js +6 -2
  387. package/dist/components/hds/copy/button/index.js.map +1 -1
  388. package/dist/components/hds/copy/snippet/index.js +20 -2
  389. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  390. package/dist/components/hds/dialog-primitive/body.js +1 -1
  391. package/dist/components/hds/dialog-primitive/body.js.map +1 -1
  392. package/dist/components/hds/dialog-primitive/description.js +1 -1
  393. package/dist/components/hds/dialog-primitive/description.js.map +1 -1
  394. package/dist/components/hds/dialog-primitive/footer.js +1 -1
  395. package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
  396. package/dist/components/hds/dialog-primitive/header.js +1 -1
  397. package/dist/components/hds/dialog-primitive/header.js.map +1 -1
  398. package/dist/components/hds/dialog-primitive/overlay.js +1 -1
  399. package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
  400. package/dist/components/hds/dialog-primitive/wrapper.js +1 -1
  401. package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
  402. package/dist/components/hds/disclosure-primitive/index.js +1 -1
  403. package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
  404. package/dist/components/hds/dismiss-button/index.js +1 -1
  405. package/dist/components/hds/dismiss-button/index.js.map +1 -1
  406. package/dist/components/hds/dropdown/footer.js +1 -1
  407. package/dist/components/hds/dropdown/footer.js.map +1 -1
  408. package/dist/components/hds/dropdown/header.js +1 -1
  409. package/dist/components/hds/dropdown/header.js.map +1 -1
  410. package/dist/components/hds/dropdown/index.js +1 -1
  411. package/dist/components/hds/dropdown/index.js.map +1 -1
  412. package/dist/components/hds/dropdown/list-item/checkbox.js +1 -1
  413. package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
  414. package/dist/components/hds/dropdown/list-item/checkmark.js +1 -1
  415. package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
  416. package/dist/components/hds/dropdown/list-item/copy-item.js +1 -1
  417. package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
  418. package/dist/components/hds/dropdown/list-item/description.js +1 -1
  419. package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
  420. package/dist/components/hds/dropdown/list-item/generic.js +1 -1
  421. package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
  422. package/dist/components/hds/dropdown/list-item/interactive.js +1 -1
  423. package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
  424. package/dist/components/hds/dropdown/list-item/radio.js +1 -1
  425. package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
  426. package/dist/components/hds/dropdown/list-item/separator.js +1 -1
  427. package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
  428. package/dist/components/hds/dropdown/list-item/title.js +1 -1
  429. package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
  430. package/dist/components/hds/dropdown/toggle/button.js +1 -1
  431. package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
  432. package/dist/components/hds/dropdown/toggle/chevron.js +1 -1
  433. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  434. package/dist/components/hds/dropdown/toggle/icon.js +1 -1
  435. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  436. package/dist/components/hds/filter-bar/actions-dropdown.js +1 -1
  437. package/dist/components/hds/filter-bar/actions-dropdown.js.map +1 -1
  438. package/dist/components/hds/filter-bar/applied-filters.js +1 -1
  439. package/dist/components/hds/filter-bar/applied-filters.js.map +1 -1
  440. package/dist/components/hds/filter-bar/filter-group/checkbox.js +1 -1
  441. package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +1 -1
  442. package/dist/components/hds/filter-bar/filter-group/clear-button.js +1 -1
  443. package/dist/components/hds/filter-bar/filter-group/clear-button.js.map +1 -1
  444. package/dist/components/hds/filter-bar/filter-group/date.js +1 -1
  445. package/dist/components/hds/filter-bar/filter-group/date.js.map +1 -1
  446. package/dist/components/hds/filter-bar/filter-group/generic.js +1 -1
  447. package/dist/components/hds/filter-bar/filter-group/generic.js.map +1 -1
  448. package/dist/components/hds/filter-bar/filter-group/index.js +1 -1
  449. package/dist/components/hds/filter-bar/filter-group/index.js.map +1 -1
  450. package/dist/components/hds/filter-bar/filter-group/numerical.js +1 -1
  451. package/dist/components/hds/filter-bar/filter-group/numerical.js.map +1 -1
  452. package/dist/components/hds/filter-bar/filter-group/radio.js +1 -1
  453. package/dist/components/hds/filter-bar/filter-group/radio.js.map +1 -1
  454. package/dist/components/hds/filter-bar/filters-dropdown.js +1 -1
  455. package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -1
  456. package/dist/components/hds/filter-bar/index.js +1 -1
  457. package/dist/components/hds/filter-bar/index.js.map +1 -1
  458. package/dist/components/hds/filter-bar/tabs/index.js +1 -1
  459. package/dist/components/hds/filter-bar/tabs/index.js.map +1 -1
  460. package/dist/components/hds/filter-bar/tabs/panel.js +1 -1
  461. package/dist/components/hds/filter-bar/tabs/panel.js.map +1 -1
  462. package/dist/components/hds/filter-bar/tabs/tab.js +1 -1
  463. package/dist/components/hds/filter-bar/tabs/tab.js.map +1 -1
  464. package/dist/components/hds/filter-bar/types.js +1 -1
  465. package/dist/components/hds/filter-bar/types.js.map +1 -1
  466. package/dist/components/hds/flyout/index.js +1 -1
  467. package/dist/components/hds/flyout/index.js.map +1 -1
  468. package/dist/components/hds/form/character-count/index.js +1 -1
  469. package/dist/components/hds/form/character-count/index.js.map +1 -1
  470. package/dist/components/hds/form/checkbox/base.js +1 -1
  471. package/dist/components/hds/form/checkbox/base.js.map +1 -1
  472. package/dist/components/hds/form/checkbox/field.js +1 -1
  473. package/dist/components/hds/form/checkbox/field.js.map +1 -1
  474. package/dist/components/hds/form/checkbox/group.js +1 -1
  475. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  476. package/dist/components/hds/form/error/index.js +1 -1
  477. package/dist/components/hds/form/error/index.js.map +1 -1
  478. package/dist/components/hds/form/error/message.js +1 -1
  479. package/dist/components/hds/form/error/message.js.map +1 -1
  480. package/dist/components/hds/form/field/index.js +1 -1
  481. package/dist/components/hds/form/field/index.js.map +1 -1
  482. package/dist/components/hds/form/fieldset/index.js +1 -1
  483. package/dist/components/hds/form/fieldset/index.js.map +1 -1
  484. package/dist/components/hds/form/file-input/base.js +1 -1
  485. package/dist/components/hds/form/file-input/base.js.map +1 -1
  486. package/dist/components/hds/form/file-input/field.js +1 -1
  487. package/dist/components/hds/form/file-input/field.js.map +1 -1
  488. package/dist/components/hds/form/footer/index.js +1 -1
  489. package/dist/components/hds/form/footer/index.js.map +1 -1
  490. package/dist/components/hds/form/header/description.js +1 -1
  491. package/dist/components/hds/form/header/description.js.map +1 -1
  492. package/dist/components/hds/form/header/index.js +1 -1
  493. package/dist/components/hds/form/header/index.js.map +1 -1
  494. package/dist/components/hds/form/header/title.js +1 -1
  495. package/dist/components/hds/form/header/title.js.map +1 -1
  496. package/dist/components/hds/form/helper-text/index.js +1 -1
  497. package/dist/components/hds/form/helper-text/index.js.map +1 -1
  498. package/dist/components/hds/form/index.js +1 -1
  499. package/dist/components/hds/form/index.js.map +1 -1
  500. package/dist/components/hds/form/indicator/index.js +1 -1
  501. package/dist/components/hds/form/indicator/index.js.map +1 -1
  502. package/dist/components/hds/form/key-value-inputs/add-row-button.js +1 -1
  503. package/dist/components/hds/form/key-value-inputs/add-row-button.js.map +1 -1
  504. package/dist/components/hds/form/key-value-inputs/delete-row-button.js +1 -1
  505. package/dist/components/hds/form/key-value-inputs/delete-row-button.js.map +1 -1
  506. package/dist/components/hds/form/key-value-inputs/field.js +1 -1
  507. package/dist/components/hds/form/key-value-inputs/field.js.map +1 -1
  508. package/dist/components/hds/form/key-value-inputs/generic.js +1 -1
  509. package/dist/components/hds/form/key-value-inputs/generic.js.map +1 -1
  510. package/dist/components/hds/form/key-value-inputs/index.js +1 -1
  511. package/dist/components/hds/form/key-value-inputs/index.js.map +1 -1
  512. package/dist/components/hds/form/label/index.js +1 -1
  513. package/dist/components/hds/form/label/index.js.map +1 -1
  514. package/dist/components/hds/form/legend/index.js +1 -1
  515. package/dist/components/hds/form/legend/index.js.map +1 -1
  516. package/dist/components/hds/form/masked-input/base.js +1 -1
  517. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  518. package/dist/components/hds/form/masked-input/field.js +1 -1
  519. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  520. package/dist/components/hds/form/radio/base.js +1 -1
  521. package/dist/components/hds/form/radio/base.js.map +1 -1
  522. package/dist/components/hds/form/radio/field.js +1 -1
  523. package/dist/components/hds/form/radio/field.js.map +1 -1
  524. package/dist/components/hds/form/radio/group.js +1 -1
  525. package/dist/components/hds/form/radio/group.js.map +1 -1
  526. package/dist/components/hds/form/radio-card/description.js +1 -1
  527. package/dist/components/hds/form/radio-card/description.js.map +1 -1
  528. package/dist/components/hds/form/radio-card/group.js +1 -1
  529. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  530. package/dist/components/hds/form/radio-card/index.js +1 -1
  531. package/dist/components/hds/form/radio-card/index.js.map +1 -1
  532. package/dist/components/hds/form/radio-card/label.js +1 -1
  533. package/dist/components/hds/form/radio-card/label.js.map +1 -1
  534. package/dist/components/hds/form/section/header.js +1 -1
  535. package/dist/components/hds/form/section/header.js.map +1 -1
  536. package/dist/components/hds/form/section/index.js +1 -1
  537. package/dist/components/hds/form/section/index.js.map +1 -1
  538. package/dist/components/hds/form/section/multi-field-group/index.js +1 -1
  539. package/dist/components/hds/form/section/multi-field-group/index.js.map +1 -1
  540. package/dist/components/hds/form/section/multi-field-group/item.js +1 -1
  541. package/dist/components/hds/form/section/multi-field-group/item.js.map +1 -1
  542. package/dist/components/hds/form/select/base.js +1 -1
  543. package/dist/components/hds/form/select/base.js.map +1 -1
  544. package/dist/components/hds/form/select/field.js +1 -1
  545. package/dist/components/hds/form/select/field.js.map +1 -1
  546. package/dist/components/hds/form/separator/index.js +1 -1
  547. package/dist/components/hds/form/separator/index.js.map +1 -1
  548. package/dist/components/hds/form/super-select/after-options.js +1 -1
  549. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  550. package/dist/components/hds/form/super-select/multiple/base.js +1 -1
  551. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  552. package/dist/components/hds/form/super-select/multiple/field.js +1 -1
  553. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  554. package/dist/components/hds/form/super-select/option-group.js +1 -1
  555. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  556. package/dist/components/hds/form/super-select/placeholder.js +1 -1
  557. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  558. package/dist/components/hds/form/super-select/single/base.js +1 -1
  559. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  560. package/dist/components/hds/form/super-select/single/field.js +1 -1
  561. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  562. package/dist/components/hds/form/text-input/base.js +1 -1
  563. package/dist/components/hds/form/text-input/base.js.map +1 -1
  564. package/dist/components/hds/form/text-input/field.js +1 -1
  565. package/dist/components/hds/form/text-input/field.js.map +1 -1
  566. package/dist/components/hds/form/textarea/base.js +1 -1
  567. package/dist/components/hds/form/textarea/base.js.map +1 -1
  568. package/dist/components/hds/form/textarea/field.js +1 -1
  569. package/dist/components/hds/form/textarea/field.js.map +1 -1
  570. package/dist/components/hds/form/toggle/base.js +1 -1
  571. package/dist/components/hds/form/toggle/base.js.map +1 -1
  572. package/dist/components/hds/form/toggle/field.js +1 -1
  573. package/dist/components/hds/form/toggle/field.js.map +1 -1
  574. package/dist/components/hds/form/toggle/group.js +1 -1
  575. package/dist/components/hds/form/toggle/group.js.map +1 -1
  576. package/dist/components/hds/form/visibility-toggle/index.js +1 -1
  577. package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
  578. package/dist/components/hds/icon/index.js +1 -1
  579. package/dist/components/hds/icon/index.js.map +1 -1
  580. package/dist/components/hds/icon-tile/index.js +1 -1
  581. package/dist/components/hds/icon-tile/index.js.map +1 -1
  582. package/dist/components/hds/interactive/index.js +1 -1
  583. package/dist/components/hds/interactive/index.js.map +1 -1
  584. package/dist/components/hds/layout/flex/index.js +1 -1
  585. package/dist/components/hds/layout/flex/index.js.map +1 -1
  586. package/dist/components/hds/layout/flex/item.js +1 -1
  587. package/dist/components/hds/layout/flex/item.js.map +1 -1
  588. package/dist/components/hds/layout/grid/index.js +1 -1
  589. package/dist/components/hds/layout/grid/index.js.map +1 -1
  590. package/dist/components/hds/layout/grid/item.js +1 -1
  591. package/dist/components/hds/layout/grid/item.js.map +1 -1
  592. package/dist/components/hds/link/inline.js +1 -1
  593. package/dist/components/hds/link/inline.js.map +1 -1
  594. package/dist/components/hds/link/standalone.js +1 -1
  595. package/dist/components/hds/link/standalone.js.map +1 -1
  596. package/dist/components/hds/modal/index.js +1 -1
  597. package/dist/components/hds/modal/index.js.map +1 -1
  598. package/dist/components/hds/page-header/actions.js +1 -1
  599. package/dist/components/hds/page-header/actions.js.map +1 -1
  600. package/dist/components/hds/page-header/badges.js +1 -1
  601. package/dist/components/hds/page-header/badges.js.map +1 -1
  602. package/dist/components/hds/page-header/description.js +1 -1
  603. package/dist/components/hds/page-header/description.js.map +1 -1
  604. package/dist/components/hds/page-header/index.js +1 -1
  605. package/dist/components/hds/page-header/index.js.map +1 -1
  606. package/dist/components/hds/page-header/subtitle.js +1 -1
  607. package/dist/components/hds/page-header/subtitle.js.map +1 -1
  608. package/dist/components/hds/page-header/title.js +1 -1
  609. package/dist/components/hds/page-header/title.js.map +1 -1
  610. package/dist/components/hds/pagination/compact/index.js +1 -1
  611. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  612. package/dist/components/hds/pagination/info/index.js +1 -1
  613. package/dist/components/hds/pagination/info/index.js.map +1 -1
  614. package/dist/components/hds/pagination/nav/arrow.js +1 -1
  615. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  616. package/dist/components/hds/pagination/nav/ellipsis.js +1 -1
  617. package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
  618. package/dist/components/hds/pagination/nav/number.js +1 -1
  619. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  620. package/dist/components/hds/pagination/numbered/index.js +1 -1
  621. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  622. package/dist/components/hds/pagination/size-selector/index.js +1 -1
  623. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  624. package/dist/components/hds/pagination/types.js +1 -1
  625. package/dist/components/hds/pagination/types.js.map +1 -1
  626. package/dist/components/hds/popover-primitive/index.js +1 -1
  627. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  628. package/dist/components/hds/reveal/index.js +1 -1
  629. package/dist/components/hds/reveal/index.js.map +1 -1
  630. package/dist/components/hds/reveal/toggle/button.js +1 -1
  631. package/dist/components/hds/reveal/toggle/button.js.map +1 -1
  632. package/dist/components/hds/rich-tooltip/bubble.js +1 -1
  633. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  634. package/dist/components/hds/rich-tooltip/index.js +1 -1
  635. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  636. package/dist/components/hds/rich-tooltip/toggle.js +1 -1
  637. package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
  638. package/dist/components/hds/segmented-group/index.js +1 -1
  639. package/dist/components/hds/segmented-group/index.js.map +1 -1
  640. package/dist/components/hds/separator/index.js +1 -1
  641. package/dist/components/hds/separator/index.js.map +1 -1
  642. package/dist/components/hds/stepper/list/index.js +1 -1
  643. package/dist/components/hds/stepper/list/index.js.map +1 -1
  644. package/dist/components/hds/stepper/list/step.js +1 -1
  645. package/dist/components/hds/stepper/list/step.js.map +1 -1
  646. package/dist/components/hds/stepper/nav/index.js +1 -1
  647. package/dist/components/hds/stepper/nav/index.js.map +1 -1
  648. package/dist/components/hds/stepper/nav/panel.js +1 -1
  649. package/dist/components/hds/stepper/nav/panel.js.map +1 -1
  650. package/dist/components/hds/stepper/nav/step.js +1 -7
  651. package/dist/components/hds/stepper/nav/step.js.map +1 -1
  652. package/dist/components/hds/stepper/step/indicator.js +1 -1
  653. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  654. package/dist/components/hds/stepper/task/indicator.js +1 -1
  655. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  656. package/dist/components/hds/stepper/types.js +1 -1
  657. package/dist/components/hds/stepper/types.js.map +1 -1
  658. package/dist/components/hds/table/index.js +1 -1
  659. package/dist/components/hds/table/index.js.map +1 -1
  660. package/dist/components/hds/table/td.js +1 -1
  661. package/dist/components/hds/table/td.js.map +1 -1
  662. package/dist/components/hds/table/th-button-sort.js +1 -1
  663. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  664. package/dist/components/hds/table/th-button-tooltip.js +1 -1
  665. package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
  666. package/dist/components/hds/table/th-selectable.js +1 -1
  667. package/dist/components/hds/table/th-selectable.js.map +1 -1
  668. package/dist/components/hds/table/th-sort.js +1 -1
  669. package/dist/components/hds/table/th-sort.js.map +1 -1
  670. package/dist/components/hds/table/th.js +1 -1
  671. package/dist/components/hds/table/th.js.map +1 -1
  672. package/dist/components/hds/table/tr.js +1 -1
  673. package/dist/components/hds/table/tr.js.map +1 -1
  674. package/dist/components/hds/table/types.js +1 -1
  675. package/dist/components/hds/table/types.js.map +1 -1
  676. package/dist/components/hds/tabs/index.js +1 -1
  677. package/dist/components/hds/tabs/index.js.map +1 -1
  678. package/dist/components/hds/tabs/panel.js +1 -1
  679. package/dist/components/hds/tabs/panel.js.map +1 -1
  680. package/dist/components/hds/tabs/tab.js +1 -1
  681. package/dist/components/hds/tabs/tab.js.map +1 -1
  682. package/dist/components/hds/tag/index.js +1 -1
  683. package/dist/components/hds/tag/index.js.map +1 -1
  684. package/dist/components/hds/text/body.js +1 -1
  685. package/dist/components/hds/text/body.js.map +1 -1
  686. package/dist/components/hds/text/code.js +1 -1
  687. package/dist/components/hds/text/code.js.map +1 -1
  688. package/dist/components/hds/text/display.js +1 -1
  689. package/dist/components/hds/text/display.js.map +1 -1
  690. package/dist/components/hds/text/index.js +1 -1
  691. package/dist/components/hds/text/index.js.map +1 -1
  692. package/dist/components/hds/time/index.js +1 -1
  693. package/dist/components/hds/time/index.js.map +1 -1
  694. package/dist/components/hds/time/range.js +1 -1
  695. package/dist/components/hds/time/range.js.map +1 -1
  696. package/dist/components/hds/time/single.js +1 -1
  697. package/dist/components/hds/time/single.js.map +1 -1
  698. package/dist/components/hds/toast/index.js +1 -1
  699. package/dist/components/hds/toast/index.js.map +1 -1
  700. package/dist/components/hds/tooltip-button/index.js +1 -1
  701. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  702. package/dist/components/hds/yield/index.js +1 -1
  703. package/dist/components/hds/yield/index.js.map +1 -1
  704. package/dist/components.js +1 -1
  705. package/dist/helpers/hds-t.js +1 -1
  706. package/dist/helpers/hds-t.js.map +1 -1
  707. package/dist/{index-B9OqWZ9U.js → index-DtMB-P9m.js} +7 -7
  708. package/dist/{index-B9OqWZ9U.js.map → index-DtMB-P9m.js.map} +1 -1
  709. package/dist/modifiers/hds-advanced-table-cell/dom-management.js +1 -1
  710. package/dist/modifiers/hds-advanced-table-cell/dom-management.js.map +1 -1
  711. package/dist/modifiers/hds-advanced-table-cell.js +1 -1
  712. package/dist/modifiers/hds-advanced-table-cell.js.map +1 -1
  713. package/dist/modifiers/hds-clipboard.js +6 -2
  714. package/dist/modifiers/hds-clipboard.js.map +1 -1
  715. package/dist/modifiers/hds-code-editor.js.map +1 -1
  716. package/dist/modifiers/hds-scroll-into-view-on-focus.js +1 -1
  717. package/dist/modifiers/hds-scroll-into-view-on-focus.js.map +1 -1
  718. package/dist/modifiers/hds-tooltip.js +1 -1
  719. package/dist/modifiers/hds-tooltip.js.map +1 -1
  720. package/dist/services/hds-intl.js +1 -1
  721. package/dist/services/hds-intl.js.map +1 -1
  722. package/dist/styles/@hashicorp/design-system-components-common.scss +1 -1
  723. package/dist/styles/@hashicorp/design-system-components.css +159 -153
  724. package/dist/styles/@hashicorp/design-system-components.css.map +1 -1
  725. package/dist/styles/@hashicorp/design-system-components.scss +1 -1
  726. package/dist/styles/@hashicorp/design-system-ember-a11y-refocus.scss +5 -0
  727. package/dist/styles/components/advanced-table.scss +1 -1
  728. package/dist/styles/components/app-header.scss +1 -1
  729. package/dist/styles/components/app-side-nav/content.scss +1 -1
  730. package/dist/styles/components/app-side-nav/vars.scss +1 -1
  731. package/dist/styles/components/breadcrumb.scss +1 -1
  732. package/dist/styles/components/code-block/index.scss +1 -1
  733. package/dist/styles/components/code-editor/index.scss +1 -1
  734. package/dist/styles/components/dropdown.scss +4 -0
  735. package/dist/styles/components/filter-bar.scss +1 -1
  736. package/dist/styles/components/flyout.scss +1 -1
  737. package/dist/styles/components/index.scss +1 -1
  738. package/dist/styles/components/layout/grid.scss +1 -1
  739. package/dist/styles/components/stepper/nav.scss +66 -67
  740. package/dist/styles/mixins/_interactive-dark-theme.scss +1 -1
  741. package/dist/utils/hds-aria-described-by.js +1 -1
  742. package/dist/utils/hds-aria-described-by.js.map +1 -1
  743. package/dist/utils/hds-link-to-external.js +5 -0
  744. package/dist/utils/hds-link-to-external.js.map +1 -1
  745. package/package.json +2 -2
  746. package/translations/hds/components/code-block/en-us.yaml +3 -0
  747. package/translations/hds/components/copy-button/en-us.yaml +3 -1
  748. package/translations/hds/components/copy-snippet/en-us.yaml +3 -0
@@ -1,7 +1,7 @@
1
1
  import { tabbable } from 'tabbable';
2
2
 
3
3
  /**
4
- * Copyright IBM Corp. 2021, 2025
4
+ * Copyright IBM Corp. 2021, 2026
5
5
  * SPDX-License-Identifier: MPL-2.0
6
6
  */
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"dom-management.js","sources":["../../../src/modifiers/hds-advanced-table-cell/dom-management.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { tabbable } from 'tabbable';\n\nexport const onFocusTrapDeactivate = (cell: HTMLDivElement) => {\n const cellTabbableChildren = tabbable(cell);\n\n for (const child of cellTabbableChildren) {\n child.setAttribute('tabindex', '-1');\n }\n\n cell.setAttribute('tabindex', '0');\n};\n\nexport const updateTabbableChildren = (\n cell: HTMLDivElement,\n isFocusTrapActive?: boolean\n): void => {\n const cellTabbableChildren = tabbable(cell, { displayCheck: 'none' });\n\n for (const child of cellTabbableChildren) {\n if (child instanceof HTMLElement) {\n if (!isFocusTrapActive) {\n child.setAttribute('tabindex', '-1');\n }\n\n child.setAttribute('data-advanced-table-child-focusable', '');\n }\n }\n};\n"],"names":["onFocusTrapDeactivate","cell","cellTabbableChildren","tabbable","child","setAttribute","updateTabbableChildren","isFocusTrapActive","displayCheck","HTMLElement"],"mappings":";;AAAA;AACA;AACA;AACA;;AAIO,MAAMA,qBAAqB,GAAIC,IAAoB,IAAK;AAC7D,EAAA,MAAMC,oBAAoB,GAAGC,QAAQ,CAACF,IAAI,CAAC;AAE3C,EAAA,KAAK,MAAMG,KAAK,IAAIF,oBAAoB,EAAE;AACxCE,IAAAA,KAAK,CAACC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AACtC,EAAA;AAEAJ,EAAAA,IAAI,CAACI,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AACpC;MAEaC,sBAAsB,GAAGA,CACpCL,IAAoB,EACpBM,iBAA2B,KAClB;AACT,EAAA,MAAML,oBAAoB,GAAGC,QAAQ,CAACF,IAAI,EAAE;AAAEO,IAAAA,YAAY,EAAE;AAAO,GAAC,CAAC;AAErE,EAAA,KAAK,MAAMJ,KAAK,IAAIF,oBAAoB,EAAE;IACxC,IAAIE,KAAK,YAAYK,WAAW,EAAE;MAChC,IAAI,CAACF,iBAAiB,EAAE;AACtBH,QAAAA,KAAK,CAACC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AACtC,MAAA;AAEAD,MAAAA,KAAK,CAACC,YAAY,CAAC,qCAAqC,EAAE,EAAE,CAAC;AAC/D,IAAA;AACF,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"dom-management.js","sources":["../../../src/modifiers/hds-advanced-table-cell/dom-management.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { tabbable } from 'tabbable';\n\nexport const onFocusTrapDeactivate = (cell: HTMLDivElement) => {\n const cellTabbableChildren = tabbable(cell);\n\n for (const child of cellTabbableChildren) {\n child.setAttribute('tabindex', '-1');\n }\n\n cell.setAttribute('tabindex', '0');\n};\n\nexport const updateTabbableChildren = (\n cell: HTMLDivElement,\n isFocusTrapActive?: boolean\n): void => {\n const cellTabbableChildren = tabbable(cell, { displayCheck: 'none' });\n\n for (const child of cellTabbableChildren) {\n if (child instanceof HTMLElement) {\n if (!isFocusTrapActive) {\n child.setAttribute('tabindex', '-1');\n }\n\n child.setAttribute('data-advanced-table-child-focusable', '');\n }\n }\n};\n"],"names":["onFocusTrapDeactivate","cell","cellTabbableChildren","tabbable","child","setAttribute","updateTabbableChildren","isFocusTrapActive","displayCheck","HTMLElement"],"mappings":";;AAAA;AACA;AACA;AACA;;AAIO,MAAMA,qBAAqB,GAAIC,IAAoB,IAAK;AAC7D,EAAA,MAAMC,oBAAoB,GAAGC,QAAQ,CAACF,IAAI,CAAC;AAE3C,EAAA,KAAK,MAAMG,KAAK,IAAIF,oBAAoB,EAAE;AACxCE,IAAAA,KAAK,CAACC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AACtC,EAAA;AAEAJ,EAAAA,IAAI,CAACI,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AACpC;MAEaC,sBAAsB,GAAGA,CACpCL,IAAoB,EACpBM,iBAA2B,KAClB;AACT,EAAA,MAAML,oBAAoB,GAAGC,QAAQ,CAACF,IAAI,EAAE;AAAEO,IAAAA,YAAY,EAAE;AAAO,GAAC,CAAC;AAErE,EAAA,KAAK,MAAMJ,KAAK,IAAIF,oBAAoB,EAAE;IACxC,IAAIE,KAAK,YAAYK,WAAW,EAAE;MAChC,IAAI,CAACF,iBAAiB,EAAE;AACtBH,QAAAA,KAAK,CAACC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AACtC,MAAA;AAEAD,MAAAA,KAAK,CAACC,YAAY,CAAC,qCAAqC,EAAE,EAAE,CAAC;AAC/D,IAAA;AACF,EAAA;AACF;;;;"}
@@ -4,7 +4,7 @@ import { registerDestructor } from '@ember/destroyable';
4
4
  import { focusable } from 'tabbable';
5
5
 
6
6
  /**
7
- * Copyright IBM Corp. 2021, 2025
7
+ * Copyright IBM Corp. 2021, 2026
8
8
  * SPDX-License-Identifier: MPL-2.0
9
9
  */
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"hds-advanced-table-cell.js","sources":["../../src/modifiers/hds-advanced-table-cell.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport { updateTabbableChildren } from './hds-advanced-table-cell/dom-management.ts';\nimport { registerDestructor } from '@ember/destroyable';\nimport { focusable } from 'tabbable';\n\nimport type Owner from '@ember/owner';\nimport type { ArgsFor, PositionalArgs } from 'ember-modifier';\n\nexport interface HdsAdvancedTableCellModifierSignature {\n Args: {\n Named: {\n shouldTrapFocus: boolean;\n handleEnableFocusTrap: () => void;\n setCellElement?: (el: HTMLDivElement) => void;\n };\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableCellModifier extends Modifier<HdsAdvancedTableCellModifierSignature> {\n // have a copy of shouldTrapFocus internally so the correct value is used when update tabbable children\n private _shouldTrapFocus = false;\n private _didSetup = false;\n private _element: HTMLDivElement | undefined = undefined;\n private _observer: MutationObserver | undefined = undefined;\n private _keydownHandler!: (event: KeyboardEvent) => void;\n\n constructor(\n owner: Owner,\n args: ArgsFor<HdsAdvancedTableCellModifierSignature>\n ) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this._observer?.disconnect();\n this._element?.removeEventListener('keydown', this._keydownHandler);\n this._element = undefined;\n });\n }\n\n modify(\n element: HdsAdvancedTableCellModifierSignature['Element'],\n positional: PositionalArgs<HdsAdvancedTableCellModifierSignature>,\n named: HdsAdvancedTableCellModifierSignature['Args']['Named']\n ): void {\n this._shouldTrapFocus = named.shouldTrapFocus;\n\n if (!this._didSetup) {\n this.#setupObserver(element, positional, named);\n\n if (typeof named.setCellElement === 'function') {\n named.setCellElement(element);\n }\n\n this._didSetup = true;\n this._element = element;\n }\n }\n\n #setupObserver(\n element: HdsAdvancedTableCellModifierSignature['Element'],\n _positional: PositionalArgs<HdsAdvancedTableCellModifierSignature>,\n named: HdsAdvancedTableCellModifierSignature['Args']['Named']\n ): void {\n const { handleEnableFocusTrap } = named;\n\n updateTabbableChildren(element);\n\n this._keydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n const cellFocusableChildren = focusable(element);\n\n if (cellFocusableChildren.length > 0) {\n for (let i = 0; i < cellFocusableChildren.length; i++) {\n const child = cellFocusableChildren[i];\n\n if (child?.hasAttribute('data-advanced-table-child-focusable')) {\n child.setAttribute('tabindex', '0');\n }\n }\n\n element.setAttribute('tabindex', '-1');\n\n handleEnableFocusTrap();\n }\n }\n };\n\n element.addEventListener('keydown', this._keydownHandler);\n\n this._observer = new MutationObserver(() => {\n updateTabbableChildren(element, this._shouldTrapFocus);\n });\n\n this._observer.observe(element, {\n childList: true,\n subtree: true,\n });\n }\n}\n"],"names":["HdsAdvancedTableCellModifier","Modifier","_shouldTrapFocus","_didSetup","_element","undefined","_observer","_keydownHandler","constructor","owner","args","registerDestructor","disconnect","removeEventListener","modify","element","positional","named","shouldTrapFocus","setCellElement","#setupObserver","_positional","handleEnableFocusTrap","updateTabbableChildren","event","key","cellFocusableChildren","focusable","length","i","child","hasAttribute","setAttribute","addEventListener","MutationObserver","observe","childList","subtree"],"mappings":";;;;;AAAA;AACA;AACA;AACA;;AAqBe,MAAMA,4BAA4B,SAASC,QAAQ,CAAwC;AACxG;AACQC,EAAAA,gBAAgB,GAAG,KAAK;AACxBC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,QAAQ,GAA+BC,SAAS;AAChDC,EAAAA,SAAS,GAAiCD,SAAS;EACnDE,eAAe;AAEvBC,EAAAA,WAAWA,CACTC,KAAY,EACZC,IAAoD,EACpD;AACA,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAElBC,kBAAkB,CAAC,IAAI,EAAE,MAAM;AAC7B,MAAA,IAAI,CAACL,SAAS,EAAEM,UAAU,EAAE;MAC5B,IAAI,CAACR,QAAQ,EAAES,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACN,eAAe,CAAC;MACnE,IAAI,CAACH,QAAQ,GAAGC,SAAS;AAC3B,IAAA,CAAC,CAAC;AACJ,EAAA;AAEAS,EAAAA,MAAMA,CACJC,OAAyD,EACzDC,UAAiE,EACjEC,KAA6D,EACvD;AACN,IAAA,IAAI,CAACf,gBAAgB,GAAGe,KAAK,CAACC,eAAe;AAE7C,IAAA,IAAI,CAAC,IAAI,CAACf,SAAS,EAAE;MACnB,IAAI,CAAC,cAAc,CAACY,OAAO,EAAEC,UAAU,EAAEC,KAAK,CAAC;AAE/C,MAAA,IAAI,OAAOA,KAAK,CAACE,cAAc,KAAK,UAAU,EAAE;AAC9CF,QAAAA,KAAK,CAACE,cAAc,CAACJ,OAAO,CAAC;AAC/B,MAAA;MAEA,IAAI,CAACZ,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,QAAQ,GAAGW,OAAO;AACzB,IAAA;AACF,EAAA;AAEA,EAAA,cAAcK,CACZL,OAAyD,EACzDM,WAAkE,EAClEJ,KAA6D,EACvD;IACN,MAAM;AAAEK,MAAAA;AAAsB,KAAC,GAAGL,KAAK;IAEvCM,sBAAsB,CAACR,OAAO,CAAC;AAE/B,IAAA,IAAI,CAACR,eAAe,GAAIiB,KAAoB,IAAK;AAC/C,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,OAAO,EAAE;AACzB,QAAA,MAAMC,qBAAqB,GAAGC,SAAS,CAACZ,OAAO,CAAC;AAEhD,QAAA,IAAIW,qBAAqB,CAACE,MAAM,GAAG,CAAC,EAAE;AACpC,UAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,qBAAqB,CAACE,MAAM,EAAEC,CAAC,EAAE,EAAE;AACrD,YAAA,MAAMC,KAAK,GAAGJ,qBAAqB,CAACG,CAAC,CAAC;AAEtC,YAAA,IAAIC,KAAK,EAAEC,YAAY,CAAC,qCAAqC,CAAC,EAAE;AAC9DD,cAAAA,KAAK,CAACE,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AACrC,YAAA;AACF,UAAA;AAEAjB,UAAAA,OAAO,CAACiB,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AAEtCV,UAAAA,qBAAqB,EAAE;AACzB,QAAA;AACF,MAAA;IACF,CAAC;IAEDP,OAAO,CAACkB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC1B,eAAe,CAAC;AAEzD,IAAA,IAAI,CAACD,SAAS,GAAG,IAAI4B,gBAAgB,CAAC,MAAM;AAC1CX,MAAAA,sBAAsB,CAACR,OAAO,EAAE,IAAI,CAACb,gBAAgB,CAAC;AACxD,IAAA,CAAC,CAAC;AAEF,IAAA,IAAI,CAACI,SAAS,CAAC6B,OAAO,CAACpB,OAAO,EAAE;AAC9BqB,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAE;AACX,KAAC,CAAC;AACJ,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"hds-advanced-table-cell.js","sources":["../../src/modifiers/hds-advanced-table-cell.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport { updateTabbableChildren } from './hds-advanced-table-cell/dom-management.ts';\nimport { registerDestructor } from '@ember/destroyable';\nimport { focusable } from 'tabbable';\n\nimport type Owner from '@ember/owner';\nimport type { ArgsFor, PositionalArgs } from 'ember-modifier';\n\nexport interface HdsAdvancedTableCellModifierSignature {\n Args: {\n Named: {\n shouldTrapFocus: boolean;\n handleEnableFocusTrap: () => void;\n setCellElement?: (el: HTMLDivElement) => void;\n };\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTableCellModifier extends Modifier<HdsAdvancedTableCellModifierSignature> {\n // have a copy of shouldTrapFocus internally so the correct value is used when update tabbable children\n private _shouldTrapFocus = false;\n private _didSetup = false;\n private _element: HTMLDivElement | undefined = undefined;\n private _observer: MutationObserver | undefined = undefined;\n private _keydownHandler!: (event: KeyboardEvent) => void;\n\n constructor(\n owner: Owner,\n args: ArgsFor<HdsAdvancedTableCellModifierSignature>\n ) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this._observer?.disconnect();\n this._element?.removeEventListener('keydown', this._keydownHandler);\n this._element = undefined;\n });\n }\n\n modify(\n element: HdsAdvancedTableCellModifierSignature['Element'],\n positional: PositionalArgs<HdsAdvancedTableCellModifierSignature>,\n named: HdsAdvancedTableCellModifierSignature['Args']['Named']\n ): void {\n this._shouldTrapFocus = named.shouldTrapFocus;\n\n if (!this._didSetup) {\n this.#setupObserver(element, positional, named);\n\n if (typeof named.setCellElement === 'function') {\n named.setCellElement(element);\n }\n\n this._didSetup = true;\n this._element = element;\n }\n }\n\n #setupObserver(\n element: HdsAdvancedTableCellModifierSignature['Element'],\n _positional: PositionalArgs<HdsAdvancedTableCellModifierSignature>,\n named: HdsAdvancedTableCellModifierSignature['Args']['Named']\n ): void {\n const { handleEnableFocusTrap } = named;\n\n updateTabbableChildren(element);\n\n this._keydownHandler = (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n const cellFocusableChildren = focusable(element);\n\n if (cellFocusableChildren.length > 0) {\n for (let i = 0; i < cellFocusableChildren.length; i++) {\n const child = cellFocusableChildren[i];\n\n if (child?.hasAttribute('data-advanced-table-child-focusable')) {\n child.setAttribute('tabindex', '0');\n }\n }\n\n element.setAttribute('tabindex', '-1');\n\n handleEnableFocusTrap();\n }\n }\n };\n\n element.addEventListener('keydown', this._keydownHandler);\n\n this._observer = new MutationObserver(() => {\n updateTabbableChildren(element, this._shouldTrapFocus);\n });\n\n this._observer.observe(element, {\n childList: true,\n subtree: true,\n });\n }\n}\n"],"names":["HdsAdvancedTableCellModifier","Modifier","_shouldTrapFocus","_didSetup","_element","undefined","_observer","_keydownHandler","constructor","owner","args","registerDestructor","disconnect","removeEventListener","modify","element","positional","named","shouldTrapFocus","setCellElement","#setupObserver","_positional","handleEnableFocusTrap","updateTabbableChildren","event","key","cellFocusableChildren","focusable","length","i","child","hasAttribute","setAttribute","addEventListener","MutationObserver","observe","childList","subtree"],"mappings":";;;;;AAAA;AACA;AACA;AACA;;AAqBe,MAAMA,4BAA4B,SAASC,QAAQ,CAAwC;AACxG;AACQC,EAAAA,gBAAgB,GAAG,KAAK;AACxBC,EAAAA,SAAS,GAAG,KAAK;AACjBC,EAAAA,QAAQ,GAA+BC,SAAS;AAChDC,EAAAA,SAAS,GAAiCD,SAAS;EACnDE,eAAe;AAEvBC,EAAAA,WAAWA,CACTC,KAAY,EACZC,IAAoD,EACpD;AACA,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAElBC,kBAAkB,CAAC,IAAI,EAAE,MAAM;AAC7B,MAAA,IAAI,CAACL,SAAS,EAAEM,UAAU,EAAE;MAC5B,IAAI,CAACR,QAAQ,EAAES,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACN,eAAe,CAAC;MACnE,IAAI,CAACH,QAAQ,GAAGC,SAAS;AAC3B,IAAA,CAAC,CAAC;AACJ,EAAA;AAEAS,EAAAA,MAAMA,CACJC,OAAyD,EACzDC,UAAiE,EACjEC,KAA6D,EACvD;AACN,IAAA,IAAI,CAACf,gBAAgB,GAAGe,KAAK,CAACC,eAAe;AAE7C,IAAA,IAAI,CAAC,IAAI,CAACf,SAAS,EAAE;MACnB,IAAI,CAAC,cAAc,CAACY,OAAO,EAAEC,UAAU,EAAEC,KAAK,CAAC;AAE/C,MAAA,IAAI,OAAOA,KAAK,CAACE,cAAc,KAAK,UAAU,EAAE;AAC9CF,QAAAA,KAAK,CAACE,cAAc,CAACJ,OAAO,CAAC;AAC/B,MAAA;MAEA,IAAI,CAACZ,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,QAAQ,GAAGW,OAAO;AACzB,IAAA;AACF,EAAA;AAEA,EAAA,cAAcK,CACZL,OAAyD,EACzDM,WAAkE,EAClEJ,KAA6D,EACvD;IACN,MAAM;AAAEK,MAAAA;AAAsB,KAAC,GAAGL,KAAK;IAEvCM,sBAAsB,CAACR,OAAO,CAAC;AAE/B,IAAA,IAAI,CAACR,eAAe,GAAIiB,KAAoB,IAAK;AAC/C,MAAA,IAAIA,KAAK,CAACC,GAAG,KAAK,OAAO,EAAE;AACzB,QAAA,MAAMC,qBAAqB,GAAGC,SAAS,CAACZ,OAAO,CAAC;AAEhD,QAAA,IAAIW,qBAAqB,CAACE,MAAM,GAAG,CAAC,EAAE;AACpC,UAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,qBAAqB,CAACE,MAAM,EAAEC,CAAC,EAAE,EAAE;AACrD,YAAA,MAAMC,KAAK,GAAGJ,qBAAqB,CAACG,CAAC,CAAC;AAEtC,YAAA,IAAIC,KAAK,EAAEC,YAAY,CAAC,qCAAqC,CAAC,EAAE;AAC9DD,cAAAA,KAAK,CAACE,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AACrC,YAAA;AACF,UAAA;AAEAjB,UAAAA,OAAO,CAACiB,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AAEtCV,UAAAA,qBAAqB,EAAE;AACzB,QAAA;AACF,MAAA;IACF,CAAC;IAEDP,OAAO,CAACkB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC1B,eAAe,CAAC;AAEzD,IAAA,IAAI,CAACD,SAAS,GAAG,IAAI4B,gBAAgB,CAAC,MAAM;AAC1CX,MAAAA,sBAAsB,CAACR,OAAO,EAAE,IAAI,CAACb,gBAAgB,CAAC;AACxD,IAAA,CAAC,CAAC;AAEF,IAAA,IAAI,CAACI,SAAS,CAAC6B,OAAO,CAACpB,OAAO,EAAE;AAC9BqB,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAE;AACX,KAAC,CAAC;AACJ,EAAA;AACF;;;;"}
@@ -52,7 +52,9 @@ const getTextToCopyFromTargetElement = targetElement => {
52
52
  // Hide any screen reader only text from the innerText calculation
53
53
  const srOnlyTexts = targetElement.querySelectorAll('.sr-only');
54
54
  srOnlyTexts.forEach(el => {
55
- el.setAttribute('style', 'display: none;');
55
+ if (el instanceof HTMLElement) {
56
+ el.style.setProperty('display', 'none');
57
+ }
56
58
  });
57
59
 
58
60
  // simplest approach
@@ -60,7 +62,9 @@ const getTextToCopyFromTargetElement = targetElement => {
60
62
 
61
63
  // Restore visibility of screen reader only text
62
64
  srOnlyTexts.forEach(el => {
63
- el.removeAttribute('style');
65
+ if (el instanceof HTMLElement) {
66
+ el.style.removeProperty('display');
67
+ }
64
68
  });
65
69
 
66
70
  // approach based on text selection (left for backup just in case)
@@ -1 +1 @@
1
- {"version":3,"file":"hds-clipboard.js","sources":["../../src/modifiers/hds-clipboard.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { modifier } from 'ember-modifier';\nimport { assert, warn } from '@ember/debug';\n\ntype TextToCopy = string | number | bigint;\ntype TargetToCopy = HTMLElement | string;\n\nexport interface HdsClipboardModifierSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n text?: TextToCopy;\n target?: TargetToCopy;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSuccess?: (...args: any[]) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onError?: (...args: any[]) => void;\n };\n };\n}\n\nexport const getTextToCopy = (text: TextToCopy): string => {\n let textToCopy: string = '';\n\n if (typeof text === 'string') {\n textToCopy = text;\n } else if (\n // context: https://github.com/hashicorp/design-system/pull/1564\n typeof text === 'number' ||\n typeof text === 'bigint'\n ) {\n textToCopy = text.toString();\n } else {\n assert(\n `\\`hds-clipboard\\` modifier - \\`text\\` argument must be a string or number - provided: ${typeof text}`\n );\n }\n\n return textToCopy;\n};\n\nexport const getTargetElement = (\n target: string | Node\n): HTMLElement | undefined => {\n let targetElement: HTMLElement | null;\n\n if (typeof target === 'string') {\n targetElement = document.querySelector(target);\n\n if (!targetElement) {\n console.error(\n '`hds-clipboard` modifier - `target` selector provided does not point to an existing DOM node, check your selector string',\n targetElement\n );\n return;\n }\n } else if (target instanceof HTMLElement) {\n targetElement = target;\n } else {\n if (target instanceof NodeList) {\n assert(\n '`hds-clipboard` modifier - `target` argument must be a string or a DOM node - provided: a list of DOM nodes'\n );\n } else {\n assert(\n `\\`hds-clipboard\\` modifier - \\`target\\` argument must be a string or a DOM node - provided: ${typeof target}`\n );\n }\n }\n return targetElement;\n};\n\nexport const getTextToCopyFromTargetElement = (\n targetElement: TargetToCopy\n): string => {\n let textToCopy: string = '';\n\n if (targetElement instanceof HTMLElement) {\n if (\n targetElement instanceof HTMLInputElement || // targetElement.nodeName === 'INPUT' ||\n targetElement instanceof HTMLTextAreaElement || // targetElement.nodeName === 'TEXTAREA' ||\n targetElement instanceof HTMLSelectElement // targetElement.nodeName === 'SELECT'\n ) {\n textToCopy = targetElement.value;\n } else {\n // Hide any screen reader only text from the innerText calculation\n const srOnlyTexts = targetElement.querySelectorAll('.sr-only');\n srOnlyTexts.forEach((el: Element) => {\n el.setAttribute('style', 'display: none;');\n });\n\n // simplest approach\n textToCopy = targetElement.innerText;\n\n // Restore visibility of screen reader only text\n srOnlyTexts.forEach((el: Element) => {\n el.removeAttribute('style');\n });\n\n // approach based on text selection (left for backup just in case)\n // var selection = window.getSelection();\n // var range = document.createRange();\n // selection.removeAllRanges();\n // range.selectNodeContents(targetElement);\n // selection.addRange(range);\n // textToCopy = selection.toString();\n // selection.removeAllRanges();\n }\n }\n return textToCopy;\n};\n\nexport const writeTextToClipboard = async (\n textToCopy: string\n): Promise<boolean> => {\n // finally copy the text to the clipboard using the Clipboard API\n // https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API\n try {\n // notice: the \"clipboard-write\" permission is granted automatically to pages when they are in the active tab\n // https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write\n await navigator.clipboard.writeText(textToCopy);\n // DEBUG uncomment this for easy debugging\n // console.log('success', textToCopy);\n return true;\n } catch {\n // if it is not a secure context, use the polyfill\n // to test that this works in a non-secure context, access the port through your IP address (ie. XXX.XXX.X.XXX:4200/)\n if (!navigator.clipboard) {\n try {\n const clipboard = await import('clipboard-polyfill');\n await clipboard.writeText(textToCopy);\n return true;\n } catch (error) {\n warn(\n `copy action failed, unable to use clipboard-polyfill: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-clipboard.write-text-to-clipboard.catch-error',\n }\n );\n return false;\n }\n }\n\n return false;\n }\n};\n\nexport const copyToClipboard = async (\n text?: TextToCopy,\n target?: TargetToCopy\n): Promise<boolean> => {\n let textToCopy: string = '';\n\n if (text !== undefined) {\n textToCopy = getTextToCopy(text);\n } else if (target) {\n const targetElement = getTargetElement(target);\n if (targetElement) {\n textToCopy = getTextToCopyFromTargetElement(targetElement);\n }\n } else {\n assert(\n '`hds-clipboard` modifier - either a `text` or a `target` argument is required'\n );\n }\n const success = await writeTextToClipboard(textToCopy);\n return success;\n};\n\n// Notice: we use a function-based modifier here instead of a class-based one\n// because it's quite simple in its logic, and doesn't require injecting services\n// see: https://github.com/ember-modifier/ember-modifier#function-based-modifiers\n\nexport default modifier<HdsClipboardModifierSignature>(\n (element, _positional, named): (() => void) => {\n assert(\n '`hds-clipboard` modifier - the modifier must be applied to an element',\n element\n );\n\n const { text, target, onSuccess, onError } = named;\n\n const onClick = async (event: MouseEvent): Promise<void> => {\n const trigger = event.currentTarget;\n const success = await copyToClipboard(text, target);\n\n // fire the `onSuccess/onError` callbacks (if provided)\n if (success) {\n if (typeof onSuccess === 'function') {\n onSuccess({ trigger, text, target });\n }\n } else {\n if (typeof onError === 'function') {\n onError({ trigger, text, target });\n }\n }\n };\n\n // add the \"onClick\" event listener to the element\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n element.addEventListener('click', onClick);\n\n // this (teardown) function is run when the element is removed\n return (): void => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n element.removeEventListener('click', onClick);\n };\n }\n);\n"],"names":["getTextToCopy","text","textToCopy","toString","assert","getTargetElement","target","targetElement","document","querySelector","console","error","HTMLElement","NodeList","getTextToCopyFromTargetElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","value","srOnlyTexts","querySelectorAll","forEach","el","setAttribute","innerText","removeAttribute","writeTextToClipboard","navigator","clipboard","writeText","warn","JSON","stringify","id","copyToClipboard","undefined","success","modifier","element","_positional","named","onSuccess","onError","onClick","event","trigger","currentTarget","addEventListener","removeEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"hds-clipboard.js","sources":["../../src/modifiers/hds-clipboard.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { modifier } from 'ember-modifier';\nimport { assert, warn } from '@ember/debug';\n\ntype TextToCopy = string | number | bigint;\ntype TargetToCopy = HTMLElement | string;\n\nexport interface HdsClipboardModifierSignature {\n Element: HTMLElement;\n Args: {\n Named: {\n text?: TextToCopy;\n target?: TargetToCopy;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSuccess?: (...args: any[]) => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onError?: (...args: any[]) => void;\n };\n };\n}\n\nexport const getTextToCopy = (text: TextToCopy): string => {\n let textToCopy: string = '';\n\n if (typeof text === 'string') {\n textToCopy = text;\n } else if (\n // context: https://github.com/hashicorp/design-system/pull/1564\n typeof text === 'number' ||\n typeof text === 'bigint'\n ) {\n textToCopy = text.toString();\n } else {\n assert(\n `\\`hds-clipboard\\` modifier - \\`text\\` argument must be a string or number - provided: ${typeof text}`\n );\n }\n\n return textToCopy;\n};\n\nexport const getTargetElement = (\n target: string | Node\n): HTMLElement | undefined => {\n let targetElement: HTMLElement | null;\n\n if (typeof target === 'string') {\n targetElement = document.querySelector(target);\n\n if (!targetElement) {\n console.error(\n '`hds-clipboard` modifier - `target` selector provided does not point to an existing DOM node, check your selector string',\n targetElement\n );\n return;\n }\n } else if (target instanceof HTMLElement) {\n targetElement = target;\n } else {\n if (target instanceof NodeList) {\n assert(\n '`hds-clipboard` modifier - `target` argument must be a string or a DOM node - provided: a list of DOM nodes'\n );\n } else {\n assert(\n `\\`hds-clipboard\\` modifier - \\`target\\` argument must be a string or a DOM node - provided: ${typeof target}`\n );\n }\n }\n return targetElement;\n};\n\nexport const getTextToCopyFromTargetElement = (\n targetElement: TargetToCopy\n): string => {\n let textToCopy: string = '';\n\n if (targetElement instanceof HTMLElement) {\n if (\n targetElement instanceof HTMLInputElement || // targetElement.nodeName === 'INPUT' ||\n targetElement instanceof HTMLTextAreaElement || // targetElement.nodeName === 'TEXTAREA' ||\n targetElement instanceof HTMLSelectElement // targetElement.nodeName === 'SELECT'\n ) {\n textToCopy = targetElement.value;\n } else {\n // Hide any screen reader only text from the innerText calculation\n const srOnlyTexts = targetElement.querySelectorAll('.sr-only');\n srOnlyTexts.forEach((el: Element) => {\n if (el instanceof HTMLElement) {\n el.style.setProperty('display', 'none');\n }\n });\n\n // simplest approach\n textToCopy = targetElement.innerText;\n\n // Restore visibility of screen reader only text\n srOnlyTexts.forEach((el: Element) => {\n if (el instanceof HTMLElement) {\n el.style.removeProperty('display');\n }\n });\n\n // approach based on text selection (left for backup just in case)\n // var selection = window.getSelection();\n // var range = document.createRange();\n // selection.removeAllRanges();\n // range.selectNodeContents(targetElement);\n // selection.addRange(range);\n // textToCopy = selection.toString();\n // selection.removeAllRanges();\n }\n }\n return textToCopy;\n};\n\nexport const writeTextToClipboard = async (\n textToCopy: string\n): Promise<boolean> => {\n // finally copy the text to the clipboard using the Clipboard API\n // https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API\n try {\n // notice: the \"clipboard-write\" permission is granted automatically to pages when they are in the active tab\n // https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write\n await navigator.clipboard.writeText(textToCopy);\n // DEBUG uncomment this for easy debugging\n // console.log('success', textToCopy);\n return true;\n } catch {\n // if it is not a secure context, use the polyfill\n // to test that this works in a non-secure context, access the port through your IP address (ie. XXX.XXX.X.XXX:4200/)\n if (!navigator.clipboard) {\n try {\n const clipboard = await import('clipboard-polyfill');\n await clipboard.writeText(textToCopy);\n return true;\n } catch (error) {\n warn(\n `copy action failed, unable to use clipboard-polyfill: ${JSON.stringify(\n error\n )}`,\n {\n id: 'hds-clipboard.write-text-to-clipboard.catch-error',\n }\n );\n return false;\n }\n }\n\n return false;\n }\n};\n\nexport const copyToClipboard = async (\n text?: TextToCopy,\n target?: TargetToCopy\n): Promise<boolean> => {\n let textToCopy: string = '';\n\n if (text !== undefined) {\n textToCopy = getTextToCopy(text);\n } else if (target) {\n const targetElement = getTargetElement(target);\n if (targetElement) {\n textToCopy = getTextToCopyFromTargetElement(targetElement);\n }\n } else {\n assert(\n '`hds-clipboard` modifier - either a `text` or a `target` argument is required'\n );\n }\n const success = await writeTextToClipboard(textToCopy);\n return success;\n};\n\n// Notice: we use a function-based modifier here instead of a class-based one\n// because it's quite simple in its logic, and doesn't require injecting services\n// see: https://github.com/ember-modifier/ember-modifier#function-based-modifiers\n\nexport default modifier<HdsClipboardModifierSignature>(\n (element, _positional, named): (() => void) => {\n assert(\n '`hds-clipboard` modifier - the modifier must be applied to an element',\n element\n );\n\n const { text, target, onSuccess, onError } = named;\n\n const onClick = async (event: MouseEvent): Promise<void> => {\n const trigger = event.currentTarget;\n const success = await copyToClipboard(text, target);\n\n // fire the `onSuccess/onError` callbacks (if provided)\n if (success) {\n if (typeof onSuccess === 'function') {\n onSuccess({ trigger, text, target });\n }\n } else {\n if (typeof onError === 'function') {\n onError({ trigger, text, target });\n }\n }\n };\n\n // add the \"onClick\" event listener to the element\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n element.addEventListener('click', onClick);\n\n // this (teardown) function is run when the element is removed\n return (): void => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n element.removeEventListener('click', onClick);\n };\n }\n);\n"],"names":["getTextToCopy","text","textToCopy","toString","assert","getTargetElement","target","targetElement","document","querySelector","console","error","HTMLElement","NodeList","getTextToCopyFromTargetElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","value","srOnlyTexts","querySelectorAll","forEach","el","style","setProperty","innerText","removeProperty","writeTextToClipboard","navigator","clipboard","writeText","warn","JSON","stringify","id","copyToClipboard","undefined","success","modifier","element","_positional","named","onSuccess","onError","onClick","event","trigger","currentTarget","addEventListener","removeEventListener"],"mappings":";;;AAAA;AACA;AACA;AACA;;AAsBO,MAAMA,aAAa,GAAIC,IAAgB,IAAa;EACzD,IAAIC,UAAkB,GAAG,EAAE;AAE3B,EAAA,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;AAC5BC,IAAAA,UAAU,GAAGD,IAAI;AACnB,EAAA,CAAC,MAAM;AACL;EACA,OAAOA,IAAI,KAAK,QAAQ,IACxB,OAAOA,IAAI,KAAK,QAAQ,EACxB;AACAC,IAAAA,UAAU,GAAGD,IAAI,CAACE,QAAQ,EAAE;AAC9B,EAAA,CAAC,MAAM;AACLC,IAAAA,MAAM,CACJ,CAAA,sFAAA,EAAyF,OAAOH,IAAI,EACtG,CAAC;AACH,EAAA;AAEA,EAAA,OAAOC,UAAU;AACnB;AAEO,MAAMG,gBAAgB,GAC3BC,MAAqB,IACO;AAC5B,EAAA,IAAIC,aAAiC;AAErC,EAAA,IAAI,OAAOD,MAAM,KAAK,QAAQ,EAAE;AAC9BC,IAAAA,aAAa,GAAGC,QAAQ,CAACC,aAAa,CAACH,MAAM,CAAC;IAE9C,IAAI,CAACC,aAAa,EAAE;AAClBG,MAAAA,OAAO,CAACC,KAAK,CACX,0HAA0H,EAC1HJ,aACF,CAAC;AACD,MAAA;AACF,IAAA;AACF,EAAA,CAAC,MAAM,IAAID,MAAM,YAAYM,WAAW,EAAE;AACxCL,IAAAA,aAAa,GAAGD,MAAM;AACxB,EAAA,CAAC,MAAM;IACL,IAAIA,MAAM,YAAYO,QAAQ,EAAE;MAC9BT,MAAM,CACJ,6GACF,CAAC;AACH,IAAA,CAAC,MAAM;AACLA,MAAAA,MAAM,CACJ,CAAA,4FAAA,EAA+F,OAAOE,MAAM,EAC9G,CAAC;AACH,IAAA;AACF,EAAA;AACA,EAAA,OAAOC,aAAa;AACtB;AAEO,MAAMO,8BAA8B,GACzCP,aAA2B,IAChB;EACX,IAAIL,UAAkB,GAAG,EAAE;EAE3B,IAAIK,aAAa,YAAYK,WAAW,EAAE;IACxC,IACEL,aAAa,YAAYQ,gBAAgB;AAAI;AAC7CR,IAAAA,aAAa,YAAYS,mBAAmB;AAAI;IAChDT,aAAa,YAAYU,iBAAiB;MAC1C;MACAf,UAAU,GAAGK,aAAa,CAACW,KAAK;AAClC,IAAA,CAAC,MAAM;AACL;AACA,MAAA,MAAMC,WAAW,GAAGZ,aAAa,CAACa,gBAAgB,CAAC,UAAU,CAAC;AAC9DD,MAAAA,WAAW,CAACE,OAAO,CAAEC,EAAW,IAAK;QACnC,IAAIA,EAAE,YAAYV,WAAW,EAAE;UAC7BU,EAAE,CAACC,KAAK,CAACC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;AACzC,QAAA;AACF,MAAA,CAAC,CAAC;;AAEF;MACAtB,UAAU,GAAGK,aAAa,CAACkB,SAAS;;AAEpC;AACAN,MAAAA,WAAW,CAACE,OAAO,CAAEC,EAAW,IAAK;QACnC,IAAIA,EAAE,YAAYV,WAAW,EAAE;AAC7BU,UAAAA,EAAE,CAACC,KAAK,CAACG,cAAc,CAAC,SAAS,CAAC;AACpC,QAAA;AACF,MAAA,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,IAAA;AACF,EAAA;AACA,EAAA,OAAOxB,UAAU;AACnB;AAEO,MAAMyB,oBAAoB,GAAG,MAClCzB,UAAkB,IACG;AACrB;AACA;EACA,IAAI;AACF;AACA;AACA,IAAA,MAAM0B,SAAS,CAACC,SAAS,CAACC,SAAS,CAAC5B,UAAU,CAAC;AAC/C;AACA;AACA,IAAA,OAAO,IAAI;AACb,EAAA,CAAC,CAAC,MAAM;AACN;AACA;AACA,IAAA,IAAI,CAAC0B,SAAS,CAACC,SAAS,EAAE;MACxB,IAAI;AACF,QAAA,MAAMA,SAAS,GAAG,MAAM,OAAO,oBAAoB,CAAC;AACpD,QAAA,MAAMA,SAAS,CAACC,SAAS,CAAC5B,UAAU,CAAC;AACrC,QAAA,OAAO,IAAI;MACb,CAAC,CAAC,OAAOS,KAAK,EAAE;QACdoB,IAAI,CACF,yDAAyDC,IAAI,CAACC,SAAS,CACrEtB,KACF,CAAC,CAAA,CAAE,EACH;AACEuB,UAAAA,EAAE,EAAE;AACN,SACF,CAAC;AACD,QAAA,OAAO,KAAK;AACd,MAAA;AACF,IAAA;AAEA,IAAA,OAAO,KAAK;AACd,EAAA;AACF;AAEO,MAAMC,eAAe,GAAG,OAC7BlC,IAAiB,EACjBK,MAAqB,KACA;EACrB,IAAIJ,UAAkB,GAAG,EAAE;EAE3B,IAAID,IAAI,KAAKmC,SAAS,EAAE;AACtBlC,IAAAA,UAAU,GAAGF,aAAa,CAACC,IAAI,CAAC;EAClC,CAAC,MAAM,IAAIK,MAAM,EAAE;AACjB,IAAA,MAAMC,aAAa,GAAGF,gBAAgB,CAACC,MAAM,CAAC;AAC9C,IAAA,IAAIC,aAAa,EAAE;AACjBL,MAAAA,UAAU,GAAGY,8BAA8B,CAACP,aAAa,CAAC;AAC5D,IAAA;AACF,EAAA,CAAC,MAAM;IACLH,MAAM,CACJ,+EACF,CAAC;AACH,EAAA;AACA,EAAA,MAAMiC,OAAO,GAAG,MAAMV,oBAAoB,CAACzB,UAAU,CAAC;AACtD,EAAA,OAAOmC,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,mBAAeC,QAAQ,CACrB,CAACC,OAAO,EAAEC,WAAW,EAAEC,KAAK,KAAmB;AAC7CrC,EAAAA,MAAM,CACJ,uEAAuE,EACvEmC,OACF,CAAC;EAED,MAAM;IAAEtC,IAAI;IAAEK,MAAM;IAAEoC,SAAS;AAAEC,IAAAA;AAAQ,GAAC,GAAGF,KAAK;AAElD,EAAA,MAAMG,OAAO,GAAG,MAAOC,KAAiB,IAAoB;AAC1D,IAAA,MAAMC,OAAO,GAAGD,KAAK,CAACE,aAAa;IACnC,MAAMV,OAAO,GAAG,MAAMF,eAAe,CAAClC,IAAI,EAAEK,MAAM,CAAC;;AAEnD;AACA,IAAA,IAAI+B,OAAO,EAAE;AACX,MAAA,IAAI,OAAOK,SAAS,KAAK,UAAU,EAAE;AACnCA,QAAAA,SAAS,CAAC;UAAEI,OAAO;UAAE7C,IAAI;AAAEK,UAAAA;AAAO,SAAC,CAAC;AACtC,MAAA;AACF,IAAA,CAAC,MAAM;AACL,MAAA,IAAI,OAAOqC,OAAO,KAAK,UAAU,EAAE;AACjCA,QAAAA,OAAO,CAAC;UAAEG,OAAO;UAAE7C,IAAI;AAAEK,UAAAA;AAAO,SAAC,CAAC;AACpC,MAAA;AACF,IAAA;EACF,CAAC;;AAED;AACA;AACAiC,EAAAA,OAAO,CAACS,gBAAgB,CAAC,OAAO,EAAEJ,OAAO,CAAC;;AAE1C;AACA,EAAA,OAAO,MAAY;AACjB;AACAL,IAAAA,OAAO,CAACU,mBAAmB,CAAC,OAAO,EAAEL,OAAO,CAAC;EAC/C,CAAC;AACH,CACF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"hds-code-editor.js","sources":["../../src/modifiers/hds-code-editor.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport { assert, warn } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { task } from 'ember-concurrency';\nimport { macroCondition, isTesting } from '@embroider/macros';\nimport { Compartment } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { guidFor } from '@ember/object/internals';\nimport { isEmpty } from '@ember/utils';\nimport { service } from '@ember/service';\n\n// hds-dark theme\nimport hdsDarkTheme from './hds-code-editor/themes/hds-dark-theme.ts';\nimport hdsDarkHighlightStyle from './hds-code-editor/highlight-styles/hds-dark-highlight-style.ts';\n\nimport type HdsIntlService from '../services/hds-intl.ts';\nimport type { HdsCodeEditorLanguages } from './hds-code-editor/types.ts';\nimport type { ArgsFor, PositionalArgs, NamedArgs } from 'ember-modifier';\nimport type {\n StreamLanguage as StreamLanguageType,\n StreamParser as StreamParserType,\n} from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport type {\n EditorView as EditorViewType,\n KeyBinding,\n ViewUpdate,\n} from '@codemirror/view';\nimport type { Diagnostic as DiagnosticType } from '@codemirror/lint';\nimport type Owner from '@ember/owner';\n\ntype HTMLElementWithEditor = HTMLElement & { editor: EditorViewType };\n\ntype HdsCodeEditorBlurHandler = (\n editor: EditorViewType,\n event: FocusEvent\n) => void;\n\ninterface HdsCodeEditorExtraKeys {\n [key: string]: () => boolean;\n}\n\nexport interface HdsCodeEditorSignature {\n Args: {\n Named: {\n ariaDescribedBy?: string;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n cspNonce?: string;\n extraKeys?: HdsCodeEditorExtraKeys;\n customExtensions?: Extension[];\n hasLineWrapping?: boolean;\n isLintingEnabled?: boolean;\n language?: HdsCodeEditorLanguages;\n value?: string;\n onInput?: (newValue: string, editor: EditorViewType) => void;\n onBlur?: HdsCodeEditorBlurHandler;\n onLint?: (\n diagnostics: DiagnosticType[],\n newValue: string,\n editor: EditorViewType\n ) => void;\n onSetup?: (editor: EditorViewType) => unknown;\n };\n };\n}\n\nasync function defineStreamLanguage(streamParser: StreamParserType<unknown>) {\n const { StreamLanguage } = await import('@codemirror/language');\n\n return StreamLanguage.define(streamParser);\n}\n\nexport function getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n if (typeof error === 'object' && error !== null) {\n return JSON.stringify(error);\n }\n\n return String(error);\n}\n\nexport function getCSPNonceFromMeta(): string | undefined {\n const meta = document.querySelector(\n 'meta[http-equiv=\"Content-Security-Policy\"]'\n );\n\n if (meta === null) {\n return undefined;\n }\n\n const content = meta.getAttribute('content');\n\n if (content === null) {\n return undefined;\n }\n\n // searches for either \"style-src\" or \"script-src\" followed by anything until a token like 'nonce-<value>'\n const match = content.match(/(?:style-src|script-src)[^;]*'nonce-([^']+)'/);\n\n return match ? match[1] : undefined;\n}\n\nconst LOADER_HEIGHT = '164px';\n\nconst LANGUAGES: Record<\n HdsCodeEditorLanguages,\n {\n load: () => Promise<Extension | StreamLanguageType<unknown>>;\n loadLinter?: (\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint']\n ) => Promise<Extension>;\n }\n> = {\n rego: {\n load: async () => {\n const { rego } = await import('./hds-code-editor/languages/rego.ts');\n return defineStreamLanguage(rego);\n },\n },\n ruby: {\n load: async () => {\n const { ruby } = await import('@codemirror/legacy-modes/mode/ruby');\n return defineStreamLanguage(ruby);\n },\n },\n sentinel: {\n load: async () => {\n const { sentinel } = await import(\n './hds-code-editor/languages/sentinel.ts'\n );\n return defineStreamLanguage(sentinel);\n },\n },\n shell: {\n load: async () => {\n const { shell } = await import('@codemirror/legacy-modes/mode/shell');\n return defineStreamLanguage(shell);\n },\n },\n go: {\n load: async () => (await import('@codemirror/lang-go')).go(),\n },\n hcl: {\n load: async () => (await import('codemirror-lang-hcl')).hcl(),\n },\n javascript: {\n load: async () =>\n (await import('@codemirror/lang-javascript')).javascript(),\n },\n json: {\n load: async () => (await import('@codemirror/lang-json')).json(),\n loadLinter: async (onLint) => {\n const linter = await import('./hds-code-editor/linters/json-linter.ts');\n\n return linter.default(onLint);\n },\n },\n markdown: {\n load: async () => (await import('@codemirror/lang-markdown')).markdown(),\n },\n sql: {\n load: async () => (await import('@codemirror/lang-sql')).sql(),\n },\n yaml: {\n load: async () => (await import('@codemirror/lang-yaml')).yaml(),\n },\n} as const;\n\nexport default class HdsCodeEditorModifier extends Modifier<HdsCodeEditorSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n editor!: EditorViewType;\n element!: HTMLElementWithEditor;\n\n onBlur: HdsCodeEditorSignature['Args']['Named']['onBlur'];\n onInput: HdsCodeEditorSignature['Args']['Named']['onInput'];\n\n blurHandler!: (event: FocusEvent) => void;\n intersectionObserver!: IntersectionObserver;\n mutationObserver!: MutationObserver;\n\n lineWrappingCompartment = new Compartment();\n\n constructor(owner: Owner, args: ArgsFor<HdsCodeEditorSignature>) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this.intersectionObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n if (this.onBlur !== undefined) {\n this.element.removeEventListener('blur', this.blurHandler);\n }\n });\n }\n\n modify(\n element: HTMLElementWithEditor,\n positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ): void {\n const { hasLineWrapping = false } = named;\n\n // if the editor already exists, update the line wrapping\n if (this.editor) {\n this.editor.dispatch({\n effects: this.lineWrappingCompartment.reconfigure(\n hasLineWrapping ? EditorView.lineWrapping : []\n ),\n });\n }\n // if the editor does not exist, setup the editor\n else {\n // the intersection observer makes loading unreliable in tests\n if (macroCondition(isTesting())) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n } else {\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting && this.editor === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n }\n });\n },\n {\n rootMargin: LOADER_HEIGHT,\n }\n );\n\n this.intersectionObserver.observe(element);\n }\n }\n }\n\n private _setupEditorBlurHandler(\n element: HTMLElementWithEditor,\n onBlur: HdsCodeEditorBlurHandler\n ) {\n const inputElement = element.querySelector('.cm-content');\n\n if (inputElement === null) {\n return;\n }\n\n this.blurHandler = (event: FocusEvent) => onBlur(this.editor, event);\n\n (inputElement as HTMLElement).addEventListener('blur', this.blurHandler);\n }\n\n private _setupEditorAriaLabel(\n editor: EditorViewType,\n {\n ariaLabel,\n ariaLabelledBy,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaLabel' | 'ariaLabelledBy'\n >\n ) {\n assert(\n '`hds-code-editor` modifier - Either `ariaLabel` or `ariaLabelledBy` must be provided',\n ariaLabel !== undefined || ariaLabelledBy !== undefined\n );\n\n if (ariaLabel !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-label', ariaLabel);\n } else if (ariaLabelledBy !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-labelledby', ariaLabelledBy);\n }\n }\n\n private _setupEditorAriaDescribedBy(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n lintingDescriptionElement,\n }: {\n ariaDescribedBy?: string;\n lintingDescriptionElement?: HTMLParagraphElement;\n }\n ) {\n if (\n ariaDescribedBy === undefined &&\n lintingDescriptionElement === undefined\n ) {\n return;\n }\n\n const ariaDescribedByArray = [];\n\n if (ariaDescribedBy !== undefined) {\n ariaDescribedByArray.push(ariaDescribedBy);\n }\n\n if (lintingDescriptionElement !== undefined) {\n ariaDescribedByArray.push(lintingDescriptionElement.id);\n }\n\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-describedby', ariaDescribedByArray.join(' '));\n }\n\n private _createLintingDescriptionElement(): HTMLParagraphElement {\n const element = document.createElement('p');\n\n element.id = `lint-panel-instructions-${this.element.id}`;\n element.classList.add('sr-only');\n element.textContent = this.hdsIntl.t(\n 'hds.modifiers.hds-code-editor.lint-panel-description',\n {\n default:\n 'Press `Ctrl-Shift-m` (`Cmd-Shift-m` on macOS) while focus is on the textbox to open the linting panel',\n }\n );\n\n this.element.insertAdjacentElement('beforebegin', element);\n\n return element;\n }\n\n private _setupEditorAriaAttributes(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaDescribedBy' | 'ariaLabel' | 'ariaLabelledBy'\n > & { lintingDescriptionElement?: HTMLParagraphElement }\n ) {\n this._setupEditorAriaLabel(editor, { ariaLabel, ariaLabelledBy });\n this._setupEditorAriaDescribedBy(editor, {\n ariaDescribedBy,\n lintingDescriptionElement,\n });\n }\n\n private _loadLanguageExtensionsTask = task(\n { drop: true },\n async ({\n language,\n isLintingEnabled,\n onLint,\n }: {\n language?: HdsCodeEditorLanguages;\n isLintingEnabled?: boolean;\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint'];\n }) => {\n if (language === undefined) {\n return;\n }\n\n try {\n const validLanguageKeys = Object.keys(LANGUAGES);\n\n assert(\n `\\`hds-code-editor\\` modifier - \\`language\\` must be one of the following: ${validLanguageKeys.join(\n ', '\n )}; received: ${language}`,\n validLanguageKeys.includes(language)\n );\n\n let extensionPromises = [LANGUAGES[language].load()];\n\n if (isLintingEnabled && LANGUAGES[language].loadLinter) {\n extensionPromises = [\n ...extensionPromises,\n LANGUAGES[language].loadLinter(onLint),\n ];\n }\n\n return Promise.all(extensionPromises);\n } catch (error) {\n warn(\n `\\`hds-code-editor\\` modifier - Failed to dynamically import the CodeMirror language module for '${language}'. Error: ${getErrorMessage(error)}`,\n {\n id: 'hds-code-editor.load-language-task.import-failed',\n }\n );\n }\n }\n );\n\n private _buildExtensionsTask = task(\n { drop: true },\n async ({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping,\n isLintingEnabled,\n customExtensions,\n onLint,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n | 'cspNonce'\n | 'extraKeys'\n | 'language'\n | 'hasLineWrapping'\n | 'isLintingEnabled'\n | 'customExtensions'\n | 'onLint'\n >) => {\n const [\n {\n keymap,\n lineNumbers,\n highlightActiveLineGutter,\n highlightSpecialChars,\n highlightActiveLine,\n },\n { defaultKeymap, history, historyKeymap },\n { bracketMatching, syntaxHighlighting },\n ] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/commands'),\n import('@codemirror/language'),\n ]);\n\n const languageExtensions = await this._loadLanguageExtensionsTask.perform(\n {\n language,\n isLintingEnabled,\n onLint,\n }\n );\n\n const handleUpdateExtension = EditorView.updateListener.of(\n (update: ViewUpdate) => {\n // toggle a class if the update has/does not have a selection\n if (update.selectionSet) {\n update.view.dom.classList.toggle(\n 'cm-hasSelection',\n !update.state.selection.main.empty\n );\n }\n\n // call the onInput callback if the document has changed\n if (!update.docChanged || this.onInput === undefined) {\n return;\n }\n this.onInput(update.state.doc.toString(), update.view);\n }\n );\n\n const lineWrappingExtension = this.lineWrappingCompartment.of(\n hasLineWrapping ? EditorView.lineWrapping : []\n );\n\n let extensions: Extension[] = [\n lineWrappingExtension,\n bracketMatching(),\n highlightActiveLine(),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n keymap.of([...defaultKeymap, ...historyKeymap]),\n // custom extensions\n handleUpdateExtension,\n // user-provided extensions\n ...(customExtensions ?? []),\n // hds dark theme\n hdsDarkTheme,\n syntaxHighlighting(hdsDarkHighlightStyle),\n ];\n\n if (extraKeys !== undefined) {\n const customKeyMap = Object.entries(extraKeys).map(([key, value]) => ({\n key: key,\n run: value,\n }));\n\n extensions = [keymap.of(customKeyMap as KeyBinding[]), ...extensions];\n }\n\n if (languageExtensions !== undefined) {\n extensions = [...extensions, ...languageExtensions];\n }\n\n // add nonce to the editor view if it exists\n const nonce = cspNonce ?? getCSPNonceFromMeta();\n\n if (nonce !== undefined) {\n extensions = [...extensions, EditorView.cspNonce.of(nonce)];\n }\n\n // ensure we add lineNumber last in the stack to create the right gutter order for linting\n extensions = [...extensions, lineNumbers()];\n\n return extensions;\n }\n );\n\n private _createEditorTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n {\n cspNonce,\n language,\n extraKeys,\n value,\n hasLineWrapping,\n isLintingEnabled,\n customExtensions,\n onLint,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n | 'cspNonce'\n | 'language'\n | 'extraKeys'\n | 'value'\n | 'hasLineWrapping'\n | 'isLintingEnabled'\n | 'customExtensions'\n | 'onLint'\n >\n ) => {\n try {\n const { EditorState } = await import('@codemirror/state');\n\n const extensions = await this._buildExtensionsTask.perform({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping: hasLineWrapping ?? false,\n isLintingEnabled,\n customExtensions,\n onLint,\n });\n\n const state = EditorState.create({\n doc: value,\n extensions,\n });\n\n const editor = new EditorView({\n state,\n parent: element,\n });\n\n return editor;\n } catch (error) {\n console.error(\n `\\`hds-code-editor\\` modifier - Failed to setup the CodeMirror editor. Error: ${getErrorMessage(error)}`\n );\n }\n }\n );\n\n private _setupEditorMutationObserver() {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n const removedNodeContainsLintPanel =\n node.querySelector('.cm-panel-lint') !== null;\n\n if (removedNodeContainsLintPanel) {\n this.editor.focus();\n }\n });\n });\n });\n\n this.mutationObserver.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n private _setupTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n _positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ) => {\n const {\n onBlur,\n onInput,\n onLint,\n onSetup,\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n cspNonce,\n extraKeys,\n hasLineWrapping,\n isLintingEnabled,\n language,\n value,\n customExtensions,\n } = named;\n\n this.onInput = onInput;\n this.onBlur = onBlur;\n\n this.element = element;\n this.element.id = isEmpty(this.element.id)\n ? guidFor(this)\n : this.element.id;\n\n const editor = await this._createEditorTask.perform(element, {\n onLint,\n cspNonce,\n hasLineWrapping,\n isLintingEnabled,\n extraKeys,\n language,\n value,\n customExtensions,\n });\n\n if (editor === undefined) {\n return;\n }\n\n this.editor = editor;\n element.editor = editor;\n\n if (onBlur !== undefined) {\n this._setupEditorBlurHandler(element, onBlur);\n }\n\n let lintingDescriptionElement: HTMLParagraphElement | null = null;\n\n if (\n isLintingEnabled &&\n language !== undefined &&\n LANGUAGES[language]?.loadLinter !== undefined\n ) {\n // insert a new dom element above the editor\n lintingDescriptionElement = this._createLintingDescriptionElement();\n\n this._setupEditorMutationObserver();\n }\n\n this._setupEditorAriaAttributes(editor, {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement: lintingDescriptionElement ?? undefined,\n });\n\n onSetup?.(this.editor);\n }\n );\n}\n"],"names":["defineStreamLanguage","streamParser","StreamLanguage","define","getErrorMessage","error","Error","message","JSON","stringify","String","getCSPNonceFromMeta","meta","document","querySelector","undefined","content","getAttribute","match","LOADER_HEIGHT","LANGUAGES","rego","load","ruby","sentinel","shell","go","hcl","javascript","json","loadLinter","onLint","linter","default","markdown","sql","yaml","HdsCodeEditorModifier","Modifier","g","prototype","service","i","editor","element","onBlur","onInput","blurHandler","intersectionObserver","mutationObserver","lineWrappingCompartment","Compartment","constructor","owner","args","registerDestructor","disconnect","removeEventListener","modify","positional","named","hasLineWrapping","dispatch","effects","reconfigure","EditorView","lineWrapping","macroCondition","isTesting","_setupTask","perform","IntersectionObserver","entries","forEach","entry","isIntersecting","rootMargin","observe","_setupEditorBlurHandler","inputElement","event","addEventListener","_setupEditorAriaLabel","ariaLabel","ariaLabelledBy","assert","dom","setAttribute","_setupEditorAriaDescribedBy","ariaDescribedBy","lintingDescriptionElement","ariaDescribedByArray","push","id","join","_createLintingDescriptionElement","createElement","classList","add","textContent","hdsIntl","t","insertAdjacentElement","_setupEditorAriaAttributes","_loadLanguageExtensionsTask","_buildTask","context","generator","language","isLintingEnabled","validLanguageKeys","Object","keys","includes","extensionPromises","Promise","all","warn","drop","_buildExtensionsTask","cspNonce","extraKeys","customExtensions","keymap","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","highlightActiveLine","defaultKeymap","history","historyKeymap","bracketMatching","syntaxHighlighting","languageExtensions","handleUpdateExtension","updateListener","of","update","selectionSet","view","toggle","state","selection","main","empty","docChanged","doc","toString","lineWrappingExtension","extensions","hdsDarkTheme","hdsDarkHighlightStyle","customKeyMap","map","key","value","run","nonce","_createEditorTask","EditorState","create","parent","console","_setupEditorMutationObserver","MutationObserver","mutations","mutation","removedNodes","node","HTMLElement","removedNodeContainsLintPanel","focus","childList","subtree","_positional","onSetup","isEmpty","guidFor"],"mappings":"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"}
1
+ {"version":3,"file":"hds-code-editor.js","sources":["../../src/modifiers/hds-code-editor.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport { assert, warn } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { task } from 'ember-concurrency';\nimport { macroCondition, isTesting } from '@embroider/macros';\nimport { Compartment } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { guidFor } from '@ember/object/internals';\nimport { isEmpty } from '@ember/utils';\nimport { service } from '@ember/service';\n\n// hds-dark theme\nimport hdsDarkTheme from './hds-code-editor/themes/hds-dark-theme.ts';\nimport hdsDarkHighlightStyle from './hds-code-editor/highlight-styles/hds-dark-highlight-style.ts';\n\nimport type HdsIntlService from '../services/hds-intl.ts';\nimport type { HdsCodeEditorLanguages } from './hds-code-editor/types.ts';\nimport type { ArgsFor, PositionalArgs, NamedArgs } from 'ember-modifier';\nimport type {\n StreamLanguage as StreamLanguageType,\n StreamParser as StreamParserType,\n} from '@codemirror/language';\nimport type { Extension } from '@codemirror/state';\nimport type {\n EditorView as EditorViewType,\n KeyBinding,\n ViewUpdate,\n} from '@codemirror/view';\nimport type { Diagnostic as DiagnosticType } from '@codemirror/lint';\nimport type Owner from '@ember/owner';\n\ntype HTMLElementWithEditor = HTMLElement & { editor: EditorViewType };\n\ntype HdsCodeEditorBlurHandler = (\n editor: EditorViewType,\n event: FocusEvent\n) => void;\n\ninterface HdsCodeEditorExtraKeys {\n [key: string]: () => boolean;\n}\n\nexport interface HdsCodeEditorSignature {\n Args: {\n Named: {\n ariaDescribedBy?: string;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n cspNonce?: string;\n extraKeys?: HdsCodeEditorExtraKeys;\n customExtensions?: Extension[];\n hasLineWrapping?: boolean;\n isLintingEnabled?: boolean;\n language?: HdsCodeEditorLanguages;\n value?: string;\n onInput?: (newValue: string, editor: EditorViewType) => void;\n onBlur?: HdsCodeEditorBlurHandler;\n onLint?: (\n diagnostics: DiagnosticType[],\n newValue: string,\n editor: EditorViewType\n ) => void;\n onSetup?: (editor: EditorViewType) => unknown;\n };\n };\n}\n\nasync function defineStreamLanguage(streamParser: StreamParserType<unknown>) {\n const { StreamLanguage } = await import('@codemirror/language');\n\n return StreamLanguage.define(streamParser);\n}\n\nexport function getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n if (typeof error === 'object' && error !== null) {\n return JSON.stringify(error);\n }\n\n return String(error);\n}\n\nexport function getCSPNonceFromMeta(): string | undefined {\n const meta = document.querySelector(\n 'meta[http-equiv=\"Content-Security-Policy\"]'\n );\n\n if (meta === null) {\n return undefined;\n }\n\n const content = meta.getAttribute('content');\n\n if (content === null) {\n return undefined;\n }\n\n // searches for either \"style-src\" or \"script-src\" followed by anything until a token like 'nonce-<value>'\n const match = content.match(/(?:style-src|script-src)[^;]*'nonce-([^']+)'/);\n\n return match ? match[1] : undefined;\n}\n\nconst LOADER_HEIGHT = '164px';\n\nconst LANGUAGES: Record<\n HdsCodeEditorLanguages,\n {\n load: () => Promise<Extension | StreamLanguageType<unknown>>;\n loadLinter?: (\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint']\n ) => Promise<Extension>;\n }\n> = {\n rego: {\n load: async () => {\n const { rego } = await import('./hds-code-editor/languages/rego.ts');\n return defineStreamLanguage(rego);\n },\n },\n ruby: {\n load: async () => {\n const { ruby } = await import('@codemirror/legacy-modes/mode/ruby');\n return defineStreamLanguage(ruby);\n },\n },\n sentinel: {\n load: async () => {\n const { sentinel } = await import(\n './hds-code-editor/languages/sentinel.ts'\n );\n return defineStreamLanguage(sentinel);\n },\n },\n shell: {\n load: async () => {\n const { shell } = await import('@codemirror/legacy-modes/mode/shell');\n return defineStreamLanguage(shell);\n },\n },\n go: {\n load: async () => (await import('@codemirror/lang-go')).go(),\n },\n hcl: {\n load: async () => (await import('codemirror-lang-hcl')).hcl(),\n },\n javascript: {\n load: async () =>\n (await import('@codemirror/lang-javascript')).javascript(),\n },\n json: {\n load: async () => (await import('@codemirror/lang-json')).json(),\n loadLinter: async (onLint) => {\n const linter = await import('./hds-code-editor/linters/json-linter.ts');\n\n return linter.default(onLint);\n },\n },\n markdown: {\n load: async () => (await import('@codemirror/lang-markdown')).markdown(),\n },\n sql: {\n load: async () => (await import('@codemirror/lang-sql')).sql(),\n },\n yaml: {\n load: async () => (await import('@codemirror/lang-yaml')).yaml(),\n },\n} as const;\n\nexport default class HdsCodeEditorModifier extends Modifier<HdsCodeEditorSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n editor!: EditorViewType;\n element!: HTMLElementWithEditor;\n\n onBlur: HdsCodeEditorSignature['Args']['Named']['onBlur'];\n onInput: HdsCodeEditorSignature['Args']['Named']['onInput'];\n\n blurHandler!: (event: FocusEvent) => void;\n intersectionObserver!: IntersectionObserver;\n mutationObserver!: MutationObserver;\n\n lineWrappingCompartment = new Compartment();\n\n constructor(owner: Owner, args: ArgsFor<HdsCodeEditorSignature>) {\n super(owner, args);\n\n registerDestructor(this, () => {\n this.intersectionObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n if (this.onBlur !== undefined) {\n this.element.removeEventListener('blur', this.blurHandler);\n }\n });\n }\n\n modify(\n element: HTMLElementWithEditor,\n positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ): void {\n const { hasLineWrapping = false } = named;\n\n // if the editor already exists, update the line wrapping\n if (this.editor) {\n this.editor.dispatch({\n effects: this.lineWrappingCompartment.reconfigure(\n hasLineWrapping ? EditorView.lineWrapping : []\n ),\n });\n }\n // if the editor does not exist, setup the editor\n else {\n // the intersection observer makes loading unreliable in tests\n if (macroCondition(isTesting())) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n } else {\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting && this.editor === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._setupTask.perform(element, positional, named);\n }\n });\n },\n {\n rootMargin: LOADER_HEIGHT,\n }\n );\n\n this.intersectionObserver.observe(element);\n }\n }\n }\n\n private _setupEditorBlurHandler(\n element: HTMLElementWithEditor,\n onBlur: HdsCodeEditorBlurHandler\n ) {\n const inputElement = element.querySelector('.cm-content');\n\n if (inputElement === null) {\n return;\n }\n\n this.blurHandler = (event: FocusEvent) => onBlur(this.editor, event);\n\n (inputElement as HTMLElement).addEventListener('blur', this.blurHandler);\n }\n\n private _setupEditorAriaLabel(\n editor: EditorViewType,\n {\n ariaLabel,\n ariaLabelledBy,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaLabel' | 'ariaLabelledBy'\n >\n ) {\n assert(\n '`hds-code-editor` modifier - Either `ariaLabel` or `ariaLabelledBy` must be provided',\n ariaLabel !== undefined || ariaLabelledBy !== undefined\n );\n\n if (ariaLabel !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-label', ariaLabel);\n } else if (ariaLabelledBy !== undefined) {\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-labelledby', ariaLabelledBy);\n }\n }\n\n private _setupEditorAriaDescribedBy(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n lintingDescriptionElement,\n }: {\n ariaDescribedBy?: string;\n lintingDescriptionElement?: HTMLParagraphElement;\n }\n ) {\n if (\n ariaDescribedBy === undefined &&\n lintingDescriptionElement === undefined\n ) {\n return;\n }\n\n const ariaDescribedByArray = [];\n\n if (ariaDescribedBy !== undefined) {\n ariaDescribedByArray.push(ariaDescribedBy);\n }\n\n if (lintingDescriptionElement !== undefined) {\n ariaDescribedByArray.push(lintingDescriptionElement.id);\n }\n\n editor.dom\n .querySelector('[role=\"textbox\"]')\n ?.setAttribute('aria-describedby', ariaDescribedByArray.join(' '));\n }\n\n private _createLintingDescriptionElement(): HTMLParagraphElement {\n const element = document.createElement('p');\n\n element.id = `lint-panel-instructions-${this.element.id}`;\n element.classList.add('sr-only');\n element.textContent = this.hdsIntl.t(\n 'hds.modifiers.hds-code-editor.lint-panel-description',\n {\n default:\n 'Press `Ctrl-Shift-m` (`Cmd-Shift-m` on macOS) while focus is on the textbox to open the linting panel',\n }\n );\n\n this.element.insertAdjacentElement('beforebegin', element);\n\n return element;\n }\n\n private _setupEditorAriaAttributes(\n editor: EditorViewType,\n {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n 'ariaDescribedBy' | 'ariaLabel' | 'ariaLabelledBy'\n > & { lintingDescriptionElement?: HTMLParagraphElement }\n ) {\n this._setupEditorAriaLabel(editor, { ariaLabel, ariaLabelledBy });\n this._setupEditorAriaDescribedBy(editor, {\n ariaDescribedBy,\n lintingDescriptionElement,\n });\n }\n\n private _loadLanguageExtensionsTask = task(\n { drop: true },\n async ({\n language,\n isLintingEnabled,\n onLint,\n }: {\n language?: HdsCodeEditorLanguages;\n isLintingEnabled?: boolean;\n onLint?: HdsCodeEditorSignature['Args']['Named']['onLint'];\n }) => {\n if (language === undefined) {\n return;\n }\n\n try {\n const validLanguageKeys = Object.keys(LANGUAGES);\n\n assert(\n `\\`hds-code-editor\\` modifier - \\`language\\` must be one of the following: ${validLanguageKeys.join(\n ', '\n )}; received: ${language}`,\n validLanguageKeys.includes(language)\n );\n\n let extensionPromises = [LANGUAGES[language].load()];\n\n if (isLintingEnabled && LANGUAGES[language].loadLinter) {\n extensionPromises = [\n ...extensionPromises,\n LANGUAGES[language].loadLinter(onLint),\n ];\n }\n\n return Promise.all(extensionPromises);\n } catch (error) {\n warn(\n `\\`hds-code-editor\\` modifier - Failed to dynamically import the CodeMirror language module for '${language}'. Error: ${getErrorMessage(error)}`,\n {\n id: 'hds-code-editor.load-language-task.import-failed',\n }\n );\n }\n }\n );\n\n private _buildExtensionsTask = task(\n { drop: true },\n async ({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping,\n isLintingEnabled,\n customExtensions,\n onLint,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n | 'cspNonce'\n | 'extraKeys'\n | 'language'\n | 'hasLineWrapping'\n | 'isLintingEnabled'\n | 'customExtensions'\n | 'onLint'\n >) => {\n const [\n {\n keymap,\n lineNumbers,\n highlightActiveLineGutter,\n highlightSpecialChars,\n highlightActiveLine,\n },\n { defaultKeymap, history, historyKeymap },\n { bracketMatching, syntaxHighlighting },\n ] = await Promise.all([\n import('@codemirror/view'),\n import('@codemirror/commands'),\n import('@codemirror/language'),\n ]);\n\n const languageExtensions = await this._loadLanguageExtensionsTask.perform(\n {\n language,\n isLintingEnabled,\n onLint,\n }\n );\n\n const handleUpdateExtension = EditorView.updateListener.of(\n (update: ViewUpdate) => {\n // toggle a class if the update has/does not have a selection\n if (update.selectionSet) {\n update.view.dom.classList.toggle(\n 'cm-hasSelection',\n !update.state.selection.main.empty\n );\n }\n\n // call the onInput callback if the document has changed\n if (!update.docChanged || this.onInput === undefined) {\n return;\n }\n this.onInput(update.state.doc.toString(), update.view);\n }\n );\n\n const lineWrappingExtension = this.lineWrappingCompartment.of(\n hasLineWrapping ? EditorView.lineWrapping : []\n );\n\n let extensions: Extension[] = [\n lineWrappingExtension,\n bracketMatching(),\n highlightActiveLine(),\n highlightActiveLineGutter(),\n highlightSpecialChars(),\n history(),\n keymap.of([...defaultKeymap, ...historyKeymap]),\n // custom extensions\n handleUpdateExtension,\n // user-provided extensions\n ...(customExtensions ?? []),\n // hds dark theme\n hdsDarkTheme,\n syntaxHighlighting(hdsDarkHighlightStyle),\n ];\n\n if (extraKeys !== undefined) {\n const customKeyMap = Object.entries(extraKeys).map(([key, value]) => ({\n key: key,\n run: value,\n }));\n\n extensions = [keymap.of(customKeyMap as KeyBinding[]), ...extensions];\n }\n\n if (languageExtensions !== undefined) {\n extensions = [...extensions, ...languageExtensions];\n }\n\n // add nonce to the editor view if it exists\n const nonce = cspNonce ?? getCSPNonceFromMeta();\n\n if (nonce !== undefined) {\n extensions = [...extensions, EditorView.cspNonce.of(nonce)];\n }\n\n // ensure we add lineNumber last in the stack to create the right gutter order for linting\n extensions = [...extensions, lineNumbers()];\n\n return extensions;\n }\n );\n\n private _createEditorTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n {\n cspNonce,\n language,\n extraKeys,\n value,\n hasLineWrapping,\n isLintingEnabled,\n customExtensions,\n onLint,\n }: Pick<\n HdsCodeEditorSignature['Args']['Named'],\n | 'cspNonce'\n | 'language'\n | 'extraKeys'\n | 'value'\n | 'hasLineWrapping'\n | 'isLintingEnabled'\n | 'customExtensions'\n | 'onLint'\n >\n ) => {\n try {\n const { EditorState } = await import('@codemirror/state');\n\n const extensions = await this._buildExtensionsTask.perform({\n cspNonce,\n extraKeys,\n language,\n hasLineWrapping: hasLineWrapping ?? false,\n isLintingEnabled,\n customExtensions,\n onLint,\n });\n\n const state = EditorState.create({\n doc: value,\n extensions,\n });\n\n const editor = new EditorView({\n state,\n parent: element,\n });\n\n return editor;\n } catch (error) {\n console.error(\n `\\`hds-code-editor\\` modifier - Failed to setup the CodeMirror editor. Error: ${getErrorMessage(error)}`\n );\n }\n }\n );\n\n private _setupEditorMutationObserver() {\n this.mutationObserver = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.removedNodes.forEach((node) => {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n const removedNodeContainsLintPanel =\n node.querySelector('.cm-panel-lint') !== null;\n\n if (removedNodeContainsLintPanel) {\n this.editor.focus();\n }\n });\n });\n });\n\n this.mutationObserver.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n private _setupTask = task(\n { drop: true },\n async (\n element: HTMLElementWithEditor,\n _positional: PositionalArgs<HdsCodeEditorSignature>,\n named: NamedArgs<HdsCodeEditorSignature>\n ) => {\n const {\n onBlur,\n onInput,\n onLint,\n onSetup,\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n cspNonce,\n extraKeys,\n hasLineWrapping,\n isLintingEnabled,\n language,\n value,\n customExtensions,\n } = named;\n\n this.onInput = onInput;\n this.onBlur = onBlur;\n\n this.element = element;\n this.element.id = isEmpty(this.element.id)\n ? guidFor(this)\n : this.element.id;\n\n const editor = await this._createEditorTask.perform(element, {\n onLint,\n cspNonce,\n hasLineWrapping,\n isLintingEnabled,\n extraKeys,\n language,\n value,\n customExtensions,\n });\n\n if (editor === undefined) {\n return;\n }\n\n this.editor = editor;\n element.editor = editor;\n\n if (onBlur !== undefined) {\n this._setupEditorBlurHandler(element, onBlur);\n }\n\n let lintingDescriptionElement: HTMLParagraphElement | null = null;\n\n if (\n isLintingEnabled &&\n language !== undefined &&\n LANGUAGES[language]?.loadLinter !== undefined\n ) {\n // insert a new dom element above the editor\n lintingDescriptionElement = this._createLintingDescriptionElement();\n\n this._setupEditorMutationObserver();\n }\n\n this._setupEditorAriaAttributes(editor, {\n ariaDescribedBy,\n ariaLabel,\n ariaLabelledBy,\n lintingDescriptionElement: lintingDescriptionElement ?? undefined,\n });\n\n onSetup?.(this.editor);\n }\n );\n}\n"],"names":["defineStreamLanguage","streamParser","StreamLanguage","define","getErrorMessage","error","Error","message","JSON","stringify","String","getCSPNonceFromMeta","meta","document","querySelector","undefined","content","getAttribute","match","LOADER_HEIGHT","LANGUAGES","rego","load","ruby","sentinel","shell","go","hcl","javascript","json","loadLinter","onLint","linter","default","markdown","sql","yaml","HdsCodeEditorModifier","Modifier","g","prototype","service","i","editor","element","onBlur","onInput","blurHandler","intersectionObserver","mutationObserver","lineWrappingCompartment","Compartment","constructor","owner","args","registerDestructor","disconnect","removeEventListener","modify","positional","named","hasLineWrapping","dispatch","effects","reconfigure","EditorView","lineWrapping","macroCondition","isTesting","_setupTask","perform","IntersectionObserver","entries","forEach","entry","isIntersecting","rootMargin","observe","_setupEditorBlurHandler","inputElement","event","addEventListener","_setupEditorAriaLabel","ariaLabel","ariaLabelledBy","assert","dom","setAttribute","_setupEditorAriaDescribedBy","ariaDescribedBy","lintingDescriptionElement","ariaDescribedByArray","push","id","join","_createLintingDescriptionElement","createElement","classList","add","textContent","hdsIntl","t","insertAdjacentElement","_setupEditorAriaAttributes","_loadLanguageExtensionsTask","_buildTask","context","generator","language","isLintingEnabled","validLanguageKeys","Object","keys","includes","extensionPromises","Promise","all","warn","drop","_buildExtensionsTask","cspNonce","extraKeys","customExtensions","keymap","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","highlightActiveLine","defaultKeymap","history","historyKeymap","bracketMatching","syntaxHighlighting","languageExtensions","handleUpdateExtension","updateListener","of","update","selectionSet","view","toggle","state","selection","main","empty","docChanged","doc","toString","lineWrappingExtension","extensions","hdsDarkTheme","hdsDarkHighlightStyle","customKeyMap","map","key","value","run","nonce","_createEditorTask","EditorState","create","parent","console","_setupEditorMutationObserver","MutationObserver","mutations","mutation","removedNodes","node","HTMLElement","removedNodeContainsLintPanel","focus","childList","subtree","_positional","onSetup","isEmpty","guidFor"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { modifier } from 'ember-modifier';
2
2
 
3
3
  /**
4
- * Copyright IBM Corp. 2021, 2025
4
+ * Copyright IBM Corp. 2021, 2026
5
5
  * SPDX-License-Identifier: MPL-2.0
6
6
  */
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"hds-scroll-into-view-on-focus.js","sources":["../../src/modifiers/hds-scroll-into-view-on-focus.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { modifier } from 'ember-modifier';\n\nexport interface HdsScrollIntoViewOnFocusModifierSignature {\n Args: {\n Named: {\n options?: ScrollIntoViewOptions;\n };\n };\n Element: HTMLElement;\n}\n\nconst DEFAULT_OPTIONS: ScrollIntoViewOptions = {\n block: 'nearest',\n inline: 'nearest',\n};\n\nconst hdsScrollIntoViewOnFocus =\n modifier<HdsScrollIntoViewOnFocusModifierSignature>(\n (element, _positional, named) => {\n const scrollOptions = named.options ?? DEFAULT_OPTIONS;\n\n const onFocus = (): void => {\n element.scrollIntoView(scrollOptions);\n };\n\n element.addEventListener('focus', onFocus);\n\n return () => {\n element.removeEventListener('focus', onFocus);\n };\n }\n );\n\nexport default hdsScrollIntoViewOnFocus;\n"],"names":["DEFAULT_OPTIONS","block","inline","hdsScrollIntoViewOnFocus","modifier","element","_positional","named","scrollOptions","options","onFocus","scrollIntoView","addEventListener","removeEventListener"],"mappings":";;AAAA;AACA;AACA;AACA;;AAaA,MAAMA,eAAsC,GAAG;AAC7CC,EAAAA,KAAK,EAAE,SAAS;AAChBC,EAAAA,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,wBAAwB,GAC5BC,QAAQ,CACN,CAACC,OAAO,EAAEC,WAAW,EAAEC,KAAK,KAAK;AAC/B,EAAA,MAAMC,aAAa,GAAGD,KAAK,CAACE,OAAO,IAAIT,eAAe;EAEtD,MAAMU,OAAO,GAAGA,MAAY;AAC1BL,IAAAA,OAAO,CAACM,cAAc,CAACH,aAAa,CAAC;EACvC,CAAC;AAEDH,EAAAA,OAAO,CAACO,gBAAgB,CAAC,OAAO,EAAEF,OAAO,CAAC;AAE1C,EAAA,OAAO,MAAM;AACXL,IAAAA,OAAO,CAACQ,mBAAmB,CAAC,OAAO,EAAEH,OAAO,CAAC;EAC/C,CAAC;AACH,CACF;;;;"}
1
+ {"version":3,"file":"hds-scroll-into-view-on-focus.js","sources":["../../src/modifiers/hds-scroll-into-view-on-focus.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { modifier } from 'ember-modifier';\n\nexport interface HdsScrollIntoViewOnFocusModifierSignature {\n Args: {\n Named: {\n options?: ScrollIntoViewOptions;\n };\n };\n Element: HTMLElement;\n}\n\nconst DEFAULT_OPTIONS: ScrollIntoViewOptions = {\n block: 'nearest',\n inline: 'nearest',\n};\n\nconst hdsScrollIntoViewOnFocus =\n modifier<HdsScrollIntoViewOnFocusModifierSignature>(\n (element, _positional, named) => {\n const scrollOptions = named.options ?? DEFAULT_OPTIONS;\n\n const onFocus = (): void => {\n element.scrollIntoView(scrollOptions);\n };\n\n element.addEventListener('focus', onFocus);\n\n return () => {\n element.removeEventListener('focus', onFocus);\n };\n }\n );\n\nexport default hdsScrollIntoViewOnFocus;\n"],"names":["DEFAULT_OPTIONS","block","inline","hdsScrollIntoViewOnFocus","modifier","element","_positional","named","scrollOptions","options","onFocus","scrollIntoView","addEventListener","removeEventListener"],"mappings":";;AAAA;AACA;AACA;AACA;;AAaA,MAAMA,eAAsC,GAAG;AAC7CC,EAAAA,KAAK,EAAE,SAAS;AAChBC,EAAAA,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,wBAAwB,GAC5BC,QAAQ,CACN,CAACC,OAAO,EAAEC,WAAW,EAAEC,KAAK,KAAK;AAC/B,EAAA,MAAMC,aAAa,GAAGD,KAAK,CAACE,OAAO,IAAIT,eAAe;EAEtD,MAAMU,OAAO,GAAGA,MAAY;AAC1BL,IAAAA,OAAO,CAACM,cAAc,CAACH,aAAa,CAAC;EACvC,CAAC;AAEDH,EAAAA,OAAO,CAACO,gBAAgB,CAAC,OAAO,EAAEF,OAAO,CAAC;AAE1C,EAAA,OAAO,MAAM;AACXL,IAAAA,OAAO,CAACQ,mBAAmB,CAAC,OAAO,EAAEH,OAAO,CAAC;EAC/C,CAAC;AACH,CACF;;;;"}
@@ -5,7 +5,7 @@ import { guidFor } from '@ember/object/internals';
5
5
  import tippy, { followCursor } from 'tippy.js';
6
6
 
7
7
  /**
8
- * Copyright IBM Corp. 2021, 2025
8
+ * Copyright IBM Corp. 2021, 2026
9
9
  * SPDX-License-Identifier: MPL-2.0
10
10
  */
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"hds-tooltip.js","sources":["../../src/modifiers/hds-tooltip.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport type { ArgsFor } from 'ember-modifier';\n\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { guidFor } from '@ember/object/internals';\n\nimport tippy, { followCursor } from 'tippy.js';\nimport type {\n HideAll as TippyHideAll,\n Instance as TippyInstance,\n Props as TippyProps,\n} from 'tippy.js';\n\nimport type Owner from '@ember/owner';\n\nexport interface HdsTooltipModifierSignature {\n Args: {\n Positional: [string];\n Named: {\n options?: Partial<TippyProps>;\n };\n };\n Element: HTMLElement;\n}\n\nfunction cleanup(instance: HdsTooltipModifier): void {\n const { _interval, _needsTabIndex, _tooltip, _containerElement } = instance;\n if (_needsTabIndex) {\n _tooltip?.reference?.removeAttribute('tabindex');\n }\n if (_containerElement) {\n _containerElement.remove();\n }\n clearInterval(_interval);\n _tooltip?.destroy();\n}\n\n/**\n *\n * `Tooltip` implements a modifier that uses Tippy.js to display a tooltip.\n *\n * Sample usage:\n * ```\n * <div {{hds-tooltip 'Text' options=(hash )}}>Hover me!</div>\n * ```\n *\n * @see https://atomiks.github.io/tippyjs\n * @class TooltipModifier\n *\n */\nexport default class HdsTooltipModifier extends Modifier<HdsTooltipModifierSignature> {\n private _didSetup = false;\n private _containerId: string = 'container-' + guidFor(this);\n _interval: number | undefined = undefined;\n _needsTabIndex = false;\n _tooltip: TippyInstance | undefined = undefined;\n _containerElement?: HTMLElement;\n\n constructor(owner: Owner, args: ArgsFor<HdsTooltipModifierSignature>) {\n super(owner, args);\n registerDestructor(this, cleanup);\n }\n\n hideOnEsc = {\n name: 'hideOnEsc',\n defaultValue: true,\n fn({ hide }: { hide: TippyHideAll }) {\n function onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n hide();\n }\n }\n\n return {\n onShow() {\n document.addEventListener('keydown', onKeyDown);\n },\n onHide() {\n document.removeEventListener('keydown', onKeyDown);\n },\n };\n },\n };\n\n modify(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): void {\n assert('Tooltip must have an element', element);\n\n if (!this._didSetup) {\n this.#setup(element, positional, named);\n this._didSetup = true;\n }\n\n this.#update(element, positional, named);\n }\n\n #setup(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): void {\n this.#createPopoverContainer(element);\n const tooltipProps = this.#getTooltipProps(element, positional, named);\n this._tooltip = tippy(element, tooltipProps);\n }\n\n #update(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): void {\n const tooltipProps = this.#getTooltipProps(element, positional, named);\n this._tooltip?.setProps(tooltipProps);\n }\n\n #createPopoverContainer(\n element: HdsTooltipModifierSignature['Element']\n ): void {\n const containerElement = document.createElement('div');\n containerElement.setAttribute('id', this._containerId);\n containerElement.classList.add('hds-tooltip-container');\n containerElement.style.setProperty('position', 'absolute');\n // Note: If the popoverContent div extends outside the viewport it triggers overflow when the popover is open.\n // This is visible for users whose system settings have scrollbars set to always show.\n containerElement.style.setProperty(\n 'width',\n 'var(--token-tooltip-max-width)'\n );\n element.setAttribute('aria-controls', this._containerId);\n element.setAttribute('aria-describedby', this._containerId);\n element.after(containerElement);\n this._containerElement = containerElement;\n }\n\n #getTooltipProps(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): Partial<TippyProps> {\n const { options } = named;\n let [content] = positional;\n\n let $anchor: HTMLElement | null = element; // Ensure $anchor can be null\n\n if (typeof options?.triggerTarget === 'string') {\n const $el = $anchor;\n if (options.triggerTarget === 'parentNode') {\n if ($anchor.parentNode instanceof HTMLElement) {\n // Type guard\n $anchor = $anchor.parentNode;\n }\n } else {\n const queryResult: HTMLElement | null = $anchor.querySelector(\n options.triggerTarget\n );\n if (queryResult) {\n $anchor = queryResult;\n }\n }\n if ($anchor instanceof HTMLElement) {\n // Ensure $anchor is an HTMLElement before cloning\n const clonedElement = $anchor.cloneNode(true) as HTMLElement; // Explicitly cast cloned node to HTMLElement\n content = clonedElement.outerHTML; // Now safely access outerHTML\n }\n $el?.remove(); // Use optional chaining in case $el is null\n options.triggerTarget = null;\n }\n\n // The {{hds-tooltip}} will just use the HTML content.\n if (typeof content === 'undefined' && $anchor instanceof HTMLElement) {\n // Ensure $anchor is an HTMLElement before accessing innerHTML\n content = $anchor.innerHTML;\n $anchor.innerHTML = '';\n }\n\n if (options?.trigger === 'manual') {\n // If we are manually triggering, a out delay means only show for the\n // amount of time specified by the delay.\n const delay = options.delay || [];\n\n if (Array.isArray(delay) && delay.length) {\n if (typeof delay[1] !== 'undefined') {\n options.onShown = (tooltip) => {\n clearInterval(this._interval);\n this._interval = setTimeout(() => {\n tooltip.hide();\n }, delay[1] ?? 0);\n };\n }\n }\n }\n\n const $trigger = $anchor;\n\n if (!$trigger.hasAttribute('tabindex')) {\n this._needsTabIndex = true;\n $trigger.setAttribute('tabindex', '0');\n }\n\n /* Typescript does not like the previous approach of adding an undefined value\n ** to the array and then filtering it out.\n */\n const plugins =\n options?.followCursor !== undefined\n ? [this.hideOnEsc, followCursor]\n : [this.hideOnEsc];\n\n return {\n theme: 'hds',\n triggerTarget: $trigger,\n arrow: `\n <svg class=\"hds-tooltip-pointer\" width=\"16\" height=\"7\" viewBox=\"0 0 16 7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 7H16L9.11989 0.444571C8.49776 -0.148191 7.50224 -0.148191 6.88011 0.444572L0 7Z\" />\n </svg>`,\n // keeps tooltip itself open on hover:\n interactive: true,\n appendTo: this._containerElement,\n // fix accessibility features that get messed up with setting interactive: true\n aria: {\n expanded: false,\n },\n content: () => content,\n plugins,\n ...options,\n };\n }\n}\n"],"names":["cleanup","instance","_interval","_needsTabIndex","_tooltip","_containerElement","reference","removeAttribute","remove","clearInterval","destroy","HdsTooltipModifier","Modifier","_didSetup","_containerId","guidFor","undefined","constructor","owner","args","registerDestructor","hideOnEsc","name","defaultValue","fn","hide","onKeyDown","event","key","onShow","document","addEventListener","onHide","removeEventListener","modify","element","positional","named","assert","#setup","tooltipProps","tippy","#update","setProps","#createPopoverContainer","containerElement","createElement","setAttribute","classList","add","style","setProperty","after","#getTooltipProps","options","content","$anchor","triggerTarget","$el","parentNode","HTMLElement","queryResult","querySelector","clonedElement","cloneNode","outerHTML","innerHTML","trigger","delay","Array","isArray","length","onShown","tooltip","setTimeout","$trigger","hasAttribute","plugins","followCursor","theme","arrow","interactive","appendTo","aria","expanded"],"mappings":"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"}
1
+ {"version":3,"file":"hds-tooltip.js","sources":["../../src/modifiers/hds-tooltip.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Modifier from 'ember-modifier';\nimport type { ArgsFor } from 'ember-modifier';\n\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { guidFor } from '@ember/object/internals';\n\nimport tippy, { followCursor } from 'tippy.js';\nimport type {\n HideAll as TippyHideAll,\n Instance as TippyInstance,\n Props as TippyProps,\n} from 'tippy.js';\n\nimport type Owner from '@ember/owner';\n\nexport interface HdsTooltipModifierSignature {\n Args: {\n Positional: [string];\n Named: {\n options?: Partial<TippyProps>;\n };\n };\n Element: HTMLElement;\n}\n\nfunction cleanup(instance: HdsTooltipModifier): void {\n const { _interval, _needsTabIndex, _tooltip, _containerElement } = instance;\n if (_needsTabIndex) {\n _tooltip?.reference?.removeAttribute('tabindex');\n }\n if (_containerElement) {\n _containerElement.remove();\n }\n clearInterval(_interval);\n _tooltip?.destroy();\n}\n\n/**\n *\n * `Tooltip` implements a modifier that uses Tippy.js to display a tooltip.\n *\n * Sample usage:\n * ```\n * <div {{hds-tooltip 'Text' options=(hash )}}>Hover me!</div>\n * ```\n *\n * @see https://atomiks.github.io/tippyjs\n * @class TooltipModifier\n *\n */\nexport default class HdsTooltipModifier extends Modifier<HdsTooltipModifierSignature> {\n private _didSetup = false;\n private _containerId: string = 'container-' + guidFor(this);\n _interval: number | undefined = undefined;\n _needsTabIndex = false;\n _tooltip: TippyInstance | undefined = undefined;\n _containerElement?: HTMLElement;\n\n constructor(owner: Owner, args: ArgsFor<HdsTooltipModifierSignature>) {\n super(owner, args);\n registerDestructor(this, cleanup);\n }\n\n hideOnEsc = {\n name: 'hideOnEsc',\n defaultValue: true,\n fn({ hide }: { hide: TippyHideAll }) {\n function onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n hide();\n }\n }\n\n return {\n onShow() {\n document.addEventListener('keydown', onKeyDown);\n },\n onHide() {\n document.removeEventListener('keydown', onKeyDown);\n },\n };\n },\n };\n\n modify(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): void {\n assert('Tooltip must have an element', element);\n\n if (!this._didSetup) {\n this.#setup(element, positional, named);\n this._didSetup = true;\n }\n\n this.#update(element, positional, named);\n }\n\n #setup(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): void {\n this.#createPopoverContainer(element);\n const tooltipProps = this.#getTooltipProps(element, positional, named);\n this._tooltip = tippy(element, tooltipProps);\n }\n\n #update(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): void {\n const tooltipProps = this.#getTooltipProps(element, positional, named);\n this._tooltip?.setProps(tooltipProps);\n }\n\n #createPopoverContainer(\n element: HdsTooltipModifierSignature['Element']\n ): void {\n const containerElement = document.createElement('div');\n containerElement.setAttribute('id', this._containerId);\n containerElement.classList.add('hds-tooltip-container');\n containerElement.style.setProperty('position', 'absolute');\n // Note: If the popoverContent div extends outside the viewport it triggers overflow when the popover is open.\n // This is visible for users whose system settings have scrollbars set to always show.\n containerElement.style.setProperty(\n 'width',\n 'var(--token-tooltip-max-width)'\n );\n element.setAttribute('aria-controls', this._containerId);\n element.setAttribute('aria-describedby', this._containerId);\n element.after(containerElement);\n this._containerElement = containerElement;\n }\n\n #getTooltipProps(\n element: HdsTooltipModifierSignature['Element'],\n positional: HdsTooltipModifierSignature['Args']['Positional'],\n named: HdsTooltipModifierSignature['Args']['Named']\n ): Partial<TippyProps> {\n const { options } = named;\n let [content] = positional;\n\n let $anchor: HTMLElement | null = element; // Ensure $anchor can be null\n\n if (typeof options?.triggerTarget === 'string') {\n const $el = $anchor;\n if (options.triggerTarget === 'parentNode') {\n if ($anchor.parentNode instanceof HTMLElement) {\n // Type guard\n $anchor = $anchor.parentNode;\n }\n } else {\n const queryResult: HTMLElement | null = $anchor.querySelector(\n options.triggerTarget\n );\n if (queryResult) {\n $anchor = queryResult;\n }\n }\n if ($anchor instanceof HTMLElement) {\n // Ensure $anchor is an HTMLElement before cloning\n const clonedElement = $anchor.cloneNode(true) as HTMLElement; // Explicitly cast cloned node to HTMLElement\n content = clonedElement.outerHTML; // Now safely access outerHTML\n }\n $el?.remove(); // Use optional chaining in case $el is null\n options.triggerTarget = null;\n }\n\n // The {{hds-tooltip}} will just use the HTML content.\n if (typeof content === 'undefined' && $anchor instanceof HTMLElement) {\n // Ensure $anchor is an HTMLElement before accessing innerHTML\n content = $anchor.innerHTML;\n $anchor.innerHTML = '';\n }\n\n if (options?.trigger === 'manual') {\n // If we are manually triggering, a out delay means only show for the\n // amount of time specified by the delay.\n const delay = options.delay || [];\n\n if (Array.isArray(delay) && delay.length) {\n if (typeof delay[1] !== 'undefined') {\n options.onShown = (tooltip) => {\n clearInterval(this._interval);\n this._interval = setTimeout(() => {\n tooltip.hide();\n }, delay[1] ?? 0);\n };\n }\n }\n }\n\n const $trigger = $anchor;\n\n if (!$trigger.hasAttribute('tabindex')) {\n this._needsTabIndex = true;\n $trigger.setAttribute('tabindex', '0');\n }\n\n /* Typescript does not like the previous approach of adding an undefined value\n ** to the array and then filtering it out.\n */\n const plugins =\n options?.followCursor !== undefined\n ? [this.hideOnEsc, followCursor]\n : [this.hideOnEsc];\n\n return {\n theme: 'hds',\n triggerTarget: $trigger,\n arrow: `\n <svg class=\"hds-tooltip-pointer\" width=\"16\" height=\"7\" viewBox=\"0 0 16 7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 7H16L9.11989 0.444571C8.49776 -0.148191 7.50224 -0.148191 6.88011 0.444572L0 7Z\" />\n </svg>`,\n // keeps tooltip itself open on hover:\n interactive: true,\n appendTo: this._containerElement,\n // fix accessibility features that get messed up with setting interactive: true\n aria: {\n expanded: false,\n },\n content: () => content,\n plugins,\n ...options,\n };\n }\n}\n"],"names":["cleanup","instance","_interval","_needsTabIndex","_tooltip","_containerElement","reference","removeAttribute","remove","clearInterval","destroy","HdsTooltipModifier","Modifier","_didSetup","_containerId","guidFor","undefined","constructor","owner","args","registerDestructor","hideOnEsc","name","defaultValue","fn","hide","onKeyDown","event","key","onShow","document","addEventListener","onHide","removeEventListener","modify","element","positional","named","assert","#setup","tooltipProps","tippy","#update","setProps","#createPopoverContainer","containerElement","createElement","setAttribute","classList","add","style","setProperty","after","#getTooltipProps","options","content","$anchor","triggerTarget","$el","parentNode","HTMLElement","queryResult","querySelector","clonedElement","cloneNode","outerHTML","innerHTML","trigger","delay","Array","isArray","length","onShown","tooltip","setTimeout","$trigger","hasAttribute","plugins","followCursor","theme","arrow","interactive","appendTo","aria","expanded"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { isPresent } from '@ember/utils';
4
4
  import { assert } from '@ember/debug';
5
5
 
6
6
  /**
7
- * Copyright IBM Corp. 2021, 2025
7
+ * Copyright IBM Corp. 2021, 2026
8
8
  * SPDX-License-Identifier: MPL-2.0
9
9
  */
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"hds-intl.js","sources":["../../src/services/hds-intl.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Service from '@ember/service';\nimport { getOwner } from '@ember/owner';\nimport { isPresent } from '@ember/utils';\nimport { assert } from '@ember/debug';\n\nimport type { IntlService } from 'ember-intl';\n\ntype IntlTOptions = Parameters<IntlService['t']>[1];\n\nexport type HdsIntlTOptions = IntlTOptions & {\n default: string;\n};\n\nexport default class HdsIntlService extends Service {\n get intl(): IntlService | undefined {\n const owner = getOwner(this);\n\n if (\n typeof owner?.factoryFor === 'function' &&\n owner.factoryFor('service:intl')\n ) {\n return owner.lookup('service:intl');\n }\n\n return undefined;\n }\n\n t(key: string, options: HdsIntlTOptions): string {\n const { default: defaultString, ...restOptions } = options;\n\n assert(\n 'HdsIntlService requires a key as the first positional argument',\n typeof key === 'string' && isPresent(key)\n );\n\n // try to use ember-intl if available and a translation key exists\n if (this.intl !== undefined) {\n const localeIsSet = this.intl.locales && this.intl.locales.length > 0;\n\n if (localeIsSet && this.intl.exists(key)) {\n return this.intl.t(key, restOptions);\n }\n }\n\n return defaultString;\n }\n}\n"],"names":["HdsIntlService","Service","intl","owner","getOwner","factoryFor","lookup","undefined","t","key","options","default","defaultString","restOptions","assert","isPresent","localeIsSet","locales","length","exists"],"mappings":";;;;;AAAA;AACA;AACA;AACA;;AAee,MAAMA,cAAc,SAASC,OAAO,CAAC;EAClD,IAAIC,IAAIA,GAA4B;AAClC,IAAA,MAAMC,KAAK,GAAGC,QAAQ,CAAC,IAAI,CAAC;AAE5B,IAAA,IACE,OAAOD,KAAK,EAAEE,UAAU,KAAK,UAAU,IACvCF,KAAK,CAACE,UAAU,CAAC,cAAc,CAAC,EAChC;AACA,MAAA,OAAOF,KAAK,CAACG,MAAM,CAAC,cAAc,CAAC;AACrC,IAAA;AAEA,IAAA,OAAOC,SAAS;AAClB,EAAA;AAEAC,EAAAA,CAACA,CAACC,GAAW,EAAEC,OAAwB,EAAU;IAC/C,MAAM;AAAEC,MAAAA,OAAO,EAAEC,aAAa;MAAE,GAAGC;AAAY,KAAC,GAAGH,OAAO;AAE1DI,IAAAA,MAAM,CACJ,gEAAgE,EAChE,OAAOL,GAAG,KAAK,QAAQ,IAAIM,SAAS,CAACN,GAAG,CAC1C,CAAC;;AAED;AACA,IAAA,IAAI,IAAI,CAACP,IAAI,KAAKK,SAAS,EAAE;AAC3B,MAAA,MAAMS,WAAW,GAAG,IAAI,CAACd,IAAI,CAACe,OAAO,IAAI,IAAI,CAACf,IAAI,CAACe,OAAO,CAACC,MAAM,GAAG,CAAC;MAErE,IAAIF,WAAW,IAAI,IAAI,CAACd,IAAI,CAACiB,MAAM,CAACV,GAAG,CAAC,EAAE;QACxC,OAAO,IAAI,CAACP,IAAI,CAACM,CAAC,CAACC,GAAG,EAAEI,WAAW,CAAC;AACtC,MAAA;AACF,IAAA;AAEA,IAAA,OAAOD,aAAa;AACtB,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"hds-intl.js","sources":["../../src/services/hds-intl.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Service from '@ember/service';\nimport { getOwner } from '@ember/owner';\nimport { isPresent } from '@ember/utils';\nimport { assert } from '@ember/debug';\n\nimport type { IntlService } from 'ember-intl';\n\ntype IntlTOptions = Parameters<IntlService['t']>[1];\n\nexport type HdsIntlTOptions = IntlTOptions & {\n default: string;\n};\n\nexport default class HdsIntlService extends Service {\n get intl(): IntlService | undefined {\n const owner = getOwner(this);\n\n if (\n typeof owner?.factoryFor === 'function' &&\n owner.factoryFor('service:intl')\n ) {\n return owner.lookup('service:intl');\n }\n\n return undefined;\n }\n\n t(key: string, options: HdsIntlTOptions): string {\n const { default: defaultString, ...restOptions } = options;\n\n assert(\n 'HdsIntlService requires a key as the first positional argument',\n typeof key === 'string' && isPresent(key)\n );\n\n // try to use ember-intl if available and a translation key exists\n if (this.intl !== undefined) {\n const localeIsSet = this.intl.locales && this.intl.locales.length > 0;\n\n if (localeIsSet && this.intl.exists(key)) {\n return this.intl.t(key, restOptions);\n }\n }\n\n return defaultString;\n }\n}\n"],"names":["HdsIntlService","Service","intl","owner","getOwner","factoryFor","lookup","undefined","t","key","options","default","defaultString","restOptions","assert","isPresent","localeIsSet","locales","length","exists"],"mappings":";;;;;AAAA;AACA;AACA;AACA;;AAee,MAAMA,cAAc,SAASC,OAAO,CAAC;EAClD,IAAIC,IAAIA,GAA4B;AAClC,IAAA,MAAMC,KAAK,GAAGC,QAAQ,CAAC,IAAI,CAAC;AAE5B,IAAA,IACE,OAAOD,KAAK,EAAEE,UAAU,KAAK,UAAU,IACvCF,KAAK,CAACE,UAAU,CAAC,cAAc,CAAC,EAChC;AACA,MAAA,OAAOF,KAAK,CAACG,MAAM,CAAC,cAAc,CAAC;AACrC,IAAA;AAEA,IAAA,OAAOC,SAAS;AAClB,EAAA;AAEAC,EAAAA,CAACA,CAACC,GAAW,EAAEC,OAAwB,EAAU;IAC/C,MAAM;AAAEC,MAAAA,OAAO,EAAEC,aAAa;MAAE,GAAGC;AAAY,KAAC,GAAGH,OAAO;AAE1DI,IAAAA,MAAM,CACJ,gEAAgE,EAChE,OAAOL,GAAG,KAAK,QAAQ,IAAIM,SAAS,CAACN,GAAG,CAC1C,CAAC;;AAED;AACA,IAAA,IAAI,IAAI,CAACP,IAAI,KAAKK,SAAS,EAAE;AAC3B,MAAA,MAAMS,WAAW,GAAG,IAAI,CAACd,IAAI,CAACe,OAAO,IAAI,IAAI,CAACf,IAAI,CAACe,OAAO,CAACC,MAAM,GAAG,CAAC;MAErE,IAAIF,WAAW,IAAI,IAAI,CAACd,IAAI,CAACiB,MAAM,CAACV,GAAG,CAAC,EAAE;QACxC,OAAO,IAAI,CAACP,IAAI,CAACM,CAAC,CAACC,GAAG,EAAEI,WAAW,CAAC;AACtC,MAAA;AACF,IAAA;AAEA,IAAA,OAAOD,aAAa;AACtB,EAAA;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) HashiCorp, Inc.
2
+ * Copyright IBM Corp. 2021, 2026
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
5