@hashicorp/design-system-components 4.14.0 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/declarations/components/hds/accordion/item/index.d.ts +3 -3
  2. package/declarations/components/hds/accordion/item/index.d.ts.map +1 -1
  3. package/declarations/components/hds/alert/description.d.ts +0 -1
  4. package/declarations/components/hds/alert/description.d.ts.map +1 -1
  5. package/declarations/components/hds/alert/index.d.ts +2 -2
  6. package/declarations/components/hds/alert/index.d.ts.map +1 -1
  7. package/declarations/components/hds/app-footer/item.d.ts +0 -1
  8. package/declarations/components/hds/app-footer/item.d.ts.map +1 -1
  9. package/declarations/components/hds/app-footer/link.d.ts +0 -1
  10. package/declarations/components/hds/app-footer/link.d.ts.map +1 -1
  11. package/declarations/components/hds/app-footer/status-link.d.ts +1 -1
  12. package/declarations/components/hds/app-footer/status-link.d.ts.map +1 -1
  13. package/declarations/components/hds/app-frame/parts/footer.d.ts +0 -1
  14. package/declarations/components/hds/app-frame/parts/footer.d.ts.map +1 -1
  15. package/declarations/components/hds/app-frame/parts/header.d.ts +0 -1
  16. package/declarations/components/hds/app-frame/parts/header.d.ts.map +1 -1
  17. package/declarations/components/hds/app-frame/parts/main.d.ts +0 -1
  18. package/declarations/components/hds/app-frame/parts/main.d.ts.map +1 -1
  19. package/declarations/components/hds/app-frame/parts/modals.d.ts +0 -1
  20. package/declarations/components/hds/app-frame/parts/modals.d.ts.map +1 -1
  21. package/declarations/components/hds/app-frame/parts/sidebar.d.ts +0 -1
  22. package/declarations/components/hds/app-frame/parts/sidebar.d.ts.map +1 -1
  23. package/declarations/components/hds/app-header/index.d.ts +7 -7
  24. package/declarations/components/hds/app-header/index.d.ts.map +1 -1
  25. package/declarations/components/hds/app-side-nav/index.d.ts +8 -8
  26. package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -1
  27. package/declarations/components/hds/app-side-nav/list/back-link.d.ts +0 -1
  28. package/declarations/components/hds/app-side-nav/list/back-link.d.ts.map +1 -1
  29. package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
  30. package/declarations/components/hds/app-side-nav/list/index.d.ts.map +1 -1
  31. package/declarations/components/hds/app-side-nav/list/item.d.ts +0 -1
  32. package/declarations/components/hds/app-side-nav/list/item.d.ts.map +1 -1
  33. package/declarations/components/hds/app-side-nav/list/link.d.ts +0 -1
  34. package/declarations/components/hds/app-side-nav/list/link.d.ts.map +1 -1
  35. package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
  36. package/declarations/components/hds/app-side-nav/list/title.d.ts.map +1 -1
  37. package/declarations/components/hds/app-side-nav/portal/index.d.ts +0 -1
  38. package/declarations/components/hds/app-side-nav/portal/index.d.ts.map +1 -1
  39. package/declarations/components/hds/app-side-nav/portal/target.d.ts +3 -3
  40. package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -1
  41. package/declarations/components/hds/app-side-nav/toggle-button.d.ts +0 -1
  42. package/declarations/components/hds/app-side-nav/toggle-button.d.ts.map +1 -1
  43. package/declarations/components/hds/application-state/body.d.ts +0 -1
  44. package/declarations/components/hds/application-state/body.d.ts.map +1 -1
  45. package/declarations/components/hds/application-state/footer.d.ts +0 -1
  46. package/declarations/components/hds/application-state/footer.d.ts.map +1 -1
  47. package/declarations/components/hds/application-state/media.d.ts +0 -1
  48. package/declarations/components/hds/application-state/media.d.ts.map +1 -1
  49. package/declarations/components/hds/button-set/index.d.ts +0 -1
  50. package/declarations/components/hds/button-set/index.d.ts.map +1 -1
  51. package/declarations/components/hds/code-block/copy-button.d.ts +0 -1
  52. package/declarations/components/hds/code-block/copy-button.d.ts.map +1 -1
  53. package/declarations/components/hds/code-block/description.d.ts +0 -1
  54. package/declarations/components/hds/code-block/description.d.ts.map +1 -1
  55. package/declarations/components/hds/code-block/index.d.ts +3 -4
  56. package/declarations/components/hds/code-block/index.d.ts.map +1 -1
  57. package/declarations/components/hds/copy/button/index.d.ts +2 -2
  58. package/declarations/components/hds/copy/button/index.d.ts.map +1 -1
  59. package/declarations/components/hds/copy/snippet/index.d.ts +2 -2
  60. package/declarations/components/hds/copy/snippet/index.d.ts.map +1 -1
  61. package/declarations/components/hds/dialog-primitive/body.d.ts +0 -1
  62. package/declarations/components/hds/dialog-primitive/body.d.ts.map +1 -1
  63. package/declarations/components/hds/dialog-primitive/description.d.ts +0 -1
  64. package/declarations/components/hds/dialog-primitive/description.d.ts.map +1 -1
  65. package/declarations/components/hds/dialog-primitive/overlay.d.ts +0 -1
  66. package/declarations/components/hds/dialog-primitive/overlay.d.ts.map +1 -1
  67. package/declarations/components/hds/dialog-primitive/wrapper.d.ts +0 -1
  68. package/declarations/components/hds/dialog-primitive/wrapper.d.ts.map +1 -1
  69. package/declarations/components/hds/disclosure-primitive/index.d.ts +2 -2
  70. package/declarations/components/hds/disclosure-primitive/index.d.ts.map +1 -1
  71. package/declarations/components/hds/dropdown/footer.d.ts +0 -1
  72. package/declarations/components/hds/dropdown/footer.d.ts.map +1 -1
  73. package/declarations/components/hds/dropdown/header.d.ts +0 -1
  74. package/declarations/components/hds/dropdown/header.d.ts.map +1 -1
  75. package/declarations/components/hds/dropdown/list-item/generic.d.ts +0 -1
  76. package/declarations/components/hds/dropdown/list-item/generic.d.ts.map +1 -1
  77. package/declarations/components/hds/dropdown/list-item/separator.d.ts +0 -1
  78. package/declarations/components/hds/dropdown/list-item/separator.d.ts.map +1 -1
  79. package/declarations/components/hds/dropdown/toggle/button.d.ts +2 -2
  80. package/declarations/components/hds/dropdown/toggle/button.d.ts.map +1 -1
  81. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +0 -1
  82. package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
  83. package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
  84. package/declarations/components/hds/dropdown/toggle/icon.d.ts.map +1 -1
  85. package/declarations/components/hds/flyout/index.d.ts +3 -3
  86. package/declarations/components/hds/flyout/index.d.ts.map +1 -1
  87. package/declarations/components/hds/form/checkbox/base.d.ts +0 -1
  88. package/declarations/components/hds/form/checkbox/base.d.ts.map +1 -1
  89. package/declarations/components/hds/form/checkbox/field.d.ts +0 -1
  90. package/declarations/components/hds/form/checkbox/field.d.ts.map +1 -1
  91. package/declarations/components/hds/form/checkbox/group.d.ts +0 -1
  92. package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
  93. package/declarations/components/hds/form/error/message.d.ts +0 -1
  94. package/declarations/components/hds/form/error/message.d.ts.map +1 -1
  95. package/declarations/components/hds/form/file-input/base.d.ts +0 -1
  96. package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
  97. package/declarations/components/hds/form/file-input/field.d.ts +0 -1
  98. package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
  99. package/declarations/components/hds/form/masked-input/field.d.ts +0 -1
  100. package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
  101. package/declarations/components/hds/form/radio/base.d.ts +0 -1
  102. package/declarations/components/hds/form/radio/base.d.ts.map +1 -1
  103. package/declarations/components/hds/form/radio/field.d.ts +0 -1
  104. package/declarations/components/hds/form/radio/field.d.ts.map +1 -1
  105. package/declarations/components/hds/form/radio/group.d.ts +0 -1
  106. package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
  107. package/declarations/components/hds/form/radio-card/description.d.ts +0 -1
  108. package/declarations/components/hds/form/radio-card/description.d.ts.map +1 -1
  109. package/declarations/components/hds/form/radio-card/group.d.ts +0 -1
  110. package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
  111. package/declarations/components/hds/form/radio-card/label.d.ts +0 -1
  112. package/declarations/components/hds/form/radio-card/label.d.ts.map +1 -1
  113. package/declarations/components/hds/form/select/field.d.ts +0 -1
  114. package/declarations/components/hds/form/select/field.d.ts.map +1 -1
  115. package/declarations/components/hds/form/super-select/after-options.d.ts +0 -1
  116. package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
  117. package/declarations/components/hds/form/super-select/multiple/base.d.ts +3 -3
  118. package/declarations/components/hds/form/super-select/multiple/base.d.ts.map +1 -1
  119. package/declarations/components/hds/form/super-select/option-group.d.ts +2 -1
  120. package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
  121. package/declarations/components/hds/form/super-select/placeholder.d.ts +0 -1
  122. package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
  123. package/declarations/components/hds/form/text-input/field.d.ts +1 -1
  124. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  125. package/declarations/components/hds/form/textarea/field.d.ts +0 -1
  126. package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
  127. package/declarations/components/hds/form/toggle/base.d.ts +0 -1
  128. package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
  129. package/declarations/components/hds/form/toggle/field.d.ts +0 -1
  130. package/declarations/components/hds/form/toggle/field.d.ts.map +1 -1
  131. package/declarations/components/hds/form/toggle/group.d.ts +0 -1
  132. package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
  133. package/declarations/components/hds/form/visibility-toggle/index.d.ts +0 -1
  134. package/declarations/components/hds/form/visibility-toggle/index.d.ts.map +1 -1
  135. package/declarations/components/hds/icon/index.d.ts +2 -2
  136. package/declarations/components/hds/icon/index.d.ts.map +1 -1
  137. package/declarations/components/hds/modal/index.d.ts +4 -4
  138. package/declarations/components/hds/modal/index.d.ts.map +1 -1
  139. package/declarations/components/hds/page-header/actions.d.ts +0 -1
  140. package/declarations/components/hds/page-header/actions.d.ts.map +1 -1
  141. package/declarations/components/hds/page-header/badges.d.ts +0 -1
  142. package/declarations/components/hds/page-header/badges.d.ts.map +1 -1
  143. package/declarations/components/hds/page-header/description.d.ts +0 -1
  144. package/declarations/components/hds/page-header/description.d.ts.map +1 -1
  145. package/declarations/components/hds/page-header/index.d.ts +0 -1
  146. package/declarations/components/hds/page-header/index.d.ts.map +1 -1
  147. package/declarations/components/hds/page-header/subtitle.d.ts +0 -1
  148. package/declarations/components/hds/page-header/subtitle.d.ts.map +1 -1
  149. package/declarations/components/hds/page-header/title.d.ts +0 -1
  150. package/declarations/components/hds/page-header/title.d.ts.map +1 -1
  151. package/declarations/components/hds/pagination/compact/index.d.ts +2 -2
  152. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  153. package/declarations/components/hds/pagination/nav/ellipsis.d.ts +0 -1
  154. package/declarations/components/hds/pagination/nav/ellipsis.d.ts.map +1 -1
  155. package/declarations/components/hds/pagination/numbered/index.d.ts +3 -3
  156. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  157. package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
  158. package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
  159. package/declarations/components/hds/popover-primitive/index.d.ts +8 -8
  160. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  161. package/declarations/components/hds/reveal/index.d.ts +2 -2
  162. package/declarations/components/hds/reveal/index.d.ts.map +1 -1
  163. package/declarations/components/hds/rich-tooltip/index.d.ts +3 -3
  164. package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
  165. package/declarations/components/hds/segmented-group/index.d.ts +0 -1
  166. package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
  167. package/declarations/components/hds/side-nav/base.d.ts +0 -1
  168. package/declarations/components/hds/side-nav/base.d.ts.map +1 -1
  169. package/declarations/components/hds/side-nav/header/index.d.ts +0 -1
  170. package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
  171. package/declarations/components/hds/side-nav/list/back-link.d.ts +0 -1
  172. package/declarations/components/hds/side-nav/list/back-link.d.ts.map +1 -1
  173. package/declarations/components/hds/side-nav/list/item.d.ts +0 -1
  174. package/declarations/components/hds/side-nav/list/item.d.ts.map +1 -1
  175. package/declarations/components/hds/side-nav/list/link.d.ts +0 -1
  176. package/declarations/components/hds/side-nav/list/link.d.ts.map +1 -1
  177. package/declarations/components/hds/side-nav/portal/index.d.ts +0 -1
  178. package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
  179. package/declarations/components/hds/side-nav/toggle-button.d.ts +0 -1
  180. package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
  181. package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
  182. package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
  183. package/declarations/components/hds/table/index.d.ts +5 -4
  184. package/declarations/components/hds/table/index.d.ts.map +1 -1
  185. package/declarations/components/hds/table/th-button-sort.d.ts +2 -2
  186. package/declarations/components/hds/table/th-button-sort.d.ts.map +1 -1
  187. package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
  188. package/declarations/components/hds/table/th-button-tooltip.d.ts.map +1 -1
  189. package/declarations/components/hds/table/th-selectable.d.ts +3 -3
  190. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  191. package/declarations/components/hds/table/th-sort.d.ts +2 -2
  192. package/declarations/components/hds/table/th-sort.d.ts.map +1 -1
  193. package/declarations/components/hds/table/th.d.ts +2 -2
  194. package/declarations/components/hds/table/th.d.ts.map +1 -1
  195. package/declarations/components/hds/tabs/index.d.ts +8 -8
  196. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  197. package/declarations/components/hds/tabs/panel.d.ts +3 -2
  198. package/declarations/components/hds/tabs/panel.d.ts.map +1 -1
  199. package/declarations/components/hds/tabs/tab.d.ts +2 -1
  200. package/declarations/components/hds/tabs/tab.d.ts.map +1 -1
  201. package/declarations/components/hds/time/index.d.ts +35 -0
  202. package/declarations/components/hds/time/index.d.ts.map +1 -0
  203. package/declarations/components/hds/time/range.d.ts +35 -0
  204. package/declarations/components/hds/time/range.d.ts.map +1 -0
  205. package/declarations/components/hds/time/single.d.ts +18 -0
  206. package/declarations/components/hds/time/single.d.ts.map +1 -0
  207. package/declarations/components/hds/toast/index.d.ts +0 -1
  208. package/declarations/components/hds/toast/index.d.ts.map +1 -1
  209. package/declarations/components/hds/yield/index.d.ts +0 -1
  210. package/declarations/components/hds/yield/index.d.ts.map +1 -1
  211. package/declarations/components.d.ts +4 -0
  212. package/declarations/components.d.ts.map +1 -1
  213. package/declarations/helpers/hds-format-date.d.ts +18 -0
  214. package/declarations/helpers/hds-format-date.d.ts.map +1 -0
  215. package/declarations/helpers/hds-format-relative.d.ts +11 -0
  216. package/declarations/helpers/hds-format-relative.d.ts.map +1 -0
  217. package/declarations/modifiers/hds-anchored-position.d.ts +1 -1
  218. package/declarations/modifiers/hds-anchored-position.d.ts.map +1 -1
  219. package/declarations/modifiers/hds-clipboard.d.ts +4 -4
  220. package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
  221. package/declarations/modifiers/hds-register-event.d.ts +1 -1
  222. package/declarations/modifiers/hds-register-event.d.ts.map +1 -1
  223. package/declarations/modifiers/hds-tooltip.d.ts +4 -4
  224. package/declarations/modifiers/hds-tooltip.d.ts.map +1 -1
  225. package/declarations/services/hds-time-types.d.ts +31 -0
  226. package/declarations/services/hds-time-types.d.ts.map +1 -0
  227. package/declarations/services/hds-time.d.ts +76 -0
  228. package/declarations/services/hds-time.d.ts.map +1 -0
  229. package/declarations/services.d.ts +5 -0
  230. package/declarations/services.d.ts.map +1 -0
  231. package/declarations/template-registry.d.ts +13 -0
  232. package/declarations/template-registry.d.ts.map +1 -1
  233. package/dist/_app_/components/hds/time/index.js +1 -0
  234. package/dist/_app_/components/hds/time/range.js +1 -0
  235. package/dist/_app_/components/hds/time/single.js +1 -0
  236. package/dist/_app_/helpers/hds-format-date.js +1 -0
  237. package/dist/_app_/helpers/hds-format-relative.js +1 -0
  238. package/dist/_app_/services/hds-time.js +1 -0
  239. package/dist/{_rollupPluginBabelHelpers-KIi_qCIU.js → _rollupPluginBabelHelpers-81503waH.js} +9 -3
  240. package/dist/_rollupPluginBabelHelpers-81503waH.js.map +1 -0
  241. package/dist/components/hds/accordion/index.js.map +1 -1
  242. package/dist/components/hds/accordion/item/button.js +2 -2
  243. package/dist/components/hds/accordion/item/button.js.map +1 -1
  244. package/dist/components/hds/accordion/item/index.js +6 -6
  245. package/dist/components/hds/accordion/item/index.js.map +1 -1
  246. package/dist/components/hds/accordion/types.js.map +1 -1
  247. package/dist/components/hds/alert/description.js.map +1 -1
  248. package/dist/components/hds/alert/index.js +10 -10
  249. package/dist/components/hds/alert/index.js.map +1 -1
  250. package/dist/components/hds/alert/title.js.map +1 -1
  251. package/dist/components/hds/alert/types.js.map +1 -1
  252. package/dist/components/hds/app-footer/copyright.js.map +1 -1
  253. package/dist/components/hds/app-footer/index.js.map +1 -1
  254. package/dist/components/hds/app-footer/item.js.map +1 -1
  255. package/dist/components/hds/app-footer/legal-links.js.map +1 -1
  256. package/dist/components/hds/app-footer/link.js.map +1 -1
  257. package/dist/components/hds/app-footer/status-link.js.map +1 -1
  258. package/dist/components/hds/app-footer/types.js.map +1 -1
  259. package/dist/components/hds/app-frame/index.js.map +1 -1
  260. package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
  261. package/dist/components/hds/app-frame/parts/header.js.map +1 -1
  262. package/dist/components/hds/app-frame/parts/main.js.map +1 -1
  263. package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
  264. package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
  265. package/dist/components/hds/app-header/home-link.js.map +1 -1
  266. package/dist/components/hds/app-header/index.js +27 -27
  267. package/dist/components/hds/app-header/index.js.map +1 -1
  268. package/dist/components/hds/app-header/menu-button.js +2 -2
  269. package/dist/components/hds/app-header/menu-button.js.map +1 -1
  270. package/dist/components/hds/app-side-nav/index.js +48 -48
  271. package/dist/components/hds/app-side-nav/index.js.map +1 -1
  272. package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
  273. package/dist/components/hds/app-side-nav/list/index.js +3 -3
  274. package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
  275. package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
  276. package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
  277. package/dist/components/hds/app-side-nav/list/title.js +4 -4
  278. package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
  279. package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
  280. package/dist/components/hds/app-side-nav/portal/target.js +14 -14
  281. package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
  282. package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
  283. package/dist/components/hds/application-state/body.js.map +1 -1
  284. package/dist/components/hds/application-state/footer.js.map +1 -1
  285. package/dist/components/hds/application-state/header.js.map +1 -1
  286. package/dist/components/hds/application-state/index.js.map +1 -1
  287. package/dist/components/hds/application-state/media.js.map +1 -1
  288. package/dist/components/hds/application-state/types.js.map +1 -1
  289. package/dist/components/hds/badge/index.js.map +1 -1
  290. package/dist/components/hds/badge/types.js.map +1 -1
  291. package/dist/components/hds/badge-count/index.js.map +1 -1
  292. package/dist/components/hds/badge-count/types.js.map +1 -1
  293. package/dist/components/hds/breadcrumb/index.js.map +1 -1
  294. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  295. package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
  296. package/dist/components/hds/button/index.js.map +1 -1
  297. package/dist/components/hds/button/types.js.map +1 -1
  298. package/dist/components/hds/button-set/index.js.map +1 -1
  299. package/dist/components/hds/card/container.js.map +1 -1
  300. package/dist/components/hds/card/types.js.map +1 -1
  301. package/dist/components/hds/code-block/copy-button.js.map +1 -1
  302. package/dist/components/hds/code-block/description.js.map +1 -1
  303. package/dist/components/hds/code-block/index.js +9 -9
  304. package/dist/components/hds/code-block/index.js.map +1 -1
  305. package/dist/components/hds/code-block/title.js.map +1 -1
  306. package/dist/components/hds/code-block/types.js.map +1 -1
  307. package/dist/components/hds/copy/button/index.js +14 -14
  308. package/dist/components/hds/copy/button/index.js.map +1 -1
  309. package/dist/components/hds/copy/button/types.js.map +1 -1
  310. package/dist/components/hds/copy/snippet/index.js +14 -14
  311. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  312. package/dist/components/hds/copy/snippet/types.js.map +1 -1
  313. package/dist/components/hds/dialog-primitive/body.js.map +1 -1
  314. package/dist/components/hds/dialog-primitive/description.js.map +1 -1
  315. package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
  316. package/dist/components/hds/dialog-primitive/header.js.map +1 -1
  317. package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
  318. package/dist/components/hds/dialog-primitive/types.js.map +1 -1
  319. package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
  320. package/dist/components/hds/disclosure-primitive/index.js +3 -3
  321. package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
  322. package/dist/components/hds/dismiss-button/index.js.map +1 -1
  323. package/dist/components/hds/dropdown/footer.js.map +1 -1
  324. package/dist/components/hds/dropdown/header.js.map +1 -1
  325. package/dist/components/hds/dropdown/index.js +2 -2
  326. package/dist/components/hds/dropdown/index.js.map +1 -1
  327. package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
  328. package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
  329. package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
  330. package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
  331. package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
  332. package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
  333. package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
  334. package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
  335. package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
  336. package/dist/components/hds/dropdown/list-item/types.js.map +1 -1
  337. package/dist/components/hds/dropdown/toggle/button.js +4 -4
  338. package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
  339. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  340. package/dist/components/hds/dropdown/toggle/icon.js +7 -7
  341. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  342. package/dist/components/hds/dropdown/toggle/types.js.map +1 -1
  343. package/dist/components/hds/dropdown/types.js.map +1 -1
  344. package/dist/components/hds/flyout/body.js.map +1 -1
  345. package/dist/components/hds/flyout/description.js.map +1 -1
  346. package/dist/components/hds/flyout/footer.js.map +1 -1
  347. package/dist/components/hds/flyout/header.js.map +1 -1
  348. package/dist/components/hds/flyout/index.js +21 -19
  349. package/dist/components/hds/flyout/index.js.map +1 -1
  350. package/dist/components/hds/flyout/types.js.map +1 -1
  351. package/dist/components/hds/form/character-count/index.js.map +1 -1
  352. package/dist/components/hds/form/checkbox/base.js.map +1 -1
  353. package/dist/components/hds/form/checkbox/field.js.map +1 -1
  354. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  355. package/dist/components/hds/form/error/index.js.map +1 -1
  356. package/dist/components/hds/form/error/message.js.map +1 -1
  357. package/dist/components/hds/form/field/index.js +2 -2
  358. package/dist/components/hds/form/field/index.js.map +1 -1
  359. package/dist/components/hds/form/field/types.js.map +1 -1
  360. package/dist/components/hds/form/fieldset/index.js +2 -2
  361. package/dist/components/hds/form/fieldset/index.js.map +1 -1
  362. package/dist/components/hds/form/fieldset/types.js.map +1 -1
  363. package/dist/components/hds/form/file-input/base.js.map +1 -1
  364. package/dist/components/hds/form/file-input/field.js.map +1 -1
  365. package/dist/components/hds/form/helper-text/index.js.map +1 -1
  366. package/dist/components/hds/form/indicator/index.js.map +1 -1
  367. package/dist/components/hds/form/label/index.js.map +1 -1
  368. package/dist/components/hds/form/legend/index.js.map +1 -1
  369. package/dist/components/hds/form/masked-input/base.js +3 -3
  370. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  371. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  372. package/dist/components/hds/form/radio/base.js.map +1 -1
  373. package/dist/components/hds/form/radio/field.js.map +1 -1
  374. package/dist/components/hds/form/radio/group.js.map +1 -1
  375. package/dist/components/hds/form/radio-card/description.js.map +1 -1
  376. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  377. package/dist/components/hds/form/radio-card/index.js.map +1 -1
  378. package/dist/components/hds/form/radio-card/label.js.map +1 -1
  379. package/dist/components/hds/form/radio-card/types.js.map +1 -1
  380. package/dist/components/hds/form/select/base.js.map +1 -1
  381. package/dist/components/hds/form/select/field.js.map +1 -1
  382. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  383. package/dist/components/hds/form/super-select/multiple/base.js +20 -20
  384. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  385. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  386. package/dist/components/hds/form/super-select/option-group.js +4 -3
  387. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  388. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  389. package/dist/components/hds/form/super-select/single/base.js +3 -3
  390. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  391. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  392. package/dist/components/hds/form/super-select/types.js.map +1 -1
  393. package/dist/components/hds/form/text-input/base.js.map +1 -1
  394. package/dist/components/hds/form/text-input/field.js +9 -9
  395. package/dist/components/hds/form/text-input/field.js.map +1 -1
  396. package/dist/components/hds/form/text-input/types.js.map +1 -1
  397. package/dist/components/hds/form/textarea/base.js.map +1 -1
  398. package/dist/components/hds/form/textarea/field.js.map +1 -1
  399. package/dist/components/hds/form/toggle/base.js.map +1 -1
  400. package/dist/components/hds/form/toggle/field.js.map +1 -1
  401. package/dist/components/hds/form/toggle/group.js.map +1 -1
  402. package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
  403. package/dist/components/hds/icon/index.js +5 -5
  404. package/dist/components/hds/icon/index.js.map +1 -1
  405. package/dist/components/hds/icon/types.js.map +1 -1
  406. package/dist/components/hds/icon-tile/index.js.map +1 -1
  407. package/dist/components/hds/icon-tile/types.js.map +1 -1
  408. package/dist/components/hds/interactive/index.js +2 -2
  409. package/dist/components/hds/interactive/index.js.map +1 -1
  410. package/dist/components/hds/link/inline.js.map +1 -1
  411. package/dist/components/hds/link/standalone.js.map +1 -1
  412. package/dist/components/hds/link/types.js.map +1 -1
  413. package/dist/components/hds/menu-primitive/index.js +3 -3
  414. package/dist/components/hds/menu-primitive/index.js.map +1 -1
  415. package/dist/components/hds/modal/body.js.map +1 -1
  416. package/dist/components/hds/modal/footer.js.map +1 -1
  417. package/dist/components/hds/modal/header.js.map +1 -1
  418. package/dist/components/hds/modal/index.js +32 -32
  419. package/dist/components/hds/modal/index.js.map +1 -1
  420. package/dist/components/hds/modal/types.js.map +1 -1
  421. package/dist/components/hds/page-header/actions.js.map +1 -1
  422. package/dist/components/hds/page-header/badges.js.map +1 -1
  423. package/dist/components/hds/page-header/description.js.map +1 -1
  424. package/dist/components/hds/page-header/index.js.map +1 -1
  425. package/dist/components/hds/page-header/subtitle.js.map +1 -1
  426. package/dist/components/hds/page-header/title.js.map +1 -1
  427. package/dist/components/hds/pagination/compact/index.js +11 -11
  428. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  429. package/dist/components/hds/pagination/info/index.js.map +1 -1
  430. package/dist/components/hds/pagination/nav/arrow.js +2 -2
  431. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  432. package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
  433. package/dist/components/hds/pagination/nav/number.js +2 -2
  434. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  435. package/dist/components/hds/pagination/numbered/index.js +15 -15
  436. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  437. package/dist/components/hds/pagination/size-selector/index.js +4 -4
  438. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  439. package/dist/components/hds/pagination/types.js.map +1 -1
  440. package/dist/components/hds/popover-primitive/index.js +52 -52
  441. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  442. package/dist/components/hds/reveal/index.js +4 -4
  443. package/dist/components/hds/reveal/index.js.map +1 -1
  444. package/dist/components/hds/reveal/toggle/button.js.map +1 -1
  445. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  446. package/dist/components/hds/rich-tooltip/index.js +5 -5
  447. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  448. package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
  449. package/dist/components/hds/rich-tooltip/types.js.map +1 -1
  450. package/dist/components/hds/segmented-group/index.js.map +1 -1
  451. package/dist/components/hds/separator/index.js.map +1 -1
  452. package/dist/components/hds/separator/types.js.map +1 -1
  453. package/dist/components/hds/side-nav/base.js.map +1 -1
  454. package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
  455. package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
  456. package/dist/components/hds/side-nav/header/index.js.map +1 -1
  457. package/dist/components/hds/side-nav/index.js +3 -3
  458. package/dist/components/hds/side-nav/index.js.map +1 -1
  459. package/dist/components/hds/side-nav/list/back-link.js.map +1 -1
  460. package/dist/components/hds/side-nav/list/index.js +3 -3
  461. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  462. package/dist/components/hds/side-nav/list/item.js.map +1 -1
  463. package/dist/components/hds/side-nav/list/link.js.map +1 -1
  464. package/dist/components/hds/side-nav/list/title.js +2 -2
  465. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  466. package/dist/components/hds/side-nav/portal/index.js.map +1 -1
  467. package/dist/components/hds/side-nav/portal/target.js +3 -3
  468. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  469. package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
  470. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  471. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  472. package/dist/components/hds/stepper/types.js.map +1 -1
  473. package/dist/components/hds/table/index.js +26 -26
  474. package/dist/components/hds/table/index.js.map +1 -1
  475. package/dist/components/hds/table/td.js.map +1 -1
  476. package/dist/components/hds/table/th-button-sort.js +4 -4
  477. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  478. package/dist/components/hds/table/th-button-tooltip.js +3 -3
  479. package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
  480. package/dist/components/hds/table/th-selectable.js +7 -7
  481. package/dist/components/hds/table/th-selectable.js.map +1 -1
  482. package/dist/components/hds/table/th-sort.js +4 -4
  483. package/dist/components/hds/table/th-sort.js.map +1 -1
  484. package/dist/components/hds/table/th.js +4 -4
  485. package/dist/components/hds/table/th.js.map +1 -1
  486. package/dist/components/hds/table/tr.js.map +1 -1
  487. package/dist/components/hds/table/types.js.map +1 -1
  488. package/dist/components/hds/tabs/index.js +40 -40
  489. package/dist/components/hds/tabs/index.js.map +1 -1
  490. package/dist/components/hds/tabs/panel.js +9 -8
  491. package/dist/components/hds/tabs/panel.js.map +1 -1
  492. package/dist/components/hds/tabs/tab.js +6 -5
  493. package/dist/components/hds/tabs/tab.js.map +1 -1
  494. package/dist/components/hds/tabs/types.js.map +1 -1
  495. package/dist/components/hds/tag/index.js.map +1 -1
  496. package/dist/components/hds/tag/types.js.map +1 -1
  497. package/dist/components/hds/text/body.js.map +1 -1
  498. package/dist/components/hds/text/code.js.map +1 -1
  499. package/dist/components/hds/text/display.js.map +1 -1
  500. package/dist/components/hds/text/index.js.map +1 -1
  501. package/dist/components/hds/text/types.js.map +1 -1
  502. package/dist/components/hds/time/index.js +128 -0
  503. package/dist/components/hds/time/index.js.map +1 -0
  504. package/dist/components/hds/time/range.js +66 -0
  505. package/dist/components/hds/time/range.js.map +1 -0
  506. package/dist/components/hds/time/single.js +16 -0
  507. package/dist/components/hds/time/single.js.map +1 -0
  508. package/dist/components/hds/toast/index.js.map +1 -1
  509. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  510. package/dist/components/hds/tooltip-button/types.js.map +1 -1
  511. package/dist/components/hds/yield/index.js.map +1 -1
  512. package/dist/components.js +3 -0
  513. package/dist/components.js.map +1 -1
  514. package/dist/helpers/hds-format-date.js +29 -0
  515. package/dist/helpers/hds-format-date.js.map +1 -0
  516. package/dist/helpers/hds-format-relative.js +29 -0
  517. package/dist/helpers/hds-format-relative.js.map +1 -0
  518. package/dist/helpers/hds-link-to-models.js.map +1 -1
  519. package/dist/helpers/hds-link-to-query.js.map +1 -1
  520. package/dist/instance-initializers/load-sprite.js.map +1 -1
  521. package/dist/modifiers/hds-anchored-position.js +12 -8
  522. package/dist/modifiers/hds-anchored-position.js.map +1 -1
  523. package/dist/modifiers/hds-clipboard.js.map +1 -1
  524. package/dist/modifiers/hds-register-event.js +4 -4
  525. package/dist/modifiers/hds-register-event.js.map +1 -1
  526. package/dist/modifiers/hds-tooltip.js +19 -19
  527. package/dist/modifiers/hds-tooltip.js.map +1 -1
  528. package/dist/services/hds-time-types.js +2 -0
  529. package/dist/services/hds-time-types.js.map +1 -0
  530. package/dist/services/hds-time.js +215 -0
  531. package/dist/services/hds-time.js.map +1 -0
  532. package/dist/services.js +2 -0
  533. package/dist/services.js.map +1 -0
  534. package/dist/styles/@hashicorp/design-system-components.css +101 -114
  535. package/dist/styles/@hashicorp/design-system-components.scss +1 -0
  536. package/dist/styles/components/alert.scss +0 -1
  537. package/dist/styles/components/app-side-nav/index.scss +4 -4
  538. package/dist/styles/components/badge-count.scss +6 -5
  539. package/dist/styles/components/badge.scss +11 -9
  540. package/dist/styles/components/code-block/index.scss +1 -1
  541. package/dist/styles/components/copy/index.scss +2 -2
  542. package/dist/styles/components/dropdown.scss +14 -7
  543. package/dist/styles/components/icon-tile.scss +19 -23
  544. package/dist/styles/components/link/index.scss +2 -2
  545. package/dist/styles/components/link/standalone.scss +5 -4
  546. package/dist/styles/components/page-header.scss +4 -1
  547. package/dist/styles/components/side-nav/index.scss +6 -6
  548. package/dist/styles/components/stepper/index.scss +2 -2
  549. package/dist/styles/components/stepper/step-indicator.scss +14 -12
  550. package/dist/styles/components/stepper/task-indicator.scss +5 -3
  551. package/dist/styles/components/tabs.scss +4 -3
  552. package/dist/styles/components/time.scss +13 -0
  553. package/dist/styles/mixins/_button.scss +11 -9
  554. package/dist/utils/hds-aria-described-by.js +3 -3
  555. package/dist/utils/hds-aria-described-by.js.map +1 -1
  556. package/dist/utils/hds-get-element-id.js.map +1 -1
  557. package/package.json +14 -6
  558. package/dist/_rollupPluginBabelHelpers-KIi_qCIU.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.hbs","../../../../src/components/hds/table/th.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<th class={{this.classNames}} {{style width=@width minWidth=@width}} ...attributes scope={{(or @scope \\\"col\\\")}}>\\n {{#if @isVisuallyHidden}}\\n <span class=\\\"sr-only\\\">{{yield}}</span>\\n {{else}}\\n {{#if @tooltip}}\\n <div class=\\\"hds-table__th-content\\\">\\n <span id={{this.labelId}} class=\\\"hds-typography-body-200 hds-font-weight-semibold\\\">{{yield}}</span>\\n <Hds::Table::ThButtonTooltip @tooltip={{@tooltip}} @labelId={{this.labelId}} />\\n </div>\\n {{else}}\\n <span class=\\\"hds-typography-body-200 hds-font-weight-semibold\\\">{{yield}}</span>\\n {{/if}}\\n {{/if}}\\n</th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\n\nimport type { HdsTableHorizontalAlignment, HdsTableScope } from './types.ts';\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\n\nexport const ALIGNMENTS: string[] = 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 /**\n * Generates a unique ID for the <span> element (\"label\")\n *\n * @param labelId\n */\n labelId = guidFor(this);\n\n /**\n * @param align\n * @type {HdsTableHorizontalAlignment}\n * @default left\n * @description Determines the text alignment of the header or cell content. Options are: \"left\", \"center\", \"right\". If no align is defined, \"left\" is used.\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 /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-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"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTh","Component","constructor","args","_defineProperty","guidFor","align","assert","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,urBAAurB;;ACWltB,MAAMA,UAAoB,GAAGC,MAAM,CAACC,MAAM,CAC/CC,iCACF,EAAC;AACYC,MAAAA,aAAa,GAAGD,iCAAiC,CAACE,KAAI;AAgBpD,MAAMC,UAAU,SAASC,SAAS,CAAsB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AACrE;AACF;AACA;AACA;AACA;AAJEC,IAAAA,eAAA,CAKUC,IAAAA,EAAAA,SAAAA,EAAAA,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;AAEvB;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,KAAKA,GAAgC;IACvC,MAAM;AAAEA,MAAAA,KAAK,GAAGR,aAAAA;KAAe,GAAG,IAAI,CAACK,IAAI,CAAA;AAE3CI,IAAAA,MAAM,CACJ,CAA6Db,0DAAAA,EAAAA,UAAU,CAACc,IAAI,CAC1E,IACF,CAAC,CAAA,YAAA,EAAeF,KAAK,CAAA,CAAE,EACvBZ,UAAU,CAACe,QAAQ,CAACH,KAAK,CAC3B,CAAC,CAAA;AACD,IAAA,OAAOA,KAAK,CAAA;AACd,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAA;;AAEjC;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAO,CAACC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACN,KAAK,EAAE,CAAC,CAAA;AACpD,KAAA;AAEA,IAAA,OAAOK,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AACF,CAAA;AAACK,oBAAA,CAAAC,QAAA,EAzCoBd,UAAU,CAAA;;;;"}
1
+ {"version":3,"file":"th.js","sources":["../../../../src/components/hds/table/th.hbs","../../../../src/components/hds/table/th.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<th class={{this.classNames}} {{style width=@width minWidth=@width}} ...attributes scope={{(or @scope \\\"col\\\")}}>\\n {{#if @isVisuallyHidden}}\\n <span class=\\\"sr-only\\\">{{yield}}</span>\\n {{else}}\\n {{#if @tooltip}}\\n <div class=\\\"hds-table__th-content\\\">\\n <span id={{this._labelId}} class=\\\"hds-typography-body-200 hds-font-weight-semibold\\\">{{yield}}</span>\\n <Hds::Table::ThButtonTooltip @tooltip={{@tooltip}} @labelId={{this._labelId}} />\\n </div>\\n {{else}}\\n <span class=\\\"hds-typography-body-200 hds-font-weight-semibold\\\">{{yield}}</span>\\n {{/if}}\\n {{/if}}\\n</th>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { assert } from '@ember/debug';\n\nimport type { HdsTableHorizontalAlignment, HdsTableScope } from './types.ts';\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\n\nexport const ALIGNMENTS: string[] = 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 /**\n * Generates a unique ID for the <span> element (\"label\")\n *\n * @param _labelId\n */\n private _labelId = guidFor(this);\n\n /**\n * @param align\n * @type {HdsTableHorizontalAlignment}\n * @default left\n * @description Determines the text alignment of the header or cell content. Options are: \"left\", \"center\", \"right\". If no align is defined, \"left\" is used.\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 /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-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"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTh","Component","constructor","args","_defineProperty","guidFor","align","assert","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,yrBAAyrB;;ACWptB,MAAMA,UAAoB,GAAGC,MAAM,CAACC,MAAM,CAC/CC,iCACF;AACaC,MAAAA,aAAa,GAAGD,iCAAiC,CAACE;AAgBhD,MAAMC,UAAU,SAASC,SAAS,CAAsB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AACrE;AACF;AACA;AACA;AACA;AAJEC,IAAAA,eAAA,CAKmBC,IAAAA,EAAAA,UAAAA,EAAAA,OAAO,CAAC,IAAI,CAAC,CAAA;AAAA;AAEhC;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,KAAKA,GAAgC;IACvC,MAAM;AAAEA,MAAAA,KAAK,GAAGR;KAAe,GAAG,IAAI,CAACK,IAAI;AAE3CI,IAAAA,MAAM,CACJ,CAA6Db,0DAAAA,EAAAA,UAAU,CAACc,IAAI,CAC1E,IACF,CAAC,CAAA,YAAA,EAAeF,KAAK,CAAA,CAAE,EACvBZ,UAAU,CAACe,QAAQ,CAACH,KAAK,CAC3B,CAAC;AACD,IAAA,OAAOA,KAAK;AACd;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,eAAe,CAAC;;AAEjC;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAO,CAACC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACN,KAAK,EAAE,CAAC;AACpD;AAEA,IAAA,OAAOK,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACK,oBAAA,CAAAC,QAAA,EAzCoBd,UAAU,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.hbs","../../../../src/components/hds/table/tr.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<tr class=\\\"hds-table__tr\\\" ...attributes>\\n {{#if @isSelectable}}\\n <Hds::Table::ThSelectable\\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 * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTableScopeValues } from './types.ts';\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableSignature } from './index.ts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.ts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: false;\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// Extended interface for selectable rows\nexport 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 =\n | BaseHdsTableTrSignature\n | SelectableHdsTableTrArgs;\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"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","TEMPLATE"],"mappings":";;;;;AACA,eAAe,kBAAkB,CAAC,0nBAA0nB;;ACD5pB;AACA;AACA;AACA;;AAiDe,MAAMA,UAAU,SAASC,SAAS,CAAsB;EACrE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAK,EAAE;MAChEC,MAAM,CACJ,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YACZ,CAAC,CAAA;AACD,MAAA,OAAO,IAAI,CAACC,IAAI,CAACD,YAAY,CAAA;AAC/B,KAAA;AACA,IAAA,OAAOK,SAAS,CAAA;AAClB,GAAA;AACF,CAAA;AAACC,oBAAA,CAAAC,QAAA,EAXoBT,UAAU,CAAA;;;;"}
1
+ {"version":3,"file":"tr.js","sources":["../../../../src/components/hds/table/tr.hbs","../../../../src/components/hds/table/tr.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<tr class=\\\"hds-table__tr\\\" ...attributes>\\n {{#if @isSelectable}}\\n <Hds::Table::ThSelectable\\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 * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { HdsTableScopeValues } from './types.ts';\nimport type { HdsTableScope, HdsTableThSortOrder } from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableSignature } from './index.ts';\nimport type { HdsTableThSelectableSignature } from './th-selectable.ts';\n\nexport interface BaseHdsTableTrSignature {\n Args: {\n selectableColumnKey?: HdsTableSignature['Args']['selectableColumnKey'];\n isSelectable?: boolean;\n isSelected?: false;\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// Extended interface for selectable rows\nexport 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 =\n | BaseHdsTableTrSignature\n | SelectableHdsTableTrArgs;\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"],"names":["HdsTableTr","Component","selectionKey","args","isSelectable","selectionScope","assert","undefined","setComponentTemplate","TEMPLATE"],"mappings":";;;;;AACA,eAAe,kBAAkB,CAAC,0nBAA0nB;;ACD5pB;AACA;AACA;AACA;;AAiDe,MAAMA,UAAU,SAASC,SAAS,CAAsB;EACrE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,IAAI,IAAI,CAACC,IAAI,CAACC,YAAY,IAAI,IAAI,CAACD,IAAI,CAACE,cAAc,KAAK,KAAK,EAAE;MAChEC,MAAM,CACJ,+EAA+E,EAC/E,IAAI,CAACH,IAAI,CAACD,YACZ,CAAC;AACD,MAAA,OAAO,IAAI,CAACC,IAAI,CAACD,YAAY;AAC/B;AACA,IAAA,OAAOK,SAAS;AAClB;AACF;AAACC,oBAAA,CAAAC,QAAA,EAXoBT,UAAU,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\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;;AAIYA,IAAAA,qBAAqB,0BAArBA,qBAAqB,EAAA;EAArBA,qBAAqB,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAArBA,qBAAqB,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAArBA,qBAAqB,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;EAArBA,qBAAqB,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAArBA,qBAAqB,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAQrBC,IAAAA,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;EAAjCA,iCAAiC,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;AAAA,EAAA,OAAjCA,iCAAiC,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAQjCC,IAAAA,mBAAmB,0BAAnBA,mBAAmB,EAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA;EAAnBA,mBAAmB,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA;AAAA,EAAA,OAAnBA,mBAAmB,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAMnBC,IAAAA,6BAA6B,0BAA7BA,6BAA6B,EAAA;EAA7BA,6BAA6B,CAAA,WAAA,CAAA,GAAA,YAAA,CAAA;EAA7BA,6BAA6B,CAAA,SAAA,CAAA,GAAA,UAAA,CAAA;EAA7BA,6BAA6B,CAAA,cAAA,CAAA,GAAA,eAAA,CAAA;AAAA,EAAA,OAA7BA,6BAA6B,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAO7BC,IAAAA,8BAA8B,0BAA9BA,8BAA8B,EAAA;EAA9BA,8BAA8B,CAAA,KAAA,CAAA,GAAA,WAAA,CAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,YAAA,CAAA;EAA9BA,8BAA8B,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAA9BA,8BAA8B,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAO9BC,IAAAA,yBAAyB,0BAAzBA,yBAAyB,EAAA;EAAzBA,yBAAyB,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA;EAAzBA,yBAAyB,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAzBA,yBAAyB,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAMzBC,IAAAA,+BAA+B,0BAA/BA,+BAA+B,EAAA;EAA/BA,+BAA+B,CAAA,UAAA,CAAA,GAAA,UAAA,CAAA;EAA/BA,+BAA+B,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAA/BA,+BAA+B,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA;AAAA,EAAA,OAA/BA,+BAA+B,CAAA;AAAA,CAAA,CAAA,EAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/hds/table/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\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;;AAIYA,IAAAA,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;AAQrBC,IAAAA,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;AAQjCC,IAAAA,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;AAMnBC,IAAAA,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;AAO7BC,IAAAA,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;AAO9BC,IAAAA,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;AAMzBC,IAAAA,+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,4 +1,4 @@
1
- import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { action } from '@ember/object';
@@ -8,7 +8,7 @@ import { HdsTabsSizeValues } from './types.js';
8
8
  import { precompileTemplate } from '@ember/template-compilation';
9
9
  import { setComponentTemplate } from '@ember/component';
10
10
 
11
- var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable no-invalid-role }}\n<div\n class={{this.classNames}}\n {{did-insert this.didInsert}}\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{did-update this.didUpdateSelectedTabId this.selectedTabId}}\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n>\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n \"hds/tabs/tab\"\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this.tabIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n \"hds/tabs/panel\"\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this.tabIds\n panelIds=this.panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n</div>\n{{! template-lint-enable no-invalid-role }}");
11
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable no-invalid-role }}\n<div\n class={{this.classNames}}\n {{did-insert this.didInsert}}\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\n {{did-update this.didUpdateSelectedTabId this._selectedTabId}}\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\n ...attributes\n>\n <div class=\"hds-tabs__tablist-wrapper\">\n <ul class=\"hds-tabs__tablist\" role=\"tablist\">\n {{yield\n (hash\n Tab=(component\n \"hds/tabs/tab\"\n didInsertNode=this.didInsertTab\n didUpdateNode=this.didUpdateTab\n willDestroyNode=this.willDestroyTab\n tabIds=this._tabIds\n selectedTabIndex=this.selectedTabIndex\n onClick=this.onClick\n onKeyUp=this.onKeyUp\n )\n )\n }}\n <li class=\"hds-tabs__tab-indicator\" role=\"presentation\"></li>\n </ul>\n </div>\n\n {{yield\n (hash\n Panel=(component\n \"hds/tabs/panel\"\n didInsertNode=this.didInsertPanel\n willDestroyNode=this.willDestroyPanel\n tabIds=this._tabIds\n panelIds=this._panelIds\n selectedTabIndex=this.selectedTabIndex\n )\n )\n }}\n</div>\n{{! template-lint-enable no-invalid-role }}");
12
12
 
13
13
  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;
14
14
  const DEFAULT_SIZE = 'medium';
@@ -33,25 +33,25 @@ let HdsTabs = (_class = class HdsTabs extends Component {
33
33
  super(owner, args);
34
34
 
35
35
  // this is to determine if the "selected" tab logic is controlled in the consumers' code or is maintained as an internal state
36
- _initializerDefineProperty(this, "tabNodes", _descriptor, this);
37
- _initializerDefineProperty(this, "tabIds", _descriptor2, this);
38
- _initializerDefineProperty(this, "panelNodes", _descriptor3, this);
39
- _initializerDefineProperty(this, "panelIds", _descriptor4, this);
36
+ _initializerDefineProperty(this, "_tabNodes", _descriptor, this);
37
+ _initializerDefineProperty(this, "_tabIds", _descriptor2, this);
38
+ _initializerDefineProperty(this, "_panelNodes", _descriptor3, this);
39
+ _initializerDefineProperty(this, "_panelIds", _descriptor4, this);
40
40
  _initializerDefineProperty(this, "_selectedTabIndex", _descriptor5, this);
41
- _initializerDefineProperty(this, "selectedTabId", _descriptor6, this);
42
- _initializerDefineProperty(this, "isControlled", _descriptor7, this);
43
- this.isControlled = this.args.selectedTabIndex !== undefined;
41
+ _initializerDefineProperty(this, "_selectedTabId", _descriptor6, this);
42
+ _initializerDefineProperty(this, "_isControlled", _descriptor7, this);
43
+ this._isControlled = this.args.selectedTabIndex !== undefined;
44
44
  this._selectedTabIndex = this.args.selectedTabIndex ?? 0;
45
45
  }
46
46
  get selectedTabIndex() {
47
- if (this.isControlled) {
47
+ if (this._isControlled) {
48
48
  return this.args.selectedTabIndex;
49
49
  } else {
50
50
  return this._selectedTabIndex;
51
51
  }
52
52
  }
53
53
  set selectedTabIndex(value) {
54
- if (this.isControlled) ; else {
54
+ if (this._isControlled) ; else {
55
55
  this._selectedTabIndex = value;
56
56
  }
57
57
  }
@@ -69,9 +69,9 @@ let HdsTabs = (_class = class HdsTabs extends Component {
69
69
  return classes.join(' ');
70
70
  }
71
71
  didInsert() {
72
- assert('The number of Tabs must be equal to the number of Panels', this.tabNodes.length === this.panelNodes.length);
73
- if (this.selectedTabId) {
74
- this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);
72
+ assert('The number of Tabs must be equal to the number of Panels', this._tabNodes.length === this._panelNodes.length);
73
+ if (this._selectedTabId) {
74
+ this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);
75
75
  }
76
76
 
77
77
  // eslint-disable-next-line ember/no-runloop
@@ -91,8 +91,8 @@ let HdsTabs = (_class = class HdsTabs extends Component {
91
91
  // but the parent `Tabs` component has already been rendered/inserted but doesn't re-render
92
92
  // so the value of the `selectedTabIndex` is not updated, unless we trigger a recalculation
93
93
  // using the `did-update` modifier that checks for changes in the `this.selectedTabId` variable
94
- if (this.selectedTabId) {
95
- this.selectedTabIndex = this.tabIds.indexOf(this.selectedTabId);
94
+ if (this._selectedTabId) {
95
+ this.selectedTabIndex = this._tabIds.indexOf(this._selectedTabId);
96
96
  }
97
97
  }
98
98
  didUpdateParentVisibility() {
@@ -102,10 +102,10 @@ let HdsTabs = (_class = class HdsTabs extends Component {
102
102
  });
103
103
  }
104
104
  didInsertTab(element, isSelected) {
105
- this.tabNodes = [...this.tabNodes, element];
106
- this.tabIds = [...this.tabIds, element.id];
105
+ this._tabNodes = [...this._tabNodes, element];
106
+ this._tabIds = [...this._tabIds, element.id];
107
107
  if (isSelected) {
108
- this.selectedTabId = element.id;
108
+ this._selectedTabId = element.id;
109
109
  }
110
110
  }
111
111
  didUpdateTab(tabIndex, isSelected) {
@@ -115,16 +115,16 @@ let HdsTabs = (_class = class HdsTabs extends Component {
115
115
  this.setTabIndicator();
116
116
  }
117
117
  willDestroyTab(element) {
118
- this.tabNodes = this.tabNodes.filter(node => node.id !== element.id);
119
- this.tabIds = this.tabIds.filter(tabId => tabId !== element.id);
118
+ this._tabNodes = this._tabNodes.filter(node => node.id !== element.id);
119
+ this._tabIds = this._tabIds.filter(tabId => tabId !== element.id);
120
120
  }
121
121
  didInsertPanel(element, panelId) {
122
- this.panelNodes = [...this.panelNodes, element];
123
- this.panelIds = [...this.panelIds, panelId];
122
+ this._panelNodes = [...this._panelNodes, element];
123
+ this._panelIds = [...this._panelIds, panelId];
124
124
  }
125
125
  willDestroyPanel(element) {
126
- this.panelNodes = this.panelNodes.filter(node => node.id !== element.id);
127
- this.panelIds = this.panelIds.filter(panelId => panelId !== element.id);
126
+ this._panelNodes = this._panelNodes.filter(node => node.id !== element.id);
127
+ this._panelIds = this._panelIds.filter(panelId => panelId !== element.id);
128
128
  }
129
129
  onClick(event, tabIndex) {
130
130
  this.selectedTabIndex = tabIndex;
@@ -141,16 +141,16 @@ let HdsTabs = (_class = class HdsTabs extends Component {
141
141
  const enterKey = 'Enter';
142
142
  const spaceKey = ' ';
143
143
  if (event.key === rightArrow) {
144
- const nextTabIndex = (tabIndex + 1) % this.tabIds.length;
144
+ const nextTabIndex = (tabIndex + 1) % this._tabIds.length;
145
145
  this.focusTab(nextTabIndex, event);
146
146
  } else if (event.key === leftArrow) {
147
- const prevTabIndex = (tabIndex + this.tabIds.length - 1) % this.tabIds.length;
147
+ const prevTabIndex = (tabIndex + this._tabIds.length - 1) % this._tabIds.length;
148
148
  this.focusTab(prevTabIndex, event);
149
149
  } else if (event.key === enterKey || event.key === spaceKey) {
150
150
  this.selectedTabIndex = tabIndex;
151
151
  }
152
152
  // scroll selected tab into view (it may be out of view when activated using a keyboard with `prev/next`)
153
- const parentNode = this.tabNodes[this.selectedTabIndex]?.parentNode;
153
+ const parentNode = this._tabNodes[this.selectedTabIndex]?.parentNode;
154
154
  if (parentNode instanceof HTMLElement) {
155
155
  parentNode.scrollIntoView({
156
156
  behavior: 'smooth',
@@ -163,12 +163,12 @@ let HdsTabs = (_class = class HdsTabs extends Component {
163
163
  // Focus tab for keyboard & mouse navigation:
164
164
  focusTab(tabIndex, event) {
165
165
  event.preventDefault();
166
- this.tabNodes[tabIndex]?.focus();
166
+ this._tabNodes[tabIndex]?.focus();
167
167
  }
168
168
  setTabIndicator() {
169
169
  // eslint-disable-next-line ember/no-runloop
170
170
  next(() => {
171
- const tabElem = this.tabNodes[this.selectedTabIndex];
171
+ const tabElem = this._tabNodes[this.selectedTabIndex];
172
172
  if (tabElem != null) {
173
173
  const tabElemParentNode = tabElem.parentNode;
174
174
  const tabsElemClosestList = tabElem.closest('.hds-tabs__tablist');
@@ -185,10 +185,10 @@ let HdsTabs = (_class = class HdsTabs extends Component {
185
185
  } else {
186
186
  let message = '';
187
187
  message += '"Hds::Tabs" has tried to set the indicator for an element that doesn\'t exist';
188
- if (this.tabNodes.length === 0) {
189
- message += ' (the array `this.tabNodes` is empty, there are no tabs, probably already destroyed)';
188
+ if (this._tabNodes.length === 0) {
189
+ message += ' (the array `this._tabNodes` is empty, there are no tabs, probably already destroyed)';
190
190
  } else {
191
- message += ` (the value ${this.selectedTabIndex} of \`this.selectedTabIndex\` is out of bound for the array \`this.tabNodes\`, whose index range is [0 - ${this.tabNodes.length - 1}])`;
191
+ message += ` (the value ${this.selectedTabIndex} of \`this.selectedTabIndex\` is out of bound for the array \`this._tabNodes\`, whose index range is [0 - ${this._tabNodes.length - 1}])`;
192
192
  }
193
193
  // https://api.emberjs.com/ember/5.3/classes/@ember%2Fdebug/methods/warn?anchor=warn
194
194
  warn(message, true, {
@@ -197,28 +197,28 @@ let HdsTabs = (_class = class HdsTabs extends Component {
197
197
  }
198
198
  });
199
199
  }
200
- }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "tabNodes", [tracked], {
200
+ }, _descriptor = _applyDecoratedDescriptor(_class.prototype, "_tabNodes", [tracked], {
201
201
  configurable: true,
202
202
  enumerable: true,
203
203
  writable: true,
204
204
  initializer: function () {
205
205
  return [];
206
206
  }
207
- }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "tabIds", [tracked], {
207
+ }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "_tabIds", [tracked], {
208
208
  configurable: true,
209
209
  enumerable: true,
210
210
  writable: true,
211
211
  initializer: function () {
212
212
  return [];
213
213
  }
214
- }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "panelNodes", [tracked], {
214
+ }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "_panelNodes", [tracked], {
215
215
  configurable: true,
216
216
  enumerable: true,
217
217
  writable: true,
218
218
  initializer: function () {
219
219
  return [];
220
220
  }
221
- }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "panelIds", [tracked], {
221
+ }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "_panelIds", [tracked], {
222
222
  configurable: true,
223
223
  enumerable: true,
224
224
  writable: true,
@@ -230,17 +230,17 @@ let HdsTabs = (_class = class HdsTabs extends Component {
230
230
  enumerable: true,
231
231
  writable: true,
232
232
  initializer: null
233
- }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "selectedTabId", [tracked], {
233
+ }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "_selectedTabId", [tracked], {
234
234
  configurable: true,
235
235
  enumerable: true,
236
236
  writable: true,
237
237
  initializer: null
238
- }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "isControlled", [tracked], {
238
+ }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "_isControlled", [tracked], {
239
239
  configurable: true,
240
240
  enumerable: true,
241
241
  writable: true,
242
242
  initializer: null
243
- }), _applyDecoratedDescriptor(_class.prototype, "didInsert", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabIndex", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabIndex"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabId", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabId"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateParentVisibility", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateParentVisibility"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype)), _class);
243
+ }), _applyDecoratedDescriptor(_class.prototype, "didInsert", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabIndex", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabIndex"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSelectedTabId", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSelectedTabId"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateParentVisibility", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateParentVisibility"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyTab", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyTab"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyPanel", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyPanel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype), _class);
244
244
  setComponentTemplate(TEMPLATE, HdsTabs);
245
245
 
246
246
  export { DEFAULT_SIZE, SIZES, HdsTabs as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.hbs","../../../../src/components/hds/tabs/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable no-invalid-role }}\\n<div\\n class={{this.classNames}}\\n {{did-insert this.didInsert}}\\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\\n {{did-update this.didUpdateSelectedTabId this.selectedTabId}}\\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\\n ...attributes\\n>\\n <div class=\\\"hds-tabs__tablist-wrapper\\\">\\n <ul class=\\\"hds-tabs__tablist\\\" role=\\\"tablist\\\">\\n {{yield\\n (hash\\n Tab=(component\\n \\\"hds/tabs/tab\\\"\\n didInsertNode=this.didInsertTab\\n didUpdateNode=this.didUpdateTab\\n willDestroyNode=this.willDestroyTab\\n tabIds=this.tabIds\\n selectedTabIndex=this.selectedTabIndex\\n onClick=this.onClick\\n onKeyUp=this.onKeyUp\\n )\\n )\\n }}\\n <li class=\\\"hds-tabs__tab-indicator\\\" role=\\\"presentation\\\"></li>\\n </ul>\\n </div>\\n\\n {{yield\\n (hash\\n Panel=(component\\n \\\"hds/tabs/panel\\\"\\n didInsertNode=this.didInsertPanel\\n willDestroyNode=this.willDestroyPanel\\n tabIds=this.tabIds\\n panelIds=this.panelIds\\n selectedTabIndex=this.selectedTabIndex\\n )\\n )\\n }}\\n</div>\\n{{! template-lint-enable no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { HdsTabsSizeValues } from './types.ts';\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsTabsTabSignature } from './tab';\nimport type { HdsTabsPanelSignature } from './panel';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium' as const;\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\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?: ComponentLike<HdsTabsTabSignature>;\n Panel?: ComponentLike<HdsTabsPanelSignature>;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsTabs extends Component<HdsTabsSignature> {\n @tracked tabNodes: HTMLButtonElement[] = [];\n @tracked tabIds: HdsTabsTabIds = [];\n @tracked panelNodes: HTMLElement[] = [];\n @tracked panelIds: HdsTabsPanelIds = [];\n @tracked _selectedTabIndex;\n @tracked selectedTabId?: string;\n @tracked isControlled: boolean;\n\n /**\n * Sets the size of Tabs\n * Accepted values: medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size(): 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: unknown, 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 /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n @action\n didInsert(): 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 @action\n didUpdateSelectedTabIndex(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\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 @action\n didUpdateParentVisibility(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\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 @action\n didUpdateTab(tabIndex: number, isSelected?: boolean): void {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n }\n\n @action\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((tabId): boolean => tabId !== element.id);\n }\n\n @action\n didInsertPanel(element: HTMLElement, panelId: string): void {\n this.panelNodes = [...this.panelNodes, element];\n this.panelIds = [...this.panelIds, panelId];\n }\n\n @action\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 @action\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 @action\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"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","_class","Component","size","args","assert","join","includes","constructor","owner","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","tabNodes","length","panelNodes","selectedTabId","tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","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","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/hds/tabs/index.hbs","../../../../src/components/hds/tabs/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable no-invalid-role }}\\n<div\\n class={{this.classNames}}\\n {{did-insert this.didInsert}}\\n {{did-update this.didUpdateSelectedTabIndex this.selectedTabIndex}}\\n {{did-update this.didUpdateSelectedTabId this._selectedTabId}}\\n {{did-update this.didUpdateParentVisibility @isParentVisible}}\\n ...attributes\\n>\\n <div class=\\\"hds-tabs__tablist-wrapper\\\">\\n <ul class=\\\"hds-tabs__tablist\\\" role=\\\"tablist\\\">\\n {{yield\\n (hash\\n Tab=(component\\n \\\"hds/tabs/tab\\\"\\n didInsertNode=this.didInsertTab\\n didUpdateNode=this.didUpdateTab\\n willDestroyNode=this.willDestroyTab\\n tabIds=this._tabIds\\n selectedTabIndex=this.selectedTabIndex\\n onClick=this.onClick\\n onKeyUp=this.onKeyUp\\n )\\n )\\n }}\\n <li class=\\\"hds-tabs__tab-indicator\\\" role=\\\"presentation\\\"></li>\\n </ul>\\n </div>\\n\\n {{yield\\n (hash\\n Panel=(component\\n \\\"hds/tabs/panel\\\"\\n didInsertNode=this.didInsertPanel\\n willDestroyNode=this.willDestroyPanel\\n tabIds=this._tabIds\\n panelIds=this._panelIds\\n selectedTabIndex=this.selectedTabIndex\\n )\\n )\\n }}\\n</div>\\n{{! template-lint-enable no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert, warn } from '@ember/debug';\nimport { next, schedule } from '@ember/runloop';\nimport { HdsTabsSizeValues } from './types.ts';\nimport type { ComponentLike } from '@glint/template';\nimport type { HdsTabsTabSignature } from './tab';\nimport type { HdsTabsPanelSignature } from './panel';\nimport type { HdsTabsTabIds, HdsTabsPanelIds, HdsTabsSizes } from './types.ts';\n\nexport const DEFAULT_SIZE: HdsTabsSizes = 'medium' as const;\nexport const SIZES: HdsTabsSizes[] = Object.values(HdsTabsSizeValues);\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?: ComponentLike<HdsTabsTabSignature>;\n Panel?: ComponentLike<HdsTabsPanelSignature>;\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 /**\n * Sets the size of Tabs\n * Accepted values: medium, large\n *\n * @param size\n * @type {string}\n * @default 'medium'\n */\n get size(): 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: unknown, 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 /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs'];\n\n // add a class based on the @size argument\n classes.push(`hds-tabs--size-${this.size}`);\n\n return classes.join(' ');\n }\n\n @action\n didInsert(): 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 @action\n didUpdateSelectedTabIndex(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\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 @action\n didUpdateParentVisibility(): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', (): void => {\n this.setTabIndicator();\n });\n }\n\n @action\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 @action\n didUpdateTab(tabIndex: number, isSelected?: boolean): void {\n if (isSelected) {\n this.selectedTabIndex = tabIndex;\n }\n this.setTabIndicator();\n }\n\n @action\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 @action\n didInsertPanel(element: HTMLElement, panelId: string): void {\n this._panelNodes = [...this._panelNodes, element];\n this._panelIds = [...this._panelIds, panelId];\n }\n\n @action\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 @action\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 @action\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"],"names":["DEFAULT_SIZE","SIZES","Object","values","HdsTabsSizeValues","HdsTabs","_class","Component","size","args","assert","join","includes","constructor","owner","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_isControlled","selectedTabIndex","undefined","_selectedTabIndex","value","classNames","classes","push","didInsert","_tabNodes","length","_panelNodes","_selectedTabId","_tabIds","indexOf","schedule","setTabIndicator","didUpdateSelectedTabIndex","didUpdateSelectedTabId","didUpdateParentVisibility","didInsertTab","element","isSelected","id","didUpdateTab","tabIndex","willDestroyTab","filter","node","tabId","didInsertPanel","panelId","_panelIds","willDestroyPanel","onClick","event","onClickTab","onKeyUp","leftArrow","rightArrow","enterKey","spaceKey","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","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { guidFor } from '@ember/object/internals';
4
4
  import { action } from '@ember/object';
5
5
  import { precompileTemplate } from '@ember/template-compilation';
6
6
  import { setComponentTemplate } from '@ember/component';
7
7
 
8
- var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this.panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{did-insert this.didInsertNode}}\n {{will-destroy this.willDestroyNode}}\n>\n {{yield (hash isVisible=this.isVisible)}}\n</section>");
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<section\n class=\"hds-tabs__panel\"\n ...attributes\n role=\"tabpanel\"\n id={{this._panelId}}\n hidden={{not this.isVisible}}\n aria-labelledby={{this.coupledTabId}}\n {{did-insert this.didInsertNode}}\n {{will-destroy this.willDestroyNode}}\n>\n {{yield (hash isVisible=this.isVisible)}}\n</section>");
9
9
 
10
10
  var _class;
11
11
  let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
@@ -14,12 +14,13 @@ let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
14
14
  /**
15
15
  * Generate a unique ID for the Panel
16
16
  * @return {string}
17
+ * @param _panelId
17
18
  */
18
- _defineProperty(this, "panelId", 'panel-' + guidFor(this));
19
- _defineProperty(this, "elementId", void 0);
19
+ _defineProperty(this, "_panelId", 'panel-' + guidFor(this));
20
+ _defineProperty(this, "_elementId", void 0);
20
21
  }
21
22
  get nodeIndex() {
22
- return this.args.panelIds ? this.args.panelIds.indexOf(this.panelId) : undefined;
23
+ return this.args.panelIds ? this.args.panelIds.indexOf(this._panelId) : undefined;
23
24
  }
24
25
 
25
26
  /**
@@ -42,8 +43,8 @@ let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
42
43
  didInsertNode
43
44
  } = this.args;
44
45
  if (typeof didInsertNode === 'function') {
45
- this.elementId = element.id;
46
- didInsertNode(element, this.elementId);
46
+ this._elementId = element.id;
47
+ didInsertNode(element, this._elementId);
47
48
  }
48
49
  }
49
50
  willDestroyNode(element) {
@@ -54,7 +55,7 @@ let HdsTabsPanel = (_class = class HdsTabsPanel extends Component {
54
55
  willDestroyNode(element);
55
56
  }
56
57
  }
57
- }, (_applyDecoratedDescriptor(_class.prototype, "didInsertNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype)), _class);
58
+ }, _applyDecoratedDescriptor(_class.prototype, "didInsertNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype), _class);
58
59
  setComponentTemplate(TEMPLATE, HdsTabsPanel);
59
60
 
60
61
  export { HdsTabsPanel as default };
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.hbs","../../../../src/components/hds/tabs/panel.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<section\\n class=\\\"hds-tabs__panel\\\"\\n ...attributes\\n role=\\\"tabpanel\\\"\\n id={{this.panelId}}\\n hidden={{not this.isVisible}}\\n aria-labelledby={{this.coupledTabId}}\\n {{did-insert this.didInsertNode}}\\n {{will-destroy this.willDestroyNode}}\\n>\\n {{yield (hash isVisible=this.isVisible)}}\\n</section>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport type { HdsTabsTabSignature } from './tab';\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 /**\n * Generate a unique ID for the Panel\n * @return {string}\n */\n panelId = 'panel-' + guidFor(this);\n\n 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 /**\n * Check the condition if the panel is visible (because the coupled/associated tab is selected) or not\n * @returns {boolean}\n */\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n /**\n * Get the ID of the tab coupled/associated with the panel (it's used by the `aria-labelledby` attribute)\n * @returns string}\n */\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n @action\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 @action\n willDestroyNode(element: HTMLElement): void {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n}\n"],"names":["HdsTabsPanel","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","panelIds","indexOf","panelId","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","elementId","id","willDestroyNode","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,sYAAsY;;;AC4BnZA,IAAAA,YAAY,IAAAC,MAAA,GAAlB,MAAMD,YAAY,SAASE,SAAS,CAAwB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AACzE;AACF;AACA;AACA;AAHEC,IAAAA,eAAA,kBAIU,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;IAAAD,eAAA,CAAA,IAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA;EAIlC,IAAIE,SAASA,GAAuB;AAClC,IAAA,OAAO,IAAI,CAACH,IAAI,CAACI,QAAQ,GACrB,IAAI,CAACJ,IAAI,CAACI,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACC,OAAO,CAAC,GACxCC,SAAS,CAAA;AACf,GAAA;;AAEA;AACF;AACA;AACA;EACE,IAAIC,SAASA,GAAY;IACvB,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACH,IAAI,CAACS,gBAAgB,CAAA;AACtD,GAAA;;AAEA;AACF;AACA;AACA;EACE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAS,GAC/B,IAAI,CAACP,IAAI,CAACW,MAAM,GAAG,IAAI,CAACR,SAAS,CAAC,GAClCI,SAAS,CAAA;AACf,GAAA;EAGAK,aAAaA,CAACC,OAAoB,EAAQ;IACxC,MAAM;AAAED,MAAAA,aAAAA;KAAe,GAAG,IAAI,CAACZ,IAAI,CAAA;AAEnC,IAAA,IAAI,OAAOY,aAAa,KAAK,UAAU,EAAE;AACvC,MAAA,IAAI,CAACE,SAAS,GAAGD,OAAO,CAACE,EAAE,CAAA;AAC3BH,MAAAA,aAAa,CAACC,OAAO,EAAE,IAAI,CAACC,SAAS,CAAC,CAAA;AACxC,KAAA;AACF,GAAA;EAGAE,eAAeA,CAACH,OAAoB,EAAQ;IAC1C,MAAM;AAAEG,MAAAA,eAAAA;KAAiB,GAAG,IAAI,CAAChB,IAAI,CAAA;AAErC,IAAA,IAAI,OAAOgB,eAAe,KAAK,UAAU,EAAE;MACzCA,eAAe,CAACH,OAAO,CAAC,CAAA;AAC1B,KAAA;AACF,GAAA;AACF,CAAC,GAAAI,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,oBAlBEC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,eAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,CAAAD,EAAAA,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,EAUNC,iBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,iBAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,IAAArB,MAAA,EAAA;AA3CwByB,oBAAA,CAAAC,QAAA,EAAZ3B,YAAY,CAAA;;;;"}
1
+ {"version":3,"file":"panel.js","sources":["../../../../src/components/hds/tabs/panel.hbs","../../../../src/components/hds/tabs/panel.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<section\\n class=\\\"hds-tabs__panel\\\"\\n ...attributes\\n role=\\\"tabpanel\\\"\\n id={{this._panelId}}\\n hidden={{not this.isVisible}}\\n aria-labelledby={{this.coupledTabId}}\\n {{did-insert this.didInsertNode}}\\n {{will-destroy this.willDestroyNode}}\\n>\\n {{yield (hash isVisible=this.isVisible)}}\\n</section>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport type { HdsTabsTabSignature } from './tab';\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 /**\n * Generate a unique ID for the Panel\n * @return {string}\n * @param _panelId\n */\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 /**\n * Check the condition if the panel is visible (because the coupled/associated tab is selected) or not\n * @returns {boolean}\n */\n get isVisible(): boolean {\n return this.nodeIndex === this.args.selectedTabIndex;\n }\n\n /**\n * Get the ID of the tab coupled/associated with the panel (it's used by the `aria-labelledby` attribute)\n * @returns string}\n */\n get coupledTabId(): string | undefined {\n return this.nodeIndex !== undefined\n ? this.args.tabIds?.[this.nodeIndex]\n : undefined;\n }\n\n @action\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 @action\n willDestroyNode(element: HTMLElement): void {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n}\n"],"names":["HdsTabsPanel","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","panelIds","indexOf","_panelId","undefined","isVisible","selectedTabIndex","coupledTabId","tabIds","didInsertNode","element","_elementId","id","willDestroyNode","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,uYAAuY;;;AC4BpZA,IAAAA,YAAY,IAAAC,MAAA,GAAlB,MAAMD,YAAY,SAASE,SAAS,CAAwB;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AACzE;AACF;AACA;AACA;AACA;AAJEC,IAAAA,eAAA,mBAKmB,QAAQ,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA;IAAAD,eAAA,CAAA,IAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAAA;EAI3C,IAAIE,SAASA,GAAuB;AAClC,IAAA,OAAO,IAAI,CAACH,IAAI,CAACI,QAAQ,GACrB,IAAI,CAACJ,IAAI,CAACI,QAAQ,CAACC,OAAO,CAAC,IAAI,CAACC,QAAQ,CAAC,GACzCC,SAAS;AACf;;AAEA;AACF;AACA;AACA;EACE,IAAIC,SAASA,GAAY;IACvB,OAAO,IAAI,CAACL,SAAS,KAAK,IAAI,CAACH,IAAI,CAACS,gBAAgB;AACtD;;AAEA;AACF;AACA;AACA;EACE,IAAIC,YAAYA,GAAuB;AACrC,IAAA,OAAO,IAAI,CAACP,SAAS,KAAKI,SAAS,GAC/B,IAAI,CAACP,IAAI,CAACW,MAAM,GAAG,IAAI,CAACR,SAAS,CAAC,GAClCI,SAAS;AACf;EAGAK,aAAaA,CAACC,OAAoB,EAAQ;IACxC,MAAM;AAAED,MAAAA;KAAe,GAAG,IAAI,CAACZ,IAAI;AAEnC,IAAA,IAAI,OAAOY,aAAa,KAAK,UAAU,EAAE;AACvC,MAAA,IAAI,CAACE,UAAU,GAAGD,OAAO,CAACE,EAAE;AAC5BH,MAAAA,aAAa,CAACC,OAAO,EAAE,IAAI,CAACC,UAAU,CAAC;AACzC;AACF;EAGAE,eAAeA,CAACH,OAAoB,EAAQ;IAC1C,MAAM;AAAEG,MAAAA;KAAiB,GAAG,IAAI,CAAChB,IAAI;AAErC,IAAA,IAAI,OAAOgB,eAAe,KAAK,UAAU,EAAE;MACzCA,eAAe,CAACH,OAAO,CAAC;AAC1B;AACF;AACF,CAAC,EAAAI,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,oBAlBEC,MAAM,CAAA,EAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,eAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,CAAAD,EAAAA,yBAAA,CAAApB,MAAA,CAAAqB,SAAA,EAUNC,iBAAAA,EAAAA,CAAAA,MAAM,GAAAC,MAAA,CAAAC,wBAAA,CAAAxB,MAAA,CAAAqB,SAAA,EAAA,iBAAA,CAAA,EAAArB,MAAA,CAAAqB,SAAA,GAAArB,MAAA;AA5CwByB,oBAAA,CAAAC,QAAA,EAAZ3B,YAAY,CAAA;;;;"}
@@ -1,11 +1,11 @@
1
- import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-KIi_qCIU.js';
1
+ import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-81503waH.js';
2
2
  import Component from '@glimmer/component';
3
3
  import { guidFor } from '@ember/object/internals';
4
4
  import { action } from '@ember/object';
5
5
  import { precompileTemplate } from '@ember/template-compilation';
6
6
  import { setComponentTemplate } from '@ember/component';
7
7
 
8
- var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable require-context-role no-invalid-role }}\n<li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this.tabId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{did-insert this.didInsertNode @isSelected}}\n {{did-update this.didUpdateNode @count @isSelected}}\n {{will-destroy this.willDestroyNode}}\n {{on \"click\" this.onClick}}\n {{on \"keyup\" this.onKeyUp}}\n >\n {{#if @icon}}\n <Hds::Icon @name={{@icon}} class=\"hds-tabs__tab-icon\" role=\"presentation\" />\n {{/if}}\n\n {{yield}}\n\n {{#if @count}}\n <Hds::BadgeCount @text={{@count}} @size=\"small\" class=\"hds-tabs__tab-count\" role=\"presentation\" />\n {{/if}}\n </button>\n</li>\n{{! template-lint-enable require-context-role no-invalid-role }}");
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable require-context-role no-invalid-role }}\n<li class={{this.classNames}} ...attributes role=\"presentation\">\n <button\n class=\"hds-tabs__tab-button\"\n role=\"tab\"\n type=\"button\"\n id={{this._tabId}}\n aria-selected={{if this.isSelected \"true\" \"false\"}}\n tabindex={{unless this.isSelected \"-1\"}}\n {{did-insert this.didInsertNode @isSelected}}\n {{did-update this.didUpdateNode @count @isSelected}}\n {{will-destroy this.willDestroyNode}}\n {{on \"click\" this.onClick}}\n {{on \"keyup\" this.onKeyUp}}\n >\n {{#if @icon}}\n <Hds::Icon @name={{@icon}} class=\"hds-tabs__tab-icon\" role=\"presentation\" />\n {{/if}}\n\n {{yield}}\n\n {{#if @count}}\n <Hds::BadgeCount @text={{@count}} @size=\"small\" class=\"hds-tabs__tab-count\" role=\"presentation\" />\n {{/if}}\n </button>\n</li>\n{{! template-lint-enable require-context-role no-invalid-role }}");
9
9
 
10
10
  var _class;
11
11
  let HdsTabsTab = (_class = class HdsTabsTab extends Component {
@@ -14,11 +14,12 @@ let HdsTabsTab = (_class = class HdsTabsTab extends Component {
14
14
  /**
15
15
  * Generate a unique ID for the Tab
16
16
  * @return {string}
17
+ * @param _tabId
17
18
  */
18
- _defineProperty(this, "tabId", 'tab-' + guidFor(this));
19
+ _defineProperty(this, "_tabId", 'tab-' + guidFor(this));
19
20
  }
20
21
  get nodeIndex() {
21
- return this.args.tabIds?.indexOf(this.tabId);
22
+ return this.args.tabIds?.indexOf(this._tabId);
22
23
  }
23
24
 
24
25
  /**
@@ -85,7 +86,7 @@ let HdsTabsTab = (_class = class HdsTabsTab extends Component {
85
86
  }
86
87
  return classes.join(' ');
87
88
  }
88
- }, (_applyDecoratedDescriptor(_class.prototype, "didInsertNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype)), _class);
89
+ }, _applyDecoratedDescriptor(_class.prototype, "didInsertNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyNode", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onKeyUp", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onKeyUp"), _class.prototype), _class);
89
90
  setComponentTemplate(TEMPLATE, HdsTabsTab);
90
91
 
91
92
  export { HdsTabsTab as default };
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.hbs","../../../../src/components/hds/tabs/tab.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable require-context-role no-invalid-role }}\\n<li class={{this.classNames}} ...attributes role=\\\"presentation\\\">\\n <button\\n class=\\\"hds-tabs__tab-button\\\"\\n role=\\\"tab\\\"\\n type=\\\"button\\\"\\n id={{this.tabId}}\\n aria-selected={{if this.isSelected \\\"true\\\" \\\"false\\\"}}\\n tabindex={{unless this.isSelected \\\"-1\\\"}}\\n {{did-insert this.didInsertNode @isSelected}}\\n {{did-update this.didUpdateNode @count @isSelected}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"click\\\" this.onClick}}\\n {{on \\\"keyup\\\" this.onKeyUp}}\\n >\\n {{#if @icon}}\\n <Hds::Icon @name={{@icon}} class=\\\"hds-tabs__tab-icon\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n\\n {{yield}}\\n\\n {{#if @count}}\\n <Hds::BadgeCount @text={{@count}} @size=\\\"small\\\" class=\\\"hds-tabs__tab-count\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n </button>\\n</li>\\n{{! template-lint-enable require-context-role no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport type { IconName } from '@hashicorp/flight-icons/svg';\nimport type { HdsTabsTabIds } from './types';\n\nexport interface HdsTabsTabSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\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 /**\n * Generate a unique ID for the Tab\n * @return {string}\n */\n tabId = 'tab-' + guidFor(this);\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this.tabId);\n }\n\n /**\n * Determine if the tab is the selected tab\n * @return {boolean}\n * @default false (1st tab is selected by default)\n */\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n @action\n didInsertNode(element: HTMLButtonElement, positional: [boolean?]): 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 @action\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 @action\n willDestroyNode(element: HTMLButtonElement): void {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n\n @action\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 @action\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 /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsTabsTab","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","tabIds","indexOf","tabId","isSelected","undefined","selectedTabIndex","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"tab.js","sources":["../../../../src/components/hds/tabs/tab.hbs","../../../../src/components/hds/tabs/tab.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n{{! template-lint-disable require-context-role no-invalid-role }}\\n<li class={{this.classNames}} ...attributes role=\\\"presentation\\\">\\n <button\\n class=\\\"hds-tabs__tab-button\\\"\\n role=\\\"tab\\\"\\n type=\\\"button\\\"\\n id={{this._tabId}}\\n aria-selected={{if this.isSelected \\\"true\\\" \\\"false\\\"}}\\n tabindex={{unless this.isSelected \\\"-1\\\"}}\\n {{did-insert this.didInsertNode @isSelected}}\\n {{did-update this.didUpdateNode @count @isSelected}}\\n {{will-destroy this.willDestroyNode}}\\n {{on \\\"click\\\" this.onClick}}\\n {{on \\\"keyup\\\" this.onKeyUp}}\\n >\\n {{#if @icon}}\\n <Hds::Icon @name={{@icon}} class=\\\"hds-tabs__tab-icon\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n\\n {{yield}}\\n\\n {{#if @count}}\\n <Hds::BadgeCount @text={{@count}} @size=\\\"small\\\" class=\\\"hds-tabs__tab-count\\\" role=\\\"presentation\\\" />\\n {{/if}}\\n </button>\\n</li>\\n{{! template-lint-enable require-context-role no-invalid-role }}\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\nimport type { IconName } from '@hashicorp/flight-icons/svg';\nimport type { HdsTabsTabIds } from './types';\n\nexport interface HdsTabsTabSignature {\n Args: {\n tabIds?: HdsTabsTabIds;\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 /**\n * Generate a unique ID for the Tab\n * @return {string}\n * @param _tabId\n */\n private _tabId = 'tab-' + guidFor(this);\n\n get nodeIndex(): number | undefined {\n return this.args.tabIds?.indexOf(this._tabId);\n }\n\n /**\n * Determine if the tab is the selected tab\n * @return {boolean}\n * @default false (1st tab is selected by default)\n */\n get isSelected(): boolean {\n return (\n this.nodeIndex !== undefined &&\n this.nodeIndex === this.args.selectedTabIndex\n );\n }\n\n @action\n didInsertNode(element: HTMLButtonElement, positional: [boolean?]): 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 @action\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 @action\n willDestroyNode(element: HTMLButtonElement): void {\n const { willDestroyNode } = this.args;\n\n if (typeof willDestroyNode === 'function') {\n willDestroyNode(element);\n }\n }\n\n @action\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 @action\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 /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-tabs__tab'];\n\n if (this.isSelected) {\n classes.push(`hds-tabs__tab--is-selected`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsTabsTab","_class","Component","constructor","args","_defineProperty","guidFor","nodeIndex","tabIds","indexOf","_tabId","isSelected","undefined","selectedTabIndex","didInsertNode","element","positional","didUpdateNode","willDestroyNode","onClick","event","onKeyUp","classNames","classes","push","join","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/components/hds/tabs/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsTabsSizeValues {\n Medium = 'medium',\n Large = 'large',\n}\n\nexport type HdsTabsSizes = `${HdsTabsSizeValues}`;\n\nexport type HdsTabsPanelIds = string[];\n\nexport type HdsTabsTabIds = string[];\n"],"names":["HdsTabsSizeValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEYA,IAAAA,iBAAiB,0BAAjBA,iBAAiB,EAAA;EAAjBA,iBAAiB,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAAjBA,iBAAiB,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;AAAA,EAAA,OAAjBA,iBAAiB,CAAA;AAAA,CAAA,CAAA,EAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/hds/tabs/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport enum HdsTabsSizeValues {\n Medium = 'medium',\n Large = 'large',\n}\n\nexport type HdsTabsSizes = `${HdsTabsSizeValues}`;\n\nexport type HdsTabsPanelIds = string[];\n\nexport type HdsTabsTabIds = string[];\n"],"names":["HdsTabsSizeValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAEYA,IAAAA,iBAAiB,0BAAjBA,iBAAiB,EAAA;EAAjBA,iBAAiB,CAAA,QAAA,CAAA,GAAA,QAAA;EAAjBA,iBAAiB,CAAA,OAAA,CAAA,GAAA,OAAA;AAAA,EAAA,OAAjBA,iBAAiB;AAAA,CAAA,CAAA,EAAA;;;;"}