@hashicorp/design-system-components 4.8.0 → 4.10.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 (778) hide show
  1. package/README.md +0 -1
  2. package/declarations/components/hds/accordion/index.d.ts +4 -2
  3. package/declarations/components/hds/accordion/index.d.ts.map +1 -1
  4. package/declarations/components/hds/accordion/item/button.d.ts +3 -1
  5. package/declarations/components/hds/accordion/item/button.d.ts.map +1 -1
  6. package/declarations/components/hds/accordion/item/index.d.ts +9 -11
  7. package/declarations/components/hds/accordion/item/index.d.ts.map +1 -1
  8. package/declarations/components/hds/accordion/types.d.ts +10 -0
  9. package/declarations/components/hds/accordion/types.d.ts.map +1 -1
  10. package/declarations/components/hds/alert/description.d.ts +2 -2
  11. package/declarations/components/hds/alert/description.d.ts.map +1 -1
  12. package/declarations/components/hds/alert/index.d.ts +5 -5
  13. package/declarations/components/hds/alert/index.d.ts.map +1 -1
  14. package/declarations/components/hds/alert/title.d.ts +8 -3
  15. package/declarations/components/hds/alert/title.d.ts.map +1 -1
  16. package/declarations/components/hds/alert/types.d.ts +10 -0
  17. package/declarations/components/hds/alert/types.d.ts.map +1 -1
  18. package/declarations/components/hds/app-footer/copyright.d.ts +1 -1
  19. package/declarations/components/hds/app-footer/copyright.d.ts.map +1 -1
  20. package/declarations/components/hds/app-footer/index.d.ts +1 -1
  21. package/declarations/components/hds/app-footer/index.d.ts.map +1 -1
  22. package/declarations/components/hds/app-footer/item.d.ts +1 -1
  23. package/declarations/components/hds/app-footer/item.d.ts.map +1 -1
  24. package/declarations/components/hds/app-footer/legal-links.d.ts +1 -1
  25. package/declarations/components/hds/app-footer/legal-links.d.ts.map +1 -1
  26. package/declarations/components/hds/app-footer/link.d.ts +3 -3
  27. package/declarations/components/hds/app-footer/link.d.ts.map +1 -1
  28. package/declarations/components/hds/app-footer/status-link.d.ts +5 -10
  29. package/declarations/components/hds/app-footer/status-link.d.ts.map +1 -1
  30. package/declarations/components/hds/app-footer/types.d.ts +2 -2
  31. package/declarations/components/hds/app-footer/types.d.ts.map +1 -1
  32. package/declarations/components/hds/app-frame/index.d.ts +2 -29
  33. package/declarations/components/hds/app-frame/index.d.ts.map +1 -1
  34. package/declarations/components/hds/app-frame/parts/footer.d.ts +1 -1
  35. package/declarations/components/hds/app-frame/parts/footer.d.ts.map +1 -1
  36. package/declarations/components/hds/app-frame/parts/header.d.ts +1 -1
  37. package/declarations/components/hds/app-frame/parts/header.d.ts.map +1 -1
  38. package/declarations/components/hds/app-frame/parts/main.d.ts +1 -1
  39. package/declarations/components/hds/app-frame/parts/main.d.ts.map +1 -1
  40. package/declarations/components/hds/app-frame/parts/modals.d.ts +1 -1
  41. package/declarations/components/hds/app-frame/parts/modals.d.ts.map +1 -1
  42. package/declarations/components/hds/app-frame/parts/sidebar.d.ts +1 -1
  43. package/declarations/components/hds/app-frame/parts/sidebar.d.ts.map +1 -1
  44. package/declarations/components/hds/app-header/home-link.d.ts +3 -3
  45. package/declarations/components/hds/app-header/home-link.d.ts.map +1 -1
  46. package/declarations/components/hds/app-header/index.d.ts +12 -2
  47. package/declarations/components/hds/app-header/index.d.ts.map +1 -1
  48. package/declarations/components/hds/app-header/menu-button.d.ts +1 -1
  49. package/declarations/components/hds/app-header/menu-button.d.ts.map +1 -1
  50. package/declarations/components/hds/application-state/body.d.ts +2 -2
  51. package/declarations/components/hds/application-state/body.d.ts.map +1 -1
  52. package/declarations/components/hds/application-state/footer.d.ts +2 -2
  53. package/declarations/components/hds/application-state/footer.d.ts.map +1 -1
  54. package/declarations/components/hds/application-state/header.d.ts +6 -6
  55. package/declarations/components/hds/application-state/header.d.ts.map +1 -1
  56. package/declarations/components/hds/application-state/index.d.ts +1 -1
  57. package/declarations/components/hds/application-state/index.d.ts.map +1 -1
  58. package/declarations/components/hds/application-state/media.d.ts +2 -2
  59. package/declarations/components/hds/application-state/media.d.ts.map +1 -1
  60. package/declarations/components/hds/application-state/types.d.ts +14 -0
  61. package/declarations/components/hds/application-state/types.d.ts.map +1 -1
  62. package/declarations/components/hds/badge/index.d.ts +3 -11
  63. package/declarations/components/hds/badge/index.d.ts.map +1 -1
  64. package/declarations/components/hds/badge-count/index.d.ts +1 -1
  65. package/declarations/components/hds/badge-count/index.d.ts.map +1 -1
  66. package/declarations/components/hds/breadcrumb/index.d.ts +1 -1
  67. package/declarations/components/hds/breadcrumb/index.d.ts.map +1 -1
  68. package/declarations/components/hds/breadcrumb/item.d.ts +3 -3
  69. package/declarations/components/hds/breadcrumb/item.d.ts.map +1 -1
  70. package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
  71. package/declarations/components/hds/breadcrumb/truncation.d.ts.map +1 -1
  72. package/declarations/components/hds/button/index.d.ts +5 -11
  73. package/declarations/components/hds/button/index.d.ts.map +1 -1
  74. package/declarations/components/hds/button-set/index.d.ts +2 -2
  75. package/declarations/components/hds/button-set/index.d.ts.map +1 -1
  76. package/declarations/components/hds/card/container.d.ts +1 -1
  77. package/declarations/components/hds/card/container.d.ts.map +1 -1
  78. package/declarations/components/hds/code-block/copy-button.d.ts +17 -1
  79. package/declarations/components/hds/code-block/copy-button.d.ts.map +1 -1
  80. package/declarations/components/hds/code-block/description.d.ts +14 -1
  81. package/declarations/components/hds/code-block/description.d.ts.map +1 -1
  82. package/declarations/components/hds/code-block/index.d.ts +48 -6
  83. package/declarations/components/hds/code-block/index.d.ts.map +1 -1
  84. package/declarations/components/hds/code-block/title.d.ts +19 -1
  85. package/declarations/components/hds/code-block/title.d.ts.map +1 -1
  86. package/declarations/components/hds/code-block/types.d.ts +26 -0
  87. package/declarations/components/hds/code-block/types.d.ts.map +1 -0
  88. package/declarations/components/hds/copy/button/index.d.ts +3 -3
  89. package/declarations/components/hds/copy/button/index.d.ts.map +1 -1
  90. package/declarations/components/hds/copy/snippet/index.d.ts +3 -3
  91. package/declarations/components/hds/copy/snippet/index.d.ts.map +1 -1
  92. package/declarations/components/hds/dialog-primitive/body.d.ts +2 -2
  93. package/declarations/components/hds/dialog-primitive/body.d.ts.map +1 -1
  94. package/declarations/components/hds/dialog-primitive/description.d.ts +2 -2
  95. package/declarations/components/hds/dialog-primitive/description.d.ts.map +1 -1
  96. package/declarations/components/hds/dialog-primitive/footer.d.ts +2 -2
  97. package/declarations/components/hds/dialog-primitive/footer.d.ts.map +1 -1
  98. package/declarations/components/hds/dialog-primitive/header.d.ts +7 -4
  99. package/declarations/components/hds/dialog-primitive/header.d.ts.map +1 -1
  100. package/declarations/components/hds/dialog-primitive/overlay.d.ts +2 -2
  101. package/declarations/components/hds/dialog-primitive/overlay.d.ts.map +1 -1
  102. package/declarations/components/hds/dialog-primitive/types.d.ts +15 -0
  103. package/declarations/components/hds/dialog-primitive/types.d.ts.map +1 -0
  104. package/declarations/components/hds/dialog-primitive/wrapper.d.ts +2 -2
  105. package/declarations/components/hds/dialog-primitive/wrapper.d.ts.map +1 -1
  106. package/declarations/components/hds/disclosure-primitive/index.d.ts +1 -1
  107. package/declarations/components/hds/disclosure-primitive/index.d.ts.map +1 -1
  108. package/declarations/components/hds/dismiss-button/index.d.ts +1 -1
  109. package/declarations/components/hds/dismiss-button/index.d.ts.map +1 -1
  110. package/declarations/components/hds/dropdown/footer.d.ts +2 -2
  111. package/declarations/components/hds/dropdown/footer.d.ts.map +1 -1
  112. package/declarations/components/hds/dropdown/header.d.ts +2 -2
  113. package/declarations/components/hds/dropdown/header.d.ts.map +1 -1
  114. package/declarations/components/hds/dropdown/index.d.ts +10 -1
  115. package/declarations/components/hds/dropdown/index.d.ts.map +1 -1
  116. package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +3 -3
  117. package/declarations/components/hds/dropdown/list-item/checkbox.d.ts.map +1 -1
  118. package/declarations/components/hds/dropdown/list-item/checkmark.d.ts +3 -3
  119. package/declarations/components/hds/dropdown/list-item/checkmark.d.ts.map +1 -1
  120. package/declarations/components/hds/dropdown/list-item/copy-item.d.ts +1 -1
  121. package/declarations/components/hds/dropdown/list-item/copy-item.d.ts.map +1 -1
  122. package/declarations/components/hds/dropdown/list-item/description.d.ts +1 -1
  123. package/declarations/components/hds/dropdown/list-item/description.d.ts.map +1 -1
  124. package/declarations/components/hds/dropdown/list-item/generic.d.ts +2 -2
  125. package/declarations/components/hds/dropdown/list-item/generic.d.ts.map +1 -1
  126. package/declarations/components/hds/dropdown/list-item/interactive.d.ts +14 -20
  127. package/declarations/components/hds/dropdown/list-item/interactive.d.ts.map +1 -1
  128. package/declarations/components/hds/dropdown/list-item/radio.d.ts +3 -3
  129. package/declarations/components/hds/dropdown/list-item/radio.d.ts.map +1 -1
  130. package/declarations/components/hds/dropdown/list-item/separator.d.ts +2 -2
  131. package/declarations/components/hds/dropdown/list-item/separator.d.ts.map +1 -1
  132. package/declarations/components/hds/dropdown/list-item/title.d.ts +1 -1
  133. package/declarations/components/hds/dropdown/list-item/title.d.ts.map +1 -1
  134. package/declarations/components/hds/dropdown/toggle/button.d.ts +6 -10
  135. package/declarations/components/hds/dropdown/toggle/button.d.ts.map +1 -1
  136. package/declarations/components/hds/dropdown/toggle/chevron.d.ts +2 -2
  137. package/declarations/components/hds/dropdown/toggle/chevron.d.ts.map +1 -1
  138. package/declarations/components/hds/dropdown/toggle/icon.d.ts +7 -11
  139. package/declarations/components/hds/dropdown/toggle/icon.d.ts.map +1 -1
  140. package/declarations/components/hds/dropdown/types.d.ts +2 -0
  141. package/declarations/components/hds/dropdown/types.d.ts.map +1 -1
  142. package/declarations/components/hds/flyout/body.d.ts +1 -1
  143. package/declarations/components/hds/flyout/body.d.ts.map +1 -1
  144. package/declarations/components/hds/flyout/description.d.ts +1 -1
  145. package/declarations/components/hds/flyout/description.d.ts.map +1 -1
  146. package/declarations/components/hds/flyout/footer.d.ts +1 -1
  147. package/declarations/components/hds/flyout/footer.d.ts.map +1 -1
  148. package/declarations/components/hds/flyout/header.d.ts +3 -3
  149. package/declarations/components/hds/flyout/header.d.ts.map +1 -1
  150. package/declarations/components/hds/flyout/index.d.ts +2 -2
  151. package/declarations/components/hds/flyout/index.d.ts.map +1 -1
  152. package/declarations/components/hds/form/character-count/index.d.ts +1 -1
  153. package/declarations/components/hds/form/character-count/index.d.ts.map +1 -1
  154. package/declarations/components/hds/form/checkbox/base.d.ts +2 -2
  155. package/declarations/components/hds/form/checkbox/base.d.ts.map +1 -1
  156. package/declarations/components/hds/form/checkbox/field.d.ts +2 -2
  157. package/declarations/components/hds/form/checkbox/field.d.ts.map +1 -1
  158. package/declarations/components/hds/form/checkbox/group.d.ts +2 -2
  159. package/declarations/components/hds/form/checkbox/group.d.ts.map +1 -1
  160. package/declarations/components/hds/form/error/index.d.ts +1 -1
  161. package/declarations/components/hds/form/error/index.d.ts.map +1 -1
  162. package/declarations/components/hds/form/error/message.d.ts +2 -2
  163. package/declarations/components/hds/form/error/message.d.ts.map +1 -1
  164. package/declarations/components/hds/form/field/index.d.ts +1 -2
  165. package/declarations/components/hds/form/field/index.d.ts.map +1 -1
  166. package/declarations/components/hds/form/fieldset/index.d.ts +2 -2
  167. package/declarations/components/hds/form/fieldset/index.d.ts.map +1 -1
  168. package/declarations/components/hds/form/fieldset/types.d.ts +1 -1
  169. package/declarations/components/hds/form/fieldset/types.d.ts.map +1 -1
  170. package/declarations/components/hds/form/file-input/base.d.ts +2 -2
  171. package/declarations/components/hds/form/file-input/base.d.ts.map +1 -1
  172. package/declarations/components/hds/form/file-input/field.d.ts +2 -2
  173. package/declarations/components/hds/form/file-input/field.d.ts.map +1 -1
  174. package/declarations/components/hds/form/helper-text/index.d.ts +1 -1
  175. package/declarations/components/hds/form/helper-text/index.d.ts.map +1 -1
  176. package/declarations/components/hds/form/indicator/index.d.ts +1 -1
  177. package/declarations/components/hds/form/indicator/index.d.ts.map +1 -1
  178. package/declarations/components/hds/form/label/index.d.ts +1 -1
  179. package/declarations/components/hds/form/label/index.d.ts.map +1 -1
  180. package/declarations/components/hds/form/legend/index.d.ts +1 -1
  181. package/declarations/components/hds/form/legend/index.d.ts.map +1 -1
  182. package/declarations/components/hds/form/masked-input/base.d.ts +1 -1
  183. package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
  184. package/declarations/components/hds/form/masked-input/field.d.ts +2 -2
  185. package/declarations/components/hds/form/masked-input/field.d.ts.map +1 -1
  186. package/declarations/components/hds/form/radio/base.d.ts +2 -2
  187. package/declarations/components/hds/form/radio/base.d.ts.map +1 -1
  188. package/declarations/components/hds/form/radio/field.d.ts +2 -2
  189. package/declarations/components/hds/form/radio/field.d.ts.map +1 -1
  190. package/declarations/components/hds/form/radio/group.d.ts +2 -2
  191. package/declarations/components/hds/form/radio/group.d.ts.map +1 -1
  192. package/declarations/components/hds/form/radio-card/description.d.ts +2 -2
  193. package/declarations/components/hds/form/radio-card/description.d.ts.map +1 -1
  194. package/declarations/components/hds/form/radio-card/group.d.ts +2 -2
  195. package/declarations/components/hds/form/radio-card/group.d.ts.map +1 -1
  196. package/declarations/components/hds/form/radio-card/index.d.ts +3 -3
  197. package/declarations/components/hds/form/radio-card/index.d.ts.map +1 -1
  198. package/declarations/components/hds/form/radio-card/label.d.ts +2 -2
  199. package/declarations/components/hds/form/radio-card/label.d.ts.map +1 -1
  200. package/declarations/components/hds/form/select/base.d.ts +1 -1
  201. package/declarations/components/hds/form/select/base.d.ts.map +1 -1
  202. package/declarations/components/hds/form/select/field.d.ts +2 -2
  203. package/declarations/components/hds/form/select/field.d.ts.map +1 -1
  204. package/declarations/components/hds/form/super-select/after-options.d.ts +19 -1
  205. package/declarations/components/hds/form/super-select/after-options.d.ts.map +1 -1
  206. package/declarations/components/hds/form/super-select/multiple/base.d.ts +33 -8
  207. package/declarations/components/hds/form/super-select/multiple/base.d.ts.map +1 -1
  208. package/declarations/components/hds/form/super-select/multiple/field.d.ts +16 -2
  209. package/declarations/components/hds/form/super-select/multiple/field.d.ts.map +1 -1
  210. package/declarations/components/hds/form/super-select/option-group.d.ts +17 -3
  211. package/declarations/components/hds/form/super-select/option-group.d.ts.map +1 -1
  212. package/declarations/components/hds/form/super-select/placeholder.d.ts +12 -1
  213. package/declarations/components/hds/form/super-select/placeholder.d.ts.map +1 -1
  214. package/declarations/components/hds/form/super-select/single/base.d.ts +43 -5
  215. package/declarations/components/hds/form/super-select/single/base.d.ts.map +1 -1
  216. package/declarations/components/hds/form/super-select/single/field.d.ts +16 -2
  217. package/declarations/components/hds/form/super-select/single/field.d.ts.map +1 -1
  218. package/declarations/components/hds/form/super-select/types.d.ts +13 -0
  219. package/declarations/components/hds/form/super-select/types.d.ts.map +1 -0
  220. package/declarations/components/hds/form/text-input/base.d.ts +1 -1
  221. package/declarations/components/hds/form/text-input/base.d.ts.map +1 -1
  222. package/declarations/components/hds/form/text-input/field.d.ts +1 -1
  223. package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
  224. package/declarations/components/hds/form/textarea/base.d.ts +1 -1
  225. package/declarations/components/hds/form/textarea/base.d.ts.map +1 -1
  226. package/declarations/components/hds/form/textarea/field.d.ts +2 -2
  227. package/declarations/components/hds/form/textarea/field.d.ts.map +1 -1
  228. package/declarations/components/hds/form/toggle/base.d.ts +2 -2
  229. package/declarations/components/hds/form/toggle/base.d.ts.map +1 -1
  230. package/declarations/components/hds/form/toggle/field.d.ts +2 -2
  231. package/declarations/components/hds/form/toggle/field.d.ts.map +1 -1
  232. package/declarations/components/hds/form/toggle/group.d.ts +2 -2
  233. package/declarations/components/hds/form/toggle/group.d.ts.map +1 -1
  234. package/declarations/components/hds/form/visibility-toggle/index.d.ts +2 -2
  235. package/declarations/components/hds/form/visibility-toggle/index.d.ts.map +1 -1
  236. package/declarations/components/hds/icon/index.d.ts +37 -0
  237. package/declarations/components/hds/icon/index.d.ts.map +1 -0
  238. package/declarations/components/hds/icon/types.d.ts +33 -0
  239. package/declarations/components/hds/icon/types.d.ts.map +1 -0
  240. package/declarations/components/hds/icon-tile/index.d.ts +8 -60
  241. package/declarations/components/hds/icon-tile/index.d.ts.map +1 -1
  242. package/declarations/components/hds/interactive/index.d.ts +1 -1
  243. package/declarations/components/hds/interactive/index.d.ts.map +1 -1
  244. package/declarations/components/hds/link/inline.d.ts +3 -3
  245. package/declarations/components/hds/link/inline.d.ts.map +1 -1
  246. package/declarations/components/hds/link/standalone.d.ts +5 -5
  247. package/declarations/components/hds/link/standalone.d.ts.map +1 -1
  248. package/declarations/components/hds/menu-primitive/index.d.ts +2 -1
  249. package/declarations/components/hds/menu-primitive/index.d.ts.map +1 -1
  250. package/declarations/components/hds/modal/body.d.ts +1 -1
  251. package/declarations/components/hds/modal/body.d.ts.map +1 -1
  252. package/declarations/components/hds/modal/footer.d.ts +1 -1
  253. package/declarations/components/hds/modal/footer.d.ts.map +1 -1
  254. package/declarations/components/hds/modal/header.d.ts +3 -3
  255. package/declarations/components/hds/modal/header.d.ts.map +1 -1
  256. package/declarations/components/hds/modal/index.d.ts +2 -2
  257. package/declarations/components/hds/modal/index.d.ts.map +1 -1
  258. package/declarations/components/hds/page-header/actions.d.ts +2 -2
  259. package/declarations/components/hds/page-header/actions.d.ts.map +1 -1
  260. package/declarations/components/hds/page-header/badges.d.ts +2 -2
  261. package/declarations/components/hds/page-header/badges.d.ts.map +1 -1
  262. package/declarations/components/hds/page-header/description.d.ts +2 -2
  263. package/declarations/components/hds/page-header/description.d.ts.map +1 -1
  264. package/declarations/components/hds/page-header/index.d.ts +2 -2
  265. package/declarations/components/hds/page-header/index.d.ts.map +1 -1
  266. package/declarations/components/hds/page-header/subtitle.d.ts +2 -2
  267. package/declarations/components/hds/page-header/subtitle.d.ts.map +1 -1
  268. package/declarations/components/hds/page-header/title.d.ts +2 -2
  269. package/declarations/components/hds/page-header/title.d.ts.map +1 -1
  270. package/declarations/components/hds/pagination/compact/index.d.ts +43 -31
  271. package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
  272. package/declarations/components/hds/pagination/info/index.d.ts +18 -8
  273. package/declarations/components/hds/pagination/info/index.d.ts.map +1 -1
  274. package/declarations/components/hds/pagination/nav/arrow.d.ts +27 -20
  275. package/declarations/components/hds/pagination/nav/arrow.d.ts.map +1 -1
  276. package/declarations/components/hds/pagination/nav/ellipsis.d.ts +6 -1
  277. package/declarations/components/hds/pagination/nav/ellipsis.d.ts.map +1 -1
  278. package/declarations/components/hds/pagination/nav/number.d.ts +18 -9
  279. package/declarations/components/hds/pagination/nav/number.d.ts.map +1 -1
  280. package/declarations/components/hds/pagination/numbered/index.d.ts +64 -43
  281. package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
  282. package/declarations/components/hds/pagination/size-selector/index.d.ts +19 -27
  283. package/declarations/components/hds/pagination/size-selector/index.d.ts.map +1 -1
  284. package/declarations/components/hds/pagination/types.d.ts +25 -0
  285. package/declarations/components/hds/pagination/types.d.ts.map +1 -0
  286. package/declarations/components/hds/popover-primitive/index.d.ts +1 -1
  287. package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
  288. package/declarations/components/hds/reveal/index.d.ts +1 -1
  289. package/declarations/components/hds/reveal/index.d.ts.map +1 -1
  290. package/declarations/components/hds/reveal/toggle/button.d.ts +1 -1
  291. package/declarations/components/hds/reveal/toggle/button.d.ts.map +1 -1
  292. package/declarations/components/hds/rich-tooltip/bubble.d.ts +1 -1
  293. package/declarations/components/hds/rich-tooltip/bubble.d.ts.map +1 -1
  294. package/declarations/components/hds/rich-tooltip/index.d.ts +1 -1
  295. package/declarations/components/hds/rich-tooltip/index.d.ts.map +1 -1
  296. package/declarations/components/hds/rich-tooltip/toggle.d.ts +3 -3
  297. package/declarations/components/hds/rich-tooltip/toggle.d.ts.map +1 -1
  298. package/declarations/components/hds/segmented-group/index.d.ts +2 -2
  299. package/declarations/components/hds/segmented-group/index.d.ts.map +1 -1
  300. package/declarations/components/hds/separator/index.d.ts +1 -1
  301. package/declarations/components/hds/separator/index.d.ts.map +1 -1
  302. package/declarations/components/hds/side-nav/base.d.ts +2 -2
  303. package/declarations/components/hds/side-nav/base.d.ts.map +1 -1
  304. package/declarations/components/hds/side-nav/header/home-link.d.ts +3 -3
  305. package/declarations/components/hds/side-nav/header/home-link.d.ts.map +1 -1
  306. package/declarations/components/hds/side-nav/header/icon-button.d.ts +4 -8
  307. package/declarations/components/hds/side-nav/header/icon-button.d.ts.map +1 -1
  308. package/declarations/components/hds/side-nav/header/index.d.ts +2 -2
  309. package/declarations/components/hds/side-nav/header/index.d.ts.map +1 -1
  310. package/declarations/components/hds/side-nav/index.d.ts +2 -2
  311. package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
  312. package/declarations/components/hds/side-nav/list/back-link.d.ts +2 -2
  313. package/declarations/components/hds/side-nav/list/back-link.d.ts.map +1 -1
  314. package/declarations/components/hds/side-nav/list/index.d.ts +2 -2
  315. package/declarations/components/hds/side-nav/list/index.d.ts.map +1 -1
  316. package/declarations/components/hds/side-nav/list/item.d.ts +2 -2
  317. package/declarations/components/hds/side-nav/list/item.d.ts.map +1 -1
  318. package/declarations/components/hds/side-nav/list/link.d.ts +4 -4
  319. package/declarations/components/hds/side-nav/list/link.d.ts.map +1 -1
  320. package/declarations/components/hds/side-nav/list/title.d.ts +2 -2
  321. package/declarations/components/hds/side-nav/list/title.d.ts.map +1 -1
  322. package/declarations/components/hds/side-nav/portal/index.d.ts +1 -1
  323. package/declarations/components/hds/side-nav/portal/index.d.ts.map +1 -1
  324. package/declarations/components/hds/side-nav/portal/target.d.ts +1 -1
  325. package/declarations/components/hds/side-nav/portal/target.d.ts.map +1 -1
  326. package/declarations/components/hds/side-nav/toggle-button.d.ts +4 -4
  327. package/declarations/components/hds/side-nav/toggle-button.d.ts.map +1 -1
  328. package/declarations/components/hds/stepper/step/indicator.d.ts +1 -1
  329. package/declarations/components/hds/stepper/step/indicator.d.ts.map +1 -1
  330. package/declarations/components/hds/stepper/task/indicator.d.ts +4 -4
  331. package/declarations/components/hds/stepper/task/indicator.d.ts.map +1 -1
  332. package/declarations/components/hds/stepper/types.d.ts +2 -2
  333. package/declarations/components/hds/stepper/types.d.ts.map +1 -1
  334. package/declarations/components/hds/table/index.d.ts +76 -67
  335. package/declarations/components/hds/table/index.d.ts.map +1 -1
  336. package/declarations/components/hds/table/td.d.ts +20 -4
  337. package/declarations/components/hds/table/td.d.ts.map +1 -1
  338. package/declarations/components/hds/table/th-button-sort.d.ts +19 -7
  339. package/declarations/components/hds/table/th-button-sort.d.ts.map +1 -1
  340. package/declarations/components/hds/table/th-button-tooltip.d.ts +14 -3
  341. package/declarations/components/hds/table/th-button-tooltip.d.ts.map +1 -1
  342. package/declarations/components/hds/table/th-selectable.d.ts +26 -8
  343. package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
  344. package/declarations/components/hds/table/th-sort.d.ts +27 -7
  345. package/declarations/components/hds/table/th-sort.d.ts.map +1 -1
  346. package/declarations/components/hds/table/th.d.ts +25 -5
  347. package/declarations/components/hds/table/th.d.ts.map +1 -1
  348. package/declarations/components/hds/table/tr.d.ts +34 -4
  349. package/declarations/components/hds/table/tr.d.ts.map +1 -1
  350. package/declarations/components/hds/table/types.d.ts +79 -0
  351. package/declarations/components/hds/table/types.d.ts.map +1 -0
  352. package/declarations/components/hds/tabs/index.d.ts +1 -1
  353. package/declarations/components/hds/tabs/index.d.ts.map +1 -1
  354. package/declarations/components/hds/tabs/panel.d.ts +1 -1
  355. package/declarations/components/hds/tabs/panel.d.ts.map +1 -1
  356. package/declarations/components/hds/tabs/tab.d.ts +1 -1
  357. package/declarations/components/hds/tabs/tab.d.ts.map +1 -1
  358. package/declarations/components/hds/tag/index.d.ts +1 -1
  359. package/declarations/components/hds/tag/index.d.ts.map +1 -1
  360. package/declarations/components/hds/text/body.d.ts +1 -1
  361. package/declarations/components/hds/text/body.d.ts.map +1 -1
  362. package/declarations/components/hds/text/code.d.ts +1 -1
  363. package/declarations/components/hds/text/code.d.ts.map +1 -1
  364. package/declarations/components/hds/text/display.d.ts +1 -1
  365. package/declarations/components/hds/text/display.d.ts.map +1 -1
  366. package/declarations/components/hds/text/index.d.ts +1 -1
  367. package/declarations/components/hds/text/index.d.ts.map +1 -1
  368. package/declarations/components/hds/toast/index.d.ts +2 -2
  369. package/declarations/components/hds/toast/index.d.ts.map +1 -1
  370. package/declarations/components/hds/tooltip-button/index.d.ts +23 -5
  371. package/declarations/components/hds/tooltip-button/index.d.ts.map +1 -1
  372. package/declarations/components/hds/tooltip-button/types.d.ts +20 -0
  373. package/declarations/components/hds/tooltip-button/types.d.ts.map +1 -0
  374. package/declarations/components/hds/yield/index.d.ts +2 -2
  375. package/declarations/components/hds/yield/index.d.ts.map +1 -1
  376. package/declarations/components.d.ts +196 -96
  377. package/declarations/components.d.ts.map +1 -1
  378. package/declarations/template-registry.d.ts +93 -9
  379. package/declarations/template-registry.d.ts.map +1 -1
  380. package/declarations/utils/hds-aria-described-by.d.ts +2 -2
  381. package/declarations/utils/hds-aria-described-by.d.ts.map +1 -1
  382. package/dist/README.md +0 -1
  383. package/dist/_app_/components/hds/icon/index.js +1 -0
  384. package/dist/components/hds/accordion/index.js +8 -4
  385. package/dist/components/hds/accordion/index.js.map +1 -1
  386. package/dist/components/hds/accordion/item/button.js +4 -4
  387. package/dist/components/hds/accordion/item/button.js.map +1 -1
  388. package/dist/components/hds/accordion/item/index.js +14 -12
  389. package/dist/components/hds/accordion/item/index.js.map +1 -1
  390. package/dist/components/hds/accordion/types.js +11 -1
  391. package/dist/components/hds/accordion/types.js.map +1 -1
  392. package/dist/components/hds/alert/description.js +2 -2
  393. package/dist/components/hds/alert/description.js.map +1 -1
  394. package/dist/components/hds/alert/index.js +5 -5
  395. package/dist/components/hds/alert/index.js.map +1 -1
  396. package/dist/components/hds/alert/title.js +10 -5
  397. package/dist/components/hds/alert/title.js.map +1 -1
  398. package/dist/components/hds/alert/types.js +11 -1
  399. package/dist/components/hds/alert/types.js.map +1 -1
  400. package/dist/components/hds/app-footer/copyright.js +4 -4
  401. package/dist/components/hds/app-footer/copyright.js.map +1 -1
  402. package/dist/components/hds/app-footer/index.js +3 -3
  403. package/dist/components/hds/app-footer/index.js.map +1 -1
  404. package/dist/components/hds/app-footer/item.js +3 -3
  405. package/dist/components/hds/app-footer/item.js.map +1 -1
  406. package/dist/components/hds/app-footer/legal-links.js +3 -3
  407. package/dist/components/hds/app-footer/legal-links.js.map +1 -1
  408. package/dist/components/hds/app-footer/link.js +3 -3
  409. package/dist/components/hds/app-footer/link.js.map +1 -1
  410. package/dist/components/hds/app-footer/status-link.js +4 -13
  411. package/dist/components/hds/app-footer/status-link.js.map +1 -1
  412. package/dist/components/hds/app-footer/types.js.map +1 -1
  413. package/dist/components/hds/app-frame/index.js +17 -32
  414. package/dist/components/hds/app-frame/index.js.map +1 -1
  415. package/dist/components/hds/app-frame/parts/footer.js +3 -3
  416. package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
  417. package/dist/components/hds/app-frame/parts/header.js +3 -3
  418. package/dist/components/hds/app-frame/parts/header.js.map +1 -1
  419. package/dist/components/hds/app-frame/parts/main.js +4 -4
  420. package/dist/components/hds/app-frame/parts/main.js.map +1 -1
  421. package/dist/components/hds/app-frame/parts/modals.js +3 -3
  422. package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
  423. package/dist/components/hds/app-frame/parts/sidebar.js +3 -3
  424. package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
  425. package/dist/components/hds/app-header/home-link.js +4 -4
  426. package/dist/components/hds/app-header/home-link.js.map +1 -1
  427. package/dist/components/hds/app-header/index.js +35 -11
  428. package/dist/components/hds/app-header/index.js.map +1 -1
  429. package/dist/components/hds/app-header/menu-button.js +3 -3
  430. package/dist/components/hds/app-header/menu-button.js.map +1 -1
  431. package/dist/components/hds/application-state/body.js +2 -2
  432. package/dist/components/hds/application-state/body.js.map +1 -1
  433. package/dist/components/hds/application-state/footer.js +2 -2
  434. package/dist/components/hds/application-state/footer.js.map +1 -1
  435. package/dist/components/hds/application-state/header.js +6 -5
  436. package/dist/components/hds/application-state/header.js.map +1 -1
  437. package/dist/components/hds/application-state/index.js +3 -3
  438. package/dist/components/hds/application-state/index.js.map +1 -1
  439. package/dist/components/hds/application-state/media.js +2 -2
  440. package/dist/components/hds/application-state/media.js.map +1 -1
  441. package/dist/components/hds/application-state/types.js +16 -1
  442. package/dist/components/hds/application-state/types.js.map +1 -1
  443. package/dist/components/hds/badge/index.js +5 -16
  444. package/dist/components/hds/badge/index.js.map +1 -1
  445. package/dist/components/hds/badge-count/index.js +3 -3
  446. package/dist/components/hds/badge-count/index.js.map +1 -1
  447. package/dist/components/hds/breadcrumb/index.js +3 -3
  448. package/dist/components/hds/breadcrumb/index.js.map +1 -1
  449. package/dist/components/hds/breadcrumb/item.js +4 -4
  450. package/dist/components/hds/breadcrumb/item.js.map +1 -1
  451. package/dist/components/hds/breadcrumb/truncation.js +4 -4
  452. package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
  453. package/dist/components/hds/button/index.js +4 -11
  454. package/dist/components/hds/button/index.js.map +1 -1
  455. package/dist/components/hds/button-set/index.js +2 -2
  456. package/dist/components/hds/button-set/index.js.map +1 -1
  457. package/dist/components/hds/card/container.js +3 -3
  458. package/dist/components/hds/card/container.js.map +1 -1
  459. package/dist/components/hds/code-block/copy-button.js +8 -2
  460. package/dist/components/hds/code-block/copy-button.js.map +1 -1
  461. package/dist/components/hds/code-block/description.js +8 -2
  462. package/dist/components/hds/code-block/description.js.map +1 -1
  463. package/dist/components/hds/code-block/index.js +12 -10
  464. package/dist/components/hds/code-block/index.js.map +1 -1
  465. package/dist/components/hds/code-block/title.js +14 -4
  466. package/dist/components/hds/code-block/title.js.map +1 -1
  467. package/dist/components/hds/code-block/types.js +29 -0
  468. package/dist/components/hds/code-block/types.js.map +1 -0
  469. package/dist/components/hds/copy/button/index.js +3 -3
  470. package/dist/components/hds/copy/button/index.js.map +1 -1
  471. package/dist/components/hds/copy/snippet/index.js +4 -4
  472. package/dist/components/hds/copy/snippet/index.js.map +1 -1
  473. package/dist/components/hds/dialog-primitive/body.js +2 -2
  474. package/dist/components/hds/dialog-primitive/body.js.map +1 -1
  475. package/dist/components/hds/dialog-primitive/description.js +2 -2
  476. package/dist/components/hds/dialog-primitive/description.js.map +1 -1
  477. package/dist/components/hds/dialog-primitive/footer.js +2 -2
  478. package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
  479. package/dist/components/hds/dialog-primitive/header.js +9 -4
  480. package/dist/components/hds/dialog-primitive/header.js.map +1 -1
  481. package/dist/components/hds/dialog-primitive/overlay.js +2 -2
  482. package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
  483. package/dist/components/hds/dialog-primitive/types.js +18 -0
  484. package/dist/components/hds/dialog-primitive/types.js.map +1 -0
  485. package/dist/components/hds/dialog-primitive/wrapper.js +2 -2
  486. package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
  487. package/dist/components/hds/disclosure-primitive/index.js +3 -3
  488. package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
  489. package/dist/components/hds/dismiss-button/index.js +4 -4
  490. package/dist/components/hds/dismiss-button/index.js.map +1 -1
  491. package/dist/components/hds/dropdown/footer.js +2 -2
  492. package/dist/components/hds/dropdown/footer.js.map +1 -1
  493. package/dist/components/hds/dropdown/header.js +2 -2
  494. package/dist/components/hds/dropdown/header.js.map +1 -1
  495. package/dist/components/hds/dropdown/index.js +19 -5
  496. package/dist/components/hds/dropdown/index.js.map +1 -1
  497. package/dist/components/hds/dropdown/list-item/checkbox.js +4 -4
  498. package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
  499. package/dist/components/hds/dropdown/list-item/checkmark.js +4 -4
  500. package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
  501. package/dist/components/hds/dropdown/list-item/copy-item.js +3 -3
  502. package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
  503. package/dist/components/hds/dropdown/list-item/description.js +3 -3
  504. package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
  505. package/dist/components/hds/dropdown/list-item/generic.js +2 -2
  506. package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
  507. package/dist/components/hds/dropdown/list-item/interactive.js +20 -23
  508. package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
  509. package/dist/components/hds/dropdown/list-item/radio.js +4 -4
  510. package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
  511. package/dist/components/hds/dropdown/list-item/separator.js +2 -2
  512. package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
  513. package/dist/components/hds/dropdown/list-item/title.js +3 -3
  514. package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
  515. package/dist/components/hds/dropdown/toggle/button.js +4 -24
  516. package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
  517. package/dist/components/hds/dropdown/toggle/chevron.js +3 -3
  518. package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
  519. package/dist/components/hds/dropdown/toggle/icon.js +4 -24
  520. package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
  521. package/dist/components/hds/dropdown/types.js +8 -1
  522. package/dist/components/hds/dropdown/types.js.map +1 -1
  523. package/dist/components/hds/flyout/body.js +3 -3
  524. package/dist/components/hds/flyout/body.js.map +1 -1
  525. package/dist/components/hds/flyout/description.js +3 -3
  526. package/dist/components/hds/flyout/description.js.map +1 -1
  527. package/dist/components/hds/flyout/footer.js +3 -3
  528. package/dist/components/hds/flyout/footer.js.map +1 -1
  529. package/dist/components/hds/flyout/header.js +4 -4
  530. package/dist/components/hds/flyout/header.js.map +1 -1
  531. package/dist/components/hds/flyout/index.js +4 -4
  532. package/dist/components/hds/flyout/index.js.map +1 -1
  533. package/dist/components/hds/form/character-count/index.js +3 -3
  534. package/dist/components/hds/form/character-count/index.js.map +1 -1
  535. package/dist/components/hds/form/checkbox/base.js +2 -2
  536. package/dist/components/hds/form/checkbox/base.js.map +1 -1
  537. package/dist/components/hds/form/checkbox/field.js +2 -2
  538. package/dist/components/hds/form/checkbox/field.js.map +1 -1
  539. package/dist/components/hds/form/checkbox/group.js +2 -2
  540. package/dist/components/hds/form/checkbox/group.js.map +1 -1
  541. package/dist/components/hds/form/error/index.js +4 -4
  542. package/dist/components/hds/form/error/index.js.map +1 -1
  543. package/dist/components/hds/form/error/message.js +2 -2
  544. package/dist/components/hds/form/error/message.js.map +1 -1
  545. package/dist/components/hds/form/field/index.js +4 -4
  546. package/dist/components/hds/form/field/index.js.map +1 -1
  547. package/dist/components/hds/form/fieldset/index.js +4 -4
  548. package/dist/components/hds/form/fieldset/index.js.map +1 -1
  549. package/dist/components/hds/form/fieldset/types.js +1 -1
  550. package/dist/components/hds/form/fieldset/types.js.map +1 -1
  551. package/dist/components/hds/form/file-input/base.js +2 -2
  552. package/dist/components/hds/form/file-input/base.js.map +1 -1
  553. package/dist/components/hds/form/file-input/field.js +2 -2
  554. package/dist/components/hds/form/file-input/field.js.map +1 -1
  555. package/dist/components/hds/form/helper-text/index.js +3 -3
  556. package/dist/components/hds/form/helper-text/index.js.map +1 -1
  557. package/dist/components/hds/form/indicator/index.js +3 -3
  558. package/dist/components/hds/form/indicator/index.js.map +1 -1
  559. package/dist/components/hds/form/label/index.js +3 -3
  560. package/dist/components/hds/form/label/index.js.map +1 -1
  561. package/dist/components/hds/form/legend/index.js +3 -3
  562. package/dist/components/hds/form/legend/index.js.map +1 -1
  563. package/dist/components/hds/form/masked-input/base.js +3 -3
  564. package/dist/components/hds/form/masked-input/base.js.map +1 -1
  565. package/dist/components/hds/form/masked-input/field.js +2 -2
  566. package/dist/components/hds/form/masked-input/field.js.map +1 -1
  567. package/dist/components/hds/form/radio/base.js +2 -2
  568. package/dist/components/hds/form/radio/base.js.map +1 -1
  569. package/dist/components/hds/form/radio/field.js +2 -2
  570. package/dist/components/hds/form/radio/field.js.map +1 -1
  571. package/dist/components/hds/form/radio/group.js +2 -2
  572. package/dist/components/hds/form/radio/group.js.map +1 -1
  573. package/dist/components/hds/form/radio-card/description.js +2 -2
  574. package/dist/components/hds/form/radio-card/description.js.map +1 -1
  575. package/dist/components/hds/form/radio-card/group.js +3 -3
  576. package/dist/components/hds/form/radio-card/group.js.map +1 -1
  577. package/dist/components/hds/form/radio-card/index.js +4 -4
  578. package/dist/components/hds/form/radio-card/index.js.map +1 -1
  579. package/dist/components/hds/form/radio-card/label.js +2 -2
  580. package/dist/components/hds/form/radio-card/label.js.map +1 -1
  581. package/dist/components/hds/form/select/base.js +3 -3
  582. package/dist/components/hds/form/select/base.js.map +1 -1
  583. package/dist/components/hds/form/select/field.js +2 -2
  584. package/dist/components/hds/form/select/field.js.map +1 -1
  585. package/dist/components/hds/form/super-select/after-options.js +8 -2
  586. package/dist/components/hds/form/super-select/after-options.js.map +1 -1
  587. package/dist/components/hds/form/super-select/multiple/base.js +25 -17
  588. package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
  589. package/dist/components/hds/form/super-select/multiple/field.js +5 -5
  590. package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
  591. package/dist/components/hds/form/super-select/option-group.js +4 -4
  592. package/dist/components/hds/form/super-select/option-group.js.map +1 -1
  593. package/dist/components/hds/form/super-select/placeholder.js +8 -2
  594. package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
  595. package/dist/components/hds/form/super-select/single/base.js +56 -17
  596. package/dist/components/hds/form/super-select/single/base.js.map +1 -1
  597. package/dist/components/hds/form/super-select/single/field.js +5 -5
  598. package/dist/components/hds/form/super-select/single/field.js.map +1 -1
  599. package/dist/components/hds/form/super-select/types.js +20 -0
  600. package/dist/components/hds/form/super-select/types.js.map +1 -0
  601. package/dist/components/hds/form/text-input/base.js +3 -3
  602. package/dist/components/hds/form/text-input/base.js.map +1 -1
  603. package/dist/components/hds/form/text-input/field.js +3 -3
  604. package/dist/components/hds/form/text-input/field.js.map +1 -1
  605. package/dist/components/hds/form/textarea/base.js +3 -3
  606. package/dist/components/hds/form/textarea/base.js.map +1 -1
  607. package/dist/components/hds/form/textarea/field.js +2 -2
  608. package/dist/components/hds/form/textarea/field.js.map +1 -1
  609. package/dist/components/hds/form/toggle/base.js +2 -2
  610. package/dist/components/hds/form/toggle/base.js.map +1 -1
  611. package/dist/components/hds/form/toggle/field.js +2 -2
  612. package/dist/components/hds/form/toggle/field.js.map +1 -1
  613. package/dist/components/hds/form/toggle/group.js +2 -2
  614. package/dist/components/hds/form/toggle/group.js.map +1 -1
  615. package/dist/components/hds/form/visibility-toggle/index.js +3 -3
  616. package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
  617. package/dist/components/hds/icon/index.js +89 -0
  618. package/dist/components/hds/icon/index.js.map +1 -0
  619. package/dist/components/hds/icon/types.js +36 -0
  620. package/dist/components/hds/icon/types.js.map +1 -0
  621. package/dist/components/hds/icon-tile/index.js +13 -64
  622. package/dist/components/hds/icon-tile/index.js.map +1 -1
  623. package/dist/components/hds/interactive/index.js +3 -3
  624. package/dist/components/hds/interactive/index.js.map +1 -1
  625. package/dist/components/hds/link/inline.js +4 -4
  626. package/dist/components/hds/link/inline.js.map +1 -1
  627. package/dist/components/hds/link/standalone.js +4 -4
  628. package/dist/components/hds/link/standalone.js.map +1 -1
  629. package/dist/components/hds/menu-primitive/index.js +16 -6
  630. package/dist/components/hds/menu-primitive/index.js.map +1 -1
  631. package/dist/components/hds/modal/body.js +3 -3
  632. package/dist/components/hds/modal/body.js.map +1 -1
  633. package/dist/components/hds/modal/footer.js +3 -3
  634. package/dist/components/hds/modal/footer.js.map +1 -1
  635. package/dist/components/hds/modal/header.js +4 -4
  636. package/dist/components/hds/modal/header.js.map +1 -1
  637. package/dist/components/hds/modal/index.js +4 -4
  638. package/dist/components/hds/modal/index.js.map +1 -1
  639. package/dist/components/hds/page-header/actions.js +2 -2
  640. package/dist/components/hds/page-header/actions.js.map +1 -1
  641. package/dist/components/hds/page-header/badges.js +2 -2
  642. package/dist/components/hds/page-header/badges.js.map +1 -1
  643. package/dist/components/hds/page-header/description.js +2 -2
  644. package/dist/components/hds/page-header/description.js.map +1 -1
  645. package/dist/components/hds/page-header/index.js +2 -2
  646. package/dist/components/hds/page-header/index.js.map +1 -1
  647. package/dist/components/hds/page-header/subtitle.js +2 -2
  648. package/dist/components/hds/page-header/subtitle.js.map +1 -1
  649. package/dist/components/hds/page-header/title.js +2 -2
  650. package/dist/components/hds/page-header/title.js.map +1 -1
  651. package/dist/components/hds/pagination/compact/index.js +18 -28
  652. package/dist/components/hds/pagination/compact/index.js.map +1 -1
  653. package/dist/components/hds/pagination/info/index.js +4 -9
  654. package/dist/components/hds/pagination/info/index.js.map +1 -1
  655. package/dist/components/hds/pagination/nav/arrow.js +21 -36
  656. package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
  657. package/dist/components/hds/pagination/nav/ellipsis.js +7 -2
  658. package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
  659. package/dist/components/hds/pagination/nav/number.js +7 -13
  660. package/dist/components/hds/pagination/nav/number.js.map +1 -1
  661. package/dist/components/hds/pagination/numbered/index.js +43 -44
  662. package/dist/components/hds/pagination/numbered/index.js.map +1 -1
  663. package/dist/components/hds/pagination/size-selector/index.js +10 -32
  664. package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
  665. package/dist/components/hds/pagination/types.js +23 -0
  666. package/dist/components/hds/pagination/types.js.map +1 -0
  667. package/dist/components/hds/popover-primitive/index.js +3 -3
  668. package/dist/components/hds/popover-primitive/index.js.map +1 -1
  669. package/dist/components/hds/reveal/index.js +3 -3
  670. package/dist/components/hds/reveal/index.js.map +1 -1
  671. package/dist/components/hds/reveal/toggle/button.js +3 -3
  672. package/dist/components/hds/reveal/toggle/button.js.map +1 -1
  673. package/dist/components/hds/rich-tooltip/bubble.js +3 -3
  674. package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
  675. package/dist/components/hds/rich-tooltip/index.js +3 -3
  676. package/dist/components/hds/rich-tooltip/index.js.map +1 -1
  677. package/dist/components/hds/rich-tooltip/toggle.js +4 -4
  678. package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
  679. package/dist/components/hds/segmented-group/index.js +2 -2
  680. package/dist/components/hds/segmented-group/index.js.map +1 -1
  681. package/dist/components/hds/separator/index.js +3 -3
  682. package/dist/components/hds/separator/index.js.map +1 -1
  683. package/dist/components/hds/side-nav/base.js +2 -2
  684. package/dist/components/hds/side-nav/base.js.map +1 -1
  685. package/dist/components/hds/side-nav/header/home-link.js +4 -4
  686. package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
  687. package/dist/components/hds/side-nav/header/icon-button.js +17 -10
  688. package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
  689. package/dist/components/hds/side-nav/header/index.js +2 -2
  690. package/dist/components/hds/side-nav/header/index.js.map +1 -1
  691. package/dist/components/hds/side-nav/index.js +5 -13
  692. package/dist/components/hds/side-nav/index.js.map +1 -1
  693. package/dist/components/hds/side-nav/list/back-link.js +3 -3
  694. package/dist/components/hds/side-nav/list/back-link.js.map +1 -1
  695. package/dist/components/hds/side-nav/list/index.js +2 -2
  696. package/dist/components/hds/side-nav/list/index.js.map +1 -1
  697. package/dist/components/hds/side-nav/list/item.js +2 -2
  698. package/dist/components/hds/side-nav/list/item.js.map +1 -1
  699. package/dist/components/hds/side-nav/list/link.js +3 -3
  700. package/dist/components/hds/side-nav/list/link.js.map +1 -1
  701. package/dist/components/hds/side-nav/list/title.js +2 -2
  702. package/dist/components/hds/side-nav/list/title.js.map +1 -1
  703. package/dist/components/hds/side-nav/portal/index.js +3 -3
  704. package/dist/components/hds/side-nav/portal/index.js.map +1 -1
  705. package/dist/components/hds/side-nav/portal/target.js +4 -4
  706. package/dist/components/hds/side-nav/portal/target.js.map +1 -1
  707. package/dist/components/hds/side-nav/toggle-button.js +3 -3
  708. package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
  709. package/dist/components/hds/stepper/step/indicator.js +4 -4
  710. package/dist/components/hds/stepper/step/indicator.js.map +1 -1
  711. package/dist/components/hds/stepper/task/indicator.js +4 -4
  712. package/dist/components/hds/stepper/task/indicator.js.map +1 -1
  713. package/dist/components/hds/stepper/types.js.map +1 -1
  714. package/dist/components/hds/table/index.js +27 -79
  715. package/dist/components/hds/table/index.js.map +1 -1
  716. package/dist/components/hds/table/td.js +8 -7
  717. package/dist/components/hds/table/td.js.map +1 -1
  718. package/dist/components/hds/table/th-button-sort.js +15 -14
  719. package/dist/components/hds/table/th-button-sort.js.map +1 -1
  720. package/dist/components/hds/table/th-button-tooltip.js +11 -5
  721. package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
  722. package/dist/components/hds/table/th-selectable.js +18 -15
  723. package/dist/components/hds/table/th-selectable.js.map +1 -1
  724. package/dist/components/hds/table/th-sort.js +15 -14
  725. package/dist/components/hds/table/th-sort.js.map +1 -1
  726. package/dist/components/hds/table/th.js +9 -8
  727. package/dist/components/hds/table/th.js.map +1 -1
  728. package/dist/components/hds/table/tr.js +3 -3
  729. package/dist/components/hds/table/tr.js.map +1 -1
  730. package/dist/components/hds/table/types.js +49 -0
  731. package/dist/components/hds/table/types.js.map +1 -0
  732. package/dist/components/hds/tabs/index.js +3 -3
  733. package/dist/components/hds/tabs/index.js.map +1 -1
  734. package/dist/components/hds/tabs/panel.js +3 -3
  735. package/dist/components/hds/tabs/panel.js.map +1 -1
  736. package/dist/components/hds/tabs/tab.js +4 -4
  737. package/dist/components/hds/tabs/tab.js.map +1 -1
  738. package/dist/components/hds/tag/index.js +4 -4
  739. package/dist/components/hds/tag/index.js.map +1 -1
  740. package/dist/components/hds/text/body.js +3 -3
  741. package/dist/components/hds/text/body.js.map +1 -1
  742. package/dist/components/hds/text/code.js +3 -3
  743. package/dist/components/hds/text/code.js.map +1 -1
  744. package/dist/components/hds/text/display.js +3 -3
  745. package/dist/components/hds/text/display.js.map +1 -1
  746. package/dist/components/hds/text/index.js +3 -3
  747. package/dist/components/hds/text/index.js.map +1 -1
  748. package/dist/components/hds/toast/index.js +2 -2
  749. package/dist/components/hds/toast/index.js.map +1 -1
  750. package/dist/components/hds/tooltip-button/index.js +11 -11
  751. package/dist/components/hds/tooltip-button/index.js.map +1 -1
  752. package/dist/components/hds/tooltip-button/types.js +23 -0
  753. package/dist/components/hds/tooltip-button/types.js.map +1 -0
  754. package/dist/components/hds/yield/index.js +2 -2
  755. package/dist/components/hds/yield/index.js.map +1 -1
  756. package/dist/components.js +131 -30
  757. package/dist/components.js.map +1 -1
  758. package/dist/styles/@hashicorp/design-system-components.css +537 -498
  759. package/dist/styles/@hashicorp/design-system-components.scss +1 -3
  760. package/dist/styles/components/accordion.scss +2 -2
  761. package/dist/styles/components/app-footer.scss +6 -6
  762. package/dist/styles/components/app-frame.scss +23 -11
  763. package/dist/styles/components/app-header.scss +81 -7
  764. package/dist/styles/components/badge-count.scss +4 -4
  765. package/dist/styles/components/badge.scss +24 -6
  766. package/dist/styles/components/breadcrumb.scss +16 -6
  767. package/dist/styles/components/code-block/index.scss +3 -3
  768. package/dist/styles/components/dialog-primitive.scss +1 -0
  769. package/dist/styles/components/dropdown.scss +27 -32
  770. package/dist/styles/components/form/radio-card.scss +1 -1
  771. package/dist/styles/components/icon.scss +41 -0
  772. package/dist/styles/components/reveal.scss +2 -2
  773. package/dist/styles/components/side-nav/header.scss +44 -4
  774. package/dist/styles/components/side-nav/main.scss +3 -14
  775. package/dist/styles/components/stepper/task-indicator.scss +31 -15
  776. package/dist/styles/mixins/_interactive-dark-theme.scss +5 -14
  777. package/dist/utils/hds-aria-described-by.js.map +1 -1
  778. package/package.json +6 -5
@@ -2,9 +2,14 @@ import templateOnlyComponent from '@ember/component/template-only';
2
2
  import { precompileTemplate } from '@ember/template-compilation';
3
3
  import { setComponentTemplate } from '@ember/component';
4
4
 
5
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination-nav__ellipsis\" ...attributes>...</div>");
5
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination-nav__ellipsis\" ...attributes>...</div>");
6
6
 
7
- var ellipsis = setComponentTemplate(TEMPLATE, templateOnlyComponent());
7
+ /**
8
+ * Copyright (c) HashiCorp, Inc.
9
+ * SPDX-License-Identifier: MPL-2.0
10
+ */
11
+ const HdsApplicationPaginationNavEllipsis = templateOnlyComponent();
12
+ var ellipsis = setComponentTemplate(TEMPLATE, HdsApplicationPaginationNavEllipsis);
8
13
 
9
14
  export { ellipsis as default };
10
15
  //# sourceMappingURL=ellipsis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ellipsis.js","sources":["../../../../../src/components/hds/pagination/nav/ellipsis.hbs","../../../../../src/components/hds/pagination/nav/ellipsis.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class=\\\"hds-pagination-nav__ellipsis\\\" ...attributes>...</div>\")","import templateOnly from '@ember/component/template-only';\nexport default templateOnly();\n"],"names":["setComponentTemplate","TEMPLATE","templateOnly"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,4LAA4L;;ACA9N,eAAAA,oBAAA,CAAAC,QAAA,EAAeC,qBAAY,EAAE,CAAA;;;;"}
1
+ {"version":3,"file":"ellipsis.js","sources":["../../../../../src/components/hds/pagination/nav/ellipsis.hbs","../../../../../src/components/hds/pagination/nav/ellipsis.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class=\\\"hds-pagination-nav__ellipsis\\\" ...attributes>...</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nexport interface HdsApplicationPaginationNavEllipsisSignature {\n Element: HTMLDivElement;\n}\n\nconst HdsApplicationPaginationNavEllipsis =\n TemplateOnlyComponent<HdsApplicationPaginationNavEllipsisSignature>();\n\nexport default HdsApplicationPaginationNavEllipsis;\n"],"names":["HdsApplicationPaginationNavEllipsis","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;AACA,eAAe,kBAAkB,CAAC,mJAAmJ;;ACDrL;AACA;AACA;AACA;AAOA,MAAMA,mCAAmC,GACvCC,qBAAqB,EAAgD,CAAA;AAEvE,eAAAC,oBAAA,CAAAC,QAAA,EAAeH,mCAAmC,CAAA;;;;"}
@@ -5,32 +5,26 @@ import { assert } from '@ember/debug';
5
5
  import { precompileTemplate } from '@ember/template-compilation';
6
6
  import { setComponentTemplate } from '@ember/component';
7
7
 
8
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::Interactive\n class={{this.classNames}}\n @route={{@route}}\n @query={{hds-link-to-query @query}}\n @models={{hds-link-to-models @model @models}}\n @replace={{@replace}}\n {{on \"click\" this.onClick}}\n ...attributes\n aria-current={{if @isSelected \"page\" null}}\n>\n <Hds::Text::Body @tag=\"span\" @size=\"100\" @weight=\"medium\"><span class=\"sr-only\">page\n </span>{{this.page}}</Hds::Text::Body>\n</Hds::Interactive>");
8
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::Interactive\n class={{this.classNames}}\n @route={{@route}}\n @query={{hds-link-to-query @query}}\n @models={{hds-link-to-models @model @models}}\n @replace={{@replace}}\n {{on \"click\" this.onClick}}\n ...attributes\n aria-current={{if @isSelected \"page\" null}}\n>\n <Hds::Text::Body @tag=\"span\" @size=\"100\" @weight=\"medium\"><span class=\"sr-only\">page\n </span>{{this.page}}</Hds::Text::Body>\n</Hds::Interactive>");
9
9
 
10
10
  var _class;
11
- let HdsPaginationControlNumberComponent = (_class = class HdsPaginationControlNumberComponent extends Component {
11
+ let HdsPaginationControlNumber = (_class = class HdsPaginationControlNumber extends Component {
12
12
  get page() {
13
- let {
13
+ const {
14
14
  page
15
15
  } = this.args;
16
16
  assert('@page for "Pagination::Nav::Number" must have a valid value', page !== undefined);
17
17
  return page;
18
18
  }
19
-
20
- /**
21
- * Get the class names to apply to the component.
22
- * @method classNames
23
- * @return {string} The "class" attribute to apply to the component.
24
- */
25
19
  get classNames() {
26
- let classes = ['hds-pagination-nav__control', 'hds-pagination-nav__number'];
20
+ const classes = ['hds-pagination-nav__control', 'hds-pagination-nav__number'];
27
21
  if (this.args.isSelected) {
28
22
  classes.push(`hds-pagination-nav__number--is-selected`);
29
23
  }
30
24
  return classes.join(' ');
31
25
  }
32
26
  onClick() {
33
- let {
27
+ const {
34
28
  onClick
35
29
  } = this.args;
36
30
  if (typeof onClick === 'function') {
@@ -38,7 +32,7 @@ let HdsPaginationControlNumberComponent = (_class = class HdsPaginationControlNu
38
32
  }
39
33
  }
40
34
  }, (_applyDecoratedDescriptor(_class.prototype, "onClick", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onClick"), _class.prototype)), _class);
41
- setComponentTemplate(TEMPLATE, HdsPaginationControlNumberComponent);
35
+ setComponentTemplate(TEMPLATE, HdsPaginationControlNumber);
42
36
 
43
- export { HdsPaginationControlNumberComponent as default };
37
+ export { HdsPaginationControlNumber as default };
44
38
  //# sourceMappingURL=number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sources":["../../../../../src/components/hds/pagination/nav/number.hbs","../../../../../src/components/hds/pagination/nav/number.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::Interactive\\n class={{this.classNames}}\\n @route={{@route}}\\n @query={{hds-link-to-query @query}}\\n @models={{hds-link-to-models @model @models}}\\n @replace={{@replace}}\\n {{on \\\"click\\\" this.onClick}}\\n ...attributes\\n aria-current={{if @isSelected \\\"page\\\" null}}\\n>\\n <Hds::Text::Body @tag=\\\"span\\\" @size=\\\"100\\\" @weight=\\\"medium\\\"><span class=\\\"sr-only\\\">page\\n </span>{{this.page}}</Hds::Text::Body>\\n</Hds::Interactive>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\n\nexport default class HdsPaginationControlNumberComponent extends Component {\n get page() {\n let { page } = this.args;\n\n assert(\n '@page for \"Pagination::Nav::Number\" must have a valid value',\n page !== undefined\n );\n\n return page;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames() {\n let classes = ['hds-pagination-nav__control', 'hds-pagination-nav__number'];\n\n if (this.args.isSelected) {\n classes.push(`hds-pagination-nav__number--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n @action\n onClick() {\n let { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(this.args.page);\n }\n }\n}\n"],"names":["HdsPaginationControlNumberComponent","_class","Component","page","args","assert","undefined","classNames","classes","isSelected","push","join","onClick","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,ojBAAojB;;;ACQjkBA,IAAAA,mCAAmC,IAAAC,MAAA,GAAzC,MAAMD,mCAAmC,SAASE,SAAS,CAAC;EACzE,IAAIC,IAAIA,GAAG;IACT,IAAI;AAAEA,MAAAA,IAAAA;KAAM,GAAG,IAAI,CAACC,IAAI,CAAA;AAExBC,IAAAA,MAAM,CACJ,6DAA6D,EAC7DF,IAAI,KAAKG,SACX,CAAC,CAAA;AAED,IAAA,OAAOH,IAAI,CAAA;AACb,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAII,UAAUA,GAAG;AACf,IAAA,IAAIC,OAAO,GAAG,CAAC,6BAA6B,EAAE,4BAA4B,CAAC,CAAA;AAE3E,IAAA,IAAI,IAAI,CAACJ,IAAI,CAACK,UAAU,EAAE;AACxBD,MAAAA,OAAO,CAACE,IAAI,CAAC,CAAA,uCAAA,CAAyC,CAAC,CAAA;AACzD,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACG,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AAGAC,EAAAA,OAAOA,GAAG;IACR,IAAI;AAAEA,MAAAA,OAAAA;KAAS,GAAG,IAAI,CAACR,IAAI,CAAA;AAE3B,IAAA,IAAI,OAAOQ,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACR,IAAI,CAACD,IAAI,CAAC,CAAA;AACzB,KAAA;AACF,GAAA;AACF,CAAC,GAAAU,yBAAA,CAAAZ,MAAA,CAAAa,SAAA,EAAA,SAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAhB,MAAA,CAAAa,SAAA,cAAAb,MAAA,CAAAa,SAAA,CAAA,GAAAb,MAAA,EAAA;AA3B+CiB,oBAAA,CAAAC,QAAA,EAAnCnB,mCAAmC,CAAA;;;;"}
1
+ {"version":3,"file":"number.js","sources":["../../../../../src/components/hds/pagination/nav/number.hbs","../../../../../src/components/hds/pagination/nav/number.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<Hds::Interactive\\n class={{this.classNames}}\\n @route={{@route}}\\n @query={{hds-link-to-query @query}}\\n @models={{hds-link-to-models @model @models}}\\n @replace={{@replace}}\\n {{on \\\"click\\\" this.onClick}}\\n ...attributes\\n aria-current={{if @isSelected \\\"page\\\" null}}\\n>\\n <Hds::Text::Body @tag=\\\"span\\\" @size=\\\"100\\\" @weight=\\\"medium\\\"><span class=\\\"sr-only\\\">page\\n </span>{{this.page}}</Hds::Text::Body>\\n</Hds::Interactive>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\n\nimport type { HdsInteractiveSignature } from '../../interactive';\n\ninterface HdsPaginationNavNumberArgs {\n page: number;\n onClick: (page: number) => void;\n isSelected: boolean;\n}\n\ninterface HdsPaginationNavNumberSignature {\n Args: HdsPaginationNavNumberArgs & HdsInteractiveSignature['Args'];\n Element: HdsInteractiveSignature['Element'];\n}\n\nexport default class HdsPaginationControlNumber extends Component<HdsPaginationNavNumberSignature> {\n get page(): number {\n const { page } = this.args;\n\n assert(\n '@page for \"Pagination::Nav::Number\" must have a valid value',\n page !== undefined\n );\n\n return page;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-pagination-nav__control',\n 'hds-pagination-nav__number',\n ];\n\n if (this.args.isSelected) {\n classes.push(`hds-pagination-nav__number--is-selected`);\n }\n\n return classes.join(' ');\n }\n\n @action\n onClick(): void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n onClick(this.args.page);\n }\n }\n}\n"],"names":["HdsPaginationControlNumber","_class","Component","page","args","assert","undefined","classNames","classes","isSelected","push","join","onClick","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;AACA,eAAe,kBAAkB,CAAC,2gBAA2gB;;;ACoBxhBA,IAAAA,0BAA0B,IAAAC,MAAA,GAAhC,MAAMD,0BAA0B,SAASE,SAAS,CAAkC;EACjG,IAAIC,IAAIA,GAAW;IACjB,MAAM;AAAEA,MAAAA,IAAAA;KAAM,GAAG,IAAI,CAACC,IAAI,CAAA;AAE1BC,IAAAA,MAAM,CACJ,6DAA6D,EAC7DF,IAAI,KAAKG,SACX,CAAC,CAAA;AAED,IAAA,OAAOH,IAAI,CAAA;AACb,GAAA;EAEA,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CACd,6BAA6B,EAC7B,4BAA4B,CAC7B,CAAA;AAED,IAAA,IAAI,IAAI,CAACJ,IAAI,CAACK,UAAU,EAAE;AACxBD,MAAAA,OAAO,CAACE,IAAI,CAAC,CAAA,uCAAA,CAAyC,CAAC,CAAA;AACzD,KAAA;AAEA,IAAA,OAAOF,OAAO,CAACG,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,GAAA;AAGAC,EAAAA,OAAOA,GAAS;IACd,MAAM;AAAEA,MAAAA,OAAAA;KAAS,GAAG,IAAI,CAACR,IAAI,CAAA;AAE7B,IAAA,IAAI,OAAOQ,OAAO,KAAK,UAAU,EAAE;AACjCA,MAAAA,OAAO,CAAC,IAAI,CAACR,IAAI,CAACD,IAAI,CAAC,CAAA;AACzB,KAAA;AACF,GAAA;AACF,CAAC,GAAAU,yBAAA,CAAAZ,MAAA,CAAAa,SAAA,EAAA,SAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAhB,MAAA,CAAAa,SAAA,cAAAb,MAAA,CAAAa,SAAA,CAAA,GAAAb,MAAA,EAAA;AAzBsCiB,oBAAA,CAAAC,QAAA,EAA1BnB,0BAA0B,CAAA;;;;"}
@@ -3,30 +3,24 @@ import Component from '@glimmer/component';
3
3
  import { tracked } from '@glimmer/tracking';
4
4
  import { action } from '@ember/object';
5
5
  import { assert } from '@ember/debug';
6
+ import { HdsPaginationDirectionValues } from '../types.js';
6
7
  import { precompileTemplate } from '@ember/template-compilation';
7
8
  import { setComponentTemplate } from '@ember/component';
8
9
 
9
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination\" ...attributes>\n {{#if this.showInfo}}\n <Hds::Pagination::Info\n @itemsRangeStart={{this.itemsRangeStart}}\n @itemsRangeEnd={{this.itemsRangeEnd}}\n @totalItems={{@totalItems}}\n @showTotalItems={{@showTotalItems}}\n />\n {{/if}}\n\n <nav class=\"hds-pagination-nav\" aria-label={{this.ariaLabel}}>\n <Hds::Pagination::Nav::Arrow\n @direction=\"prev\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryPrev}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledPrev}}\n />\n {{#if this.showPageNumbers}}\n <ul class=\"hds-pagination-nav__page-list\">\n {{#each this.pages as |page|}}\n <li class=\"hds-pagination-nav__page-item\">\n {{#if (eq page \"…\")}}\n <Hds::Pagination::Nav::Ellipsis />\n {{else}}\n <Hds::Pagination::Nav::Number\n @page={{page}}\n @route={{this.routing.route}}\n @query={{get this.routing.queryPages page}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @isSelected={{if (eq page this.currentPage) true false}}\n />\n {{/if}}\n </li>\n {{/each}}\n </ul>\n {{/if}}\n <Hds::Pagination::Nav::Arrow\n @direction=\"next\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryNext}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledNext}}\n />\n </nav>\n\n {{#if this.showSizeSelector}}\n <Hds::Pagination::SizeSelector\n @pageSizes={{this.pageSizes}}\n @label={{@sizeSelectorLabel}}\n @selectedSize={{this.currentPageSize}}\n @onChange={{this.onPageSizeChange}}\n />\n {{/if}}\n</div>");
10
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination\" ...attributes>\n {{#if this.showInfo}}\n <Hds::Pagination::Info\n @itemsRangeStart={{this.itemsRangeStart}}\n @itemsRangeEnd={{this.itemsRangeEnd}}\n @totalItems={{@totalItems}}\n @showTotalItems={{@showTotalItems}}\n />\n {{/if}}\n\n <nav class=\"hds-pagination-nav\" aria-label={{this.ariaLabel}}>\n <Hds::Pagination::Nav::Arrow\n @direction=\"prev\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryPrev}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledPrev}}\n />\n {{#if this.showPageNumbers}}\n <ul class=\"hds-pagination-nav__page-list\">\n {{#each this.pages as |page|}}\n <li class=\"hds-pagination-nav__page-item\">\n {{#if (eq page \"…\")}}\n <Hds::Pagination::Nav::Ellipsis />\n {{else}}\n <Hds::Pagination::Nav::Number\n @page={{this.elliptizedPageArrayItemAsNumber page}}\n @route={{this.routing.route}}\n @query={{get this.routing.queryPages page}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @isSelected={{if (eq page this.currentPage) true false}}\n />\n {{/if}}\n </li>\n {{/each}}\n </ul>\n {{/if}}\n <Hds::Pagination::Nav::Arrow\n @direction=\"next\"\n @showLabel={{this.showLabels}}\n @route={{this.routing.route}}\n @query={{this.routing.queryNext}}\n @model={{this.routing.model}}\n @models={{this.routing.models}}\n @replace={{this.routing.replace}}\n @onClick={{this.onPageChange}}\n @disabled={{this.isDisabledNext}}\n />\n </nav>\n\n {{#if this.showSizeSelector}}\n <Hds::Pagination::SizeSelector\n @pageSizes={{this.pageSizes}}\n @label={{@sizeSelectorLabel}}\n @selectedSize={{this.currentPageSize}}\n @onChange={{this.onPageSizeChange}}\n />\n {{/if}}\n</div>");
10
11
 
11
12
  var _class, _descriptor, _descriptor2, _descriptor3;
12
- const DEFAULT_PAGE_SIZES = [10, 30, 50];
13
+ const ELLIPSIS = '…';
13
14
 
14
- /**
15
- * Elliptize a list of pages
16
- *
17
- * @param pages - array with all the "pages" (integer numbers)
18
- * @param current - "current" page (array's index)
19
- * @param limit - number of "page numbers" to be shown at a time (should always be an odd number!)
20
- *
21
- * @return - array of integers ("pages") + `...` strings ("ellipsis")
22
- */
15
+ // for context about the decision to use these values, see:
16
+ // https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759
17
+ const DEFAULT_PAGE_SIZES = [10, 30, 50];
23
18
  const elliptize = ({
24
19
  pages,
25
20
  current,
26
21
  limit = 7
27
22
  }) => {
28
23
  const length = pages.length;
29
- const ellipsis = '…';
30
24
  let result = [];
31
25
  let start;
32
26
  let end;
@@ -44,11 +38,11 @@ const elliptize = ({
44
38
  const sliceEnd = pages.slice(-end);
45
39
  if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {
46
40
  // "current" (and its next sibling) is contained within the "sliceStart" block
47
- sliceEnd.splice(0, 1, ellipsis);
41
+ sliceEnd.splice(0, 1, ELLIPSIS);
48
42
  result = [].concat(sliceStart, sliceEnd);
49
43
  } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {
50
44
  // "current" (and its prev sibling) is contained within the "sliceEnd" block
51
- sliceStart.splice(-1, 1, ellipsis);
45
+ sliceStart.splice(-1, 1, ELLIPSIS);
52
46
  result = [].concat(sliceStart, sliceEnd);
53
47
  } else {
54
48
  // this is a bit more tricky :)
@@ -58,15 +52,15 @@ const elliptize = ({
58
52
  const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number
59
53
  // we slice the array starting at the "current" index, minus the delta, minus one because it's an array (zero-based)
60
54
  const sliceCurr = pages.slice(current - delta - 1, current + delta);
61
- result = [].concat(sliceStart.shift(), ellipsis, sliceCurr, ellipsis, sliceEnd.pop());
55
+ result = [].concat(sliceStart.shift(), ELLIPSIS, sliceCurr, ELLIPSIS, sliceEnd.pop());
62
56
  }
63
57
  return result;
64
58
  };
65
- let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedIndexComponent extends Component {
59
+ let HdsPaginationNumbered = (_class = class HdsPaginationNumbered extends Component {
66
60
  // if the list of "page numbers" is truncated
67
61
 
68
- constructor() {
69
- super(...arguments);
62
+ constructor(owner, args) {
63
+ super(owner, args);
70
64
  // These two private variables are used to differentiate between
71
65
  // "uncontrolled" component (where the state is handled internally) and
72
66
  // "controlled" component (where the state is handled externally, by the consumer's code).
@@ -76,6 +70,7 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
76
70
  // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user
77
71
  // has with the component (the state is controlled externally, eg. via query parameters)
78
72
  _initializerDefineProperty(this, "_currentPage", _descriptor, this);
73
+ // we assert that `this.pageSizes` will always be an array with at least one item
79
74
  _initializerDefineProperty(this, "_currentPageSize", _descriptor2, this);
80
75
  _initializerDefineProperty(this, "isControlled", _descriptor3, this);
81
76
  _defineProperty(this, "showInfo", this.args.showInfo ?? true);
@@ -87,7 +82,14 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
87
82
  _defineProperty(this, "showPageNumbers", this.args.showPageNumbers ?? true);
88
83
  // if the "page numbers" block is visible
89
84
  _defineProperty(this, "isTruncated", this.args.isTruncated ?? true);
90
- let {
85
+ _defineProperty(this, "elliptizedPageArrayItemAsNumber", item => {
86
+ if (typeof item === 'number') {
87
+ return item;
88
+ } else {
89
+ throw new Error('Expected a number, but got an ellipsis');
90
+ }
91
+ });
92
+ const {
91
93
  queryFunction
92
94
  } = this.args;
93
95
 
@@ -109,12 +111,6 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
109
111
  }
110
112
  assert('@totalItems for "Hds::Pagination::Numbered" must be defined as an integer number', typeof this.args.totalItems === 'number');
111
113
  }
112
-
113
- /**
114
- * @param ariaLabel
115
- * @type {string}
116
- * @default 'Pagination'
117
- */
118
114
  get ariaLabel() {
119
115
  return this.args.ariaLabel ?? 'Pagination';
120
116
  }
@@ -134,6 +130,7 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
134
130
 
135
131
  get currentPage() {
136
132
  if (this.isControlled) {
133
+ // if the component is controlled, `@currentPage` is asserted to be a number
137
134
  return this.args.currentPage;
138
135
  } else {
139
136
  return this._currentPage;
@@ -141,11 +138,13 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
141
138
  }
142
139
  set currentPage(value) {
143
140
  if (this.isControlled) ; else {
141
+ // if `this.isControlled` is `false`
144
142
  this._currentPage = value;
145
143
  }
146
144
  }
147
145
  get currentPageSize() {
148
146
  if (this.isControlled) {
147
+ // if the component is controlled, `@currentPageSize` is asserted to be a number
149
148
  return this.args.currentPageSize;
150
149
  } else {
151
150
  return this._currentPageSize;
@@ -156,18 +155,13 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
156
155
  this._currentPageSize = value;
157
156
  }
158
157
  }
159
-
160
- /**
161
- * @param pageSizes
162
- * @type {array of numbers}
163
- * @description Set the page sizes users can select from.
164
- * @default [10, 30, 50]
165
- */
166
158
  get pageSizes() {
167
- let {
159
+ const {
168
160
  pageSizes = DEFAULT_PAGE_SIZES
169
161
  } = this.args;
170
- assert(`pageSizes argument must be an array. Received: ${pageSizes}`, Array.isArray(pageSizes) === true);
162
+ assert(
163
+ // TODO: Add test for this
164
+ `pageSizes argument must be an array with at least one item. Received: ${pageSizes}`, Array.isArray(pageSizes) === true && pageSizes.length > 0);
171
165
  return pageSizes;
172
166
  }
173
167
  get itemsRangeStart() {
@@ -190,7 +184,7 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
190
184
  }
191
185
  }
192
186
  get pages() {
193
- let pages = [];
187
+ const pages = [];
194
188
  for (let i = 1; i <= this.totalPages; i++) {
195
189
  pages.push(i);
196
190
  }
@@ -207,14 +201,16 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
207
201
  return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);
208
202
  }
209
203
  buildQueryParamsObject(page, pageSize) {
210
- if (this.isControlled) {
204
+ // `page` may also be ellipsis
205
+ if (this.isControlled && typeof page === 'number') {
206
+ // if the component is controlled, `@queryFunction` is asserted to be a function
211
207
  return this.args.queryFunction(page, pageSize);
212
208
  } else {
213
209
  return {};
214
210
  }
215
211
  }
216
212
  get routing() {
217
- let routing = {
213
+ const routing = {
218
214
  route: this.args.route ?? undefined,
219
215
  model: this.args.model ?? undefined,
220
216
  models: this.args.models ?? undefined,
@@ -233,7 +229,6 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
233
229
  } else {
234
230
  routing.queryPrev = undefined;
235
231
  routing.queryNext = undefined;
236
- routing.queryByPage = {};
237
232
  }
238
233
  return routing;
239
234
  }
@@ -245,9 +240,9 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
245
240
  }
246
241
  onPageChange(page) {
247
242
  let gotoPageNumber;
248
- if (page === 'prev' && this.currentPage > 1) {
243
+ if (page === HdsPaginationDirectionValues.Prev && this.currentPage > 1) {
249
244
  gotoPageNumber = this.currentPage - 1;
250
- } else if (page === 'next' && this.currentPage < this.totalPages) {
245
+ } else if (page === HdsPaginationDirectionValues.Next && this.currentPage < this.totalPages) {
251
246
  gotoPageNumber = this.currentPage + 1;
252
247
  } else {
253
248
  gotoPageNumber = page;
@@ -255,8 +250,9 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
255
250
 
256
251
  // we want to invoke the `onPageChange` callback only on actual page change
257
252
  if (gotoPageNumber !== this.currentPage) {
253
+ // we have already determined that `gotoPageNumber` is not `prev` or `next`
258
254
  this.currentPage = gotoPageNumber;
259
- let {
255
+ const {
260
256
  onPageChange
261
257
  } = this.args;
262
258
  if (typeof onPageChange === 'function') {
@@ -265,7 +261,7 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
265
261
  }
266
262
  }
267
263
  onPageSizeChange(newPageSize) {
268
- let {
264
+ const {
269
265
  onPageSizeChange
270
266
  } = this.args;
271
267
  if (!this.isControlled) {
@@ -279,6 +275,9 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
279
275
  onPageSizeChange(newPageSize);
280
276
  }
281
277
  }
278
+ getPageNumberQuery(page) {
279
+ return this.routing.queryPages[this.elliptizedPageArrayItemAsNumber(page)];
280
+ }
282
281
  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "_currentPage", [tracked], {
283
282
  configurable: true,
284
283
  enumerable: true,
@@ -299,7 +298,7 @@ let HdsPaginationNumberedIndexComponent = (_class = class HdsPaginationNumberedI
299
298
  writable: true,
300
299
  initializer: null
301
300
  }), _applyDecoratedDescriptor(_class.prototype, "onPageChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onPageSizeChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onPageSizeChange"), _class.prototype)), _class);
302
- setComponentTemplate(TEMPLATE, HdsPaginationNumberedIndexComponent);
301
+ setComponentTemplate(TEMPLATE, HdsPaginationNumbered);
303
302
 
304
- export { DEFAULT_PAGE_SIZES, HdsPaginationNumberedIndexComponent as default, elliptize };
303
+ export { DEFAULT_PAGE_SIZES, HdsPaginationNumbered as default, elliptize };
305
304
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/numbered/index.hbs","../../../../../src/components/hds/pagination/numbered/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class=\\\"hds-pagination\\\" ...attributes>\\n {{#if this.showInfo}}\\n <Hds::Pagination::Info\\n @itemsRangeStart={{this.itemsRangeStart}}\\n @itemsRangeEnd={{this.itemsRangeEnd}}\\n @totalItems={{@totalItems}}\\n @showTotalItems={{@showTotalItems}}\\n />\\n {{/if}}\\n\\n <nav class=\\\"hds-pagination-nav\\\" aria-label={{this.ariaLabel}}>\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"prev\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryPrev}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledPrev}}\\n />\\n {{#if this.showPageNumbers}}\\n <ul class=\\\"hds-pagination-nav__page-list\\\">\\n {{#each this.pages as |page|}}\\n <li class=\\\"hds-pagination-nav__page-item\\\">\\n {{#if (eq page \\\"…\\\")}}\\n <Hds::Pagination::Nav::Ellipsis />\\n {{else}}\\n <Hds::Pagination::Nav::Number\\n @page={{page}}\\n @route={{this.routing.route}}\\n @query={{get this.routing.queryPages page}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @isSelected={{if (eq page this.currentPage) true false}}\\n />\\n {{/if}}\\n </li>\\n {{/each}}\\n </ul>\\n {{/if}}\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"next\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryNext}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledNext}}\\n />\\n </nav>\\n\\n {{#if this.showSizeSelector}}\\n <Hds::Pagination::SizeSelector\\n @pageSizes={{this.pageSizes}}\\n @label={{@sizeSelectorLabel}}\\n @selectedSize={{this.currentPageSize}}\\n @onChange={{this.onPageSizeChange}}\\n />\\n {{/if}}\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\n\n/**\n * Elliptize a list of pages\n *\n * @param pages - array with all the \"pages\" (integer numbers)\n * @param current - \"current\" page (array's index)\n * @param limit - number of \"page numbers\" to be shown at a time (should always be an odd number!)\n *\n * @return - array of integers (\"pages\") + `...` strings (\"ellipsis\")\n */\nexport const elliptize = ({ pages, current, limit = 7 }) => {\n const length = pages.length;\n const ellipsis = '…';\n let result = [];\n let start;\n let end;\n\n if (length <= limit) {\n return pages;\n }\n\n if (current <= length / 2) {\n start = Math.ceil(limit / 2);\n end = limit - start;\n } else {\n end = Math.ceil(limit / 2);\n start = limit - end;\n }\n\n const sliceStart = pages.slice(0, start);\n const sliceEnd = pages.slice(-end);\n\n if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {\n // \"current\" (and its next sibling) is contained within the \"sliceStart\" block\n sliceEnd.splice(0, 1, ellipsis);\n result = [].concat(sliceStart, sliceEnd);\n } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {\n // \"current\" (and its prev sibling) is contained within the \"sliceEnd\" block\n sliceStart.splice(-1, 1, ellipsis);\n result = [].concat(sliceStart, sliceEnd);\n } else {\n // this is a bit more tricky :)\n // we need to calculate how many items there are before/after the current item\n // since both the initial and ending blocks are always 2 items long (number + ellipsis)\n // and there is always the \"current\" item, we can just subtract 5 from the limit\n const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number\n // we slice the array starting at the \"current\" index, minus the delta, minus one because it's an array (zero-based)\n const sliceCurr = pages.slice(current - delta - 1, current + delta);\n result = [].concat(\n sliceStart.shift(),\n ellipsis,\n sliceCurr,\n ellipsis,\n sliceEnd.pop()\n );\n }\n\n return result;\n};\n\nexport default class HdsPaginationNumberedIndexComponent extends Component {\n // These two private variables are used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, these variables store the internal state of the component at any moment,\n // and their value is updated internally according to the user's interaction with the component.\n // In the second case, these variables store *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked _currentPage = this.args.currentPage ?? 1;\n @tracked _currentPageSize = this.args.currentPageSize ?? this.pageSizes[0];\n @tracked isControlled;\n\n showInfo = this.args.showInfo ?? true; // if the \"info\" block is visible\n showLabels = this.args.showLabels ?? false; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? true; // if the \"size selector\" block is visible\n showPageNumbers = this.args.showPageNumbers ?? true; // if the \"page numbers\" block is visible\n isTruncated = this.args.isTruncated ?? true; // if the list of \"page numbers\" is truncated\n\n constructor() {\n super(...arguments);\n\n let { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates - eg to the \"currentPage\" and \"currentPageSize\"\n // are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this.isControlled = false;\n } else {\n assert(\n '@queryFunction for \"Hds::Pagination::Numbered\" must be a function',\n typeof queryFunction === 'function'\n );\n assert(\n '@currentPage and @currentPageSize for \"Hds::Pagination::Numbered\" must be provided as numeric arguments when the pagination controls the routing',\n typeof this.args.currentPageSize === 'number' &&\n typeof this.args.currentPage === 'number'\n );\n this.isControlled = true;\n }\n\n assert(\n '@totalItems for \"Hds::Pagination::Numbered\" must be defined as an integer number',\n typeof this.args.totalItems === 'number'\n );\n }\n\n /**\n * @param ariaLabel\n * @type {string}\n * @default 'Pagination'\n */\n get ariaLabel() {\n return this.args.ariaLabel ?? 'Pagination';\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPage() {\n if (this.isControlled) {\n return this.args.currentPage;\n } else {\n return this._currentPage;\n }\n }\n\n set currentPage(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._currentPage = value;\n }\n }\n\n get currentPageSize() {\n if (this.isControlled) {\n return this.args.currentPageSize;\n } else {\n return this._currentPageSize;\n }\n }\n\n set currentPageSize(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n /**\n * @param pageSizes\n * @type {array of numbers}\n * @description Set the page sizes users can select from.\n * @default [10, 30, 50]\n */\n get pageSizes() {\n let { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n `pageSizes argument must be an array. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true\n );\n\n return pageSizes;\n }\n\n get itemsRangeStart() {\n // Calculate the starting range of items displayed on current page\n // if currentPage = 1st page and # of items per page is 10:\n // ( (1 - 1 = 0) * 10 = 0 ) + 1 = 1\n // if current page = 2nd page:\n // ( (2 - 1 = 1) * 10 = 10 ) + 1 = 11\n return (this.currentPage - 1) * this.currentPageSize + 1;\n }\n\n get itemsRangeEnd() {\n // Calculate ending range of items displayed on current page\n // 2 cases: 1) full page of items or 2) last page of items\n if (this.currentPage * this.currentPageSize < this.args.totalItems) {\n // 1) full page of items (pages 1 to page before last):\n return this.itemsRangeStart + this.currentPageSize - 1;\n } else {\n // 2) last page of items:\n return this.args.totalItems;\n }\n }\n\n get pages() {\n let pages = [];\n\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(i);\n }\n\n if (this.isTruncated) {\n return elliptize({ pages, current: this.currentPage });\n } else {\n return pages;\n }\n }\n\n get totalPages() {\n return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);\n }\n\n buildQueryParamsObject(page, pageSize) {\n if (this.isControlled) {\n return this.args.queryFunction(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing() {\n let routing = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this.isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n this.currentPage - 1,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n this.currentPage + 1,\n this.currentPageSize\n );\n // IMPORTANT: here we need to use an object and not an array\n // otherwise the {{get object page}} will be shifted by one\n // (the pages are 1-based while the array would be zero-based)\n routing.queryPages = {};\n this.pages.forEach(\n (page) =>\n (routing.queryPages[page] = this.buildQueryParamsObject(\n page,\n this.currentPageSize\n ))\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n routing.queryByPage = {};\n }\n\n return routing;\n }\n\n get isDisabledPrev() {\n return this.currentPage === 1;\n }\n\n get isDisabledNext() {\n return this.currentPage === this.totalPages;\n }\n\n @action\n onPageChange(page) {\n let gotoPageNumber;\n if (page === 'prev' && this.currentPage > 1) {\n gotoPageNumber = this.currentPage - 1;\n } else if (page === 'next' && this.currentPage < this.totalPages) {\n gotoPageNumber = this.currentPage + 1;\n } else {\n gotoPageNumber = page;\n }\n\n // we want to invoke the `onPageChange` callback only on actual page change\n if (gotoPageNumber !== this.currentPage) {\n this.currentPage = gotoPageNumber;\n\n let { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(this.currentPage, this.currentPageSize);\n }\n }\n }\n\n @action\n onPageSizeChange(newPageSize) {\n let { onPageSizeChange } = this.args;\n\n if (!this.isControlled) {\n // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)\n this.currentPage = 1;\n this.currentPageSize = newPageSize;\n }\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n }\n}\n"],"names":["DEFAULT_PAGE_SIZES","elliptize","pages","current","limit","length","ellipsis","result","start","end","Math","ceil","sliceStart","slice","sliceEnd","includes","splice","concat","delta","sliceCurr","shift","pop","HdsPaginationNumberedIndexComponent","_class","Component","constructor","arguments","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","args","showInfo","showLabels","showSizeSelector","showPageNumbers","isTruncated","queryFunction","undefined","isControlled","assert","currentPageSize","currentPage","totalItems","ariaLabel","_currentPage","value","_currentPageSize","pageSizes","Array","isArray","itemsRangeStart","itemsRangeEnd","i","totalPages","push","max","buildQueryParamsObject","page","pageSize","routing","route","model","models","replace","queryPrev","queryNext","queryPages","forEach","queryByPage","isDisabledPrev","isDisabledNext","onPageChange","gotoPageNumber","onPageSizeChange","newPageSize","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/numbered/index.hbs","../../../../../src/components/hds/pagination/numbered/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class=\\\"hds-pagination\\\" ...attributes>\\n {{#if this.showInfo}}\\n <Hds::Pagination::Info\\n @itemsRangeStart={{this.itemsRangeStart}}\\n @itemsRangeEnd={{this.itemsRangeEnd}}\\n @totalItems={{@totalItems}}\\n @showTotalItems={{@showTotalItems}}\\n />\\n {{/if}}\\n\\n <nav class=\\\"hds-pagination-nav\\\" aria-label={{this.ariaLabel}}>\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"prev\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryPrev}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledPrev}}\\n />\\n {{#if this.showPageNumbers}}\\n <ul class=\\\"hds-pagination-nav__page-list\\\">\\n {{#each this.pages as |page|}}\\n <li class=\\\"hds-pagination-nav__page-item\\\">\\n {{#if (eq page \\\"…\\\")}}\\n <Hds::Pagination::Nav::Ellipsis />\\n {{else}}\\n <Hds::Pagination::Nav::Number\\n @page={{this.elliptizedPageArrayItemAsNumber page}}\\n @route={{this.routing.route}}\\n @query={{get this.routing.queryPages page}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @isSelected={{if (eq page this.currentPage) true false}}\\n />\\n {{/if}}\\n </li>\\n {{/each}}\\n </ul>\\n {{/if}}\\n <Hds::Pagination::Nav::Arrow\\n @direction=\\\"next\\\"\\n @showLabel={{this.showLabels}}\\n @route={{this.routing.route}}\\n @query={{this.routing.queryNext}}\\n @model={{this.routing.model}}\\n @models={{this.routing.models}}\\n @replace={{this.routing.replace}}\\n @onClick={{this.onPageChange}}\\n @disabled={{this.isDisabledNext}}\\n />\\n </nav>\\n\\n {{#if this.showSizeSelector}}\\n <Hds::Pagination::SizeSelector\\n @pageSizes={{this.pageSizes}}\\n @label={{@sizeSelectorLabel}}\\n @selectedSize={{this.currentPageSize}}\\n @onChange={{this.onPageSizeChange}}\\n />\\n {{/if}}\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { HdsPaginationDirectionValues } from '../types.ts';\n\nimport type {\n HdsPaginationPage,\n HdsPaginationRoutingProps,\n HdsPaginationElliptizedPageArray,\n HdsPaginationElliptizedPageArrayItem,\n} from '../types';\nimport type { HdsInteractiveSignature } from '../../interactive/index.ts';\ninterface ElliptizeProps {\n pages: number[];\n current: number;\n limit?: number;\n}\n\ntype HdsInteractiveQuery = HdsInteractiveSignature['Args']['query'];\n\ntype HdsPaginationNumberedRoutingQueryProps = HdsPaginationRoutingProps & {\n queryNext?: HdsInteractiveQuery;\n queryPrev?: HdsInteractiveQuery;\n queryPages?: Record<\n HdsPaginationElliptizedPageArrayItem,\n HdsInteractiveQuery\n >;\n};\n\ninterface HdsPaginationNumberedArgs {\n ariaLabel?: string;\n totalItems: number;\n showLabels?: boolean;\n isTruncated?: boolean;\n currentPage?: number;\n showInfo?: boolean;\n showPageNumbers?: boolean;\n showTotalItems?: boolean;\n showSizeSelector?: boolean;\n sizeSelectorLabel?: string;\n pageSizes?: number[];\n currentPageSize?: number;\n queryFunction?: (page: number, pageSize: number) => HdsInteractiveQuery;\n onPageChange?: (page: number, pageSize: number) => unknown;\n onPageSizeChange?: (pageSize: number) => unknown;\n}\n\nexport interface HdsPaginationNumberedSignature {\n Args: HdsPaginationNumberedArgs & HdsPaginationRoutingProps;\n Element: HTMLDivElement;\n}\n\nconst ELLIPSIS = '…';\n\n// for context about the decision to use these values, see:\n// https://hashicorp.slack.com/archives/C03A0N1QK8S/p1673546329082759\nexport const DEFAULT_PAGE_SIZES = [10, 30, 50];\n\nexport const elliptize = ({\n pages,\n current,\n limit = 7,\n}: ElliptizeProps): HdsPaginationElliptizedPageArray => {\n const length = pages.length;\n\n let result = [];\n let start;\n let end;\n\n if (length <= limit) {\n return pages;\n }\n\n if (current <= length / 2) {\n start = Math.ceil(limit / 2);\n end = limit - start;\n } else {\n end = Math.ceil(limit / 2);\n start = limit - end;\n }\n\n const sliceStart: HdsPaginationElliptizedPageArray = pages.slice(0, start);\n const sliceEnd: HdsPaginationElliptizedPageArray = pages.slice(-end);\n\n if (sliceStart.includes(current) && sliceStart.includes(current + 1)) {\n // \"current\" (and its next sibling) is contained within the \"sliceStart\" block\n sliceEnd.splice(0, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else if (sliceEnd.includes(current - 1) && sliceEnd.includes(current)) {\n // \"current\" (and its prev sibling) is contained within the \"sliceEnd\" block\n sliceStart.splice(-1, 1, ELLIPSIS);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart,\n sliceEnd\n );\n } else {\n // this is a bit more tricky :)\n // we need to calculate how many items there are before/after the current item\n // since both the initial and ending blocks are always 2 items long (number + ellipsis)\n // and there is always the \"current\" item, we can just subtract 5 from the limit\n const delta = (limit - 5) / 2; // this is why the limit needs to be an odd number\n // we slice the array starting at the \"current\" index, minus the delta, minus one because it's an array (zero-based)\n const sliceCurr = pages.slice(current - delta - 1, current + delta);\n result = ([] as HdsPaginationElliptizedPageArray).concat(\n sliceStart.shift() as number,\n ELLIPSIS,\n sliceCurr,\n ELLIPSIS,\n sliceEnd.pop() as number\n );\n }\n\n return result;\n};\nexport default class HdsPaginationNumbered extends Component<HdsPaginationNumberedSignature> {\n // These two private variables are used to differentiate between\n // \"uncontrolled\" component (where the state is handled internally) and\n // \"controlled\" component (where the state is handled externally, by the consumer's code).\n // In the first case, these variables store the internal state of the component at any moment,\n // and their value is updated internally according to the user's interaction with the component.\n // In the second case, these variables store *only* the initial state of the component (coming from the arguments)\n // at rendering time, but from that moment on they're not updated anymore, no matter what interaction the user\n // has with the component (the state is controlled externally, eg. via query parameters)\n @tracked _currentPage = this.args.currentPage ?? 1;\n // we assert that `this.pageSizes` will always be an array with at least one item\n @tracked _currentPageSize = this.args.currentPageSize ?? this.pageSizes[0]!;\n @tracked isControlled;\n\n showInfo = this.args.showInfo ?? true; // if the \"info\" block is visible\n showLabels = this.args.showLabels ?? false; // if the labels for the \"prev/next\" controls are visible\n showSizeSelector = this.args.showSizeSelector ?? true; // if the \"size selector\" block is visible\n showPageNumbers = this.args.showPageNumbers ?? true; // if the \"page numbers\" block is visible\n isTruncated = this.args.isTruncated ?? true; // if the list of \"page numbers\" is truncated\n\n constructor(owner: unknown, args: HdsPaginationNumberedSignature['Args']) {\n super(owner, args);\n\n const { queryFunction } = this.args;\n\n // This component works in two different ways, depending if we need to support\n // routing through links (`LinkTo`) for the \"navigation controls\", or not.\n // If there's no routing then the component behaves as \"uncontrolled\"\n // (the state updates - eg to the \"currentPage\" and \"currentPageSize\"\n // are handled by its internal logic).\n // If instead the component needs to update the routing (and we infer this via the \"query\" arguments)\n // then the component behaves as \"controlled\", where the state is\n // initialized and updated using the arguments passed to it.\n\n if (queryFunction === undefined) {\n this.isControlled = false;\n } else {\n assert(\n '@queryFunction for \"Hds::Pagination::Numbered\" must be a function',\n typeof queryFunction === 'function'\n );\n assert(\n '@currentPage and @currentPageSize for \"Hds::Pagination::Numbered\" must be provided as numeric arguments when the pagination controls the routing',\n typeof this.args.currentPageSize === 'number' &&\n typeof this.args.currentPage === 'number'\n );\n this.isControlled = true;\n }\n\n assert(\n '@totalItems for \"Hds::Pagination::Numbered\" must be defined as an integer number',\n typeof this.args.totalItems === 'number'\n );\n }\n\n get ariaLabel(): string {\n return this.args.ariaLabel ?? 'Pagination';\n }\n\n // This very specific `get/set` pattern is used to handle the two different use cases of the component\n // being \"controlled\" (when it has routing, meaning it needs to support pagination controls as links/`LinkTo`)\n // vs being \"uncontrolled\" (see comments above for details).\n //\n // If it has routing (and so it's \"controlled\"), than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the controller via arguments (most of the times, connected to query parameters in the URL).\n // For this reason the \"get\" method always returns the value from the `args`,\n // while the \"set\" method never updates the private internal state (_variable).\n //\n // If instead it doesn't have routing (and so it's \"uncontrolled\") than the value (\"state\") of the `currentPage/currentPageSize` variables\n // is *always* determined by the component's internal logic (and updated according to the user interaction with it).\n // For this reason the \"get\" and \"set\" methods always read from or write to the private internal state (_variable).\n\n get currentPage(): number {\n if (this.isControlled) {\n // if the component is controlled, `@currentPage` is asserted to be a number\n return this.args.currentPage as number;\n } else {\n return this._currentPage;\n }\n }\n set currentPage(value) {\n if (this.isControlled) {\n // noop\n } else {\n // if `this.isControlled` is `false`\n this._currentPage = value as number;\n }\n }\n\n get currentPageSize(): number {\n if (this.isControlled) {\n // if the component is controlled, `@currentPageSize` is asserted to be a number\n return this.args.currentPageSize as number;\n } else {\n return this._currentPageSize;\n }\n }\n set currentPageSize(value) {\n if (this.isControlled) {\n // noop\n } else {\n this._currentPageSize = value;\n }\n }\n\n get pageSizes(): number[] {\n const { pageSizes = DEFAULT_PAGE_SIZES } = this.args;\n\n assert(\n // TODO: Add test for this\n `pageSizes argument must be an array with at least one item. Received: ${pageSizes}`,\n Array.isArray(pageSizes) === true && pageSizes.length > 0\n );\n\n return pageSizes;\n }\n\n get itemsRangeStart(): number {\n // Calculate the starting range of items displayed on current page\n // if currentPage = 1st page and # of items per page is 10:\n // ( (1 - 1 = 0) * 10 = 0 ) + 1 = 1\n // if current page = 2nd page:\n // ( (2 - 1 = 1) * 10 = 10 ) + 1 = 11\n return (this.currentPage - 1) * this.currentPageSize + 1;\n }\n\n get itemsRangeEnd(): number {\n // Calculate ending range of items displayed on current page\n // 2 cases: 1) full page of items or 2) last page of items\n if (this.currentPage * this.currentPageSize < this.args.totalItems) {\n // 1) full page of items (pages 1 to page before last):\n return this.itemsRangeStart + this.currentPageSize - 1;\n } else {\n // 2) last page of items:\n return this.args.totalItems;\n }\n }\n\n get pages(): HdsPaginationElliptizedPageArray {\n const pages = [];\n\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(i);\n }\n\n if (this.isTruncated) {\n return elliptize({ pages, current: this.currentPage });\n } else {\n return pages;\n }\n }\n\n get totalPages() {\n return Math.max(Math.ceil(this.args.totalItems / this.currentPageSize), 1);\n }\n\n buildQueryParamsObject(\n page: HdsPaginationElliptizedPageArrayItem,\n pageSize: number\n ): HdsInteractiveQuery {\n // `page` may also be ellipsis\n if (this.isControlled && typeof page === 'number') {\n // if the component is controlled, `@queryFunction` is asserted to be a function\n return this.args.queryFunction!(page, pageSize);\n } else {\n return {};\n }\n }\n\n get routing(): HdsPaginationNumberedRoutingQueryProps {\n const routing: HdsPaginationNumberedRoutingQueryProps = {\n route: this.args.route ?? undefined,\n model: this.args.model ?? undefined,\n models: this.args.models ?? undefined,\n replace: this.args.replace ?? undefined,\n };\n\n // the \"query\" is dynamic and needs to be calculated\n if (this.isControlled) {\n routing.queryPrev = this.buildQueryParamsObject(\n this.currentPage - 1,\n this.currentPageSize\n );\n routing.queryNext = this.buildQueryParamsObject(\n this.currentPage + 1,\n this.currentPageSize\n );\n // IMPORTANT: here we need to use an object and not an array\n // otherwise the {{get object page}} will be shifted by one\n // (the pages are 1-based while the array would be zero-based)\n routing.queryPages = {};\n this.pages.forEach(\n (page) =>\n (routing.queryPages![page] = this.buildQueryParamsObject(\n page,\n this.currentPageSize\n ))\n );\n } else {\n routing.queryPrev = undefined;\n routing.queryNext = undefined;\n }\n\n return routing;\n }\n\n get isDisabledPrev() {\n return this.currentPage === 1;\n }\n\n get isDisabledNext() {\n return this.currentPage === this.totalPages;\n }\n\n @action\n onPageChange(page: HdsPaginationPage) {\n let gotoPageNumber;\n if (page === HdsPaginationDirectionValues.Prev && this.currentPage > 1) {\n gotoPageNumber = this.currentPage - 1;\n } else if (\n page === HdsPaginationDirectionValues.Next &&\n this.currentPage < this.totalPages\n ) {\n gotoPageNumber = this.currentPage + 1;\n } else {\n gotoPageNumber = page;\n }\n\n // we want to invoke the `onPageChange` callback only on actual page change\n if (gotoPageNumber !== this.currentPage) {\n // we have already determined that `gotoPageNumber` is not `prev` or `next`\n this.currentPage = gotoPageNumber as number;\n\n const { onPageChange } = this.args;\n\n if (typeof onPageChange === 'function') {\n onPageChange(this.currentPage, this.currentPageSize);\n }\n }\n }\n\n @action\n onPageSizeChange(newPageSize: number) {\n const { onPageSizeChange } = this.args;\n\n if (!this.isControlled) {\n // notice: we agreed to reset the pagination to the first element (any alternative would result in an unpredictable UX)\n this.currentPage = 1;\n this.currentPageSize = newPageSize;\n }\n\n // invoke the callback function\n if (typeof onPageSizeChange === 'function') {\n onPageSizeChange(newPageSize);\n }\n }\n\n elliptizedPageArrayItemAsNumber = (\n item: HdsPaginationElliptizedPageArrayItem\n ): number => {\n if (typeof item === 'number') {\n return item;\n } else {\n throw new Error('Expected a number, but got an ellipsis');\n }\n };\n\n getPageNumberQuery(page: HdsPaginationElliptizedPageArrayItem) {\n return this.routing.queryPages![this.elliptizedPageArrayItemAsNumber(page)];\n }\n}\n"],"names":["ELLIPSIS","DEFAULT_PAGE_SIZES","elliptize","pages","current","limit","length","result","start","end","Math","ceil","sliceStart","slice","sliceEnd","includes","splice","concat","delta","sliceCurr","shift","pop","HdsPaginationNumbered","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","showInfo","showLabels","showSizeSelector","showPageNumbers","isTruncated","item","Error","queryFunction","undefined","isControlled","assert","currentPageSize","currentPage","totalItems","ariaLabel","_currentPage","value","_currentPageSize","pageSizes","Array","isArray","itemsRangeStart","itemsRangeEnd","i","totalPages","push","max","buildQueryParamsObject","page","pageSize","routing","route","model","models","replace","queryPrev","queryNext","queryPages","forEach","isDisabledPrev","isDisabledNext","onPageChange","gotoPageNumber","HdsPaginationDirectionValues","Prev","Next","onPageSizeChange","newPageSize","getPageNumberQuery","elliptizedPageArrayItemAsNumber","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
@@ -6,67 +6,45 @@ import { action } from '@ember/object';
6
6
  import { precompileTemplate } from '@ember/template-compilation';
7
7
  import { setComponentTemplate } from '@ember/component';
8
8
 
9
- var TEMPLATE = precompileTemplate("{{! @glint-nocheck: not typesafe yet }}\n{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination-size-selector\" ...attributes>\n <label class=\"hds-typography-body-100 hds-font-weight-medium\" for={{this.SizeSelectorId}}>\n {{this.label}}\n </label>\n <Hds::Form::Select::Base id={{this.SizeSelectorId}} {{on \"change\" this.onChange}} as |S|>\n <S.Options>\n {{#each this.pageSizes as |size|}}\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\n {{/each}}\n </S.Options>\n </Hds::Form::Select::Base>\n</div>");
9
+ var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-pagination-size-selector\" ...attributes>\n <label class=\"hds-typography-body-100 hds-font-weight-medium\" for={{this.SizeSelectorId}}>\n {{this.label}}\n </label>\n <Hds::Form::Select::Base id={{this.SizeSelectorId}} {{on \"change\" this.onChange}} as |S|>\n <S.Options>\n {{#each this.pageSizes as |size|}}\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\n {{/each}}\n </S.Options>\n </Hds::Form::Select::Base>\n</div>");
10
10
 
11
11
  var _class;
12
- let HdsPaginationSizeSelectorComponent = (_class = class HdsPaginationSizeSelectorComponent extends Component {
12
+ let HdsPaginationSizeSelector = (_class = class HdsPaginationSizeSelector extends Component {
13
13
  constructor(...args) {
14
14
  super(...args);
15
- /**
16
- * Generates a unique ID for the pageSize select
17
- *
18
- * @param SizeSelectorId
19
- */
20
15
  _defineProperty(this, "SizeSelectorId", 'pagination-size-selector-' + guidFor(this));
21
16
  }
22
- /**
23
- * @param pageSizes
24
- * @type {array of numbers}
25
- * @description Set the page sizes users can select from.
26
- */
27
17
  get pageSizes() {
28
- let {
18
+ const {
29
19
  pageSizes
30
20
  } = this.args;
31
21
  assert('@pageSizes for "Pagination::SizeSelector" must be defined', pageSizes !== undefined);
32
22
  return pageSizes;
33
23
  }
34
-
35
- /**
36
- * @param selectedSize
37
- * @type integer
38
- * @description The selected ("current") page size
39
- */
40
24
  get selectedSize() {
41
- let {
25
+ const {
42
26
  selectedSize
43
27
  } = this.args;
44
28
  assert(`@selectedSize for "Pagination::SizeSelector" must one of the @pageSizes provided (${this.pageSizes.join(',')}), received ${selectedSize}`, selectedSize === undefined || this.pageSizes.includes(selectedSize));
45
29
  return selectedSize;
46
30
  }
47
-
48
- /**
49
- * @param label
50
- * @type string
51
- * @default "Items per page"
52
- * @description The label text for the select
53
- */
54
31
  get label() {
55
- let {
32
+ const {
56
33
  label = 'Items per page'
57
34
  } = this.args;
58
35
  return label;
59
36
  }
60
37
  onChange(e) {
61
- let {
38
+ const {
62
39
  onChange
63
40
  } = this.args;
41
+ const target = e.target;
64
42
  if (typeof onChange === 'function') {
65
- onChange(parseInt(e.target.value));
43
+ onChange(parseInt(target.value));
66
44
  }
67
45
  }
68
46
  }, (_applyDecoratedDescriptor(_class.prototype, "onChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onChange"), _class.prototype)), _class);
69
- setComponentTemplate(TEMPLATE, HdsPaginationSizeSelectorComponent);
47
+ setComponentTemplate(TEMPLATE, HdsPaginationSizeSelector);
70
48
 
71
- export { HdsPaginationSizeSelectorComponent as default };
49
+ export { HdsPaginationSizeSelector as default };
72
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/size-selector/index.hbs","../../../../../src/components/hds/pagination/size-selector/index.js"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! @glint-nocheck: not typesafe yet }}\\n{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class=\\\"hds-pagination-size-selector\\\" ...attributes>\\n <label class=\\\"hds-typography-body-100 hds-font-weight-medium\\\" for={{this.SizeSelectorId}}>\\n {{this.label}}\\n </label>\\n <Hds::Form::Select::Base id={{this.SizeSelectorId}} {{on \\\"change\\\" this.onChange}} as |S|>\\n <S.Options>\\n {{#each this.pageSizes as |size|}}\\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\\n {{/each}}\\n </S.Options>\\n </Hds::Form::Select::Base>\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nexport default class HdsPaginationSizeSelectorComponent extends Component {\n /**\n * Generates a unique ID for the pageSize select\n *\n * @param SizeSelectorId\n */\n SizeSelectorId = 'pagination-size-selector-' + guidFor(this);\n\n /**\n * @param pageSizes\n * @type {array of numbers}\n * @description Set the page sizes users can select from.\n */\n get pageSizes() {\n let { pageSizes } = this.args;\n\n assert(\n '@pageSizes for \"Pagination::SizeSelector\" must be defined',\n pageSizes !== undefined\n );\n\n return pageSizes;\n }\n\n /**\n * @param selectedSize\n * @type integer\n * @description The selected (\"current\") page size\n */\n get selectedSize() {\n let { selectedSize } = this.args;\n\n assert(\n `@selectedSize for \"Pagination::SizeSelector\" must one of the @pageSizes provided (${this.pageSizes.join(\n ','\n )}), received ${selectedSize}`,\n selectedSize === undefined || this.pageSizes.includes(selectedSize)\n );\n\n return selectedSize;\n }\n\n /**\n * @param label\n * @type string\n * @default \"Items per page\"\n * @description The label text for the select\n */\n get label() {\n let { label = 'Items per page' } = this.args;\n\n return label;\n }\n\n @action\n onChange(e) {\n let { onChange } = this.args;\n\n if (typeof onChange === 'function') {\n onChange(parseInt(e.target.value));\n }\n }\n}\n"],"names":["HdsPaginationSizeSelectorComponent","_class","Component","constructor","args","_defineProperty","guidFor","pageSizes","assert","undefined","selectedSize","join","includes","label","onChange","e","parseInt","target","value","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,8nBAA8nB;;;ACS3oBA,IAAAA,kCAAkC,IAAAC,MAAA,GAAxC,MAAMD,kCAAkC,SAASE,SAAS,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AACxE;AACF;AACA;AACA;AACA;AAJEC,IAAAA,eAAA,yBAKiB,2BAA2B,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;AAE5D;AACF;AACA;AACA;AACA;EACE,IAAIC,SAASA,GAAG;IACd,IAAI;AAAEA,MAAAA,SAAAA;KAAW,GAAG,IAAI,CAACH,IAAI,CAAA;AAE7BI,IAAAA,MAAM,CACJ,2DAA2D,EAC3DD,SAAS,KAAKE,SAChB,CAAC,CAAA;AAED,IAAA,OAAOF,SAAS,CAAA;AAClB,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIG,YAAYA,GAAG;IACjB,IAAI;AAAEA,MAAAA,YAAAA;KAAc,GAAG,IAAI,CAACN,IAAI,CAAA;IAEhCI,MAAM,CACJ,CAAqF,kFAAA,EAAA,IAAI,CAACD,SAAS,CAACI,IAAI,CACtG,GACF,CAAC,CAAA,YAAA,EAAeD,YAAY,CAAA,CAAE,EAC9BA,YAAY,KAAKD,SAAS,IAAI,IAAI,CAACF,SAAS,CAACK,QAAQ,CAACF,YAAY,CACpE,CAAC,CAAA;AAED,IAAA,OAAOA,YAAY,CAAA;AACrB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,IAAIG,KAAKA,GAAG;IACV,IAAI;AAAEA,MAAAA,KAAK,GAAG,gBAAA;KAAkB,GAAG,IAAI,CAACT,IAAI,CAAA;AAE5C,IAAA,OAAOS,KAAK,CAAA;AACd,GAAA;EAGAC,QAAQA,CAACC,CAAC,EAAE;IACV,IAAI;AAAED,MAAAA,QAAAA;KAAU,GAAG,IAAI,CAACV,IAAI,CAAA;AAE5B,IAAA,IAAI,OAAOU,QAAQ,KAAK,UAAU,EAAE;MAClCA,QAAQ,CAACE,QAAQ,CAACD,CAAC,CAACE,MAAM,CAACC,KAAK,CAAC,CAAC,CAAA;AACpC,KAAA;AACF,GAAA;AACF,CAAC,GAAAC,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,UAAA,EAAA,CAREC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAtB,MAAA,CAAAmB,SAAA,eAAAnB,MAAA,CAAAmB,SAAA,CAAA,GAAAnB,MAAA,EAAA;AAtD8CuB,oBAAA,CAAAC,QAAA,EAAlCzB,kCAAkC,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/hds/pagination/size-selector/index.hbs","../../../../../src/components/hds/pagination/size-selector/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n<div class=\\\"hds-pagination-size-selector\\\" ...attributes>\\n <label class=\\\"hds-typography-body-100 hds-font-weight-medium\\\" for={{this.SizeSelectorId}}>\\n {{this.label}}\\n </label>\\n <Hds::Form::Select::Base id={{this.SizeSelectorId}} {{on \\\"change\\\" this.onChange}} as |S|>\\n <S.Options>\\n {{#each this.pageSizes as |size|}}\\n <option value={{size}} selected={{if (eq size this.selectedSize) true null}}>{{size}}</option>\\n {{/each}}\\n </S.Options>\\n </Hds::Form::Select::Base>\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nimport type { HdsFormSelectBaseSignature } from '../../form/select/base';\n\ninterface HdsPaginationSizeSelectorSignature {\n Args: {\n pageSizes: number[];\n label?: string;\n selectedSize?: number;\n onChange?: (size: number) => void;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsPaginationSizeSelector extends Component<HdsPaginationSizeSelectorSignature> {\n SizeSelectorId = 'pagination-size-selector-' + guidFor(this);\n\n get pageSizes(): number[] {\n const { pageSizes } = this.args;\n\n assert(\n '@pageSizes for \"Pagination::SizeSelector\" must be defined',\n pageSizes !== undefined\n );\n\n return pageSizes;\n }\n\n get selectedSize(): number | undefined {\n const { selectedSize } = this.args;\n\n assert(\n `@selectedSize for \"Pagination::SizeSelector\" must one of the @pageSizes provided (${this.pageSizes.join(\n ','\n )}), received ${selectedSize}`,\n selectedSize === undefined || this.pageSizes.includes(selectedSize)\n );\n\n return selectedSize;\n }\n\n get label(): string {\n const { label = 'Items per page' } = this.args;\n\n return label;\n }\n\n @action\n onChange(e: Event): void {\n const { onChange } = this.args;\n\n const target = e.target as HdsFormSelectBaseSignature['Element'];\n\n if (typeof onChange === 'function') {\n onChange(parseInt(target.value));\n }\n }\n}\n"],"names":["HdsPaginationSizeSelector","_class","Component","constructor","args","_defineProperty","guidFor","pageSizes","assert","undefined","selectedSize","join","includes","label","onChange","e","target","parseInt","value","_applyDecoratedDescriptor","prototype","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AACA,eAAe,kBAAkB,CAAC,qlBAAqlB;;;ACqBlmBA,IAAAA,yBAAyB,IAAAC,MAAA,GAA/B,MAAMD,yBAAyB,SAASE,SAAS,CAAqC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA,CAAA;AAAAC,IAAAA,eAAA,yBAClF,2BAA2B,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;AAAA,GAAA;EAE5D,IAAIC,SAASA,GAAa;IACxB,MAAM;AAAEA,MAAAA,SAAAA;KAAW,GAAG,IAAI,CAACH,IAAI,CAAA;AAE/BI,IAAAA,MAAM,CACJ,2DAA2D,EAC3DD,SAAS,KAAKE,SAChB,CAAC,CAAA;AAED,IAAA,OAAOF,SAAS,CAAA;AAClB,GAAA;EAEA,IAAIG,YAAYA,GAAuB;IACrC,MAAM;AAAEA,MAAAA,YAAAA;KAAc,GAAG,IAAI,CAACN,IAAI,CAAA;IAElCI,MAAM,CACJ,CAAqF,kFAAA,EAAA,IAAI,CAACD,SAAS,CAACI,IAAI,CACtG,GACF,CAAC,CAAA,YAAA,EAAeD,YAAY,CAAA,CAAE,EAC9BA,YAAY,KAAKD,SAAS,IAAI,IAAI,CAACF,SAAS,CAACK,QAAQ,CAACF,YAAY,CACpE,CAAC,CAAA;AAED,IAAA,OAAOA,YAAY,CAAA;AACrB,GAAA;EAEA,IAAIG,KAAKA,GAAW;IAClB,MAAM;AAAEA,MAAAA,KAAK,GAAG,gBAAA;KAAkB,GAAG,IAAI,CAACT,IAAI,CAAA;AAE9C,IAAA,OAAOS,KAAK,CAAA;AACd,GAAA;EAGAC,QAAQA,CAACC,CAAQ,EAAQ;IACvB,MAAM;AAAED,MAAAA,QAAAA;KAAU,GAAG,IAAI,CAACV,IAAI,CAAA;AAE9B,IAAA,MAAMY,MAAM,GAAGD,CAAC,CAACC,MAA+C,CAAA;AAEhE,IAAA,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE;AAClCA,MAAAA,QAAQ,CAACG,QAAQ,CAACD,MAAM,CAACE,KAAK,CAAC,CAAC,CAAA;AAClC,KAAA;AACF,GAAA;AACF,CAAC,GAAAC,yBAAA,CAAAlB,MAAA,CAAAmB,SAAA,EAAA,UAAA,EAAA,CAVEC,MAAM,CAAAC,EAAAA,MAAA,CAAAC,wBAAA,CAAAtB,MAAA,CAAAmB,SAAA,eAAAnB,MAAA,CAAAmB,SAAA,CAAA,GAAAnB,MAAA,EAAA;AAjCqCuB,oBAAA,CAAAC,QAAA,EAAzBzB,yBAAyB,CAAA;;;;"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
6
+ let HdsPaginationDirectionValues = /*#__PURE__*/function (HdsPaginationDirectionValues) {
7
+ HdsPaginationDirectionValues["Next"] = "next";
8
+ HdsPaginationDirectionValues["Prev"] = "prev";
9
+ return HdsPaginationDirectionValues;
10
+ }({});
11
+ let HdsPaginationDirectionAriaLabelValues = /*#__PURE__*/function (HdsPaginationDirectionAriaLabelValues) {
12
+ HdsPaginationDirectionAriaLabelValues["Prev"] = "Previous page";
13
+ HdsPaginationDirectionAriaLabelValues["Next"] = "Next page";
14
+ return HdsPaginationDirectionAriaLabelValues;
15
+ }({});
16
+ let HdsPaginationDirectionLabelValues = /*#__PURE__*/function (HdsPaginationDirectionLabelValues) {
17
+ HdsPaginationDirectionLabelValues["Prev"] = "Previous";
18
+ HdsPaginationDirectionLabelValues["Next"] = "Next";
19
+ return HdsPaginationDirectionLabelValues;
20
+ }({});
21
+
22
+ export { HdsPaginationDirectionAriaLabelValues, HdsPaginationDirectionLabelValues, HdsPaginationDirectionValues };
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/hds/pagination/types.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { HdsInteractiveSignature } from '../interactive';\n\nexport enum HdsPaginationDirectionValues {\n Next = 'next',\n Prev = 'prev',\n}\n\nexport type HdsPaginationDirections = `${HdsPaginationDirectionValues}`;\n\nexport type HdsPaginationPage = HdsPaginationDirections | number;\n\nexport enum HdsPaginationDirectionAriaLabelValues {\n Prev = 'Previous page',\n Next = 'Next page',\n}\n\nexport type HdsPaginationDirectionAriaLabels =\n `${HdsPaginationDirectionAriaLabelValues}`;\n\nexport enum HdsPaginationDirectionLabelValues {\n Prev = 'Previous',\n Next = 'Next',\n}\n\nexport type HdsPaginationDirectionLabels =\n `${HdsPaginationDirectionLabelValues}`;\n\nexport type HdsPaginationElliptizedPageArrayItem = string | number;\n\nexport type HdsPaginationElliptizedPageArray =\n HdsPaginationElliptizedPageArrayItem[];\n\nexport type HdsPaginationRoutingProps = Pick<\n HdsInteractiveSignature['Args'],\n 'route' | 'model' | 'models' | 'replace'\n>;\n"],"names":["HdsPaginationDirectionValues","HdsPaginationDirectionAriaLabelValues","HdsPaginationDirectionLabelValues"],"mappings":"AAAA;AACA;AACA;AACA;;AAIYA,IAAAA,4BAA4B,0BAA5BA,4BAA4B,EAAA;EAA5BA,4BAA4B,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;EAA5BA,4BAA4B,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAA5BA,4BAA4B,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAS5BC,IAAAA,qCAAqC,0BAArCA,qCAAqC,EAAA;EAArCA,qCAAqC,CAAA,MAAA,CAAA,GAAA,eAAA,CAAA;EAArCA,qCAAqC,CAAA,MAAA,CAAA,GAAA,WAAA,CAAA;AAAA,EAAA,OAArCA,qCAAqC,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAQrCC,IAAAA,iCAAiC,0BAAjCA,iCAAiC,EAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,UAAA,CAAA;EAAjCA,iCAAiC,CAAA,MAAA,CAAA,GAAA,MAAA,CAAA;AAAA,EAAA,OAAjCA,iCAAiC,CAAA;AAAA,CAAA,CAAA,EAAA;;;;"}