@accelint/design-toolkit 9.9.2 → 9.11.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 (719) hide show
  1. package/catalog-info.yaml +3 -3
  2. package/dist/components/accordion/context.d.ts +3 -3
  3. package/dist/components/accordion/context.js.map +1 -1
  4. package/dist/components/accordion/group.d.ts +2 -2
  5. package/dist/components/accordion/group.js +2 -1
  6. package/dist/components/accordion/group.js.map +1 -1
  7. package/dist/components/accordion/header.d.ts +2 -2
  8. package/dist/components/accordion/header.js +2 -1
  9. package/dist/components/accordion/header.js.map +1 -1
  10. package/dist/components/accordion/index.d.ts +2 -2
  11. package/dist/components/accordion/index.js +3 -1
  12. package/dist/components/accordion/index.js.map +1 -1
  13. package/dist/components/accordion/panel.d.ts +2 -2
  14. package/dist/components/accordion/panel.js +2 -1
  15. package/dist/components/accordion/panel.js.map +1 -1
  16. package/dist/components/accordion/styles.module.css +19 -3
  17. package/dist/components/accordion/trigger.d.ts +2 -2
  18. package/dist/components/accordion/trigger.js +4 -3
  19. package/dist/components/accordion/trigger.js.map +1 -1
  20. package/dist/components/accordion/types.d.ts +3 -1
  21. package/dist/components/action-bar/index.d.ts +2 -2
  22. package/dist/components/action-bar/index.js +1 -1
  23. package/dist/components/action-bar/index.js.map +1 -1
  24. package/dist/components/audio/index.d.ts +2 -2
  25. package/dist/components/avatar/context.d.ts +5 -5
  26. package/dist/components/avatar/context.js.map +1 -1
  27. package/dist/components/avatar/index.d.ts +2 -2
  28. package/dist/components/avatar/index.js +1 -1
  29. package/dist/components/avatar/index.js.map +1 -1
  30. package/dist/components/badge/context.d.ts +5 -5
  31. package/dist/components/badge/context.js.map +1 -1
  32. package/dist/components/badge/index.d.ts +2 -2
  33. package/dist/components/badge/index.js +1 -1
  34. package/dist/components/badge/index.js.map +1 -1
  35. package/dist/components/breadcrumbs/index.d.ts +3 -3
  36. package/dist/components/breadcrumbs/index.js +1 -1
  37. package/dist/components/breadcrumbs/index.js.map +1 -1
  38. package/dist/components/breadcrumbs/item.d.ts +2 -2
  39. package/dist/components/breadcrumbs/item.js +3 -1
  40. package/dist/components/breadcrumbs/item.js.map +1 -1
  41. package/dist/components/breadcrumbs/types.d.ts +2 -1
  42. package/dist/components/button/__internal__/clear.js +2 -1
  43. package/dist/components/button/__internal__/clear.js.map +1 -1
  44. package/dist/components/button/context.d.ts +10 -10
  45. package/dist/components/button/context.js.map +1 -1
  46. package/dist/components/button/index.d.ts +2 -2
  47. package/dist/components/button/index.js +3 -1
  48. package/dist/components/button/index.js.map +1 -1
  49. package/dist/components/button/link.d.ts +2 -2
  50. package/dist/components/button/link.js +3 -1
  51. package/dist/components/button/link.js.map +1 -1
  52. package/dist/components/button/styles.module.css +16 -0
  53. package/dist/components/button/toggle.d.ts +2 -2
  54. package/dist/components/button/toggle.js +3 -1
  55. package/dist/components/button/toggle.js.map +1 -1
  56. package/dist/components/button/types.d.ts +3 -1
  57. package/dist/components/carousel/context.d.ts +40 -0
  58. package/dist/components/carousel/context.js +55 -0
  59. package/dist/components/carousel/context.js.map +1 -0
  60. package/dist/components/carousel/gallery.d.ts +38 -0
  61. package/dist/components/carousel/gallery.js +84 -0
  62. package/dist/components/carousel/gallery.js.map +1 -0
  63. package/dist/components/carousel/index.d.ts +56 -0
  64. package/dist/components/carousel/index.js +66 -0
  65. package/dist/components/carousel/index.js.map +1 -0
  66. package/dist/components/carousel/navigation.d.ts +51 -0
  67. package/dist/components/carousel/navigation.js +82 -0
  68. package/dist/components/carousel/navigation.js.map +1 -0
  69. package/dist/components/carousel/position.d.ts +33 -0
  70. package/dist/components/carousel/position.js +48 -0
  71. package/dist/components/carousel/position.js.map +1 -0
  72. package/dist/components/carousel/select.d.ts +38 -0
  73. package/dist/components/carousel/select.js +69 -0
  74. package/dist/components/carousel/select.js.map +1 -0
  75. package/dist/components/carousel/style.module.css +62 -0
  76. package/dist/components/carousel/types.d.ts +87 -0
  77. package/dist/components/carousel/types.js +12 -0
  78. package/dist/components/carousel/viewer.d.ts +40 -0
  79. package/dist/components/carousel/viewer.js +75 -0
  80. package/dist/components/carousel/viewer.js.map +1 -0
  81. package/dist/components/checkbox/context.d.ts +5 -5
  82. package/dist/components/checkbox/context.js.map +1 -1
  83. package/dist/components/checkbox/group.d.ts +2 -2
  84. package/dist/components/checkbox/group.js +5 -3
  85. package/dist/components/checkbox/group.js.map +1 -1
  86. package/dist/components/checkbox/index.d.ts +2 -2
  87. package/dist/components/checkbox/index.js +3 -1
  88. package/dist/components/checkbox/index.js.map +1 -1
  89. package/dist/components/checkbox/types.d.ts +4 -3
  90. package/dist/components/chip/context.d.ts +3 -3
  91. package/dist/components/chip/context.js.map +1 -1
  92. package/dist/components/chip/deletable.d.ts +2 -2
  93. package/dist/components/chip/deletable.js +5 -3
  94. package/dist/components/chip/deletable.js.map +1 -1
  95. package/dist/components/chip/index.d.ts +2 -2
  96. package/dist/components/chip/index.js +2 -1
  97. package/dist/components/chip/index.js.map +1 -1
  98. package/dist/components/chip/list.d.ts +4 -4
  99. package/dist/components/chip/list.js +3 -1
  100. package/dist/components/chip/list.js.map +1 -1
  101. package/dist/components/chip/selectable.d.ts +2 -2
  102. package/dist/components/chip/selectable.js +3 -1
  103. package/dist/components/chip/selectable.js.map +1 -1
  104. package/dist/components/chip/types.d.ts +3 -2
  105. package/dist/components/classification-badge/context.d.ts +5 -5
  106. package/dist/components/classification-badge/context.js.map +1 -1
  107. package/dist/components/classification-badge/index.d.ts +2 -2
  108. package/dist/components/classification-badge/index.js +1 -1
  109. package/dist/components/classification-badge/index.js.map +1 -1
  110. package/dist/components/classification-banner/context.d.ts +5 -5
  111. package/dist/components/classification-banner/context.js.map +1 -1
  112. package/dist/components/classification-banner/index.d.ts +2 -2
  113. package/dist/components/classification-banner/index.js +1 -1
  114. package/dist/components/classification-banner/index.js.map +1 -1
  115. package/dist/components/clock/index.d.ts +2 -2
  116. package/dist/components/color-picker/index.d.ts +2 -2
  117. package/dist/components/color-picker/index.js +4 -3
  118. package/dist/components/color-picker/index.js.map +1 -1
  119. package/dist/components/color-picker/types.d.ts +2 -1
  120. package/dist/components/combobox-field/context.d.ts +5 -5
  121. package/dist/components/combobox-field/context.js.map +1 -1
  122. package/dist/components/combobox-field/index.d.ts +2 -2
  123. package/dist/components/combobox-field/index.js +12 -12
  124. package/dist/components/combobox-field/index.js.map +1 -1
  125. package/dist/components/combobox-field/styles.module.css +12 -0
  126. package/dist/components/combobox-field/types.d.ts +8 -4
  127. package/dist/components/coordinate-field/context.d.ts +7 -7
  128. package/dist/components/coordinate-field/context.js.map +1 -1
  129. package/dist/components/coordinate-field/index.d.ts +2 -2
  130. package/dist/components/coordinate-field/index.js +28 -23
  131. package/dist/components/coordinate-field/index.js.map +1 -1
  132. package/dist/components/coordinate-field/segment.d.ts +2 -2
  133. package/dist/components/coordinate-field/types.d.ts +3 -1
  134. package/dist/components/coordinate-field/types.js.map +1 -1
  135. package/dist/components/date-field/index.d.ts +2 -2
  136. package/dist/components/date-field/index.js +4 -3
  137. package/dist/components/date-field/index.js.map +1 -1
  138. package/dist/components/date-field/types.d.ts +1 -1
  139. package/dist/components/deferred-collection/index.d.ts +2 -2
  140. package/dist/components/details-list/context.d.ts +5 -5
  141. package/dist/components/details-list/context.js.map +1 -1
  142. package/dist/components/details-list/index.d.ts +2 -2
  143. package/dist/components/details-list/index.js +2 -1
  144. package/dist/components/details-list/index.js.map +1 -1
  145. package/dist/components/details-list/label.d.ts +2 -2
  146. package/dist/components/details-list/label.js +1 -1
  147. package/dist/components/details-list/label.js.map +1 -1
  148. package/dist/components/details-list/types.d.ts +1 -1
  149. package/dist/components/details-list/value.d.ts +2 -2
  150. package/dist/components/details-list/value.js +1 -1
  151. package/dist/components/details-list/value.js.map +1 -1
  152. package/dist/components/dialog/content.d.ts +2 -2
  153. package/dist/components/dialog/context.d.ts +4 -4
  154. package/dist/components/dialog/context.js.map +1 -1
  155. package/dist/components/dialog/footer.d.ts +2 -2
  156. package/dist/components/dialog/footer.js +1 -1
  157. package/dist/components/dialog/footer.js.map +1 -1
  158. package/dist/components/dialog/index.d.ts +2 -2
  159. package/dist/components/dialog/index.js +3 -1
  160. package/dist/components/dialog/index.js.map +1 -1
  161. package/dist/components/dialog/styles.module.css +23 -0
  162. package/dist/components/dialog/title.d.ts +3 -3
  163. package/dist/components/dialog/title.js +1 -1
  164. package/dist/components/dialog/title.js.map +1 -1
  165. package/dist/components/dialog/trigger.d.ts +1 -1
  166. package/dist/components/dialog/trigger.js +1 -1
  167. package/dist/components/dialog/trigger.js.map +1 -1
  168. package/dist/components/dialog/types.d.ts +1 -1
  169. package/dist/components/divider/context.d.ts +5 -5
  170. package/dist/components/divider/context.js.map +1 -1
  171. package/dist/components/divider/index.d.ts +2 -2
  172. package/dist/components/divider/index.js +1 -1
  173. package/dist/components/divider/index.js.map +1 -1
  174. package/dist/components/drawer/back.d.ts +2 -2
  175. package/dist/components/drawer/close.d.ts +2 -2
  176. package/dist/components/drawer/content.d.ts +2 -2
  177. package/dist/components/drawer/context.d.ts +2 -2
  178. package/dist/components/drawer/footer.d.ts +2 -2
  179. package/dist/components/drawer/header-title.d.ts +2 -2
  180. package/dist/components/drawer/header-title.js +1 -1
  181. package/dist/components/drawer/header-title.js.map +1 -1
  182. package/dist/components/drawer/header.d.ts +2 -2
  183. package/dist/components/drawer/header.js +3 -3
  184. package/dist/components/drawer/header.js.map +1 -1
  185. package/dist/components/drawer/index.d.ts +2 -2
  186. package/dist/components/drawer/layout-main.d.ts +2 -2
  187. package/dist/components/drawer/layout.d.ts +2 -2
  188. package/dist/components/drawer/menu-item.d.ts +2 -2
  189. package/dist/components/drawer/menu-item.js +7 -7
  190. package/dist/components/drawer/menu-item.js.map +1 -1
  191. package/dist/components/drawer/menu.d.ts +2 -2
  192. package/dist/components/drawer/panel.d.ts +2 -2
  193. package/dist/components/drawer/styles.module.css +54 -2
  194. package/dist/components/drawer/trigger.d.ts +2 -2
  195. package/dist/components/drawer/trigger.js +1 -1
  196. package/dist/components/drawer/trigger.js.map +1 -1
  197. package/dist/components/drawer/types.d.ts +3 -3
  198. package/dist/components/drawer/view.d.ts +2 -2
  199. package/dist/components/flashcard/index.d.ts +9 -9
  200. package/dist/components/flashcard/index.js +2 -1
  201. package/dist/components/flashcard/index.js.map +1 -1
  202. package/dist/components/floating-card/context.d.ts +22 -15
  203. package/dist/components/floating-card/context.js +18 -3
  204. package/dist/components/floating-card/context.js.map +1 -1
  205. package/dist/components/floating-card/index.d.ts +32 -27
  206. package/dist/components/floating-card/index.js +41 -11
  207. package/dist/components/floating-card/index.js.map +1 -1
  208. package/dist/components/floating-card/provider.d.ts +30 -32
  209. package/dist/components/floating-card/provider.js +110 -49
  210. package/dist/components/floating-card/provider.js.map +1 -1
  211. package/dist/components/floating-card/styles.module.css +20 -2
  212. package/dist/components/floating-card/types.d.ts +161 -0
  213. package/dist/components/floating-card/types.js +12 -0
  214. package/dist/components/floating-card/utils.d.ts +104 -0
  215. package/dist/components/floating-card/utils.js +60 -0
  216. package/dist/components/floating-card/utils.js.map +1 -0
  217. package/dist/components/gantt/components/base-elements/point.d.ts +28 -0
  218. package/dist/components/gantt/components/base-elements/point.js +44 -0
  219. package/dist/components/gantt/components/base-elements/point.js.map +1 -0
  220. package/dist/components/gantt/components/base-elements/range.d.ts +30 -0
  221. package/dist/components/gantt/components/base-elements/range.js +51 -0
  222. package/dist/components/gantt/components/base-elements/range.js.map +1 -0
  223. package/dist/components/gantt/components/base-elements/use-point-element-layout/index.d.ts +12 -0
  224. package/dist/components/gantt/components/base-elements/use-point-element-layout/index.js +42 -0
  225. package/dist/components/gantt/components/base-elements/use-point-element-layout/index.js.map +1 -0
  226. package/dist/components/gantt/components/base-elements/use-range-element-layout/index.d.ts +23 -0
  227. package/dist/components/gantt/components/base-elements/use-range-element-layout/index.js +50 -0
  228. package/dist/components/gantt/components/base-elements/use-range-element-layout/index.js.map +1 -0
  229. package/dist/components/gantt/components/containers/external/gantt-content-container/index.d.ts +23 -0
  230. package/dist/components/gantt/components/containers/external/gantt-content-container/index.js +40 -0
  231. package/dist/components/gantt/components/containers/external/gantt-content-container/index.js.map +1 -0
  232. package/dist/components/gantt/components/containers/external/gantt-panel-container/index.d.ts +23 -0
  233. package/dist/components/gantt/components/containers/external/gantt-panel-container/index.js +33 -0
  234. package/dist/components/gantt/components/containers/external/gantt-panel-container/index.js.map +1 -0
  235. package/dist/components/gantt/components/containers/external/styles.module.css +32 -0
  236. package/dist/components/gantt/components/containers/internal/index.d.ts +22 -0
  237. package/dist/components/gantt/components/containers/internal/index.js +35 -0
  238. package/dist/components/gantt/components/containers/internal/index.js.map +1 -0
  239. package/dist/components/gantt/components/containers/internal/layout-container/index.d.ts +22 -0
  240. package/dist/components/gantt/components/containers/internal/layout-container/index.js +27 -0
  241. package/dist/components/gantt/components/containers/internal/layout-container/index.js.map +1 -0
  242. package/dist/components/gantt/components/containers/internal/styles.module.css +35 -0
  243. package/dist/components/gantt/components/containers/internal/virtualized-content-height-container/index.d.ts +22 -0
  244. package/dist/components/gantt/components/containers/internal/virtualized-content-height-container/index.js +38 -0
  245. package/dist/components/gantt/components/containers/internal/virtualized-content-height-container/index.js.map +1 -0
  246. package/dist/components/gantt/components/content-row/block.d.ts +27 -0
  247. package/dist/components/gantt/components/content-row/block.js +39 -0
  248. package/dist/components/gantt/components/content-row/block.js.map +1 -0
  249. package/dist/components/gantt/components/content-row/bracket.d.ts +23 -0
  250. package/dist/components/gantt/components/content-row/bracket.js +48 -0
  251. package/dist/components/gantt/components/content-row/bracket.js.map +1 -0
  252. package/dist/components/gantt/components/content-row/icon-marker.d.ts +27 -0
  253. package/dist/components/gantt/components/content-row/icon-marker.js +41 -0
  254. package/dist/components/gantt/components/content-row/icon-marker.js.map +1 -0
  255. package/dist/components/gantt/components/content-row/index.d.ts +24 -0
  256. package/dist/components/gantt/components/content-row/index.js +32 -0
  257. package/dist/components/gantt/components/content-row/index.js.map +1 -0
  258. package/dist/components/gantt/components/content-row/marker.d.ts +21 -0
  259. package/dist/components/gantt/components/content-row/marker.js +35 -0
  260. package/dist/components/gantt/components/content-row/marker.js.map +1 -0
  261. package/dist/components/gantt/components/content-row/spacer.d.ts +23 -0
  262. package/dist/components/gantt/components/content-row/spacer.js +35 -0
  263. package/dist/components/gantt/components/content-row/spacer.js.map +1 -0
  264. package/dist/components/gantt/components/content-row/styles.module.css +198 -0
  265. package/dist/components/gantt/components/content-row/use-elapsed-percentage/index.d.ts +19 -0
  266. package/dist/components/gantt/components/content-row/use-elapsed-percentage/index.js +27 -0
  267. package/dist/components/gantt/components/content-row/use-elapsed-percentage/index.js.map +1 -0
  268. package/dist/components/gantt/components/content-row/use-is-elapsed/index.d.ts +10 -0
  269. package/dist/components/gantt/components/content-row/use-is-elapsed/index.js +24 -0
  270. package/dist/components/gantt/components/content-row/use-is-elapsed/index.js.map +1 -0
  271. package/dist/components/gantt/components/current-time/index.d.ts +28 -0
  272. package/dist/components/gantt/components/current-time/index.js +63 -0
  273. package/dist/components/gantt/components/current-time/index.js.map +1 -0
  274. package/dist/components/gantt/components/current-time/styles.module.css +42 -0
  275. package/dist/components/gantt/components/current-time/use-current-time-layout/index.d.ts +31 -0
  276. package/dist/components/gantt/components/current-time/use-current-time-layout/index.js +58 -0
  277. package/dist/components/gantt/components/current-time/use-current-time-layout/index.js.map +1 -0
  278. package/dist/components/gantt/components/header/index.d.ts +25 -0
  279. package/dist/components/gantt/components/header/index.js +41 -0
  280. package/dist/components/gantt/components/header/index.js.map +1 -0
  281. package/dist/components/gantt/components/header/styles.module.css +23 -0
  282. package/dist/components/gantt/components/panel-row/index.d.ts +24 -0
  283. package/dist/components/gantt/components/panel-row/index.js +33 -0
  284. package/dist/components/gantt/components/panel-row/index.js.map +1 -0
  285. package/dist/components/gantt/components/panel-row/styles.module.css +24 -0
  286. package/dist/components/gantt/components/rows-virtualizer/index.d.ts +25 -0
  287. package/dist/components/gantt/components/rows-virtualizer/index.js +67 -0
  288. package/dist/components/gantt/components/rows-virtualizer/index.js.map +1 -0
  289. package/dist/components/gantt/components/rows-virtualizer/styles.module.css +30 -0
  290. package/dist/components/gantt/components/rows-virtualizer/use-rendered-rows/index.d.ts +29 -0
  291. package/dist/components/gantt/components/rows-virtualizer/use-rendered-rows/index.js +57 -0
  292. package/dist/components/gantt/components/rows-virtualizer/use-rendered-rows/index.js.map +1 -0
  293. package/dist/components/gantt/components/rows-virtualizer/use-scroll-sync/index.d.ts +10 -0
  294. package/dist/components/gantt/components/rows-virtualizer/use-scroll-sync/index.js +58 -0
  295. package/dist/components/gantt/components/rows-virtualizer/use-scroll-sync/index.js.map +1 -0
  296. package/dist/components/gantt/components/styles.module.css +46 -0
  297. package/dist/components/gantt/components/timeline/index.d.ts +19 -0
  298. package/dist/components/gantt/components/timeline/index.js +45 -0
  299. package/dist/components/gantt/components/timeline/index.js.map +1 -0
  300. package/dist/components/gantt/components/timeline/use-timeline-transform/index.d.ts +29 -0
  301. package/dist/components/gantt/components/timeline/use-timeline-transform/index.js +33 -0
  302. package/dist/components/gantt/components/timeline/use-timeline-transform/index.js.map +1 -0
  303. package/dist/components/gantt/components/timeline-chunk/index.d.ts +25 -0
  304. package/dist/components/gantt/components/timeline-chunk/index.js +43 -0
  305. package/dist/components/gantt/components/timeline-chunk/index.js.map +1 -0
  306. package/dist/components/gantt/constants.d.ts +31 -0
  307. package/dist/components/gantt/constants.js +57 -0
  308. package/dist/components/gantt/constants.js.map +1 -0
  309. package/dist/components/gantt/context/index.d.ts +60 -0
  310. package/dist/components/gantt/context/index.js +78 -0
  311. package/dist/components/gantt/context/index.js.map +1 -0
  312. package/dist/components/gantt/context/store/index.d.ts +45 -0
  313. package/dist/components/gantt/context/store/index.js +42 -0
  314. package/dist/components/gantt/context/store/index.js.map +1 -0
  315. package/dist/components/gantt/context/temporal-data/index.d.ts +48 -0
  316. package/dist/components/gantt/context/temporal-data/index.js +80 -0
  317. package/dist/components/gantt/context/temporal-data/index.js.map +1 -0
  318. package/dist/components/gantt/gantt.d.ts +50 -0
  319. package/dist/components/gantt/gantt.js +51 -0
  320. package/dist/components/gantt/gantt.js.map +1 -0
  321. package/dist/components/gantt/hooks/use-horizontal-scroll-update/index.d.ts +22 -0
  322. package/dist/components/gantt/hooks/use-horizontal-scroll-update/index.js +36 -0
  323. package/dist/components/gantt/hooks/use-horizontal-scroll-update/index.js.map +1 -0
  324. package/dist/components/gantt/hooks/use-layout-subscription/index.d.ts +26 -0
  325. package/dist/components/gantt/hooks/use-layout-subscription/index.js +45 -0
  326. package/dist/components/gantt/hooks/use-layout-subscription/index.js.map +1 -0
  327. package/dist/components/gantt/hooks/use-resize-intersection-effect/index.d.ts +26 -0
  328. package/dist/components/gantt/hooks/use-resize-intersection-effect/index.js +50 -0
  329. package/dist/components/gantt/hooks/use-resize-intersection-effect/index.js.map +1 -0
  330. package/dist/components/gantt/hooks/use-root-element-height/index.d.ts +5 -0
  331. package/dist/components/gantt/hooks/use-root-element-height/index.js +24 -0
  332. package/dist/components/gantt/hooks/use-root-element-height/index.js.map +1 -0
  333. package/dist/components/gantt/hooks/use-scrollbar-height/index.d.ts +5 -0
  334. package/dist/components/gantt/hooks/use-scrollbar-height/index.js +40 -0
  335. package/dist/components/gantt/hooks/use-scrollbar-height/index.js.map +1 -0
  336. package/dist/components/gantt/hooks/use-total-data-region-thresholds/index.d.ts +19 -0
  337. package/dist/components/gantt/hooks/use-total-data-region-thresholds/index.js +87 -0
  338. package/dist/components/gantt/hooks/use-total-data-region-thresholds/index.js.map +1 -0
  339. package/dist/components/gantt/hooks/use-vertical-scroll-update/index.d.ts +22 -0
  340. package/dist/components/gantt/hooks/use-vertical-scroll-update/index.js +38 -0
  341. package/dist/components/gantt/hooks/use-vertical-scroll-update/index.js.map +1 -0
  342. package/dist/components/gantt/public-types.d.ts +31 -0
  343. package/dist/components/gantt/public-types.js +12 -0
  344. package/dist/components/gantt/store.d.ts +51 -0
  345. package/dist/components/gantt/store.js +46 -0
  346. package/dist/components/gantt/store.js.map +1 -0
  347. package/dist/components/gantt/styles.module.css +30 -0
  348. package/dist/components/gantt/types.d.ts +67 -0
  349. package/dist/components/gantt/types.js +12 -0
  350. package/dist/components/gantt/utils/conversions.d.ts +23 -0
  351. package/dist/components/gantt/utils/conversions.js +34 -0
  352. package/dist/components/gantt/utils/conversions.js.map +1 -0
  353. package/dist/components/gantt/utils/dates.d.ts +11 -0
  354. package/dist/components/gantt/utils/dates.js +41 -0
  355. package/dist/components/gantt/utils/dates.js.map +1 -0
  356. package/dist/components/gantt/utils/formatting.d.ts +5 -0
  357. package/dist/components/gantt/utils/formatting.js +54 -0
  358. package/dist/components/gantt/utils/formatting.js.map +1 -0
  359. package/dist/components/gantt/utils/generation.d.ts +19 -0
  360. package/dist/components/gantt/utils/generation.js +37 -0
  361. package/dist/components/gantt/utils/generation.js.map +1 -0
  362. package/dist/components/gantt/utils/helpers.d.ts +26 -0
  363. package/dist/components/gantt/utils/helpers.js +55 -0
  364. package/dist/components/gantt/utils/helpers.js.map +1 -0
  365. package/dist/components/gantt/utils/layout.d.ts +32 -0
  366. package/dist/components/gantt/utils/layout.js +55 -0
  367. package/dist/components/gantt/utils/layout.js.map +1 -0
  368. package/dist/components/gantt/utils/thresholds.d.ts +52 -0
  369. package/dist/components/gantt/utils/thresholds.js +116 -0
  370. package/dist/components/gantt/utils/thresholds.js.map +1 -0
  371. package/dist/components/hero/context.d.ts +3 -3
  372. package/dist/components/hero/context.js.map +1 -1
  373. package/dist/components/hero/index.d.ts +2 -2
  374. package/dist/components/hero/index.js +4 -1
  375. package/dist/components/hero/index.js.map +1 -1
  376. package/dist/components/hero/subtitle.d.ts +3 -3
  377. package/dist/components/hero/subtitle.js +1 -1
  378. package/dist/components/hero/subtitle.js.map +1 -1
  379. package/dist/components/hero/title.d.ts +3 -3
  380. package/dist/components/hero/title.js +1 -1
  381. package/dist/components/hero/title.js.map +1 -1
  382. package/dist/components/hotkey/context.d.ts +5 -5
  383. package/dist/components/hotkey/context.js.map +1 -1
  384. package/dist/components/hotkey/index.d.ts +2 -2
  385. package/dist/components/hotkey/index.js +2 -1
  386. package/dist/components/hotkey/index.js.map +1 -1
  387. package/dist/components/hotkey/set.d.ts +2 -2
  388. package/dist/components/icon/context.d.ts +5 -5
  389. package/dist/components/icon/context.js.map +1 -1
  390. package/dist/components/icon/index.d.ts +2 -2
  391. package/dist/components/icon/index.js +1 -1
  392. package/dist/components/icon/index.js.map +1 -1
  393. package/dist/components/input/context.d.ts +4 -4
  394. package/dist/components/input/context.js.map +1 -1
  395. package/dist/components/input/index.d.ts +2 -2
  396. package/dist/components/input/index.js +4 -2
  397. package/dist/components/input/index.js.map +1 -1
  398. package/dist/components/input/types.d.ts +3 -3
  399. package/dist/components/kanban/card-body.d.ts +2 -2
  400. package/dist/components/kanban/card-header-actions.d.ts +2 -2
  401. package/dist/components/kanban/card-header-title.d.ts +2 -2
  402. package/dist/components/kanban/card-header.d.ts +2 -2
  403. package/dist/components/kanban/card.d.ts +2 -2
  404. package/dist/components/kanban/column-actions.d.ts +2 -2
  405. package/dist/components/kanban/column-container.d.ts +2 -2
  406. package/dist/components/kanban/column-content.d.ts +2 -2
  407. package/dist/components/kanban/column-header-actions.d.ts +2 -2
  408. package/dist/components/kanban/column-header-drag-handle.d.ts +2 -2
  409. package/dist/components/kanban/column-header-title.d.ts +2 -2
  410. package/dist/components/kanban/column-header.d.ts +2 -2
  411. package/dist/components/kanban/column.d.ts +2 -2
  412. package/dist/components/kanban/context.d.ts +2 -2
  413. package/dist/components/kanban/header-actions.d.ts +2 -2
  414. package/dist/components/kanban/header-search.d.ts +2 -2
  415. package/dist/components/kanban/header-title.d.ts +2 -2
  416. package/dist/components/kanban/header-title.js +1 -1
  417. package/dist/components/kanban/header-title.js.map +1 -1
  418. package/dist/components/kanban/header.d.ts +2 -2
  419. package/dist/components/kanban/kanban.d.ts +4 -4
  420. package/dist/components/label/context.d.ts +6 -6
  421. package/dist/components/label/context.js.map +1 -1
  422. package/dist/components/label/index.d.ts +2 -2
  423. package/dist/components/label/index.js +2 -1
  424. package/dist/components/label/index.js.map +1 -1
  425. package/dist/components/label/types.d.ts +1 -1
  426. package/dist/components/lines/index.d.ts +2 -2
  427. package/dist/components/link/context.d.ts +2 -2
  428. package/dist/components/link/context.js +1 -1
  429. package/dist/components/link/context.js.map +1 -1
  430. package/dist/components/link/index.d.ts +2 -2
  431. package/dist/components/link/index.js +3 -1
  432. package/dist/components/link/index.js.map +1 -1
  433. package/dist/components/link/types.d.ts +1 -1
  434. package/dist/components/list/context.d.ts +3 -3
  435. package/dist/components/list/context.js.map +1 -1
  436. package/dist/components/list/index.d.ts +2 -2
  437. package/dist/components/list/index.js +3 -1
  438. package/dist/components/list/index.js.map +1 -1
  439. package/dist/components/list/item-content.d.ts +2 -2
  440. package/dist/components/list/item-description.d.ts +2 -2
  441. package/dist/components/list/item-title.d.ts +2 -2
  442. package/dist/components/list/item.d.ts +2 -2
  443. package/dist/components/list/item.js +2 -1
  444. package/dist/components/list/item.js.map +1 -1
  445. package/dist/components/list/types.d.ts +1 -1
  446. package/dist/components/media-controls/context.d.ts +4 -4
  447. package/dist/components/media-controls/fullscreen-button.d.ts +2 -2
  448. package/dist/components/media-controls/index.d.ts +2 -2
  449. package/dist/components/media-controls/mute-button.d.ts +2 -2
  450. package/dist/components/media-controls/play-button.d.ts +2 -2
  451. package/dist/components/media-controls/playback-rate.d.ts +2 -2
  452. package/dist/components/media-controls/seek-button.d.ts +2 -2
  453. package/dist/components/media-controls/time-display.d.ts +2 -2
  454. package/dist/components/media-controls/time-range.d.ts +2 -2
  455. package/dist/components/media-controls/volume-slider.d.ts +2 -2
  456. package/dist/components/menu/context.d.ts +4 -4
  457. package/dist/components/menu/context.js.map +1 -1
  458. package/dist/components/menu/index.d.ts +2 -2
  459. package/dist/components/menu/index.js +4 -1
  460. package/dist/components/menu/index.js.map +1 -1
  461. package/dist/components/menu/item-description.d.ts +3 -3
  462. package/dist/components/menu/item-description.js +1 -1
  463. package/dist/components/menu/item-description.js.map +1 -1
  464. package/dist/components/menu/item-label.d.ts +3 -3
  465. package/dist/components/menu/item-label.js +1 -1
  466. package/dist/components/menu/item-label.js.map +1 -1
  467. package/dist/components/menu/item.d.ts +2 -2
  468. package/dist/components/menu/item.js +5 -1
  469. package/dist/components/menu/item.js.map +1 -1
  470. package/dist/components/menu/section.d.ts +2 -2
  471. package/dist/components/menu/section.js +1 -1
  472. package/dist/components/menu/section.js.map +1 -1
  473. package/dist/components/menu/separator.d.ts +3 -3
  474. package/dist/components/menu/separator.js +1 -1
  475. package/dist/components/menu/separator.js.map +1 -1
  476. package/dist/components/menu/styles.module.css +12 -0
  477. package/dist/components/menu/submenu.d.ts +3 -3
  478. package/dist/components/menu/submenu.js +1 -1
  479. package/dist/components/menu/submenu.js.map +1 -1
  480. package/dist/components/menu/trigger.d.ts +1 -1
  481. package/dist/components/menu/trigger.js +1 -1
  482. package/dist/components/menu/trigger.js.map +1 -1
  483. package/dist/components/menu/types.d.ts +1 -1
  484. package/dist/components/notice/index.d.ts +2 -2
  485. package/dist/components/notice/index.js +6 -5
  486. package/dist/components/notice/index.js.map +1 -1
  487. package/dist/components/notice/list.d.ts +2 -2
  488. package/dist/components/notice/list.js +16 -6
  489. package/dist/components/notice/list.js.map +1 -1
  490. package/dist/components/notice/notice-icon.d.ts +2 -2
  491. package/dist/components/notice/styles.module.css +27 -0
  492. package/dist/components/notice/types.d.ts +4 -4
  493. package/dist/components/options/context.d.ts +3 -3
  494. package/dist/components/options/context.js.map +1 -1
  495. package/dist/components/options/index.d.ts +2 -2
  496. package/dist/components/options/index.js +3 -1
  497. package/dist/components/options/index.js.map +1 -1
  498. package/dist/components/options/item-content.d.ts +3 -3
  499. package/dist/components/options/item-content.js.map +1 -1
  500. package/dist/components/options/item-description.d.ts +3 -3
  501. package/dist/components/options/item-description.js +1 -1
  502. package/dist/components/options/item-description.js.map +1 -1
  503. package/dist/components/options/item-label.d.ts +3 -3
  504. package/dist/components/options/item-label.js +2 -1
  505. package/dist/components/options/item-label.js.map +1 -1
  506. package/dist/components/options/item.d.ts +2 -2
  507. package/dist/components/options/item.js +2 -1
  508. package/dist/components/options/item.js.map +1 -1
  509. package/dist/components/options/section.d.ts +2 -2
  510. package/dist/components/options/section.js +1 -1
  511. package/dist/components/options/section.js.map +1 -1
  512. package/dist/components/options/types.d.ts +2 -2
  513. package/dist/components/pagination/context.d.ts +2 -2
  514. package/dist/components/pagination/index.d.ts +2 -2
  515. package/dist/components/pagination/index.js +1 -1
  516. package/dist/components/pagination/index.js.map +1 -1
  517. package/dist/components/pagination/next.d.ts +2 -2
  518. package/dist/components/pagination/next.js +3 -3
  519. package/dist/components/pagination/next.js.map +1 -1
  520. package/dist/components/pagination/pages.d.ts +2 -2
  521. package/dist/components/pagination/pages.js +3 -3
  522. package/dist/components/pagination/pages.js.map +1 -1
  523. package/dist/components/pagination/prev.d.ts +2 -2
  524. package/dist/components/pagination/prev.js +3 -3
  525. package/dist/components/pagination/prev.js.map +1 -1
  526. package/dist/components/popover/content.d.ts +2 -2
  527. package/dist/components/popover/footer.d.ts +2 -2
  528. package/dist/components/popover/index.d.ts +2 -2
  529. package/dist/components/popover/index.js +1 -1
  530. package/dist/components/popover/index.js.map +1 -1
  531. package/dist/components/popover/styles.module.css +34 -0
  532. package/dist/components/popover/title.d.ts +3 -3
  533. package/dist/components/popover/title.js +1 -1
  534. package/dist/components/popover/title.js.map +1 -1
  535. package/dist/components/popover/trigger.d.ts +2 -2
  536. package/dist/components/popover/trigger.js +3 -3
  537. package/dist/components/popover/trigger.js.map +1 -1
  538. package/dist/components/popover/types.d.ts +1 -1
  539. package/dist/components/query-builder/action-element.d.ts +2 -2
  540. package/dist/components/query-builder/actions.d.ts +4 -4
  541. package/dist/components/query-builder/combinator-selector.d.ts +2 -2
  542. package/dist/components/query-builder/index.d.ts +2 -2
  543. package/dist/components/query-builder/rule-group.d.ts +4 -4
  544. package/dist/components/query-builder/rule.d.ts +2 -2
  545. package/dist/components/query-builder/value-editor.d.ts +2 -2
  546. package/dist/components/query-builder/value-selector.d.ts +2 -2
  547. package/dist/components/query-builder/value-selector.js +1 -1
  548. package/dist/components/radio/context.d.ts +5 -5
  549. package/dist/components/radio/context.js.map +1 -1
  550. package/dist/components/radio/group.d.ts +2 -2
  551. package/dist/components/radio/group.js +5 -3
  552. package/dist/components/radio/group.js.map +1 -1
  553. package/dist/components/radio/index.d.ts +2 -2
  554. package/dist/components/radio/index.js +3 -1
  555. package/dist/components/radio/index.js.map +1 -1
  556. package/dist/components/radio/types.d.ts +3 -3
  557. package/dist/components/search-field/context.d.ts +6 -6
  558. package/dist/components/search-field/context.js.map +1 -1
  559. package/dist/components/search-field/index.d.ts +2 -2
  560. package/dist/components/search-field/index.js +3 -1
  561. package/dist/components/search-field/index.js.map +1 -1
  562. package/dist/components/search-field/types.d.ts +3 -3
  563. package/dist/components/select-field/context.d.ts +5 -5
  564. package/dist/components/select-field/context.js.map +1 -1
  565. package/dist/components/select-field/index.d.ts +2 -2
  566. package/dist/components/select-field/index.js +6 -3
  567. package/dist/components/select-field/index.js.map +1 -1
  568. package/dist/components/select-field/types.d.ts +8 -5
  569. package/dist/components/sidenav/avatar.d.ts +2 -2
  570. package/dist/components/sidenav/avatar.js +3 -1
  571. package/dist/components/sidenav/avatar.js.map +1 -1
  572. package/dist/components/sidenav/content.d.ts +2 -2
  573. package/dist/components/sidenav/content.js +1 -1
  574. package/dist/components/sidenav/content.js.map +1 -1
  575. package/dist/components/sidenav/context.d.ts +2 -2
  576. package/dist/components/sidenav/footer.d.ts +2 -2
  577. package/dist/components/sidenav/header.d.ts +2 -2
  578. package/dist/components/sidenav/header.js +3 -1
  579. package/dist/components/sidenav/header.js.map +1 -1
  580. package/dist/components/sidenav/index.d.ts +2 -2
  581. package/dist/components/sidenav/index.js +2 -1
  582. package/dist/components/sidenav/index.js.map +1 -1
  583. package/dist/components/sidenav/item.d.ts +2 -2
  584. package/dist/components/sidenav/item.js +8 -5
  585. package/dist/components/sidenav/item.js.map +1 -1
  586. package/dist/components/sidenav/link.d.ts +2 -2
  587. package/dist/components/sidenav/link.js +8 -5
  588. package/dist/components/sidenav/link.js.map +1 -1
  589. package/dist/components/sidenav/menu-item.d.ts +2 -2
  590. package/dist/components/sidenav/menu-item.js +2 -1
  591. package/dist/components/sidenav/menu-item.js.map +1 -1
  592. package/dist/components/sidenav/menu.d.ts +2 -2
  593. package/dist/components/sidenav/menu.js +10 -5
  594. package/dist/components/sidenav/menu.js.map +1 -1
  595. package/dist/components/sidenav/styles.module.css +10 -2
  596. package/dist/components/sidenav/trigger.d.ts +2 -2
  597. package/dist/components/sidenav/trigger.js +1 -1
  598. package/dist/components/sidenav/trigger.js.map +1 -1
  599. package/dist/components/sidenav/types.d.ts +6 -1
  600. package/dist/components/skeleton/index.d.ts +2 -2
  601. package/dist/components/slider/index.d.ts +2 -2
  602. package/dist/components/slider/index.js +9 -6
  603. package/dist/components/slider/index.js.map +1 -1
  604. package/dist/components/slider/types.d.ts +1 -1
  605. package/dist/components/status-indicator/index.d.ts +2 -2
  606. package/dist/components/switch/context.d.ts +6 -6
  607. package/dist/components/switch/context.js.map +1 -1
  608. package/dist/components/switch/index.d.ts +2 -2
  609. package/dist/components/switch/index.js +3 -1
  610. package/dist/components/switch/index.js.map +1 -1
  611. package/dist/components/switch/styles.module.css +8 -0
  612. package/dist/components/switch/types.d.ts +1 -1
  613. package/dist/components/table/body.d.ts +2 -2
  614. package/dist/components/table/cell.d.ts +2 -2
  615. package/dist/components/table/context.d.ts +2 -2
  616. package/dist/components/table/header-cell.d.ts +2 -2
  617. package/dist/components/table/header.d.ts +2 -2
  618. package/dist/components/table/index.d.ts +2 -2
  619. package/dist/components/table/index.js +4 -4
  620. package/dist/components/table/index.js.map +1 -1
  621. package/dist/components/table/row.d.ts +2 -2
  622. package/dist/components/tabs/context.d.ts +8 -8
  623. package/dist/components/tabs/context.js.map +1 -1
  624. package/dist/components/tabs/index.d.ts +2 -2
  625. package/dist/components/tabs/index.js +3 -1
  626. package/dist/components/tabs/index.js.map +1 -1
  627. package/dist/components/tabs/list.d.ts +3 -3
  628. package/dist/components/tabs/list.js +2 -1
  629. package/dist/components/tabs/list.js.map +1 -1
  630. package/dist/components/tabs/panel.d.ts +3 -3
  631. package/dist/components/tabs/panel.js +2 -1
  632. package/dist/components/tabs/panel.js.map +1 -1
  633. package/dist/components/tabs/tab.d.ts +2 -2
  634. package/dist/components/tabs/tab.js +3 -1
  635. package/dist/components/tabs/tab.js.map +1 -1
  636. package/dist/components/tabs/types.d.ts +1 -1
  637. package/dist/components/text-area-field/context.d.ts +5 -5
  638. package/dist/components/text-area-field/context.js.map +1 -1
  639. package/dist/components/text-area-field/index.d.ts +2 -2
  640. package/dist/components/text-area-field/index.js +8 -3
  641. package/dist/components/text-area-field/index.js.map +1 -1
  642. package/dist/components/text-area-field/types.d.ts +3 -1
  643. package/dist/components/text-field/context.d.ts +6 -6
  644. package/dist/components/text-field/context.js.map +1 -1
  645. package/dist/components/text-field/index.d.ts +2 -2
  646. package/dist/components/text-field/index.js +9 -5
  647. package/dist/components/text-field/index.js.map +1 -1
  648. package/dist/components/text-field/types.d.ts +7 -6
  649. package/dist/components/time-field/index.d.ts +3 -3
  650. package/dist/components/time-field/index.js +4 -3
  651. package/dist/components/time-field/index.js.map +1 -1
  652. package/dist/components/time-field/types.d.ts +1 -1
  653. package/dist/components/tooltip/context.d.ts +3 -3
  654. package/dist/components/tooltip/context.js.map +1 -1
  655. package/dist/components/tooltip/index.d.ts +2 -2
  656. package/dist/components/tooltip/index.js +3 -2
  657. package/dist/components/tooltip/index.js.map +1 -1
  658. package/dist/components/tooltip/styles.module.css +35 -0
  659. package/dist/components/tooltip/trigger.d.ts +2 -2
  660. package/dist/components/tooltip/trigger.js +6 -3
  661. package/dist/components/tooltip/trigger.js.map +1 -1
  662. package/dist/components/tooltip/types.d.ts +8 -3
  663. package/dist/components/tree/context.d.ts +3 -3
  664. package/dist/components/tree/index.d.ts +4 -2
  665. package/dist/components/tree/index.js +31 -16
  666. package/dist/components/tree/index.js.map +1 -1
  667. package/dist/components/tree/item-actions.d.ts +2 -2
  668. package/dist/components/tree/item-content.d.ts +2 -2
  669. package/dist/components/tree/item-content.js +10 -9
  670. package/dist/components/tree/item-content.js.map +1 -1
  671. package/dist/components/tree/item-description.d.ts +3 -3
  672. package/dist/components/tree/item-description.js +1 -1
  673. package/dist/components/tree/item-description.js.map +1 -1
  674. package/dist/components/tree/item-label.d.ts +3 -3
  675. package/dist/components/tree/item-label.js +1 -1
  676. package/dist/components/tree/item-label.js.map +1 -1
  677. package/dist/components/tree/item-prefix-icon.d.ts +2 -2
  678. package/dist/components/tree/item.d.ts +2 -2
  679. package/dist/components/tree/item.js +14 -7
  680. package/dist/components/tree/item.js.map +1 -1
  681. package/dist/components/tree/lines.d.ts +2 -2
  682. package/dist/components/tree/types.d.ts +30 -15
  683. package/dist/components/video/index.d.ts +2 -2
  684. package/dist/components/view-stack/context.d.ts +2 -2
  685. package/dist/components/view-stack/index.d.ts +2 -2
  686. package/dist/components/view-stack/trigger.d.ts +2 -2
  687. package/dist/components/view-stack/trigger.js +1 -1
  688. package/dist/components/view-stack/trigger.js.map +1 -1
  689. package/dist/components/view-stack/types.d.ts +1 -1
  690. package/dist/components/view-stack/view.d.ts +2 -2
  691. package/dist/hooks/coordinate-field/use-coordinate-field.d.ts +1 -1
  692. package/dist/hooks/coordinate-field/use-coordinate-field.js +1 -1
  693. package/dist/hooks/coordinate-field/use-coordinate-field.js.map +1 -1
  694. package/dist/hooks/use-tree/actions/cache.d.ts +406 -17
  695. package/dist/hooks/use-tree/actions/cache.js +488 -16
  696. package/dist/hooks/use-tree/actions/cache.js.map +1 -1
  697. package/dist/hooks/use-tree/actions/index.d.ts +36 -22
  698. package/dist/hooks/use-tree/actions/index.js +103 -36
  699. package/dist/hooks/use-tree/actions/index.js.map +1 -1
  700. package/dist/hooks/use-tree/state/index.d.ts +25 -2
  701. package/dist/hooks/use-tree/state/index.js +27 -3
  702. package/dist/hooks/use-tree/state/index.js.map +1 -1
  703. package/dist/hooks/use-tree/state/utils.d.ts +28 -0
  704. package/dist/hooks/use-tree/state/utils.js +29 -1
  705. package/dist/hooks/use-tree/state/utils.js.map +1 -1
  706. package/dist/hooks/use-tree/types.d.ts +66 -24
  707. package/dist/index.d.ts +27 -7
  708. package/dist/index.js +27 -10
  709. package/dist/lib/utils.d.ts +1 -1
  710. package/dist/lib/utils.js.map +1 -1
  711. package/dist/providers/portal.d.ts +2 -2
  712. package/dist/providers/portal.js +2 -2
  713. package/dist/providers/portal.js.map +1 -1
  714. package/dist/providers/theme-provider.d.ts +4 -4
  715. package/dist/providers/theme-provider.js +6 -7
  716. package/dist/providers/theme-provider.js.map +1 -1
  717. package/package.json +77 -36
  718. package/dist/node_modules/.pnpm/@react-aria_collections@3.0.0-rc.7_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/collections/dist/BaseCollection.js +0 -134
  719. package/dist/node_modules/.pnpm/@react-aria_collections@3.0.0-rc.7_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@react-aria/collections/dist/BaseCollection.js.map +0 -1
@@ -10,27 +10,34 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import * as react25 from "react";
14
- import { DockviewApi } from "dockview-react";
15
- import { UniqueId } from "@accelint/core/utility/uuid";
13
+ import { FloatingCardContextValue } from "./types.js";
14
+ import * as react13 from "react";
16
15
 
17
16
  //#region src/components/floating-card/context.d.ts
18
- type FloatingCardContextValue = {
19
- cards: Record<UniqueId, HTMLDivElement>;
20
- addRef: (id: UniqueId, ref: HTMLDivElement | null) => void;
21
- removeRef: (view: UniqueId) => void;
22
- closeCard: (id: UniqueId) => void;
23
- api: DockviewApi | null;
24
- };
25
- declare const FloatingCardContext: react25.Context<FloatingCardContextValue | null>;
17
+ declare const FloatingCardContext: react13.Context<FloatingCardContextValue | null>;
26
18
  /**
27
- * Hook to access the floating card context.
28
- * Must be used within a FloatingCardProvider.
19
+ * Hook to access floating card management functionality.
29
20
  *
21
+ * Provides access to card registry, ref management, and programmatic control
22
+ * over opening, closing, and pinning floating cards.
23
+ *
24
+ * @returns Context value with card management methods and state.
30
25
  * @throws {Error} If used outside of a FloatingCardProvider.
31
- * @returns The floating card context value.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * function MyComponent() {
30
+ * const { closeCard, togglePinCard } = useFloatingCard();
31
+ *
32
+ * return (
33
+ * <button onClick={() => closeCard('my-card-id' as UniqueId)}>
34
+ * Close Card
35
+ * </button>
36
+ * );
37
+ * }
38
+ * ```
32
39
  */
33
40
  declare function useFloatingCard(): FloatingCardContextValue;
34
41
  //#endregion
35
- export { FloatingCardContext, FloatingCardContextValue, useFloatingCard };
42
+ export { FloatingCardContext, useFloatingCard };
36
43
  //# sourceMappingURL=context.d.ts.map
@@ -16,11 +16,26 @@ import { createContext, useContext } from "react";
16
16
  //#region src/components/floating-card/context.tsx
17
17
  const FloatingCardContext = createContext(null);
18
18
  /**
19
- * Hook to access the floating card context.
20
- * Must be used within a FloatingCardProvider.
19
+ * Hook to access floating card management functionality.
21
20
  *
21
+ * Provides access to card registry, ref management, and programmatic control
22
+ * over opening, closing, and pinning floating cards.
23
+ *
24
+ * @returns Context value with card management methods and state.
22
25
  * @throws {Error} If used outside of a FloatingCardProvider.
23
- * @returns The floating card context value.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * function MyComponent() {
30
+ * const { closeCard, togglePinCard } = useFloatingCard();
31
+ *
32
+ * return (
33
+ * <button onClick={() => closeCard('my-card-id' as UniqueId)}>
34
+ * Close Card
35
+ * </button>
36
+ * );
37
+ * }
38
+ * ```
24
39
  */
25
40
  function useFloatingCard() {
26
41
  const context = useContext(FloatingCardContext);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/floating-card/context.tsx"],"sourcesContent":["// __private-exports\n/*\n * Copyright 2026 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 { createContext, useContext } from 'react';\nimport type { UniqueId } from '@accelint/core/utility/uuid';\nimport type { DockviewApi } from 'dockview-react';\n\nexport type FloatingCardContextValue = {\n cards: Record<UniqueId, HTMLDivElement>;\n addRef: (id: UniqueId, ref: HTMLDivElement | null) => void;\n removeRef: (view: UniqueId) => void;\n closeCard: (id: UniqueId) => void;\n api: DockviewApi | null;\n};\n\nexport const FloatingCardContext =\n createContext<FloatingCardContextValue | null>(null);\n/**\n * Hook to access the floating card context.\n * Must be used within a FloatingCardProvider.\n *\n * @throws {Error} If used outside of a FloatingCardProvider.\n * @returns The floating card context value.\n */\nexport function useFloatingCard(): FloatingCardContextValue {\n const context = useContext(FloatingCardContext);\n if (!context) {\n throw new Error(\n 'useFloatingCard must be used within a FloatingCardProvider.',\n );\n }\n return context;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,MAAa,sBACX,cAA+C,KAAK;;;;;;;;AAQtD,SAAgB,kBAA4C;CAC1D,MAAM,UAAU,WAAW,oBAAoB;AAC/C,KAAI,CAAC,QACH,OAAM,IAAI,MACR,8DACD;AAEH,QAAO"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/floating-card/context.tsx"],"sourcesContent":["// __private-exports\n/*\n * Copyright 2026 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 { createContext, useContext } from 'react';\nimport type { FloatingCardContextValue } from './types';\n\nexport const FloatingCardContext =\n createContext<FloatingCardContextValue | null>(null);\n/**\n * Hook to access floating card management functionality.\n *\n * Provides access to card registry, ref management, and programmatic control\n * over opening, closing, and pinning floating cards.\n *\n * @returns Context value with card management methods and state.\n * @throws {Error} If used outside of a FloatingCardProvider.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const { closeCard, togglePinCard } = useFloatingCard();\n *\n * return (\n * <button onClick={() => closeCard('my-card-id' as UniqueId)}>\n * Close Card\n * </button>\n * );\n * }\n * ```\n */\nexport function useFloatingCard(): FloatingCardContextValue {\n const context = useContext(FloatingCardContext);\n if (!context) {\n throw new Error(\n 'useFloatingCard must be used within a FloatingCardProvider.',\n );\n }\n return context;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,MAAa,sBACX,cAA+C,KAAK;;;;;;;;;;;;;;;;;;;;;;;AAuBtD,SAAgB,kBAA4C;CAC1D,MAAM,UAAU,WAAW,oBAAoB;AAC/C,KAAI,CAAC,QACH,OAAM,IAAI,MACR,8DACD;AAEH,QAAO"}
@@ -10,33 +10,12 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import * as react18 from "react";
13
+ import { FloatingCardProps } from "./types.js";
14
+ import * as react14 from "react";
14
15
  import { PropsWithChildren } from "react";
15
- import { UniqueId } from "@accelint/core";
16
16
 
17
17
  //#region src/components/floating-card/index.d.ts
18
- type FloatingCardProps = Readonly<{
19
- id: UniqueId;
20
- title?: string;
21
- /**
22
- * Controls whether the floating card is rendered.
23
- *
24
- * When `true`, the card registers with the floating card engine and renders its
25
- * children via a portal. When `false`, the card is closed and removed.
26
- *
27
- * @defaultValue true
28
- */
29
- isOpen?: boolean;
30
- /**
31
- * Initial dimensions of the floating card panel.
32
- *
33
- * @defaultValue { width: 300, height: 400 }
34
- */
35
- initialDimensions?: Readonly<{
36
- width: number;
37
- height: number;
38
- }>;
39
- }>;
18
+
40
19
  /**
41
20
  * Renders its children into a floating card using React portals.
42
21
  *
@@ -47,19 +26,45 @@ type FloatingCardProps = Readonly<{
47
26
  * @param title - Optional title displayed in the floating card header.
48
27
  * @param isOpen - Whether the floating card is rendered. Defaults to `true`.
49
28
  * @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.
29
+ * @param initialPosition - Initial x and y coordinates of the floating card.
50
30
  * @param children - React children to render inside the floating card.
31
+ * @returns The floating card component (portaled content) or null.
51
32
  *
52
33
  * @remarks
53
34
  * - Requires `FloatingCardProvider` as an ancestor.
54
35
  * - The floating card is only rendered if a valid DOM reference exists for the given `id`.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * import { uuid } from '@accelint/core/utility/uuid';
40
+ *
41
+ * const cardId = uuid();
42
+ * const [isOpen, setIsOpen] = useState(true);
43
+ *
44
+ * <FloatingCardProvider>
45
+ * <FloatingCard
46
+ * id={cardId}
47
+ * title="Settings Panel"
48
+ * isOpen={isOpen}
49
+ * initialDimensions={{ width: 400, height: 500 }}
50
+ * >
51
+ * <SettingsForm />
52
+ * </FloatingCard>
53
+ *
54
+ * <button onClick={() => setIsOpen(!isOpen)}>
55
+ * Toggle Panel
56
+ * </button>
57
+ * </FloatingCardProvider>
58
+ * ```
55
59
  */
56
60
  declare function FloatingCard({
57
61
  id,
58
62
  children,
59
63
  title,
60
64
  isOpen,
61
- initialDimensions
62
- }: PropsWithChildren<FloatingCardProps>): react18.ReactPortal | null;
65
+ initialDimensions,
66
+ initialPosition
67
+ }: PropsWithChildren<FloatingCardProps>): react14.ReactPortal | null;
63
68
  //#endregion
64
- export { FloatingCard, FloatingCardProps };
69
+ export { FloatingCard };
65
70
  //# sourceMappingURL=index.d.ts.map
@@ -30,29 +30,57 @@ const defaultDimensions = {
30
30
  * @param title - Optional title displayed in the floating card header.
31
31
  * @param isOpen - Whether the floating card is rendered. Defaults to `true`.
32
32
  * @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.
33
+ * @param initialPosition - Initial x and y coordinates of the floating card.
33
34
  * @param children - React children to render inside the floating card.
35
+ * @returns The floating card component (portaled content) or null.
34
36
  *
35
37
  * @remarks
36
38
  * - Requires `FloatingCardProvider` as an ancestor.
37
39
  * - The floating card is only rendered if a valid DOM reference exists for the given `id`.
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * import { uuid } from '@accelint/core/utility/uuid';
44
+ *
45
+ * const cardId = uuid();
46
+ * const [isOpen, setIsOpen] = useState(true);
47
+ *
48
+ * <FloatingCardProvider>
49
+ * <FloatingCard
50
+ * id={cardId}
51
+ * title="Settings Panel"
52
+ * isOpen={isOpen}
53
+ * initialDimensions={{ width: 400, height: 500 }}
54
+ * >
55
+ * <SettingsForm />
56
+ * </FloatingCard>
57
+ *
58
+ * <button onClick={() => setIsOpen(!isOpen)}>
59
+ * Toggle Panel
60
+ * </button>
61
+ * </FloatingCardProvider>
62
+ * ```
38
63
  */
39
- function FloatingCard({ id, children, title, isOpen = true, initialDimensions }) {
40
- const floatingCardContext = useFloatingCard();
64
+ function FloatingCard({ id, children, title, isOpen = true, initialDimensions, initialPosition }) {
65
+ const { cards, api: floatingCardApi } = useFloatingCard();
41
66
  const { width, height } = initialDimensions ?? defaultDimensions;
67
+ const { x, y } = initialPosition ?? {};
42
68
  useEffect(() => {
43
- if (!floatingCardContext.api) return;
69
+ if (!floatingCardApi) return;
44
70
  if (!isOpen) {
45
- floatingCardContext.api.getPanel(id)?.api.close();
71
+ floatingCardApi.getPanel(id)?.api.close();
46
72
  return;
47
73
  }
48
- if (!floatingCardContext.api.getPanel(id)) {
49
- const panel = floatingCardContext.api.addPanel({
74
+ if (!floatingCardApi.getPanel(id)) {
75
+ const panel = floatingCardApi.addPanel({
50
76
  id,
51
77
  title,
52
78
  component: "default",
53
79
  floating: {
54
80
  width,
55
- height
81
+ height,
82
+ x,
83
+ y
56
84
  }
57
85
  });
58
86
  panel.group.locked = "no-drop-target";
@@ -63,17 +91,19 @@ function FloatingCard({ id, children, title, isOpen = true, initialDimensions })
63
91
  isOpen,
64
92
  width,
65
93
  height,
66
- floatingCardContext.api
94
+ x,
95
+ y,
96
+ floatingCardApi
67
97
  ]);
68
98
  useEffect(() => {
69
- const panel = floatingCardContext.api?.getPanel(id);
99
+ const panel = floatingCardApi?.getPanel(id);
70
100
  if (panel) panel.setTitle(title ?? id);
71
101
  }, [
72
102
  title,
73
- floatingCardContext.api,
103
+ floatingCardApi,
74
104
  id
75
105
  ]);
76
- return isOpen && floatingCardContext.cards[id] ? createPortal(children, floatingCardContext.cards[id]) : null;
106
+ return isOpen && cards[id] ? createPortal(children, cards[id]) : null;
77
107
  }
78
108
 
79
109
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/floating-card/index.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 PropsWithChildren, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useFloatingCard } from './context';\nimport type { UniqueId } from '@accelint/core';\n\nconst defaultDimensions = { width: 300, height: 400 } as const;\n\nexport type FloatingCardProps = Readonly<{\n id: UniqueId;\n title?: string;\n /**\n * Controls whether the floating card is rendered.\n *\n * When `true`, the card registers with the floating card engine and renders its\n * children via a portal. When `false`, the card is closed and removed.\n *\n * @defaultValue true\n */\n isOpen?: boolean;\n /**\n * Initial dimensions of the floating card panel.\n *\n * @defaultValue { width: 300, height: 400 }\n */\n initialDimensions?: Readonly<{ width: number; height: number }>;\n}>;\n\n/**\n * Renders its children into a floating card using React portals.\n *\n * The `FloatingCard` component registers itself with the floating card engine on mount\n * and renders its children into the corresponding DOM node via a portal.\n *\n * @param id - Unique identifier for the floating card.\n * @param title - Optional title displayed in the floating card header.\n * @param isOpen - Whether the floating card is rendered. Defaults to `true`.\n * @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.\n * @param children - React children to render inside the floating card.\n *\n * @remarks\n * - Requires `FloatingCardProvider` as an ancestor.\n * - The floating card is only rendered if a valid DOM reference exists for the given `id`.\n */\nexport function FloatingCard({\n id,\n children,\n title,\n isOpen = true,\n initialDimensions,\n}: PropsWithChildren<FloatingCardProps>) {\n const floatingCardContext = useFloatingCard();\n\n const { width, height } = initialDimensions ?? defaultDimensions;\n\n useEffect(() => {\n // If the API is not available, we cannot register the card. This can happen if Dockview is not fully initialized yet.\n if (!floatingCardContext.api) {\n return;\n }\n if (!isOpen) {\n floatingCardContext.api.getPanel(id)?.api.close();\n return;\n }\n\n if (!floatingCardContext.api.getPanel(id)) {\n const panel = floatingCardContext.api.addPanel({\n id,\n title,\n component: 'default',\n floating: { width, height },\n });\n\n panel.group.locked = 'no-drop-target';\n }\n\n // Cleanup not included here. Cleanup is done at the provider level when the card is removed from the `cards` registry.\n }, [id, title, isOpen, width, height, floatingCardContext.api]);\n\n useEffect(() => {\n const panel = floatingCardContext.api?.getPanel(id);\n if (panel) {\n panel.setTitle(title ?? id);\n }\n }, [title, floatingCardContext.api, id]);\n\n return isOpen && floatingCardContext.cards[id]\n ? createPortal(children, floatingCardContext.cards[id])\n : null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,MAAM,oBAAoB;CAAE,OAAO;CAAK,QAAQ;CAAK;;;;;;;;;;;;;;;;;AAsCrD,SAAgB,aAAa,EAC3B,IACA,UACA,OACA,SAAS,MACT,qBACuC;CACvC,MAAM,sBAAsB,iBAAiB;CAE7C,MAAM,EAAE,OAAO,WAAW,qBAAqB;AAE/C,iBAAgB;AAEd,MAAI,CAAC,oBAAoB,IACvB;AAEF,MAAI,CAAC,QAAQ;AACX,uBAAoB,IAAI,SAAS,GAAG,EAAE,IAAI,OAAO;AACjD;;AAGF,MAAI,CAAC,oBAAoB,IAAI,SAAS,GAAG,EAAE;GACzC,MAAM,QAAQ,oBAAoB,IAAI,SAAS;IAC7C;IACA;IACA,WAAW;IACX,UAAU;KAAE;KAAO;KAAQ;IAC5B,CAAC;AAEF,SAAM,MAAM,SAAS;;IAItB;EAAC;EAAI;EAAO;EAAQ;EAAO;EAAQ,oBAAoB;EAAI,CAAC;AAE/D,iBAAgB;EACd,MAAM,QAAQ,oBAAoB,KAAK,SAAS,GAAG;AACnD,MAAI,MACF,OAAM,SAAS,SAAS,GAAG;IAE5B;EAAC;EAAO,oBAAoB;EAAK;EAAG,CAAC;AAExC,QAAO,UAAU,oBAAoB,MAAM,MACvC,aAAa,UAAU,oBAAoB,MAAM,IAAI,GACrD"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/floating-card/index.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 PropsWithChildren, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useFloatingCard } from './context';\nimport type { FloatingCardProps } from './types';\n\nconst defaultDimensions = { width: 300, height: 400 } as const;\n\n/**\n * Renders its children into a floating card using React portals.\n *\n * The `FloatingCard` component registers itself with the floating card engine on mount\n * and renders its children into the corresponding DOM node via a portal.\n *\n * @param id - Unique identifier for the floating card.\n * @param title - Optional title displayed in the floating card header.\n * @param isOpen - Whether the floating card is rendered. Defaults to `true`.\n * @param initialDimensions - Initial width and height of the floating card. Defaults to `{ width: 300, height: 400 }`.\n * @param initialPosition - Initial x and y coordinates of the floating card.\n * @param children - React children to render inside the floating card.\n * @returns The floating card component (portaled content) or null.\n *\n * @remarks\n * - Requires `FloatingCardProvider` as an ancestor.\n * - The floating card is only rendered if a valid DOM reference exists for the given `id`.\n *\n * @example\n * ```tsx\n * import { uuid } from '@accelint/core/utility/uuid';\n *\n * const cardId = uuid();\n * const [isOpen, setIsOpen] = useState(true);\n *\n * <FloatingCardProvider>\n * <FloatingCard\n * id={cardId}\n * title=\"Settings Panel\"\n * isOpen={isOpen}\n * initialDimensions={{ width: 400, height: 500 }}\n * >\n * <SettingsForm />\n * </FloatingCard>\n *\n * <button onClick={() => setIsOpen(!isOpen)}>\n * Toggle Panel\n * </button>\n * </FloatingCardProvider>\n * ```\n */\nexport function FloatingCard({\n id,\n children,\n title,\n isOpen = true,\n initialDimensions,\n initialPosition,\n}: PropsWithChildren<FloatingCardProps>) {\n const { cards, api: floatingCardApi } = useFloatingCard();\n\n const { width, height } = initialDimensions ?? defaultDimensions;\n const { x, y } = initialPosition ?? {};\n\n // Register card with Dockview API when isOpen changes.\n // Early return if API not ready (Dockview not fully initialized).\n useEffect(() => {\n if (!floatingCardApi) {\n return;\n }\n if (!isOpen) {\n floatingCardApi.getPanel(id)?.api.close();\n return;\n }\n\n if (!floatingCardApi.getPanel(id)) {\n const panel = floatingCardApi.addPanel({\n id,\n title,\n component: 'default',\n floating: { width, height, x, y },\n });\n\n panel.group.locked = 'no-drop-target';\n }\n\n // Cleanup not included here. Cleanup is done at the provider level when the card is removed from the `cards` registry.\n }, [id, title, isOpen, width, height, x, y, floatingCardApi]);\n\n useEffect(() => {\n const panel = floatingCardApi?.getPanel(id);\n if (panel) {\n panel.setTitle(title ?? id);\n }\n }, [title, floatingCardApi, id]);\n\n return isOpen && cards[id] ? createPortal(children, cards[id]) : null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,MAAM,oBAAoB;CAAE,OAAO;CAAK,QAAQ;CAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CrD,SAAgB,aAAa,EAC3B,IACA,UACA,OACA,SAAS,MACT,mBACA,mBACuC;CACvC,MAAM,EAAE,OAAO,KAAK,oBAAoB,iBAAiB;CAEzD,MAAM,EAAE,OAAO,WAAW,qBAAqB;CAC/C,MAAM,EAAE,GAAG,MAAM,mBAAmB,EAAE;AAItC,iBAAgB;AACd,MAAI,CAAC,gBACH;AAEF,MAAI,CAAC,QAAQ;AACX,mBAAgB,SAAS,GAAG,EAAE,IAAI,OAAO;AACzC;;AAGF,MAAI,CAAC,gBAAgB,SAAS,GAAG,EAAE;GACjC,MAAM,QAAQ,gBAAgB,SAAS;IACrC;IACA;IACA,WAAW;IACX,UAAU;KAAE;KAAO;KAAQ;KAAG;KAAG;IAClC,CAAC;AAEF,SAAM,MAAM,SAAS;;IAItB;EAAC;EAAI;EAAO;EAAQ;EAAO;EAAQ;EAAG;EAAG;EAAgB,CAAC;AAE7D,iBAAgB;EACd,MAAM,QAAQ,iBAAiB,SAAS,GAAG;AAC3C,MAAI,MACF,OAAM,SAAS,SAAS,GAAG;IAE5B;EAAC;EAAO;EAAiB;EAAG,CAAC;AAEhC,QAAO,UAAU,MAAM,MAAM,aAAa,UAAU,MAAM,IAAI,GAAG"}
@@ -10,55 +10,53 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { PropsWithChildren, ReactNode } from "react";
14
- import * as react_jsx_runtime69 from "react/jsx-runtime";
13
+ import { FloatingCardProviderProps } from "./types.js";
14
+ import * as react_jsx_runtime50 from "react/jsx-runtime";
15
15
 
16
16
  //#region src/components/floating-card/provider.d.ts
17
- /** A value that is either `T` directly, or a function that receives the active card id and returns `T`. */
18
- type MaybeFactory<T> = T | ((cardId: string) => T);
19
- type FloatingCardProviderProps = Readonly<PropsWithChildren<{
20
- /**
21
- * Optional icon rendered at the very start of the floating card header.
22
- * Can be a `ReactNode` or a function `(cardId: string) => ReactNode`.
23
- */
24
- icon?: MaybeFactory<ReactNode>;
25
- /**
26
- * Optional action buttons rendered in the floating card header before the close button.
27
- * Can include dividers to separate groups of actions.
28
- * Can be an array or a function `(cardId: string) => array` to return
29
- * per-floating card actions.
30
- */
31
- headerActions?: MaybeFactory<({
32
- icon: ReactNode;
33
- onClick: () => void;
34
- } | 'divider')[]>;
35
- className?: string;
36
- }>>;
17
+
37
18
  /**
38
19
  * Provides a context and layout area for floating cards within the application.
39
20
  *
40
- * Wraps its children with floating card context and renders a floating card engine instance
41
- * to manage docking and layout.
21
+ * Wraps children with floating card context and renders a Dockview instance to manage
22
+ * docking, dragging, and layout of floating cards.
42
23
  *
43
24
  * @param props - The props for the FloatingCardProvider component.
44
25
  * @param props.children - Child components rendered inside the floating card provider.
45
- * @param props.icon - Optional icon.
46
- * @param props.headerActions - Optional actions for the header.
26
+ * @param props.icon - Optional icon rendered in all card headers (static or factory).
27
+ * @param props.headerActions - Optional action buttons for card headers (static or factory).
47
28
  * @param props.className - Additional CSS class names for styling.
48
- *
49
29
  * @returns The FloatingCardProvider component that manages floating card layout and context.
50
30
  *
51
31
  * @remarks
52
- * - Manages registration and unregistration of floating card references.
53
- * - Exposes `closeCard` via context for child components.
54
- * - Ensures floating cards are bounded within the viewport.
32
+ * - Manages registration and cleanup of floating card DOM references
33
+ * - Exposes closeCard, togglePinCard, and isPinned via context
34
+ * - Automatically cleans up refs when cards are removed via any path (drag close, group close, API close)
35
+ * - Cards are bounded within the viewport
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * <FloatingCardProvider
40
+ * icon={<AppLogo />}
41
+ * headerActions={[
42
+ * { icon: <SettingsIcon />, onClick: openSettings },
43
+ * 'divider',
44
+ * 'pin'
45
+ * ]}
46
+ * >
47
+ * <FloatingCard id="panel-1" title="My Panel">
48
+ * <div>Panel content</div>
49
+ * </FloatingCard>
50
+ * </FloatingCardProvider>
51
+ * ```
55
52
  */
56
53
  declare function FloatingCardProvider({
57
54
  children,
58
55
  icon,
59
56
  headerActions,
57
+ initialPinned,
60
58
  className
61
- }: FloatingCardProviderProps): react_jsx_runtime69.JSX.Element;
59
+ }: FloatingCardProviderProps): react_jsx_runtime50.JSX.Element;
62
60
  //#endregion
63
- export { FloatingCardProvider, FloatingCardProviderProps };
61
+ export { FloatingCardProvider };
64
62
  //# sourceMappingURL=provider.d.ts.map
@@ -15,30 +15,46 @@ import { Icon } from "../icon/index.js";
15
15
  import { Button } from "../button/index.js";
16
16
  import { Divider } from "../divider/index.js";
17
17
  import { FloatingCardContext, useFloatingCard } from "./context.js";
18
- import { useCallback, useEffect, useMemo, useState } from "react";
18
+ import { createHeaderAdapter } from "./utils.js";
19
+ import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
19
20
  import { clsx } from "@accelint/design-foundation/lib/utils";
20
21
  import { jsx, jsxs } from "react/jsx-runtime";
21
22
  import Cancel from "@accelint/icons/cancel";
23
+ import PinIcon from "@accelint/icons/pin";
22
24
  import { DockviewReact } from "dockview-react";
23
25
  import styles from "./styles.module.css";
24
26
 
25
27
  //#region src/components/floating-card/provider.tsx
26
28
  /**
27
29
  * Internal component that registers a DOM ref for a card container.
28
- * Used by the floating card engine to mount portal targets.
30
+ *
31
+ * Used by the floating card engine to mount portal targets. Also manages
32
+ * the data-pinned attribute on the resize container to control drag handle visibility.
33
+ *
34
+ * @param props - Dockview panel props containing the card ID.
29
35
  */
30
36
  function FloatingCardContainer(props) {
31
- const { addRef } = useFloatingCard();
37
+ const { addRef, isPinned, subscribeToPinState } = useFloatingCard();
38
+ const cardId = props.api.id;
39
+ const pinned = useSyncExternalStore(subscribeToPinState, () => isPinned(cardId), () => false);
40
+ const cardRef = useRef(null);
32
41
  const refCallback = useCallback((ref) => {
33
- addRef(props.api.id, ref);
34
- }, [addRef, props.api.id]);
42
+ cardRef.current = ref;
43
+ addRef(cardId, ref);
44
+ }, [addRef, cardId]);
45
+ useEffect(() => {
46
+ const container = cardRef.current?.closest(".dv-resize-container");
47
+ if (!container) return;
48
+ if (pinned) container.dataset.pinned = "";
49
+ else delete container.dataset.pinned;
50
+ }, [pinned]);
35
51
  return /* @__PURE__ */ jsx("div", {
36
52
  className: styles.cardContent,
37
53
  ref: refCallback
38
54
  });
39
55
  }
40
56
  /**
41
- * Default left header showing an optional custom icon (or a placeholder) and the card's title.
57
+ * Default left header showing an optional custom icon and the card's title.
42
58
  */
43
59
  function DefaultLeftHeader({ title, icon, id }) {
44
60
  return /* @__PURE__ */ jsxs("div", {
@@ -47,19 +63,39 @@ function DefaultLeftHeader({ title, icon, id }) {
47
63
  size: "small",
48
64
  children: icon
49
65
  }) : null, title && title !== id ? /* @__PURE__ */ jsx("div", {
50
- className: styles.headerTitle,
51
- children: title
66
+ className: styles.headerTitleContainer,
67
+ children: /* @__PURE__ */ jsx("div", {
68
+ className: styles.headerTitle,
69
+ children: title
70
+ })
52
71
  }) : null]
53
72
  });
54
73
  }
74
+ /** Stable no-op subscribe for useSyncExternalStore when no pin subscription is available. */
75
+ const noopSubscribe = () => () => void 0;
55
76
  /**
56
77
  * Default right header showing optional action buttons and an always-present close button.
78
+ *
79
+ * @remarks Handles rendering of 'divider' and 'pin' action types specially.
57
80
  */
58
- function DefaultRightHeader({ closeGroup, headerActions, id }) {
81
+ function DefaultRightHeader({ closeGroup, headerActions, id, togglePinCard, isPinned, subscribeToPinState }) {
82
+ const pinned = useSyncExternalStore(subscribeToPinState ?? noopSubscribe, () => id && isPinned ? isPinned(id) : false, () => false);
59
83
  return /* @__PURE__ */ jsxs("div", {
60
84
  className: styles.headerSide,
61
85
  children: [headerActions?.map((action, index) => {
62
86
  if (action === "divider") return /* @__PURE__ */ jsx(Divider, { orientation: "vertical" }, `${id}-divider-${index}`);
87
+ if (action === "pin") return /* @__PURE__ */ jsx(Button, {
88
+ className: styles.pinButton,
89
+ variant: "icon",
90
+ size: "small",
91
+ color: pinned ? "accent" : void 0,
92
+ "aria-label": "Pin",
93
+ "aria-pressed": pinned,
94
+ onClick: () => {
95
+ if (id && togglePinCard) togglePinCard(id);
96
+ },
97
+ children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(PinIcon, {}) })
98
+ }, `${id}-pin-${index}`);
63
99
  return /* @__PURE__ */ jsx(Button, {
64
100
  variant: "icon",
65
101
  size: "small",
@@ -74,67 +110,76 @@ function DefaultRightHeader({ closeGroup, headerActions, id }) {
74
110
  })]
75
111
  });
76
112
  }
77
- /**
78
- * Creates an adapter component to map Dockview's header action props to our custom header component props.
79
- */
80
- function createHeaderAdapter(Component, options) {
81
- function HeaderAdapter(props) {
82
- const panelId = props.panels[0]?.id ?? "";
83
- const [title, setTitle] = useState(props.activePanel?.title);
84
- useEffect(() => {
85
- const panel = props.activePanel;
86
- if (!panel) return;
87
- setTitle(panel.title);
88
- const disposable = panel.api.onDidTitleChange(() => {
89
- setTitle(panel.title);
90
- });
91
- return () => {
92
- disposable.dispose();
93
- };
94
- }, [props.activePanel]);
95
- return /* @__PURE__ */ jsx(Component, {
96
- icon: props.activePanel ? typeof options?.icon === "function" ? options.icon(panelId) : options?.icon : void 0,
97
- headerActions: typeof options?.headerActions === "function" ? options.headerActions(panelId) : options?.headerActions,
98
- title,
99
- id: props.activePanel?.id,
100
- closeGroup: () => props.api.close()
101
- });
102
- }
103
- HeaderAdapter.displayName = `HeaderAdapter(${Component.displayName ?? Component.name ?? "Anonymous"})`;
104
- return HeaderAdapter;
105
- }
106
113
  const components = { default: FloatingCardContainer };
107
114
  /**
108
115
  * Provides a context and layout area for floating cards within the application.
109
116
  *
110
- * Wraps its children with floating card context and renders a floating card engine instance
111
- * to manage docking and layout.
117
+ * Wraps children with floating card context and renders a Dockview instance to manage
118
+ * docking, dragging, and layout of floating cards.
112
119
  *
113
120
  * @param props - The props for the FloatingCardProvider component.
114
121
  * @param props.children - Child components rendered inside the floating card provider.
115
- * @param props.icon - Optional icon.
116
- * @param props.headerActions - Optional actions for the header.
122
+ * @param props.icon - Optional icon rendered in all card headers (static or factory).
123
+ * @param props.headerActions - Optional action buttons for card headers (static or factory).
117
124
  * @param props.className - Additional CSS class names for styling.
118
- *
119
125
  * @returns The FloatingCardProvider component that manages floating card layout and context.
120
126
  *
121
127
  * @remarks
122
- * - Manages registration and unregistration of floating card references.
123
- * - Exposes `closeCard` via context for child components.
124
- * - Ensures floating cards are bounded within the viewport.
128
+ * - Manages registration and cleanup of floating card DOM references
129
+ * - Exposes closeCard, togglePinCard, and isPinned via context
130
+ * - Automatically cleans up refs when cards are removed via any path (drag close, group close, API close)
131
+ * - Cards are bounded within the viewport
132
+ *
133
+ * @example
134
+ * ```tsx
135
+ * <FloatingCardProvider
136
+ * icon={<AppLogo />}
137
+ * headerActions={[
138
+ * { icon: <SettingsIcon />, onClick: openSettings },
139
+ * 'divider',
140
+ * 'pin'
141
+ * ]}
142
+ * >
143
+ * <FloatingCard id="panel-1" title="My Panel">
144
+ * <div>Panel content</div>
145
+ * </FloatingCard>
146
+ * </FloatingCardProvider>
147
+ * ```
125
148
  */
126
- function FloatingCardProvider({ children, icon, headerActions, className }) {
149
+ function FloatingCardProvider({ children, icon, headerActions, initialPinned, className }) {
127
150
  const [api, setApi] = useState(null);
128
151
  const [cards, setCards] = useState({});
152
+ const pinnedCardsRef = useRef(new Set(initialPinned));
153
+ const pinListenersRef = useRef(/* @__PURE__ */ new Set());
129
154
  const closeCard = useCallback((id) => {
130
155
  api?.getPanel(id)?.api.close();
131
156
  }, [api]);
157
+ const togglePinCard = useCallback((id) => {
158
+ const next = new Set(pinnedCardsRef.current);
159
+ if (next.has(id)) next.delete(id);
160
+ else next.add(id);
161
+ pinnedCardsRef.current = next;
162
+ for (const listener of pinListenersRef.current) listener();
163
+ }, []);
164
+ const isPinned = useCallback((id) => pinnedCardsRef.current.has(id), []);
165
+ const subscribeToPinState = useCallback((callback) => {
166
+ pinListenersRef.current.add(callback);
167
+ return () => {
168
+ pinListenersRef.current.delete(callback);
169
+ };
170
+ }, []);
132
171
  const removeRef = useCallback((view) => {
133
172
  setCards((prev) => {
134
173
  const newCards = { ...prev };
135
174
  delete newCards[view];
136
175
  return newCards;
137
176
  });
177
+ if (pinnedCardsRef.current.has(view)) {
178
+ const next = new Set(pinnedCardsRef.current);
179
+ next.delete(view);
180
+ pinnedCardsRef.current = next;
181
+ for (const listener of pinListenersRef.current) listener();
182
+ }
138
183
  }, []);
139
184
  const addRef = useCallback((id, ref) => {
140
185
  if (ref) setCards((prev) => {
@@ -159,16 +204,32 @@ function FloatingCardProvider({ children, icon, headerActions, className }) {
159
204
  addRef,
160
205
  removeRef,
161
206
  closeCard,
207
+ togglePinCard,
208
+ isPinned,
209
+ subscribeToPinState,
162
210
  api
163
211
  }), [
164
212
  cards,
165
213
  closeCard,
166
214
  removeRef,
167
215
  api,
168
- addRef
216
+ addRef,
217
+ togglePinCard,
218
+ isPinned,
219
+ subscribeToPinState
169
220
  ]);
170
221
  const leftAdapter = useMemo(() => createHeaderAdapter(DefaultLeftHeader, { icon }), [icon]);
171
- const rightAdapter = useMemo(() => createHeaderAdapter(DefaultRightHeader, { headerActions }), [headerActions]);
222
+ const rightAdapter = useMemo(() => createHeaderAdapter(DefaultRightHeader, {
223
+ headerActions,
224
+ togglePinCard,
225
+ isPinned,
226
+ subscribeToPinState
227
+ }), [
228
+ headerActions,
229
+ togglePinCard,
230
+ isPinned,
231
+ subscribeToPinState
232
+ ]);
172
233
  const theme = useMemo(() => ({
173
234
  name: "accelint",
174
235
  className: styles.floatingCardProvider ?? ""