@accelint/design-toolkit 8.1.2 → 9.0.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 (877) hide show
  1. package/README.md +1 -0
  2. package/catalog-info.yaml +5 -7
  3. package/dist/components/accordion/context.d.ts +19 -5
  4. package/dist/components/accordion/context.js +21 -1
  5. package/dist/components/accordion/context.js.map +1 -1
  6. package/dist/components/accordion/group.d.ts +25 -6
  7. package/dist/components/accordion/group.js +38 -1
  8. package/dist/components/accordion/group.js.map +1 -1
  9. package/dist/components/accordion/header.d.ts +22 -6
  10. package/dist/components/accordion/header.js +47 -1
  11. package/dist/components/accordion/header.js.map +1 -1
  12. package/dist/components/accordion/index.d.ts +23 -7
  13. package/dist/components/accordion/index.js +82 -1
  14. package/dist/components/accordion/index.js.map +1 -1
  15. package/dist/components/accordion/panel.d.ts +23 -6
  16. package/dist/components/accordion/panel.js +31 -1
  17. package/dist/components/accordion/panel.js.map +1 -1
  18. package/dist/components/accordion/styles.module.css +14 -2
  19. package/dist/components/accordion/trigger.d.ts +22 -6
  20. package/dist/components/accordion/trigger.js +47 -1
  21. package/dist/components/accordion/trigger.js.map +1 -1
  22. package/dist/components/accordion/types.d.ts +24 -10
  23. package/dist/components/accordion/types.js +12 -2
  24. package/dist/components/action-bar/index.d.ts +23 -5
  25. package/dist/components/action-bar/index.js +51 -1
  26. package/dist/components/action-bar/index.js.map +1 -1
  27. package/dist/components/action-bar/styles.module.css +1 -1
  28. package/dist/components/action-bar/types.d.ts +18 -4
  29. package/dist/components/action-bar/types.js +12 -2
  30. package/dist/components/avatar/context.d.ts +25 -8
  31. package/dist/components/avatar/context.js +28 -1
  32. package/dist/components/avatar/context.js.map +1 -1
  33. package/dist/components/avatar/index.d.ts +23 -6
  34. package/dist/components/avatar/index.js +92 -1
  35. package/dist/components/avatar/index.js.map +1 -1
  36. package/dist/components/avatar/styles.module.css +1 -1
  37. package/dist/components/avatar/types.d.ts +27 -13
  38. package/dist/components/avatar/types.js +12 -2
  39. package/dist/components/badge/context.d.ts +25 -8
  40. package/dist/components/badge/context.js +28 -1
  41. package/dist/components/badge/context.js.map +1 -1
  42. package/dist/components/badge/index.d.ts +23 -6
  43. package/dist/components/badge/index.js +61 -1
  44. package/dist/components/badge/index.js.map +1 -1
  45. package/dist/components/badge/styles.module.css +1 -1
  46. package/dist/components/badge/types.d.ts +25 -11
  47. package/dist/components/badge/types.js +12 -2
  48. package/dist/components/breadcrumbs/index.d.ts +22 -4
  49. package/dist/components/breadcrumbs/index.js +41 -1
  50. package/dist/components/breadcrumbs/index.js.map +1 -1
  51. package/dist/components/breadcrumbs/item.d.ts +23 -4
  52. package/dist/components/breadcrumbs/item.js +40 -1
  53. package/dist/components/breadcrumbs/item.js.map +1 -1
  54. package/dist/components/breadcrumbs/styles.module.css +1 -1
  55. package/dist/components/breadcrumbs/types.d.ts +30 -16
  56. package/dist/components/breadcrumbs/types.js +12 -2
  57. package/dist/components/button/context.d.ts +35 -11
  58. package/dist/components/button/context.js +42 -1
  59. package/dist/components/button/context.js.map +1 -1
  60. package/dist/components/button/index.d.ts +23 -7
  61. package/dist/components/button/index.js +74 -1
  62. package/dist/components/button/index.js.map +1 -1
  63. package/dist/components/button/link.d.ts +23 -7
  64. package/dist/components/button/link.js +74 -1
  65. package/dist/components/button/link.js.map +1 -1
  66. package/dist/components/button/styles.module.css +1 -1
  67. package/dist/components/button/toggle.d.ts +23 -7
  68. package/dist/components/button/toggle.js +76 -1
  69. package/dist/components/button/toggle.js.map +1 -1
  70. package/dist/components/button/types.d.ts +22 -9
  71. package/dist/components/button/types.js +12 -2
  72. package/dist/components/checkbox/context.d.ts +20 -7
  73. package/dist/components/checkbox/context.js +22 -1
  74. package/dist/components/checkbox/context.js.map +1 -1
  75. package/dist/components/checkbox/group.d.ts +21 -7
  76. package/dist/components/checkbox/group.js +41 -1
  77. package/dist/components/checkbox/group.js.map +1 -1
  78. package/dist/components/checkbox/index.d.ts +23 -8
  79. package/dist/components/checkbox/index.js +78 -1
  80. package/dist/components/checkbox/index.js.map +1 -1
  81. package/dist/components/checkbox/styles.module.css +1 -1
  82. package/dist/components/checkbox/types.d.ts +31 -17
  83. package/dist/components/checkbox/types.js +12 -2
  84. package/dist/components/chip/context.d.ts +25 -7
  85. package/dist/components/chip/context.js +28 -1
  86. package/dist/components/chip/context.js.map +1 -1
  87. package/dist/components/chip/deletable.d.ts +21 -5
  88. package/dist/components/chip/deletable.js +53 -1
  89. package/dist/components/chip/deletable.js.map +1 -1
  90. package/dist/components/chip/index.d.ts +52 -17
  91. package/dist/components/chip/index.js +94 -1
  92. package/dist/components/chip/index.js.map +1 -1
  93. package/dist/components/chip/list.d.ts +23 -6
  94. package/dist/components/chip/list.js +48 -1
  95. package/dist/components/chip/list.js.map +1 -1
  96. package/dist/components/chip/selectable.d.ts +21 -5
  97. package/dist/components/chip/selectable.js +35 -1
  98. package/dist/components/chip/selectable.js.map +1 -1
  99. package/dist/components/chip/styles.module.css +1 -1
  100. package/dist/components/chip/types.d.ts +25 -11
  101. package/dist/components/chip/types.js +12 -2
  102. package/dist/components/classification-badge/context.d.ts +25 -8
  103. package/dist/components/classification-badge/context.js +28 -1
  104. package/dist/components/classification-badge/context.js.map +1 -1
  105. package/dist/components/classification-badge/index.d.ts +22 -6
  106. package/dist/components/classification-badge/index.js +58 -1
  107. package/dist/components/classification-badge/index.js.map +1 -1
  108. package/dist/components/classification-badge/styles.module.css +1 -1
  109. package/dist/components/classification-badge/types.d.ts +19 -5
  110. package/dist/components/classification-badge/types.js +12 -2
  111. package/dist/components/classification-banner/context.d.ts +25 -7
  112. package/dist/components/classification-banner/context.js +28 -1
  113. package/dist/components/classification-banner/context.js.map +1 -1
  114. package/dist/components/classification-banner/index.d.ts +22 -5
  115. package/dist/components/classification-banner/index.js +54 -1
  116. package/dist/components/classification-banner/index.js.map +1 -1
  117. package/dist/components/classification-banner/styles.module.css +1 -1
  118. package/dist/components/classification-banner/types.d.ts +18 -4
  119. package/dist/components/classification-banner/types.js +12 -2
  120. package/dist/components/clock/index.d.ts +23 -5
  121. package/dist/components/clock/index.js +65 -1
  122. package/dist/components/clock/index.js.map +1 -1
  123. package/dist/components/clock/types.d.ts +18 -4
  124. package/dist/components/clock/types.js +12 -2
  125. package/dist/components/color-picker/index.d.ts +24 -6
  126. package/dist/components/color-picker/index.js +74 -1
  127. package/dist/components/color-picker/index.js.map +1 -1
  128. package/dist/components/color-picker/styles.module.css +1 -1
  129. package/dist/components/color-picker/types.d.ts +24 -10
  130. package/dist/components/color-picker/types.js +12 -2
  131. package/dist/components/combobox-field/context.d.ts +26 -10
  132. package/dist/components/combobox-field/context.js +28 -1
  133. package/dist/components/combobox-field/context.js.map +1 -1
  134. package/dist/components/combobox-field/index.d.ts +23 -10
  135. package/dist/components/combobox-field/index.js +91 -1
  136. package/dist/components/combobox-field/index.js.map +1 -1
  137. package/dist/components/combobox-field/styles.module.css +1 -1
  138. package/dist/components/combobox-field/types.d.ts +34 -22
  139. package/dist/components/combobox-field/types.js +12 -2
  140. package/dist/components/coordinate-field/context.d.ts +34 -13
  141. package/dist/components/coordinate-field/context.js +102 -1
  142. package/dist/components/coordinate-field/context.js.map +1 -1
  143. package/dist/components/coordinate-field/coordinate-utils.d.ts +28 -16
  144. package/dist/components/coordinate-field/coordinate-utils.js +792 -1
  145. package/dist/components/coordinate-field/coordinate-utils.js.map +1 -1
  146. package/dist/components/coordinate-field/index.d.ts +23 -6
  147. package/dist/components/coordinate-field/index.js +302 -1
  148. package/dist/components/coordinate-field/index.js.map +1 -1
  149. package/dist/components/coordinate-field/segment-configs.d.ts +16 -25
  150. package/dist/components/coordinate-field/segment-configs.js +474 -1
  151. package/dist/components/coordinate-field/segment-configs.js.map +1 -1
  152. package/dist/components/coordinate-field/segment.d.ts +38 -6
  153. package/dist/components/coordinate-field/segment.js +142 -1
  154. package/dist/components/coordinate-field/segment.js.map +1 -1
  155. package/dist/components/coordinate-field/styles.module.css +5 -1
  156. package/dist/components/coordinate-field/types.d.ts +152 -138
  157. package/dist/components/coordinate-field/types.js +48 -1
  158. package/dist/components/coordinate-field/types.js.map +1 -1
  159. package/dist/components/coordinate-field/width-utils.d.ts +16 -4
  160. package/dist/components/coordinate-field/width-utils.js +52 -1
  161. package/dist/components/coordinate-field/width-utils.js.map +1 -1
  162. package/dist/components/date-field/index.d.ts +34 -6
  163. package/dist/components/date-field/index.js +133 -1
  164. package/dist/components/date-field/index.js.map +1 -1
  165. package/dist/components/date-field/styles.module.css +1 -1
  166. package/dist/components/date-field/types.d.ts +34 -20
  167. package/dist/components/date-field/types.js +12 -2
  168. package/dist/components/details-list/context.d.ts +25 -7
  169. package/dist/components/details-list/context.js +28 -1
  170. package/dist/components/details-list/context.js.map +1 -1
  171. package/dist/components/details-list/index.d.ts +23 -6
  172. package/dist/components/details-list/index.js +69 -1
  173. package/dist/components/details-list/index.js.map +1 -1
  174. package/dist/components/details-list/label.d.ts +18 -5
  175. package/dist/components/details-list/label.js +28 -1
  176. package/dist/components/details-list/label.js.map +1 -1
  177. package/dist/components/details-list/styles.module.css +1 -1
  178. package/dist/components/details-list/types.d.ts +24 -10
  179. package/dist/components/details-list/types.js +12 -2
  180. package/dist/components/details-list/value.d.ts +18 -5
  181. package/dist/components/details-list/value.js +28 -1
  182. package/dist/components/details-list/value.js.map +1 -1
  183. package/dist/components/dialog/content.d.ts +21 -3
  184. package/dist/components/dialog/content.js +28 -1
  185. package/dist/components/dialog/content.js.map +1 -1
  186. package/dist/components/dialog/context.d.ts +19 -4
  187. package/dist/components/dialog/context.js +21 -1
  188. package/dist/components/dialog/context.js.map +1 -1
  189. package/dist/components/dialog/footer.d.ts +21 -3
  190. package/dist/components/dialog/footer.js +42 -1
  191. package/dist/components/dialog/footer.js.map +1 -1
  192. package/dist/components/dialog/index.d.ts +23 -6
  193. package/dist/components/dialog/index.js +72 -1
  194. package/dist/components/dialog/index.js.map +1 -1
  195. package/dist/components/dialog/styles.module.css +1 -1
  196. package/dist/components/dialog/title.d.ts +21 -3
  197. package/dist/components/dialog/title.js +30 -1
  198. package/dist/components/dialog/title.js.map +1 -1
  199. package/dist/components/dialog/trigger.d.ts +17 -2
  200. package/dist/components/dialog/trigger.js +23 -1
  201. package/dist/components/dialog/trigger.js.map +1 -1
  202. package/dist/components/dialog/types.d.ts +25 -11
  203. package/dist/components/dialog/types.js +12 -2
  204. package/dist/components/divider/context.d.ts +25 -7
  205. package/dist/components/divider/context.js +28 -1
  206. package/dist/components/divider/context.js.map +1 -1
  207. package/dist/components/divider/index.d.ts +22 -5
  208. package/dist/components/divider/index.js +59 -1
  209. package/dist/components/divider/index.js.map +1 -1
  210. package/dist/components/divider/styles.module.css +1 -1
  211. package/dist/components/divider/types.d.ts +22 -8
  212. package/dist/components/divider/types.js +12 -2
  213. package/dist/components/drawer/back.d.ts +17 -2
  214. package/dist/components/drawer/back.js +36 -1
  215. package/dist/components/drawer/back.js.map +1 -1
  216. package/dist/components/drawer/close.d.ts +17 -2
  217. package/dist/components/drawer/close.js +33 -1
  218. package/dist/components/drawer/close.js.map +1 -1
  219. package/dist/components/drawer/content.d.ts +20 -3
  220. package/dist/components/drawer/content.js +27 -1
  221. package/dist/components/drawer/content.js.map +1 -1
  222. package/dist/components/drawer/context.d.ts +35 -27
  223. package/dist/components/drawer/context.js +47 -1
  224. package/dist/components/drawer/context.js.map +1 -1
  225. package/dist/components/drawer/events.d.ts +6 -4
  226. package/dist/components/drawer/events.js +23 -1
  227. package/dist/components/drawer/events.js.map +1 -1
  228. package/dist/components/drawer/footer.d.ts +20 -3
  229. package/dist/components/drawer/footer.js +27 -1
  230. package/dist/components/drawer/footer.js.map +1 -1
  231. package/dist/components/drawer/header-title.d.ts +22 -14
  232. package/dist/components/drawer/header-title.js +34 -1
  233. package/dist/components/drawer/header-title.js.map +1 -1
  234. package/dist/components/drawer/header.d.ts +23 -3
  235. package/dist/components/drawer/header.js +44 -1
  236. package/dist/components/drawer/header.js.map +1 -1
  237. package/dist/components/drawer/index.d.ts +29 -14
  238. package/dist/components/drawer/index.js +105 -1
  239. package/dist/components/drawer/index.js.map +1 -1
  240. package/dist/components/drawer/layout-main.d.ts +20 -3
  241. package/dist/components/drawer/layout-main.js +27 -1
  242. package/dist/components/drawer/layout-main.js.map +1 -1
  243. package/dist/components/drawer/layout.d.ts +22 -13
  244. package/dist/components/drawer/layout.js +29 -1
  245. package/dist/components/drawer/layout.js.map +1 -1
  246. package/dist/components/drawer/menu-item.d.ts +25 -13
  247. package/dist/components/drawer/menu-item.js +64 -1
  248. package/dist/components/drawer/menu-item.js.map +1 -1
  249. package/dist/components/drawer/menu.d.ts +22 -13
  250. package/dist/components/drawer/menu.js +28 -1
  251. package/dist/components/drawer/menu.js.map +1 -1
  252. package/dist/components/drawer/panel.d.ts +20 -3
  253. package/dist/components/drawer/panel.js +27 -1
  254. package/dist/components/drawer/panel.js.map +1 -1
  255. package/dist/components/drawer/styles.module.css +1 -1
  256. package/dist/components/drawer/trigger.d.ts +21 -13
  257. package/dist/components/drawer/trigger.js +41 -1
  258. package/dist/components/drawer/trigger.js.map +1 -1
  259. package/dist/components/drawer/types.d.ts +178 -165
  260. package/dist/components/drawer/types.js +12 -2
  261. package/dist/components/drawer/view.d.ts +24 -8
  262. package/dist/components/drawer/view.js +45 -1
  263. package/dist/components/drawer/view.js.map +1 -1
  264. package/dist/components/flashcard/index.d.ts +32 -19
  265. package/dist/components/flashcard/index.js +140 -1
  266. package/dist/components/flashcard/index.js.map +1 -1
  267. package/dist/components/flashcard/styles.module.css +1 -1
  268. package/dist/components/flashcard/types.d.ts +21 -8
  269. package/dist/components/flashcard/types.js +12 -2
  270. package/dist/components/hero/context.d.ts +19 -4
  271. package/dist/components/hero/context.js +21 -1
  272. package/dist/components/hero/context.js.map +1 -1
  273. package/dist/components/hero/index.d.ts +23 -5
  274. package/dist/components/hero/index.js +79 -1
  275. package/dist/components/hero/index.js.map +1 -1
  276. package/dist/components/hero/styles.module.css +1 -1
  277. package/dist/components/hero/subtitle.d.ts +18 -3
  278. package/dist/components/hero/subtitle.js +21 -1
  279. package/dist/components/hero/subtitle.js.map +1 -1
  280. package/dist/components/hero/title.d.ts +18 -3
  281. package/dist/components/hero/title.js +21 -1
  282. package/dist/components/hero/title.js.map +1 -1
  283. package/dist/components/hero/types.d.ts +24 -10
  284. package/dist/components/hero/types.js +12 -2
  285. package/dist/components/hotkey/context.d.ts +25 -7
  286. package/dist/components/hotkey/context.js +28 -1
  287. package/dist/components/hotkey/context.js.map +1 -1
  288. package/dist/components/hotkey/index.d.ts +24 -5
  289. package/dist/components/hotkey/index.js +65 -1
  290. package/dist/components/hotkey/index.js.map +1 -1
  291. package/dist/components/hotkey/set.d.ts +21 -3
  292. package/dist/components/hotkey/set.js +32 -1
  293. package/dist/components/hotkey/set.js.map +1 -1
  294. package/dist/components/hotkey/styles.module.css +1 -1
  295. package/dist/components/hotkey/types.d.ts +18 -4
  296. package/dist/components/hotkey/types.js +12 -2
  297. package/dist/components/icon/context.d.ts +25 -7
  298. package/dist/components/icon/context.js +28 -1
  299. package/dist/components/icon/context.js.map +1 -1
  300. package/dist/components/icon/index.d.ts +23 -5
  301. package/dist/components/icon/index.js +64 -1
  302. package/dist/components/icon/index.js.map +1 -1
  303. package/dist/components/icon/styles.module.css +1 -1
  304. package/dist/components/icon/types.d.ts +18 -4
  305. package/dist/components/icon/types.js +12 -2
  306. package/dist/components/input/context.d.ts +19 -6
  307. package/dist/components/input/context.js +21 -1
  308. package/dist/components/input/context.js.map +1 -1
  309. package/dist/components/input/index.d.ts +23 -8
  310. package/dist/components/input/index.js +126 -1
  311. package/dist/components/input/index.js.map +1 -1
  312. package/dist/components/input/styles.module.css +1 -1
  313. package/dist/components/input/types.d.ts +33 -20
  314. package/dist/components/input/types.js +12 -2
  315. package/dist/components/kanban/card-body.d.ts +22 -9
  316. package/dist/components/kanban/card-body.js +29 -1
  317. package/dist/components/kanban/card-body.js.map +1 -1
  318. package/dist/components/kanban/card-header-actions.d.ts +22 -9
  319. package/dist/components/kanban/card-header-actions.js +29 -1
  320. package/dist/components/kanban/card-header-actions.js.map +1 -1
  321. package/dist/components/kanban/card-header-title.d.ts +22 -9
  322. package/dist/components/kanban/card-header-title.js +29 -1
  323. package/dist/components/kanban/card-header-title.js.map +1 -1
  324. package/dist/components/kanban/card-header.d.ts +22 -9
  325. package/dist/components/kanban/card-header.js +30 -1
  326. package/dist/components/kanban/card-header.js.map +1 -1
  327. package/dist/components/kanban/card.d.ts +24 -9
  328. package/dist/components/kanban/card.js +48 -1
  329. package/dist/components/kanban/card.js.map +1 -1
  330. package/dist/components/kanban/column-actions.d.ts +22 -9
  331. package/dist/components/kanban/column-actions.js +37 -1
  332. package/dist/components/kanban/column-actions.js.map +1 -1
  333. package/dist/components/kanban/column-container.d.ts +22 -9
  334. package/dist/components/kanban/column-container.js +29 -1
  335. package/dist/components/kanban/column-container.js.map +1 -1
  336. package/dist/components/kanban/column-content.d.ts +23 -9
  337. package/dist/components/kanban/column-content.js +34 -1
  338. package/dist/components/kanban/column-content.js.map +1 -1
  339. package/dist/components/kanban/column-header-actions.d.ts +23 -9
  340. package/dist/components/kanban/column-header-actions.js +30 -1
  341. package/dist/components/kanban/column-header-actions.js.map +1 -1
  342. package/dist/components/kanban/column-header-drag-handle.d.ts +17 -2
  343. package/dist/components/kanban/column-header-drag-handle.js +29 -1
  344. package/dist/components/kanban/column-header-drag-handle.js.map +1 -1
  345. package/dist/components/kanban/column-header-title.d.ts +22 -9
  346. package/dist/components/kanban/column-header-title.js +29 -1
  347. package/dist/components/kanban/column-header-title.js.map +1 -1
  348. package/dist/components/kanban/column-header.d.ts +22 -9
  349. package/dist/components/kanban/column-header.js +29 -1
  350. package/dist/components/kanban/column-header.js.map +1 -1
  351. package/dist/components/kanban/column.d.ts +23 -9
  352. package/dist/components/kanban/column.js +34 -1
  353. package/dist/components/kanban/column.js.map +1 -1
  354. package/dist/components/kanban/context.d.ts +77 -58
  355. package/dist/components/kanban/context.js +201 -1
  356. package/dist/components/kanban/context.js.map +1 -1
  357. package/dist/components/kanban/header-actions.d.ts +22 -9
  358. package/dist/components/kanban/header-actions.js +29 -1
  359. package/dist/components/kanban/header-actions.js.map +1 -1
  360. package/dist/components/kanban/header-search.d.ts +21 -9
  361. package/dist/components/kanban/header-search.js +29 -1
  362. package/dist/components/kanban/header-search.js.map +1 -1
  363. package/dist/components/kanban/header-title.d.ts +22 -9
  364. package/dist/components/kanban/header-title.js +30 -1
  365. package/dist/components/kanban/header-title.js.map +1 -1
  366. package/dist/components/kanban/header.d.ts +22 -9
  367. package/dist/components/kanban/header.js +29 -1
  368. package/dist/components/kanban/header.js.map +1 -1
  369. package/dist/components/kanban/index.d.ts +15 -9
  370. package/dist/components/kanban/index.js +16 -2
  371. package/dist/components/kanban/kanban.d.ts +27 -13
  372. package/dist/components/kanban/kanban.js +81 -1
  373. package/dist/components/kanban/kanban.js.map +1 -1
  374. package/dist/components/kanban/mock-data.d.ts +11 -9
  375. package/dist/components/kanban/mock-data.js +89 -1
  376. package/dist/components/kanban/mock-data.js.map +1 -1
  377. package/dist/components/kanban/styles.module.css +1 -1
  378. package/dist/components/kanban/types.d.ts +39 -29
  379. package/dist/components/kanban/types.js +12 -2
  380. package/dist/components/label/context.d.ts +25 -7
  381. package/dist/components/label/context.js +28 -1
  382. package/dist/components/label/context.js.map +1 -1
  383. package/dist/components/label/index.d.ts +23 -6
  384. package/dist/components/label/index.js +54 -1
  385. package/dist/components/label/index.js.map +1 -1
  386. package/dist/components/label/styles.module.css +1 -1
  387. package/dist/components/label/types.d.ts +20 -6
  388. package/dist/components/label/types.js +12 -2
  389. package/dist/components/lines/index.d.ts +23 -5
  390. package/dist/components/lines/index.js +37 -1
  391. package/dist/components/lines/index.js.map +1 -1
  392. package/dist/components/lines/styles.module.css +1 -1
  393. package/dist/components/lines/types.d.ts +20 -6
  394. package/dist/components/lines/types.js +12 -2
  395. package/dist/components/link/context.d.ts +22 -6
  396. package/dist/components/link/context.js +27 -1
  397. package/dist/components/link/context.js.map +1 -1
  398. package/dist/components/link/index.d.ts +22 -6
  399. package/dist/components/link/index.js +42 -1
  400. package/dist/components/link/index.js.map +1 -1
  401. package/dist/components/link/styles.module.css +1 -1
  402. package/dist/components/link/types.d.ts +20 -6
  403. package/dist/components/link/types.js +12 -2
  404. package/dist/components/menu/context.d.ts +19 -5
  405. package/dist/components/menu/context.js +21 -1
  406. package/dist/components/menu/context.js.map +1 -1
  407. package/dist/components/menu/index.d.ts +47 -7
  408. package/dist/components/menu/index.js +128 -1
  409. package/dist/components/menu/index.js.map +1 -1
  410. package/dist/components/menu/item-description.d.ts +22 -3
  411. package/dist/components/menu/item-description.js +31 -1
  412. package/dist/components/menu/item-description.js.map +1 -1
  413. package/dist/components/menu/item-label.d.ts +22 -3
  414. package/dist/components/menu/item-label.js +31 -1
  415. package/dist/components/menu/item-label.js.map +1 -1
  416. package/dist/components/menu/item.d.ts +23 -6
  417. package/dist/components/menu/item.js +52 -1
  418. package/dist/components/menu/item.js.map +1 -1
  419. package/dist/components/menu/section.d.ts +24 -6
  420. package/dist/components/menu/section.js +36 -1
  421. package/dist/components/menu/section.js.map +1 -1
  422. package/dist/components/menu/separator.d.ts +21 -3
  423. package/dist/components/menu/separator.js +29 -1
  424. package/dist/components/menu/separator.js.map +1 -1
  425. package/dist/components/menu/styles.module.css +1 -1
  426. package/dist/components/menu/submenu.d.ts +18 -3
  427. package/dist/components/menu/submenu.js +21 -1
  428. package/dist/components/menu/submenu.js.map +1 -1
  429. package/dist/components/menu/trigger.d.ts +17 -2
  430. package/dist/components/menu/trigger.js +21 -1
  431. package/dist/components/menu/trigger.js.map +1 -1
  432. package/dist/components/menu/types.d.ts +38 -24
  433. package/dist/components/menu/types.js +12 -2
  434. package/dist/components/notice/events.d.ts +8 -6
  435. package/dist/components/notice/events.js +25 -1
  436. package/dist/components/notice/events.js.map +1 -1
  437. package/dist/components/notice/index.d.ts +32 -10
  438. package/dist/components/notice/index.js +88 -1
  439. package/dist/components/notice/index.js.map +1 -1
  440. package/dist/components/notice/list.d.ts +29 -10
  441. package/dist/components/notice/list.js +102 -1
  442. package/dist/components/notice/list.js.map +1 -1
  443. package/dist/components/notice/notice-icon.d.ts +21 -10
  444. package/dist/components/notice/notice-icon.js +34 -1
  445. package/dist/components/notice/notice-icon.js.map +1 -1
  446. package/dist/components/notice/styles.module.css +1 -1
  447. package/dist/components/notice/types.d.ts +67 -55
  448. package/dist/components/notice/types.js +12 -2
  449. package/dist/components/notice/utils.d.ts +17 -1
  450. package/dist/components/notice/utils.js +24 -1
  451. package/dist/components/notice/utils.js.map +1 -1
  452. package/dist/components/options/context.d.ts +19 -5
  453. package/dist/components/options/context.js +21 -1
  454. package/dist/components/options/context.js.map +1 -1
  455. package/dist/components/options/index.d.ts +23 -7
  456. package/dist/components/options/index.js +76 -1
  457. package/dist/components/options/index.js.map +1 -1
  458. package/dist/components/options/item-content.d.ts +20 -3
  459. package/dist/components/options/item-content.js +27 -1
  460. package/dist/components/options/item-content.js.map +1 -1
  461. package/dist/components/options/item-description.d.ts +20 -3
  462. package/dist/components/options/item-description.js +29 -1
  463. package/dist/components/options/item-description.js.map +1 -1
  464. package/dist/components/options/item-label.d.ts +20 -3
  465. package/dist/components/options/item-label.js +29 -1
  466. package/dist/components/options/item-label.js.map +1 -1
  467. package/dist/components/options/item.d.ts +24 -6
  468. package/dist/components/options/item.js +38 -1
  469. package/dist/components/options/item.js.map +1 -1
  470. package/dist/components/options/section.d.ts +22 -6
  471. package/dist/components/options/section.js +35 -1
  472. package/dist/components/options/section.js.map +1 -1
  473. package/dist/components/options/styles.module.css +1 -1
  474. package/dist/components/options/types.d.ts +32 -18
  475. package/dist/components/options/types.js +12 -2
  476. package/dist/components/pagination/context.d.ts +18 -6
  477. package/dist/components/pagination/context.js +26 -1
  478. package/dist/components/pagination/context.js.map +1 -1
  479. package/dist/components/pagination/index.d.ts +28 -8
  480. package/dist/components/pagination/index.js +63 -1
  481. package/dist/components/pagination/index.js.map +1 -1
  482. package/dist/components/pagination/next.d.ts +21 -7
  483. package/dist/components/pagination/next.js +44 -1
  484. package/dist/components/pagination/next.js.map +1 -1
  485. package/dist/components/pagination/pages.d.ts +21 -7
  486. package/dist/components/pagination/pages.js +45 -1
  487. package/dist/components/pagination/pages.js.map +1 -1
  488. package/dist/components/pagination/prev.d.ts +21 -7
  489. package/dist/components/pagination/prev.js +44 -1
  490. package/dist/components/pagination/prev.js.map +1 -1
  491. package/dist/components/pagination/styles.module.css +1 -1
  492. package/dist/components/pagination/types.d.ts +36 -24
  493. package/dist/components/pagination/types.js +12 -2
  494. package/dist/components/pagination/utils.d.ts +5 -3
  495. package/dist/components/pagination/utils.js +59 -1
  496. package/dist/components/pagination/utils.js.map +1 -1
  497. package/dist/components/popover/content.d.ts +21 -3
  498. package/dist/components/popover/content.js +28 -1
  499. package/dist/components/popover/content.js.map +1 -1
  500. package/dist/components/popover/footer.d.ts +21 -3
  501. package/dist/components/popover/footer.js +28 -1
  502. package/dist/components/popover/footer.js.map +1 -1
  503. package/dist/components/popover/index.d.ts +24 -6
  504. package/dist/components/popover/index.js +64 -1
  505. package/dist/components/popover/index.js.map +1 -1
  506. package/dist/components/popover/styles.module.css +1 -1
  507. package/dist/components/popover/title.d.ts +21 -3
  508. package/dist/components/popover/title.js +30 -1
  509. package/dist/components/popover/title.js.map +1 -1
  510. package/dist/components/popover/trigger.d.ts +22 -5
  511. package/dist/components/popover/trigger.js +33 -1
  512. package/dist/components/popover/trigger.js.map +1 -1
  513. package/dist/components/popover/types.d.ts +23 -9
  514. package/dist/components/popover/types.js +12 -2
  515. package/dist/components/query-builder/action-element.d.ts +23 -3
  516. package/dist/components/query-builder/action-element.js +36 -1
  517. package/dist/components/query-builder/action-element.js.map +1 -1
  518. package/dist/components/query-builder/actions.d.ts +32 -5
  519. package/dist/components/query-builder/actions.js +53 -1
  520. package/dist/components/query-builder/actions.js.map +1 -1
  521. package/dist/components/query-builder/combinator-selector.d.ts +22 -3
  522. package/dist/components/query-builder/combinator-selector.js +47 -1
  523. package/dist/components/query-builder/combinator-selector.js.map +1 -1
  524. package/dist/components/query-builder/constants.d.ts +3 -1
  525. package/dist/components/query-builder/constants.js +24 -1
  526. package/dist/components/query-builder/constants.js.map +1 -1
  527. package/dist/components/query-builder/index.d.ts +26 -7
  528. package/dist/components/query-builder/index.js +119 -1
  529. package/dist/components/query-builder/index.js.map +1 -1
  530. package/dist/components/query-builder/rule-group.d.ts +20 -5
  531. package/dist/components/query-builder/rule-group.js +167 -1
  532. package/dist/components/query-builder/rule-group.js.map +1 -1
  533. package/dist/components/query-builder/rule.d.ts +18 -3
  534. package/dist/components/query-builder/rule.js +148 -1
  535. package/dist/components/query-builder/rule.js.map +1 -1
  536. package/dist/components/query-builder/styles.module.css +1 -1
  537. package/dist/components/query-builder/types.d.ts +21 -7
  538. package/dist/components/query-builder/types.js +12 -2
  539. package/dist/components/query-builder/utils.d.ts +16 -2
  540. package/dist/components/query-builder/utils.js +26 -1
  541. package/dist/components/query-builder/utils.js.map +1 -1
  542. package/dist/components/query-builder/value-editor.d.ts +18 -3
  543. package/dist/components/query-builder/value-editor.js +156 -1
  544. package/dist/components/query-builder/value-editor.js.map +1 -1
  545. package/dist/components/query-builder/value-selector.d.ts +18 -3
  546. package/dist/components/query-builder/value-selector.js +57 -1
  547. package/dist/components/query-builder/value-selector.js.map +1 -1
  548. package/dist/components/radio/context.d.ts +20 -6
  549. package/dist/components/radio/context.js +26 -1
  550. package/dist/components/radio/context.js.map +1 -1
  551. package/dist/components/radio/group.d.ts +22 -7
  552. package/dist/components/radio/group.js +46 -1
  553. package/dist/components/radio/group.js.map +1 -1
  554. package/dist/components/radio/index.d.ts +24 -7
  555. package/dist/components/radio/index.js +64 -1
  556. package/dist/components/radio/index.js.map +1 -1
  557. package/dist/components/radio/styles.module.css +1 -1
  558. package/dist/components/radio/types.d.ts +29 -15
  559. package/dist/components/radio/types.js +12 -2
  560. package/dist/components/search-field/context.d.ts +26 -10
  561. package/dist/components/search-field/context.js +38 -1
  562. package/dist/components/search-field/context.js.map +1 -1
  563. package/dist/components/search-field/index.d.ts +28 -12
  564. package/dist/components/search-field/index.js +88 -1
  565. package/dist/components/search-field/index.js.map +1 -1
  566. package/dist/components/search-field/styles.module.css +1 -2
  567. package/dist/components/search-field/types.d.ts +31 -18
  568. package/dist/components/search-field/types.js +12 -2
  569. package/dist/components/select-field/context.d.ts +25 -9
  570. package/dist/components/select-field/context.js +28 -1
  571. package/dist/components/select-field/context.js.map +1 -1
  572. package/dist/components/select-field/index.d.ts +23 -9
  573. package/dist/components/select-field/index.js +119 -1
  574. package/dist/components/select-field/index.js.map +1 -1
  575. package/dist/components/select-field/styles.module.css +1 -1
  576. package/dist/components/select-field/types.d.ts +32 -19
  577. package/dist/components/select-field/types.js +12 -2
  578. package/dist/components/sidenav/avatar.d.ts +23 -9
  579. package/dist/components/sidenav/avatar.js +48 -1
  580. package/dist/components/sidenav/avatar.js.map +1 -1
  581. package/dist/components/sidenav/content.d.ts +23 -9
  582. package/dist/components/sidenav/content.js +39 -1
  583. package/dist/components/sidenav/content.js.map +1 -1
  584. package/dist/components/sidenav/context.d.ts +18 -7
  585. package/dist/components/sidenav/context.js +25 -1
  586. package/dist/components/sidenav/context.js.map +1 -1
  587. package/dist/components/sidenav/events.d.ts +6 -4
  588. package/dist/components/sidenav/events.js +23 -1
  589. package/dist/components/sidenav/events.js.map +1 -1
  590. package/dist/components/sidenav/footer.d.ts +18 -9
  591. package/dist/components/sidenav/footer.js +27 -1
  592. package/dist/components/sidenav/footer.js.map +1 -1
  593. package/dist/components/sidenav/header.d.ts +23 -9
  594. package/dist/components/sidenav/header.js +50 -1
  595. package/dist/components/sidenav/header.js.map +1 -1
  596. package/dist/components/sidenav/index.d.ts +26 -9
  597. package/dist/components/sidenav/index.js +112 -1
  598. package/dist/components/sidenav/index.js.map +1 -1
  599. package/dist/components/sidenav/item.d.ts +24 -9
  600. package/dist/components/sidenav/item.js +54 -1
  601. package/dist/components/sidenav/item.js.map +1 -1
  602. package/dist/components/sidenav/link.d.ts +24 -9
  603. package/dist/components/sidenav/link.js +58 -1
  604. package/dist/components/sidenav/link.js.map +1 -1
  605. package/dist/components/sidenav/menu-item.d.ts +22 -9
  606. package/dist/components/sidenav/menu-item.js +34 -1
  607. package/dist/components/sidenav/menu-item.js.map +1 -1
  608. package/dist/components/sidenav/menu.d.ts +25 -9
  609. package/dist/components/sidenav/menu.js +87 -1
  610. package/dist/components/sidenav/menu.js.map +1 -1
  611. package/dist/components/sidenav/styles.module.css +9 -1
  612. package/dist/components/sidenav/trigger.d.ts +23 -9
  613. package/dist/components/sidenav/trigger.js +38 -1
  614. package/dist/components/sidenav/trigger.js.map +1 -1
  615. package/dist/components/sidenav/types.d.ts +55 -41
  616. package/dist/components/sidenav/types.js +12 -2
  617. package/dist/components/skeleton/index.d.ts +23 -5
  618. package/dist/components/skeleton/index.js +57 -1
  619. package/dist/components/skeleton/index.js.map +1 -1
  620. package/dist/components/skeleton/styles.module.css +1 -1
  621. package/dist/components/skeleton/types.d.ts +18 -4
  622. package/dist/components/skeleton/types.js +12 -2
  623. package/dist/components/slider/index.d.ts +63 -5
  624. package/dist/components/slider/index.js +269 -1
  625. package/dist/components/slider/index.js.map +1 -1
  626. package/dist/components/slider/styles.module.css +67 -9
  627. package/dist/components/slider/types.d.ts +65 -19
  628. package/dist/components/slider/types.js +12 -2
  629. package/dist/components/switch/context.d.ts +26 -8
  630. package/dist/components/switch/context.js +38 -1
  631. package/dist/components/switch/context.js.map +1 -1
  632. package/dist/components/switch/index.d.ts +23 -6
  633. package/dist/components/switch/index.js +73 -1
  634. package/dist/components/switch/index.js.map +1 -1
  635. package/dist/components/switch/styles.module.css +1 -1
  636. package/dist/components/switch/types.d.ts +24 -10
  637. package/dist/components/switch/types.js +12 -2
  638. package/dist/components/table/body.d.ts +23 -6
  639. package/dist/components/table/body.js +29 -1
  640. package/dist/components/table/body.js.map +1 -1
  641. package/dist/components/table/cell.d.ts +23 -6
  642. package/dist/components/table/cell.js +39 -1
  643. package/dist/components/table/cell.js.map +1 -1
  644. package/dist/components/table/constants/table.d.ts +22 -8
  645. package/dist/components/table/constants/table.js +30 -1
  646. package/dist/components/table/constants/table.js.map +1 -1
  647. package/dist/components/table/context.d.ts +17 -5
  648. package/dist/components/table/context.js +34 -1
  649. package/dist/components/table/context.js.map +1 -1
  650. package/dist/components/table/header-cell.d.ts +23 -6
  651. package/dist/components/table/header-cell.js +113 -1
  652. package/dist/components/table/header-cell.js.map +1 -1
  653. package/dist/components/table/header.d.ts +24 -6
  654. package/dist/components/table/header.js +28 -1
  655. package/dist/components/table/header.js.map +1 -1
  656. package/dist/components/table/index.d.ts +40 -8
  657. package/dist/components/table/index.js +250 -1
  658. package/dist/components/table/index.js.map +1 -1
  659. package/dist/components/table/row.d.ts +23 -6
  660. package/dist/components/table/row.js +33 -1
  661. package/dist/components/table/row.js.map +1 -1
  662. package/dist/components/table/styles.module.css +1 -1
  663. package/dist/components/table/types.d.ts +152 -142
  664. package/dist/components/table/types.js +12 -2
  665. package/dist/components/tabs/context.d.ts +26 -8
  666. package/dist/components/tabs/context.js +38 -1
  667. package/dist/components/tabs/context.js.map +1 -1
  668. package/dist/components/tabs/index.d.ts +23 -6
  669. package/dist/components/tabs/index.js +80 -1
  670. package/dist/components/tabs/index.js.map +1 -1
  671. package/dist/components/tabs/list.d.ts +23 -4
  672. package/dist/components/tabs/list.js +35 -1
  673. package/dist/components/tabs/list.js.map +1 -1
  674. package/dist/components/tabs/panel.d.ts +23 -4
  675. package/dist/components/tabs/panel.js +35 -1
  676. package/dist/components/tabs/panel.js.map +1 -1
  677. package/dist/components/tabs/styles.module.css +1 -1
  678. package/dist/components/tabs/tab.d.ts +23 -4
  679. package/dist/components/tabs/tab.js +35 -1
  680. package/dist/components/tabs/tab.js.map +1 -1
  681. package/dist/components/tabs/types.d.ts +18 -4
  682. package/dist/components/tabs/types.js +12 -2
  683. package/dist/components/text-area-field/context.d.ts +26 -8
  684. package/dist/components/text-area-field/context.js +38 -1
  685. package/dist/components/text-area-field/context.js.map +1 -1
  686. package/dist/components/text-area-field/index.d.ts +23 -6
  687. package/dist/components/text-area-field/index.js +80 -1
  688. package/dist/components/text-area-field/index.js.map +1 -1
  689. package/dist/components/text-area-field/styles.module.css +1 -1
  690. package/dist/components/text-area-field/types.d.ts +28 -14
  691. package/dist/components/text-area-field/types.js +12 -2
  692. package/dist/components/text-field/context.d.ts +25 -10
  693. package/dist/components/text-field/context.js +28 -1
  694. package/dist/components/text-field/context.js.map +1 -1
  695. package/dist/components/text-field/index.d.ts +23 -10
  696. package/dist/components/text-field/index.js +154 -1
  697. package/dist/components/text-field/index.js.map +1 -1
  698. package/dist/components/text-field/styles.module.css +1 -1
  699. package/dist/components/text-field/types.d.ts +31 -19
  700. package/dist/components/text-field/types.js +12 -2
  701. package/dist/components/time-field/index.d.ts +34 -5
  702. package/dist/components/time-field/index.js +83 -1
  703. package/dist/components/time-field/index.js.map +1 -1
  704. package/dist/components/time-field/styles.module.css +1 -1
  705. package/dist/components/time-field/types.d.ts +30 -16
  706. package/dist/components/time-field/types.js +12 -2
  707. package/dist/components/tooltip/context.d.ts +19 -4
  708. package/dist/components/tooltip/context.js +21 -1
  709. package/dist/components/tooltip/context.js.map +1 -1
  710. package/dist/components/tooltip/index.d.ts +27 -6
  711. package/dist/components/tooltip/index.js +81 -1
  712. package/dist/components/tooltip/index.js.map +1 -1
  713. package/dist/components/tooltip/styles.module.css +1 -1
  714. package/dist/components/tooltip/trigger.d.ts +21 -5
  715. package/dist/components/tooltip/trigger.js +47 -1
  716. package/dist/components/tooltip/trigger.js.map +1 -1
  717. package/dist/components/tooltip/types.d.ts +19 -5
  718. package/dist/components/tooltip/types.js +12 -2
  719. package/dist/components/tree/context.d.ts +20 -8
  720. package/dist/components/tree/context.js +39 -1
  721. package/dist/components/tree/context.js.map +1 -1
  722. package/dist/components/tree/index.d.ts +36 -8
  723. package/dist/components/tree/index.js +125 -1
  724. package/dist/components/tree/index.js.map +1 -1
  725. package/dist/components/tree/item-actions.d.ts +23 -6
  726. package/dist/components/tree/item-actions.js +35 -1
  727. package/dist/components/tree/item-actions.js.map +1 -1
  728. package/dist/components/tree/item-content.d.ts +20 -8
  729. package/dist/components/tree/item-content.js +102 -1
  730. package/dist/components/tree/item-content.js.map +1 -1
  731. package/dist/components/tree/item-description.d.ts +21 -4
  732. package/dist/components/tree/item-description.js +37 -1
  733. package/dist/components/tree/item-description.js.map +1 -1
  734. package/dist/components/tree/item-label.d.ts +21 -4
  735. package/dist/components/tree/item-label.js +33 -1
  736. package/dist/components/tree/item-label.js.map +1 -1
  737. package/dist/components/tree/item-prefix-icon.d.ts +21 -5
  738. package/dist/components/tree/item-prefix-icon.js +33 -1
  739. package/dist/components/tree/item-prefix-icon.js.map +1 -1
  740. package/dist/components/tree/item.d.ts +23 -8
  741. package/dist/components/tree/item.js +50 -1
  742. package/dist/components/tree/item.js.map +1 -1
  743. package/dist/components/tree/lines.d.ts +19 -5
  744. package/dist/components/tree/lines.js +36 -1
  745. package/dist/components/tree/lines.js.map +1 -1
  746. package/dist/components/tree/styles.module.css +5 -1
  747. package/dist/components/tree/types.d.ts +42 -29
  748. package/dist/components/tree/types.js +12 -2
  749. package/dist/components/view-stack/context.d.ts +28 -16
  750. package/dist/components/view-stack/context.js +58 -1
  751. package/dist/components/view-stack/context.js.map +1 -1
  752. package/dist/components/view-stack/events.d.ts +7 -5
  753. package/dist/components/view-stack/events.js +24 -1
  754. package/dist/components/view-stack/events.js.map +1 -1
  755. package/dist/components/view-stack/index.d.ts +25 -9
  756. package/dist/components/view-stack/index.js +114 -1
  757. package/dist/components/view-stack/index.js.map +1 -1
  758. package/dist/components/view-stack/trigger.d.ts +22 -9
  759. package/dist/components/view-stack/trigger.js +45 -1
  760. package/dist/components/view-stack/trigger.js.map +1 -1
  761. package/dist/components/view-stack/types.d.ts +55 -41
  762. package/dist/components/view-stack/types.js +12 -2
  763. package/dist/components/view-stack/view.d.ts +22 -9
  764. package/dist/components/view-stack/view.js +42 -1
  765. package/dist/components/view-stack/view.js.map +1 -1
  766. package/dist/hooks/coordinate-field/index.d.ts +19 -9
  767. package/dist/hooks/coordinate-field/index.js +21 -2
  768. package/dist/hooks/coordinate-field/use-coordinate-copy.d.ts +31 -14
  769. package/dist/hooks/coordinate-field/use-coordinate-copy.js +87 -1
  770. package/dist/hooks/coordinate-field/use-coordinate-copy.js.map +1 -1
  771. package/dist/hooks/coordinate-field/use-coordinate-field-state.d.ts +43 -23
  772. package/dist/hooks/coordinate-field/use-coordinate-field-state.js +146 -1
  773. package/dist/hooks/coordinate-field/use-coordinate-field-state.js.map +1 -1
  774. package/dist/hooks/coordinate-field/use-coordinate-field.d.ts +57 -45
  775. package/dist/hooks/coordinate-field/use-coordinate-field.js +106 -1
  776. package/dist/hooks/coordinate-field/use-coordinate-field.js.map +1 -1
  777. package/dist/hooks/coordinate-field/use-coordinate-focus.d.ts +31 -16
  778. package/dist/hooks/coordinate-field/use-coordinate-focus.js +65 -1
  779. package/dist/hooks/coordinate-field/use-coordinate-focus.js.map +1 -1
  780. package/dist/hooks/coordinate-field/use-coordinate-paste.d.ts +31 -16
  781. package/dist/hooks/coordinate-field/use-coordinate-paste.js +80 -1
  782. package/dist/hooks/coordinate-field/use-coordinate-paste.js.map +1 -1
  783. package/dist/hooks/coordinate-field/use-timeout-cleanup.d.ts +5 -3
  784. package/dist/hooks/coordinate-field/use-timeout-cleanup.js +32 -1
  785. package/dist/hooks/coordinate-field/use-timeout-cleanup.js.map +1 -1
  786. package/dist/hooks/kanban/index.d.ts +31 -22
  787. package/dist/hooks/kanban/index.js +120 -1
  788. package/dist/hooks/kanban/index.js.map +1 -1
  789. package/dist/hooks/use-tree/actions/cache.d.ts +79 -63
  790. package/dist/hooks/use-tree/actions/cache.js +254 -1
  791. package/dist/hooks/use-tree/actions/cache.js.map +1 -1
  792. package/dist/hooks/use-tree/actions/index.d.ts +21 -6
  793. package/dist/hooks/use-tree/actions/index.js +179 -1
  794. package/dist/hooks/use-tree/actions/index.js.map +1 -1
  795. package/dist/hooks/use-tree/state/index.d.ts +19 -5
  796. package/dist/hooks/use-tree/state/index.js +107 -1
  797. package/dist/hooks/use-tree/state/index.js.map +1 -1
  798. package/dist/hooks/use-tree/state/utils.d.ts +16 -2
  799. package/dist/hooks/use-tree/state/utils.js +29 -1
  800. package/dist/hooks/use-tree/state/utils.js.map +1 -1
  801. package/dist/hooks/use-tree/types.d.ts +160 -146
  802. package/dist/hooks/use-tree/types.js +12 -2
  803. package/dist/index.d.ts +268 -270
  804. package/dist/index.js +220 -2
  805. package/dist/lib/types.d.ts +28 -14
  806. package/dist/lib/types.js +12 -2
  807. package/dist/lib/utils.d.ts +19 -5
  808. package/dist/lib/utils.js +23 -1
  809. package/dist/lib/utils.js.map +1 -1
  810. package/dist/providers/portal.d.ts +24 -6
  811. package/dist/providers/portal.js +46 -1
  812. package/dist/providers/portal.js.map +1 -1
  813. package/dist/providers/theme-provider.d.ts +34 -14
  814. package/dist/providers/theme-provider.js +62 -1
  815. package/dist/providers/theme-provider.js.map +1 -1
  816. package/package.json +376 -132
  817. package/dist/components/accordion/types.js.map +0 -1
  818. package/dist/components/action-bar/types.js.map +0 -1
  819. package/dist/components/avatar/types.js.map +0 -1
  820. package/dist/components/badge/types.js.map +0 -1
  821. package/dist/components/breadcrumbs/types.js.map +0 -1
  822. package/dist/components/button/types.js.map +0 -1
  823. package/dist/components/checkbox/types.js.map +0 -1
  824. package/dist/components/chip/types.js.map +0 -1
  825. package/dist/components/classification-badge/types.js.map +0 -1
  826. package/dist/components/classification-banner/types.js.map +0 -1
  827. package/dist/components/clock/types.js.map +0 -1
  828. package/dist/components/color-picker/types.js.map +0 -1
  829. package/dist/components/combobox-field/types.js.map +0 -1
  830. package/dist/components/date-field/types.js.map +0 -1
  831. package/dist/components/details-list/types.js.map +0 -1
  832. package/dist/components/dialog/types.js.map +0 -1
  833. package/dist/components/divider/types.js.map +0 -1
  834. package/dist/components/drawer/types.js.map +0 -1
  835. package/dist/components/flashcard/types.js.map +0 -1
  836. package/dist/components/hero/types.js.map +0 -1
  837. package/dist/components/hotkey/types.js.map +0 -1
  838. package/dist/components/icon/types.js.map +0 -1
  839. package/dist/components/input/types.js.map +0 -1
  840. package/dist/components/kanban/index.js.map +0 -1
  841. package/dist/components/kanban/types.js.map +0 -1
  842. package/dist/components/label/types.js.map +0 -1
  843. package/dist/components/lines/types.js.map +0 -1
  844. package/dist/components/link/types.js.map +0 -1
  845. package/dist/components/menu/types.js.map +0 -1
  846. package/dist/components/notice/types.js.map +0 -1
  847. package/dist/components/options/types.js.map +0 -1
  848. package/dist/components/pagination/types.js.map +0 -1
  849. package/dist/components/popover/types.js.map +0 -1
  850. package/dist/components/query-builder/types.js.map +0 -1
  851. package/dist/components/radio/types.js.map +0 -1
  852. package/dist/components/search-field/types.js.map +0 -1
  853. package/dist/components/select-field/types.js.map +0 -1
  854. package/dist/components/sidenav/types.js.map +0 -1
  855. package/dist/components/skeleton/types.js.map +0 -1
  856. package/dist/components/slider/types.js.map +0 -1
  857. package/dist/components/switch/types.js.map +0 -1
  858. package/dist/components/table/types.js.map +0 -1
  859. package/dist/components/tabs/types.js.map +0 -1
  860. package/dist/components/text-area-field/types.js.map +0 -1
  861. package/dist/components/text-field/types.js.map +0 -1
  862. package/dist/components/time-field/types.js.map +0 -1
  863. package/dist/components/tooltip/types.js.map +0 -1
  864. package/dist/components/tree/types.js.map +0 -1
  865. package/dist/components/view-stack/types.js.map +0 -1
  866. package/dist/foundation/token-data.d.ts +0 -17
  867. package/dist/foundation/token-data.js +0 -2
  868. package/dist/foundation/token-data.js.map +0 -1
  869. package/dist/hooks/coordinate-field/index.js.map +0 -1
  870. package/dist/hooks/use-tree/types.js.map +0 -1
  871. package/dist/icons/catalog.d.ts +0 -48
  872. package/dist/icons/catalog.js +0 -2
  873. package/dist/icons/catalog.js.map +0 -1
  874. package/dist/index.js.map +0 -1
  875. package/dist/index.module.css +0 -19
  876. package/dist/lib/types.js.map +0 -1
  877. package/dist/metafile-esm.json +0 -1
@@ -1,2 +1,121 @@
1
- import {useDroppable,useDndContext}from'@dnd-kit/core';import {useSortable}from'@dnd-kit/sortable';import {CSS}from'@dnd-kit/utilities';import {calculateClosestEdge}from'./../../components/kanban/context.js';function I(t){const{setNodeRef:a,isOver:r,active:n}=useDroppable({id:t.id,data:t}),{over:s}=useDndContext(),o=r||s?.data?.current?.columnId===t.id,i=!!(o||n&&n.data.current?.columnId!==t.id&&t.canDrop!==false),e=o&&t.canDrop!==false;return {ref:a,isHighlighted:i,isActive:e}}function K(t){const{attributes:a,listeners:r,setNodeRef:n,transform:s,transition:o,isDragging:i,over:e,active:d}=useSortable({id:t.id,data:t}),c={transform:CSS.Transform.toString(s),transition:o};let f;return e&&e.id===t.id&&d&&(f=calculateClosestEdge(e,d)),{ref:n,isDragging:i,closestEdge:f,style:c,attributes:a,listeners:r}}export{K as useCardInteractions,I as useColumnInteractions};//# sourceMappingURL=index.js.map
1
+ /*
2
+ * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+
14
+ import { calculateClosestEdge } from "../../components/kanban/context.js";
15
+ import { useDndContext, useDroppable } from "@dnd-kit/core";
16
+ import { useSortable } from "@dnd-kit/sortable";
17
+ import { CSS } from "@dnd-kit/utilities";
18
+
19
+ //#region src/hooks/kanban/index.ts
20
+ /**
21
+ * Hook that provides drag-and-drop interactions for a kanban column.
22
+ *
23
+ * This hook integrates with `@dnd-kit/core` to enable dropping cards into columns.
24
+ * It tracks hover states, validates drop targets based on the column's `canDrop` property,
25
+ * and provides visual feedback states for both the column itself and cards within it.
26
+ *
27
+ * @param column - The kanban column data object containing the column's id, canDrop status, and other properties
28
+ *
29
+ * @returns An object containing:
30
+ * - `ref` - Ref callback to attach to the droppable column DOM element
31
+ * - `isHighlighted` - Boolean indicating if the column should be visually highlighted (when a card from another column is being dragged)
32
+ * - `isActive` - Boolean indicating if the column is actively being hovered over and can accept the drop
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * function KanbanColumn({ column }: { column: KanbanColumnData }) {
37
+ * const { ref, isHighlighted, isActive } = useColumnInteractions(column);
38
+ *
39
+ * return (
40
+ * <div
41
+ * ref={ref}
42
+ * className={cn({
43
+ * 'ring-2 ring-blue-300': isHighlighted && !isActive, // Potential drop target
44
+ * 'ring-2 ring-blue-500 bg-blue-50': isActive, // Active drop target
45
+ * })}
46
+ * >
47
+ * <h2>{column.title}</h2>
48
+ * {column.cards.map(card => <Card key={card.id} card={card} />)}
49
+ * </div>
50
+ * );
51
+ * }
52
+ * ```
53
+ */
54
+ function useColumnInteractions(column) {
55
+ const { setNodeRef, isOver, active } = useDroppable({
56
+ id: column.id,
57
+ data: column
58
+ });
59
+ const { over } = useDndContext();
60
+ const isOverColumn = isOver || over?.data?.current?.columnId === column.id;
61
+ return {
62
+ ref: setNodeRef,
63
+ isHighlighted: Boolean(isOverColumn || active && active.data.current?.columnId !== column.id && column.canDrop !== false),
64
+ isActive: isOverColumn && column.canDrop !== false
65
+ };
66
+ }
67
+ /**
68
+ * Hook that provides drag-and-drop interactions for a kanban card.
69
+ *
70
+ * This hook integrates with `@dnd-kit/sortable` to enable dragging, dropping, and reordering
71
+ * of cards within and between columns. It handles transform animations, drag state tracking,
72
+ * and edge detection for insertion positioning.
73
+ *
74
+ * @param card - The kanban card data object containing the card's id and other properties
75
+ *
76
+ * @returns An object containing:
77
+ * - `ref` - Ref callback to attach to the draggable card DOM element
78
+ * - `isDragging` - Boolean indicating if this card is currently being dragged
79
+ * - `closestEdge` - The closest edge ('top' or 'bottom') when another card is hovering over this card, or null if not hovering
80
+ * - `style` - CSS style object with transform and transition properties for drag animations
81
+ * - `attributes` - Accessibility and drag attributes to spread on the card element
82
+ * - `listeners` - Event listeners to spread on the drag handle element
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * function KanbanCard({ card }: { card: KanbanCardData }) {
87
+ * const { ref, isDragging, closestEdge, style, attributes, listeners } = useCardInteractions(card);
88
+ *
89
+ * return (
90
+ * <div ref={ref} style={style} {...attributes} {...listeners}>
91
+ * {card.title}
92
+ * {closestEdge && <DropIndicator edge={closestEdge} />}
93
+ * </div>
94
+ * );
95
+ * }
96
+ * ```
97
+ */
98
+ function useCardInteractions(card) {
99
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging, over, active } = useSortable({
100
+ id: card.id,
101
+ data: card
102
+ });
103
+ const style = {
104
+ transform: CSS.Transform.toString(transform),
105
+ transition
106
+ };
107
+ let closestEdge;
108
+ if (over && over.id === card.id && active) closestEdge = calculateClosestEdge(over, active);
109
+ return {
110
+ ref: setNodeRef,
111
+ isDragging,
112
+ closestEdge,
113
+ style,
114
+ attributes,
115
+ listeners
116
+ };
117
+ }
118
+
119
+ //#endregion
120
+ export { useCardInteractions, useColumnInteractions };
2
121
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/kanban/index.ts"],"names":["useColumnInteractions","isOver","active","useDroppable","column","p","over","useDndContext","isOverColumn","isActive","useCardInteractions","listeners","transform","useSortable","card","u","style","CSS","l","closestEdge","calculateClosestEdge","C","setNodeRef"],"mappings":"gNAuDgBA,SACR,CAAE,oBAAYC,CAAAA,CAAQ,CAAA,MAAAC,CAAO,CAAA,CAAIC,MACjCC,EAAO,CAAA,CAAAC,YACX,CAAA,CAAA,EAAA,CAAMD,CACR,CAAC,EAGK,CAAE,IAAA,CAAAE,CAAK,EAAIC,CAAAA,CAAc,IAGVN,CAAAA,CAAAA,CAAUK,gBAAM,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,EAAA,IAAA,EAAS,OAAA,EAAA,QAE9B,GACpBE,CAAAA,CAAAA,EACGN,CAAAA,CACCA,EAAO,EAAA,CAAA,EAAK,CAAA,EAAA,CAAA,CAAA,IAAS,CAAA,OAAA,EAAA,QACrBE,GAAO,CAAA,CAAA,EAAA,EAAA,CAAA,CAAY,UAGQA,KAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAY,OAEpD,GACE,KAAA,CAAA,OACA,CAAA,GAAA,CAAA,CAAA,CAAA,aACA,CAAA,CAAAK,CACF,WAkCcC,CAAAA,SACR,CACJ,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,UACA,CAAA,CAAA,CAAAC,sBAEA,CAAA,CAAA,CAAAC,SACA,CAAA,CAAA,CAAA,UACA,CAAA,CAAA,CAAA,UAEA,OAAAV,CACF,CAAA,CAAIW,MACEC,CAAAA,CAAK,CAAA,CAAAC,WACT,CAAA,CAAA,EAAA,CAAMD,CACR,CAAC,EAEKE,CAAAA,IACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWC,SAAI,CAAAC,GAAA,CAAU,SAASN,CAAS,QAC3C,CAAA,CAAA,CAAA,CAAA,UAMF,CAAA,CAAA,CAAA,CAAA,IAAIN,CAAAA,CAAQA,OAAYQ,GAAK,CAAA,CAAA,EAAMZ,GACjCiB,CAAAA,CAAcC,EAAqBd,EAAMJ,CAAM,GAG1C,CACL,CAAAmB,oBAAA,CAAA,CAAKC,EACL,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,UACA,CAAA,CAAA,CAAA,WACAN,CACA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,UACA,CAAA,CAAA,CAAAL,SAEJ,CAAA,CAAA,CAAA","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useDndContext, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { calculateClosestEdge } from '@/components/kanban/context';\nimport type {\n KanbanCardData,\n KanbanColumnData,\n} from '@/components/kanban/types';\n\n/**\n * Hook that provides drag-and-drop interactions for a kanban column.\n *\n * This hook integrates with `@dnd-kit/core` to enable dropping cards into columns.\n * It tracks hover states, validates drop targets based on the column's `canDrop` property,\n * and provides visual feedback states for both the column itself and cards within it.\n *\n * @param column - The kanban column data object containing the column's id, canDrop status, and other properties\n *\n * @returns An object containing:\n * - `ref` - Ref callback to attach to the droppable column DOM element\n * - `isHighlighted` - Boolean indicating if the column should be visually highlighted (when a card from another column is being dragged)\n * - `isActive` - Boolean indicating if the column is actively being hovered over and can accept the drop\n *\n * @example\n * ```tsx\n * function KanbanColumn({ column }: { column: KanbanColumnData }) {\n * const { ref, isHighlighted, isActive } = useColumnInteractions(column);\n *\n * return (\n * <div\n * ref={ref}\n * className={cn({\n * 'ring-2 ring-blue-300': isHighlighted && !isActive, // Potential drop target\n * 'ring-2 ring-blue-500 bg-blue-50': isActive, // Active drop target\n * })}\n * >\n * <h2>{column.title}</h2>\n * {column.cards.map(card => <Card key={card.id} card={card} />)}\n * </div>\n * );\n * }\n * ```\n */\nexport function useColumnInteractions(column: KanbanColumnData) {\n const { setNodeRef, isOver, active } = useDroppable({\n id: column.id,\n data: column,\n });\n\n // Get the global over state to detect when hovering over cards in this column\n const { over } = useDndContext();\n\n // Check if we're over the column itself OR over a card that belongs to this column\n const isOverColumn = isOver || over?.data?.current?.columnId === column.id;\n\n const isHighlighted = Boolean(\n isOverColumn ||\n (active &&\n active.data.current?.columnId !== column.id &&\n column.canDrop !== false),\n );\n\n const isActive = isOverColumn && column.canDrop !== false;\n\n return {\n ref: setNodeRef,\n isHighlighted,\n isActive,\n };\n}\n\n/**\n * Hook that provides drag-and-drop interactions for a kanban card.\n *\n * This hook integrates with `@dnd-kit/sortable` to enable dragging, dropping, and reordering\n * of cards within and between columns. It handles transform animations, drag state tracking,\n * and edge detection for insertion positioning.\n *\n * @param card - The kanban card data object containing the card's id and other properties\n *\n * @returns An object containing:\n * - `ref` - Ref callback to attach to the draggable card DOM element\n * - `isDragging` - Boolean indicating if this card is currently being dragged\n * - `closestEdge` - The closest edge ('top' or 'bottom') when another card is hovering over this card, or null if not hovering\n * - `style` - CSS style object with transform and transition properties for drag animations\n * - `attributes` - Accessibility and drag attributes to spread on the card element\n * - `listeners` - Event listeners to spread on the drag handle element\n *\n * @example\n * ```tsx\n * function KanbanCard({ card }: { card: KanbanCardData }) {\n * const { ref, isDragging, closestEdge, style, attributes, listeners } = useCardInteractions(card);\n *\n * return (\n * <div ref={ref} style={style} {...attributes} {...listeners}>\n * {card.title}\n * {closestEdge && <DropIndicator edge={closestEdge} />}\n * </div>\n * );\n * }\n * ```\n */\nexport function useCardInteractions(card: KanbanCardData) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n over,\n active,\n } = useSortable({\n id: card.id,\n data: card,\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n // Determine closest edge based on over position\n let closestEdge: 'top' | 'bottom' | undefined;\n\n if (over && over.id === card.id && active) {\n closestEdge = calculateClosestEdge(over, active);\n }\n\n return {\n ref: setNodeRef,\n isDragging,\n closestEdge,\n style,\n attributes,\n listeners,\n };\n}\n"]}
1
+ {"version":3,"file":"index.js","names":["closestEdge: 'top' | 'bottom' | undefined"],"sources":["../../../src/hooks/kanban/index.ts"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { useDndContext, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { calculateClosestEdge } from '@/components/kanban/context';\nimport type {\n KanbanCardData,\n KanbanColumnData,\n} from '@/components/kanban/types';\n\n/**\n * Hook that provides drag-and-drop interactions for a kanban column.\n *\n * This hook integrates with `@dnd-kit/core` to enable dropping cards into columns.\n * It tracks hover states, validates drop targets based on the column's `canDrop` property,\n * and provides visual feedback states for both the column itself and cards within it.\n *\n * @param column - The kanban column data object containing the column's id, canDrop status, and other properties\n *\n * @returns An object containing:\n * - `ref` - Ref callback to attach to the droppable column DOM element\n * - `isHighlighted` - Boolean indicating if the column should be visually highlighted (when a card from another column is being dragged)\n * - `isActive` - Boolean indicating if the column is actively being hovered over and can accept the drop\n *\n * @example\n * ```tsx\n * function KanbanColumn({ column }: { column: KanbanColumnData }) {\n * const { ref, isHighlighted, isActive } = useColumnInteractions(column);\n *\n * return (\n * <div\n * ref={ref}\n * className={cn({\n * 'ring-2 ring-blue-300': isHighlighted && !isActive, // Potential drop target\n * 'ring-2 ring-blue-500 bg-blue-50': isActive, // Active drop target\n * })}\n * >\n * <h2>{column.title}</h2>\n * {column.cards.map(card => <Card key={card.id} card={card} />)}\n * </div>\n * );\n * }\n * ```\n */\nexport function useColumnInteractions(column: KanbanColumnData) {\n const { setNodeRef, isOver, active } = useDroppable({\n id: column.id,\n data: column,\n });\n\n // Get the global over state to detect when hovering over cards in this column\n const { over } = useDndContext();\n\n // Check if we're over the column itself OR over a card that belongs to this column\n const isOverColumn = isOver || over?.data?.current?.columnId === column.id;\n\n const isHighlighted = Boolean(\n isOverColumn ||\n (active &&\n active.data.current?.columnId !== column.id &&\n column.canDrop !== false),\n );\n\n const isActive = isOverColumn && column.canDrop !== false;\n\n return {\n ref: setNodeRef,\n isHighlighted,\n isActive,\n };\n}\n\n/**\n * Hook that provides drag-and-drop interactions for a kanban card.\n *\n * This hook integrates with `@dnd-kit/sortable` to enable dragging, dropping, and reordering\n * of cards within and between columns. It handles transform animations, drag state tracking,\n * and edge detection for insertion positioning.\n *\n * @param card - The kanban card data object containing the card's id and other properties\n *\n * @returns An object containing:\n * - `ref` - Ref callback to attach to the draggable card DOM element\n * - `isDragging` - Boolean indicating if this card is currently being dragged\n * - `closestEdge` - The closest edge ('top' or 'bottom') when another card is hovering over this card, or null if not hovering\n * - `style` - CSS style object with transform and transition properties for drag animations\n * - `attributes` - Accessibility and drag attributes to spread on the card element\n * - `listeners` - Event listeners to spread on the drag handle element\n *\n * @example\n * ```tsx\n * function KanbanCard({ card }: { card: KanbanCardData }) {\n * const { ref, isDragging, closestEdge, style, attributes, listeners } = useCardInteractions(card);\n *\n * return (\n * <div ref={ref} style={style} {...attributes} {...listeners}>\n * {card.title}\n * {closestEdge && <DropIndicator edge={closestEdge} />}\n * </div>\n * );\n * }\n * ```\n */\nexport function useCardInteractions(card: KanbanCardData) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n over,\n active,\n } = useSortable({\n id: card.id,\n data: card,\n });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n // Determine closest edge based on over position\n let closestEdge: 'top' | 'bottom' | undefined;\n\n if (over && over.id === card.id && active) {\n closestEdge = calculateClosestEdge(over, active);\n }\n\n return {\n ref: setNodeRef,\n isDragging,\n closestEdge,\n style,\n attributes,\n listeners,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,SAAgB,sBAAsB,QAA0B;CAC9D,MAAM,EAAE,YAAY,QAAQ,WAAW,aAAa;EAClD,IAAI,OAAO;EACX,MAAM;EACP,CAAC;CAGF,MAAM,EAAE,SAAS,eAAe;CAGhC,MAAM,eAAe,UAAU,MAAM,MAAM,SAAS,aAAa,OAAO;AAWxE,QAAO;EACL,KAAK;EACL,eAXoB,QACpB,gBACG,UACC,OAAO,KAAK,SAAS,aAAa,OAAO,MACzC,OAAO,YAAY,MACxB;EAOC,UALe,gBAAgB,OAAO,YAAY;EAMnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCH,SAAgB,oBAAoB,MAAsB;CACxD,MAAM,EACJ,YACA,WACA,YACA,WACA,YACA,YACA,MACA,WACE,YAAY;EACd,IAAI,KAAK;EACT,MAAM;EACP,CAAC;CAEF,MAAM,QAAQ;EACZ,WAAW,IAAI,UAAU,SAAS,UAAU;EAC5C;EACD;CAGD,IAAIA;AAEJ,KAAI,QAAQ,KAAK,OAAO,KAAK,MAAM,OACjC,eAAc,qBAAqB,MAAM,OAAO;AAGlD,QAAO;EACL,KAAK;EACL;EACA;EACA;EACA;EACA;EACD"}
@@ -1,10 +1,21 @@
1
- import { Key } from '@react-types/shared';
2
- import { TreeNode } from '../types.js';
3
- import 'react';
4
- import 'react-aria-components';
1
+ /*
2
+ * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
5
12
 
13
+ import { TreeNode } from "../types.js";
14
+ import { Key } from "@react-types/shared";
15
+
16
+ //#region src/hooks/use-tree/actions/cache.d.ts
6
17
  type CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {
7
- children?: Key[];
18
+ children?: Key[];
8
19
  };
9
20
  /**
10
21
  * This is a cache created only for performance reasons and is considered
@@ -16,63 +27,68 @@ type CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {
16
27
  * updated with each tree operation.
17
28
  */
18
29
  declare class Cache<T> {
19
- protected cache: {
20
- lookup: Map<Key, CacheTreeNode<T>>;
21
- roots: Key[];
22
- };
23
- constructor(nodes?: TreeNode<T>[]);
24
- /**
25
- * Recursively creates the cache object from tree data
26
- */
27
- rebuild(nodes: TreeNode<T>[], lookup?: Map<Key, CacheTreeNode<T>>, parentKey?: Key | null): {
28
- lookup: Map<Key, CacheTreeNode<T>>;
29
- roots: Key[];
30
- };
31
- protected get(key: Key): CacheTreeNode<T>;
32
- protected set(key: Key, node: CacheTreeNode<T>): void;
33
- protected delete(key: Key): void;
34
- protected addToParent(parentKey: Key, childKey: Key, idx: number): void;
35
- protected addToRoot(key: Key, idx: number): void;
36
- protected removeFromParent(parentKey: Key, childKey: Key): void;
37
- protected removeFromRoot(key: Key): void;
38
- protected parentOrSibling(target: Key | null, position: 'before' | 'after'): {
39
- parentKey: Key | null;
40
- index: number;
41
- };
42
- protected traverse(key: Key): void;
43
- protected calculateVisibility(key: Key): boolean;
44
- protected deriveVisibility(): void[];
45
- /**
46
- * Recursively builds a TreeNode from a key
47
- *
48
- * @param key
49
- */
50
- protected buildNode(key: Key): TreeNode<T>;
51
- /**
52
- * Builds a tree structure from cache
53
- *
54
- * TODO: optimization - rebuild only from change to root
55
- * Rebuild only from the changed node up the tree to avoid
56
- * rebuilding the entire tree
57
- *
58
- * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry
59
- */
60
- toTree(deriveVisible?: boolean): TreeNode<T>[];
61
- /**
62
- * CACHE FUNCTIONS
63
- * These manage cache operations. No cache operations should ever be done
64
- * outside this file.
65
- **/
66
- getNode(key: Key): TreeNode<T>;
67
- getAllKeys(): MapIterator<Key>;
68
- getAllNodes(): MapIterator<CacheTreeNode<T>>;
69
- setNode(key: Key, node: TreeNode<T>): void;
70
- setAllNodes({ parentKey, children, ...rest }: Partial<TreeNode<T>>): void;
71
- deleteNode(key: Key): void;
72
- addNodes(target: Key | null, nodes: TreeNode<T>[], position: 'before' | 'after'): void;
73
- insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number): void;
74
- moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after'): void;
75
- moveNode(parentKey: Key | null, key: Key, idx: number): void;
30
+ protected cache: {
31
+ lookup: Map<Key, CacheTreeNode<T>>;
32
+ roots: Key[];
33
+ };
34
+ constructor(nodes?: TreeNode<T>[]);
35
+ /**
36
+ * Recursively creates the cache object from tree data
37
+ */
38
+ rebuild(nodes: TreeNode<T>[], lookup?: Map<Key, CacheTreeNode<T>>, parentKey?: Key | null): {
39
+ lookup: Map<Key, CacheTreeNode<T>>;
40
+ roots: Key[];
41
+ };
42
+ protected get(key: Key): CacheTreeNode<T>;
43
+ protected set(key: Key, node: CacheTreeNode<T>): void;
44
+ protected delete(key: Key): void;
45
+ protected addToParent(parentKey: Key, childKey: Key, idx: number): void;
46
+ protected addToRoot(key: Key, idx: number): void;
47
+ protected removeFromParent(parentKey: Key, childKey: Key): void;
48
+ protected removeFromRoot(key: Key): void;
49
+ protected parentOrSibling(target: Key | null, position: 'before' | 'after'): {
50
+ parentKey: Key | null;
51
+ index: number;
52
+ };
53
+ protected traverse(key: Key): void;
54
+ protected calculateVisibility(key: Key): boolean;
55
+ protected deriveVisibility(): void[];
56
+ /**
57
+ * Recursively builds a TreeNode from a key
58
+ *
59
+ * @param key
60
+ */
61
+ protected buildNode(key: Key): TreeNode<T>;
62
+ /**
63
+ * Builds a tree structure from cache
64
+ *
65
+ * TODO: optimization - rebuild only from change to root
66
+ * Rebuild only from the changed node up the tree to avoid
67
+ * rebuilding the entire tree
68
+ *
69
+ * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry
70
+ */
71
+ toTree(deriveVisible?: boolean): TreeNode<T>[];
72
+ /**
73
+ * CACHE FUNCTIONS
74
+ * These manage cache operations. No cache operations should ever be done
75
+ * outside this file.
76
+ **/
77
+ getNode(key: Key): TreeNode<T>;
78
+ getAllKeys(): MapIterator<Key>;
79
+ getAllNodes(): MapIterator<CacheTreeNode<T>>;
80
+ setNode(key: Key, node: TreeNode<T>): void;
81
+ setAllNodes({
82
+ parentKey,
83
+ children,
84
+ ...rest
85
+ }: Partial<TreeNode<T>>): void;
86
+ deleteNode(key: Key): void;
87
+ addNodes(target: Key | null, nodes: TreeNode<T>[], position: 'before' | 'after'): void;
88
+ insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number): void;
89
+ moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after'): void;
90
+ moveNode(parentKey: Key | null, key: Key, idx: number): void;
76
91
  }
77
-
92
+ //#endregion
78
93
  export { Cache };
94
+ //# sourceMappingURL=cache.d.ts.map
@@ -1,2 +1,255 @@
1
- class d{cache={lookup:new Map,roots:[]};constructor(e=[]){this.rebuild(e);}rebuild(e,t=new Map,s=null){e.forEach(r=>{const{children:o,...n}=r;t.set(r.key,{isDisabled:false,isExpanded:false,isSelected:false,isVisible:false,isVisibleComputed:false,...n,parentKey:s,...o?{children:o.map(l=>l.key)}:{}}),r.children&&this.rebuild(r.children,t,r.key);});const i={lookup:t,roots:e.map(r=>r.key)};return s||(this.cache=i),this.deriveVisibility(),i}get(e){const t=this.cache.lookup.get(e);if(t===void 0)throw new Error(`Key of ${e} does not exist in tree`);return t}set(e,t){this.cache.lookup.set(e,t);}delete(e){this.cache.lookup.delete(e);}addToParent(e,t,s){const i=this.get(e),r=this.get(t),o=Math.max(0,s);this.set(t,{...r,parentKey:e});const n=(i.children??[]).slice(0);n.splice(o,0,t),this.set(e,{...i,children:n});}addToRoot(e,t){const s=this.get(e),i=Math.max(0,t);this.set(e,{...s,parentKey:null}),this.cache.roots.splice(i,0,e);}removeFromParent(e,t){const s=this.get(e),i=this.get(t);this.set(t,{...i,parentKey:null}),this.cache.lookup.set(e,{...s,children:s.children?.filter(r=>r!==t)});}removeFromRoot(e){const t=this.get(e),s=this.cache.roots.indexOf(e);s>=0&&(this.set(e,{...t,parentKey:null}),this.cache.roots.splice(s,1));}parentOrSibling(e,t){let s,i=null;if(e===null)s=t==="before"?0:this.cache.roots.length;else {const r=this.get(e);if(r.parentKey){const o=this.get(r.parentKey);i=o.key,s=o.children?.indexOf(e)??0;}else s=this.cache.roots.indexOf(e);}return {parentKey:i,index:s}}traverse(e){const t=this.get(e);this.cache.lookup.set(e,{...t,isVisibleComputed:this.calculateVisibility(e)}),t.children?.map(s=>this.traverse(s));}calculateVisibility(e){let t=this.get(e);const s=[t];for(;t.parentKey;){const i=this.get(t.parentKey);i&&s.push(i),t=i;}return s.every(i=>i.isVisible)}deriveVisibility(){return this.cache.roots.map(e=>this.traverse(e))}buildNode(e){const t=this.get(e),s=(t.children??[]).reduce((i,r)=>{const o=this.cache.lookup.get(r);return o&&o.parentKey===e&&i.push(this.buildNode(r)),i},[]);return {...t,children:s}}toTree(e){return e&&this.deriveVisibility(),this.cache.roots.map(t=>this.buildNode(t))}getNode(e){const t=this.get(e);return {...t,children:t.children?.map(s=>this.buildNode(s))}}getAllKeys(){return this.cache.lookup.keys()}getAllNodes(){return this.cache.lookup.values()}setNode(e,t){this.set(e,{...t,children:(t.children??[]).map(s=>s.key)});}setAllNodes({parentKey:e,children:t,...s}){for(const i of this.cache.lookup.values())this.set(i.key,{...i,...s});}deleteNode(e){const t=this.cache.lookup.get(e);t&&(t.children?.map(s=>this.deleteNode(s)),t.parentKey?this.removeFromParent(t.parentKey,e):this.removeFromRoot(e),this.delete(e));}addNodes(e,t,s){const{parentKey:i,index:r}=this.parentOrSibling(e,s),o=r+(s==="before"?0:1);t.map((n,l)=>this.insertNode(i,n,o+l));}insertNode(e,t,s){const{children:i,...r}=t;this.set(t.key,{isDisabled:false,isExpanded:false,isSelected:false,isVisible:false,isVisibleComputed:false,...r,parentKey:e,...i?{children:i.map(o=>o.key)}:{}}),t.children?.map((o,n)=>this.insertNode(t.key,o,n)),e===null?this.addToRoot(t.key,s):this.addToParent(e,t.key,s);}moveNodes(e,t,s){const{parentKey:i,index:r}=this.parentOrSibling(e,s),o=r+(s==="before"?0:1);Array.from(t).map((n,l)=>this.moveNode(i,n,o+l));}moveNode(e,t,s){const i=this.get(t);i.parentKey?this.removeFromParent(i.parentKey,t):this.removeFromRoot(t),e?this.addToParent(e,t,s):this.addToRoot(t,s);}}export{d as Cache};//# sourceMappingURL=cache.js.map
1
+ /*
2
+ * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at https://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+
13
+
14
+ //#region src/hooks/use-tree/actions/cache.ts
15
+ /**
16
+ * This is a cache created only for performance reasons and is considered
17
+ * to be only a temporary mirror of the data. The data is *always* correct
18
+ * cache should be updated according to the data, only. If the data and
19
+ * the cache do not match, the cache is invalidated and rebuilt.
20
+ *
21
+ * This will initialize once on load with data, then
22
+ * updated with each tree operation.
23
+ */
24
+ var Cache = class {
25
+ cache = {
26
+ lookup: /* @__PURE__ */ new Map(),
27
+ roots: []
28
+ };
29
+ constructor(nodes = []) {
30
+ this.rebuild(nodes);
31
+ }
32
+ /**
33
+ * Recursively creates the cache object from tree data
34
+ */
35
+ rebuild(nodes, lookup = /* @__PURE__ */ new Map(), parentKey = null) {
36
+ nodes.forEach((node) => {
37
+ const { children, ...rest } = node;
38
+ lookup.set(node.key, {
39
+ isDisabled: false,
40
+ isExpanded: false,
41
+ isSelected: false,
42
+ isVisible: false,
43
+ isVisibleComputed: false,
44
+ ...rest,
45
+ parentKey,
46
+ ...children ? { children: children.map((child) => child.key) } : {}
47
+ });
48
+ if (node.children) this.rebuild(node.children, lookup, node.key);
49
+ });
50
+ const cache = {
51
+ lookup,
52
+ roots: nodes.map((node) => node.key)
53
+ };
54
+ if (!parentKey) this.cache = cache;
55
+ this.deriveVisibility();
56
+ return cache;
57
+ }
58
+ get(key) {
59
+ const node = this.cache.lookup.get(key);
60
+ if (node === void 0) throw new Error(`Key of ${key} does not exist in tree`);
61
+ return node;
62
+ }
63
+ set(key, node) {
64
+ this.cache.lookup.set(key, node);
65
+ }
66
+ delete(key) {
67
+ this.cache.lookup.delete(key);
68
+ }
69
+ addToParent(parentKey, childKey, idx) {
70
+ const parent = this.get(parentKey);
71
+ const child = this.get(childKey);
72
+ const index = Math.max(0, idx);
73
+ this.set(childKey, {
74
+ ...child,
75
+ parentKey
76
+ });
77
+ const children = (parent.children ?? []).slice(0);
78
+ children.splice(index, 0, childKey);
79
+ this.set(parentKey, {
80
+ ...parent,
81
+ children
82
+ });
83
+ }
84
+ addToRoot(key, idx) {
85
+ const node = this.get(key);
86
+ const index = Math.max(0, idx);
87
+ this.set(key, {
88
+ ...node,
89
+ parentKey: null
90
+ });
91
+ this.cache.roots.splice(index, 0, key);
92
+ }
93
+ removeFromParent(parentKey, childKey) {
94
+ const parent = this.get(parentKey);
95
+ const child = this.get(childKey);
96
+ this.set(childKey, {
97
+ ...child,
98
+ parentKey: null
99
+ });
100
+ this.cache.lookup.set(parentKey, {
101
+ ...parent,
102
+ children: parent.children?.filter((key) => key !== childKey)
103
+ });
104
+ }
105
+ removeFromRoot(key) {
106
+ const node = this.get(key);
107
+ const idx = this.cache.roots.indexOf(key);
108
+ if (idx >= 0) {
109
+ this.set(key, {
110
+ ...node,
111
+ parentKey: null
112
+ });
113
+ this.cache.roots.splice(idx, 1);
114
+ }
115
+ }
116
+ parentOrSibling(target, position) {
117
+ let index;
118
+ let parentKey = null;
119
+ if (target === null) index = position === "before" ? 0 : this.cache.roots.length;
120
+ else {
121
+ const targetNode = this.get(target);
122
+ if (targetNode.parentKey) {
123
+ const parent = this.get(targetNode.parentKey);
124
+ parentKey = parent.key;
125
+ index = parent.children?.indexOf(target) ?? 0;
126
+ } else index = this.cache.roots.indexOf(target);
127
+ }
128
+ return {
129
+ parentKey,
130
+ index
131
+ };
132
+ }
133
+ traverse(key) {
134
+ const node = this.get(key);
135
+ this.cache.lookup.set(key, {
136
+ ...node,
137
+ isVisibleComputed: this.calculateVisibility(key)
138
+ });
139
+ node.children?.map((child) => this.traverse(child));
140
+ }
141
+ calculateVisibility(key) {
142
+ let current = this.get(key);
143
+ const ancestry = [current];
144
+ while (current.parentKey) {
145
+ const parent = this.get(current.parentKey);
146
+ if (parent) ancestry.push(parent);
147
+ current = parent;
148
+ }
149
+ return ancestry.every((n) => n.isVisible);
150
+ }
151
+ deriveVisibility() {
152
+ return this.cache.roots.map((key) => this.traverse(key));
153
+ }
154
+ /**
155
+ * Recursively builds a TreeNode from a key
156
+ *
157
+ * @param key
158
+ */
159
+ buildNode(key) {
160
+ const node = this.get(key);
161
+ const children = (node.children ?? []).reduce((acc, child) => {
162
+ const childNode = this.cache.lookup.get(child);
163
+ if (childNode && childNode.parentKey === key) acc.push(this.buildNode(child));
164
+ return acc;
165
+ }, []);
166
+ return {
167
+ ...node,
168
+ children
169
+ };
170
+ }
171
+ /**
172
+ * Builds a tree structure from cache
173
+ *
174
+ * TODO: optimization - rebuild only from change to root
175
+ * Rebuild only from the changed node up the tree to avoid
176
+ * rebuilding the entire tree
177
+ *
178
+ * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry
179
+ */
180
+ toTree(deriveVisible) {
181
+ if (deriveVisible) this.deriveVisibility();
182
+ return this.cache.roots.map((key) => this.buildNode(key));
183
+ }
184
+ /**
185
+ * CACHE FUNCTIONS
186
+ * These manage cache operations. No cache operations should ever be done
187
+ * outside this file.
188
+ **/
189
+ getNode(key) {
190
+ const node = this.get(key);
191
+ return {
192
+ ...node,
193
+ children: node.children?.map((key$1) => this.buildNode(key$1))
194
+ };
195
+ }
196
+ getAllKeys() {
197
+ return this.cache.lookup.keys();
198
+ }
199
+ getAllNodes() {
200
+ return this.cache.lookup.values();
201
+ }
202
+ setNode(key, node) {
203
+ this.set(key, {
204
+ ...node,
205
+ children: (node.children ?? []).map((child) => child.key)
206
+ });
207
+ }
208
+ setAllNodes({ parentKey, children, ...rest }) {
209
+ for (const node of this.cache.lookup.values()) this.set(node.key, {
210
+ ...node,
211
+ ...rest
212
+ });
213
+ }
214
+ deleteNode(key) {
215
+ const node = this.cache.lookup.get(key);
216
+ if (!node) return;
217
+ node.children?.map((key$1) => this.deleteNode(key$1));
218
+ node.parentKey ? this.removeFromParent(node.parentKey, key) : this.removeFromRoot(key);
219
+ this.delete(key);
220
+ }
221
+ addNodes(target, nodes, position) {
222
+ const { parentKey, index } = this.parentOrSibling(target, position);
223
+ const idx = index + (position === "before" ? 0 : 1);
224
+ nodes.map((node, i) => this.insertNode(parentKey, node, idx + i));
225
+ }
226
+ insertNode(parentKey, node, idx) {
227
+ const { children, ...rest } = node;
228
+ this.set(node.key, {
229
+ isDisabled: false,
230
+ isExpanded: false,
231
+ isSelected: false,
232
+ isVisible: false,
233
+ isVisibleComputed: false,
234
+ ...rest,
235
+ parentKey,
236
+ ...children ? { children: children.map((child) => child.key) } : {}
237
+ });
238
+ node.children?.map((child, i) => this.insertNode(node.key, child, i));
239
+ parentKey === null ? this.addToRoot(node.key, idx) : this.addToParent(parentKey, node.key, idx);
240
+ }
241
+ moveNodes(target, nodes, position) {
242
+ const { parentKey, index } = this.parentOrSibling(target, position);
243
+ const idx = index + (position === "before" ? 0 : 1);
244
+ Array.from(nodes).map((key, i) => this.moveNode(parentKey, key, idx + i));
245
+ }
246
+ moveNode(parentKey, key, idx) {
247
+ const node = this.get(key);
248
+ node.parentKey ? this.removeFromParent(node.parentKey, key) : this.removeFromRoot(key);
249
+ parentKey ? this.addToParent(parentKey, key, idx) : this.addToRoot(key, idx);
250
+ }
251
+ };
252
+
253
+ //#endregion
254
+ export { Cache };
2
255
  //# sourceMappingURL=cache.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/hooks/use-tree/actions/cache.ts"],"names":["Cache","nodes","lookup","parentKey","node","children","rest","child","cache","key","childKey","idx","parent","index","target","position","targetNode","current","ancestry","n","acc","childNode","deriveVisible","i"],"mappings":"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","file":"cache.js","sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeNode } from '../types';\n\ntype CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {\n children?: Key[];\n};\n\n/**\n * This is a cache created only for performance reasons and is considered\n * to be only a temporary mirror of the data. The data is *always* correct\n * cache should be updated according to the data, only. If the data and\n * the cache do not match, the cache is invalidated and rebuilt.\n *\n * This will initialize once on load with data, then\n * updated with each tree operation.\n */\nexport class Cache<T> {\n protected cache: { lookup: Map<Key, CacheTreeNode<T>>; roots: Key[] } = {\n lookup: new Map(),\n roots: [],\n };\n\n constructor(nodes: TreeNode<T>[] = []) {\n this.rebuild(nodes);\n }\n\n /**\n * Recursively creates the cache object from tree data\n */\n rebuild(\n nodes: TreeNode<T>[],\n lookup: Map<Key, CacheTreeNode<T>> = new Map(),\n parentKey: Key | null = null,\n ) {\n nodes.forEach((node) => {\n const { children, ...rest } = node;\n\n lookup.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n if (node.children) {\n this.rebuild(node.children, lookup, node.key);\n }\n });\n\n const cache = { lookup, roots: nodes.map((node) => node.key) };\n\n if (!parentKey) {\n this.cache = cache;\n }\n\n this.deriveVisibility();\n return cache;\n }\n\n protected get(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (node === undefined) {\n throw new Error(`Key of ${key} does not exist in tree`);\n }\n\n return node;\n }\n\n protected set(key: Key, node: CacheTreeNode<T>) {\n this.cache.lookup.set(key, node);\n }\n\n protected delete(key: Key) {\n this.cache.lookup.delete(key);\n }\n\n protected addToParent(parentKey: Key, childKey: Key, idx: number) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n const index = Math.max(0, idx);\n\n this.set(childKey, {\n ...child,\n parentKey,\n });\n\n const children = (parent.children ?? []).slice(0);\n\n children.splice(index, 0, childKey);\n\n this.set(parentKey, {\n ...parent,\n children,\n });\n }\n\n protected addToRoot(key: Key, idx: number) {\n const node = this.get(key);\n const index = Math.max(0, idx);\n\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(index, 0, key);\n }\n\n protected removeFromParent(parentKey: Key, childKey: Key) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n\n this.set(childKey, {\n ...child,\n parentKey: null,\n });\n\n this.cache.lookup.set(parentKey, {\n ...parent,\n children: parent.children?.filter((key) => key !== childKey),\n });\n }\n\n protected removeFromRoot(key: Key) {\n const node = this.get(key);\n const idx = this.cache.roots.indexOf(key);\n\n if (idx >= 0) {\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(idx, 1);\n }\n }\n\n protected parentOrSibling(target: Key | null, position: 'before' | 'after') {\n let index: number;\n let parentKey: Key | null = null;\n\n if (target === null) {\n index = position === 'before' ? 0 : this.cache.roots.length;\n } else {\n const targetNode = this.get(target);\n\n if (targetNode.parentKey) {\n const parent = this.get(targetNode.parentKey);\n\n parentKey = parent.key;\n index = parent.children?.indexOf(target) ?? 0;\n } else {\n index = this.cache.roots.indexOf(target);\n }\n }\n\n return { parentKey, index };\n }\n\n protected traverse(key: Key) {\n const node = this.get(key);\n\n this.cache.lookup.set(key, {\n ...node,\n isVisibleComputed: this.calculateVisibility(key),\n });\n\n node.children?.map((child) => this.traverse(child));\n }\n\n protected calculateVisibility(key: Key) {\n let current = this.get(key);\n const ancestry = [current];\n\n while (current.parentKey) {\n const parent = this.get(current.parentKey);\n if (parent) {\n ancestry.push(parent);\n }\n current = parent;\n }\n\n return ancestry.every((n) => n.isVisible);\n }\n\n protected deriveVisibility() {\n return this.cache.roots.map((key) => this.traverse(key));\n }\n /**\n * Recursively builds a TreeNode from a key\n *\n * @param key\n */\n protected buildNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n const children = (node.children ?? []).reduce(\n (acc: TreeNode<T>[], child) => {\n const childNode = this.cache.lookup.get(child);\n\n if (childNode && childNode.parentKey === key) {\n acc.push(this.buildNode(child));\n }\n\n return acc;\n },\n [],\n );\n\n return {\n ...node,\n children,\n };\n }\n\n /**\n * Builds a tree structure from cache\n *\n * TODO: optimization - rebuild only from change to root\n * Rebuild only from the changed node up the tree to avoid\n * rebuilding the entire tree\n *\n * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry\n */\n toTree(deriveVisible?: boolean): TreeNode<T>[] {\n if (deriveVisible) {\n this.deriveVisibility();\n }\n return this.cache.roots.map((key) => this.buildNode(key));\n }\n\n /**\n * CACHE FUNCTIONS\n * These manage cache operations. No cache operations should ever be done\n * outside this file.\n **/\n getNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n return {\n ...node,\n children: node.children?.map((key) => this.buildNode(key)),\n };\n }\n\n getAllKeys() {\n return this.cache.lookup.keys();\n }\n\n getAllNodes() {\n return this.cache.lookup.values();\n }\n\n setNode(key: Key, node: TreeNode<T>) {\n this.set(key, {\n ...node,\n children: (node.children ?? []).map((child) => child.key),\n });\n }\n\n setAllNodes({ parentKey, children, ...rest }: Partial<TreeNode<T>>) {\n for (const node of this.cache.lookup.values()) {\n this.set(node.key, {\n ...node,\n ...rest,\n });\n }\n }\n\n deleteNode(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (!node) {\n return;\n }\n\n // remove children\n node.children?.map((key) => this.deleteNode(key));\n\n // remove node from previous parent or root\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // remove the actual node\n this.delete(key);\n }\n\n addNodes(\n target: Key | null,\n nodes: TreeNode<T>[],\n position: 'before' | 'after',\n ) {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n nodes.map((node, i) => this.insertNode(parentKey, node, idx + i));\n }\n\n insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number) {\n const { children, ...rest } = node;\n\n this.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n node.children?.map((child, i) => this.insertNode(node.key, child, i));\n\n parentKey === null\n ? this.addToRoot(node.key, idx)\n : this.addToParent(parentKey, node.key, idx);\n }\n\n moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after') {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n Array.from(nodes).map((key, i) => this.moveNode(parentKey, key, idx + i));\n }\n\n moveNode(parentKey: Key | null, key: Key, idx: number) {\n const node = this.get(key);\n\n // remove from previous parent\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // add as child to new parent or root at position\n parentKey\n ? this.addToParent(parentKey, key, idx)\n : this.addToRoot(key, idx);\n }\n}\n"]}
1
+ {"version":3,"file":"cache.js","names":["index: number","parentKey: Key | null","key"],"sources":["../../../../src/hooks/use-tree/actions/cache.ts"],"sourcesContent":["// __private-exports\n/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeNode } from '../types';\n\ntype CacheTreeNode<T> = Omit<TreeNode<T>, 'children'> & {\n children?: Key[];\n};\n\n/**\n * This is a cache created only for performance reasons and is considered\n * to be only a temporary mirror of the data. The data is *always* correct\n * cache should be updated according to the data, only. If the data and\n * the cache do not match, the cache is invalidated and rebuilt.\n *\n * This will initialize once on load with data, then\n * updated with each tree operation.\n */\nexport class Cache<T> {\n protected cache: { lookup: Map<Key, CacheTreeNode<T>>; roots: Key[] } = {\n lookup: new Map(),\n roots: [],\n };\n\n constructor(nodes: TreeNode<T>[] = []) {\n this.rebuild(nodes);\n }\n\n /**\n * Recursively creates the cache object from tree data\n */\n rebuild(\n nodes: TreeNode<T>[],\n lookup: Map<Key, CacheTreeNode<T>> = new Map(),\n parentKey: Key | null = null,\n ) {\n nodes.forEach((node) => {\n const { children, ...rest } = node;\n\n lookup.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n if (node.children) {\n this.rebuild(node.children, lookup, node.key);\n }\n });\n\n const cache = { lookup, roots: nodes.map((node) => node.key) };\n\n if (!parentKey) {\n this.cache = cache;\n }\n\n this.deriveVisibility();\n return cache;\n }\n\n protected get(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (node === undefined) {\n throw new Error(`Key of ${key} does not exist in tree`);\n }\n\n return node;\n }\n\n protected set(key: Key, node: CacheTreeNode<T>) {\n this.cache.lookup.set(key, node);\n }\n\n protected delete(key: Key) {\n this.cache.lookup.delete(key);\n }\n\n protected addToParent(parentKey: Key, childKey: Key, idx: number) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n const index = Math.max(0, idx);\n\n this.set(childKey, {\n ...child,\n parentKey,\n });\n\n const children = (parent.children ?? []).slice(0);\n\n children.splice(index, 0, childKey);\n\n this.set(parentKey, {\n ...parent,\n children,\n });\n }\n\n protected addToRoot(key: Key, idx: number) {\n const node = this.get(key);\n const index = Math.max(0, idx);\n\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(index, 0, key);\n }\n\n protected removeFromParent(parentKey: Key, childKey: Key) {\n const parent = this.get(parentKey);\n const child = this.get(childKey);\n\n this.set(childKey, {\n ...child,\n parentKey: null,\n });\n\n this.cache.lookup.set(parentKey, {\n ...parent,\n children: parent.children?.filter((key) => key !== childKey),\n });\n }\n\n protected removeFromRoot(key: Key) {\n const node = this.get(key);\n const idx = this.cache.roots.indexOf(key);\n\n if (idx >= 0) {\n this.set(key, {\n ...node,\n parentKey: null,\n });\n\n this.cache.roots.splice(idx, 1);\n }\n }\n\n protected parentOrSibling(target: Key | null, position: 'before' | 'after') {\n let index: number;\n let parentKey: Key | null = null;\n\n if (target === null) {\n index = position === 'before' ? 0 : this.cache.roots.length;\n } else {\n const targetNode = this.get(target);\n\n if (targetNode.parentKey) {\n const parent = this.get(targetNode.parentKey);\n\n parentKey = parent.key;\n index = parent.children?.indexOf(target) ?? 0;\n } else {\n index = this.cache.roots.indexOf(target);\n }\n }\n\n return { parentKey, index };\n }\n\n protected traverse(key: Key) {\n const node = this.get(key);\n\n this.cache.lookup.set(key, {\n ...node,\n isVisibleComputed: this.calculateVisibility(key),\n });\n\n node.children?.map((child) => this.traverse(child));\n }\n\n protected calculateVisibility(key: Key) {\n let current = this.get(key);\n const ancestry = [current];\n\n while (current.parentKey) {\n const parent = this.get(current.parentKey);\n if (parent) {\n ancestry.push(parent);\n }\n current = parent;\n }\n\n return ancestry.every((n) => n.isVisible);\n }\n\n protected deriveVisibility() {\n return this.cache.roots.map((key) => this.traverse(key));\n }\n /**\n * Recursively builds a TreeNode from a key\n *\n * @param key\n */\n protected buildNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n const children = (node.children ?? []).reduce(\n (acc: TreeNode<T>[], child) => {\n const childNode = this.cache.lookup.get(child);\n\n if (childNode && childNode.parentKey === key) {\n acc.push(this.buildNode(child));\n }\n\n return acc;\n },\n [],\n );\n\n return {\n ...node,\n children,\n };\n }\n\n /**\n * Builds a tree structure from cache\n *\n * TODO: optimization - rebuild only from change to root\n * Rebuild only from the changed node up the tree to avoid\n * rebuilding the entire tree\n *\n * @param deriveVisible boolean - if true, will recompute visibility for nodes based on ancestry\n */\n toTree(deriveVisible?: boolean): TreeNode<T>[] {\n if (deriveVisible) {\n this.deriveVisibility();\n }\n return this.cache.roots.map((key) => this.buildNode(key));\n }\n\n /**\n * CACHE FUNCTIONS\n * These manage cache operations. No cache operations should ever be done\n * outside this file.\n **/\n getNode(key: Key): TreeNode<T> {\n const node = this.get(key);\n\n return {\n ...node,\n children: node.children?.map((key) => this.buildNode(key)),\n };\n }\n\n getAllKeys() {\n return this.cache.lookup.keys();\n }\n\n getAllNodes() {\n return this.cache.lookup.values();\n }\n\n setNode(key: Key, node: TreeNode<T>) {\n this.set(key, {\n ...node,\n children: (node.children ?? []).map((child) => child.key),\n });\n }\n\n setAllNodes({ parentKey, children, ...rest }: Partial<TreeNode<T>>) {\n for (const node of this.cache.lookup.values()) {\n this.set(node.key, {\n ...node,\n ...rest,\n });\n }\n }\n\n deleteNode(key: Key) {\n const node = this.cache.lookup.get(key);\n\n if (!node) {\n return;\n }\n\n // remove children\n node.children?.map((key) => this.deleteNode(key));\n\n // remove node from previous parent or root\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // remove the actual node\n this.delete(key);\n }\n\n addNodes(\n target: Key | null,\n nodes: TreeNode<T>[],\n position: 'before' | 'after',\n ) {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n nodes.map((node, i) => this.insertNode(parentKey, node, idx + i));\n }\n\n insertNode(parentKey: Key | null, node: TreeNode<T>, idx: number) {\n const { children, ...rest } = node;\n\n this.set(node.key, {\n isDisabled: false,\n isExpanded: false,\n isSelected: false,\n isVisible: false,\n isVisibleComputed: false,\n ...rest,\n parentKey,\n ...(children ? { children: children.map((child) => child.key) } : {}),\n });\n\n node.children?.map((child, i) => this.insertNode(node.key, child, i));\n\n parentKey === null\n ? this.addToRoot(node.key, idx)\n : this.addToParent(parentKey, node.key, idx);\n }\n\n moveNodes(target: Key | null, nodes: Set<Key>, position: 'before' | 'after') {\n const { parentKey, index } = this.parentOrSibling(target, position);\n const idx = index + (position === 'before' ? 0 : 1);\n\n Array.from(nodes).map((key, i) => this.moveNode(parentKey, key, idx + i));\n }\n\n moveNode(parentKey: Key | null, key: Key, idx: number) {\n const node = this.get(key);\n\n // remove from previous parent\n node.parentKey\n ? this.removeFromParent(node.parentKey, key)\n : this.removeFromRoot(key);\n\n // add as child to new parent or root at position\n parentKey\n ? this.addToParent(parentKey, key, idx)\n : this.addToRoot(key, idx);\n }\n}\n"],"mappings":"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"}