@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 +1 @@
1
- {"version":3,"file":"th-button-sort.js","sources":["../../../../src/components/hds/table/th-button-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n\nimport {\n HdsTableThSortOrderIconValues,\n HdsTableThSortOrderValues,\n} from './types.ts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type {\n HdsTableThSortOrder,\n HdsTableThSortOrderIcons,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\nexport interface HdsTableThButtonSortSignature {\n Args: {\n labelId?: string;\n onClick?: () => void;\n sortOrder?: HdsTableThSortOrder;\n };\n Element: HTMLButtonElement;\n}\n\nconst NOOP = () => {};\n\nexport default class HdsTableThButtonSort extends Component<HdsTableThButtonSortSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n // Generates a unique ID for the (hidden) \"label prefix/suffix\" <span> elements\n private _prefixLabelId = 'prefix-' + guidFor(this);\n private _suffixLabelId = 'suffix-' + guidFor(this);\n\n get icon(): HdsTableThSortOrderIcons {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderIconValues.ArrowUp;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderIconValues.ArrowDown;\n default:\n return HdsTableThSortOrderIconValues.SwapVertical;\n }\n }\n\n // Determines the label (suffix) to use in the `aria-labelledby` attribute of the button,\n // used to indicate what will happen if the user clicks on the button\n get sortOrderLabel(): HdsTableThSortOrderLabels {\n const { sortOrder } = this.args;\n\n const translatedLabel =\n sortOrder === HdsTableThSortOrderValues.Asc\n ? this.hdsIntl.t('hds.components.common.descending', {\n default: 'descending',\n })\n : this.hdsIntl.t('hds.components.common.ascending', {\n default: 'ascending',\n });\n\n return translatedLabel as HdsTableThSortOrderLabels;\n }\n\n get onClick(): () => void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n return onClick;\n } else {\n return NOOP;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--sort'];\n\n // add a class based on the @sortOrder argument\n if (\n this.args.sortOrder === HdsTableThSortOrderValues.Asc ||\n this.args.sortOrder === HdsTableThSortOrderValues.Desc\n ) {\n classes.push(`hds-table__th-button--is-sorted`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{on \"click\" this.onClick}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}} {{this._suffixLabelId}}\"\n ...attributes\n >\n <span\n id={{this._prefixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{hdsT \"hds.components.common.sort-by\" default=\"Sort by\"}}\n </span>\n <span\n id={{this._suffixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{this.sortOrderLabel}}\n </span>\n <HdsIcon @name={{this.icon}} />\n </button>\n </template>\n}\n"],"names":["NOOP","HdsTableThButtonSort","Component","g","prototype","service","i","_prefixLabelId","guidFor","_suffixLabelId","icon","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderIconValues","ArrowUp","Desc","ArrowDown","SwapVertical","sortOrderLabel","translatedLabel","hdsIntl","t","default","onClick","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","on","hdsT","HdsIcon"],"mappings":";;;;;;;;;;;AAAA;;;AAGC;AA8BD,MAAMA,OAAOA,MAAA,CAAO,CAAA;AAEL,MAAMC,6BAA6BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACzDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAED;AACQC,EAAAA,cAAA,GAAiB,SAAA,GAAYC,OAAA,CAAQ,IAAI,CAAA;AACzCC,EAAAA,cAAA,GAAiB,SAAA,GAAYD,OAAA,CAAQ,IAAI,CAAA;EAEjD,IAAIE,OAAiC;AACnC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,8BAA8BC,OAAO;MAC9C,KAAKH,0BAA0BI,IAAI;QACjC,OAAOF,8BAA8BG,SAAS;AAChD,MAAA;QACE,OAAOH,8BAA8BI,YAAY;AACrD;AACF,EAAA;AAEA;AACA;EACA,IAAIC,iBAA4C;IAC9C,MAAM;AAAER,MAAAA;KAAW,GAAG,IAAI,CAACD,IAAI;AAE/B,IAAA,MAAMU,eAAA,GACJT,SAAA,KAAcC,yBAAA,CAA0BC,GAAG,GACvC,IAAI,CAACQ,OAAO,CAACC,CAAC,CAAC,kCAAA,EAAoC;AACjDC,MAAAA,OAAA,EAAS;KACX,CAAA,GACA,IAAI,CAACF,OAAO,CAACC,CAAC,CAAC,iCAAA,EAAmC;AAChDC,MAAAA,OAAA,EAAS;AACX,KAAA,CAAA;AAEN,IAAA,OAAOH,eAAA;AACT,EAAA;EAEA,IAAII,OAAAA,GAAsB;IACxB,MAAM;AAAEA,MAAAA;KAAS,GAAG,IAAI,CAACd,IAAI;AAE7B,IAAA,IAAI,OAAOc,YAAY,UAAA,EAAY;AACjC,MAAA,OAAOA,OAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOzB,IAAA;AACT,IAAA;AACF,EAAA;EAEA,IAAI0B,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,sBAAA,EAAwB,4BAAA,CAA6B;AAEtE;AACA,IAAA,IACE,IAAI,CAAChB,IAAI,CAACC,SAAS,KAAKC,yBAAA,CAA0BC,GAAG,IACrD,IAAI,CAACH,IAAI,CAACC,SAAS,KAAKC,yBAAA,CAA0BI,IAAI,EACtD;AACAU,MAAAA,OAAA,CAAQC,IAAI,CAAC,CAAA,+BAAA,CAAiC,CAAA;AAChD,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,khBAAA,EAsBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"th-button-sort.js","sources":["../../../../src/components/hds/table/th-button-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n\nimport {\n HdsTableThSortOrderIconValues,\n HdsTableThSortOrderValues,\n} from './types.ts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nimport type {\n HdsTableThSortOrder,\n HdsTableThSortOrderIcons,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nimport type HdsIntlService from '../../../services/hds-intl.ts';\n\nexport interface HdsTableThButtonSortSignature {\n Args: {\n labelId?: string;\n onClick?: () => void;\n sortOrder?: HdsTableThSortOrder;\n };\n Element: HTMLButtonElement;\n}\n\nconst NOOP = () => {};\n\nexport default class HdsTableThButtonSort extends Component<HdsTableThButtonSortSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n\n // Generates a unique ID for the (hidden) \"label prefix/suffix\" <span> elements\n private _prefixLabelId = 'prefix-' + guidFor(this);\n private _suffixLabelId = 'suffix-' + guidFor(this);\n\n get icon(): HdsTableThSortOrderIcons {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderIconValues.ArrowUp;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderIconValues.ArrowDown;\n default:\n return HdsTableThSortOrderIconValues.SwapVertical;\n }\n }\n\n // Determines the label (suffix) to use in the `aria-labelledby` attribute of the button,\n // used to indicate what will happen if the user clicks on the button\n get sortOrderLabel(): HdsTableThSortOrderLabels {\n const { sortOrder } = this.args;\n\n const translatedLabel =\n sortOrder === HdsTableThSortOrderValues.Asc\n ? this.hdsIntl.t('hds.components.common.descending', {\n default: 'descending',\n })\n : this.hdsIntl.t('hds.components.common.ascending', {\n default: 'ascending',\n });\n\n return translatedLabel as HdsTableThSortOrderLabels;\n }\n\n get onClick(): () => void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n return onClick;\n } else {\n return NOOP;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--sort'];\n\n // add a class based on the @sortOrder argument\n if (\n this.args.sortOrder === HdsTableThSortOrderValues.Asc ||\n this.args.sortOrder === HdsTableThSortOrderValues.Desc\n ) {\n classes.push(`hds-table__th-button--is-sorted`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{on \"click\" this.onClick}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}} {{this._suffixLabelId}}\"\n ...attributes\n >\n <span\n id={{this._prefixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{hdsT \"hds.components.common.sort-by\" default=\"Sort by\"}}\n </span>\n <span\n id={{this._suffixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{this.sortOrderLabel}}\n </span>\n <HdsIcon @name={{this.icon}} />\n </button>\n </template>\n}\n"],"names":["NOOP","HdsTableThButtonSort","Component","g","prototype","service","i","_prefixLabelId","guidFor","_suffixLabelId","icon","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderIconValues","ArrowUp","Desc","ArrowDown","SwapVertical","sortOrderLabel","translatedLabel","hdsIntl","t","default","onClick","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","on","hdsT","HdsIcon"],"mappings":";;;;;;;;;;;AAAA;;;AAGC;AA8BD,MAAMA,OAAOA,MAAA,CAAO,CAAA;AAEL,MAAMC,6BAA6BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACzDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAED;AACQC,EAAAA,cAAA,GAAiB,SAAA,GAAYC,OAAA,CAAQ,IAAI,CAAA;AACzCC,EAAAA,cAAA,GAAiB,SAAA,GAAYD,OAAA,CAAQ,IAAI,CAAA;EAEjD,IAAIE,OAAiC;AACnC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,8BAA8BC,OAAO;MAC9C,KAAKH,0BAA0BI,IAAI;QACjC,OAAOF,8BAA8BG,SAAS;AAChD,MAAA;QACE,OAAOH,8BAA8BI,YAAY;AACrD;AACF,EAAA;AAEA;AACA;EACA,IAAIC,iBAA4C;IAC9C,MAAM;AAAER,MAAAA;KAAW,GAAG,IAAI,CAACD,IAAI;AAE/B,IAAA,MAAMU,eAAA,GACJT,SAAA,KAAcC,yBAAA,CAA0BC,GAAG,GACvC,IAAI,CAACQ,OAAO,CAACC,CAAC,CAAC,kCAAA,EAAoC;AACjDC,MAAAA,OAAA,EAAS;KACX,CAAA,GACA,IAAI,CAACF,OAAO,CAACC,CAAC,CAAC,iCAAA,EAAmC;AAChDC,MAAAA,OAAA,EAAS;AACX,KAAA,CAAA;AAEN,IAAA,OAAOH,eAAA;AACT,EAAA;EAEA,IAAII,OAAAA,GAAsB;IACxB,MAAM;AAAEA,MAAAA;KAAS,GAAG,IAAI,CAACd,IAAI;AAE7B,IAAA,IAAI,OAAOc,YAAY,UAAA,EAAY;AACjC,MAAA,OAAOA,OAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAOzB,IAAA;AACT,IAAA;AACF,EAAA;EAEA,IAAI0B,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,sBAAA,EAAwB,4BAAA,CAA6B;AAEtE;AACA,IAAA,IACE,IAAI,CAAChB,IAAI,CAACC,SAAS,KAAKC,yBAAA,CAA0BC,GAAG,IACrD,IAAI,CAACH,IAAI,CAACC,SAAS,KAAKC,yBAAA,CAA0BI,IAAI,EACtD;AACAU,MAAAA,OAAA,CAAQC,IAAI,CAAC,CAAA,+BAAA,CAAiC,CAAA;AAChD,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,khBAAA,EAsBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -8,7 +8,7 @@ import { precompileTemplate } from '@ember/template-compilation';
8
8
  import { setComponentTemplate } from '@ember/component';
9
9
 
10
10
  /**
11
- * Copyright IBM Corp. 2021, 2025
11
+ * Copyright IBM Corp. 2021, 2026
12
12
  * SPDX-License-Identifier: MPL-2.0
13
13
  */
14
14
  class HdsTableThButtonTooltip extends Component {
@@ -1 +1 @@
1
- {"version":3,"file":"th-button-tooltip.js","sources":["../../../../src/components/hds/table/th-button-tooltip.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\n\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nexport interface HdsTableThButtonTooltipSignature {\n Args: {\n labelId?: string;\n tooltip: string;\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsTableThButtonTooltip extends Component<HdsTableThButtonTooltipSignature> {\n // Generates a unique ID for the (hidden) \"label prefix\" <span> element\n private _prefixLabelId = guidFor(this);\n\n get tooltip(): string {\n assert(\n `@tooltip for \"HdsTableThButtonTooltip\" must be a string`,\n typeof this.args.tooltip === 'string'\n );\n return this.args.tooltip;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--tooltip'];\n\n return classes.join(' ');\n }\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{hdsTooltip this.tooltip}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}}\"\n ...attributes\n >\n <span\n id={{this._prefixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{hdsT\n \"hds.components.common.tooltip-prefix\"\n default=\"More information for\"\n }}\n </span>\n <HdsIcon @name=\"info\" />\n </button>\n </template>\n}\n"],"names":["HdsTableThButtonTooltip","Component","_prefixLabelId","guidFor","tooltip","assert","args","classNames","classes","join","setComponentTemplate","precompileTemplate","strictMode","scope","hdsTooltip","hdsT","HdsIcon"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAkBc,MAAMA,gCAAgCC,SAAA,CAAU;AAC7D;AACQC,EAAAA,cAAA,GAAiBC,OAAA,CAAQ,IAAI,CAAA;EAErC,IAAIC,OAAAA,GAAkB;IACpBC,MAAA,CACE,CAAA,uDAAA,CAAyD,EACzD,OAAO,IAAI,CAACC,IAAI,CAACF,OAAO,KAAK,QAAA,CAAA;AAE/B,IAAA,OAAO,IAAI,CAACE,IAAI,CAACF,OAAO;AAC1B,EAAA;EAEA,IAAIG,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,sBAAA,EAAwB,+BAAA,CAAgC;AAEzE,IAAA,OAAOA,OAAA,CAAQC,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,iYAAA,EAmBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;oBAAAC,kBAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"th-button-tooltip.js","sources":["../../../../src/components/hds/table/th-button-tooltip.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\n\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\nimport hdsT from '../../../helpers/hds-t.ts';\n\nexport interface HdsTableThButtonTooltipSignature {\n Args: {\n labelId?: string;\n tooltip: string;\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsTableThButtonTooltip extends Component<HdsTableThButtonTooltipSignature> {\n // Generates a unique ID for the (hidden) \"label prefix\" <span> element\n private _prefixLabelId = guidFor(this);\n\n get tooltip(): string {\n assert(\n `@tooltip for \"HdsTableThButtonTooltip\" must be a string`,\n typeof this.args.tooltip === 'string'\n );\n return this.args.tooltip;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--tooltip'];\n\n return classes.join(' ');\n }\n\n <template>\n <button\n type=\"button\"\n class={{this.classNames}}\n {{hdsTooltip this.tooltip}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}}\"\n ...attributes\n >\n <span\n id={{this._prefixLabelId}}\n class=\"hds-table__th-button-aria-label-hidden-segment\"\n >\n {{hdsT\n \"hds.components.common.tooltip-prefix\"\n default=\"More information for\"\n }}\n </span>\n <HdsIcon @name=\"info\" />\n </button>\n </template>\n}\n"],"names":["HdsTableThButtonTooltip","Component","_prefixLabelId","guidFor","tooltip","assert","args","classNames","classes","join","setComponentTemplate","precompileTemplate","strictMode","scope","hdsTooltip","hdsT","HdsIcon"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAkBc,MAAMA,gCAAgCC,SAAA,CAAU;AAC7D;AACQC,EAAAA,cAAA,GAAiBC,OAAA,CAAQ,IAAI,CAAA;EAErC,IAAIC,OAAAA,GAAkB;IACpBC,MAAA,CACE,CAAA,uDAAA,CAAyD,EACzD,OAAO,IAAI,CAACC,IAAI,CAACF,OAAO,KAAK,QAAA,CAAA;AAE/B,IAAA,OAAO,IAAI,CAACE,IAAI,CAACF,OAAO;AAC1B,EAAA;EAEA,IAAIG,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,sBAAA,EAAwB,+BAAA,CAAgC;AAEzE,IAAA,OAAOA,OAAA,CAAQC,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,iYAAA,EAmBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;oBAAAC,kBAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -14,7 +14,7 @@ import { setComponentTemplate } from '@ember/component';
14
14
  import { g, i } from 'decorator-transforms/runtime';
15
15
 
16
16
  /**
17
- * Copyright IBM Corp. 2021, 2025
17
+ * Copyright IBM Corp. 2021, 2026
18
18
  * SPDX-License-Identifier: MPL-2.0
19
19
  */
20
20
  class HdsTableThSelectable extends Component {
@@ -1 +1 @@
1
- {"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { service } from '@ember/service';\n\nimport type HdsIntlService from '../../../services/hds-intl';\n\nimport type Owner from '@ember/owner';\n\nimport {\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsFormCheckboxBase from '../form/checkbox/base.gts';\nimport HdsTableThButtonSort from './th-button-sort.gts';\nimport HdsTableTh from './th.gts';\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsTableScope,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types';\nimport type { HdsTableThSignature } from './th';\n\nexport interface HdsTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n };\n Element: HdsTableThSignature['Element'];\n}\n\nexport default class HdsTableThSelectable extends Component<HdsTableThSelectableSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n @tracked isSelected: boolean;\n private _guid = guidFor(this);\n\n private _checkboxId = `checkbox-${this._guid}`;\n private _labelId = `label-${this._guid}`;\n\n constructor(owner: Owner, args: HdsTableThSelectableSignature['Args']) {\n super(owner, args);\n this.isSelected = this.args.isSelected ?? false;\n }\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix = 'row' } = this.args;\n const defaultString = `Select ${selectionAriaLabelSuffix}`;\n return this.hdsIntl.t('hds.components.table.th-selectable.aria-label', {\n default: defaultString,\n suffix: selectionAriaLabelSuffix,\n });\n }\n\n get ariaSort(): HdsTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n didInsert = (checkbox: HdsFormCheckboxBaseSignature['Element']): void => {\n const { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n }\n };\n\n willDestroyNode = (): void => {\n super.willDestroy();\n const { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n }\n };\n\n onSelectionChange = (event: Event): void => {\n // Assert event.target as HdsFormCheckboxBaseSignature['Element'] to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this.isSelected = target.checked;\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(target, this.args.selectionKey);\n }\n };\n\n <template>\n <HdsTableTh\n class=\"hds-table__th--is-selectable\"\n aria-sort={{if this.isSortable this.ariaSort}}\n @scope={{@selectionScope}}\n ...attributes\n >\n <div class=\"hds-table__th-content\">\n <HdsFormCheckboxBase\n id={{this._checkboxId}}\n class=\"hds-table__checkbox\"\n checked={{@isSelected}}\n aria-label={{this.ariaLabel}}\n {{didInsert this.didInsert}}\n {{willDestroy this.willDestroyNode}}\n {{on \"change\" this.onSelectionChange}}\n />\n {{#if this.isSortable}}\n <HdsTableThButtonSort\n @sortOrder={{@sortBySelectedOrder}}\n @onClick={{@onClickSortBySelected}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n </HdsTableTh>\n </template>\n}\n"],"names":["HdsTableThSelectable","Component","g","prototype","service","i","tracked","_guid","guidFor","_checkboxId","_labelId","constructor","owner","args","isSelected","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","defaultString","hdsIntl","t","default","suffix","ariaSort","sortBySelectedOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","didInsert","checkbox","selectionKey","willDestroyNode","willDestroy","onSelectionChange","event","target","checked","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTableTh","HdsFormCheckboxBase","on","HdsTableThButtonSort"],"mappings":";;;;;;;;;;;;;;;AAAA;;;AAGC;AAqDc,MAAMA,6BAA6BC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACzDC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,YAAA,EAAA,CACAG,OAAA,CAAA,CAAA;AAAA;EAAA,WAAA,IAAAD,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAA,MAAA;AACOE,EAAAA,KAAA,GAAQC,OAAA,CAAQ,IAAI,CAAA;AAEpBC,EAAAA,WAAA,GAAc,CAAA,SAAA,EAAY,IAAI,CAACF,KAAK,CAAA,CAAE;AACtCG,EAAAA,QAAA,GAAW,CAAA,MAAA,EAAS,IAAI,CAACH,KAAK,CAAA,CAAE;AAExCI,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAA2C,EAAE;AACrE,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;IACb,IAAI,CAACC,UAAU,GAAG,IAAI,CAACD,IAAI,CAACC,UAAU,IAAI,KAAA;AAC5C,EAAA;EAEA,IAAIC,UAAAA,GAAsB;AACxB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACG,qBAAqB,KAAKC,SAAA;AAC7C,EAAA;EAEA,IAAIC,SAAAA,GAAoB;IACtB,MAAM;AAAEC,MAAAA,wBAAA,GAA2B;KAAO,GAAG,IAAI,CAACN,IAAI;AACtD,IAAA,MAAMO,aAAA,GAAgB,CAAA,OAAA,EAAUD,0BAA0B;AAC1D,IAAA,OAAO,IAAI,CAACE,OAAO,CAACC,CAAC,CAAC,+CAAA,EAAiD;AACrEC,MAAAA,OAAA,EAASH,aAAA;AACTI,MAAAA,MAAA,EAAQL;AACV,KAAA,CAAA;AACF,EAAA;EAEA,IAAIM,QAAAA,GAAkD;AACpD,IAAA,QAAQ,IAAI,CAACZ,IAAI,CAACa,mBAAmB;MACnC,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,+BAA+BD,GAAG;MAC3C,KAAKD,0BAA0BG,IAAI;QACjC,OAAOD,+BAA+BC,IAAI;AAC5C,MAAA;AACE;QACA,OAAOD,+BAA+BE,IAAI;AAC9C;AACF,EAAA;EAEAC,SAAA,GAAaC,QAAuC,IAAiB;IACnE,MAAM;AAAED,MAAAA;KAAW,GAAG,IAAI,CAACnB,IAAI;AAC/B,IAAA,IAAI,OAAOmB,cAAc,UAAA,EAAY;MACnCA,SAAA,CAAUC,QAAA,EAAU,IAAI,CAACpB,IAAI,CAACqB,YAAY,CAAA;AAC5C,IAAA;EACF,CAAA;EAEAC,eAAA,GAAkBA,MAAQ;IACxB,KAAK,CAACC,WAAA,EAAA;IACN,MAAM;AAAEA,MAAAA;KAAa,GAAG,IAAI,CAACvB,IAAI;AACjC,IAAA,IAAI,OAAOuB,gBAAgB,UAAA,EAAY;AACrCA,MAAAA,WAAA,CAAY,IAAI,CAACvB,IAAI,CAACqB,YAAY,CAAA;AACpC,IAAA;EACF,CAAA;EAEAG,iBAAA,GAAqBC,KAAO,IAAY;AACtC;AACA,IAAA,MAAMC,MAAA,GAASD,KAAA,CAAMC,MAAuC;AAC5D,IAAA,IAAI,CAACzB,UAAU,GAAGyB,MAAA,CAAOC,OAAO;IAChC,MAAM;AAAEH,MAAAA;KAAmB,GAAG,IAAI,CAACxB,IAAI;AACvC,IAAA,IAAI,OAAOwB,sBAAsB,UAAA,EAAY;MAC3CA,iBAAA,CAAkBE,MAAA,EAAQ,IAAI,CAAC1B,IAAI,CAACqB,YAAY,CAAA;AAClD,IAAA;EACF,CAAA;AAEA,EAAA;IAAAO,oBAAA,CAAAC,kBAAA,CAAA,gnBAAA,EA0BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,UAAA;QAAAC,mBAAA;QAAAd,SAAA;QAAAI,WAAA;QAAAW,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"th-selectable.js","sources":["../../../../src/components/hds/table/th-selectable.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { tracked } from '@glimmer/tracking';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\nimport { service } from '@ember/service';\n\nimport type HdsIntlService from '../../../services/hds-intl';\n\nimport type Owner from '@ember/owner';\n\nimport {\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsFormCheckboxBase from '../form/checkbox/base.gts';\nimport HdsTableThButtonSort from './th-button-sort.gts';\nimport HdsTableTh from './th.gts';\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type {\n HdsTableScope,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types';\nimport type { HdsTableThSignature } from './th';\n\nexport interface HdsTableThSelectableSignature {\n Args: {\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n isSelected?: boolean;\n onClickSortBySelected?: () => void;\n onSelectionChange?: (\n target: HdsFormCheckboxBaseSignature['Element'],\n selectionKey: string | undefined\n ) => void;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n willDestroy?: (selectionKey?: string) => void;\n };\n Element: HdsTableThSignature['Element'];\n}\n\nexport default class HdsTableThSelectable extends Component<HdsTableThSelectableSignature> {\n @service declare readonly hdsIntl: HdsIntlService;\n @tracked isSelected: boolean;\n private _guid = guidFor(this);\n\n private _checkboxId = `checkbox-${this._guid}`;\n private _labelId = `label-${this._guid}`;\n\n constructor(owner: Owner, args: HdsTableThSelectableSignature['Args']) {\n super(owner, args);\n this.isSelected = this.args.isSelected ?? false;\n }\n\n get isSortable(): boolean {\n return this.args.onClickSortBySelected !== undefined;\n }\n\n get ariaLabel(): string {\n const { selectionAriaLabelSuffix = 'row' } = this.args;\n const defaultString = `Select ${selectionAriaLabelSuffix}`;\n return this.hdsIntl.t('hds.components.table.th-selectable.aria-label', {\n default: defaultString,\n suffix: selectionAriaLabelSuffix,\n });\n }\n\n get ariaSort(): HdsTableThSortOrderLabels | undefined {\n switch (this.args.sortBySelectedOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n didInsert = (checkbox: HdsFormCheckboxBaseSignature['Element']): void => {\n const { didInsert } = this.args;\n if (typeof didInsert === 'function') {\n didInsert(checkbox, this.args.selectionKey);\n }\n };\n\n willDestroyNode = (): void => {\n super.willDestroy();\n const { willDestroy } = this.args;\n if (typeof willDestroy === 'function') {\n willDestroy(this.args.selectionKey);\n }\n };\n\n onSelectionChange = (event: Event): void => {\n // Assert event.target as HdsFormCheckboxBaseSignature['Element'] to access the 'checked' property\n const target = event.target as HdsFormCheckboxBaseSignature['Element'];\n this.isSelected = target.checked;\n const { onSelectionChange } = this.args;\n if (typeof onSelectionChange === 'function') {\n onSelectionChange(target, this.args.selectionKey);\n }\n };\n\n <template>\n <HdsTableTh\n class=\"hds-table__th--is-selectable\"\n aria-sort={{if this.isSortable this.ariaSort}}\n @scope={{@selectionScope}}\n ...attributes\n >\n <div class=\"hds-table__th-content\">\n <HdsFormCheckboxBase\n id={{this._checkboxId}}\n class=\"hds-table__checkbox\"\n checked={{@isSelected}}\n aria-label={{this.ariaLabel}}\n {{didInsert this.didInsert}}\n {{willDestroy this.willDestroyNode}}\n {{on \"change\" this.onSelectionChange}}\n />\n {{#if this.isSortable}}\n <HdsTableThButtonSort\n @sortOrder={{@sortBySelectedOrder}}\n @onClick={{@onClickSortBySelected}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n </div>\n </HdsTableTh>\n </template>\n}\n"],"names":["HdsTableThSelectable","Component","g","prototype","service","i","tracked","_guid","guidFor","_checkboxId","_labelId","constructor","owner","args","isSelected","isSortable","onClickSortBySelected","undefined","ariaLabel","selectionAriaLabelSuffix","defaultString","hdsIntl","t","default","suffix","ariaSort","sortBySelectedOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","didInsert","checkbox","selectionKey","willDestroyNode","willDestroy","onSelectionChange","event","target","checked","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTableTh","HdsFormCheckboxBase","on","HdsTableThButtonSort"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { precompileTemplate } from '@ember/template-compilation';
9
9
  import { setComponentTemplate } from '@ember/component';
10
10
 
11
11
  /**
12
- * Copyright IBM Corp. 2021, 2025
12
+ * Copyright IBM Corp. 2021, 2026
13
13
  * SPDX-License-Identifier: MPL-2.0
14
14
  */
15
15
  const ALIGNMENTS = Object.values(HdsTableHorizontalAlignmentValues);
@@ -1 +1 @@
1
- {"version":3,"file":"th-sort.js","sources":["../../../../src/components/hds/table/th-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport style from 'ember-style-modifier';\n\nimport {\n HdsTableHorizontalAlignmentValues,\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsTableThButtonTooltip from './th-button-tooltip.gts';\nimport HdsTableThButtonSort from './th-button-sort.gts';\n\nimport type {\n HdsTableHorizontalAlignment,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsTableThButtonSortSignature } from './th-button-sort.gts';\n\nexport const ALIGNMENTS: HdsTableHorizontalAlignment[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSortSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n onClickSort?: HdsTableThButtonSortSignature['Args']['onClick'];\n sortOrder?: HdsTableThSortOrder;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableThSort extends Component<HdsTableThSortSignature> {\n private _labelId = guidFor(this);\n\n get ariaSort(): HdsTableThSortOrderLabels {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th', 'hds-table__th--sort'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <th\n class={{this.classNames}}\n aria-sort={{this.ariaSort}}\n {{style width=@width minWidth=@width}}\n ...attributes\n scope=\"col\"\n >\n <div class=\"hds-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n {{#if @tooltip}}\n <HdsTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n <HdsTableThButtonSort\n @sortOrder={{@sortOrder}}\n @onClick={{@onClickSort}}\n @labelId={{this._labelId}}\n />\n </div>\n </th>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableThSort","Component","_labelId","guidFor","ariaSort","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","align","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","style","HdsTableThButtonTooltip","HdsTableThButtonSort"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAsBM,MAAMA,UAAY,GAAgCC,MAAA,CAAOC,MAAM,CACpEC,iCAAA;AAEK,MAAMC,aAAA,GAAgBD,iCAAA,CAAkCE;AAgBhD,MAAMC,uBAAuBC,SAAA,CAAU;AAC5CC,EAAAA,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE/B,IAAIC,WAAsC;AACxC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,+BAA+BD,GAAG;MAC3C,KAAKD,0BAA0BG,IAAI;QACjC,OAAOD,+BAA+BC,IAAI;AAC5C,MAAA;AACE;QACA,OAAOD,+BAA+BE,IAAI;AAC9C;AACF,EAAA;EAEA,IAAIC,QAAqC;IACvC,MAAM;AAAEA,MAAAA,KAAA,GAAQd;KAAe,GAAG,IAAI,CAACO,IAAI;AAE3CQ,IAAAA,MAAA,CACE,CAAA,sDAAA,EAAyDnB,UAAA,CAAWoB,IAAI,CACtE,IAAA,CAAA,CAAA,YAAA,EACcF,KAAA,CAAA,CAAO,EACvBlB,UAAA,CAAWqB,QAAQ,CAACH,KAAA,CAAA,CAAA;AAEtB,IAAA,OAAOA,KAAA;AACT,EAAA;EAEA,IAAII,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,EAAiB,qBAAA,CAAsB;AAExD;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAA,CAAQC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACN,KAAK,EAAE,CAAA;AACnD,IAAA;AAEA,IAAA,OAAOK,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,ygBAAA,EA0BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,KAAA;QAAAC,uBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"th-sort.js","sources":["../../../../src/components/hds/table/th-sort.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport style from 'ember-style-modifier';\n\nimport {\n HdsTableHorizontalAlignmentValues,\n HdsTableThSortOrderValues,\n HdsTableThSortOrderLabelValues,\n} from './types.ts';\nimport HdsTableThButtonTooltip from './th-button-tooltip.gts';\nimport HdsTableThButtonSort from './th-button-sort.gts';\n\nimport type {\n HdsTableHorizontalAlignment,\n HdsTableThSortOrder,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nimport type { HdsTableThButtonSortSignature } from './th-button-sort.gts';\n\nexport const ALIGNMENTS: HdsTableHorizontalAlignment[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSortSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n onClickSort?: HdsTableThButtonSortSignature['Args']['onClick'];\n sortOrder?: HdsTableThSortOrder;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableThSort extends Component<HdsTableThSortSignature> {\n private _labelId = guidFor(this);\n\n get ariaSort(): HdsTableThSortOrderLabels {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderLabelValues.Asc;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderLabelValues.Desc;\n default:\n // none is the default per the spec.\n return HdsTableThSortOrderLabelValues.None;\n }\n }\n\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th', 'hds-table__th--sort'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <th\n class={{this.classNames}}\n aria-sort={{this.ariaSort}}\n {{style width=@width minWidth=@width}}\n ...attributes\n scope=\"col\"\n >\n <div class=\"hds-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n {{#if @tooltip}}\n <HdsTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n {{/if}}\n <HdsTableThButtonSort\n @sortOrder={{@sortOrder}}\n @onClick={{@onClickSort}}\n @labelId={{this._labelId}}\n />\n </div>\n </th>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableThSort","Component","_labelId","guidFor","ariaSort","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderLabelValues","Desc","None","align","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","style","HdsTableThButtonTooltip","HdsTableThButtonSort"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAsBM,MAAMA,UAAY,GAAgCC,MAAA,CAAOC,MAAM,CACpEC,iCAAA;AAEK,MAAMC,aAAA,GAAgBD,iCAAA,CAAkCE;AAgBhD,MAAMC,uBAAuBC,SAAA,CAAU;AAC5CC,EAAAA,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE/B,IAAIC,WAAsC;AACxC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,0BAA0BC,GAAG;QAChC,OAAOC,+BAA+BD,GAAG;MAC3C,KAAKD,0BAA0BG,IAAI;QACjC,OAAOD,+BAA+BC,IAAI;AAC5C,MAAA;AACE;QACA,OAAOD,+BAA+BE,IAAI;AAC9C;AACF,EAAA;EAEA,IAAIC,QAAqC;IACvC,MAAM;AAAEA,MAAAA,KAAA,GAAQd;KAAe,GAAG,IAAI,CAACO,IAAI;AAE3CQ,IAAAA,MAAA,CACE,CAAA,sDAAA,EAAyDnB,UAAA,CAAWoB,IAAI,CACtE,IAAA,CAAA,CAAA,YAAA,EACcF,KAAA,CAAA,CAAO,EACvBlB,UAAA,CAAWqB,QAAQ,CAACH,KAAA,CAAA,CAAA;AAEtB,IAAA,OAAOA,KAAA;AACT,EAAA;EAEA,IAAII,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,EAAiB,qBAAA,CAAsB;AAExD;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAA,CAAQC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACN,KAAK,EAAE,CAAA;AACnD,IAAA;AAEA,IAAA,OAAOK,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,ygBAAA,EA0BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,KAAA;QAAAC,uBAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -9,7 +9,7 @@ import { precompileTemplate } from '@ember/template-compilation';
9
9
  import { setComponentTemplate } from '@ember/component';
10
10
 
11
11
  /**
12
- * Copyright IBM Corp. 2021, 2025
12
+ * Copyright IBM Corp. 2021, 2026
13
13
  * SPDX-License-Identifier: MPL-2.0
14
14
  */
15
15
  const ALIGNMENTS = Object.values(HdsTableHorizontalAlignmentValues);
@@ -1 +1 @@
1
- {"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { or } from 'ember-truth-helpers';\nimport style from 'ember-style-modifier';\n\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\nimport HdsTableThButtonTooltip from './th-button-tooltip.gts';\n\nimport type { HdsTableHorizontalAlignment, HdsTableScope } from './types.ts';\n\nexport const ALIGNMENTS: HdsTableHorizontalAlignment[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n scope?: HdsTableScope;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableTh extends Component<HdsTableThSignature> {\n private _labelId = guidFor(this);\n\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Th\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <th\n class={{this.classNames}}\n {{style width=@width minWidth=@width}}\n ...attributes\n scope={{(or @scope \"col\")}}\n >\n {{#if @isVisuallyHidden}}\n <span class=\"sr-only\">{{yield}}</span>\n {{else}}\n {{#if @tooltip}}\n <div class=\"hds-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n <HdsTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n </div>\n {{else}}\n <span\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n {{/if}}\n {{/if}}\n </th>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTh","Component","_labelId","guidFor","align","args","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","or","style","HdsTableThButtonTooltip"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAaM,MAAMA,UAAY,GAAgCC,MAAA,CAAOC,MAAM,CACpEC,iCAAA;AAEK,MAAMC,aAAA,GAAgBD,iCAAA,CAAkCE;AAgBhD,MAAMC,mBAAmBC,SAAA,CAAU;AACxCC,EAAAA,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE/B,IAAIC,QAAqC;IACvC,MAAM;AAAEA,MAAAA,KAAA,GAAQN;KAAe,GAAG,IAAI,CAACO,IAAI;AAE3CC,IAAAA,MAAA,CACE,CAAA,0DAAA,EAA6DZ,UAAA,CAAWa,IAAI,CAC1E,IAAA,CAAA,CAAA,YAAA,EACcH,KAAA,CAAA,CAAO,EACvBV,UAAA,CAAWc,QAAQ,CAACJ,KAAA,CAAA,CAAA;AAEtB,IAAA,OAAOA,KAAA;AACT,EAAA;EAEA,IAAIK,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,CAAgB;AAEjC;IACA,IAAI,IAAI,CAACN,KAAK,EAAE;MACdM,OAAA,CAAQC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACP,KAAK,EAAE,CAAA;AACnD,IAAA;AAEA,IAAA,OAAOM,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,umBAAA,EA4BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;QAAAC,KAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\nimport { or } from 'ember-truth-helpers';\nimport style from 'ember-style-modifier';\n\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\nimport HdsTableThButtonTooltip from './th-button-tooltip.gts';\n\nimport type { HdsTableHorizontalAlignment, HdsTableScope } from './types.ts';\n\nexport const ALIGNMENTS: HdsTableHorizontalAlignment[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableThSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n scope?: HdsTableScope;\n tooltip?: string;\n width?: string;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\n\nexport default class HdsTableTh extends Component<HdsTableThSignature> {\n private _labelId = guidFor(this);\n\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Th\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-table__th'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__th--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <th\n class={{this.classNames}}\n {{style width=@width minWidth=@width}}\n ...attributes\n scope={{(or @scope \"col\")}}\n >\n {{#if @isVisuallyHidden}}\n <span class=\"sr-only\">{{yield}}</span>\n {{else}}\n {{#if @tooltip}}\n <div class=\"hds-table__th-content\">\n <span\n id={{this._labelId}}\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n <HdsTableThButtonTooltip\n @tooltip={{@tooltip}}\n @labelId={{this._labelId}}\n />\n </div>\n {{else}}\n <span\n class=\"hds-typography-body-200 hds-font-weight-semibold\"\n >{{yield}}</span>\n {{/if}}\n {{/if}}\n </th>\n </template>\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTh","Component","_labelId","guidFor","align","args","assert","join","includes","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","or","style","HdsTableThButtonTooltip"],"mappings":";;;;;;;;;;AAAA;;;AAGC;AAaM,MAAMA,UAAY,GAAgCC,MAAA,CAAOC,MAAM,CACpEC,iCAAA;AAEK,MAAMC,aAAA,GAAgBD,iCAAA,CAAkCE;AAgBhD,MAAMC,mBAAmBC,SAAA,CAAU;AACxCC,EAAAA,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAE/B,IAAIC,QAAqC;IACvC,MAAM;AAAEA,MAAAA,KAAA,GAAQN;KAAe,GAAG,IAAI,CAACO,IAAI;AAE3CC,IAAAA,MAAA,CACE,CAAA,0DAAA,EAA6DZ,UAAA,CAAWa,IAAI,CAC1E,IAAA,CAAA,CAAA,YAAA,EACcH,KAAA,CAAA,CAAO,EACvBV,UAAA,CAAWc,QAAQ,CAACJ,KAAA,CAAA,CAAA;AAEtB,IAAA,OAAOA,KAAA;AACT,EAAA;EAEA,IAAIK,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,CAAgB;AAEjC;IACA,IAAI,IAAI,CAACN,KAAK,EAAE;MACdM,OAAA,CAAQC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACP,KAAK,EAAE,CAAA;AACnD,IAAA;AAEA,IAAA,OAAOM,OAAA,CAAQH,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAK,oBAAA,CAAAC,kBAAA,CAAA,umBAAA,EA4BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;QAAAC,KAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -5,7 +5,7 @@ import { precompileTemplate } from '@ember/template-compilation';
5
5
  import { setComponentTemplate } from '@ember/component';
6
6
 
7
7
  /**
8
- * Copyright IBM Corp. 2021, 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":"tr.js","sources":["../../../../src/components/hds/table/tr.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\n// import { HdsTableScopeValues } from './types.ts';\nimport HdsTableThSelectable from './th-selectable.gts';\n\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type { HdsTableSignature } from './index.gts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.gts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: boolean;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLTableRowElement;\n}\n\n/*\n * NOTE: There is currently an issue with `WithBoundArgs` or Glint that causes a typing error where @selectionKey is set as always required.\n *\n * Until this is fixed, we are holding off on doing a union with the SelectableHdsTableTrArgs\n */\n\n// Extended interface for selectable rows\n// export interface SelectableHdsTableTrArgs extends BaseHdsTableTrSignature {\n// Args: BaseHdsTableTrSignature['Args'] & {\n// isSelectable: true;\n// selectionScope?: HdsTableScopeValues.Row;\n// selectionKey: string; // Now required for selectable rows\n// };\n// }\n\n// Union type to combine both possible states\nexport type HdsTableTrSignature = BaseHdsTableTrSignature;\n// | SelectableHdsTableTrArgs;\n\nexport default class HdsTableTr extends Component<HdsTableTrSignature> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n\n <template>\n <tr class=\"hds-table__tr\" ...attributes>\n {{#if @isSelectable}}\n <HdsTableThSelectable\n @isSelected={{@isSelected}}\n @selectionScope={{@selectionScope}}\n @selectionKey={{this.selectionKey}}\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\n @sortBySelectedOrder={{@sortBySelectedOrder}}\n @didInsert={{@didInsert}}\n @willDestroy={{@willDestroy}}\n @onClickSortBySelected={{@onClickSortBySelected}}\n @onSelectionChange={{@onSelectionChange}}\n />\n {{/if}}\n\n {{yield}}\n </tr>\n </template>\n}\n"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTableThSelectable"],"mappings":";;;;;;AAAA;;;AAGC;AAuCD;;;;AAIC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEe,MAAMA,mBAAmBC,SAAA,CAAU;EAChD,IAAIC,YAAAA,GAAmC;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAA,EAAO;MAChEC,MAAA,CACE,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YAAY,CAAA;AAExB,MAAA,OAAO,IAAI,CAACC,IAAI,CAACD,YAAY;AAC/B,IAAA;AACA,IAAA,OAAOK,SAAA;AACT,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,keAAA,EAkBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\n// import { HdsTableScopeValues } from './types.ts';\nimport HdsTableThSelectable from './th-selectable.gts';\n\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\nimport type { HdsTableSignature } from './index.gts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.gts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: boolean;\n selectionAriaLabelSuffix?: string;\n selectionKey?: string;\n selectionScope?: HdsTableScope;\n sortBySelectedOrder?: HdsTableThSortOrder;\n didInsert?: (\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n onSelectionChange?: (\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ) => void;\n willDestroy?: () => void;\n onClickSortBySelected?: HdsTableThSelectableSignature['Args']['onClickSortBySelected'];\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLTableRowElement;\n}\n\n/*\n * NOTE: There is currently an issue with `WithBoundArgs` or Glint that causes a typing error where @selectionKey is set as always required.\n *\n * Until this is fixed, we are holding off on doing a union with the SelectableHdsTableTrArgs\n */\n\n// Extended interface for selectable rows\n// export interface SelectableHdsTableTrArgs extends BaseHdsTableTrSignature {\n// Args: BaseHdsTableTrSignature['Args'] & {\n// isSelectable: true;\n// selectionScope?: HdsTableScopeValues.Row;\n// selectionKey: string; // Now required for selectable rows\n// };\n// }\n\n// Union type to combine both possible states\nexport type HdsTableTrSignature = BaseHdsTableTrSignature;\n// | SelectableHdsTableTrArgs;\n\nexport default class HdsTableTr extends Component<HdsTableTrSignature> {\n get selectionKey(): string | undefined {\n if (this.args.isSelectable && this.args.selectionScope === 'row') {\n assert(\n `@selectionKey must be defined on Table::Tr or B.Tr when @isSelectable is true`,\n this.args.selectionKey\n );\n return this.args.selectionKey;\n }\n return undefined;\n }\n\n <template>\n <tr class=\"hds-table__tr\" ...attributes>\n {{#if @isSelectable}}\n <HdsTableThSelectable\n @isSelected={{@isSelected}}\n @selectionScope={{@selectionScope}}\n @selectionKey={{this.selectionKey}}\n @selectionAriaLabelSuffix={{@selectionAriaLabelSuffix}}\n @sortBySelectedOrder={{@sortBySelectedOrder}}\n @didInsert={{@didInsert}}\n @willDestroy={{@willDestroy}}\n @onClickSortBySelected={{@onClickSortBySelected}}\n @onSelectionChange={{@onSelectionChange}}\n />\n {{/if}}\n\n {{yield}}\n </tr>\n </template>\n}\n"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTableThSelectable"],"mappings":";;;;;;AAAA;;;AAGC;AAuCD;;;;AAIC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEe,MAAMA,mBAAmBC,SAAA,CAAU;EAChD,IAAIC,YAAAA,GAAmC;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAA,EAAO;MAChEC,MAAA,CACE,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YAAY,CAAA;AAExB,MAAA,OAAO,IAAI,CAACC,IAAI,CAACD,YAAY;AAC/B,IAAA;AACA,IAAA,OAAOK,SAAA;AACT,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,keAAA,EAkBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2021, 2025
2
+ * Copyright IBM Corp. 2021, 2026
3
3
  * SPDX-License-Identifier: MPL-2.0
4
4
  */
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\n\nexport enum HdsTableDensityValues {\n Default = 'default',\n Medium = 'medium',\n Short = 'short',\n Tall = 'tall',\n}\nexport type HdsTableDensities = `${HdsTableDensityValues}`;\n\nexport enum HdsTableHorizontalAlignmentValues {\n Center = 'center',\n Left = 'left',\n Right = 'right',\n}\nexport type HdsTableHorizontalAlignment =\n `${HdsTableHorizontalAlignmentValues}`;\n\nexport enum HdsTableScopeValues {\n Col = 'col',\n Row = 'row',\n}\nexport type HdsTableScope = `${HdsTableScopeValues}`;\n\nexport enum HdsTableThSortOrderIconValues {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n SwapVertical = 'swap-vertical',\n}\nexport type HdsTableThSortOrderIcons = `${HdsTableThSortOrderIconValues}`;\n\nexport enum HdsTableThSortOrderLabelValues {\n Asc = 'ascending',\n Desc = 'descending',\n None = 'none',\n}\nexport type HdsTableThSortOrderLabels = `${HdsTableThSortOrderLabelValues}`;\n\nexport enum HdsTableThSortOrderValues {\n Asc = 'asc',\n Desc = 'desc',\n}\nexport type HdsTableThSortOrder = `${HdsTableThSortOrderValues}`;\n\nexport enum HdsTableVerticalAlignmentValues {\n Baseline = 'baseline',\n Middle = 'middle',\n Top = 'top',\n}\nexport type HdsTableVerticalAlignment = `${HdsTableVerticalAlignmentValues}`;\n\nexport type HdsTableSelectableRow = {\n checkbox: HdsFormCheckboxBaseSignature['Element'];\n selectionKey: string;\n};\n\ninterface BaseHdsTableColumn {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n label: string;\n sortingFunction?: HdsTableSortingFunction<unknown>;\n tooltip?: string;\n width?: string;\n}\n\ninterface SortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable: true;\n key: string;\n}\n\ninterface NonSortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable?: false;\n key?: string;\n}\n\nexport type HdsTableColumn = SortableHdsTableColumn | NonSortableHdsTableColumn;\n\nexport type HdsTableSortingFunction<T> = (a: T, b: T) => number;\n\nexport interface HdsTableOnSelectionChangeSignature {\n selectionKey?: string;\n selectionCheckboxElement?: HdsFormCheckboxBaseSignature['Element'];\n selectedRowsKeys: string[];\n selectableRowsStates: {\n selectionKey: string;\n isSelected?: boolean;\n }[];\n}\n\nexport type HdsTableModel = Array<Record<string, unknown>>;\n"],"names":["HdsTableDensityValues","HdsTableHorizontalAlignmentValues","HdsTableScopeValues","HdsTableThSortOrderIconValues","HdsTableThSortOrderLabelValues","HdsTableThSortOrderValues","HdsTableVerticalAlignmentValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAIA,IAAYA,qBAAqB,0BAArBA,qBAAqB,EAAA;EAArBA,qBAAqB,CAAA,SAAA,CAAA,GAAA,SAAA;EAArBA,qBAAqB,CAAA,QAAA,CAAA,GAAA,QAAA;EAArBA,qBAAqB,CAAA,OAAA,CAAA,GAAA,OAAA;EAArBA,qBAAqB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAArBA,qBAAqB;AAAA,CAAA,CAAA,EAAA;AAQjC,IAAYC,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,MAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA;AAAA,EAAA,OAAjCA,iCAAiC;AAAA,CAAA,CAAA,EAAA;AAQ7C,IAAYC,mBAAmB,0BAAnBA,mBAAmB,EAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAAnBA,mBAAmB;AAAA,CAAA,CAAA,EAAA;AAM/B,IAAYC,6BAA6B,0BAA7BA,6BAA6B,EAAA;EAA7BA,6BAA6B,CAAA,WAAA,CAAA,GAAA,YAAA;EAA7BA,6BAA6B,CAAA,SAAA,CAAA,GAAA,UAAA;EAA7BA,6BAA6B,CAAA,cAAA,CAAA,GAAA,eAAA;AAAA,EAAA,OAA7BA,6BAA6B;AAAA,CAAA,CAAA,EAAA;AAOzC,IAAYC,8BAA8B,0BAA9BA,8BAA8B,EAAA;EAA9BA,8BAA8B,CAAA,KAAA,CAAA,GAAA,WAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,YAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAA9BA,8BAA8B;AAAA,CAAA,CAAA,EAAA;AAO1C,IAAYC,yBAAyB,0BAAzBA,yBAAyB,EAAA;EAAzBA,yBAAyB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAzBA,yBAAyB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAAzBA,yBAAyB;AAAA,CAAA,CAAA,EAAA;AAMrC,IAAYC,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,UAAA,CAAA,GAAA,UAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA;EAA/BA,+BAA+B,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAA/BA,+BAA+B;AAAA,CAAA,CAAA,EAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.gts';\n\nexport enum HdsTableDensityValues {\n Default = 'default',\n Medium = 'medium',\n Short = 'short',\n Tall = 'tall',\n}\nexport type HdsTableDensities = `${HdsTableDensityValues}`;\n\nexport enum HdsTableHorizontalAlignmentValues {\n Center = 'center',\n Left = 'left',\n Right = 'right',\n}\nexport type HdsTableHorizontalAlignment =\n `${HdsTableHorizontalAlignmentValues}`;\n\nexport enum HdsTableScopeValues {\n Col = 'col',\n Row = 'row',\n}\nexport type HdsTableScope = `${HdsTableScopeValues}`;\n\nexport enum HdsTableThSortOrderIconValues {\n ArrowDown = 'arrow-down',\n ArrowUp = 'arrow-up',\n SwapVertical = 'swap-vertical',\n}\nexport type HdsTableThSortOrderIcons = `${HdsTableThSortOrderIconValues}`;\n\nexport enum HdsTableThSortOrderLabelValues {\n Asc = 'ascending',\n Desc = 'descending',\n None = 'none',\n}\nexport type HdsTableThSortOrderLabels = `${HdsTableThSortOrderLabelValues}`;\n\nexport enum HdsTableThSortOrderValues {\n Asc = 'asc',\n Desc = 'desc',\n}\nexport type HdsTableThSortOrder = `${HdsTableThSortOrderValues}`;\n\nexport enum HdsTableVerticalAlignmentValues {\n Baseline = 'baseline',\n Middle = 'middle',\n Top = 'top',\n}\nexport type HdsTableVerticalAlignment = `${HdsTableVerticalAlignmentValues}`;\n\nexport type HdsTableSelectableRow = {\n checkbox: HdsFormCheckboxBaseSignature['Element'];\n selectionKey: string;\n};\n\ninterface BaseHdsTableColumn {\n align?: HdsTableHorizontalAlignment;\n isVisuallyHidden?: boolean;\n label: string;\n sortingFunction?: HdsTableSortingFunction<unknown>;\n tooltip?: string;\n width?: string;\n}\n\ninterface SortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable: true;\n key: string;\n}\n\ninterface NonSortableHdsTableColumn extends BaseHdsTableColumn {\n isSortable?: false;\n key?: string;\n}\n\nexport type HdsTableColumn = SortableHdsTableColumn | NonSortableHdsTableColumn;\n\nexport type HdsTableSortingFunction<T> = (a: T, b: T) => number;\n\nexport interface HdsTableOnSelectionChangeSignature {\n selectionKey?: string;\n selectionCheckboxElement?: HdsFormCheckboxBaseSignature['Element'];\n selectedRowsKeys: string[];\n selectableRowsStates: {\n selectionKey: string;\n isSelected?: boolean;\n }[];\n}\n\nexport type HdsTableModel = Array<Record<string, unknown>>;\n"],"names":["HdsTableDensityValues","HdsTableHorizontalAlignmentValues","HdsTableScopeValues","HdsTableThSortOrderIconValues","HdsTableThSortOrderLabelValues","HdsTableThSortOrderValues","HdsTableVerticalAlignmentValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAIA,IAAYA,qBAAqB,0BAArBA,qBAAqB,EAAA;EAArBA,qBAAqB,CAAA,SAAA,CAAA,GAAA,SAAA;EAArBA,qBAAqB,CAAA,QAAA,CAAA,GAAA,QAAA;EAArBA,qBAAqB,CAAA,OAAA,CAAA,GAAA,OAAA;EAArBA,qBAAqB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAArBA,qBAAqB;AAAA,CAAA,CAAA,EAAA;AAQjC,IAAYC,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,MAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA;AAAA,EAAA,OAAjCA,iCAAiC;AAAA,CAAA,CAAA,EAAA;AAQ7C,IAAYC,mBAAmB,0BAAnBA,mBAAmB,EAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAAnBA,mBAAmB;AAAA,CAAA,CAAA,EAAA;AAM/B,IAAYC,6BAA6B,0BAA7BA,6BAA6B,EAAA;EAA7BA,6BAA6B,CAAA,WAAA,CAAA,GAAA,YAAA;EAA7BA,6BAA6B,CAAA,SAAA,CAAA,GAAA,UAAA;EAA7BA,6BAA6B,CAAA,cAAA,CAAA,GAAA,eAAA;AAAA,EAAA,OAA7BA,6BAA6B;AAAA,CAAA,CAAA,EAAA;AAOzC,IAAYC,8BAA8B,0BAA9BA,8BAA8B,EAAA;EAA9BA,8BAA8B,CAAA,KAAA,CAAA,GAAA,WAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,YAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAA9BA,8BAA8B;AAAA,CAAA,CAAA,EAAA;AAO1C,IAAYC,yBAAyB,0BAAzBA,yBAAyB,EAAA;EAAzBA,yBAAyB,CAAA,KAAA,CAAA,GAAA,KAAA;EAAzBA,yBAAyB,CAAA,MAAA,CAAA,GAAA,MAAA;AAAA,EAAA,OAAzBA,yBAAyB;AAAA,CAAA,CAAA,EAAA;AAMrC,IAAYC,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,UAAA,CAAA,GAAA,UAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA;EAA/BA,+BAA+B,CAAA,KAAA,CAAA,GAAA,KAAA;AAAA,EAAA,OAA/BA,+BAA+B;AAAA,CAAA,CAAA,EAAA;;;;"}
@@ -13,7 +13,7 @@ import { setComponentTemplate } from '@ember/component';
13
13
  import { g, i } from 'decorator-transforms/runtime';
14
14
 
15
15
  /**
16
- * Copyright IBM Corp. 2021, 2025
16
+ * Copyright IBM Corp. 2021, 2026
17
17
  * SPDX-License-Identifier: MPL-2.0
18
18
  */
19
19
  const DEFAULT_SIZE = 'medium';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport { HdsTabsSizeValues } from './types.ts';\nimport HdsTabsTab from './tab.gts';\nimport HdsTabsPanel from './panel.gts';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium';\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\n\nexport interface HdsTabsSignature {\n Args: {\n size?: HdsTabsSizes;\n onClickTab?: (event: MouseEvent, tabIndex: number) => void;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n isParentVisible?: boolean;\n };\n Blocks: {\n default: [\n {\n Tab?: WithBoundArgs<\n typeof HdsTabsTab,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'onClick'\n | 'onKeyUp'\n | 'didInsertNode'\n | 'didUpdateNode'\n | 'willDestroyNode'\n >;\n Panel?: WithBoundArgs<\n typeof HdsTabsPanel,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked private _tabNodes: HTMLButtonElement[] = [];\n @tracked private _tabIds: HdsTabsTabIds = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: HdsTabsPanelIds = [];\n @tracked private _selectedTabIndex;\n @tracked private _selectedTabId?: string;\n @tracked private _isControlled: boolean;\n\n get size(): HdsTabsSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor(owner: Owner, args: HdsTabsSignature['Args']) {\n super(owner, args);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this._isControlled = this.args.selectedTabIndex !== undefined;\n this._selectedTabIndex = this.args.selectedTabIndex ?? 0;\n }\n\n get selectedTabIndex(): number {\n if (this._isControlled) {\n return this.args.selectedTabIndex!;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n didInsert = (): void => {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this._tabNodes.length === this._panelNodes.length\n );\n\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabIndex = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabId = (): void => {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n };\n\n didUpdateParentVisibility = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didInsertTab = (element: HTMLButtonElement, isSelected?: boolean): void => {\n this._tabNodes = [...this._tabNodes, element];\n this._tabIds = [...this._tabIds, element.id];\n if (isSelected) {\n this._selectedTabId = element.id;\n }\n };\n\n didUpdateTab = (tabIndex: number, isSelected?: boolean): void => {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n };\n\n willDestroyTab = (element: HTMLButtonElement): void => {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n };\n\n didInsertPanel = (element: HTMLElement, panelId: string): void => {\n this._panelNodes = [...this._panelNodes, element];\n this._panelIds = [...this._panelIds, panelId];\n };\n\n willDestroyPanel = (element: HTMLElement): void => {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n };\n\n onClick = (event: MouseEvent, tabIndex: number): void => {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n };\n\n onKeyUp = (tabIndex: number, event: KeyboardEvent): void => {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n\n if (event.key === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n // Focus tab for keyboard & mouse navigation:\n focusTab = (tabIndex: number, event: KeyboardEvent): void => {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n };\n\n setTabIndicator = (): void => {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n const tabElem = this._tabNodes[this.selectedTabIndex];\n\n if (tabElem != null) {\n const tabElemParentNode = tabElem.parentNode as HTMLElement;\n const tabsElemClosestList = tabElem.closest(\n '.hds-tabs__tablist'\n ) as HTMLElement;\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElemParentNode.offsetParent) {\n const tabLeftPos = tabElemParentNode.offsetLeft;\n const tabWidth = tabElemParentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsElemClosestList.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsElemClosestList.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message = '';\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this._tabNodes.length === 0) {\n message +=\n ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this._tabNodes\\`, whose index range is [0 - ${\n this._tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n };\n\n <template>\n {{! template-lint-disable no-invalid-role }}\n <div\n class={{this.classNames}}\n {{didInsert this.didInsert}}\n {{didUpdate this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{didUpdate this.didUpdateSelectedTabId this._selectedTabId}}\n {{didUpdate this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n >\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n HdsTabsTab\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n HdsTabsPanel\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n </div>\n {{! template-lint-enable no-invalid-role }}\n </template>\n}\n"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","Component","g","prototype","tracked","i","size","args","assert","join","includes","constructor","owner","_isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","_tabNodes","length","_panelNodes","_selectedTabId","_tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","_panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","key","nextTabIndex","focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","preventDefault","focus","next","tabElem","tabElemParentNode","tabsElemClosestList","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","setComponentTemplate","precompileTemplate","strictMode","scope","didUpdate","hash","HdsTabsTab","HdsTabsPanel"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { hash } from '@ember/helper';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n\nimport type { WithBoundArgs } from '@glint/template';\nimport type Owner from '@ember/owner';\n\nimport { HdsTabsSizeValues } from './types.ts';\nimport HdsTabsTab from './tab.gts';\nimport HdsTabsPanel from './panel.gts';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium';\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\n\nexport interface HdsTabsSignature {\n Args: {\n size?: HdsTabsSizes;\n onClickTab?: (event: MouseEvent, tabIndex: number) => void;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n isParentVisible?: boolean;\n };\n Blocks: {\n default: [\n {\n Tab?: WithBoundArgs<\n typeof HdsTabsTab,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'onClick'\n | 'onKeyUp'\n | 'didInsertNode'\n | 'didUpdateNode'\n | 'willDestroyNode'\n >;\n Panel?: WithBoundArgs<\n typeof HdsTabsPanel,\n | 'selectedTabIndex'\n | 'tabIds'\n | 'panelIds'\n | 'didInsertNode'\n | 'willDestroyNode'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked private _tabNodes: HTMLButtonElement[] = [];\n @tracked private _tabIds: HdsTabsTabIds = [];\n @tracked private _panelNodes: HTMLElement[] = [];\n @tracked private _panelIds: HdsTabsPanelIds = [];\n @tracked private _selectedTabIndex;\n @tracked private _selectedTabId?: string;\n @tracked private _isControlled: boolean;\n\n get size(): HdsTabsSizes {\n const { size = DEFAULT_SIZE } = this.args;\n\n assert(\n `@size for \"Hds::Tabs\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n constructor(owner: Owner, args: HdsTabsSignature['Args']) {\n super(owner, args);\n\n // this is to determine if the \"selected\" tab logic is controlled in the consumers' code or is maintained as an internal state\n this._isControlled = this.args.selectedTabIndex !== undefined;\n this._selectedTabIndex = this.args.selectedTabIndex ?? 0;\n }\n\n get selectedTabIndex(): number {\n if (this._isControlled) {\n return this.args.selectedTabIndex!;\n } else {\n return this._selectedTabIndex;\n }\n }\n\n set selectedTabIndex(value) {\n if (this._isControlled) {\n // noop\n } else {\n this._selectedTabIndex = value;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n didInsert = (): void => {\n assert(\n 'The number of Tabs must be equal to the number of Panels',\n this._tabNodes.length === this._panelNodes.length\n );\n\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabIndex = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didUpdateSelectedTabId = (): void => {\n // if the selected tab is set dynamically (eg. in a `each` loop)\n // the `Tab` nodes will be re-inserted/rendered, which means the `this.selectedTabId` variable changes\n // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render\n // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation\n // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable\n if (this._selectedTabId) {\n this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);\n }\n };\n\n didUpdateParentVisibility = (): void => {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n };\n\n didInsertTab = (element: HTMLButtonElement, isSelected?: boolean): void => {\n this._tabNodes = [...this._tabNodes, element];\n this._tabIds = [...this._tabIds, element.id];\n if (isSelected) {\n this._selectedTabId = element.id;\n }\n };\n\n didUpdateTab = (tabIndex: number, isSelected?: boolean): void => {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n };\n\n willDestroyTab = (element: HTMLButtonElement): void => {\n this._tabNodes = this._tabNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._tabIds = this._tabIds.filter(\n (tabId): boolean => tabId !== element.id\n );\n };\n\n didInsertPanel = (element: HTMLElement, panelId: string): void => {\n this._panelNodes = [...this._panelNodes, element];\n this._panelIds = [...this._panelIds, panelId];\n };\n\n willDestroyPanel = (element: HTMLElement): void => {\n this._panelNodes = this._panelNodes.filter(\n (node): boolean => node.id !== element.id\n );\n this._panelIds = this._panelIds.filter(\n (panelId): boolean => panelId !== element.id\n );\n };\n\n onClick = (event: MouseEvent, tabIndex: number): void => {\n this.selectedTabIndex = tabIndex;\n this.setTabIndicator();\n\n // invoke the callback function if it's provided as argument\n if (typeof this.args.onClickTab === 'function') {\n this.args.onClickTab(event, tabIndex);\n }\n };\n\n onKeyUp = (tabIndex: number, event: KeyboardEvent): void => {\n const leftArrow = 'ArrowLeft';\n const rightArrow = 'ArrowRight';\n const enterKey = 'Enter';\n const spaceKey = ' ';\n\n if (event.key === rightArrow) {\n const nextTabIndex = (tabIndex + 1) % this._tabIds.length;\n this.focusTab(nextTabIndex, event);\n } else if (event.key === leftArrow) {\n const prevTabIndex =\n (tabIndex + this._tabIds.length - 1) % this._tabIds.length;\n this.focusTab(prevTabIndex, event);\n } else if (event.key === enterKey || event.key === spaceKey) {\n this.selectedTabIndex = tabIndex;\n }\n // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)\n const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;\n if (parentNode instanceof HTMLElement) {\n parentNode.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'nearest',\n });\n }\n };\n\n // Focus tab for keyboard & mouse navigation:\n focusTab = (tabIndex: number, event: KeyboardEvent): void => {\n event.preventDefault();\n this._tabNodes[tabIndex]?.focus();\n };\n\n setTabIndicator = (): void => {\n // eslint-disable-next-line ember/no-runloop\n next((): void => {\n const tabElem = this._tabNodes[this.selectedTabIndex];\n\n if (tabElem != null) {\n const tabElemParentNode = tabElem.parentNode as HTMLElement;\n const tabsElemClosestList = tabElem.closest(\n '.hds-tabs__tablist'\n ) as HTMLElement;\n\n // this condition is `null` if any of the parents has `display: none`\n if (tabElemParentNode.offsetParent) {\n const tabLeftPos = tabElemParentNode.offsetLeft;\n const tabWidth = tabElemParentNode.offsetWidth;\n\n // Set CSS custom properties for indicator\n tabsElemClosestList.style.setProperty(\n '--indicator-left-pos',\n tabLeftPos + 'px'\n );\n tabsElemClosestList.style.setProperty(\n '--indicator-width',\n tabWidth + 'px'\n );\n }\n } else {\n let message = '';\n message +=\n '\"Hds::Tabs\" has tried to set the indicator for an element that doesn\\'t exist';\n if (this._tabNodes.length === 0) {\n message +=\n ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';\n } else {\n message += ` (the value ${\n this.selectedTabIndex\n } of \\`this.selectedTabIndex\\` is out of bound for the array \\`this._tabNodes\\`, whose index range is [0 - ${\n this._tabNodes.length - 1\n }])`;\n }\n // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn\n warn(message, true, {\n id: 'hds-debug.tabs.setTabIndicator-tabElem-not-available',\n });\n }\n });\n };\n\n <template>\n {{! template-lint-disable no-invalid-role }}\n <div\n class={{this.classNames}}\n {{didInsert this.didInsert}}\n {{didUpdate this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{didUpdate this.didUpdateSelectedTabId this._selectedTabId}}\n {{didUpdate this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n >\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n HdsTabsTab\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n HdsTabsPanel\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n </div>\n {{! template-lint-enable no-invalid-role }}\n </template>\n}\n"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","Component","g","prototype","tracked","i","size","args","assert","join","includes","constructor","owner","_isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","_tabNodes","length","_panelNodes","_selectedTabId","_tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","_panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","key","nextTabIndex","focusTab","prevTabIndex","parentNode","HTMLElement","scrollIntoView","behavior","block","inline","preventDefault","focus","next","tabElem","tabElemParentNode","tabsElemClosestList","closest","offsetParent","tabLeftPos","offsetLeft","tabWidth","offsetWidth","style","setProperty","message","warn","setComponentTemplate","precompileTemplate","strictMode","scope","didUpdate","hash","HdsTabsTab","HdsTabsPanel"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { precompileTemplate } from '@ember/template-compilation';
8
8
  import { setComponentTemplate } from '@ember/component';
9
9
 
10
10
  /**
11
- * Copyright IBM Corp. 2021, 2025
11
+ * Copyright IBM Corp. 2021, 2026
12
12
  * SPDX-License-Identifier: MPL-2.0
13
13
  */
14
14
  class HdsTabsPanel extends Component {
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { not } from 'ember-truth-helpers';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsPanelIds, HdsTabsTabIds } from './types';\n\nexport interface HdsTabsPanelSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n didInsertNode?: (element: HTMLElement, elementId: string) => void;\n willDestroyNode?: (element: HTMLElement) => void;\n };\n Blocks: {\n default: [\n {\n isVisible?: boolean;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsTabsPanel extends Component<HdsTabsPanelSignature> {\n private _panelId = 'panel-' + guidFor(this);\n\n private _elementId?: string;\n\n get nodeIndex(): number | undefined {\n return this.args.panelIds\n ? this.args.panelIds.indexOf(this._panelId)\n : undefined;\n }\n\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n didInsertNode = (element: HTMLElement): void => {\n const { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n this._elementId = element.id;\n didInsertNode(element, this._elementId);\n }\n };\n\n willDestroyNode = (element: HTMLElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n <template>\n <section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this._panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{didInsert this.didInsertNode}}\n {{willDestroy this.willDestroyNode}}\n >\n {{yield (hash isVisible=this.isVisible)}}\n </section>\n </template>\n}\n"],"names":["HdsTabsPanel","Component","_panelId","guidFor","_elementId","nodeIndex","args","panelIds","indexOf","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","id","willDestroyNode","setComponentTemplate","precompileTemplate","strictMode","scope","not","didInsert","willDestroy","hash"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAgCc,MAAMA,qBAAqBC,SAAA,CAAU;AAC1CC,EAAAA,QAAA,GAAW,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAElCC,UAAA;EAER,IAAIC,SAAAA,GAAgC;AAClC,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,GACrB,IAAI,CAACD,IAAI,CAACC,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACN,QAAQ,CAAA,GACxCO,SAAA;AACN,EAAA;EAEA,IAAIC,SAAAA,GAAqB;IACvB,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACC,IAAI,CAACK,gBAAgB;AACtD,EAAA;EAEA,IAAIC,YAAAA,GAAmC;AACrC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAA,GACtB,IAAI,CAACH,IAAI,CAACO,MAAM,GAAG,IAAI,CAACR,SAAS,CAAC,GAClCI,SAAA;AACN,EAAA;EAEAK,aAAA,GAAiBC,OAAS,IAAkB;IAC1C,MAAM;AAAED,MAAAA;KAAe,GAAG,IAAI,CAACR,IAAI;AAEnC,IAAA,IAAI,OAAOQ,kBAAkB,UAAA,EAAY;AACvC,MAAA,IAAI,CAACV,UAAU,GAAGW,OAAA,CAAQC,EAAE;AAC5BF,MAAAA,aAAA,CAAcC,OAAA,EAAS,IAAI,CAACX,UAAU,CAAA;AACxC,IAAA;EACF,CAAA;EAEAa,eAAA,GAAmBF,OAAS,IAAkB;IAC5C,MAAM;AAAEE,MAAAA;KAAiB,GAAG,IAAI,CAACX,IAAI;AAErC,IAAA,IAAI,OAAOW,oBAAoB,UAAA,EAAY;MACzCA,eAAA,CAAgBF,OAAA,CAAA;AAClB,IAAA;EACF,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,6RAAA,EAaA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { hash } from '@ember/helper';\nimport { not } from 'ember-truth-helpers';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport type { HdsTabsTabSignature } from './tab.gts';\nimport type { HdsTabsPanelIds, HdsTabsTabIds } from './types';\n\nexport interface HdsTabsPanelSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: HdsTabsTabSignature['Args']['selectedTabIndex'];\n didInsertNode?: (element: HTMLElement, elementId: string) => void;\n willDestroyNode?: (element: HTMLElement) => void;\n };\n Blocks: {\n default: [\n {\n isVisible?: boolean;\n },\n ];\n };\n Element: HTMLElement;\n}\n\nexport default class HdsTabsPanel extends Component<HdsTabsPanelSignature> {\n private _panelId = 'panel-' + guidFor(this);\n\n private _elementId?: string;\n\n get nodeIndex(): number | undefined {\n return this.args.panelIds\n ? this.args.panelIds.indexOf(this._panelId)\n : undefined;\n }\n\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n didInsertNode = (element: HTMLElement): void => {\n const { didInsertNode } = this.args;\n\n if (typeof didInsertNode === 'function') {\n this._elementId = element.id;\n didInsertNode(element, this._elementId);\n }\n };\n\n willDestroyNode = (element: HTMLElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n <template>\n <section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this._panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{didInsert this.didInsertNode}}\n {{willDestroy this.willDestroyNode}}\n >\n {{yield (hash isVisible=this.isVisible)}}\n </section>\n </template>\n}\n"],"names":["HdsTabsPanel","Component","_panelId","guidFor","_elementId","nodeIndex","args","panelIds","indexOf","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","id","willDestroyNode","setComponentTemplate","precompileTemplate","strictMode","scope","not","didInsert","willDestroy","hash"],"mappings":";;;;;;;;;AAAA;;;AAGC;AAgCc,MAAMA,qBAAqBC,SAAA,CAAU;AAC1CC,EAAAA,QAAA,GAAW,QAAA,GAAWC,OAAA,CAAQ,IAAI,CAAA;EAElCC,UAAA;EAER,IAAIC,SAAAA,GAAgC;AAClC,IAAA,OAAO,IAAI,CAACC,IAAI,CAACC,QAAQ,GACrB,IAAI,CAACD,IAAI,CAACC,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACN,QAAQ,CAAA,GACxCO,SAAA;AACN,EAAA;EAEA,IAAIC,SAAAA,GAAqB;IACvB,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACC,IAAI,CAACK,gBAAgB;AACtD,EAAA;EAEA,IAAIC,YAAAA,GAAmC;AACrC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAA,GACtB,IAAI,CAACH,IAAI,CAACO,MAAM,GAAG,IAAI,CAACR,SAAS,CAAC,GAClCI,SAAA;AACN,EAAA;EAEAK,aAAA,GAAiBC,OAAS,IAAkB;IAC1C,MAAM;AAAED,MAAAA;KAAe,GAAG,IAAI,CAACR,IAAI;AAEnC,IAAA,IAAI,OAAOQ,kBAAkB,UAAA,EAAY;AACvC,MAAA,IAAI,CAACV,UAAU,GAAGW,OAAA,CAAQC,EAAE;AAC5BF,MAAAA,aAAA,CAAcC,OAAA,EAAS,IAAI,CAACX,UAAU,CAAA;AACxC,IAAA;EACF,CAAA;EAEAa,eAAA,GAAmBF,OAAS,IAAkB;IAC5C,MAAM;AAAEE,MAAAA;KAAiB,GAAG,IAAI,CAACX,IAAI;AAErC,IAAA,IAAI,OAAOW,oBAAoB,UAAA,EAAY;MACzCA,eAAA,CAAgBF,OAAA,CAAA;AAClB,IAAA;EACF,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,6RAAA,EAaA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,GAAA;QAAAC,SAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -10,7 +10,7 @@ import { precompileTemplate } from '@ember/template-compilation';
10
10
  import { setComponentTemplate } from '@ember/component';
11
11
 
12
12
  /**
13
- * Copyright IBM Corp. 2021, 2025
13
+ * Copyright IBM Corp. 2021, 2026
14
14
  * SPDX-License-Identifier: MPL-2.0
15
15
  */
16
16
  class HdsTabsTab extends Component {
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport type { IconName } from '@hashicorp/flight-icons/svg';\n\nimport HdsIcon from '../icon/index.gts';\nimport HdsBadgeCount from '../badge-count/index.gts';\n\nimport type { HdsTabsTabIds, HdsTabsPanelIds } from './types.ts';\n\nexport interface HdsTabsTabSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: number;\n icon?: IconName;\n count?: string;\n isSelected?: boolean;\n didInsertNode?: (element: HTMLButtonElement, isSelected?: boolean) => void;\n didUpdateNode?: (nodeIndex: number, isSelected?: boolean) => void;\n willDestroyNode?: (element: HTMLButtonElement) => void;\n onClick?: (event: MouseEvent, tabIndex: number) => void;\n onKeyUp?: (nodeIndex: number, event: KeyboardEvent) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLIElement;\n}\n\nexport default class HdsTabsTab extends Component<HdsTabsTabSignature> {\n private _tabId = 'tab-' + guidFor(this);\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this._tabId);\n }\n\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n get coupledPanelId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.panelIds?.[this.nodeIndex]\n : undefined;\n }\n\n didInsertNode = (\n element: HTMLButtonElement,\n positional: [boolean?]\n ): void => {\n const { didInsertNode } = this.args;\n\n const isSelected = positional[0];\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, isSelected);\n }\n };\n\n didUpdateNode = (): void => {\n const { didUpdateNode } = this.args;\n\n if (typeof didUpdateNode === 'function' && this.nodeIndex !== undefined) {\n didUpdateNode(this.nodeIndex, this.args.isSelected);\n }\n };\n\n willDestroyNode = (element: HTMLButtonElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n onClick = (event: MouseEvent): false | undefined => {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function' && this.nodeIndex !== undefined) {\n onClick(event, this.nodeIndex);\n } else {\n return false;\n }\n };\n\n onKeyUp = (event: KeyboardEvent): void => {\n const { onKeyUp } = this.args;\n\n if (typeof onKeyUp === 'function' && this.nodeIndex !== undefined) {\n onKeyUp(this.nodeIndex, event);\n }\n };\n\n get classNames(): string {\n const classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n {{! template-lint-disable require-context-role no-invalid-role }}\n <li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this._tabId}}\n aria-controls={{this.coupledPanelId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{didInsert this.didInsertNode @isSelected}}\n {{didUpdate this.didUpdateNode @count @isSelected}}\n {{willDestroy this.willDestroyNode}}\n {{on \"click\" this.onClick}}\n {{on \"keyup\" this.onKeyUp}}\n >\n {{#if @icon}}\n <HdsIcon\n @name={{@icon}}\n class=\"hds-tabs__tab-icon\"\n role=\"presentation\"\n />\n {{/if}}\n\n {{yield}}\n\n {{#if @count}}\n <HdsBadgeCount\n @text={{@count}}\n @size=\"small\"\n class=\"hds-tabs__tab-count\"\n role=\"presentation\"\n />\n {{/if}}\n </button>\n </li>\n {{! template-lint-enable require-context-role no-invalid-role }}\n </template>\n}\n"],"names":["HdsTabsTab","Component","_tabId","guidFor","nodeIndex","args","tabIds","indexOf","isSelected","undefined","selectedTabIndex","coupledPanelId","panelIds","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","didUpdate","willDestroy","on","HdsIcon","HdsBadgeCount"],"mappings":"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"}
1
+ {"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didInsert from '@ember/render-modifiers/modifiers/did-insert';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport didUpdate from '@ember/render-modifiers/modifiers/did-update';\n// eslint-disable-next-line ember/no-at-ember-render-modifiers\nimport willDestroy from '@ember/render-modifiers/modifiers/will-destroy';\n\nimport type { IconName } from '@hashicorp/flight-icons/svg';\n\nimport HdsIcon from '../icon/index.gts';\nimport HdsBadgeCount from '../badge-count/index.gts';\n\nimport type { HdsTabsTabIds, HdsTabsPanelIds } from './types.ts';\n\nexport interface HdsTabsTabSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\n panelIds?: HdsTabsPanelIds;\n selectedTabIndex?: number;\n icon?: IconName;\n count?: string;\n isSelected?: boolean;\n didInsertNode?: (element: HTMLButtonElement, isSelected?: boolean) => void;\n didUpdateNode?: (nodeIndex: number, isSelected?: boolean) => void;\n willDestroyNode?: (element: HTMLButtonElement) => void;\n onClick?: (event: MouseEvent, tabIndex: number) => void;\n onKeyUp?: (nodeIndex: number, event: KeyboardEvent) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLIElement;\n}\n\nexport default class HdsTabsTab extends Component<HdsTabsTabSignature> {\n private _tabId = 'tab-' + guidFor(this);\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this._tabId);\n }\n\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n get coupledPanelId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.panelIds?.[this.nodeIndex]\n : undefined;\n }\n\n didInsertNode = (\n element: HTMLButtonElement,\n positional: [boolean?]\n ): void => {\n const { didInsertNode } = this.args;\n\n const isSelected = positional[0];\n\n if (typeof didInsertNode === 'function') {\n didInsertNode(element, isSelected);\n }\n };\n\n didUpdateNode = (): void => {\n const { didUpdateNode } = this.args;\n\n if (typeof didUpdateNode === 'function' && this.nodeIndex !== undefined) {\n didUpdateNode(this.nodeIndex, this.args.isSelected);\n }\n };\n\n willDestroyNode = (element: HTMLButtonElement): void => {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n };\n\n onClick = (event: MouseEvent): false | undefined => {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function' && this.nodeIndex !== undefined) {\n onClick(event, this.nodeIndex);\n } else {\n return false;\n }\n };\n\n onKeyUp = (event: KeyboardEvent): void => {\n const { onKeyUp } = this.args;\n\n if (typeof onKeyUp === 'function' && this.nodeIndex !== undefined) {\n onKeyUp(this.nodeIndex, event);\n }\n };\n\n get classNames(): string {\n const classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n {{! template-lint-disable require-context-role no-invalid-role }}\n <li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this._tabId}}\n aria-controls={{this.coupledPanelId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{didInsert this.didInsertNode @isSelected}}\n {{didUpdate this.didUpdateNode @count @isSelected}}\n {{willDestroy this.willDestroyNode}}\n {{on \"click\" this.onClick}}\n {{on \"keyup\" this.onKeyUp}}\n >\n {{#if @icon}}\n <HdsIcon\n @name={{@icon}}\n class=\"hds-tabs__tab-icon\"\n role=\"presentation\"\n />\n {{/if}}\n\n {{yield}}\n\n {{#if @count}}\n <HdsBadgeCount\n @text={{@count}}\n @size=\"small\"\n class=\"hds-tabs__tab-count\"\n role=\"presentation\"\n />\n {{/if}}\n </button>\n </li>\n {{! template-lint-enable require-context-role no-invalid-role }}\n </template>\n}\n"],"names":["HdsTabsTab","Component","_tabId","guidFor","nodeIndex","args","tabIds","indexOf","isSelected","undefined","selectedTabIndex","coupledPanelId","panelIds","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","didInsert","didUpdate","willDestroy","on","HdsIcon","HdsBadgeCount"],"mappings":";;;;;;;;;;;AAAA;;;AAGC;AAuCc,MAAMA,mBAAmBC,SAAA,CAAU;AACxCC,EAAAA,MAAA,GAAS,MAAA,GAASC,OAAA,CAAQ,IAAI,CAAA;EAEtC,IAAIC,SAAAA,GAAgC;IAClC,OAAO,IAAI,CAACC,IAAI,CAACC,MAAM,EAAEC,OAAA,CAAQ,IAAI,CAACL,MAAM,CAAA;AAC9C,EAAA;EAEA,IAAIM,UAAAA,GAAsB;AACxB,IAAA,OACE,IAAI,CAACJ,SAAS,KAAKK,SAAA,IACnB,IAAI,CAACL,SAAS,KAAK,IAAI,CAACC,IAAI,CAACK,gBAAgB;AAEjD,EAAA;EAEA,IAAIC,cAAAA,GAAqC;AACvC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKK,SAAA,GACtB,IAAI,CAACJ,IAAI,CAACO,QAAQ,GAAG,IAAI,CAACR,SAAS,CAAC,GACpCK,SAAA;AACN,EAAA;AAEAI,EAAAA,aAAA,GAAgBA,CACdC,OAAS,EACTC,eACK;IACL,MAAM;AAAEF,MAAAA;KAAe,GAAG,IAAI,CAACR,IAAI;AAEnC,IAAA,MAAMG,UAAA,GAAaO,UAAU,CAAC,CAAA,CAAE;AAEhC,IAAA,IAAI,OAAOF,kBAAkB,UAAA,EAAY;AACvCA,MAAAA,aAAA,CAAcC,OAAA,EAASN,UAAA,CAAA;AACzB,IAAA;EACF,CAAA;EAEAQ,aAAA,GAAgBA,MAAQ;IACtB,MAAM;AAAEA,MAAAA;KAAe,GAAG,IAAI,CAACX,IAAI;IAEnC,IAAI,OAAOW,aAAA,KAAkB,UAAA,IAAc,IAAI,CAACZ,SAAS,KAAKK,SAAA,EAAW;MACvEO,aAAA,CAAc,IAAI,CAACZ,SAAS,EAAE,IAAI,CAACC,IAAI,CAACG,UAAU,CAAA;AACpD,IAAA;EACF,CAAA;EAEAS,eAAA,GAAmBH,OAAS,IAAwB;IAClD,MAAM;AAAEG,MAAAA;KAAiB,GAAG,IAAI,CAACZ,IAAI;AAErC,IAAA,IAAI,OAAOY,oBAAoB,UAAA,EAAY;MACzCA,eAAA,CAAgBH,OAAA,CAAA;AAClB,IAAA;EACF,CAAA;EAEAI,OAAA,GAAWC,KAAO,IAA8B;IAC9C,MAAM;AAAED,MAAAA;KAAS,GAAG,IAAI,CAACb,IAAI;IAE7B,IAAI,OAAOa,OAAA,KAAY,UAAA,IAAc,IAAI,CAACd,SAAS,KAAKK,SAAA,EAAW;AACjES,MAAAA,OAAA,CAAQC,KAAA,EAAO,IAAI,CAACf,SAAS,CAAA;AAC/B,IAAA,CAAA,MAAO;AACL,MAAA,OAAO,KAAA;AACT,IAAA;EACF,CAAA;EAEAgB,OAAA,GAAWD,KAAO,IAAoB;IACpC,MAAM;AAAEC,MAAAA;KAAS,GAAG,IAAI,CAACf,IAAI;IAE7B,IAAI,OAAOe,OAAA,KAAY,UAAA,IAAc,IAAI,CAAChB,SAAS,KAAKK,SAAA,EAAW;AACjEW,MAAAA,OAAA,CAAQ,IAAI,CAAChB,SAAS,EAAEe,KAAA,CAAA;AAC1B,IAAA;EACF,CAAA;EAEA,IAAIE,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,eAAA,CAAgB;IAEjC,IAAI,IAAI,CAACd,UAAU,EAAE;AACnBc,MAAAA,OAAA,CAAQC,IAAI,CAAC,CAAA,0BAAA,CAA4B,CAAA;AAC3C,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,m6BAAA,EAsCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,WAAA;QAAAC,EAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -17,7 +17,7 @@ import { setComponentTemplate } from '@ember/component';
17
17
  import { g, i } from 'decorator-transforms/runtime';
18
18
 
19
19
  /**
20
- * Copyright IBM Corp. 2021, 2025
20
+ * Copyright IBM Corp. 2021, 2026
21
21
  * SPDX-License-Identifier: MPL-2.0
22
22
  */
23
23
  const COLORS = Object.values(HdsTagColorValues);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/tag/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { TrackedWeakSet } from 'tracked-built-ins';\nimport { assert } from '@ember/debug';\nimport { modifier } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { or } from 'ember-truth-helpers';\nimport { hash } from '@ember/helper';\n\nimport { HdsTagColorValues } from './types.ts';\nimport { HdsTagTooltipPlacementValues } from './types.ts';\nimport HdsInteractive from '../interactive/index.gts';\nimport HdsTooltipButton from '../tooltip-button/index.gts';\nimport HdsTextBody from '../text/body.gts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\n\nimport type { HdsTagColors } from './types.ts';\nimport type { HdsTagTooltipPlacements } from './types.ts';\nimport type { HdsInteractiveSignature } from '../interactive/index.gts';\n\nexport const COLORS: HdsTagColors[] = Object.values(HdsTagColorValues);\nexport const DEFAULT_COLOR = HdsTagColorValues.Primary;\nexport const TOOLTIP_PLACEMENTS: HdsTagTooltipPlacements[] = Object.values(\n HdsTagTooltipPlacementValues\n);\nexport const DEFAULT_TOOLTIP_PLACEMENT = HdsTagTooltipPlacementValues.Top;\n\nexport interface HdsTagSignature {\n Args: HdsInteractiveSignature['Args'] & {\n color?: HdsTagColors;\n text: string;\n ariaLabel?: string;\n tooltipPlacement?: HdsTagTooltipPlacements;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n };\n Element: HTMLSpanElement;\n}\n\nconst overflowed = new TrackedWeakSet<Element>();\n\nlet observer: ResizeObserver | undefined;\n\nif (typeof ResizeObserver !== 'undefined') {\n observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const textContainer = entry.target.querySelector(\n '.hds-tag__text-container'\n );\n if (\n textContainer &&\n textContainer.scrollHeight > textContainer.clientHeight\n ) {\n overflowed.add(entry.target);\n } else {\n overflowed.delete(entry.target);\n }\n });\n });\n}\n\nexport default class HdsTag extends Component<HdsTagSignature> {\n @tracked private _element?: HTMLElement;\n private get _isTextOverflow(): boolean {\n if (!this._element) {\n return false;\n }\n return overflowed.has(this._element);\n }\n\n private _setUpObserver = modifier((element: HTMLElement) => {\n this._element = element;\n observer?.observe(element);\n\n return () => {\n if (this._element) {\n observer?.unobserve(this._element);\n }\n delete this._element;\n };\n });\n\n get tooltipPlacement(): HdsTagTooltipPlacements {\n const { tooltipPlacement = DEFAULT_TOOLTIP_PLACEMENT } = this.args;\n\n assert(\n '@tooltipPlacement for \"Hds::Tag\" must have a valid value',\n tooltipPlacement == undefined ||\n TOOLTIP_PLACEMENTS.includes(tooltipPlacement)\n );\n\n return tooltipPlacement;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onDismiss(): ((event: MouseEvent, ...args: any[]) => void) | false {\n const { onDismiss } = this.args;\n\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return false;\n }\n }\n\n get text(): string {\n const { text } = this.args;\n\n assert('@text for \"Hds::Tag\" must have a valid value', text !== undefined);\n\n return text;\n }\n\n get ariaLabel(): string {\n const tagAriaLabel = this.args.ariaLabel ?? 'Dismiss';\n return tagAriaLabel + ' ' + this.args.text;\n }\n\n get color(): HdsTagColors | false {\n if (this.args.href || this.args.route) {\n const { color = DEFAULT_COLOR } = this.args;\n assert(\n `@color for \"Hds::Tag\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n return color;\n } else if (this.args.color) {\n assert(\n '@color can only be applied to \"Hds::Tag\" along with either @href or @route',\n this.args.href || this.args.route\n );\n }\n return false;\n }\n\n get classNames(): string {\n const classes = ['hds-tag'];\n\n // add a class based on the @color argument\n if (this.color) {\n classes.push(`hds-tag--color-${this.color}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <span class={{this.classNames}} {{this._setUpObserver}} ...attributes>\n {{#if this.onDismiss}}\n <button\n class=\"hds-tag__dismiss\"\n type=\"button\"\n aria-label={{this.ariaLabel}}\n {{on \"click\" this.onDismiss}}\n >\n <HdsIcon class=\"hds-tag__dismiss-icon\" @name=\"x\" @size=\"16\" />\n </button>\n {{/if}}\n {{#if (or @href @route)}}\n {{#if this._isTextOverflow}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n {{hdsTooltip\n this.text\n options=(hash placement=this.tooltipPlacement)\n }}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{else}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{/if}}\n {{else}}\n {{#if this._isTextOverflow}}\n <HdsTooltipButton\n class=\"hds-tag__text\"\n @text={{this.text}}\n @placement={{this.tooltipPlacement}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsTooltipButton>\n {{else}}\n <span class=\"hds-tag__text\">\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </span>\n {{/if}}\n {{/if}}\n </span>\n </template>\n}\n"],"names":["COLORS","Object","values","HdsTagColorValues","DEFAULT_COLOR","Primary","TOOLTIP_PLACEMENTS","HdsTagTooltipPlacementValues","DEFAULT_TOOLTIP_PLACEMENT","Top","overflowed","TrackedWeakSet","observer","ResizeObserver","entries","forEach","entry","textContainer","target","querySelector","scrollHeight","clientHeight","add","delete","HdsTag","Component","g","prototype","tracked","i","_isTextOverflow","_element","has","_setUpObserver","modifier","element","observe","unobserve","tooltipPlacement","args","assert","undefined","includes","onDismiss","text","ariaLabel","tagAriaLabel","color","href","route","join","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","on","HdsIcon","or","HdsInteractive","hdsTooltip","hash","HdsTextBody","HdsTooltipButton"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/tag/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { TrackedWeakSet } from 'tracked-built-ins';\nimport { assert } from '@ember/debug';\nimport { modifier } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { or } from 'ember-truth-helpers';\nimport { hash } from '@ember/helper';\n\nimport { HdsTagColorValues } from './types.ts';\nimport { HdsTagTooltipPlacementValues } from './types.ts';\nimport HdsInteractive from '../interactive/index.gts';\nimport HdsTooltipButton from '../tooltip-button/index.gts';\nimport HdsTextBody from '../text/body.gts';\nimport HdsIcon from '../icon/index.gts';\nimport hdsTooltip from '../../../modifiers/hds-tooltip.ts';\n\nimport type { HdsTagColors } from './types.ts';\nimport type { HdsTagTooltipPlacements } from './types.ts';\nimport type { HdsInteractiveSignature } from '../interactive/index.gts';\n\nexport const COLORS: HdsTagColors[] = Object.values(HdsTagColorValues);\nexport const DEFAULT_COLOR = HdsTagColorValues.Primary;\nexport const TOOLTIP_PLACEMENTS: HdsTagTooltipPlacements[] = Object.values(\n HdsTagTooltipPlacementValues\n);\nexport const DEFAULT_TOOLTIP_PLACEMENT = HdsTagTooltipPlacementValues.Top;\n\nexport interface HdsTagSignature {\n Args: HdsInteractiveSignature['Args'] & {\n color?: HdsTagColors;\n text: string;\n ariaLabel?: string;\n tooltipPlacement?: HdsTagTooltipPlacements;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onDismiss?: (event: MouseEvent, ...args: any[]) => void;\n };\n Element: HTMLSpanElement;\n}\n\nconst overflowed = new TrackedWeakSet<Element>();\n\nlet observer: ResizeObserver | undefined;\n\nif (typeof ResizeObserver !== 'undefined') {\n observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const textContainer = entry.target.querySelector(\n '.hds-tag__text-container'\n );\n if (\n textContainer &&\n textContainer.scrollHeight > textContainer.clientHeight\n ) {\n overflowed.add(entry.target);\n } else {\n overflowed.delete(entry.target);\n }\n });\n });\n}\n\nexport default class HdsTag extends Component<HdsTagSignature> {\n @tracked private _element?: HTMLElement;\n private get _isTextOverflow(): boolean {\n if (!this._element) {\n return false;\n }\n return overflowed.has(this._element);\n }\n\n private _setUpObserver = modifier((element: HTMLElement) => {\n this._element = element;\n observer?.observe(element);\n\n return () => {\n if (this._element) {\n observer?.unobserve(this._element);\n }\n delete this._element;\n };\n });\n\n get tooltipPlacement(): HdsTagTooltipPlacements {\n const { tooltipPlacement = DEFAULT_TOOLTIP_PLACEMENT } = this.args;\n\n assert(\n '@tooltipPlacement for \"Hds::Tag\" must have a valid value',\n tooltipPlacement == undefined ||\n TOOLTIP_PLACEMENTS.includes(tooltipPlacement)\n );\n\n return tooltipPlacement;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get onDismiss(): ((event: MouseEvent, ...args: any[]) => void) | false {\n const { onDismiss } = this.args;\n\n if (typeof onDismiss === 'function') {\n return onDismiss;\n } else {\n return false;\n }\n }\n\n get text(): string {\n const { text } = this.args;\n\n assert('@text for \"Hds::Tag\" must have a valid value', text !== undefined);\n\n return text;\n }\n\n get ariaLabel(): string {\n const tagAriaLabel = this.args.ariaLabel ?? 'Dismiss';\n return tagAriaLabel + ' ' + this.args.text;\n }\n\n get color(): HdsTagColors | false {\n if (this.args.href || this.args.route) {\n const { color = DEFAULT_COLOR } = this.args;\n assert(\n `@color for \"Hds::Tag\" must be one of the following: ${COLORS.join(\n ', '\n )}; received: ${color}`,\n COLORS.includes(color)\n );\n return color;\n } else if (this.args.color) {\n assert(\n '@color can only be applied to \"Hds::Tag\" along with either @href or @route',\n this.args.href || this.args.route\n );\n }\n return false;\n }\n\n get classNames(): string {\n const classes = ['hds-tag'];\n\n // add a class based on the @color argument\n if (this.color) {\n classes.push(`hds-tag--color-${this.color}`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <span class={{this.classNames}} {{this._setUpObserver}} ...attributes>\n {{#if this.onDismiss}}\n <button\n class=\"hds-tag__dismiss\"\n type=\"button\"\n aria-label={{this.ariaLabel}}\n {{on \"click\" this.onDismiss}}\n >\n <HdsIcon class=\"hds-tag__dismiss-icon\" @name=\"x\" @size=\"16\" />\n </button>\n {{/if}}\n {{#if (or @href @route)}}\n {{#if this._isTextOverflow}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n {{hdsTooltip\n this.text\n options=(hash placement=this.tooltipPlacement)\n }}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{else}}\n <HdsInteractive\n class=\"hds-tag__link\"\n @current-when={{@current-when}}\n @models={{@models}}\n @model={{@model}}\n @query={{@query}}\n @replace={{@replace}}\n @route={{@route}}\n @isRouteExternal={{@isRouteExternal}}\n @href={{@href}}\n @isHrefExternal={{@isHrefExternal}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsInteractive>\n {{/if}}\n {{else}}\n {{#if this._isTextOverflow}}\n <HdsTooltipButton\n class=\"hds-tag__text\"\n @text={{this.text}}\n @placement={{this.tooltipPlacement}}\n >\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </HdsTooltipButton>\n {{else}}\n <span class=\"hds-tag__text\">\n <HdsTextBody\n @tag=\"span\"\n @size=\"100\"\n @weight=\"medium\"\n class=\"hds-tag__text-container\"\n >\n {{this.text}}\n </HdsTextBody>\n </span>\n {{/if}}\n {{/if}}\n </span>\n </template>\n}\n"],"names":["COLORS","Object","values","HdsTagColorValues","DEFAULT_COLOR","Primary","TOOLTIP_PLACEMENTS","HdsTagTooltipPlacementValues","DEFAULT_TOOLTIP_PLACEMENT","Top","overflowed","TrackedWeakSet","observer","ResizeObserver","entries","forEach","entry","textContainer","target","querySelector","scrollHeight","clientHeight","add","delete","HdsTag","Component","g","prototype","tracked","i","_isTextOverflow","_element","has","_setUpObserver","modifier","element","observe","unobserve","tooltipPlacement","args","assert","undefined","includes","onDismiss","text","ariaLabel","tagAriaLabel","color","href","route","join","classNames","classes","push","setComponentTemplate","precompileTemplate","strictMode","scope","on","HdsIcon","or","HdsInteractive","hdsTooltip","hash","HdsTextBody","HdsTooltipButton"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;AAGC;AAuBM,MAAMA,MAAQ,GAAiBC,MAAA,CAAOC,MAAM,CAACC,iBAAA;AAC7C,MAAMC,aAAA,GAAgBD,iBAAA,CAAkBE;AACxC,MAAMC,kBAAoB,GAA4BL,MAAA,CAAOC,MAAM,CACxEK,4BAAA;AAEK,MAAMC,yBAAA,GAA4BD,4BAAA,CAA6BE;AActE,MAAMC,UAAA,GAAa,IAAIC,cAAA,EAAe;AAEtC,IAAIC,QAAoC;AAExC,IAAI,OAAOC,mBAAmB,WAAA,EAAa;AACzCD,EAAAA,QAAA,GAAW,IAAIC,eAAgBC,OAAA,IAAA;AAC7BA,IAAAA,OAAA,CAAQC,OAAO,CAAEC,KAAA,IAAA;MACf,MAAMC,aAAA,GAAgBD,KAAA,CAAME,MAAM,CAACC,aAAa,CAC9C,0BAAA,CAAA;MAEF,IACEF,iBACAA,aAAA,CAAcG,YAAY,GAAGH,aAAA,CAAcI,YAAY,EACvD;AACAX,QAAAA,UAAA,CAAWY,GAAG,CAACN,KAAA,CAAME,MAAM,CAAA;AAC7B,MAAA,CAAA,MAAO;AACLR,QAAAA,UAAA,CAAWa,MAAM,CAACP,KAAA,CAAME,MAAM,CAAA;AAChC,MAAA;AACF,IAAA,CAAA,CAAA;AACF,EAAA,CAAA,CAAA;AACF;AAEe,MAAMM,eAAeC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CAC3CC,OAAA,CAAA,CAAA;AAAA;EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAA,MAAA;EACD,IAAYC,eAAAA,GAA2B;AACrC,IAAA,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;AAClB,MAAA,OAAO,KAAA;AACT,IAAA;AACA,IAAA,OAAOrB,UAAA,CAAWsB,GAAG,CAAC,IAAI,CAACD,QAAQ,CAAA;AACrC,EAAA;AAEQE,EAAAA,cAAA,GAAiBC,QAAA,CAAUC,OAAS,IAAA;IAC1C,IAAI,CAACJ,QAAQ,GAAGI,OAAA;AAChBvB,IAAAA,QAAA,EAAUwB,OAAA,CAAQD,OAAA,CAAA;AAElB,IAAA,OAAO,MAAA;MACL,IAAI,IAAI,CAACJ,QAAQ,EAAE;AACjBnB,QAAAA,QAAA,EAAUyB,SAAA,CAAU,IAAI,CAACN,QAAQ,CAAA;AACnC,MAAA;MACA,OAAO,IAAI,CAACA,QAAQ;IACtB,CAAA;AACF,EAAA,CAAA,CAAA;EAEA,IAAIO,mBAA4C;IAC9C,MAAM;AAAEA,MAAAA,gBAAA,GAAmB9B;KAA2B,GAAG,IAAI,CAAC+B,IAAI;AAElEC,IAAAA,MAAA,CACE,0DAAA,EACAF,gBAAA,IAAoBG,SAAA,IAClBnC,kBAAA,CAAmBoC,QAAQ,CAACJ,gBAAA,CAAA,CAAA;AAGhC,IAAA,OAAOA,gBAAA;AACT,EAAA;AAEA;EACA,IAAIK,SAAAA,GAAmE;IACrE,MAAM;AAAEA,MAAAA;KAAW,GAAG,IAAI,CAACJ,IAAI;AAE/B,IAAA,IAAI,OAAOI,cAAc,UAAA,EAAY;AACnC,MAAA,OAAOA,SAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAO,KAAA;AACT,IAAA;AACF,EAAA;EAEA,IAAIC,IAAAA,GAAe;IACjB,MAAM;AAAEA,MAAAA;KAAM,GAAG,IAAI,CAACL,IAAI;AAE1BC,IAAAA,MAAA,CAAO,gDAAgDI,IAAA,KAASH,SAAA,CAAA;AAEhE,IAAA,OAAOG,IAAA;AACT,EAAA;EAEA,IAAIC,SAAAA,GAAoB;IACtB,MAAMC,eAAe,IAAI,CAACP,IAAI,CAACM,SAAS,IAAI,SAAA;IAC5C,OAAOC,eAAe,GAAA,GAAM,IAAI,CAACP,IAAI,CAACK,IAAI;AAC5C,EAAA;EAEA,IAAIG,KAAAA,GAA8B;IAChC,IAAI,IAAI,CAACR,IAAI,CAACS,IAAI,IAAI,IAAI,CAACT,IAAI,CAACU,KAAK,EAAE;MACrC,MAAM;AAAEF,QAAAA,KAAA,GAAQ3C;OAAe,GAAG,IAAI,CAACmC,IAAI;AAC3CC,MAAAA,MAAA,CACE,CAAA,oDAAA,EAAuDxC,MAAA,CAAOkD,IAAI,CAChE,IAAA,CAAA,CAAA,YAAA,EACcH,KAAA,CAAA,CAAO,EACvB/C,MAAA,CAAO0C,QAAQ,CAACK,KAAA,CAAA,CAAA;AAElB,MAAA,OAAOA,KAAA;AACT,IAAA,CAAA,MAAO,IAAI,IAAI,CAACR,IAAI,CAACQ,KAAK,EAAE;AAC1BP,MAAAA,MAAA,CACE,4EAAA,EACA,IAAI,CAACD,IAAI,CAACS,IAAI,IAAI,IAAI,CAACT,IAAI,CAACU,KAAK,CAAA;AAErC,IAAA;AACA,IAAA,OAAO,KAAA;AACT,EAAA;EAEA,IAAIE,UAAAA,GAAqB;AACvB,IAAA,MAAMC,OAAA,GAAU,CAAC,SAAA,CAAU;AAE3B;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAA,CAAQC,IAAI,CAAC,CAAA,eAAA,EAAkB,IAAI,CAACN,KAAK,EAAE,CAAA;AAC7C,IAAA;AAEA,IAAA,OAAOK,OAAA,CAAQF,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAAA,m6DAAA,EA4FA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;QAAAC,OAAA;QAAAC,EAAA;QAAAC,cAAA;oBAAAC,kBAAA;QAAAC,IAAA;QAAAC,WAAA;AAAAC,0BAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
6
6
  import { setComponentTemplate } from '@ember/component';
7
7
 
8
8
  /**
9
- * Copyright IBM Corp. 2021, 2025
9
+ * Copyright IBM Corp. 2021, 2026
10
10
  * SPDX-License-Identifier: MPL-2.0
11
11
  */
12
12
  const SIZES = [HdsTextSizeValues.ThreeHundred, HdsTextSizeValues.TwoHundred, HdsTextSizeValues.OneHundred];
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sources":["../../../../src/components/hds/text/body.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2025\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport HdsText from './index.gts';\nimport { HdsTextSizeValues, HdsTextWeightValues } from './types.ts';\nimport type {\n HdsTextAligns,\n HdsTextColors,\n HdsTextTags,\n HdsTextWeights,\n} from './types.ts';\n\n// notice: only some combinations of size + font-weight are allowed (per design specs)\n// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192\n\n// Allow consumers to provide either string or number representation of size\ntype HdsTextBodySizeNumber = Extract<\n HdsTextSizeValues,\n | HdsTextSizeValues.OneHundred\n | HdsTextSizeValues.TwoHundred\n | HdsTextSizeValues.ThreeHundred\n>;\ntype HdsTextBodySizeString = `${HdsTextBodySizeNumber}`;\nexport type HdsTextBodySizes = HdsTextBodySizeNumber | HdsTextBodySizeString;\nexport const SIZES: HdsTextBodySizes[] = [\n HdsTextSizeValues.ThreeHundred,\n HdsTextSizeValues.TwoHundred,\n HdsTextSizeValues.OneHundred,\n];\nexport const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;\n\nexport const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;\nexport type HdsTextBodyWeight = Extract<\n HdsTextWeights,\n 'regular' | 'medium' | 'semibold'\n>;\nexport const WEIGHTS_PER_SIZE: Record<HdsTextBodySizes, HdsTextBodyWeight[]> = {\n 300: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 200: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 100: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n};\n\nexport interface HdsTextBodySignature {\n Args: {\n size?: HdsTextBodySizes;\n tag?: HdsTextTags;\n weight?: HdsTextBodyWeight;\n align?: HdsTextAligns;\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n color?: string | HdsTextColors;\n };\n Element:\n | HTMLSpanElement\n | HTMLHeadingElement\n | HTMLParagraphElement\n | HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport default class HdsTextBody extends Component<HdsTextBodySignature> {\n // Sets the \"size\" for the text\n get size(): HdsTextBodySizes {\n let { size = DEFAULT_SIZE } = this.args;\n\n // let's be a bit forgiving with the consumers\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n assert(\n `@size for \"Hds::Text::Body\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n // Sets the \"weight\" for the text\n get weight(): HdsTextWeights {\n const { weight = DEFAULT_WEIGHT } = this.args;\n\n const weights = WEIGHTS_PER_SIZE[this.size];\n\n assert(\n `@weight for \"Hds::Text::Body\" with @size=${\n this.size\n } must be one of the following: ${weights.join(\n ', '\n )}; received: ${weight}`,\n weights.includes(weight)\n );\n\n return weight;\n }\n\n <template>\n <HdsText\n @group=\"body\"\n @size={{this.size}}\n @weight={{this.weight}}\n @align={{@align}}\n @color={{@color}}\n @tag={{@tag}}\n ...attributes\n >{{yield}}</HdsText>\n </template>\n}\n"],"names":["SIZES","HdsTextSizeValues","ThreeHundred","TwoHundred","OneHundred","DEFAULT_SIZE","DEFAULT_WEIGHT","HdsTextWeightValues","Regular","WEIGHTS_PER_SIZE","Medium","Semibold","HdsTextBody","Component","size","args","parseInt","assert","join","includes","weight","weights","setComponentTemplate","precompileTemplate","strictMode","scope","HdsText"],"mappings":";;;;;;;AAAA;;;AAGC;AA0BM,MAAMA,KAAO,GAAqB,CACvCC,iBAAA,CAAkBC,YAAY,EAC9BD,iBAAA,CAAkBE,UAAU,EAC5BF,iBAAA,CAAkBG,UAAU;AAEvB,MAAMC,YAAA,GAAeJ,iBAAA,CAAkBE;AAEvC,MAAMG,cAAA,GAAiBC,mBAAA,CAAoBC;AAK3C,MAAMC,gBAA2C,GAAuB;AAC7E,EAAA,GAAA,EAAK,CACHF,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ,CAC7B;AACD,EAAA,GAAA,EAAK,CACHJ,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ,CAC7B;AACD,EAAA,GAAA,EAAK,CACHJ,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ;AAEhC;AAqBe,MAAMC,oBAAoBC,SAAA,CAAU;AACjD;EACA,IAAIC,OAAyB;IAC3B,IAAI;AAAEA,MAAAA,IAAA,GAAOT;KAAc,GAAG,IAAI,CAACU,IAAI;AAEvC;AACA,IAAA,IAAI,OAAOD,SAAS,QAAA,EAAU;AAC5BA,MAAAA,IAAA,GAAOE,SAASF,IAAA,EAAM,EAAA,CAAA;AACxB,IAAA;AAEAG,IAAAA,MAAA,CACE,CAAA,0DAAA,EAA6DjB,KAAA,CAAMkB,IAAI,CACrE,IAAA,CAAA,CAAA,YAAA,EACcJ,IAAA,CAAA,CAAM,EACtBd,KAAA,CAAMmB,QAAQ,CAACL,IAAA,CAAA,CAAA;AAGjB,IAAA,OAAOA,IAAA;AACT,EAAA;AAEA;EACA,IAAIM,SAAyB;IAC3B,MAAM;AAAEA,MAAAA,MAAA,GAASd;KAAgB,GAAG,IAAI,CAACS,IAAI;AAE7C,IAAA,MAAMM,UAAUZ,gBAAgB,CAAC,IAAI,CAACK,IAAI,CAAC;IAE3CG,MAAA,CACE,4CACE,IAAI,CAACH,IAAI,CAAA,+BAAA,EACuBO,OAAA,CAAQH,IAAI,CAC5C,IAAA,CAAA,CAAA,YAAA,EACcE,MAAA,EAAQ,EACxBC,OAAA,CAAQF,QAAQ,CAACC,MAAA,CAAA,CAAA;AAGnB,IAAA,OAAOA,MAAA;AACT,EAAA;AAEA,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAAA,0JAAA,EAUA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
1
+ {"version":3,"file":"body.js","sources":["../../../../src/components/hds/text/body.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport HdsText from './index.gts';\nimport { HdsTextSizeValues, HdsTextWeightValues } from './types.ts';\nimport type {\n HdsTextAligns,\n HdsTextColors,\n HdsTextTags,\n HdsTextWeights,\n} from './types.ts';\n\n// notice: only some combinations of size + font-weight are allowed (per design specs)\n// see: https://www.figma.com/file/oQsMzMMnynfPWpMEt91OpH/HDS-Product---Foundations?node-id=1262%3A9192\n\n// Allow consumers to provide either string or number representation of size\ntype HdsTextBodySizeNumber = Extract<\n HdsTextSizeValues,\n | HdsTextSizeValues.OneHundred\n | HdsTextSizeValues.TwoHundred\n | HdsTextSizeValues.ThreeHundred\n>;\ntype HdsTextBodySizeString = `${HdsTextBodySizeNumber}`;\nexport type HdsTextBodySizes = HdsTextBodySizeNumber | HdsTextBodySizeString;\nexport const SIZES: HdsTextBodySizes[] = [\n HdsTextSizeValues.ThreeHundred,\n HdsTextSizeValues.TwoHundred,\n HdsTextSizeValues.OneHundred,\n];\nexport const DEFAULT_SIZE = HdsTextSizeValues.TwoHundred;\n\nexport const DEFAULT_WEIGHT = HdsTextWeightValues.Regular;\nexport type HdsTextBodyWeight = Extract<\n HdsTextWeights,\n 'regular' | 'medium' | 'semibold'\n>;\nexport const WEIGHTS_PER_SIZE: Record<HdsTextBodySizes, HdsTextBodyWeight[]> = {\n 300: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 200: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n 100: [\n HdsTextWeightValues.Regular,\n HdsTextWeightValues.Medium,\n HdsTextWeightValues.Semibold,\n ],\n};\n\nexport interface HdsTextBodySignature {\n Args: {\n size?: HdsTextBodySizes;\n tag?: HdsTextTags;\n weight?: HdsTextBodyWeight;\n align?: HdsTextAligns;\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n color?: string | HdsTextColors;\n };\n Element:\n | HTMLSpanElement\n | HTMLHeadingElement\n | HTMLParagraphElement\n | HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport default class HdsTextBody extends Component<HdsTextBodySignature> {\n // Sets the \"size\" for the text\n get size(): HdsTextBodySizes {\n let { size = DEFAULT_SIZE } = this.args;\n\n // let's be a bit forgiving with the consumers\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n\n assert(\n `@size for \"Hds::Text::Body\" must be one of the following: ${SIZES.join(\n ', '\n )}; received: ${size}`,\n SIZES.includes(size)\n );\n\n return size;\n }\n\n // Sets the \"weight\" for the text\n get weight(): HdsTextWeights {\n const { weight = DEFAULT_WEIGHT } = this.args;\n\n const weights = WEIGHTS_PER_SIZE[this.size];\n\n assert(\n `@weight for \"Hds::Text::Body\" with @size=${\n this.size\n } must be one of the following: ${weights.join(\n ', '\n )}; received: ${weight}`,\n weights.includes(weight)\n );\n\n return weight;\n }\n\n <template>\n <HdsText\n @group=\"body\"\n @size={{this.size}}\n @weight={{this.weight}}\n @align={{@align}}\n @color={{@color}}\n @tag={{@tag}}\n ...attributes\n >{{yield}}</HdsText>\n </template>\n}\n"],"names":["SIZES","HdsTextSizeValues","ThreeHundred","TwoHundred","OneHundred","DEFAULT_SIZE","DEFAULT_WEIGHT","HdsTextWeightValues","Regular","WEIGHTS_PER_SIZE","Medium","Semibold","HdsTextBody","Component","size","args","parseInt","assert","join","includes","weight","weights","setComponentTemplate","precompileTemplate","strictMode","scope","HdsText"],"mappings":";;;;;;;AAAA;;;AAGC;AA0BM,MAAMA,KAAO,GAAqB,CACvCC,iBAAA,CAAkBC,YAAY,EAC9BD,iBAAA,CAAkBE,UAAU,EAC5BF,iBAAA,CAAkBG,UAAU;AAEvB,MAAMC,YAAA,GAAeJ,iBAAA,CAAkBE;AAEvC,MAAMG,cAAA,GAAiBC,mBAAA,CAAoBC;AAK3C,MAAMC,gBAA2C,GAAuB;AAC7E,EAAA,GAAA,EAAK,CACHF,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ,CAC7B;AACD,EAAA,GAAA,EAAK,CACHJ,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ,CAC7B;AACD,EAAA,GAAA,EAAK,CACHJ,mBAAA,CAAoBC,OAAO,EAC3BD,mBAAA,CAAoBG,MAAM,EAC1BH,mBAAA,CAAoBI,QAAQ;AAEhC;AAqBe,MAAMC,oBAAoBC,SAAA,CAAU;AACjD;EACA,IAAIC,OAAyB;IAC3B,IAAI;AAAEA,MAAAA,IAAA,GAAOT;KAAc,GAAG,IAAI,CAACU,IAAI;AAEvC;AACA,IAAA,IAAI,OAAOD,SAAS,QAAA,EAAU;AAC5BA,MAAAA,IAAA,GAAOE,SAASF,IAAA,EAAM,EAAA,CAAA;AACxB,IAAA;AAEAG,IAAAA,MAAA,CACE,CAAA,0DAAA,EAA6DjB,KAAA,CAAMkB,IAAI,CACrE,IAAA,CAAA,CAAA,YAAA,EACcJ,IAAA,CAAA,CAAM,EACtBd,KAAA,CAAMmB,QAAQ,CAACL,IAAA,CAAA,CAAA;AAGjB,IAAA,OAAOA,IAAA;AACT,EAAA;AAEA;EACA,IAAIM,SAAyB;IAC3B,MAAM;AAAEA,MAAAA,MAAA,GAASd;KAAgB,GAAG,IAAI,CAACS,IAAI;AAE7C,IAAA,MAAMM,UAAUZ,gBAAgB,CAAC,IAAI,CAACK,IAAI,CAAC;IAE3CG,MAAA,CACE,4CACE,IAAI,CAACH,IAAI,CAAA,+BAAA,EACuBO,OAAA,CAAQH,IAAI,CAC5C,IAAA,CAAA,CAAA,YAAA,EACcE,MAAA,EAAQ,EACxBC,OAAA,CAAQF,QAAQ,CAACC,MAAA,CAAA,CAAA;AAGnB,IAAA,OAAOA,MAAA;AACT,EAAA;AAEA,EAAA;IAAAE,oBAAA,CAAAC,kBAAA,CAAA,0JAAA,EAUA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -6,7 +6,7 @@ import { precompileTemplate } from '@ember/template-compilation';
6
6
  import { setComponentTemplate } from '@ember/component';
7
7
 
8
8
  /**
9
- * Copyright IBM Corp. 2021, 2025
9
+ * Copyright IBM Corp. 2021, 2026
10
10
  * SPDX-License-Identifier: MPL-2.0
11
11
  */
12
12
  const SIZES = [HdsTextSizeValues.ThreeHundred, HdsTextSizeValues.TwoHundred, HdsTextSizeValues.OneHundred];