@cimpress-ui/react 0.2.1 → 0.3.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 (1525) hide show
  1. package/README.md +1 -1
  2. package/dist/commonjs/components/badge/badge.d.ts +31 -0
  3. package/dist/commonjs/components/badge/badge.d.ts.map +1 -0
  4. package/dist/commonjs/components/badge/badge.js +26 -0
  5. package/dist/commonjs/components/badge/badge.js.map +1 -0
  6. package/dist/commonjs/components/breadcrumbs/breadcrumbs.js +1 -1
  7. package/dist/commonjs/components/breadcrumbs/breadcrumbs.js.map +1 -1
  8. package/dist/commonjs/components/button/button.js +1 -1
  9. package/dist/commonjs/components/button/button.js.map +1 -1
  10. package/dist/commonjs/components/button/link-button.js +1 -1
  11. package/dist/commonjs/components/button/link-button.js.map +1 -1
  12. package/dist/commonjs/components/button/types.d.ts +3 -3
  13. package/dist/commonjs/components/button/types.d.ts.map +1 -1
  14. package/dist/commonjs/components/button/types.js.map +1 -1
  15. package/dist/commonjs/components/card/card.d.ts +5 -0
  16. package/dist/commonjs/components/card/card.d.ts.map +1 -1
  17. package/dist/commonjs/components/card/card.js +5 -0
  18. package/dist/commonjs/components/card/card.js.map +1 -1
  19. package/dist/commonjs/components/checkbox/checkbox.d.ts +2 -2
  20. package/dist/commonjs/components/checkbox/checkbox.d.ts.map +1 -1
  21. package/dist/commonjs/components/checkbox/checkbox.js +1 -1
  22. package/dist/commonjs/components/checkbox/checkbox.js.map +1 -1
  23. package/dist/commonjs/components/combo-box/combo-box.js +2 -2
  24. package/dist/commonjs/components/combo-box/combo-box.js.map +1 -1
  25. package/dist/commonjs/components/disclosure/disclosure-group.d.ts +7 -2
  26. package/dist/commonjs/components/disclosure/disclosure-group.d.ts.map +1 -1
  27. package/dist/commonjs/components/disclosure/disclosure-group.js +5 -0
  28. package/dist/commonjs/components/disclosure/disclosure-group.js.map +1 -1
  29. package/dist/commonjs/components/disclosure/disclosure.d.ts +12 -7
  30. package/dist/commonjs/components/disclosure/disclosure.d.ts.map +1 -1
  31. package/dist/commonjs/components/disclosure/disclosure.js +7 -2
  32. package/dist/commonjs/components/disclosure/disclosure.js.map +1 -1
  33. package/dist/commonjs/components/form/form.d.ts +2 -2
  34. package/dist/commonjs/components/form/form.d.ts.map +1 -1
  35. package/dist/commonjs/components/form/form.js.map +1 -1
  36. package/dist/commonjs/components/internal/focusable-container/focusable-container.d.ts +2 -0
  37. package/dist/commonjs/components/internal/focusable-container/focusable-container.d.ts.map +1 -0
  38. package/dist/commonjs/components/internal/focusable-container/focusable-container.js +49 -0
  39. package/dist/commonjs/components/internal/focusable-container/focusable-container.js.map +1 -0
  40. package/dist/commonjs/components/internal/form-field/form-field.js +2 -2
  41. package/dist/commonjs/components/internal/form-field/form-field.js.map +1 -1
  42. package/dist/commonjs/components/internal/spinner/spinner.js.map +1 -1
  43. package/dist/commonjs/components/menu/menu.d.ts +18 -12
  44. package/dist/commonjs/components/menu/menu.d.ts.map +1 -1
  45. package/dist/commonjs/components/menu/menu.js +13 -26
  46. package/dist/commonjs/components/menu/menu.js.map +1 -1
  47. package/dist/commonjs/components/modal/modal.d.ts +54 -9
  48. package/dist/commonjs/components/modal/modal.d.ts.map +1 -1
  49. package/dist/commonjs/components/modal/modal.js +23 -8
  50. package/dist/commonjs/components/modal/modal.js.map +1 -1
  51. package/dist/commonjs/components/nav-tabs/nav-tabs.d.ts +2 -2
  52. package/dist/commonjs/components/nav-tabs/nav-tabs.d.ts.map +1 -1
  53. package/dist/commonjs/components/nav-tabs/nav-tabs.js.map +1 -1
  54. package/dist/commonjs/components/number-field/number-field.d.ts +12 -4
  55. package/dist/commonjs/components/number-field/number-field.d.ts.map +1 -1
  56. package/dist/commonjs/components/number-field/number-field.js +12 -6
  57. package/dist/commonjs/components/number-field/number-field.js.map +1 -1
  58. package/dist/commonjs/components/pagination/action-pagination.d.ts +2 -0
  59. package/dist/commonjs/components/pagination/action-pagination.d.ts.map +1 -0
  60. package/dist/commonjs/components/pagination/action-pagination.js +27 -0
  61. package/dist/commonjs/components/pagination/action-pagination.js.map +1 -0
  62. package/dist/commonjs/components/pagination/base-pagination.d.ts +10 -0
  63. package/dist/commonjs/components/pagination/base-pagination.d.ts.map +1 -0
  64. package/dist/commonjs/components/pagination/base-pagination.js +73 -0
  65. package/dist/commonjs/components/pagination/base-pagination.js.map +1 -0
  66. package/dist/commonjs/components/pagination/link-pagination.d.ts +2 -0
  67. package/dist/commonjs/components/pagination/link-pagination.d.ts.map +1 -0
  68. package/dist/commonjs/components/pagination/link-pagination.js +60 -0
  69. package/dist/commonjs/components/pagination/link-pagination.js.map +1 -0
  70. package/dist/commonjs/components/pagination/pagination.d.ts +14 -8
  71. package/dist/commonjs/components/pagination/pagination.d.ts.map +1 -1
  72. package/dist/commonjs/components/pagination/pagination.js +36 -62
  73. package/dist/commonjs/components/pagination/pagination.js.map +1 -1
  74. package/dist/commonjs/components/popover/popover.d.ts +54 -0
  75. package/dist/commonjs/components/popover/popover.d.ts.map +1 -0
  76. package/dist/commonjs/components/popover/popover.js +40 -0
  77. package/dist/commonjs/components/popover/popover.js.map +1 -0
  78. package/dist/commonjs/components/radio/radio.d.ts +2 -2
  79. package/dist/commonjs/components/radio/radio.d.ts.map +1 -1
  80. package/dist/commonjs/components/radio/radio.js.map +1 -1
  81. package/dist/commonjs/components/select/select.js +2 -2
  82. package/dist/commonjs/components/select/select.js.map +1 -1
  83. package/dist/commonjs/components/table/contexts/column-collection.d.ts +21 -0
  84. package/dist/commonjs/components/table/contexts/column-collection.d.ts.map +1 -0
  85. package/dist/commonjs/components/table/contexts/column-collection.js +73 -0
  86. package/dist/commonjs/components/table/contexts/column-collection.js.map +1 -0
  87. package/dist/commonjs/components/table/contexts/row-state.d.ts +5 -1
  88. package/dist/commonjs/components/table/contexts/row-state.d.ts.map +1 -1
  89. package/dist/commonjs/components/table/contexts/row-state.js +6 -2
  90. package/dist/commonjs/components/table/contexts/row-state.js.map +1 -1
  91. package/dist/commonjs/components/table/contexts/table-state.d.ts +21 -0
  92. package/dist/commonjs/components/table/contexts/table-state.d.ts.map +1 -0
  93. package/dist/commonjs/components/table/contexts/table-state.js +47 -0
  94. package/dist/commonjs/components/table/contexts/table-state.js.map +1 -0
  95. package/dist/commonjs/components/table/hooks/use-selectable-row.d.ts +6 -0
  96. package/dist/commonjs/components/table/hooks/use-selectable-row.d.ts.map +1 -0
  97. package/dist/commonjs/components/table/hooks/use-selectable-row.js +40 -0
  98. package/dist/commonjs/components/table/hooks/use-selectable-row.js.map +1 -0
  99. package/dist/commonjs/components/table/hooks/use-table-cell.d.ts +1 -1
  100. package/dist/commonjs/components/table/hooks/use-table-cell.d.ts.map +1 -1
  101. package/dist/commonjs/components/table/hooks/use-table-cell.js +34 -15
  102. package/dist/commonjs/components/table/hooks/use-table-cell.js.map +1 -1
  103. package/dist/commonjs/components/table/hooks/use-table.d.ts +1 -1
  104. package/dist/commonjs/components/table/hooks/use-table.d.ts.map +1 -1
  105. package/dist/commonjs/components/table/hooks/use-table.js +22 -8
  106. package/dist/commonjs/components/table/hooks/use-table.js.map +1 -1
  107. package/dist/commonjs/components/table/table-all-rows-selector.d.ts +11 -0
  108. package/dist/commonjs/components/table/table-all-rows-selector.d.ts.map +1 -0
  109. package/dist/commonjs/components/table/table-all-rows-selector.js +23 -0
  110. package/dist/commonjs/components/table/table-all-rows-selector.js.map +1 -0
  111. package/dist/commonjs/components/table/table-body-cell.d.ts +9 -16
  112. package/dist/commonjs/components/table/table-body-cell.d.ts.map +1 -1
  113. package/dist/commonjs/components/table/table-body-cell.js +13 -5
  114. package/dist/commonjs/components/table/table-body-cell.js.map +1 -1
  115. package/dist/commonjs/components/table/table-body-row.d.ts +40 -0
  116. package/dist/commonjs/components/table/table-body-row.d.ts.map +1 -0
  117. package/dist/commonjs/components/table/table-body-row.js +28 -0
  118. package/dist/commonjs/components/table/table-body-row.js.map +1 -0
  119. package/dist/commonjs/components/table/table-body.d.ts +9 -3
  120. package/dist/commonjs/components/table/table-body.d.ts.map +1 -1
  121. package/dist/commonjs/components/table/table-body.js +10 -4
  122. package/dist/commonjs/components/table/table-body.js.map +1 -1
  123. package/dist/commonjs/components/table/table-container.d.ts +11 -5
  124. package/dist/commonjs/components/table/table-container.d.ts.map +1 -1
  125. package/dist/commonjs/components/table/table-container.js +12 -29
  126. package/dist/commonjs/components/table/table-container.js.map +1 -1
  127. package/dist/commonjs/components/table/table-empty-state.d.ts +18 -0
  128. package/dist/commonjs/components/table/table-empty-state.d.ts.map +1 -0
  129. package/dist/commonjs/components/table/table-empty-state.js +36 -0
  130. package/dist/commonjs/components/table/table-empty-state.js.map +1 -0
  131. package/dist/commonjs/components/table/table-header-cell.d.ts +33 -4
  132. package/dist/commonjs/components/table/table-header-cell.d.ts.map +1 -1
  133. package/dist/commonjs/components/table/table-header-cell.js +36 -5
  134. package/dist/commonjs/components/table/table-header-cell.js.map +1 -1
  135. package/dist/commonjs/components/table/{table-row.d.ts → table-header-row.d.ts} +10 -4
  136. package/dist/commonjs/components/table/table-header-row.d.ts.map +1 -0
  137. package/dist/commonjs/components/table/{table-row.js → table-header-row.js} +11 -5
  138. package/dist/commonjs/components/table/table-header-row.js.map +1 -0
  139. package/dist/commonjs/components/table/table-header.d.ts +9 -3
  140. package/dist/commonjs/components/table/table-header.d.ts.map +1 -1
  141. package/dist/commonjs/components/table/table-header.js +10 -4
  142. package/dist/commonjs/components/table/table-header.js.map +1 -1
  143. package/dist/commonjs/components/table/table-row-selector.d.ts +11 -0
  144. package/dist/commonjs/components/table/table-row-selector.d.ts.map +1 -0
  145. package/dist/commonjs/components/table/table-row-selector.js +25 -0
  146. package/dist/commonjs/components/table/table-row-selector.js.map +1 -0
  147. package/dist/commonjs/components/table/table.d.ts +34 -5
  148. package/dist/commonjs/components/table/table.d.ts.map +1 -1
  149. package/dist/commonjs/components/table/table.js +15 -7
  150. package/dist/commonjs/components/table/table.js.map +1 -1
  151. package/dist/commonjs/components/tag/tag-group.d.ts +7 -4
  152. package/dist/commonjs/components/tag/tag-group.d.ts.map +1 -1
  153. package/dist/commonjs/components/tag/tag-group.js +4 -4
  154. package/dist/commonjs/components/tag/tag-group.js.map +1 -1
  155. package/dist/commonjs/components/tag/tag.d.ts +10 -9
  156. package/dist/commonjs/components/tag/tag.d.ts.map +1 -1
  157. package/dist/commonjs/components/tag/tag.js +11 -6
  158. package/dist/commonjs/components/tag/tag.js.map +1 -1
  159. package/dist/commonjs/components/text-inputs/text-area.d.ts +5 -1
  160. package/dist/commonjs/components/text-inputs/text-area.d.ts.map +1 -1
  161. package/dist/commonjs/components/text-inputs/text-area.js +5 -2
  162. package/dist/commonjs/components/text-inputs/text-area.js.map +1 -1
  163. package/dist/commonjs/components/tooltip/tooltip.d.ts +10 -2
  164. package/dist/commonjs/components/tooltip/tooltip.d.ts.map +1 -1
  165. package/dist/commonjs/components/tooltip/tooltip.js +11 -3
  166. package/dist/commonjs/components/tooltip/tooltip.js.map +1 -1
  167. package/dist/commonjs/components/types.d.ts +3 -3
  168. package/dist/commonjs/components/types.d.ts.map +1 -1
  169. package/dist/commonjs/components/types.js.map +1 -1
  170. package/dist/commonjs/components/typography/types.d.ts +2 -2
  171. package/dist/commonjs/components/typography/types.d.ts.map +1 -1
  172. package/dist/commonjs/components/typography/types.js.map +1 -1
  173. package/dist/commonjs/icons/{minus-small.d.ts → action-redo.d.ts} +3 -3
  174. package/dist/commonjs/icons/action-redo.d.ts.map +1 -0
  175. package/dist/commonjs/icons/action-redo.js +24 -0
  176. package/dist/commonjs/icons/action-redo.js.map +1 -0
  177. package/dist/commonjs/icons/action-undo.d.ts +8 -0
  178. package/dist/commonjs/icons/action-undo.d.ts.map +1 -0
  179. package/dist/commonjs/icons/action-undo.js +24 -0
  180. package/dist/commonjs/icons/action-undo.js.map +1 -0
  181. package/dist/commonjs/icons/{checkmark.d.ts → add-bold.d.ts} +3 -3
  182. package/dist/commonjs/icons/add-bold.d.ts.map +1 -0
  183. package/dist/commonjs/icons/{alert-triangle.js → add-bold.js} +6 -6
  184. package/dist/commonjs/icons/add-bold.js.map +1 -0
  185. package/dist/commonjs/icons/add-circle-fill.js +1 -1
  186. package/dist/commonjs/icons/add-circle-fill.js.map +1 -1
  187. package/dist/commonjs/icons/add-circle.js +1 -1
  188. package/dist/commonjs/icons/add-circle.js.map +1 -1
  189. package/dist/commonjs/icons/add-square-fill.d.ts +8 -0
  190. package/dist/commonjs/icons/add-square-fill.d.ts.map +1 -0
  191. package/dist/commonjs/icons/add-square-fill.js +24 -0
  192. package/dist/commonjs/icons/add-square-fill.js.map +1 -0
  193. package/dist/commonjs/icons/add-square.d.ts +8 -0
  194. package/dist/commonjs/icons/add-square.d.ts.map +1 -0
  195. package/dist/commonjs/icons/add-square.js +24 -0
  196. package/dist/commonjs/icons/add-square.js.map +1 -0
  197. package/dist/commonjs/icons/add.d.ts.map +1 -1
  198. package/dist/commonjs/icons/add.js +1 -1
  199. package/dist/commonjs/icons/add.js.map +1 -1
  200. package/dist/commonjs/icons/{checkmark-small.d.ts → analytics-graph.d.ts} +3 -3
  201. package/dist/commonjs/icons/analytics-graph.d.ts.map +1 -0
  202. package/dist/commonjs/icons/analytics-graph.js +24 -0
  203. package/dist/commonjs/icons/analytics-graph.js.map +1 -0
  204. package/dist/commonjs/icons/analytics-pie-fill.d.ts +8 -0
  205. package/dist/commonjs/icons/analytics-pie-fill.d.ts.map +1 -0
  206. package/dist/commonjs/icons/{checkmark-circle.js → analytics-pie-fill.js} +6 -6
  207. package/dist/commonjs/icons/analytics-pie-fill.js.map +1 -0
  208. package/dist/commonjs/icons/analytics-pie.d.ts +8 -0
  209. package/dist/commonjs/icons/analytics-pie.d.ts.map +1 -0
  210. package/dist/commonjs/icons/analytics-pie.js +24 -0
  211. package/dist/commonjs/icons/analytics-pie.js.map +1 -0
  212. package/dist/commonjs/icons/app-window-layout.d.ts +8 -0
  213. package/dist/commonjs/icons/app-window-layout.d.ts.map +1 -0
  214. package/dist/commonjs/icons/app-window-layout.js +24 -0
  215. package/dist/commonjs/icons/app-window-layout.js.map +1 -0
  216. package/dist/commonjs/icons/app-window-next.d.ts +8 -0
  217. package/dist/commonjs/icons/app-window-next.d.ts.map +1 -0
  218. package/dist/commonjs/icons/app-window-next.js +24 -0
  219. package/dist/commonjs/icons/app-window-next.js.map +1 -0
  220. package/dist/commonjs/icons/app-window-search.d.ts +8 -0
  221. package/dist/commonjs/icons/app-window-search.d.ts.map +1 -0
  222. package/dist/commonjs/icons/app-window-search.js +24 -0
  223. package/dist/commonjs/icons/app-window-search.js.map +1 -0
  224. package/dist/commonjs/icons/arrow-down-bold.d.ts +8 -0
  225. package/dist/commonjs/icons/arrow-down-bold.d.ts.map +1 -0
  226. package/dist/commonjs/icons/arrow-down-bold.js +24 -0
  227. package/dist/commonjs/icons/arrow-down-bold.js.map +1 -0
  228. package/dist/commonjs/icons/arrow-down.d.ts +8 -0
  229. package/dist/commonjs/icons/arrow-down.d.ts.map +1 -0
  230. package/dist/commonjs/icons/{checkmark.js → arrow-down.js} +6 -6
  231. package/dist/commonjs/icons/arrow-down.js.map +1 -0
  232. package/dist/commonjs/icons/arrow-left-bold.d.ts +8 -0
  233. package/dist/commonjs/icons/arrow-left-bold.d.ts.map +1 -0
  234. package/dist/commonjs/icons/arrow-left-bold.js +24 -0
  235. package/dist/commonjs/icons/arrow-left-bold.js.map +1 -0
  236. package/dist/commonjs/icons/arrow-left.d.ts +8 -0
  237. package/dist/commonjs/icons/arrow-left.d.ts.map +1 -0
  238. package/dist/commonjs/icons/arrow-left.js +24 -0
  239. package/dist/commonjs/icons/arrow-left.js.map +1 -0
  240. package/dist/commonjs/icons/arrow-right-bold.d.ts +8 -0
  241. package/dist/commonjs/icons/arrow-right-bold.d.ts.map +1 -0
  242. package/dist/commonjs/icons/{checkmark-small.js → arrow-right-bold.js} +6 -6
  243. package/dist/commonjs/icons/arrow-right-bold.js.map +1 -0
  244. package/dist/commonjs/icons/arrow-right.d.ts +8 -0
  245. package/dist/commonjs/icons/arrow-right.d.ts.map +1 -0
  246. package/dist/commonjs/icons/arrow-right.js +24 -0
  247. package/dist/commonjs/icons/arrow-right.js.map +1 -0
  248. package/dist/commonjs/icons/arrow-up-bold.d.ts +8 -0
  249. package/dist/commonjs/icons/arrow-up-bold.d.ts.map +1 -0
  250. package/dist/commonjs/icons/arrow-up-bold.js +24 -0
  251. package/dist/commonjs/icons/arrow-up-bold.js.map +1 -0
  252. package/dist/{esm/icons/checkmark.d.ts → commonjs/icons/arrow-up.d.ts} +3 -3
  253. package/dist/commonjs/icons/arrow-up.d.ts.map +1 -0
  254. package/dist/commonjs/icons/arrow-up.js +24 -0
  255. package/dist/commonjs/icons/arrow-up.js.map +1 -0
  256. package/dist/commonjs/icons/attachment.d.ts +8 -0
  257. package/dist/commonjs/icons/attachment.d.ts.map +1 -0
  258. package/dist/commonjs/icons/attachment.js +24 -0
  259. package/dist/commonjs/icons/attachment.js.map +1 -0
  260. package/dist/commonjs/icons/barcode.d.ts +8 -0
  261. package/dist/commonjs/icons/barcode.d.ts.map +1 -0
  262. package/dist/commonjs/icons/barcode.js +24 -0
  263. package/dist/commonjs/icons/barcode.js.map +1 -0
  264. package/dist/commonjs/icons/bell-off.d.ts +8 -0
  265. package/dist/commonjs/icons/bell-off.d.ts.map +1 -0
  266. package/dist/commonjs/icons/bell-off.js +24 -0
  267. package/dist/commonjs/icons/bell-off.js.map +1 -0
  268. package/dist/commonjs/icons/{minus.d.ts → bell.d.ts} +3 -3
  269. package/dist/commonjs/icons/bell.d.ts.map +1 -0
  270. package/dist/commonjs/icons/bell.js +24 -0
  271. package/dist/commonjs/icons/bell.js.map +1 -0
  272. package/dist/commonjs/icons/book-open-fill.d.ts +8 -0
  273. package/dist/commonjs/icons/book-open-fill.d.ts.map +1 -0
  274. package/dist/commonjs/icons/book-open-fill.js +24 -0
  275. package/dist/commonjs/icons/book-open-fill.js.map +1 -0
  276. package/dist/commonjs/icons/book-open.d.ts +8 -0
  277. package/dist/commonjs/icons/book-open.d.ts.map +1 -0
  278. package/dist/commonjs/icons/book-open.js +24 -0
  279. package/dist/commonjs/icons/book-open.js.map +1 -0
  280. package/dist/commonjs/icons/brackets.d.ts +8 -0
  281. package/dist/commonjs/icons/brackets.d.ts.map +1 -0
  282. package/dist/commonjs/icons/brackets.js +24 -0
  283. package/dist/commonjs/icons/brackets.js.map +1 -0
  284. package/dist/commonjs/icons/calculator-alt.d.ts.map +1 -1
  285. package/dist/commonjs/icons/calculator-alt.js +1 -1
  286. package/dist/commonjs/icons/calculator-alt.js.map +1 -1
  287. package/dist/commonjs/icons/calculator.d.ts.map +1 -1
  288. package/dist/commonjs/icons/calculator.js +1 -1
  289. package/dist/commonjs/icons/calculator.js.map +1 -1
  290. package/dist/commonjs/icons/{alert-triangle.d.ts → calendar-empty.d.ts} +3 -3
  291. package/dist/commonjs/icons/calendar-empty.d.ts.map +1 -0
  292. package/dist/commonjs/icons/calendar-empty.js +24 -0
  293. package/dist/commonjs/icons/calendar-empty.js.map +1 -0
  294. package/dist/commonjs/icons/calendar-fill.d.ts +8 -0
  295. package/dist/commonjs/icons/calendar-fill.d.ts.map +1 -0
  296. package/dist/commonjs/icons/calendar-fill.js +24 -0
  297. package/dist/commonjs/icons/calendar-fill.js.map +1 -0
  298. package/dist/commonjs/icons/calendar.d.ts +8 -0
  299. package/dist/commonjs/icons/calendar.d.ts.map +1 -0
  300. package/dist/commonjs/icons/calendar.js +24 -0
  301. package/dist/commonjs/icons/calendar.js.map +1 -0
  302. package/dist/commonjs/icons/{checkmark-circle.d.ts → category-apparel.d.ts} +3 -3
  303. package/dist/commonjs/icons/category-apparel.d.ts.map +1 -0
  304. package/dist/commonjs/icons/category-apparel.js +24 -0
  305. package/dist/commonjs/icons/category-apparel.js.map +1 -0
  306. package/dist/commonjs/icons/category-bag.d.ts +8 -0
  307. package/dist/commonjs/icons/category-bag.d.ts.map +1 -0
  308. package/dist/commonjs/icons/category-bag.js +24 -0
  309. package/dist/commonjs/icons/category-bag.js.map +1 -0
  310. package/dist/commonjs/icons/category-book.d.ts +8 -0
  311. package/dist/commonjs/icons/category-book.d.ts.map +1 -0
  312. package/dist/commonjs/icons/category-book.js +24 -0
  313. package/dist/commonjs/icons/category-book.js.map +1 -0
  314. package/dist/commonjs/icons/category-gift.d.ts +8 -0
  315. package/dist/commonjs/icons/category-gift.d.ts.map +1 -0
  316. package/dist/commonjs/icons/category-gift.js +24 -0
  317. package/dist/commonjs/icons/category-gift.js.map +1 -0
  318. package/dist/commonjs/icons/{checkmark-circle-fill.d.ts → category-large-format.d.ts} +3 -3
  319. package/dist/commonjs/icons/category-large-format.d.ts.map +1 -0
  320. package/dist/commonjs/icons/category-large-format.js +24 -0
  321. package/dist/commonjs/icons/category-large-format.js.map +1 -0
  322. package/dist/commonjs/icons/category-newspaper.d.ts +8 -0
  323. package/dist/commonjs/icons/category-newspaper.d.ts.map +1 -0
  324. package/dist/commonjs/icons/category-newspaper.js +24 -0
  325. package/dist/commonjs/icons/category-newspaper.js.map +1 -0
  326. package/dist/commonjs/icons/category-package.d.ts +8 -0
  327. package/dist/commonjs/icons/category-package.d.ts.map +1 -0
  328. package/dist/commonjs/icons/category-package.js +24 -0
  329. package/dist/commonjs/icons/category-package.js.map +1 -0
  330. package/dist/commonjs/icons/category-promo-product.d.ts +8 -0
  331. package/dist/commonjs/icons/category-promo-product.d.ts.map +1 -0
  332. package/dist/commonjs/icons/category-promo-product.js +24 -0
  333. package/dist/commonjs/icons/category-promo-product.js.map +1 -0
  334. package/dist/commonjs/icons/category-small-format.d.ts +8 -0
  335. package/dist/commonjs/icons/category-small-format.d.ts.map +1 -0
  336. package/dist/commonjs/icons/category-small-format.js +24 -0
  337. package/dist/commonjs/icons/category-small-format.js.map +1 -0
  338. package/dist/commonjs/icons/check-badge-fill.d.ts +8 -0
  339. package/dist/commonjs/icons/check-badge-fill.d.ts.map +1 -0
  340. package/dist/commonjs/icons/check-badge-fill.js +24 -0
  341. package/dist/commonjs/icons/check-badge-fill.js.map +1 -0
  342. package/dist/commonjs/icons/check-badge.d.ts +8 -0
  343. package/dist/commonjs/icons/check-badge.d.ts.map +1 -0
  344. package/dist/commonjs/icons/check-badge.js +24 -0
  345. package/dist/commonjs/icons/check-badge.js.map +1 -0
  346. package/dist/commonjs/icons/check-bold.d.ts +8 -0
  347. package/dist/commonjs/icons/check-bold.d.ts.map +1 -0
  348. package/dist/commonjs/icons/check-bold.js +24 -0
  349. package/dist/commonjs/icons/check-bold.js.map +1 -0
  350. package/dist/commonjs/icons/check-circle-fill.d.ts +8 -0
  351. package/dist/commonjs/icons/check-circle-fill.d.ts.map +1 -0
  352. package/dist/commonjs/icons/check-circle-fill.js +24 -0
  353. package/dist/commonjs/icons/check-circle-fill.js.map +1 -0
  354. package/dist/commonjs/icons/check-circle.d.ts +8 -0
  355. package/dist/commonjs/icons/check-circle.d.ts.map +1 -0
  356. package/dist/commonjs/icons/check-circle.js +24 -0
  357. package/dist/commonjs/icons/check-circle.js.map +1 -0
  358. package/dist/commonjs/icons/check-square-fill.d.ts +8 -0
  359. package/dist/commonjs/icons/check-square-fill.d.ts.map +1 -0
  360. package/dist/commonjs/icons/check-square-fill.js +24 -0
  361. package/dist/commonjs/icons/check-square-fill.js.map +1 -0
  362. package/dist/commonjs/icons/check-square.d.ts +8 -0
  363. package/dist/commonjs/icons/check-square.d.ts.map +1 -0
  364. package/dist/commonjs/icons/{unstable-close.js → check-square.js} +6 -6
  365. package/dist/commonjs/icons/check-square.js.map +1 -0
  366. package/dist/{esm/icons/minus.d.ts → commonjs/icons/check.d.ts} +3 -3
  367. package/dist/commonjs/icons/check.d.ts.map +1 -0
  368. package/dist/commonjs/icons/check.js +24 -0
  369. package/dist/commonjs/icons/check.js.map +1 -0
  370. package/dist/commonjs/icons/chevron-down-bold.d.ts +8 -0
  371. package/dist/commonjs/icons/chevron-down-bold.d.ts.map +1 -0
  372. package/dist/commonjs/icons/{chevron-down-fill.js → chevron-down-bold.js} +6 -6
  373. package/dist/commonjs/icons/{chevron-down-fill.js.map → chevron-down-bold.js.map} +1 -1
  374. package/dist/commonjs/icons/chevron-down.d.ts +8 -0
  375. package/dist/commonjs/icons/chevron-down.d.ts.map +1 -0
  376. package/dist/commonjs/icons/chevron-down.js +24 -0
  377. package/dist/commonjs/icons/chevron-down.js.map +1 -0
  378. package/dist/commonjs/icons/chevron-expand-bold.d.ts +8 -0
  379. package/dist/commonjs/icons/chevron-expand-bold.d.ts.map +1 -0
  380. package/dist/commonjs/icons/chevron-expand-bold.js +24 -0
  381. package/dist/commonjs/icons/chevron-expand-bold.js.map +1 -0
  382. package/dist/commonjs/icons/chevron-expand.d.ts +8 -0
  383. package/dist/commonjs/icons/chevron-expand.d.ts.map +1 -0
  384. package/dist/commonjs/icons/chevron-expand.js +24 -0
  385. package/dist/commonjs/icons/chevron-expand.js.map +1 -0
  386. package/dist/commonjs/icons/chevron-left-bold.d.ts +8 -0
  387. package/dist/commonjs/icons/chevron-left-bold.d.ts.map +1 -0
  388. package/dist/commonjs/icons/chevron-left-bold.js +24 -0
  389. package/dist/commonjs/icons/chevron-left-bold.js.map +1 -0
  390. package/dist/commonjs/icons/chevron-left.d.ts +8 -0
  391. package/dist/commonjs/icons/chevron-left.d.ts.map +1 -0
  392. package/dist/commonjs/icons/chevron-left.js +24 -0
  393. package/dist/commonjs/icons/chevron-left.js.map +1 -0
  394. package/dist/commonjs/icons/chevron-right-bold.d.ts +8 -0
  395. package/dist/commonjs/icons/chevron-right-bold.d.ts.map +1 -0
  396. package/dist/commonjs/icons/chevron-right-bold.js +24 -0
  397. package/dist/commonjs/icons/chevron-right-bold.js.map +1 -0
  398. package/dist/commonjs/icons/chevron-right.d.ts +8 -0
  399. package/dist/commonjs/icons/chevron-right.d.ts.map +1 -0
  400. package/dist/commonjs/icons/chevron-right.js +24 -0
  401. package/dist/commonjs/icons/chevron-right.js.map +1 -0
  402. package/dist/commonjs/icons/chevron-up-bold.d.ts +8 -0
  403. package/dist/commonjs/icons/chevron-up-bold.d.ts.map +1 -0
  404. package/dist/commonjs/icons/chevron-up-bold.js +24 -0
  405. package/dist/commonjs/icons/chevron-up-bold.js.map +1 -0
  406. package/dist/commonjs/icons/chevron-up.d.ts +8 -0
  407. package/dist/commonjs/icons/chevron-up.d.ts.map +1 -0
  408. package/dist/commonjs/icons/chevron-up.js +24 -0
  409. package/dist/commonjs/icons/chevron-up.js.map +1 -0
  410. package/dist/commonjs/icons/circle-bold-fill.d.ts +8 -0
  411. package/dist/commonjs/icons/circle-bold-fill.d.ts.map +1 -0
  412. package/dist/commonjs/icons/{minus.js → circle-bold-fill.js} +6 -6
  413. package/dist/commonjs/icons/circle-bold-fill.js.map +1 -0
  414. package/dist/commonjs/icons/close-bold.d.ts +8 -0
  415. package/dist/commonjs/icons/close-bold.d.ts.map +1 -0
  416. package/dist/commonjs/icons/close-bold.js +24 -0
  417. package/dist/commonjs/icons/close-bold.js.map +1 -0
  418. package/dist/commonjs/icons/close-circle-fill.d.ts +8 -0
  419. package/dist/commonjs/icons/close-circle-fill.d.ts.map +1 -0
  420. package/dist/commonjs/icons/close-circle-fill.js +24 -0
  421. package/dist/commonjs/icons/close-circle-fill.js.map +1 -0
  422. package/dist/commonjs/icons/close.d.ts +8 -0
  423. package/dist/commonjs/icons/close.d.ts.map +1 -0
  424. package/dist/commonjs/icons/close.js +24 -0
  425. package/dist/commonjs/icons/close.js.map +1 -0
  426. package/dist/commonjs/icons/coins-bill.d.ts +8 -0
  427. package/dist/commonjs/icons/coins-bill.d.ts.map +1 -0
  428. package/dist/commonjs/icons/coins-bill.js +24 -0
  429. package/dist/commonjs/icons/coins-bill.js.map +1 -0
  430. package/dist/commonjs/icons/copy-paste.d.ts +8 -0
  431. package/dist/commonjs/icons/copy-paste.d.ts.map +1 -0
  432. package/dist/commonjs/icons/copy-paste.js +24 -0
  433. package/dist/commonjs/icons/copy-paste.js.map +1 -0
  434. package/dist/commonjs/icons/copy.d.ts +8 -0
  435. package/dist/commonjs/icons/copy.d.ts.map +1 -0
  436. package/dist/commonjs/icons/copy.js +24 -0
  437. package/dist/commonjs/icons/copy.js.map +1 -0
  438. package/dist/commonjs/icons/delivery-box.d.ts +8 -0
  439. package/dist/commonjs/icons/delivery-box.d.ts.map +1 -0
  440. package/dist/commonjs/icons/delivery-box.js +24 -0
  441. package/dist/commonjs/icons/delivery-box.js.map +1 -0
  442. package/dist/commonjs/icons/delivery-plane.d.ts +8 -0
  443. package/dist/commonjs/icons/delivery-plane.d.ts.map +1 -0
  444. package/dist/commonjs/icons/delivery-plane.js +24 -0
  445. package/dist/commonjs/icons/delivery-plane.js.map +1 -0
  446. package/dist/commonjs/icons/delivery-truck-fill.d.ts +8 -0
  447. package/dist/commonjs/icons/delivery-truck-fill.d.ts.map +1 -0
  448. package/dist/commonjs/icons/delivery-truck-fill.js +24 -0
  449. package/dist/commonjs/icons/delivery-truck-fill.js.map +1 -0
  450. package/dist/commonjs/icons/delivery-truck.d.ts +8 -0
  451. package/dist/commonjs/icons/delivery-truck.d.ts.map +1 -0
  452. package/dist/commonjs/icons/delivery-truck.js +24 -0
  453. package/dist/commonjs/icons/delivery-truck.js.map +1 -0
  454. package/dist/commonjs/icons/download.d.ts +8 -0
  455. package/dist/commonjs/icons/download.d.ts.map +1 -0
  456. package/dist/commonjs/icons/download.js +24 -0
  457. package/dist/commonjs/icons/download.js.map +1 -0
  458. package/dist/commonjs/icons/email-open.d.ts +8 -0
  459. package/dist/commonjs/icons/email-open.d.ts.map +1 -0
  460. package/dist/commonjs/icons/email-open.js +24 -0
  461. package/dist/commonjs/icons/email-open.js.map +1 -0
  462. package/dist/commonjs/icons/email.d.ts +8 -0
  463. package/dist/commonjs/icons/email.d.ts.map +1 -0
  464. package/dist/commonjs/icons/email.js +24 -0
  465. package/dist/commonjs/icons/email.js.map +1 -0
  466. package/dist/commonjs/icons/file-finances.d.ts +8 -0
  467. package/dist/commonjs/icons/file-finances.d.ts.map +1 -0
  468. package/dist/commonjs/icons/file-finances.js +24 -0
  469. package/dist/commonjs/icons/file-finances.js.map +1 -0
  470. package/dist/commonjs/icons/home.d.ts +8 -0
  471. package/dist/commonjs/icons/home.d.ts.map +1 -0
  472. package/dist/commonjs/icons/home.js +24 -0
  473. package/dist/commonjs/icons/home.js.map +1 -0
  474. package/dist/commonjs/icons/image-fill.d.ts +8 -0
  475. package/dist/commonjs/icons/image-fill.d.ts.map +1 -0
  476. package/dist/commonjs/icons/image-fill.js +24 -0
  477. package/dist/commonjs/icons/image-fill.js.map +1 -0
  478. package/dist/commonjs/icons/image.d.ts +8 -0
  479. package/dist/commonjs/icons/image.d.ts.map +1 -0
  480. package/dist/commonjs/icons/image.js +24 -0
  481. package/dist/commonjs/icons/image.js.map +1 -0
  482. package/dist/commonjs/icons/index.d.ts +127 -15
  483. package/dist/commonjs/icons/index.d.ts.map +1 -1
  484. package/dist/commonjs/icons/index.js +257 -31
  485. package/dist/commonjs/icons/index.js.map +1 -1
  486. package/dist/commonjs/icons/info-circle-fill.js +1 -1
  487. package/dist/commonjs/icons/info-circle-fill.js.map +1 -1
  488. package/dist/commonjs/icons/info-circle.d.ts +8 -0
  489. package/dist/commonjs/icons/info-circle.d.ts.map +1 -0
  490. package/dist/commonjs/icons/{unstable-info-circle.js → info-circle.js} +6 -6
  491. package/dist/commonjs/icons/info-circle.js.map +1 -0
  492. package/dist/commonjs/icons/keyboard.d.ts +8 -0
  493. package/dist/commonjs/icons/keyboard.d.ts.map +1 -0
  494. package/dist/commonjs/icons/keyboard.js +24 -0
  495. package/dist/commonjs/icons/keyboard.js.map +1 -0
  496. package/dist/commonjs/icons/layers.d.ts +8 -0
  497. package/dist/commonjs/icons/layers.d.ts.map +1 -0
  498. package/dist/commonjs/icons/layers.js +24 -0
  499. package/dist/commonjs/icons/layers.js.map +1 -0
  500. package/dist/commonjs/icons/link.d.ts +8 -0
  501. package/dist/commonjs/icons/link.d.ts.map +1 -0
  502. package/dist/commonjs/icons/link.js +24 -0
  503. package/dist/commonjs/icons/link.js.map +1 -0
  504. package/dist/commonjs/icons/list-bullets.d.ts +8 -0
  505. package/dist/commonjs/icons/list-bullets.d.ts.map +1 -0
  506. package/dist/commonjs/icons/list-bullets.js +24 -0
  507. package/dist/commonjs/icons/list-bullets.js.map +1 -0
  508. package/dist/commonjs/icons/list-numbers.d.ts +8 -0
  509. package/dist/commonjs/icons/list-numbers.d.ts.map +1 -0
  510. package/dist/commonjs/icons/list-numbers.js +24 -0
  511. package/dist/commonjs/icons/list-numbers.js.map +1 -0
  512. package/dist/commonjs/icons/lock-fill.d.ts +8 -0
  513. package/dist/commonjs/icons/lock-fill.d.ts.map +1 -0
  514. package/dist/commonjs/icons/lock-fill.js +24 -0
  515. package/dist/commonjs/icons/lock-fill.js.map +1 -0
  516. package/dist/commonjs/icons/lock-open-fill.d.ts +8 -0
  517. package/dist/commonjs/icons/lock-open-fill.d.ts.map +1 -0
  518. package/dist/commonjs/icons/lock-open-fill.js +24 -0
  519. package/dist/commonjs/icons/lock-open-fill.js.map +1 -0
  520. package/dist/commonjs/icons/lock-open.d.ts +8 -0
  521. package/dist/commonjs/icons/lock-open.d.ts.map +1 -0
  522. package/dist/commonjs/icons/lock-open.js +24 -0
  523. package/dist/commonjs/icons/lock-open.js.map +1 -0
  524. package/dist/commonjs/icons/lock.d.ts +8 -0
  525. package/dist/commonjs/icons/lock.d.ts.map +1 -0
  526. package/dist/commonjs/icons/lock.js +24 -0
  527. package/dist/commonjs/icons/lock.js.map +1 -0
  528. package/dist/commonjs/icons/menu-bold.d.ts +8 -0
  529. package/dist/commonjs/icons/menu-bold.d.ts.map +1 -0
  530. package/dist/commonjs/icons/menu-bold.js +24 -0
  531. package/dist/commonjs/icons/menu-bold.js.map +1 -0
  532. package/dist/commonjs/icons/menu-grid.d.ts +8 -0
  533. package/dist/commonjs/icons/menu-grid.d.ts.map +1 -0
  534. package/dist/commonjs/icons/menu-grid.js +24 -0
  535. package/dist/commonjs/icons/menu-grid.js.map +1 -0
  536. package/dist/commonjs/icons/{accounting-document.d.ts → menu-more-horizontal.d.ts} +3 -3
  537. package/dist/commonjs/icons/menu-more-horizontal.d.ts.map +1 -0
  538. package/dist/commonjs/icons/menu-more-horizontal.js +24 -0
  539. package/dist/commonjs/icons/menu-more-horizontal.js.map +1 -0
  540. package/dist/commonjs/icons/menu-more-vertical.d.ts +8 -0
  541. package/dist/commonjs/icons/menu-more-vertical.d.ts.map +1 -0
  542. package/dist/commonjs/icons/menu-more-vertical.js +24 -0
  543. package/dist/commonjs/icons/menu-more-vertical.js.map +1 -0
  544. package/dist/commonjs/icons/menu.d.ts +8 -0
  545. package/dist/commonjs/icons/menu.d.ts.map +1 -0
  546. package/dist/commonjs/icons/menu.js +24 -0
  547. package/dist/commonjs/icons/menu.js.map +1 -0
  548. package/dist/commonjs/icons/pencil-fill.d.ts +8 -0
  549. package/dist/commonjs/icons/pencil-fill.d.ts.map +1 -0
  550. package/dist/commonjs/icons/pencil-fill.js +24 -0
  551. package/dist/commonjs/icons/pencil-fill.js.map +1 -0
  552. package/dist/commonjs/icons/pencil.d.ts +8 -0
  553. package/dist/commonjs/icons/pencil.d.ts.map +1 -0
  554. package/dist/commonjs/icons/pencil.js +24 -0
  555. package/dist/commonjs/icons/pencil.js.map +1 -0
  556. package/dist/commonjs/icons/placeholder.d.ts +8 -0
  557. package/dist/commonjs/icons/placeholder.d.ts.map +1 -0
  558. package/dist/commonjs/icons/{error-circle-fill.js → placeholder.js} +6 -6
  559. package/dist/commonjs/icons/placeholder.js.map +1 -0
  560. package/dist/commonjs/icons/question-circle-fill.d.ts +8 -0
  561. package/dist/commonjs/icons/question-circle-fill.d.ts.map +1 -0
  562. package/dist/commonjs/icons/question-circle-fill.js +24 -0
  563. package/dist/commonjs/icons/question-circle-fill.js.map +1 -0
  564. package/dist/commonjs/icons/question-circle.d.ts +8 -0
  565. package/dist/commonjs/icons/question-circle.d.ts.map +1 -0
  566. package/dist/commonjs/icons/question-circle.js +24 -0
  567. package/dist/commonjs/icons/question-circle.js.map +1 -0
  568. package/dist/commonjs/icons/rating-star-bold-fill.d.ts +8 -0
  569. package/dist/commonjs/icons/rating-star-bold-fill.d.ts.map +1 -0
  570. package/dist/commonjs/icons/rating-star-bold-fill.js +24 -0
  571. package/dist/commonjs/icons/rating-star-bold-fill.js.map +1 -0
  572. package/dist/commonjs/icons/rating-star-bold.d.ts +8 -0
  573. package/dist/commonjs/icons/rating-star-bold.d.ts.map +1 -0
  574. package/dist/commonjs/icons/rating-star-bold.js +24 -0
  575. package/dist/commonjs/icons/rating-star-bold.js.map +1 -0
  576. package/dist/commonjs/icons/rating-star-fill.d.ts +8 -0
  577. package/dist/commonjs/icons/rating-star-fill.d.ts.map +1 -0
  578. package/dist/commonjs/icons/rating-star-fill.js +24 -0
  579. package/dist/commonjs/icons/rating-star-fill.js.map +1 -0
  580. package/dist/commonjs/icons/save.d.ts +8 -0
  581. package/dist/commonjs/icons/save.d.ts.map +1 -0
  582. package/dist/commonjs/icons/save.js +24 -0
  583. package/dist/commonjs/icons/save.js.map +1 -0
  584. package/dist/commonjs/icons/search-bold.d.ts +8 -0
  585. package/dist/commonjs/icons/search-bold.d.ts.map +1 -0
  586. package/dist/commonjs/icons/search-bold.js +24 -0
  587. package/dist/commonjs/icons/search-bold.js.map +1 -0
  588. package/dist/commonjs/icons/search.d.ts +8 -0
  589. package/dist/commonjs/icons/search.d.ts.map +1 -0
  590. package/dist/commonjs/icons/search.js +24 -0
  591. package/dist/commonjs/icons/search.js.map +1 -0
  592. package/dist/commonjs/icons/settings-cog-fill.d.ts +8 -0
  593. package/dist/commonjs/icons/settings-cog-fill.d.ts.map +1 -0
  594. package/dist/commonjs/icons/settings-cog-fill.js +24 -0
  595. package/dist/commonjs/icons/settings-cog-fill.js.map +1 -0
  596. package/dist/commonjs/icons/settings-cog.d.ts +8 -0
  597. package/dist/commonjs/icons/settings-cog.d.ts.map +1 -0
  598. package/dist/commonjs/icons/settings-cog.js +24 -0
  599. package/dist/commonjs/icons/settings-cog.js.map +1 -0
  600. package/dist/commonjs/icons/settings-slider.d.ts +8 -0
  601. package/dist/commonjs/icons/settings-slider.d.ts.map +1 -0
  602. package/dist/commonjs/icons/settings-slider.js +24 -0
  603. package/dist/commonjs/icons/settings-slider.js.map +1 -0
  604. package/dist/commonjs/icons/shirt-add.d.ts +8 -0
  605. package/dist/commonjs/icons/shirt-add.d.ts.map +1 -0
  606. package/dist/commonjs/icons/shirt-add.js +24 -0
  607. package/dist/commonjs/icons/shirt-add.js.map +1 -0
  608. package/dist/commonjs/icons/sort-ascending-alt.d.ts +8 -0
  609. package/dist/commonjs/icons/sort-ascending-alt.d.ts.map +1 -0
  610. package/dist/commonjs/icons/sort-ascending-alt.js +24 -0
  611. package/dist/commonjs/icons/sort-ascending-alt.js.map +1 -0
  612. package/dist/commonjs/icons/sort-ascending.d.ts +8 -0
  613. package/dist/commonjs/icons/sort-ascending.d.ts.map +1 -0
  614. package/dist/commonjs/icons/sort-ascending.js +24 -0
  615. package/dist/commonjs/icons/sort-ascending.js.map +1 -0
  616. package/dist/commonjs/icons/sort-descending-alt.d.ts +8 -0
  617. package/dist/commonjs/icons/sort-descending-alt.d.ts.map +1 -0
  618. package/dist/commonjs/icons/sort-descending-alt.js +24 -0
  619. package/dist/commonjs/icons/sort-descending-alt.js.map +1 -0
  620. package/dist/commonjs/icons/sort-descending.d.ts +8 -0
  621. package/dist/commonjs/icons/sort-descending.d.ts.map +1 -0
  622. package/dist/commonjs/icons/sort-descending.js +24 -0
  623. package/dist/commonjs/icons/{checkmark-small.js.map → sort-descending.js.map} +1 -1
  624. package/dist/commonjs/icons/sort-unsorted.d.ts +8 -0
  625. package/dist/commonjs/icons/sort-unsorted.d.ts.map +1 -0
  626. package/dist/commonjs/icons/sort-unsorted.js +24 -0
  627. package/dist/commonjs/icons/sort-unsorted.js.map +1 -0
  628. package/dist/commonjs/icons/subtract-bold.d.ts +8 -0
  629. package/dist/commonjs/icons/subtract-bold.d.ts.map +1 -0
  630. package/dist/commonjs/icons/subtract-bold.js +24 -0
  631. package/dist/commonjs/icons/subtract-bold.js.map +1 -0
  632. package/dist/commonjs/icons/subtract.d.ts +8 -0
  633. package/dist/commonjs/icons/subtract.d.ts.map +1 -0
  634. package/dist/commonjs/icons/subtract.js +24 -0
  635. package/dist/commonjs/icons/subtract.js.map +1 -0
  636. package/dist/commonjs/icons/text-alignment-center.d.ts +8 -0
  637. package/dist/commonjs/icons/text-alignment-center.d.ts.map +1 -0
  638. package/dist/commonjs/icons/{checkmark-circle-fill.js → text-alignment-center.js} +6 -6
  639. package/dist/commonjs/icons/{checkmark-circle-fill.js.map → text-alignment-center.js.map} +1 -1
  640. package/dist/commonjs/icons/text-alignment-justify.d.ts +8 -0
  641. package/dist/commonjs/icons/text-alignment-justify.d.ts.map +1 -0
  642. package/dist/commonjs/icons/text-alignment-justify.js +24 -0
  643. package/dist/commonjs/icons/text-alignment-justify.js.map +1 -0
  644. package/dist/commonjs/icons/text-alignment-left.d.ts +8 -0
  645. package/dist/commonjs/icons/text-alignment-left.d.ts.map +1 -0
  646. package/dist/commonjs/icons/text-alignment-left.js +24 -0
  647. package/dist/commonjs/icons/text-alignment-left.js.map +1 -0
  648. package/dist/commonjs/icons/text-alignment-right.d.ts +8 -0
  649. package/dist/commonjs/icons/text-alignment-right.d.ts.map +1 -0
  650. package/dist/commonjs/icons/text-alignment-right.js +24 -0
  651. package/dist/commonjs/icons/text-alignment-right.js.map +1 -0
  652. package/dist/commonjs/icons/text-bold.d.ts +8 -0
  653. package/dist/commonjs/icons/text-bold.d.ts.map +1 -0
  654. package/dist/commonjs/icons/text-bold.js +24 -0
  655. package/dist/commonjs/icons/text-bold.js.map +1 -0
  656. package/dist/commonjs/icons/text-italic.d.ts +8 -0
  657. package/dist/commonjs/icons/text-italic.d.ts.map +1 -0
  658. package/dist/commonjs/icons/{minus-small.js → text-italic.js} +6 -6
  659. package/dist/commonjs/icons/text-italic.js.map +1 -0
  660. package/dist/commonjs/icons/text-strikethrough.d.ts +8 -0
  661. package/dist/commonjs/icons/text-strikethrough.d.ts.map +1 -0
  662. package/dist/commonjs/icons/text-strikethrough.js +24 -0
  663. package/dist/commonjs/icons/text-strikethrough.js.map +1 -0
  664. package/dist/commonjs/icons/text-underline.d.ts +8 -0
  665. package/dist/commonjs/icons/text-underline.d.ts.map +1 -0
  666. package/dist/commonjs/icons/text-underline.js +24 -0
  667. package/dist/commonjs/icons/text-underline.js.map +1 -0
  668. package/dist/commonjs/icons/trash-fill.d.ts +8 -0
  669. package/dist/commonjs/icons/trash-fill.d.ts.map +1 -0
  670. package/dist/commonjs/icons/trash-fill.js +24 -0
  671. package/dist/commonjs/icons/trash-fill.js.map +1 -0
  672. package/dist/commonjs/icons/trash.d.ts +8 -0
  673. package/dist/commonjs/icons/trash.d.ts.map +1 -0
  674. package/dist/commonjs/icons/trash.js +24 -0
  675. package/dist/commonjs/icons/trash.js.map +1 -0
  676. package/dist/commonjs/icons/view-off.d.ts +8 -0
  677. package/dist/commonjs/icons/view-off.d.ts.map +1 -0
  678. package/dist/commonjs/icons/view-off.js +24 -0
  679. package/dist/commonjs/icons/view-off.js.map +1 -0
  680. package/dist/commonjs/icons/view.d.ts +8 -0
  681. package/dist/commonjs/icons/view.d.ts.map +1 -0
  682. package/dist/commonjs/icons/view.js +24 -0
  683. package/dist/commonjs/icons/view.js.map +1 -0
  684. package/dist/commonjs/icons/warning-circle-fill.js +1 -1
  685. package/dist/commonjs/icons/warning-circle-fill.js.map +1 -1
  686. package/dist/commonjs/icons/warning-fill.d.ts +8 -0
  687. package/dist/commonjs/icons/warning-fill.d.ts.map +1 -0
  688. package/dist/commonjs/icons/warning-fill.js +24 -0
  689. package/dist/commonjs/icons/warning-fill.js.map +1 -0
  690. package/dist/commonjs/icons/warning.d.ts +8 -0
  691. package/dist/commonjs/icons/warning.d.ts.map +1 -0
  692. package/dist/commonjs/icons/warning.js +24 -0
  693. package/dist/commonjs/icons/warning.js.map +1 -0
  694. package/dist/commonjs/icons/zoom-in.d.ts +8 -0
  695. package/dist/commonjs/icons/zoom-in.d.ts.map +1 -0
  696. package/dist/commonjs/icons/zoom-in.js +24 -0
  697. package/dist/commonjs/icons/zoom-in.js.map +1 -0
  698. package/dist/commonjs/icons/zoom-out.d.ts +8 -0
  699. package/dist/commonjs/icons/zoom-out.d.ts.map +1 -0
  700. package/dist/commonjs/icons/zoom-out.js +24 -0
  701. package/dist/commonjs/icons/zoom-out.js.map +1 -0
  702. package/dist/commonjs/index.d.ts +21 -13
  703. package/dist/commonjs/index.d.ts.map +1 -1
  704. package/dist/commonjs/index.js +18 -12
  705. package/dist/commonjs/index.js.map +1 -1
  706. package/dist/commonjs/utils/style/types.d.ts +1 -0
  707. package/dist/commonjs/utils/style/types.d.ts.map +1 -1
  708. package/dist/commonjs/utils/style/types.js.map +1 -1
  709. package/dist/commonjs/utils/use-server-effect-event.d.ts +3 -0
  710. package/dist/commonjs/utils/use-server-effect-event.d.ts.map +1 -0
  711. package/dist/commonjs/utils/use-server-effect-event.js +19 -0
  712. package/dist/commonjs/utils/use-server-effect-event.js.map +1 -0
  713. package/dist/commonjs/utils/use-server-layout-effect.d.ts +4 -0
  714. package/dist/commonjs/utils/use-server-layout-effect.d.ts.map +1 -0
  715. package/dist/commonjs/utils/use-server-layout-effect.js +7 -0
  716. package/dist/commonjs/utils/use-server-layout-effect.js.map +1 -0
  717. package/dist/esm/components/badge/badge.d.ts +31 -0
  718. package/dist/esm/components/badge/badge.d.ts.map +1 -0
  719. package/dist/esm/components/badge/badge.js +20 -0
  720. package/dist/esm/components/badge/badge.js.map +1 -0
  721. package/dist/esm/components/breadcrumbs/breadcrumbs.js +2 -2
  722. package/dist/esm/components/breadcrumbs/breadcrumbs.js.map +1 -1
  723. package/dist/esm/components/button/button.js +1 -1
  724. package/dist/esm/components/button/button.js.map +1 -1
  725. package/dist/esm/components/button/link-button.js +1 -1
  726. package/dist/esm/components/button/link-button.js.map +1 -1
  727. package/dist/esm/components/button/types.d.ts +3 -3
  728. package/dist/esm/components/button/types.d.ts.map +1 -1
  729. package/dist/esm/components/button/types.js.map +1 -1
  730. package/dist/esm/components/card/card.d.ts +5 -0
  731. package/dist/esm/components/card/card.d.ts.map +1 -1
  732. package/dist/esm/components/card/card.js +5 -0
  733. package/dist/esm/components/card/card.js.map +1 -1
  734. package/dist/esm/components/checkbox/checkbox.d.ts +2 -2
  735. package/dist/esm/components/checkbox/checkbox.d.ts.map +1 -1
  736. package/dist/esm/components/checkbox/checkbox.js +2 -2
  737. package/dist/esm/components/checkbox/checkbox.js.map +1 -1
  738. package/dist/esm/components/combo-box/combo-box.js +3 -3
  739. package/dist/esm/components/combo-box/combo-box.js.map +1 -1
  740. package/dist/esm/components/disclosure/disclosure-group.d.ts +7 -2
  741. package/dist/esm/components/disclosure/disclosure-group.d.ts.map +1 -1
  742. package/dist/esm/components/disclosure/disclosure-group.js +5 -0
  743. package/dist/esm/components/disclosure/disclosure-group.js.map +1 -1
  744. package/dist/esm/components/disclosure/disclosure.d.ts +12 -7
  745. package/dist/esm/components/disclosure/disclosure.d.ts.map +1 -1
  746. package/dist/esm/components/disclosure/disclosure.js +8 -3
  747. package/dist/esm/components/disclosure/disclosure.js.map +1 -1
  748. package/dist/esm/components/form/form.d.ts +2 -2
  749. package/dist/esm/components/form/form.d.ts.map +1 -1
  750. package/dist/esm/components/form/form.js.map +1 -1
  751. package/dist/esm/components/internal/focusable-container/focusable-container.d.ts +2 -0
  752. package/dist/esm/components/internal/focusable-container/focusable-container.d.ts.map +1 -0
  753. package/dist/esm/components/internal/focusable-container/focusable-container.js +46 -0
  754. package/dist/esm/components/internal/focusable-container/focusable-container.js.map +1 -0
  755. package/dist/esm/components/internal/form-field/form-field.js +3 -3
  756. package/dist/esm/components/internal/form-field/form-field.js.map +1 -1
  757. package/dist/esm/components/internal/spinner/spinner.js.map +1 -1
  758. package/dist/esm/components/menu/menu.d.ts +18 -12
  759. package/dist/esm/components/menu/menu.d.ts.map +1 -1
  760. package/dist/esm/components/menu/menu.js +12 -26
  761. package/dist/esm/components/menu/menu.js.map +1 -1
  762. package/dist/esm/components/modal/modal.d.ts +54 -9
  763. package/dist/esm/components/modal/modal.d.ts.map +1 -1
  764. package/dist/esm/components/modal/modal.js +24 -9
  765. package/dist/esm/components/modal/modal.js.map +1 -1
  766. package/dist/esm/components/nav-tabs/nav-tabs.d.ts +2 -2
  767. package/dist/esm/components/nav-tabs/nav-tabs.d.ts.map +1 -1
  768. package/dist/esm/components/nav-tabs/nav-tabs.js.map +1 -1
  769. package/dist/esm/components/number-field/number-field.d.ts +12 -4
  770. package/dist/esm/components/number-field/number-field.d.ts.map +1 -1
  771. package/dist/esm/components/number-field/number-field.js +12 -6
  772. package/dist/esm/components/number-field/number-field.js.map +1 -1
  773. package/dist/esm/components/pagination/action-pagination.d.ts +2 -0
  774. package/dist/esm/components/pagination/action-pagination.d.ts.map +1 -0
  775. package/dist/esm/components/pagination/action-pagination.js +24 -0
  776. package/dist/esm/components/pagination/action-pagination.js.map +1 -0
  777. package/dist/esm/components/pagination/base-pagination.d.ts +10 -0
  778. package/dist/esm/components/pagination/base-pagination.d.ts.map +1 -0
  779. package/dist/esm/components/pagination/base-pagination.js +67 -0
  780. package/dist/esm/components/pagination/base-pagination.js.map +1 -0
  781. package/dist/esm/components/pagination/link-pagination.d.ts +2 -0
  782. package/dist/esm/components/pagination/link-pagination.d.ts.map +1 -0
  783. package/dist/esm/components/pagination/link-pagination.js +57 -0
  784. package/dist/esm/components/pagination/link-pagination.js.map +1 -0
  785. package/dist/esm/components/pagination/pagination.d.ts +14 -8
  786. package/dist/esm/components/pagination/pagination.d.ts.map +1 -1
  787. package/dist/esm/components/pagination/pagination.js +36 -62
  788. package/dist/esm/components/pagination/pagination.js.map +1 -1
  789. package/dist/esm/components/popover/popover.d.ts +54 -0
  790. package/dist/esm/components/popover/popover.d.ts.map +1 -0
  791. package/dist/esm/components/popover/popover.js +33 -0
  792. package/dist/esm/components/popover/popover.js.map +1 -0
  793. package/dist/esm/components/radio/radio.d.ts +2 -2
  794. package/dist/esm/components/radio/radio.d.ts.map +1 -1
  795. package/dist/esm/components/radio/radio.js.map +1 -1
  796. package/dist/esm/components/select/select.js +3 -3
  797. package/dist/esm/components/select/select.js.map +1 -1
  798. package/dist/esm/components/table/contexts/column-collection.d.ts +21 -0
  799. package/dist/esm/components/table/contexts/column-collection.d.ts.map +1 -0
  800. package/dist/esm/components/table/contexts/column-collection.js +67 -0
  801. package/dist/esm/components/table/contexts/column-collection.js.map +1 -0
  802. package/dist/esm/components/table/contexts/row-state.d.ts +5 -1
  803. package/dist/esm/components/table/contexts/row-state.d.ts.map +1 -1
  804. package/dist/esm/components/table/contexts/row-state.js +6 -2
  805. package/dist/esm/components/table/contexts/row-state.js.map +1 -1
  806. package/dist/esm/components/table/contexts/table-state.d.ts +21 -0
  807. package/dist/esm/components/table/contexts/table-state.d.ts.map +1 -0
  808. package/dist/esm/components/table/contexts/table-state.js +43 -0
  809. package/dist/esm/components/table/contexts/table-state.js.map +1 -0
  810. package/dist/esm/components/table/hooks/use-selectable-row.d.ts +6 -0
  811. package/dist/esm/components/table/hooks/use-selectable-row.d.ts.map +1 -0
  812. package/dist/esm/components/table/hooks/use-selectable-row.js +37 -0
  813. package/dist/esm/components/table/hooks/use-selectable-row.js.map +1 -0
  814. package/dist/esm/components/table/hooks/use-table-cell.d.ts +1 -1
  815. package/dist/esm/components/table/hooks/use-table-cell.d.ts.map +1 -1
  816. package/dist/esm/components/table/hooks/use-table-cell.js +35 -16
  817. package/dist/esm/components/table/hooks/use-table-cell.js.map +1 -1
  818. package/dist/esm/components/table/hooks/use-table.d.ts +1 -1
  819. package/dist/esm/components/table/hooks/use-table.d.ts.map +1 -1
  820. package/dist/esm/components/table/hooks/use-table.js +22 -8
  821. package/dist/esm/components/table/hooks/use-table.js.map +1 -1
  822. package/dist/esm/components/table/table-all-rows-selector.d.ts +11 -0
  823. package/dist/esm/components/table/table-all-rows-selector.d.ts.map +1 -0
  824. package/dist/esm/components/table/table-all-rows-selector.js +20 -0
  825. package/dist/esm/components/table/table-all-rows-selector.js.map +1 -0
  826. package/dist/esm/components/table/table-body-cell.d.ts +9 -16
  827. package/dist/esm/components/table/table-body-cell.d.ts.map +1 -1
  828. package/dist/esm/components/table/table-body-cell.js +12 -4
  829. package/dist/esm/components/table/table-body-cell.js.map +1 -1
  830. package/dist/esm/components/table/table-body-row.d.ts +40 -0
  831. package/dist/esm/components/table/table-body-row.d.ts.map +1 -0
  832. package/dist/esm/components/table/table-body-row.js +25 -0
  833. package/dist/esm/components/table/table-body-row.js.map +1 -0
  834. package/dist/esm/components/table/table-body.d.ts +9 -3
  835. package/dist/esm/components/table/table-body.d.ts.map +1 -1
  836. package/dist/esm/components/table/table-body.js +9 -3
  837. package/dist/esm/components/table/table-body.js.map +1 -1
  838. package/dist/esm/components/table/table-container.d.ts +11 -5
  839. package/dist/esm/components/table/table-container.d.ts.map +1 -1
  840. package/dist/esm/components/table/table-container.js +11 -28
  841. package/dist/esm/components/table/table-container.js.map +1 -1
  842. package/dist/esm/components/table/table-empty-state.d.ts +18 -0
  843. package/dist/esm/components/table/table-empty-state.d.ts.map +1 -0
  844. package/dist/esm/components/table/table-empty-state.js +30 -0
  845. package/dist/esm/components/table/table-empty-state.js.map +1 -0
  846. package/dist/esm/components/table/table-header-cell.d.ts +33 -4
  847. package/dist/esm/components/table/table-header-cell.d.ts.map +1 -1
  848. package/dist/esm/components/table/table-header-cell.js +36 -5
  849. package/dist/esm/components/table/table-header-cell.js.map +1 -1
  850. package/dist/esm/components/table/{table-row.d.ts → table-header-row.d.ts} +10 -4
  851. package/dist/esm/components/table/table-header-row.d.ts.map +1 -0
  852. package/dist/esm/components/table/table-header-row.js +17 -0
  853. package/dist/esm/components/table/table-header-row.js.map +1 -0
  854. package/dist/esm/components/table/table-header.d.ts +9 -3
  855. package/dist/esm/components/table/table-header.d.ts.map +1 -1
  856. package/dist/esm/components/table/table-header.js +9 -3
  857. package/dist/esm/components/table/table-header.js.map +1 -1
  858. package/dist/esm/components/table/table-row-selector.d.ts +11 -0
  859. package/dist/esm/components/table/table-row-selector.d.ts.map +1 -0
  860. package/dist/esm/components/table/table-row-selector.js +22 -0
  861. package/dist/esm/components/table/table-row-selector.js.map +1 -0
  862. package/dist/esm/components/table/table.d.ts +34 -5
  863. package/dist/esm/components/table/table.d.ts.map +1 -1
  864. package/dist/esm/components/table/table.js +14 -6
  865. package/dist/esm/components/table/table.js.map +1 -1
  866. package/dist/esm/components/tag/tag-group.d.ts +7 -4
  867. package/dist/esm/components/tag/tag-group.d.ts.map +1 -1
  868. package/dist/esm/components/tag/tag-group.js +3 -3
  869. package/dist/esm/components/tag/tag-group.js.map +1 -1
  870. package/dist/esm/components/tag/tag.d.ts +10 -9
  871. package/dist/esm/components/tag/tag.d.ts.map +1 -1
  872. package/dist/esm/components/tag/tag.js +11 -6
  873. package/dist/esm/components/tag/tag.js.map +1 -1
  874. package/dist/esm/components/text-inputs/text-area.d.ts +5 -1
  875. package/dist/esm/components/text-inputs/text-area.d.ts.map +1 -1
  876. package/dist/esm/components/text-inputs/text-area.js +5 -2
  877. package/dist/esm/components/text-inputs/text-area.js.map +1 -1
  878. package/dist/esm/components/tooltip/tooltip.d.ts +10 -2
  879. package/dist/esm/components/tooltip/tooltip.d.ts.map +1 -1
  880. package/dist/esm/components/tooltip/tooltip.js +10 -2
  881. package/dist/esm/components/tooltip/tooltip.js.map +1 -1
  882. package/dist/esm/components/types.d.ts +3 -3
  883. package/dist/esm/components/types.d.ts.map +1 -1
  884. package/dist/esm/components/types.js.map +1 -1
  885. package/dist/esm/components/typography/types.d.ts +2 -2
  886. package/dist/esm/components/typography/types.d.ts.map +1 -1
  887. package/dist/esm/components/typography/types.js.map +1 -1
  888. package/dist/esm/icons/action-redo.d.ts +8 -0
  889. package/dist/esm/icons/action-redo.d.ts.map +1 -0
  890. package/dist/esm/icons/action-redo.js +19 -0
  891. package/dist/esm/icons/action-redo.js.map +1 -0
  892. package/dist/esm/icons/action-undo.d.ts +8 -0
  893. package/dist/esm/icons/action-undo.d.ts.map +1 -0
  894. package/dist/esm/icons/action-undo.js +19 -0
  895. package/dist/esm/icons/action-undo.js.map +1 -0
  896. package/dist/esm/icons/add-bold.d.ts +8 -0
  897. package/dist/esm/icons/add-bold.d.ts.map +1 -0
  898. package/dist/esm/icons/add-bold.js +19 -0
  899. package/dist/esm/icons/add-bold.js.map +1 -0
  900. package/dist/esm/icons/add-circle-fill.js +1 -1
  901. package/dist/esm/icons/add-circle-fill.js.map +1 -1
  902. package/dist/esm/icons/add-circle.js +1 -1
  903. package/dist/esm/icons/add-circle.js.map +1 -1
  904. package/dist/esm/icons/add-square-fill.d.ts +8 -0
  905. package/dist/esm/icons/add-square-fill.d.ts.map +1 -0
  906. package/dist/esm/icons/add-square-fill.js +19 -0
  907. package/dist/esm/icons/add-square-fill.js.map +1 -0
  908. package/dist/esm/icons/add-square.d.ts +8 -0
  909. package/dist/esm/icons/add-square.d.ts.map +1 -0
  910. package/dist/esm/icons/add-square.js +19 -0
  911. package/dist/esm/icons/add-square.js.map +1 -0
  912. package/dist/esm/icons/add.d.ts.map +1 -1
  913. package/dist/esm/icons/add.js +1 -1
  914. package/dist/esm/icons/add.js.map +1 -1
  915. package/dist/esm/icons/analytics-graph.d.ts +8 -0
  916. package/dist/esm/icons/analytics-graph.d.ts.map +1 -0
  917. package/dist/esm/icons/analytics-graph.js +19 -0
  918. package/dist/esm/icons/analytics-graph.js.map +1 -0
  919. package/dist/esm/icons/analytics-pie-fill.d.ts +8 -0
  920. package/dist/esm/icons/analytics-pie-fill.d.ts.map +1 -0
  921. package/dist/esm/icons/analytics-pie-fill.js +19 -0
  922. package/dist/esm/icons/analytics-pie-fill.js.map +1 -0
  923. package/dist/esm/icons/analytics-pie.d.ts +8 -0
  924. package/dist/esm/icons/analytics-pie.d.ts.map +1 -0
  925. package/dist/esm/icons/analytics-pie.js +19 -0
  926. package/dist/esm/icons/analytics-pie.js.map +1 -0
  927. package/dist/esm/icons/app-window-layout.d.ts +8 -0
  928. package/dist/esm/icons/app-window-layout.d.ts.map +1 -0
  929. package/dist/esm/icons/app-window-layout.js +19 -0
  930. package/dist/esm/icons/app-window-layout.js.map +1 -0
  931. package/dist/esm/icons/app-window-next.d.ts +8 -0
  932. package/dist/esm/icons/app-window-next.d.ts.map +1 -0
  933. package/dist/esm/icons/app-window-next.js +19 -0
  934. package/dist/esm/icons/app-window-next.js.map +1 -0
  935. package/dist/esm/icons/app-window-search.d.ts +8 -0
  936. package/dist/esm/icons/app-window-search.d.ts.map +1 -0
  937. package/dist/esm/icons/app-window-search.js +19 -0
  938. package/dist/esm/icons/app-window-search.js.map +1 -0
  939. package/dist/esm/icons/arrow-down-bold.d.ts +8 -0
  940. package/dist/esm/icons/arrow-down-bold.d.ts.map +1 -0
  941. package/dist/esm/icons/arrow-down-bold.js +19 -0
  942. package/dist/esm/icons/arrow-down-bold.js.map +1 -0
  943. package/dist/esm/icons/arrow-down.d.ts +8 -0
  944. package/dist/esm/icons/arrow-down.d.ts.map +1 -0
  945. package/dist/esm/icons/{checkmark.js → arrow-down.js} +6 -6
  946. package/dist/esm/icons/arrow-down.js.map +1 -0
  947. package/dist/esm/icons/arrow-left-bold.d.ts +8 -0
  948. package/dist/esm/icons/arrow-left-bold.d.ts.map +1 -0
  949. package/dist/esm/icons/arrow-left-bold.js +19 -0
  950. package/dist/esm/icons/arrow-left-bold.js.map +1 -0
  951. package/dist/esm/icons/arrow-left.d.ts +8 -0
  952. package/dist/esm/icons/arrow-left.d.ts.map +1 -0
  953. package/dist/esm/icons/arrow-left.js +19 -0
  954. package/dist/esm/icons/arrow-left.js.map +1 -0
  955. package/dist/esm/icons/arrow-right-bold.d.ts +8 -0
  956. package/dist/esm/icons/arrow-right-bold.d.ts.map +1 -0
  957. package/dist/esm/icons/{checkmark-small.js → arrow-right-bold.js} +6 -6
  958. package/dist/esm/icons/arrow-right-bold.js.map +1 -0
  959. package/dist/esm/icons/arrow-right.d.ts +8 -0
  960. package/dist/esm/icons/arrow-right.d.ts.map +1 -0
  961. package/dist/esm/icons/arrow-right.js +19 -0
  962. package/dist/esm/icons/arrow-right.js.map +1 -0
  963. package/dist/esm/icons/arrow-up-bold.d.ts +8 -0
  964. package/dist/esm/icons/arrow-up-bold.d.ts.map +1 -0
  965. package/dist/esm/icons/arrow-up-bold.js +19 -0
  966. package/dist/esm/icons/arrow-up-bold.js.map +1 -0
  967. package/dist/esm/icons/arrow-up.d.ts +8 -0
  968. package/dist/esm/icons/arrow-up.d.ts.map +1 -0
  969. package/dist/esm/icons/arrow-up.js +19 -0
  970. package/dist/esm/icons/arrow-up.js.map +1 -0
  971. package/dist/esm/icons/attachment.d.ts +8 -0
  972. package/dist/esm/icons/attachment.d.ts.map +1 -0
  973. package/dist/esm/icons/attachment.js +19 -0
  974. package/dist/esm/icons/attachment.js.map +1 -0
  975. package/dist/esm/icons/barcode.d.ts +8 -0
  976. package/dist/esm/icons/barcode.d.ts.map +1 -0
  977. package/dist/esm/icons/barcode.js +19 -0
  978. package/dist/esm/icons/barcode.js.map +1 -0
  979. package/dist/esm/icons/bell-off.d.ts +8 -0
  980. package/dist/esm/icons/bell-off.d.ts.map +1 -0
  981. package/dist/esm/icons/bell-off.js +19 -0
  982. package/dist/esm/icons/bell-off.js.map +1 -0
  983. package/dist/esm/icons/bell.d.ts +8 -0
  984. package/dist/esm/icons/bell.d.ts.map +1 -0
  985. package/dist/esm/icons/bell.js +19 -0
  986. package/dist/esm/icons/bell.js.map +1 -0
  987. package/dist/esm/icons/book-open-fill.d.ts +8 -0
  988. package/dist/esm/icons/book-open-fill.d.ts.map +1 -0
  989. package/dist/esm/icons/book-open-fill.js +19 -0
  990. package/dist/esm/icons/book-open-fill.js.map +1 -0
  991. package/dist/esm/icons/book-open.d.ts +8 -0
  992. package/dist/esm/icons/book-open.d.ts.map +1 -0
  993. package/dist/esm/icons/book-open.js +19 -0
  994. package/dist/esm/icons/book-open.js.map +1 -0
  995. package/dist/esm/icons/brackets.d.ts +8 -0
  996. package/dist/esm/icons/brackets.d.ts.map +1 -0
  997. package/dist/esm/icons/brackets.js +19 -0
  998. package/dist/esm/icons/brackets.js.map +1 -0
  999. package/dist/esm/icons/calculator-alt.d.ts.map +1 -1
  1000. package/dist/esm/icons/calculator-alt.js +1 -1
  1001. package/dist/esm/icons/calculator-alt.js.map +1 -1
  1002. package/dist/esm/icons/calculator.d.ts.map +1 -1
  1003. package/dist/esm/icons/calculator.js +1 -1
  1004. package/dist/esm/icons/calculator.js.map +1 -1
  1005. package/dist/esm/icons/calendar-empty.d.ts +8 -0
  1006. package/dist/esm/icons/calendar-empty.d.ts.map +1 -0
  1007. package/dist/esm/icons/calendar-empty.js +19 -0
  1008. package/dist/esm/icons/calendar-empty.js.map +1 -0
  1009. package/dist/esm/icons/calendar-fill.d.ts +8 -0
  1010. package/dist/esm/icons/calendar-fill.d.ts.map +1 -0
  1011. package/dist/esm/icons/calendar-fill.js +19 -0
  1012. package/dist/esm/icons/calendar-fill.js.map +1 -0
  1013. package/dist/esm/icons/calendar.d.ts +8 -0
  1014. package/dist/esm/icons/calendar.d.ts.map +1 -0
  1015. package/dist/esm/icons/calendar.js +19 -0
  1016. package/dist/esm/icons/calendar.js.map +1 -0
  1017. package/dist/esm/icons/category-apparel.d.ts +8 -0
  1018. package/dist/esm/icons/category-apparel.d.ts.map +1 -0
  1019. package/dist/esm/icons/category-apparel.js +19 -0
  1020. package/dist/esm/icons/category-apparel.js.map +1 -0
  1021. package/dist/esm/icons/category-bag.d.ts +8 -0
  1022. package/dist/esm/icons/category-bag.d.ts.map +1 -0
  1023. package/dist/esm/icons/category-bag.js +19 -0
  1024. package/dist/esm/icons/category-bag.js.map +1 -0
  1025. package/dist/esm/icons/category-book.d.ts +8 -0
  1026. package/dist/esm/icons/category-book.d.ts.map +1 -0
  1027. package/dist/esm/icons/category-book.js +19 -0
  1028. package/dist/esm/icons/category-book.js.map +1 -0
  1029. package/dist/esm/icons/category-gift.d.ts +8 -0
  1030. package/dist/esm/icons/category-gift.d.ts.map +1 -0
  1031. package/dist/esm/icons/category-gift.js +19 -0
  1032. package/dist/esm/icons/category-gift.js.map +1 -0
  1033. package/dist/esm/icons/category-large-format.d.ts +8 -0
  1034. package/dist/esm/icons/category-large-format.d.ts.map +1 -0
  1035. package/dist/esm/icons/category-large-format.js +19 -0
  1036. package/dist/esm/icons/category-large-format.js.map +1 -0
  1037. package/dist/esm/icons/category-newspaper.d.ts +8 -0
  1038. package/dist/esm/icons/category-newspaper.d.ts.map +1 -0
  1039. package/dist/esm/icons/category-newspaper.js +19 -0
  1040. package/dist/esm/icons/category-newspaper.js.map +1 -0
  1041. package/dist/esm/icons/category-package.d.ts +8 -0
  1042. package/dist/esm/icons/category-package.d.ts.map +1 -0
  1043. package/dist/esm/icons/category-package.js +19 -0
  1044. package/dist/esm/icons/category-package.js.map +1 -0
  1045. package/dist/esm/icons/category-promo-product.d.ts +8 -0
  1046. package/dist/esm/icons/category-promo-product.d.ts.map +1 -0
  1047. package/dist/esm/icons/category-promo-product.js +19 -0
  1048. package/dist/esm/icons/category-promo-product.js.map +1 -0
  1049. package/dist/esm/icons/category-small-format.d.ts +8 -0
  1050. package/dist/esm/icons/category-small-format.d.ts.map +1 -0
  1051. package/dist/esm/icons/category-small-format.js +19 -0
  1052. package/dist/esm/icons/category-small-format.js.map +1 -0
  1053. package/dist/esm/icons/check-badge-fill.d.ts +8 -0
  1054. package/dist/esm/icons/check-badge-fill.d.ts.map +1 -0
  1055. package/dist/esm/icons/check-badge-fill.js +19 -0
  1056. package/dist/esm/icons/check-badge-fill.js.map +1 -0
  1057. package/dist/esm/icons/check-badge.d.ts +8 -0
  1058. package/dist/esm/icons/check-badge.d.ts.map +1 -0
  1059. package/dist/esm/icons/check-badge.js +19 -0
  1060. package/dist/esm/icons/check-badge.js.map +1 -0
  1061. package/dist/esm/icons/check-bold.d.ts +8 -0
  1062. package/dist/esm/icons/check-bold.d.ts.map +1 -0
  1063. package/dist/esm/icons/check-bold.js +19 -0
  1064. package/dist/esm/icons/check-bold.js.map +1 -0
  1065. package/dist/esm/icons/check-circle-fill.d.ts +8 -0
  1066. package/dist/esm/icons/check-circle-fill.d.ts.map +1 -0
  1067. package/dist/esm/icons/check-circle-fill.js +19 -0
  1068. package/dist/esm/icons/check-circle-fill.js.map +1 -0
  1069. package/dist/esm/icons/check-circle.d.ts +8 -0
  1070. package/dist/esm/icons/check-circle.d.ts.map +1 -0
  1071. package/dist/esm/icons/check-circle.js +19 -0
  1072. package/dist/esm/icons/check-circle.js.map +1 -0
  1073. package/dist/esm/icons/check-square-fill.d.ts +8 -0
  1074. package/dist/esm/icons/check-square-fill.d.ts.map +1 -0
  1075. package/dist/esm/icons/check-square-fill.js +19 -0
  1076. package/dist/esm/icons/check-square-fill.js.map +1 -0
  1077. package/dist/esm/icons/check-square.d.ts +8 -0
  1078. package/dist/esm/icons/check-square.d.ts.map +1 -0
  1079. package/dist/esm/icons/check-square.js +19 -0
  1080. package/dist/esm/icons/check-square.js.map +1 -0
  1081. package/dist/esm/icons/check.d.ts +8 -0
  1082. package/dist/esm/icons/check.d.ts.map +1 -0
  1083. package/dist/esm/icons/check.js +19 -0
  1084. package/dist/esm/icons/check.js.map +1 -0
  1085. package/dist/esm/icons/chevron-down-bold.d.ts +8 -0
  1086. package/dist/esm/icons/chevron-down-bold.d.ts.map +1 -0
  1087. package/dist/esm/icons/{chevron-down-fill.js → chevron-down-bold.js} +6 -6
  1088. package/dist/esm/icons/{chevron-down-fill.js.map → chevron-down-bold.js.map} +1 -1
  1089. package/dist/esm/icons/chevron-down.d.ts +8 -0
  1090. package/dist/esm/icons/chevron-down.d.ts.map +1 -0
  1091. package/dist/esm/icons/chevron-down.js +19 -0
  1092. package/dist/esm/icons/chevron-down.js.map +1 -0
  1093. package/dist/esm/icons/chevron-expand-bold.d.ts +8 -0
  1094. package/dist/esm/icons/chevron-expand-bold.d.ts.map +1 -0
  1095. package/dist/esm/icons/chevron-expand-bold.js +19 -0
  1096. package/dist/esm/icons/chevron-expand-bold.js.map +1 -0
  1097. package/dist/esm/icons/chevron-expand.d.ts +8 -0
  1098. package/dist/esm/icons/chevron-expand.d.ts.map +1 -0
  1099. package/dist/esm/icons/chevron-expand.js +19 -0
  1100. package/dist/esm/icons/chevron-expand.js.map +1 -0
  1101. package/dist/esm/icons/chevron-left-bold.d.ts +8 -0
  1102. package/dist/esm/icons/chevron-left-bold.d.ts.map +1 -0
  1103. package/dist/esm/icons/chevron-left-bold.js +19 -0
  1104. package/dist/esm/icons/chevron-left-bold.js.map +1 -0
  1105. package/dist/esm/icons/chevron-left.d.ts +8 -0
  1106. package/dist/esm/icons/chevron-left.d.ts.map +1 -0
  1107. package/dist/esm/icons/chevron-left.js +19 -0
  1108. package/dist/esm/icons/chevron-left.js.map +1 -0
  1109. package/dist/esm/icons/chevron-right-bold.d.ts +8 -0
  1110. package/dist/esm/icons/chevron-right-bold.d.ts.map +1 -0
  1111. package/dist/esm/icons/chevron-right-bold.js +19 -0
  1112. package/dist/esm/icons/chevron-right-bold.js.map +1 -0
  1113. package/dist/esm/icons/chevron-right.d.ts +8 -0
  1114. package/dist/esm/icons/chevron-right.d.ts.map +1 -0
  1115. package/dist/esm/icons/chevron-right.js +19 -0
  1116. package/dist/esm/icons/chevron-right.js.map +1 -0
  1117. package/dist/esm/icons/chevron-up-bold.d.ts +8 -0
  1118. package/dist/esm/icons/chevron-up-bold.d.ts.map +1 -0
  1119. package/dist/esm/icons/chevron-up-bold.js +19 -0
  1120. package/dist/esm/icons/chevron-up-bold.js.map +1 -0
  1121. package/dist/esm/icons/chevron-up.d.ts +8 -0
  1122. package/dist/esm/icons/chevron-up.d.ts.map +1 -0
  1123. package/dist/esm/icons/chevron-up.js +19 -0
  1124. package/dist/esm/icons/chevron-up.js.map +1 -0
  1125. package/dist/esm/icons/circle-bold-fill.d.ts +8 -0
  1126. package/dist/esm/icons/circle-bold-fill.d.ts.map +1 -0
  1127. package/dist/esm/icons/{minus.js → circle-bold-fill.js} +6 -6
  1128. package/dist/esm/icons/circle-bold-fill.js.map +1 -0
  1129. package/dist/esm/icons/close-bold.d.ts +8 -0
  1130. package/dist/esm/icons/close-bold.d.ts.map +1 -0
  1131. package/dist/esm/icons/close-bold.js +19 -0
  1132. package/dist/esm/icons/close-bold.js.map +1 -0
  1133. package/dist/esm/icons/close-circle-fill.d.ts +8 -0
  1134. package/dist/esm/icons/close-circle-fill.d.ts.map +1 -0
  1135. package/dist/esm/icons/close-circle-fill.js +19 -0
  1136. package/dist/esm/icons/close-circle-fill.js.map +1 -0
  1137. package/dist/esm/icons/close.d.ts +8 -0
  1138. package/dist/esm/icons/close.d.ts.map +1 -0
  1139. package/dist/esm/icons/close.js +19 -0
  1140. package/dist/esm/icons/close.js.map +1 -0
  1141. package/dist/esm/icons/coins-bill.d.ts +8 -0
  1142. package/dist/esm/icons/coins-bill.d.ts.map +1 -0
  1143. package/dist/esm/icons/coins-bill.js +19 -0
  1144. package/dist/esm/icons/coins-bill.js.map +1 -0
  1145. package/dist/esm/icons/copy-paste.d.ts +8 -0
  1146. package/dist/esm/icons/copy-paste.d.ts.map +1 -0
  1147. package/dist/esm/icons/copy-paste.js +19 -0
  1148. package/dist/esm/icons/copy-paste.js.map +1 -0
  1149. package/dist/esm/icons/copy.d.ts +8 -0
  1150. package/dist/esm/icons/copy.d.ts.map +1 -0
  1151. package/dist/esm/icons/copy.js +19 -0
  1152. package/dist/esm/icons/copy.js.map +1 -0
  1153. package/dist/esm/icons/delivery-box.d.ts +8 -0
  1154. package/dist/esm/icons/delivery-box.d.ts.map +1 -0
  1155. package/dist/esm/icons/delivery-box.js +19 -0
  1156. package/dist/esm/icons/delivery-box.js.map +1 -0
  1157. package/dist/esm/icons/delivery-plane.d.ts +8 -0
  1158. package/dist/esm/icons/delivery-plane.d.ts.map +1 -0
  1159. package/dist/esm/icons/delivery-plane.js +19 -0
  1160. package/dist/esm/icons/delivery-plane.js.map +1 -0
  1161. package/dist/esm/icons/delivery-truck-fill.d.ts +8 -0
  1162. package/dist/esm/icons/delivery-truck-fill.d.ts.map +1 -0
  1163. package/dist/esm/icons/delivery-truck-fill.js +19 -0
  1164. package/dist/esm/icons/delivery-truck-fill.js.map +1 -0
  1165. package/dist/esm/icons/delivery-truck.d.ts +8 -0
  1166. package/dist/esm/icons/delivery-truck.d.ts.map +1 -0
  1167. package/dist/esm/icons/delivery-truck.js +19 -0
  1168. package/dist/esm/icons/delivery-truck.js.map +1 -0
  1169. package/dist/esm/icons/download.d.ts +8 -0
  1170. package/dist/esm/icons/download.d.ts.map +1 -0
  1171. package/dist/esm/icons/download.js +19 -0
  1172. package/dist/esm/icons/download.js.map +1 -0
  1173. package/dist/esm/icons/email-open.d.ts +8 -0
  1174. package/dist/esm/icons/email-open.d.ts.map +1 -0
  1175. package/dist/esm/icons/email-open.js +19 -0
  1176. package/dist/esm/icons/email-open.js.map +1 -0
  1177. package/dist/esm/icons/email.d.ts +8 -0
  1178. package/dist/esm/icons/email.d.ts.map +1 -0
  1179. package/dist/esm/icons/email.js +19 -0
  1180. package/dist/esm/icons/email.js.map +1 -0
  1181. package/dist/esm/icons/file-finances.d.ts +8 -0
  1182. package/dist/esm/icons/file-finances.d.ts.map +1 -0
  1183. package/dist/esm/icons/file-finances.js +19 -0
  1184. package/dist/esm/icons/file-finances.js.map +1 -0
  1185. package/dist/esm/icons/home.d.ts +8 -0
  1186. package/dist/esm/icons/home.d.ts.map +1 -0
  1187. package/dist/esm/icons/home.js +19 -0
  1188. package/dist/esm/icons/home.js.map +1 -0
  1189. package/dist/esm/icons/image-fill.d.ts +8 -0
  1190. package/dist/esm/icons/image-fill.d.ts.map +1 -0
  1191. package/dist/esm/icons/image-fill.js +19 -0
  1192. package/dist/esm/icons/image-fill.js.map +1 -0
  1193. package/dist/esm/icons/image.d.ts +8 -0
  1194. package/dist/esm/icons/image.d.ts.map +1 -0
  1195. package/dist/esm/icons/image.js +19 -0
  1196. package/dist/esm/icons/image.js.map +1 -0
  1197. package/dist/esm/icons/index.d.ts +127 -15
  1198. package/dist/esm/icons/index.d.ts.map +1 -1
  1199. package/dist/esm/icons/index.js +127 -15
  1200. package/dist/esm/icons/index.js.map +1 -1
  1201. package/dist/esm/icons/info-circle-fill.js +1 -1
  1202. package/dist/esm/icons/info-circle-fill.js.map +1 -1
  1203. package/dist/esm/icons/info-circle.d.ts +8 -0
  1204. package/dist/esm/icons/info-circle.d.ts.map +1 -0
  1205. package/dist/esm/icons/{unstable-info-circle.js → info-circle.js} +6 -6
  1206. package/dist/esm/icons/info-circle.js.map +1 -0
  1207. package/dist/esm/icons/keyboard.d.ts +8 -0
  1208. package/dist/esm/icons/keyboard.d.ts.map +1 -0
  1209. package/dist/esm/icons/keyboard.js +19 -0
  1210. package/dist/esm/icons/keyboard.js.map +1 -0
  1211. package/dist/esm/icons/layers.d.ts +8 -0
  1212. package/dist/esm/icons/layers.d.ts.map +1 -0
  1213. package/dist/esm/icons/layers.js +19 -0
  1214. package/dist/esm/icons/layers.js.map +1 -0
  1215. package/dist/esm/icons/link.d.ts +8 -0
  1216. package/dist/esm/icons/link.d.ts.map +1 -0
  1217. package/dist/esm/icons/link.js +19 -0
  1218. package/dist/esm/icons/link.js.map +1 -0
  1219. package/dist/esm/icons/list-bullets.d.ts +8 -0
  1220. package/dist/esm/icons/list-bullets.d.ts.map +1 -0
  1221. package/dist/esm/icons/list-bullets.js +19 -0
  1222. package/dist/esm/icons/list-bullets.js.map +1 -0
  1223. package/dist/esm/icons/list-numbers.d.ts +8 -0
  1224. package/dist/esm/icons/list-numbers.d.ts.map +1 -0
  1225. package/dist/esm/icons/list-numbers.js +19 -0
  1226. package/dist/esm/icons/list-numbers.js.map +1 -0
  1227. package/dist/esm/icons/lock-fill.d.ts +8 -0
  1228. package/dist/esm/icons/lock-fill.d.ts.map +1 -0
  1229. package/dist/esm/icons/lock-fill.js +19 -0
  1230. package/dist/esm/icons/lock-fill.js.map +1 -0
  1231. package/dist/esm/icons/lock-open-fill.d.ts +8 -0
  1232. package/dist/esm/icons/lock-open-fill.d.ts.map +1 -0
  1233. package/dist/esm/icons/lock-open-fill.js +19 -0
  1234. package/dist/esm/icons/lock-open-fill.js.map +1 -0
  1235. package/dist/esm/icons/lock-open.d.ts +8 -0
  1236. package/dist/esm/icons/lock-open.d.ts.map +1 -0
  1237. package/dist/esm/icons/lock-open.js +19 -0
  1238. package/dist/esm/icons/lock-open.js.map +1 -0
  1239. package/dist/esm/icons/lock.d.ts +8 -0
  1240. package/dist/esm/icons/lock.d.ts.map +1 -0
  1241. package/dist/esm/icons/lock.js +19 -0
  1242. package/dist/esm/icons/lock.js.map +1 -0
  1243. package/dist/esm/icons/menu-bold.d.ts +8 -0
  1244. package/dist/esm/icons/menu-bold.d.ts.map +1 -0
  1245. package/dist/esm/icons/menu-bold.js +19 -0
  1246. package/dist/esm/icons/menu-bold.js.map +1 -0
  1247. package/dist/esm/icons/menu-grid.d.ts +8 -0
  1248. package/dist/esm/icons/menu-grid.d.ts.map +1 -0
  1249. package/dist/esm/icons/menu-grid.js +19 -0
  1250. package/dist/esm/icons/menu-grid.js.map +1 -0
  1251. package/dist/esm/icons/menu-more-horizontal.d.ts +8 -0
  1252. package/dist/esm/icons/menu-more-horizontal.d.ts.map +1 -0
  1253. package/dist/esm/icons/menu-more-horizontal.js +19 -0
  1254. package/dist/esm/icons/menu-more-horizontal.js.map +1 -0
  1255. package/dist/esm/icons/menu-more-vertical.d.ts +8 -0
  1256. package/dist/esm/icons/menu-more-vertical.d.ts.map +1 -0
  1257. package/dist/esm/icons/menu-more-vertical.js +19 -0
  1258. package/dist/esm/icons/menu-more-vertical.js.map +1 -0
  1259. package/dist/esm/icons/menu.d.ts +8 -0
  1260. package/dist/esm/icons/menu.d.ts.map +1 -0
  1261. package/dist/esm/icons/menu.js +19 -0
  1262. package/dist/esm/icons/menu.js.map +1 -0
  1263. package/dist/esm/icons/pencil-fill.d.ts +8 -0
  1264. package/dist/esm/icons/pencil-fill.d.ts.map +1 -0
  1265. package/dist/esm/icons/pencil-fill.js +19 -0
  1266. package/dist/esm/icons/pencil-fill.js.map +1 -0
  1267. package/dist/esm/icons/pencil.d.ts +8 -0
  1268. package/dist/esm/icons/pencil.d.ts.map +1 -0
  1269. package/dist/esm/icons/pencil.js +19 -0
  1270. package/dist/esm/icons/pencil.js.map +1 -0
  1271. package/dist/esm/icons/placeholder.d.ts +8 -0
  1272. package/dist/esm/icons/placeholder.d.ts.map +1 -0
  1273. package/dist/esm/icons/{error-circle-fill.js → placeholder.js} +6 -6
  1274. package/dist/esm/icons/placeholder.js.map +1 -0
  1275. package/dist/esm/icons/question-circle-fill.d.ts +8 -0
  1276. package/dist/esm/icons/question-circle-fill.d.ts.map +1 -0
  1277. package/dist/esm/icons/question-circle-fill.js +19 -0
  1278. package/dist/esm/icons/question-circle-fill.js.map +1 -0
  1279. package/dist/esm/icons/question-circle.d.ts +8 -0
  1280. package/dist/esm/icons/question-circle.d.ts.map +1 -0
  1281. package/dist/esm/icons/question-circle.js +19 -0
  1282. package/dist/esm/icons/question-circle.js.map +1 -0
  1283. package/dist/esm/icons/rating-star-bold-fill.d.ts +8 -0
  1284. package/dist/esm/icons/rating-star-bold-fill.d.ts.map +1 -0
  1285. package/dist/esm/icons/rating-star-bold-fill.js +19 -0
  1286. package/dist/esm/icons/rating-star-bold-fill.js.map +1 -0
  1287. package/dist/esm/icons/rating-star-bold.d.ts +8 -0
  1288. package/dist/esm/icons/rating-star-bold.d.ts.map +1 -0
  1289. package/dist/esm/icons/rating-star-bold.js +19 -0
  1290. package/dist/esm/icons/rating-star-bold.js.map +1 -0
  1291. package/dist/esm/icons/rating-star-fill.d.ts +8 -0
  1292. package/dist/esm/icons/rating-star-fill.d.ts.map +1 -0
  1293. package/dist/esm/icons/rating-star-fill.js +19 -0
  1294. package/dist/esm/icons/rating-star-fill.js.map +1 -0
  1295. package/dist/esm/icons/save.d.ts +8 -0
  1296. package/dist/esm/icons/save.d.ts.map +1 -0
  1297. package/dist/esm/icons/save.js +19 -0
  1298. package/dist/esm/icons/save.js.map +1 -0
  1299. package/dist/esm/icons/search-bold.d.ts +8 -0
  1300. package/dist/esm/icons/search-bold.d.ts.map +1 -0
  1301. package/dist/esm/icons/search-bold.js +19 -0
  1302. package/dist/esm/icons/search-bold.js.map +1 -0
  1303. package/dist/esm/icons/search.d.ts +8 -0
  1304. package/dist/esm/icons/search.d.ts.map +1 -0
  1305. package/dist/esm/icons/search.js +19 -0
  1306. package/dist/esm/icons/search.js.map +1 -0
  1307. package/dist/esm/icons/settings-cog-fill.d.ts +8 -0
  1308. package/dist/esm/icons/settings-cog-fill.d.ts.map +1 -0
  1309. package/dist/esm/icons/settings-cog-fill.js +19 -0
  1310. package/dist/esm/icons/settings-cog-fill.js.map +1 -0
  1311. package/dist/esm/icons/settings-cog.d.ts +8 -0
  1312. package/dist/esm/icons/settings-cog.d.ts.map +1 -0
  1313. package/dist/esm/icons/settings-cog.js +19 -0
  1314. package/dist/esm/icons/settings-cog.js.map +1 -0
  1315. package/dist/esm/icons/settings-slider.d.ts +8 -0
  1316. package/dist/esm/icons/settings-slider.d.ts.map +1 -0
  1317. package/dist/esm/icons/settings-slider.js +19 -0
  1318. package/dist/esm/icons/settings-slider.js.map +1 -0
  1319. package/dist/esm/icons/shirt-add.d.ts +8 -0
  1320. package/dist/esm/icons/shirt-add.d.ts.map +1 -0
  1321. package/dist/esm/icons/shirt-add.js +19 -0
  1322. package/dist/esm/icons/shirt-add.js.map +1 -0
  1323. package/dist/esm/icons/sort-ascending-alt.d.ts +8 -0
  1324. package/dist/esm/icons/sort-ascending-alt.d.ts.map +1 -0
  1325. package/dist/esm/icons/sort-ascending-alt.js +19 -0
  1326. package/dist/esm/icons/sort-ascending-alt.js.map +1 -0
  1327. package/dist/esm/icons/sort-ascending.d.ts +8 -0
  1328. package/dist/esm/icons/sort-ascending.d.ts.map +1 -0
  1329. package/dist/esm/icons/sort-ascending.js +19 -0
  1330. package/dist/esm/icons/sort-ascending.js.map +1 -0
  1331. package/dist/esm/icons/sort-descending-alt.d.ts +8 -0
  1332. package/dist/esm/icons/sort-descending-alt.d.ts.map +1 -0
  1333. package/dist/esm/icons/sort-descending-alt.js +19 -0
  1334. package/dist/esm/icons/sort-descending-alt.js.map +1 -0
  1335. package/dist/esm/icons/sort-descending.d.ts +8 -0
  1336. package/dist/esm/icons/sort-descending.d.ts.map +1 -0
  1337. package/dist/esm/icons/sort-descending.js +19 -0
  1338. package/dist/esm/icons/{checkmark-small.js.map → sort-descending.js.map} +1 -1
  1339. package/dist/esm/icons/sort-unsorted.d.ts +8 -0
  1340. package/dist/esm/icons/sort-unsorted.d.ts.map +1 -0
  1341. package/dist/esm/icons/sort-unsorted.js +19 -0
  1342. package/dist/esm/icons/sort-unsorted.js.map +1 -0
  1343. package/dist/esm/icons/subtract-bold.d.ts +8 -0
  1344. package/dist/esm/icons/subtract-bold.d.ts.map +1 -0
  1345. package/dist/esm/icons/subtract-bold.js +19 -0
  1346. package/dist/esm/icons/subtract-bold.js.map +1 -0
  1347. package/dist/esm/icons/subtract.d.ts +8 -0
  1348. package/dist/esm/icons/subtract.d.ts.map +1 -0
  1349. package/dist/esm/icons/subtract.js +19 -0
  1350. package/dist/esm/icons/subtract.js.map +1 -0
  1351. package/dist/esm/icons/text-alignment-center.d.ts +8 -0
  1352. package/dist/esm/icons/text-alignment-center.d.ts.map +1 -0
  1353. package/dist/esm/icons/{checkmark-circle-fill.js → text-alignment-center.js} +6 -6
  1354. package/dist/esm/icons/{checkmark-circle-fill.js.map → text-alignment-center.js.map} +1 -1
  1355. package/dist/esm/icons/text-alignment-justify.d.ts +8 -0
  1356. package/dist/esm/icons/text-alignment-justify.d.ts.map +1 -0
  1357. package/dist/esm/icons/text-alignment-justify.js +19 -0
  1358. package/dist/esm/icons/text-alignment-justify.js.map +1 -0
  1359. package/dist/esm/icons/text-alignment-left.d.ts +8 -0
  1360. package/dist/esm/icons/text-alignment-left.d.ts.map +1 -0
  1361. package/dist/esm/icons/text-alignment-left.js +19 -0
  1362. package/dist/esm/icons/text-alignment-left.js.map +1 -0
  1363. package/dist/esm/icons/text-alignment-right.d.ts +8 -0
  1364. package/dist/esm/icons/text-alignment-right.d.ts.map +1 -0
  1365. package/dist/esm/icons/text-alignment-right.js +19 -0
  1366. package/dist/esm/icons/text-alignment-right.js.map +1 -0
  1367. package/dist/esm/icons/text-bold.d.ts +8 -0
  1368. package/dist/esm/icons/text-bold.d.ts.map +1 -0
  1369. package/dist/esm/icons/text-bold.js +19 -0
  1370. package/dist/esm/icons/text-bold.js.map +1 -0
  1371. package/dist/esm/icons/text-italic.d.ts +8 -0
  1372. package/dist/esm/icons/text-italic.d.ts.map +1 -0
  1373. package/dist/esm/icons/{minus-small.js → text-italic.js} +6 -6
  1374. package/dist/esm/icons/text-italic.js.map +1 -0
  1375. package/dist/esm/icons/text-strikethrough.d.ts +8 -0
  1376. package/dist/esm/icons/text-strikethrough.d.ts.map +1 -0
  1377. package/dist/esm/icons/text-strikethrough.js +19 -0
  1378. package/dist/esm/icons/text-strikethrough.js.map +1 -0
  1379. package/dist/esm/icons/text-underline.d.ts +8 -0
  1380. package/dist/esm/icons/text-underline.d.ts.map +1 -0
  1381. package/dist/esm/icons/text-underline.js +19 -0
  1382. package/dist/esm/icons/text-underline.js.map +1 -0
  1383. package/dist/esm/icons/trash-fill.d.ts +8 -0
  1384. package/dist/esm/icons/trash-fill.d.ts.map +1 -0
  1385. package/dist/esm/icons/trash-fill.js +19 -0
  1386. package/dist/esm/icons/trash-fill.js.map +1 -0
  1387. package/dist/esm/icons/trash.d.ts +8 -0
  1388. package/dist/esm/icons/trash.d.ts.map +1 -0
  1389. package/dist/esm/icons/trash.js +19 -0
  1390. package/dist/esm/icons/trash.js.map +1 -0
  1391. package/dist/esm/icons/view-off.d.ts +8 -0
  1392. package/dist/esm/icons/view-off.d.ts.map +1 -0
  1393. package/dist/esm/icons/view-off.js +19 -0
  1394. package/dist/esm/icons/view-off.js.map +1 -0
  1395. package/dist/esm/icons/view.d.ts +8 -0
  1396. package/dist/esm/icons/view.d.ts.map +1 -0
  1397. package/dist/esm/icons/view.js +19 -0
  1398. package/dist/esm/icons/view.js.map +1 -0
  1399. package/dist/esm/icons/warning-circle-fill.js +1 -1
  1400. package/dist/esm/icons/warning-circle-fill.js.map +1 -1
  1401. package/dist/esm/icons/warning-fill.d.ts +8 -0
  1402. package/dist/esm/icons/warning-fill.d.ts.map +1 -0
  1403. package/dist/esm/icons/warning-fill.js +19 -0
  1404. package/dist/esm/icons/warning-fill.js.map +1 -0
  1405. package/dist/esm/icons/warning.d.ts +8 -0
  1406. package/dist/esm/icons/warning.d.ts.map +1 -0
  1407. package/dist/esm/icons/warning.js +19 -0
  1408. package/dist/esm/icons/warning.js.map +1 -0
  1409. package/dist/esm/icons/zoom-in.d.ts +8 -0
  1410. package/dist/esm/icons/zoom-in.d.ts.map +1 -0
  1411. package/dist/esm/icons/zoom-in.js +19 -0
  1412. package/dist/esm/icons/zoom-in.js.map +1 -0
  1413. package/dist/esm/icons/zoom-out.d.ts +8 -0
  1414. package/dist/esm/icons/zoom-out.d.ts.map +1 -0
  1415. package/dist/esm/icons/zoom-out.js +19 -0
  1416. package/dist/esm/icons/zoom-out.js.map +1 -0
  1417. package/dist/esm/index.d.ts +21 -13
  1418. package/dist/esm/index.d.ts.map +1 -1
  1419. package/dist/esm/index.js +18 -12
  1420. package/dist/esm/index.js.map +1 -1
  1421. package/dist/esm/utils/style/types.d.ts +1 -0
  1422. package/dist/esm/utils/style/types.d.ts.map +1 -1
  1423. package/dist/esm/utils/style/types.js.map +1 -1
  1424. package/dist/esm/utils/use-server-effect-event.d.ts +3 -0
  1425. package/dist/esm/utils/use-server-effect-event.d.ts.map +1 -0
  1426. package/dist/esm/utils/use-server-effect-event.js +16 -0
  1427. package/dist/esm/utils/use-server-effect-event.js.map +1 -0
  1428. package/dist/esm/utils/use-server-layout-effect.d.ts +4 -0
  1429. package/dist/esm/utils/use-server-layout-effect.d.ts.map +1 -0
  1430. package/dist/esm/utils/use-server-layout-effect.js +4 -0
  1431. package/dist/esm/utils/use-server-layout-effect.js.map +1 -0
  1432. package/dist-styles/core.css +1 -0
  1433. package/dist-styles/normalize.css +2 -0
  1434. package/dist-styles/styles.css +1 -1
  1435. package/package.json +46 -13
  1436. package/dist/commonjs/components/table/table-row.d.ts.map +0 -1
  1437. package/dist/commonjs/components/table/table-row.js.map +0 -1
  1438. package/dist/commonjs/icons/accounting-document.d.ts.map +0 -1
  1439. package/dist/commonjs/icons/accounting-document.js +0 -24
  1440. package/dist/commonjs/icons/accounting-document.js.map +0 -1
  1441. package/dist/commonjs/icons/alert-triangle.d.ts.map +0 -1
  1442. package/dist/commonjs/icons/alert-triangle.js.map +0 -1
  1443. package/dist/commonjs/icons/checkmark-circle-fill.d.ts.map +0 -1
  1444. package/dist/commonjs/icons/checkmark-circle.d.ts.map +0 -1
  1445. package/dist/commonjs/icons/checkmark-circle.js.map +0 -1
  1446. package/dist/commonjs/icons/checkmark-small.d.ts.map +0 -1
  1447. package/dist/commonjs/icons/checkmark.d.ts.map +0 -1
  1448. package/dist/commonjs/icons/checkmark.js.map +0 -1
  1449. package/dist/commonjs/icons/chevron-down-fill.d.ts +0 -8
  1450. package/dist/commonjs/icons/chevron-down-fill.d.ts.map +0 -1
  1451. package/dist/commonjs/icons/error-circle-fill.d.ts +0 -8
  1452. package/dist/commonjs/icons/error-circle-fill.d.ts.map +0 -1
  1453. package/dist/commonjs/icons/error-circle-fill.js.map +0 -1
  1454. package/dist/commonjs/icons/minus-small.d.ts.map +0 -1
  1455. package/dist/commonjs/icons/minus-small.js.map +0 -1
  1456. package/dist/commonjs/icons/minus.d.ts.map +0 -1
  1457. package/dist/commonjs/icons/minus.js.map +0 -1
  1458. package/dist/commonjs/icons/unstable-chevron-left-fill.d.ts +0 -8
  1459. package/dist/commonjs/icons/unstable-chevron-left-fill.d.ts.map +0 -1
  1460. package/dist/commonjs/icons/unstable-chevron-left-fill.js +0 -24
  1461. package/dist/commonjs/icons/unstable-chevron-left-fill.js.map +0 -1
  1462. package/dist/commonjs/icons/unstable-chevron-right-fill.d.ts +0 -8
  1463. package/dist/commonjs/icons/unstable-chevron-right-fill.d.ts.map +0 -1
  1464. package/dist/commonjs/icons/unstable-chevron-right-fill.js +0 -24
  1465. package/dist/commonjs/icons/unstable-chevron-right-fill.js.map +0 -1
  1466. package/dist/commonjs/icons/unstable-close.d.ts +0 -8
  1467. package/dist/commonjs/icons/unstable-close.d.ts.map +0 -1
  1468. package/dist/commonjs/icons/unstable-close.js.map +0 -1
  1469. package/dist/commonjs/icons/unstable-info-circle.d.ts +0 -8
  1470. package/dist/commonjs/icons/unstable-info-circle.d.ts.map +0 -1
  1471. package/dist/commonjs/icons/unstable-info-circle.js.map +0 -1
  1472. package/dist/commonjs/icons/unstable-placeholder.d.ts +0 -8
  1473. package/dist/commonjs/icons/unstable-placeholder.d.ts.map +0 -1
  1474. package/dist/commonjs/icons/unstable-placeholder.js +0 -24
  1475. package/dist/commonjs/icons/unstable-placeholder.js.map +0 -1
  1476. package/dist/esm/components/table/table-row.d.ts.map +0 -1
  1477. package/dist/esm/components/table/table-row.js +0 -11
  1478. package/dist/esm/components/table/table-row.js.map +0 -1
  1479. package/dist/esm/icons/accounting-document.d.ts +0 -8
  1480. package/dist/esm/icons/accounting-document.d.ts.map +0 -1
  1481. package/dist/esm/icons/accounting-document.js +0 -19
  1482. package/dist/esm/icons/accounting-document.js.map +0 -1
  1483. package/dist/esm/icons/alert-triangle.d.ts +0 -8
  1484. package/dist/esm/icons/alert-triangle.d.ts.map +0 -1
  1485. package/dist/esm/icons/alert-triangle.js +0 -19
  1486. package/dist/esm/icons/alert-triangle.js.map +0 -1
  1487. package/dist/esm/icons/checkmark-circle-fill.d.ts +0 -8
  1488. package/dist/esm/icons/checkmark-circle-fill.d.ts.map +0 -1
  1489. package/dist/esm/icons/checkmark-circle.d.ts +0 -8
  1490. package/dist/esm/icons/checkmark-circle.d.ts.map +0 -1
  1491. package/dist/esm/icons/checkmark-circle.js +0 -19
  1492. package/dist/esm/icons/checkmark-circle.js.map +0 -1
  1493. package/dist/esm/icons/checkmark-small.d.ts +0 -8
  1494. package/dist/esm/icons/checkmark-small.d.ts.map +0 -1
  1495. package/dist/esm/icons/checkmark.d.ts.map +0 -1
  1496. package/dist/esm/icons/checkmark.js.map +0 -1
  1497. package/dist/esm/icons/chevron-down-fill.d.ts +0 -8
  1498. package/dist/esm/icons/chevron-down-fill.d.ts.map +0 -1
  1499. package/dist/esm/icons/error-circle-fill.d.ts +0 -8
  1500. package/dist/esm/icons/error-circle-fill.d.ts.map +0 -1
  1501. package/dist/esm/icons/error-circle-fill.js.map +0 -1
  1502. package/dist/esm/icons/minus-small.d.ts +0 -8
  1503. package/dist/esm/icons/minus-small.d.ts.map +0 -1
  1504. package/dist/esm/icons/minus-small.js.map +0 -1
  1505. package/dist/esm/icons/minus.d.ts.map +0 -1
  1506. package/dist/esm/icons/minus.js.map +0 -1
  1507. package/dist/esm/icons/unstable-chevron-left-fill.d.ts +0 -8
  1508. package/dist/esm/icons/unstable-chevron-left-fill.d.ts.map +0 -1
  1509. package/dist/esm/icons/unstable-chevron-left-fill.js +0 -19
  1510. package/dist/esm/icons/unstable-chevron-left-fill.js.map +0 -1
  1511. package/dist/esm/icons/unstable-chevron-right-fill.d.ts +0 -8
  1512. package/dist/esm/icons/unstable-chevron-right-fill.d.ts.map +0 -1
  1513. package/dist/esm/icons/unstable-chevron-right-fill.js +0 -19
  1514. package/dist/esm/icons/unstable-chevron-right-fill.js.map +0 -1
  1515. package/dist/esm/icons/unstable-close.d.ts +0 -8
  1516. package/dist/esm/icons/unstable-close.d.ts.map +0 -1
  1517. package/dist/esm/icons/unstable-close.js +0 -19
  1518. package/dist/esm/icons/unstable-close.js.map +0 -1
  1519. package/dist/esm/icons/unstable-info-circle.d.ts +0 -8
  1520. package/dist/esm/icons/unstable-info-circle.d.ts.map +0 -1
  1521. package/dist/esm/icons/unstable-info-circle.js.map +0 -1
  1522. package/dist/esm/icons/unstable-placeholder.d.ts +0 -8
  1523. package/dist/esm/icons/unstable-placeholder.d.ts.map +0 -1
  1524. package/dist/esm/icons/unstable-placeholder.js +0 -19
  1525. package/dist/esm/icons/unstable-placeholder.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-collection.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/column-collection.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createContext, type ReactNode, type RefObject, useContext, useMemo, useRef, useState } from 'react';\nimport { useServerEffectEvent } from '../../../utils/use-server-effect-event.js';\n\ninterface ColumnCollection {\n columns: Record<string, ColumnData>;\n setColumns: (columns: Record<string, ColumnData>) => void;\n}\n\ninterface ColumnData {\n number?: number;\n width?: string | number;\n contentAlignment: ColumnContentAlignment;\n}\n\n/** Represents the direction of content alignment within a table column. */\nexport type ColumnContentAlignment = 'start' | 'center' | 'end';\n\nconst ColumnCollectionContext = createContext<ColumnCollection | null>(null);\n\nconst EMPTY_OBJECT = {};\n\nexport function ColumnCollectionProvider({ children }: { children: ReactNode }) {\n // When column collection is updated, we want to trigger a re-render,\n // but we also want immediate access to the updated collection during SSR.\n // Hence why it is stored as both a ref and a state.\n const columnsRef = useRef<Record<string, ColumnData>>(EMPTY_OBJECT);\n const [_columns, _setColumns] = useState<Record<string, ColumnData>>(EMPTY_OBJECT);\n\n const collection: ColumnCollection = useMemo(\n () => ({\n get columns() {\n return columnsRef.current;\n },\n setColumns: (columns) => {\n columnsRef.current = columns;\n _setColumns(columns);\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_columns],\n );\n\n return <ColumnCollectionContext.Provider value={collection}>{children}</ColumnCollectionContext.Provider>;\n}\n\ntype ColumnRegistrator = (key: string, data: ColumnData) => () => void;\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useColumnRegistration(): ColumnRegistrator {\n const columnCollection = useContext(ColumnCollectionContext);\n if (!columnCollection) {\n throw new Error('Cannot use column registration outside of a table');\n }\n\n return useServerEffectEvent((key, data) => {\n columnCollection.setColumns({\n ...columnCollection.columns,\n [key]: data,\n });\n\n return () => {\n const { columns } = columnCollection;\n\n if (columns[key] === data) {\n delete columns[key];\n columnCollection.setColumns({ ...columns });\n }\n };\n });\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useColumnData(key: string): Readonly<ColumnData> | undefined {\n const columnCollection = useContext(ColumnCollectionContext);\n if (!columnCollection) {\n throw new Error('Cannot use column data outside of a table');\n }\n\n return columnCollection.columns[key];\n}\n\nexport interface UseEmptyStateCell {\n columnKey: string;\n colSpan: number;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useEmptyStateCell(ref: RefObject<HTMLTableCellElement | null>): UseEmptyStateCell {\n const columnCollection = useContext(ColumnCollectionContext);\n if (!columnCollection) {\n throw new Error('Cannot use empty state cell outside of a table');\n }\n\n // Empty state cell should have the same column key as the first column in the table, so find it\n const parentTableElement = ref.current?.closest('table');\n const firstColumn = parentTableElement?.querySelector('[data-cell-row-key][data-cell-column-key]');\n\n return {\n columnKey: (firstColumn as HTMLTableCellElement | undefined)?.dataset.cellColumnKey ?? '???',\n colSpan: Object.keys(columnCollection.columns).length,\n };\n}\n"]}
@@ -1,10 +1,14 @@
1
1
  import { type ReactNode } from 'react';
2
2
  export interface TableRowState {
3
3
  rowKey: string;
4
+ isSelected?: boolean;
5
+ onSelectionToggle?: (value?: boolean) => void;
4
6
  }
5
- export declare function TableRowStateProvider({ children, rowKey }: {
7
+ export declare function TableRowStateProvider({ children, rowKey, isSelected, onSelectionToggle, }: {
6
8
  children: ReactNode;
7
9
  rowKey: string;
10
+ isSelected?: boolean;
11
+ onSelectionToggle?: (value?: boolean) => void;
8
12
  }): import("react/jsx-runtime").JSX.Element;
9
13
  export declare function useTableRowState(): TableRowState;
10
14
  //# sourceMappingURL=row-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"row-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,2CASlG;AAGD,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD"}
1
+ {"version":3,"file":"row-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAID,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,iBAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C,2CAaA;AAGD,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD"}
@@ -1,10 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffectEvent } from '@react-aria/utils';
2
3
  import { createContext, useContext, useMemo } from 'react';
3
4
  const TableRowStateContext = createContext(null);
4
- export function TableRowStateProvider({ children, rowKey }) {
5
+ export function TableRowStateProvider({ children, rowKey, isSelected, onSelectionToggle, }) {
6
+ const onSelectionToggleMemoized = useEffectEvent(onSelectionToggle);
5
7
  const tableRowState = useMemo(() => ({
6
8
  rowKey,
7
- }), [rowKey]);
9
+ isSelected,
10
+ onSelectionToggle: onSelectionToggleMemoized,
11
+ }), [rowKey, isSelected, onSelectionToggleMemoized]);
8
12
  return _jsx(TableRowStateContext.Provider, { value: tableRowState, children: children });
9
13
  }
10
14
  // eslint-disable-next-line react-refresh/only-export-components
@@ -1 +1 @@
1
- {"version":3,"file":"row-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAM3E,MAAM,oBAAoB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEvE,MAAM,UAAU,qBAAqB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAA2C;IACjG,MAAM,aAAa,GAAkB,OAAO,CAC1C,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;KACP,CAAC,EACF,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa,YAAG,QAAQ,GAAiC,CAAC;AACzG,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,aAAa,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { createContext, type ReactNode, useContext, useMemo } from 'react';\n\nexport interface TableRowState {\n rowKey: string;\n}\n\nconst TableRowStateContext = createContext<TableRowState | null>(null);\n\nexport function TableRowStateProvider({ children, rowKey }: { children: ReactNode; rowKey: string }) {\n const tableRowState: TableRowState = useMemo(\n () => ({\n rowKey,\n }),\n [rowKey],\n );\n\n return <TableRowStateContext.Provider value={tableRowState}>{children}</TableRowStateContext.Provider>;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useTableRowState(): TableRowState {\n const tableRowState = useContext(TableRowStateContext);\n if (!tableRowState) {\n throw new Error('Cannot use table row state outside of a table row');\n }\n\n return tableRowState;\n}\n"]}
1
+ {"version":3,"file":"row-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/row-state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAQ3E,MAAM,oBAAoB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAEvE,MAAM,UAAU,qBAAqB,CAAC,EACpC,QAAQ,EACR,MAAM,EACN,UAAU,EACV,iBAAiB,GAMlB;IACC,MAAM,yBAAyB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAEpE,MAAM,aAAa,GAAkB,OAAO,CAC1C,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;QACN,UAAU;QACV,iBAAiB,EAAE,yBAAyB;KAC7C,CAAC,EACF,CAAC,MAAM,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAChD,CAAC;IAEF,OAAO,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa,YAAG,QAAQ,GAAiC,CAAC;AACzG,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,aAAa,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { useEffectEvent } from '@react-aria/utils';\nimport { createContext, type ReactNode, useContext, useMemo } from 'react';\n\nexport interface TableRowState {\n rowKey: string;\n isSelected?: boolean;\n onSelectionToggle?: (value?: boolean) => void;\n}\n\nconst TableRowStateContext = createContext<TableRowState | null>(null);\n\nexport function TableRowStateProvider({\n children,\n rowKey,\n isSelected,\n onSelectionToggle,\n}: {\n children: ReactNode;\n rowKey: string;\n isSelected?: boolean;\n onSelectionToggle?: (value?: boolean) => void;\n}) {\n const onSelectionToggleMemoized = useEffectEvent(onSelectionToggle);\n\n const tableRowState: TableRowState = useMemo(\n () => ({\n rowKey,\n isSelected,\n onSelectionToggle: onSelectionToggleMemoized,\n }),\n [rowKey, isSelected, onSelectionToggleMemoized],\n );\n\n return <TableRowStateContext.Provider value={tableRowState}>{children}</TableRowStateContext.Provider>;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useTableRowState(): TableRowState {\n const tableRowState = useContext(TableRowStateContext);\n if (!tableRowState) {\n throw new Error('Cannot use table row state outside of a table row');\n }\n\n return tableRowState;\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ /** Represents the type of row selection allowed within a table. */
3
+ export type RowSelectionMode = 'single' | 'multiple' | 'none';
4
+ export interface TableState {
5
+ rowSelectionMode: RowSelectionMode;
6
+ areAllRowsSelected?: boolean;
7
+ areSomeRowsSelected?: boolean;
8
+ onAllRowsSelectionToggle?: (value?: boolean) => void;
9
+ /** The selection state that will be applied to the next focused row. */
10
+ pendingRowSelectionState?: boolean;
11
+ setPendingRowSelectionState: (value: boolean | undefined) => void;
12
+ }
13
+ export declare function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle, }: {
14
+ children: ReactNode;
15
+ rowSelectionMode: RowSelectionMode;
16
+ areAllRowsSelected?: boolean;
17
+ areSomeRowsSelected?: boolean;
18
+ onAllRowsSelectionToggle?: (value?: boolean) => void;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ export declare function useTableState(): TableState;
21
+ //# sourceMappingURL=table-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-state.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAyC,MAAM,OAAO,CAAC;AAE7F,mEAAmE;AACnE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC;CACnE;AAID,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GACzB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD,2CAkCA;AAGD,wBAAgB,aAAa,IAAI,UAAU,CAO1C"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffectEvent } from '@react-aria/utils';
3
+ import { createContext, useContext, useMemo, useRef, useState } from 'react';
4
+ const TableStateContext = createContext(null);
5
+ export function TableStateProvider({ children, rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle, }) {
6
+ // When the pending selection state is updated, we want to trigger a re-render,
7
+ // but we also want immediate access to the new value.
8
+ // Hence why it is stored as both a ref and a state.
9
+ const pendingRowSelectionStateRef = useRef(undefined);
10
+ const [_pendingRowSelectionState, _setPendingRowSelectionState] = useState(undefined);
11
+ const onAllRowsSelectionToggleMemoized = useEffectEvent(onAllRowsSelectionToggle);
12
+ const tableState = useMemo(() => ({
13
+ rowSelectionMode,
14
+ areAllRowsSelected,
15
+ areSomeRowsSelected,
16
+ onAllRowsSelectionToggle: onAllRowsSelectionToggleMemoized,
17
+ get pendingRowSelectionState() {
18
+ return pendingRowSelectionStateRef.current;
19
+ },
20
+ setPendingRowSelectionState(pendingRowSelectionState) {
21
+ pendingRowSelectionStateRef.current = pendingRowSelectionState;
22
+ _setPendingRowSelectionState(pendingRowSelectionState);
23
+ },
24
+ }),
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ [
27
+ rowSelectionMode,
28
+ areAllRowsSelected,
29
+ areSomeRowsSelected,
30
+ onAllRowsSelectionToggleMemoized,
31
+ _pendingRowSelectionState,
32
+ ]);
33
+ return _jsx(TableStateContext.Provider, { value: tableState, children: children });
34
+ }
35
+ // eslint-disable-next-line react-refresh/only-export-components
36
+ export function useTableState() {
37
+ const tableState = useContext(TableStateContext);
38
+ if (!tableState) {
39
+ throw new Error('Cannot use table state outside of a table');
40
+ }
41
+ return tableState;
42
+ }
43
+ //# sourceMappingURL=table-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-state.js","sourceRoot":"","sources":["../../../../../src/components/table/contexts/table-state.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAe7F,MAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAC;AAEjE,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,GAOzB;IACC,+EAA+E;IAC/E,sDAAsD;IACtD,oDAAoD;IACpD,MAAM,2BAA2B,GAAG,MAAM,CAAsB,SAAS,CAAC,CAAC;IAC3E,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,QAAQ,CAAsB,SAAS,CAAC,CAAC;IAE3G,MAAM,gCAAgC,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAElF,MAAM,UAAU,GAAe,OAAO,CACpC,GAAG,EAAE,CAAC,CAAC;QACL,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,wBAAwB,EAAE,gCAAgC;QAC1D,IAAI,wBAAwB;YAC1B,OAAO,2BAA2B,CAAC,OAAO,CAAC;QAC7C,CAAC;QACD,2BAA2B,CAAC,wBAA6C;YACvE,2BAA2B,CAAC,OAAO,GAAG,wBAAwB,CAAC;YAC/D,4BAA4B,CAAC,wBAAwB,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;IACF,uDAAuD;IACvD;QACE,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,gCAAgC;QAChC,yBAAyB;KAC1B,CACF,CAAC;IAEF,OAAO,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,YAAG,QAAQ,GAA8B,CAAC;AAChG,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,aAAa;IAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import { useEffectEvent } from '@react-aria/utils';\nimport { createContext, type ReactNode, useContext, useMemo, useRef, useState } from 'react';\n\n/** Represents the type of row selection allowed within a table. */\nexport type RowSelectionMode = 'single' | 'multiple' | 'none';\n\nexport interface TableState {\n rowSelectionMode: RowSelectionMode;\n areAllRowsSelected?: boolean;\n areSomeRowsSelected?: boolean;\n onAllRowsSelectionToggle?: (value?: boolean) => void;\n /** The selection state that will be applied to the next focused row. */\n pendingRowSelectionState?: boolean;\n setPendingRowSelectionState: (value: boolean | undefined) => void;\n}\n\nconst TableStateContext = createContext<TableState | null>(null);\n\nexport function TableStateProvider({\n children,\n rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggle,\n}: {\n children: ReactNode;\n rowSelectionMode: RowSelectionMode;\n areAllRowsSelected?: boolean;\n areSomeRowsSelected?: boolean;\n onAllRowsSelectionToggle?: (value?: boolean) => void;\n}) {\n // When the pending selection state is updated, we want to trigger a re-render,\n // but we also want immediate access to the new value.\n // Hence why it is stored as both a ref and a state.\n const pendingRowSelectionStateRef = useRef<boolean | undefined>(undefined);\n const [_pendingRowSelectionState, _setPendingRowSelectionState] = useState<boolean | undefined>(undefined);\n\n const onAllRowsSelectionToggleMemoized = useEffectEvent(onAllRowsSelectionToggle);\n\n const tableState: TableState = useMemo(\n () => ({\n rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggle: onAllRowsSelectionToggleMemoized,\n get pendingRowSelectionState() {\n return pendingRowSelectionStateRef.current;\n },\n setPendingRowSelectionState(pendingRowSelectionState: boolean | undefined) {\n pendingRowSelectionStateRef.current = pendingRowSelectionState;\n _setPendingRowSelectionState(pendingRowSelectionState);\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n rowSelectionMode,\n areAllRowsSelected,\n areSomeRowsSelected,\n onAllRowsSelectionToggleMemoized,\n _pendingRowSelectionState,\n ],\n );\n\n return <TableStateContext.Provider value={tableState}>{children}</TableStateContext.Provider>;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useTableState(): TableState {\n const tableState = useContext(TableStateContext);\n if (!tableState) {\n throw new Error('Cannot use table state outside of a table');\n }\n\n return tableState;\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import type { NativeElementProps } from '../../types.js';
2
+ export interface UseSelectableRow {
3
+ rowProps: NativeElementProps<HTMLTableRowElement>;
4
+ }
5
+ export declare function useSelectableRow(): UseSelectableRow;
6
+ //# sourceMappingURL=use-selectable-row.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-selectable-row.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-selectable-row.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CACnD;AAED,wBAAgB,gBAAgB,IAAI,gBAAgB,CAoCnD"}
@@ -0,0 +1,37 @@
1
+ import { useTableRowState } from '../contexts/row-state.js';
2
+ import { useTableState } from '../contexts/table-state.js';
3
+ export function useSelectableRow() {
4
+ const { rowSelectionMode, setPendingRowSelectionState } = useTableState();
5
+ const { isSelected, onSelectionToggle } = useTableRowState();
6
+ // Handles row selection using a keyboard.
7
+ const onKeyDownCapture = (e) => {
8
+ // Ignore keyboard events bubbling through portals
9
+ if (!e.currentTarget.contains(e.target)) {
10
+ return;
11
+ }
12
+ if (e.key === ' ' && e.shiftKey) {
13
+ // Toggle selection of current row
14
+ onSelectionToggle?.();
15
+ }
16
+ else if ((e.key === 'ArrowUp' || e.key === 'ArrowDown') && e.shiftKey && rowSelectionMode === 'multiple') {
17
+ // Extend selection up/down by one row
18
+ // We're not going to stop propagation so that the arrow navigation handler runs as usual,
19
+ // and we'll set a special state variable so that the selection state gets updated when the new row receives focus.
20
+ setPendingRowSelectionState(isSelected);
21
+ return;
22
+ }
23
+ else {
24
+ // if we didn't handle anything, return early so we don't stop propagation and preventDefault
25
+ return;
26
+ }
27
+ e.preventDefault();
28
+ e.stopPropagation();
29
+ };
30
+ const rowProps = {
31
+ onKeyDownCapture: rowSelectionMode !== 'none' ? onKeyDownCapture : undefined,
32
+ };
33
+ return {
34
+ rowProps,
35
+ };
36
+ }
37
+ //# sourceMappingURL=use-selectable-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-selectable-row.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-selectable-row.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,GAAG,aAAa,EAAE,CAAC;IAC1E,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE7D,0CAA0C;IAC1C,MAAM,gBAAgB,GAAyB,CAAC,CAAC,EAAE,EAAE;QACnD,kDAAkD;QAClD,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,kCAAkC;YAClC,iBAAiB,EAAE,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC3G,sCAAsC;YACtC,0FAA0F;YAC1F,mHAAmH;YACnH,2BAA2B,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;aAAM,CAAC;YACN,6FAA6F;YAC7F,OAAO;QACT,CAAC;QAED,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAA4C;QACxD,gBAAgB,EAAE,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;KAC7E,CAAC;IAEF,OAAO;QACL,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["import type { KeyboardEventHandler } from 'react';\nimport type { NativeElementProps } from '../../types.js';\nimport { useTableRowState } from '../contexts/row-state.js';\nimport { useTableState } from '../contexts/table-state.js';\n\nexport interface UseSelectableRow {\n rowProps: NativeElementProps<HTMLTableRowElement>;\n}\n\nexport function useSelectableRow(): UseSelectableRow {\n const { rowSelectionMode, setPendingRowSelectionState } = useTableState();\n const { isSelected, onSelectionToggle } = useTableRowState();\n\n // Handles row selection using a keyboard.\n const onKeyDownCapture: KeyboardEventHandler = (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target as Element)) {\n return;\n }\n\n if (e.key === ' ' && e.shiftKey) {\n // Toggle selection of current row\n onSelectionToggle?.();\n } else if ((e.key === 'ArrowUp' || e.key === 'ArrowDown') && e.shiftKey && rowSelectionMode === 'multiple') {\n // Extend selection up/down by one row\n // We're not going to stop propagation so that the arrow navigation handler runs as usual,\n // and we'll set a special state variable so that the selection state gets updated when the new row receives focus.\n setPendingRowSelectionState(isSelected);\n return;\n } else {\n // if we didn't handle anything, return early so we don't stop propagation and preventDefault\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n const rowProps: NativeElementProps<HTMLTableRowElement> = {\n onKeyDownCapture: rowSelectionMode !== 'none' ? onKeyDownCapture : undefined,\n };\n\n return {\n rowProps,\n };\n}\n"]}
@@ -3,5 +3,5 @@ import type { NativeElementProps } from '../../types.js';
3
3
  export interface UseTableCell {
4
4
  cellProps: NativeElementProps<HTMLTableCellElement>;
5
5
  }
6
- export declare function useTableCell(ref: RefObject<HTMLTableCellElement>, rowKey: string, columnKey: string): UseTableCell;
6
+ export declare function useTableCell(ref: RefObject<HTMLTableCellElement | null>, rowKey: string, columnKey: string): UseTableCell;
7
7
  //# sourceMappingURL=use-table-cell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3G,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAI3E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;CACrD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CA6HlH"}
1
+ {"version":3,"file":"use-table-cell.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqD,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AACrG,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAM3E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;CACrD;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,SAAS,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAC3C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,YAAY,CAsJd"}
@@ -1,11 +1,15 @@
1
1
  import { getFocusableTreeWalker, useFocusRing } from '@react-aria/focus';
2
2
  import { isFocusVisible } from '@react-aria/interactions';
3
- import { mergeProps } from '@react-aria/utils';
4
- import { useLayoutEffect } from 'react';
3
+ import { mergeProps, useEffectEvent, useLayoutEffect } from '@react-aria/utils';
4
+ import { useEffect } from 'react';
5
5
  import { useTableFocus } from '../contexts/focus.js';
6
+ import { useTableRowState } from '../contexts/row-state.js';
7
+ import { useTableState } from '../contexts/table-state.js';
6
8
  import { focusTableChild } from '../utils/focus-table-child.js';
7
9
  export function useTableCell(ref, rowKey, columnKey) {
8
10
  const tableFocus = useTableFocus();
11
+ const { pendingRowSelectionState, setPendingRowSelectionState } = useTableState();
12
+ const { onSelectionToggle } = useTableRowState();
9
13
  const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;
10
14
  // Handles focusing the cell.
11
15
  // If there is a focusable child, it is focused, otherwise the cell itself is focused.
@@ -13,6 +17,12 @@ export function useTableCell(ref, rowKey, columnKey) {
13
17
  if (!ref.current) {
14
18
  return;
15
19
  }
20
+ // If there's a pending selection state, apply it to this cell's row.
21
+ // If this cell is a header cell, `onSelectionToggle` will be undefined, but we still want to clear the pending selection state.
22
+ if (pendingRowSelectionState !== undefined) {
23
+ onSelectionToggle?.(pendingRowSelectionState);
24
+ setPendingRowSelectionState(undefined);
25
+ }
16
26
  // If focus is already on a focusable child within the cell, early return so we don't shift focus
17
27
  if (ref.current.contains(document.activeElement) && ref.current !== document.activeElement) {
18
28
  return;
@@ -39,28 +49,37 @@ export function useTableCell(ref, rowKey, columnKey) {
39
49
  }
40
50
  // eslint-disable-next-line react-hooks/exhaustive-deps
41
51
  }, [ref, isTabbable]);
52
+ const resetIfFocused = useEffectEvent(() => {
53
+ if (isTabbable) {
54
+ tableFocus.setFocus('', '');
55
+ }
56
+ });
57
+ // Reset table focus when the focused cell unmounts
58
+ useEffect(() => () => {
59
+ resetIfFocused();
60
+ }, [resetIfFocused]);
42
61
  const onFocus = (e) => {
43
62
  // Ignore focus events bubbling through portals
44
63
  if (!e.currentTarget.contains(e.target)) {
45
64
  return;
46
65
  }
47
- // If cell is already focused, return early
48
- if (e.currentTarget.contains(e.relatedTarget)) {
66
+ // If cell is already focused, return early.
67
+ // However, if focus happens as a result of a press, we need to re-run the child-focusing logic,
68
+ // otherwise `useFocusRing` will force the cell itself to become focused.
69
+ if (e.currentTarget.contains(e.relatedTarget) && isFocusVisible()) {
49
70
  return;
50
71
  }
51
- if (e.target !== ref.current) {
52
- // If a child element of the cell receives focus, there are 3 scenarios:
53
- // - focus happens through a press, we need to update table focus state to the current cell
54
- // - focus happens through arrow key navigation within the table,
55
- // we do nothing as table focus state would have already been updated earlier
56
- // - focus happens through tabbing into the table from outside,
57
- // we do nothing because we want to restore focus to the previously focused cell,
58
- // and overriding table focus state would make that impossible
59
- if (!isFocusVisible()) {
60
- tableFocus.setFocus(rowKey, columnKey);
61
- }
72
+ // There are 3 scenarios for why a cell might receive focus:
73
+ // - focus happens through a press, we need to update table focus state to the current cell
74
+ // - focus happens through arrow key navigation within the table,
75
+ // we do nothing as table focus state would have already been updated earlier
76
+ // - focus happens through tabbing into the table from outside,
77
+ // we do nothing because we want to restore focus to the previously focused cell,
78
+ // and overriding table focus state would make that impossible
79
+ if (!isFocusVisible()) {
80
+ tableFocus.setFocus(rowKey, columnKey);
62
81
  }
63
- else {
82
+ if (e.target === ref.current) {
64
83
  // If the cell itself receives focus, wait a frame so that focus finishes propagating
65
84
  // up to the tree, and move focus to a focusable child if possible.
66
85
  requestAnimationFrame(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-cell.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusRing } from '@react-aria/focus';\nimport { isFocusVisible } from '@react-aria/interactions';\nimport { mergeProps } from '@react-aria/utils';\nimport { type KeyboardEventHandler, useLayoutEffect, type FocusEventHandler, type RefObject } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { useTableFocus } from '../contexts/focus.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTableCell {\n cellProps: NativeElementProps<HTMLTableCellElement>;\n}\n\nexport function useTableCell(ref: RefObject<HTMLTableCellElement>, rowKey: string, columnKey: string): UseTableCell {\n const tableFocus = useTableFocus();\n\n const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;\n\n // Handles focusing the cell.\n // If there is a focusable child, it is focused, otherwise the cell itself is focused.\n const focusCell = () => {\n if (!ref.current) {\n return;\n }\n\n // If focus is already on a focusable child within the cell, early return so we don't shift focus\n if (ref.current.contains(document.activeElement) && ref.current !== document.activeElement) {\n return;\n }\n\n const treeWalker = getFocusableTreeWalker(ref.current);\n const focusable = tableFocus.childFocusStrategy === 'last' ? treeWalker.lastChild() : treeWalker.firstChild();\n\n if (focusable) {\n // Cell has focusable children, focus the child\n focusTableChild(focusable as FocusableElement);\n } else if (!ref.current.contains(document.activeElement)) {\n // Cell has no focusable children and current focus is outside of the cell, focus the cell itself\n focusTableChild(ref.current);\n } else if (ref.current === document.activeElement && !isTabbable) {\n // Focus is on the current cell, but table focus is elsewhere, update table focus state\n tableFocus.setFocus(rowKey, columnKey);\n }\n };\n\n // Focus the cell DOM node when table focus moves to this cell\n useLayoutEffect(() => {\n if (isTabbable && !ref.current!.contains(document.activeElement)) {\n focusCell();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, isTabbable]);\n\n const onFocus: FocusEventHandler = (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n // If cell is already focused, return early\n if (e.currentTarget.contains(e.relatedTarget)) {\n return;\n }\n\n if (e.target !== ref.current) {\n // If a child element of the cell receives focus, there are 3 scenarios:\n // - focus happens through a press, we need to update table focus state to the current cell\n // - focus happens through arrow key navigation within the table,\n // we do nothing as table focus state would have already been updated earlier\n // - focus happens through tabbing into the table from outside,\n // we do nothing because we want to restore focus to the previously focused cell,\n // and overriding table focus state would make that impossible\n if (!isFocusVisible()) {\n tableFocus.setFocus(rowKey, columnKey);\n }\n } else {\n // If the cell itself receives focus, wait a frame so that focus finishes propagating\n // up to the tree, and move focus to a focusable child if possible.\n requestAnimationFrame(() => {\n if (document.activeElement === ref.current) {\n focusCell();\n }\n });\n }\n };\n\n // Handles keyboard navigation between focusable children within the cell.\n const onKeyDownCapture: KeyboardEventHandler = (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target as Element) || !ref.current || !document.activeElement) {\n return;\n }\n\n const walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Move to the previous/next focusable element within the cell\n const childElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n\n if (childElementToFocus && childElementToFocus !== ref.current) {\n focusTableChild(childElementToFocus as FocusableElement);\n } else {\n // If there is no previous/next focusable element within the current cell, focus should move to the previous/next cell.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement!.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n }\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Move to the previous/next cell in the current column.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement?.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n } else {\n // if we didn't handle anything, return early so we don't stop propagation and preventDefault\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n const { focusProps, isFocused } = useFocusRing();\n\n const customProps: NativeElementProps<HTMLTableCellElement> = {\n tabIndex: isTabbable ? 0 : -1,\n onFocus,\n onKeyDownCapture,\n 'data-cell-row-key': rowKey,\n 'data-cell-column-key': columnKey,\n 'data-focused': isFocused || undefined,\n };\n\n return {\n cellProps: mergeProps(focusProps, customProps),\n };\n}\n"]}
1
+ {"version":3,"file":"use-table-cell.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table-cell.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusRing } from '@react-aria/focus';\nimport { isFocusVisible } from '@react-aria/interactions';\nimport { mergeProps, useEffectEvent, useLayoutEffect } from '@react-aria/utils';\nimport { type KeyboardEventHandler, type FocusEventHandler, type RefObject, useEffect } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { useTableFocus } from '../contexts/focus.js';\nimport { useTableRowState } from '../contexts/row-state.js';\nimport { useTableState } from '../contexts/table-state.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTableCell {\n cellProps: NativeElementProps<HTMLTableCellElement>;\n}\n\nexport function useTableCell(\n ref: RefObject<HTMLTableCellElement | null>,\n rowKey: string,\n columnKey: string,\n): UseTableCell {\n const tableFocus = useTableFocus();\n const { pendingRowSelectionState, setPendingRowSelectionState } = useTableState();\n const { onSelectionToggle } = useTableRowState();\n\n const isTabbable = rowKey === tableFocus.focusedRowKey && columnKey === tableFocus.focusedColumnKey;\n\n // Handles focusing the cell.\n // If there is a focusable child, it is focused, otherwise the cell itself is focused.\n const focusCell = () => {\n if (!ref.current) {\n return;\n }\n\n // If there's a pending selection state, apply it to this cell's row.\n // If this cell is a header cell, `onSelectionToggle` will be undefined, but we still want to clear the pending selection state.\n if (pendingRowSelectionState !== undefined) {\n onSelectionToggle?.(pendingRowSelectionState);\n setPendingRowSelectionState(undefined);\n }\n\n // If focus is already on a focusable child within the cell, early return so we don't shift focus\n if (ref.current.contains(document.activeElement) && ref.current !== document.activeElement) {\n return;\n }\n\n const treeWalker = getFocusableTreeWalker(ref.current);\n const focusable = tableFocus.childFocusStrategy === 'last' ? treeWalker.lastChild() : treeWalker.firstChild();\n\n if (focusable) {\n // Cell has focusable children, focus the child\n focusTableChild(focusable as FocusableElement);\n } else if (!ref.current.contains(document.activeElement)) {\n // Cell has no focusable children and current focus is outside of the cell, focus the cell itself\n focusTableChild(ref.current);\n } else if (ref.current === document.activeElement && !isTabbable) {\n // Focus is on the current cell, but table focus is elsewhere, update table focus state\n tableFocus.setFocus(rowKey, columnKey);\n }\n };\n\n // Focus the cell DOM node when table focus moves to this cell\n useLayoutEffect(() => {\n if (isTabbable && !ref.current!.contains(document.activeElement)) {\n focusCell();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, isTabbable]);\n\n const resetIfFocused = useEffectEvent(() => {\n if (isTabbable) {\n tableFocus.setFocus('', '');\n }\n });\n\n // Reset table focus when the focused cell unmounts\n useEffect(\n () => () => {\n resetIfFocused();\n },\n [resetIfFocused],\n );\n\n const onFocus: FocusEventHandler = (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n // If cell is already focused, return early.\n // However, if focus happens as a result of a press, we need to re-run the child-focusing logic,\n // otherwise `useFocusRing` will force the cell itself to become focused.\n if (e.currentTarget.contains(e.relatedTarget) && isFocusVisible()) {\n return;\n }\n\n // There are 3 scenarios for why a cell might receive focus:\n // - focus happens through a press, we need to update table focus state to the current cell\n // - focus happens through arrow key navigation within the table,\n // we do nothing as table focus state would have already been updated earlier\n // - focus happens through tabbing into the table from outside,\n // we do nothing because we want to restore focus to the previously focused cell,\n // and overriding table focus state would make that impossible\n if (!isFocusVisible()) {\n tableFocus.setFocus(rowKey, columnKey);\n }\n\n if (e.target === ref.current) {\n // If the cell itself receives focus, wait a frame so that focus finishes propagating\n // up to the tree, and move focus to a focusable child if possible.\n requestAnimationFrame(() => {\n if (document.activeElement === ref.current) {\n focusCell();\n }\n });\n }\n };\n\n // Handles keyboard navigation between focusable children within the cell.\n const onKeyDownCapture: KeyboardEventHandler = (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target as Element) || !ref.current || !document.activeElement) {\n return;\n }\n\n const walker = getFocusableTreeWalker(ref.current);\n walker.currentNode = document.activeElement;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Move to the previous/next focusable element within the cell\n const childElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n\n if (childElementToFocus && childElementToFocus !== ref.current) {\n focusTableChild(childElementToFocus as FocusableElement);\n } else {\n // If there is no previous/next focusable element within the current cell, focus should move to the previous/next cell.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement!.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n }\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Move to the previous/next cell in the current column.\n // This is handled by `useTable`, so we need to let the event bubble up to it.\n // But we also don't want this event to reach children of the current cell, as arrow keys should be used exclusively for table navigation.\n // Solution: re-dispatch the event from a parent element of the current cell.\n ref.current.parentElement?.dispatchEvent(new KeyboardEvent(e.nativeEvent.type, e.nativeEvent));\n } else {\n // if we didn't handle anything, return early so we don't stop propagation and preventDefault\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n const { focusProps, isFocused } = useFocusRing();\n\n const customProps: NativeElementProps<HTMLTableCellElement> = {\n tabIndex: isTabbable ? 0 : -1,\n onFocus,\n onKeyDownCapture,\n 'data-cell-row-key': rowKey,\n 'data-cell-column-key': columnKey,\n 'data-focused': isFocused || undefined,\n };\n\n return {\n cellProps: mergeProps(focusProps, customProps),\n };\n}\n"]}
@@ -3,5 +3,5 @@ import type { NativeElementProps } from '../../types.js';
3
3
  export interface UseTable {
4
4
  tableProps: NativeElementProps<HTMLTableElement>;
5
5
  }
6
- export declare function useTable(ref: RefObject<HTMLTableElement>): UseTable;
6
+ export declare function useTable(ref: RefObject<HTMLTableElement | null>): UseTable;
7
7
  //# sourceMappingURL=use-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAI3E,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CAClD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAsJnE"}
1
+ {"version":3,"file":"use-table.d.ts","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAK3E,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CAClD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,QAAQ,CAkK1E"}
@@ -1,10 +1,12 @@
1
1
  import { getFocusableTreeWalker, useFocusable } from '@react-aria/focus';
2
2
  import { getInteractionModality, useKeyboard } from '@react-aria/interactions';
3
- import { isMac, mergeProps } from '@react-aria/utils';
3
+ import { isCtrlKeyPressed, mergeProps } from '@react-aria/utils';
4
4
  import { useTableFocus } from '../contexts/focus.js';
5
+ import { useTableState } from '../contexts/table-state.js';
5
6
  import { focusTableChild } from '../utils/focus-table-child.js';
6
7
  export function useTable(ref) {
7
8
  const tableFocus = useTableFocus();
9
+ const { rowSelectionMode, onAllRowsSelectionToggle } = useTableState();
8
10
  const restoreCellFocus = (e) => {
9
11
  if (!tableFocus.focusedRowKey || !tableFocus.focusedColumnKey) {
10
12
  // User hasn't interacted with the table yet.
@@ -61,14 +63,14 @@ export function useTable(ref) {
61
63
  }
62
64
  else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
63
65
  // Focus previous/next cell in the same column
64
- const selector = `[data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']:not([data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'])`;
66
+ const selector = constructColumnSelector(e.currentTarget, tableFocus.focusedRowKey, tableFocus.focusedColumnKey);
65
67
  const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });
66
68
  walker.currentNode = focusedCellElement;
67
69
  cellElementToFocus = e.key === 'ArrowUp' ? walker.previousNode() : walker.nextNode();
68
70
  }
69
71
  else if (e.key === 'PageUp' || e.key === 'PageDown') {
70
72
  // Move focus up/down by 5 rows
71
- const selector = `[data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']:not([data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'])`;
73
+ const selector = constructColumnSelector(e.currentTarget, tableFocus.focusedRowKey, tableFocus.focusedColumnKey);
72
74
  const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });
73
75
  walker.currentNode = focusedCellElement;
74
76
  const advance = e.key === 'PageUp' ? walker.previousNode.bind(walker) : walker.nextNode.bind(walker);
@@ -99,6 +101,10 @@ export function useTable(ref) {
99
101
  }
100
102
  return;
101
103
  }
104
+ else if (e.key === 'a' && isCtrlKeyPressed(e) && rowSelectionMode === 'multiple') {
105
+ // Select all rows
106
+ onAllRowsSelectionToggle?.(true);
107
+ }
102
108
  else {
103
109
  // if we didn't handle anything, return early so we don't preventDefault
104
110
  return;
@@ -129,11 +135,19 @@ export function useTable(ref) {
129
135
  tableProps: mergeProps(focusableProps, keyboardProps, customProps),
130
136
  };
131
137
  }
132
- // TODO: use `isCtrlKeyPressed` from `@react-aria/utils` after version upgrade
133
- function isCtrlKeyPressed(e) {
134
- if (isMac()) {
135
- return e.metaKey;
138
+ /** Constructs a DOM selector for cells in the same column, taking `colspan` into account. */
139
+ function constructColumnSelector(tableElement, rowKey, columnKey) {
140
+ const baseSelector = `[data-cell-column-key='${CSS.escape(columnKey)}']:not([data-cell-row-key='${CSS.escape(rowKey)}'])`;
141
+ const columnHeader = tableElement.querySelector(`th[data-cell-row-key='${CSS.escape(rowKey)}'][data-cell-column-key='${CSS.escape(columnKey)}']`);
142
+ const columnSelectors = [baseSelector];
143
+ let currentColumn = columnHeader?.previousElementSibling;
144
+ while (currentColumn) {
145
+ const { cellColumnKey } = currentColumn.dataset;
146
+ if (cellColumnKey) {
147
+ columnSelectors.push(`[data-cell-column-key='${CSS.escape(cellColumnKey)}'][colspan]:not([data-cell-row-key='${CSS.escape(rowKey)}'])`);
148
+ }
149
+ currentColumn = currentColumn.previousElementSibling;
136
150
  }
137
- return e.ctrlKey;
151
+ return `:is(${columnSelectors.join(', ')})`;
138
152
  }
139
153
  //# sourceMappingURL=use-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusable } from '@react-aria/focus';\nimport { getInteractionModality, useKeyboard } from '@react-aria/interactions';\nimport { isMac, mergeProps } from '@react-aria/utils';\nimport type { FocusEventHandler, RefObject } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { type ChildFocusStrategy, useTableFocus } from '../contexts/focus.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTable {\n tableProps: NativeElementProps<HTMLTableElement>;\n}\n\nexport function useTable(ref: RefObject<HTMLTableElement>): UseTable {\n const tableFocus = useTableFocus();\n\n const restoreCellFocus: FocusEventHandler = (e) => {\n if (!tableFocus.focusedRowKey || !tableFocus.focusedColumnKey) {\n // User hasn't interacted with the table yet.\n // Focus the first or last cell, depending on which direction the user is tabbing from.\n const lastFocusedElement = e.relatedTarget as Element;\n const cellElements = e.currentTarget.querySelectorAll('[data-cell-row-key][data-cell-column-key]');\n let cellElementToFocus: Element | undefined;\n\n if (\n lastFocusedElement &&\n e.currentTarget.compareDocumentPosition(lastFocusedElement) & Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n cellElementToFocus = cellElements[cellElements.length - 1];\n } else {\n cellElementToFocus = cellElements[0];\n }\n\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!);\n } else {\n const element = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n if (element) {\n // If focus is already within the cell, don't refocus\n if (!element.contains(document.activeElement)) {\n focusTableChild(element);\n }\n }\n }\n };\n\n const { focusableProps } = useFocusable(\n {\n onFocus: (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n restoreCellFocus(e);\n },\n },\n ref,\n );\n\n const { keyboardProps } = useKeyboard({\n onKeyDown: (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n const focusedCellElement = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n let cellElementToFocus: Node | null = null;\n let newChildFocusStrategy: ChildFocusStrategy | undefined;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Focus previous/next cell in the same row\n const selector = `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}']:not([data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n newChildFocusStrategy = e.key === 'ArrowLeft' ? 'last' : 'first';\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Focus previous/next cell in the same column\n const selector = `[data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']:not([data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowUp' ? walker.previousNode() : walker.nextNode();\n } else if (e.key === 'PageUp' || e.key === 'PageDown') {\n // Move focus up/down by 5 rows\n const selector = `[data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']:not([data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n\n const advance = e.key === 'PageUp' ? walker.previousNode.bind(walker) : walker.nextNode.bind(walker);\n\n // `advance()` will do nothing if there's no appropriate node found, so it's safe to just call it 5 times\n for (let i = 0; i < 5; i++) {\n advance();\n }\n\n cellElementToFocus = walker.currentNode;\n } else if (e.key === 'Home' || e.key === 'End') {\n // If Ctrl/Cmd is pressed, move focus to the first/last cell of the table;\n // otherwise, move focus to the first/last cell of the current row\n const selector = '[data-cell-row-key][data-cell-column-key]';\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = isCtrlKeyPressed(e) ? e.currentTarget : focusedCellElement.parentElement!;\n cellElementToFocus = e.key === 'Home' ? walker.firstChild() : walker.lastChild();\n newChildFocusStrategy = e.key === 'Home' ? 'first' : 'last';\n } else if (e.key === 'Tab') {\n // Table is supposed to be a single Tab stop, but cells may contain elements that are tabbable (checkboxes, buttons, menus, etc.).\n // We don't control the rendering of these elements, so we can't override their tabIndex to prevent tabbing.\n // Instead, we detect when Tab key is pressed, and move focus manually to the guard element before/after the table,\n // so that the browser default behavior will apply starting from that element rather than the currently focused one.\n const tableElement = e.currentTarget as HTMLTableElement;\n const guardElement = e.shiftKey ? tableElement.previousElementSibling : tableElement.nextElementSibling;\n\n if (guardElement) {\n focusTableChild(guardElement as FocusableElement);\n }\n\n return;\n } else {\n // if we didn't handle anything, return early so we don't preventDefault\n return;\n }\n\n if (cellElementToFocus) {\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!, newChildFocusStrategy);\n }\n\n e.preventDefault();\n },\n });\n\n const customProps: NativeElementProps<HTMLTableElement> = {\n role: 'grid',\n // If no cell is tabbable within the table, make the table itself tabbable,\n // otherwise the Tab key will just skip it\n tabIndex: tableFocus.focusedRowKey && tableFocus.focusedColumnKey ? -1 : 0,\n onFocusCapture: (e) => {\n // If we're navigating into the table with a keyboard, focus the last focused cell instead of the first tabbable element\n if (\n getInteractionModality() === 'keyboard' &&\n !e.currentTarget.contains(e.relatedTarget) &&\n e.currentTarget.contains(e.target)\n ) {\n restoreCellFocus(e);\n }\n },\n };\n\n return {\n tableProps: mergeProps(focusableProps, keyboardProps, customProps),\n };\n}\n\n// TODO: use `isCtrlKeyPressed` from `@react-aria/utils` after version upgrade\nfunction isCtrlKeyPressed(e: { ctrlKey: boolean; metaKey: boolean }): boolean {\n if (isMac()) {\n return e.metaKey;\n }\n\n return e.ctrlKey;\n}\n"]}
1
+ {"version":3,"file":"use-table.js","sourceRoot":"","sources":["../../../../../src/components/table/hooks/use-table.ts"],"names":[],"mappings":"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","sourcesContent":["import { getFocusableTreeWalker, useFocusable } from '@react-aria/focus';\nimport { getInteractionModality, useKeyboard } from '@react-aria/interactions';\nimport { isCtrlKeyPressed, mergeProps } from '@react-aria/utils';\nimport type { FocusEventHandler, RefObject } from 'react';\nimport type { FocusableElement, NativeElementProps } from '../../types.js';\nimport { type ChildFocusStrategy, useTableFocus } from '../contexts/focus.js';\nimport { useTableState } from '../contexts/table-state.js';\nimport { focusTableChild } from '../utils/focus-table-child.js';\n\nexport interface UseTable {\n tableProps: NativeElementProps<HTMLTableElement>;\n}\n\nexport function useTable(ref: RefObject<HTMLTableElement | null>): UseTable {\n const tableFocus = useTableFocus();\n const { rowSelectionMode, onAllRowsSelectionToggle } = useTableState();\n\n const restoreCellFocus: FocusEventHandler = (e) => {\n if (!tableFocus.focusedRowKey || !tableFocus.focusedColumnKey) {\n // User hasn't interacted with the table yet.\n // Focus the first or last cell, depending on which direction the user is tabbing from.\n const lastFocusedElement = e.relatedTarget as Element;\n const cellElements = e.currentTarget.querySelectorAll('[data-cell-row-key][data-cell-column-key]');\n let cellElementToFocus: Element | undefined;\n\n if (\n lastFocusedElement &&\n e.currentTarget.compareDocumentPosition(lastFocusedElement) & Node.DOCUMENT_POSITION_FOLLOWING\n ) {\n cellElementToFocus = cellElements[cellElements.length - 1];\n } else {\n cellElementToFocus = cellElements[0];\n }\n\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!);\n } else {\n const element = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n if (element) {\n // If focus is already within the cell, don't refocus\n if (!element.contains(document.activeElement)) {\n focusTableChild(element);\n }\n }\n }\n };\n\n const { focusableProps } = useFocusable(\n {\n onFocus: (e) => {\n // Ignore focus events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n restoreCellFocus(e);\n },\n },\n ref,\n );\n\n const { keyboardProps } = useKeyboard({\n onKeyDown: (e) => {\n // Ignore keyboard events bubbling through portals\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n\n const focusedCellElement = e.currentTarget.querySelector(\n `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}'][data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}']`,\n ) as HTMLTableCellElement;\n\n let cellElementToFocus: Node | null = null;\n let newChildFocusStrategy: ChildFocusStrategy | undefined;\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n // Focus previous/next cell in the same row\n const selector = `[data-cell-row-key='${CSS.escape(tableFocus.focusedRowKey)}']:not([data-cell-column-key='${CSS.escape(tableFocus.focusedColumnKey)}'])`;\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowLeft' ? walker.previousNode() : walker.nextNode();\n newChildFocusStrategy = e.key === 'ArrowLeft' ? 'last' : 'first';\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n // Focus previous/next cell in the same column\n const selector = constructColumnSelector(\n e.currentTarget,\n tableFocus.focusedRowKey,\n tableFocus.focusedColumnKey,\n );\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n cellElementToFocus = e.key === 'ArrowUp' ? walker.previousNode() : walker.nextNode();\n } else if (e.key === 'PageUp' || e.key === 'PageDown') {\n // Move focus up/down by 5 rows\n const selector = constructColumnSelector(\n e.currentTarget,\n tableFocus.focusedRowKey,\n tableFocus.focusedColumnKey,\n );\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = focusedCellElement;\n\n const advance = e.key === 'PageUp' ? walker.previousNode.bind(walker) : walker.nextNode.bind(walker);\n\n // `advance()` will do nothing if there's no appropriate node found, so it's safe to just call it 5 times\n for (let i = 0; i < 5; i++) {\n advance();\n }\n\n cellElementToFocus = walker.currentNode;\n } else if (e.key === 'Home' || e.key === 'End') {\n // If Ctrl/Cmd is pressed, move focus to the first/last cell of the table;\n // otherwise, move focus to the first/last cell of the current row\n const selector = '[data-cell-row-key][data-cell-column-key]';\n const walker = getFocusableTreeWalker(e.currentTarget, { accept: (node) => node.matches(selector) });\n walker.currentNode = isCtrlKeyPressed(e) ? e.currentTarget : focusedCellElement.parentElement!;\n cellElementToFocus = e.key === 'Home' ? walker.firstChild() : walker.lastChild();\n newChildFocusStrategy = e.key === 'Home' ? 'first' : 'last';\n } else if (e.key === 'Tab') {\n // Table is supposed to be a single Tab stop, but cells may contain elements that are tabbable (checkboxes, buttons, menus, etc.).\n // We don't control the rendering of these elements, so we can't override their tabIndex to prevent tabbing.\n // Instead, we detect when Tab key is pressed, and move focus manually to the guard element before/after the table,\n // so that the browser default behavior will apply starting from that element rather than the currently focused one.\n const tableElement = e.currentTarget as HTMLTableElement;\n const guardElement = e.shiftKey ? tableElement.previousElementSibling : tableElement.nextElementSibling;\n\n if (guardElement) {\n focusTableChild(guardElement as FocusableElement);\n }\n\n return;\n } else if (e.key === 'a' && isCtrlKeyPressed(e) && rowSelectionMode === 'multiple') {\n // Select all rows\n onAllRowsSelectionToggle?.(true);\n } else {\n // if we didn't handle anything, return early so we don't preventDefault\n return;\n }\n\n if (cellElementToFocus) {\n const { cellRowKey, cellColumnKey } = (cellElementToFocus as HTMLTableCellElement).dataset;\n\n // We know the keys are defined, because we queried the DOM for elements that have them\n tableFocus.setFocus(cellRowKey!, cellColumnKey!, newChildFocusStrategy);\n }\n\n e.preventDefault();\n },\n });\n\n const customProps: NativeElementProps<HTMLTableElement> = {\n role: 'grid',\n // If no cell is tabbable within the table, make the table itself tabbable,\n // otherwise the Tab key will just skip it\n tabIndex: tableFocus.focusedRowKey && tableFocus.focusedColumnKey ? -1 : 0,\n onFocusCapture: (e) => {\n // If we're navigating into the table with a keyboard, focus the last focused cell instead of the first tabbable element\n if (\n getInteractionModality() === 'keyboard' &&\n !e.currentTarget.contains(e.relatedTarget) &&\n e.currentTarget.contains(e.target)\n ) {\n restoreCellFocus(e);\n }\n },\n };\n\n return {\n tableProps: mergeProps(focusableProps, keyboardProps, customProps),\n };\n}\n\n/** Constructs a DOM selector for cells in the same column, taking `colspan` into account. */\nfunction constructColumnSelector(tableElement: HTMLTableElement, rowKey: string, columnKey: string): string {\n const baseSelector = `[data-cell-column-key='${CSS.escape(columnKey)}']:not([data-cell-row-key='${CSS.escape(rowKey)}'])`;\n const columnHeader = tableElement.querySelector(\n `th[data-cell-row-key='${CSS.escape(rowKey)}'][data-cell-column-key='${CSS.escape(columnKey)}']`,\n );\n\n const columnSelectors: string[] = [baseSelector];\n\n let currentColumn = columnHeader?.previousElementSibling;\n\n while (currentColumn) {\n const { cellColumnKey } = (currentColumn as HTMLElement).dataset;\n\n if (cellColumnKey) {\n columnSelectors.push(\n `[data-cell-column-key='${CSS.escape(cellColumnKey)}'][colspan]:not([data-cell-row-key='${CSS.escape(rowKey)}'])`,\n );\n }\n\n currentColumn = currentColumn.previousElementSibling;\n }\n\n return `:is(${columnSelectors.join(', ')})`;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { CommonProps, LabellableProps } from '../types.js';
2
+ export interface TableAllRowsSelectorProps extends CommonProps, Omit<LabellableProps, 'label'> {
3
+ }
4
+ /**
5
+ * Controls the selection state of all rows within a table.
6
+ *
7
+ * See [table building guide](https://ui.cimpress.io/dev-guides/tables/).
8
+ */
9
+ declare const _TableAllRowsSelector: (props: TableAllRowsSelectorProps & import("react").RefAttributes<HTMLLabelElement>) => import("react").JSX.Element | null;
10
+ export { _TableAllRowsSelector as TableAllRowsSelector };
11
+ //# sourceMappingURL=table-all-rows-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-all-rows-selector.d.ts","sourceRoot":"","sources":["../../../../src/components/table/table-all-rows-selector.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhE,MAAM,WAAW,yBAA0B,SAAQ,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;CAAG;AAoBjG;;;;GAIG;AACH,QAAA,MAAM,qBAAqB,4HAA2D,CAAC;AAEvF,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { forwardRef } from '../../forward-ref.js';
4
+ import { Checkbox } from '../checkbox/checkbox.js';
5
+ import { useTableState } from './contexts/table-state.js';
6
+ function TableAllRowsSelector(props, ref) {
7
+ const { rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle } = useTableState();
8
+ if (rowSelectionMode !== 'multiple') {
9
+ return null;
10
+ }
11
+ return (_jsx(Checkbox, { ...props, ref: ref, isSelected: areAllRowsSelected, isIndeterminate: areSomeRowsSelected, onChange: onAllRowsSelectionToggle }));
12
+ }
13
+ /**
14
+ * Controls the selection state of all rows within a table.
15
+ *
16
+ * See [table building guide](https://ui.cimpress.io/dev-guides/tables/).
17
+ */
18
+ const _TableAllRowsSelector = forwardRef(TableAllRowsSelector, 'TableAllRowsSelector');
19
+ export { _TableAllRowsSelector as TableAllRowsSelector };
20
+ //# sourceMappingURL=table-all-rows-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-all-rows-selector.js","sourceRoot":"","sources":["../../../../src/components/table/table-all-rows-selector.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,SAAS,oBAAoB,CAAC,KAAgC,EAAE,GAAmC;IACjG,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,GAAG,aAAa,EAAE,CAAC;IAEhH,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,OACH,KAAK,EACT,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,kBAAkB,EAC9B,eAAe,EAAE,mBAAmB,EACpC,QAAQ,EAAE,wBAAwB,GAClC,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AAEvF,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC","sourcesContent":["'use client';\n\nimport type { ForwardedRef } from 'react';\nimport { forwardRef } from '../../forward-ref.js';\nimport { Checkbox } from '../checkbox/checkbox.js';\nimport type { CommonProps, LabellableProps } from '../types.js';\nimport { useTableState } from './contexts/table-state.js';\n\nexport interface TableAllRowsSelectorProps extends CommonProps, Omit<LabellableProps, 'label'> {}\n\nfunction TableAllRowsSelector(props: TableAllRowsSelectorProps, ref: ForwardedRef<HTMLLabelElement>) {\n const { rowSelectionMode, areAllRowsSelected, areSomeRowsSelected, onAllRowsSelectionToggle } = useTableState();\n\n if (rowSelectionMode !== 'multiple') {\n return null;\n }\n\n return (\n <Checkbox\n {...props}\n ref={ref}\n isSelected={areAllRowsSelected}\n isIndeterminate={areSomeRowsSelected}\n onChange={onAllRowsSelectionToggle}\n />\n );\n}\n\n/**\n * Controls the selection state of all rows within a table.\n *\n * See [table building guide](https://ui.cimpress.io/dev-guides/tables/).\n */\nconst _TableAllRowsSelector = forwardRef(TableAllRowsSelector, 'TableAllRowsSelector');\n\nexport { _TableAllRowsSelector as TableAllRowsSelector };\n"]}