@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
@@ -12,9 +12,9 @@
12
12
 
13
13
  import { ProviderProps } from "../../lib/types.js";
14
14
  import { CoordinateFieldProps, CoordinateFieldState } from "./types.js";
15
- import * as react15 from "react";
16
- import { ContextValue } from "react-aria-components";
17
- import * as react_jsx_runtime49 from "react/jsx-runtime";
15
+ import * as react1 from "react";
16
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
17
+ import { ContextValue } from "react-aria-components/slots";
18
18
 
19
19
  //#region src/components/coordinate-field/context.d.ts
20
20
 
@@ -48,7 +48,7 @@ import * as react_jsx_runtime49 from "react/jsx-runtime";
48
48
  *
49
49
  * @see CoordinateFieldStateContext for internal runtime state
50
50
  */
51
- declare const CoordinateFieldContext: react15.Context<ContextValue<CoordinateFieldProps, HTMLDivElement>>;
51
+ declare const CoordinateFieldContext: react1.Context<ContextValue<CoordinateFieldProps, HTMLDivElement>>;
52
52
  /**
53
53
  * State Context for CoordinateField component.
54
54
  *
@@ -66,7 +66,7 @@ declare const CoordinateFieldContext: react15.Context<ContextValue<CoordinateFie
66
66
  * const state = useCoordinateFieldStateContext();
67
67
  * const { segmentValues, isDisabled, registerTimeout } = state;
68
68
  */
69
- declare const CoordinateFieldStateContext: react15.Context<CoordinateFieldState | null>;
69
+ declare const CoordinateFieldStateContext: react1.Context<CoordinateFieldState | null>;
70
70
  /**
71
71
  * Provider component for CoordinateField context
72
72
  * Wraps children with CoordinateFieldContext
@@ -78,7 +78,7 @@ declare const CoordinateFieldStateContext: react15.Context<CoordinateFieldState
78
78
  declare function CoordinateFieldProvider({
79
79
  children,
80
80
  ...props
81
- }: ProviderProps<CoordinateFieldProps>): react_jsx_runtime49.JSX.Element;
81
+ }: ProviderProps<CoordinateFieldProps>): react_jsx_runtime11.JSX.Element;
82
82
  /**
83
83
  * Provider component for CoordinateField state context
84
84
  * Wraps children with CoordinateFieldStateContext
@@ -94,7 +94,7 @@ declare function CoordinateFieldStateProvider({
94
94
  }: {
95
95
  children: React.ReactNode;
96
96
  value: CoordinateFieldState;
97
- }): react_jsx_runtime49.JSX.Element;
97
+ }): react_jsx_runtime11.JSX.Element;
98
98
  /**
99
99
  * Hook to access CoordinateField state context
100
100
  * Must be used within a CoordinateField component
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/coordinate-field/context.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\n'use client';\n\nimport { createContext, useContext } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport type { ProviderProps } from '@/lib/types';\nimport type { CoordinateFieldProps, CoordinateFieldState } from './types';\n\n/**\n * CoordinateField Context Architecture\n *\n * This file defines two separate contexts following the React Aria component pattern:\n *\n * 1. CoordinateFieldContext (Props Context):\n * - Contains user-provided props for the component\n * - Used for React Aria's context-based prop merging\n * - Part of the public composition API\n *\n * 2. CoordinateFieldStateContext (State Context):\n * - Contains derived/computed runtime state\n * - Used to share state with child components (e.g., CoordinateSegment)\n * - Primarily for internal use\n\n * Separation keeps the public API (props) distinct from internal\n * implementation details (state), improving maintainability and composition.\n */\n\n/**\n * Props Context for CoordinateField component.\n *\n * Contains user-provided props (label, format, size, value, onChange, etc.)\n * and is used by React Aria's useContextProps hook for context-based prop merging.\n * This enables parent components to provide default props to nested CoordinateField\n * components, supporting composition patterns.\n *\n * Part of the public API - external consumers can use this for component composition.\n *\n * @see CoordinateFieldStateContext for internal runtime state\n */\nexport const CoordinateFieldContext =\n createContext<ContextValue<CoordinateFieldProps, HTMLDivElement>>(null);\n\n/**\n * State Context for CoordinateField component.\n *\n * Contains derived/computed runtime state (segmentValues, currentValue,\n * validationErrors, registerTimeout, etc.) that is shared with child components\n * like CoordinateSegment. This avoids prop drilling for deeply nested children.\n *\n * This follows the React Aria pattern of separating props context (public API)\n * from state context (internal implementation). While exported for composition\n * scenarios and testing, this is primarily for internal use.\n *\n * @see CoordinateFieldContext for user-provided props\n * @example\n * // Used internally by child components\n * const state = useCoordinateFieldStateContext();\n * const { segmentValues, isDisabled, registerTimeout } = state;\n */\nexport const CoordinateFieldStateContext =\n createContext<CoordinateFieldState | null>(null);\n\n/**\n * Provider component for CoordinateField context\n * Wraps children with CoordinateFieldContext\n *\n * @param props - The provider props.\n * @param props.children - Child components that will receive the coordinate field context.\n * @returns The coordinate field context provider wrapping children.\n */\nexport function CoordinateFieldProvider({\n children,\n ...props\n}: ProviderProps<CoordinateFieldProps>) {\n return (\n <CoordinateFieldContext.Provider value={props}>\n {children}\n </CoordinateFieldContext.Provider>\n );\n}\n\n/**\n * Provider component for CoordinateField state context\n * Wraps children with CoordinateFieldStateContext\n *\n * @param props - The provider props.\n * @param props.children - Child components that will receive the state context.\n * @param props.value - The coordinate field state to provide.\n * @returns The coordinate field state context provider wrapping children.\n */\nexport function CoordinateFieldStateProvider({\n children,\n value,\n}: {\n children: React.ReactNode;\n value: CoordinateFieldState;\n}) {\n return (\n <CoordinateFieldStateContext.Provider value={value}>\n {children}\n </CoordinateFieldStateContext.Provider>\n );\n}\n\n/**\n * Hook to access CoordinateField state context\n * Must be used within a CoordinateField component\n * @throws {Error} If used outside of CoordinateField\n * @returns {CoordinateFieldState} The coordinate field state\n */\nexport const useCoordinateFieldStateContext = () => {\n const context = useContext(CoordinateFieldStateContext);\n if (!context) {\n throw new Error(\n 'useCoordinateFieldStateContext must be used within CoordinateField',\n );\n }\n return context;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,MAAa,yBACX,cAAkE,KAAK;;;;;;;;;;;;;;;;;;AAmBzE,MAAa,8BACX,cAA2C,KAAK;;;;;;;;;AAUlD,SAAgB,wBAAwB,EACtC,UACA,GAAG,SACmC;AACtC,QACE,oBAAC,uBAAuB;EAAS,OAAO;EACrC;GAC+B;;;;;;;;;;;AAatC,SAAgB,6BAA6B,EAC3C,UACA,SAIC;AACD,QACE,oBAAC,4BAA4B;EAAgB;EAC1C;GACoC;;;;;;;;AAU3C,MAAa,uCAAuC;CAClD,MAAM,UAAU,WAAW,4BAA4B;AACvD,KAAI,CAAC,QACH,OAAM,IAAI,MACR,qEACD;AAEH,QAAO"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/coordinate-field/context.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\n'use client';\n\nimport { createContext, useContext } from 'react';\nimport type { ContextValue } from 'react-aria-components/slots';\nimport type { ProviderProps } from '@/lib/types';\nimport type { CoordinateFieldProps, CoordinateFieldState } from './types';\n\n/**\n * CoordinateField Context Architecture\n *\n * This file defines two separate contexts following the React Aria component pattern:\n *\n * 1. CoordinateFieldContext (Props Context):\n * - Contains user-provided props for the component\n * - Used for React Aria's context-based prop merging\n * - Part of the public composition API\n *\n * 2. CoordinateFieldStateContext (State Context):\n * - Contains derived/computed runtime state\n * - Used to share state with child components (e.g., CoordinateSegment)\n * - Primarily for internal use\n\n * Separation keeps the public API (props) distinct from internal\n * implementation details (state), improving maintainability and composition.\n */\n\n/**\n * Props Context for CoordinateField component.\n *\n * Contains user-provided props (label, format, size, value, onChange, etc.)\n * and is used by React Aria's useContextProps hook for context-based prop merging.\n * This enables parent components to provide default props to nested CoordinateField\n * components, supporting composition patterns.\n *\n * Part of the public API - external consumers can use this for component composition.\n *\n * @see CoordinateFieldStateContext for internal runtime state\n */\nexport const CoordinateFieldContext =\n createContext<ContextValue<CoordinateFieldProps, HTMLDivElement>>(null);\n\n/**\n * State Context for CoordinateField component.\n *\n * Contains derived/computed runtime state (segmentValues, currentValue,\n * validationErrors, registerTimeout, etc.) that is shared with child components\n * like CoordinateSegment. This avoids prop drilling for deeply nested children.\n *\n * This follows the React Aria pattern of separating props context (public API)\n * from state context (internal implementation). While exported for composition\n * scenarios and testing, this is primarily for internal use.\n *\n * @see CoordinateFieldContext for user-provided props\n * @example\n * // Used internally by child components\n * const state = useCoordinateFieldStateContext();\n * const { segmentValues, isDisabled, registerTimeout } = state;\n */\nexport const CoordinateFieldStateContext =\n createContext<CoordinateFieldState | null>(null);\n\n/**\n * Provider component for CoordinateField context\n * Wraps children with CoordinateFieldContext\n *\n * @param props - The provider props.\n * @param props.children - Child components that will receive the coordinate field context.\n * @returns The coordinate field context provider wrapping children.\n */\nexport function CoordinateFieldProvider({\n children,\n ...props\n}: ProviderProps<CoordinateFieldProps>) {\n return (\n <CoordinateFieldContext.Provider value={props}>\n {children}\n </CoordinateFieldContext.Provider>\n );\n}\n\n/**\n * Provider component for CoordinateField state context\n * Wraps children with CoordinateFieldStateContext\n *\n * @param props - The provider props.\n * @param props.children - Child components that will receive the state context.\n * @param props.value - The coordinate field state to provide.\n * @returns The coordinate field state context provider wrapping children.\n */\nexport function CoordinateFieldStateProvider({\n children,\n value,\n}: {\n children: React.ReactNode;\n value: CoordinateFieldState;\n}) {\n return (\n <CoordinateFieldStateContext.Provider value={value}>\n {children}\n </CoordinateFieldStateContext.Provider>\n );\n}\n\n/**\n * Hook to access CoordinateField state context\n * Must be used within a CoordinateField component\n * @throws {Error} If used outside of CoordinateField\n * @returns {CoordinateFieldState} The coordinate field state\n */\nexport const useCoordinateFieldStateContext = () => {\n const context = useContext(CoordinateFieldStateContext);\n if (!context) {\n throw new Error(\n 'useCoordinateFieldStateContext must be used within CoordinateField',\n );\n }\n return context;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,MAAa,yBACX,cAAkE,KAAK;;;;;;;;;;;;;;;;;;AAmBzE,MAAa,8BACX,cAA2C,KAAK;;;;;;;;;AAUlD,SAAgB,wBAAwB,EACtC,UACA,GAAG,SACmC;AACtC,QACE,oBAAC,uBAAuB;EAAS,OAAO;EACrC;GAC+B;;;;;;;;;;;AAatC,SAAgB,6BAA6B,EAC3C,UACA,SAIC;AACD,QACE,oBAAC,4BAA4B;EAAgB;EAC1C;GACoC;;;;;;;;AAU3C,MAAa,uCAAuC;CAClD,MAAM,UAAU,WAAW,4BAA4B;AACvD,KAAI,CAAC,QACH,OAAM,IAAI,MACR,qEACD;AAEH,QAAO"}
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { CoordinateFieldProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime0 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
16
16
 
17
17
  //#region src/components/coordinate-field/index.d.ts
18
18
 
@@ -104,7 +104,7 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
104
104
  declare function CoordinateField({
105
105
  ref,
106
106
  ...props
107
- }: CoordinateFieldProps): react_jsx_runtime0.JSX.Element;
107
+ }: CoordinateFieldProps): react_jsx_runtime22.JSX.Element;
108
108
  //#endregion
109
109
  export { CoordinateField };
110
110
  //# sourceMappingURL=index.d.ts.map
@@ -14,36 +14,41 @@
14
14
  'use client';
15
15
 
16
16
  import { Icon } from "../icon/index.js";
17
- import { Button as Button$1 } from "../button/index.js";
17
+ import { Button } from "../button/index.js";
18
18
  import { Label as Label$1 } from "../label/index.js";
19
19
  import { CoordinateFieldContext, CoordinateFieldStateContext } from "./context.js";
20
20
  import { COORDINATE_FORMAT_LABELS, COORDINATE_FORMAT_NAMES, COORDINATE_SYSTEMS } from "./types.js";
21
21
  import { getAllCoordinateFormats } from "./coordinate-utils.js";
22
22
  import { GROUP_SEPARATOR, getSegmentLabel } from "./segment-configs.js";
23
23
  import { useCoordinateField } from "../../hooks/coordinate-field/use-coordinate-field.js";
24
- import { Dialog as Dialog$1 } from "../dialog/index.js";
24
+ import { Dialog } from "../dialog/index.js";
25
25
  import { DialogContent } from "../dialog/content.js";
26
26
  import { DialogFooter } from "../dialog/footer.js";
27
27
  import { DialogTitle } from "../dialog/title.js";
28
- import { DialogTrigger as DialogTrigger$1 } from "../dialog/trigger.js";
29
- import { Popover as Popover$1 } from "../popover/index.js";
28
+ import { DialogTrigger } from "../dialog/trigger.js";
29
+ import { Popover } from "../popover/index.js";
30
30
  import { PopoverContent } from "../popover/content.js";
31
31
  import { PopoverTitle } from "../popover/title.js";
32
- import { Radio as Radio$1 } from "../radio/index.js";
33
- import { RadioGroup as RadioGroup$1 } from "../radio/group.js";
34
- import { Tooltip as Tooltip$1 } from "../tooltip/index.js";
35
- import { TooltipTrigger as TooltipTrigger$1 } from "../tooltip/trigger.js";
32
+ import { Radio } from "../radio/index.js";
33
+ import { RadioGroup } from "../radio/group.js";
34
+ import { Tooltip } from "../tooltip/index.js";
35
+ import { TooltipTrigger } from "../tooltip/trigger.js";
36
36
  import { CoordinateSegment } from "./segment.js";
37
37
  import { calculateMinControlWidth } from "./width-utils.js";
38
38
  import "client-only";
39
39
  import { useCallback, useMemo, useState } from "react";
40
40
  import { clsx } from "@accelint/design-foundation/lib/utils";
41
- import { FieldError, FieldErrorContext, GroupContext, LabelContext, Provider, Text, TextContext, composeRenderProps, useContextProps } from "react-aria-components";
41
+ import { composeRenderProps } from "react-aria-components/composeRenderProps";
42
42
  import { jsx, jsxs } from "react/jsx-runtime";
43
+ import { Provider, useContextProps } from "react-aria-components/slots";
44
+ import { Text, TextContext } from "react-aria-components/Text";
45
+ import { LabelContext } from "react-aria-components/Label";
43
46
  import Check from "@accelint/icons/check";
44
- import { filterDOMProps } from "@react-aria/utils";
45
47
  import CopyToClipboard from "@accelint/icons/copy-to-clipboard";
46
48
  import GlobalShare from "@accelint/icons/global-share";
49
+ import { filterDOMProps } from "react-aria/filterDOMProps";
50
+ import { FieldError, FieldErrorContext } from "react-aria-components/FieldError";
51
+ import { GroupContext } from "react-aria-components/Group";
47
52
  import styles from "./styles.module.css";
48
53
 
49
54
  //#region src/components/coordinate-field/index.tsx
@@ -239,11 +244,11 @@ function CoordinateField({ ref, ...props }) {
239
244
  className: clsx(styles.segmentGroup, styles[variant]),
240
245
  children: group
241
246
  }, `${format}-group-${groupIndex}`))
242
- }), showFormatButton && /* @__PURE__ */ jsxs(TooltipTrigger$1, {
247
+ }), showFormatButton && /* @__PURE__ */ jsxs(TooltipTrigger, {
243
248
  isDisabled: isPopoverOpen,
244
- children: [/* @__PURE__ */ jsxs(DialogTrigger$1, {
249
+ children: [/* @__PURE__ */ jsxs(DialogTrigger, {
245
250
  onOpenChange: handlePopoverOpenChange,
246
- children: [/* @__PURE__ */ jsx(Button$1, {
251
+ children: [/* @__PURE__ */ jsx(Button, {
247
252
  variant: "icon",
248
253
  size: "small",
249
254
  color: "mono-bold",
@@ -251,7 +256,7 @@ function CoordinateField({ ref, ...props }) {
251
256
  "aria-label": "View coordinate in all formats",
252
257
  isDisabled: !copy.isFormatButtonEnabled,
253
258
  children: /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(GlobalShare, {}) })
254
- }), /* @__PURE__ */ jsxs(Popover$1, {
259
+ }), /* @__PURE__ */ jsxs(Popover, {
255
260
  classNames: { popover: styles.popover },
256
261
  children: [/* @__PURE__ */ jsx(PopoverTitle, {
257
262
  className: styles.popoverTitle,
@@ -271,7 +276,7 @@ function CoordinateField({ ref, ...props }) {
271
276
  title: formatResult.value,
272
277
  children: formatResult.value
273
278
  })]
274
- }), /* @__PURE__ */ jsx(Button$1, {
279
+ }), /* @__PURE__ */ jsx(Button, {
275
280
  variant: "icon",
276
281
  color: "mono-bold",
277
282
  "aria-label": `Copy ${COORDINATE_FORMAT_LABELS[formatKey]} format`,
@@ -282,7 +287,7 @@ function CoordinateField({ ref, ...props }) {
282
287
  }, formatKey);
283
288
  }) })]
284
289
  })]
285
- }), /* @__PURE__ */ jsx(Tooltip$1, { children: formatButtonTooltip })]
290
+ }), /* @__PURE__ */ jsx(Tooltip, { children: formatButtonTooltip })]
286
291
  })]
287
292
  }),
288
293
  descriptionProp && !isSmall && (!isInvalid || isDisabled) && /* @__PURE__ */ jsx(Text, {
@@ -294,13 +299,13 @@ function CoordinateField({ ref, ...props }) {
294
299
  className: composeRenderProps(classNames?.error, (className) => clsx(styles.error, className)),
295
300
  children: effectiveErrorMessage
296
301
  }),
297
- /* @__PURE__ */ jsxs(DialogTrigger$1, {
302
+ /* @__PURE__ */ jsxs(DialogTrigger, {
298
303
  isOpen: paste.showDisambiguationModal,
299
304
  onOpenChange: paste.setShowDisambiguationModal,
300
- children: [/* @__PURE__ */ jsx(Button$1, {
305
+ children: [/* @__PURE__ */ jsx(Button, {
301
306
  className: styles.hiddenTrigger,
302
307
  children: "Hidden Trigger"
303
- }), /* @__PURE__ */ jsxs(Dialog$1, {
308
+ }), /* @__PURE__ */ jsxs(Dialog, {
304
309
  size: "small",
305
310
  children: [
306
311
  /* @__PURE__ */ jsx(DialogTitle, {
@@ -310,11 +315,11 @@ function CoordinateField({ ref, ...props }) {
310
315
  /* @__PURE__ */ jsxs(DialogContent, { children: [/* @__PURE__ */ jsx("p", {
311
316
  className: styles.modalDescription,
312
317
  children: "The pasted value matches multiple coordinate formats. Please select the correct interpretation:"
313
- }), /* @__PURE__ */ jsx(RadioGroup$1, {
318
+ }), /* @__PURE__ */ jsx(RadioGroup, {
314
319
  classNames: { group: styles.formatOptions },
315
320
  value: paste.selectedDisambiguationFormat,
316
321
  onChange: (value) => paste.setSelectedDisambiguationFormat(value),
317
- children: paste.disambiguationMatches.map((match) => /* @__PURE__ */ jsx(Radio$1, {
322
+ children: paste.disambiguationMatches.map((match) => /* @__PURE__ */ jsx(Radio, {
318
323
  value: match.format,
319
324
  children: /* @__PURE__ */ jsxs("div", {
320
325
  className: styles.modalOptionContent,
@@ -330,11 +335,11 @@ function CoordinateField({ ref, ...props }) {
330
335
  })] }),
331
336
  /* @__PURE__ */ jsxs(DialogFooter, {
332
337
  className: styles.modalActions,
333
- children: [/* @__PURE__ */ jsx(Button$1, {
338
+ children: [/* @__PURE__ */ jsx(Button, {
334
339
  variant: "flat",
335
340
  onPress: () => paste.setShowDisambiguationModal(false),
336
341
  children: "Cancel"
337
- }), /* @__PURE__ */ jsx(Button$1, {
342
+ }), /* @__PURE__ */ jsx(Button, {
338
343
  onPress: paste.handleDisambiguationSelect,
339
344
  children: "Apply Selected"
340
345
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Label","TooltipTrigger","DialogTrigger","Button","Popover","Tooltip","AriaText","Dialog","RadioGroup","Radio"],"sources":["../../../src/components/coordinate-field/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\n'use client';\n\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport Check from '@accelint/icons/check';\nimport CopyToClipboard from '@accelint/icons/copy-to-clipboard';\nimport GlobalShare from '@accelint/icons/global-share';\nimport { filterDOMProps } from '@react-aria/utils';\nimport 'client-only';\nimport {\n type CSSProperties,\n type ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport {\n Text as AriaText,\n composeRenderProps,\n FieldError,\n FieldErrorContext,\n GroupContext,\n LabelContext,\n Provider,\n TextContext,\n useContextProps,\n} from 'react-aria-components';\nimport { useCoordinateField } from '../../hooks/coordinate-field';\nimport { Button } from '../button';\nimport { Dialog } from '../dialog';\nimport { DialogContent } from '../dialog/content';\nimport { DialogFooter } from '../dialog/footer';\nimport { DialogTitle } from '../dialog/title';\nimport { DialogTrigger } from '../dialog/trigger';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Popover } from '../popover';\nimport { PopoverContent } from '../popover/content';\nimport { PopoverTitle } from '../popover/title';\nimport { Radio } from '../radio';\nimport { RadioGroup } from '../radio/group';\nimport { Tooltip } from '../tooltip';\nimport { TooltipTrigger } from '../tooltip/trigger';\nimport { CoordinateFieldContext, CoordinateFieldStateContext } from './context';\nimport {\n type CoordinateFormatResult,\n getAllCoordinateFormats,\n} from './coordinate-utils';\nimport { CoordinateSegment } from './segment';\nimport { GROUP_SEPARATOR, getSegmentLabel } from './segment-configs';\nimport styles from './styles.module.css';\nimport {\n COORDINATE_FORMAT_LABELS,\n COORDINATE_FORMAT_NAMES,\n COORDINATE_SYSTEMS,\n type CoordinateSystem,\n} from './types';\nimport { calculateMinControlWidth } from './width-utils';\nimport type { CoordinateFieldProps } from './types';\n\n/**\n * CoordinateField - A comprehensive coordinate input component with multiple format support\n *\n * Provides accessible coordinate input functionality with support for multiple coordinate\n * systems (DD, DDM, DMS, MGRS, UTM). All values are normalized to Decimal Degrees internally\n * for consistency.\n *\n * @param props - The coordinate field props.\n * @param props.ref - Reference to the coordinate field element.\n * @param props.classNames - Custom class names for sub-elements.\n * @param props.description - Description text displayed below the field.\n * @param props.label - Label text for the coordinate field.\n * @param props.format - Coordinate format to use (dd, ddm, dms, mgrs, utm).\n * @param props.size - Size variant of the field.\n * @param props.variant - Layout variant (inline or stacked).\n * @param props.showFormatButton - Whether to show the format conversion button.\n * @param props.isDisabled - Whether the field is disabled.\n * @param props.isInvalid - Whether the field is in an invalid state.\n * @param props.isRequired - Whether the field is required.\n * @param props.isReadOnly - Whether the field is read-only.\n * @returns The coordinate field component.\n *\n * @example\n * ```tsx\n * // Basic coordinate field\n * <CoordinateField label=\"Location\" />\n * ```\n *\n * @example\n * ```tsx\n * // Coordinate field with validation\n * <CoordinateField\n * label=\"Target Coordinates\"\n * isRequired\n * isInvalid={hasError}\n * errorMessage=\"Please enter a valid coordinate\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Coordinate field with specific format\n * <CoordinateField\n * label=\"Position\"\n * format=\"dms\"\n * description=\"Enter coordinates in Degrees Minutes Seconds format\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Compact coordinate field\n * <CoordinateField\n * label=\"Coordinates\"\n * size=\"small\"\n * format=\"dd\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Controlled coordinate field\n * <CoordinateField\n * label=\"Selected Location\"\n * value={coordinates}\n * onChange={setCoordinates}\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Coordinate field with error handling\n * <CoordinateField\n * label=\"Target Coordinates\"\n * onError={(message, context) => {\n * // message will be \"Invalid coordinate value\" for validation errors\n * // or \"Invalid coordinate format\" for paste errors\n * setErrorMessage(message);\n * console.error(message, context);\n * }}\n * isInvalid={!!errorMessage}\n * errorMessage={errorMessage}\n * />\n * ```\n */\nexport function CoordinateField({ ref, ...props }: CoordinateFieldProps) {\n [props, ref] = useContextProps(props, ref, CoordinateFieldContext);\n\n const {\n classNames,\n description: descriptionProp,\n label: labelProp,\n format = 'dd',\n size = 'medium',\n variant = 'inline',\n showFormatButton = true,\n formatButtonTooltip = 'View/copy other formats',\n isDisabled = false,\n isInvalid: isInvalidProp = false,\n isRequired = false,\n isReadOnly = false,\n ...rest\n } = props;\n\n const isSmall = size === 'small';\n\n const DOMProps = filterDOMProps(rest, { global: true });\n\n // When size is small and label is hidden, use aria-label instead of aria-labelledby\n // to ensure screen readers have an accessible name\n const ariaLabelForSmallSize =\n isSmall && labelProp ? labelProp : rest['aria-label'];\n\n const {\n state,\n focus,\n paste,\n copy,\n registerTimeout,\n fieldProps,\n labelProps,\n descriptionProps,\n errorProps,\n validation,\n effectiveErrorMessage,\n isInvalid,\n } = useCoordinateField(\n props,\n ariaLabelForSmallSize,\n rest['aria-describedby'],\n rest['aria-details'],\n );\n\n const componentState = {\n segmentValues: state.segmentValues,\n format,\n currentValue: state.currentValue,\n validationErrors: state.validationErrors,\n isDisabled,\n isInvalid,\n isRequired,\n size,\n variant,\n registerTimeout,\n };\n\n // Store all coordinate formats, calculated only when popover opens\n const [allCoordinateFormats, setAllCoordinateFormats] = useState<Record<\n CoordinateSystem,\n CoordinateFormatResult\n > | null>(null);\n\n // Track popover open state so tooltip hides when popover is open\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const handlePopoverOpenChange = useCallback(\n (isOpen: boolean) => {\n setIsPopoverOpen(isOpen);\n if (isOpen) {\n setAllCoordinateFormats(getAllCoordinateFormats(state.currentValue));\n }\n },\n [state.currentValue],\n );\n\n // Calculate the minimum width needed for the control container\n // This keeps the outlined container at a fixed width while segments animate\n const minControlWidth = useMemo(\n () =>\n calculateMinControlWidth(\n state.editableSegmentConfigs,\n state.segmentConfigs,\n showFormatButton,\n ),\n [state.editableSegmentConfigs, state.segmentConfigs, showFormatButton],\n );\n\n return (\n <Provider\n values={[\n [CoordinateFieldContext, props],\n [CoordinateFieldStateContext, componentState],\n [GroupContext, fieldProps],\n [LabelContext, labelProps],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorProps,\n },\n },\n ],\n [FieldErrorContext, validation],\n ]}\n >\n <div\n {...DOMProps}\n {...fieldProps}\n ref={ref}\n className={clsx(\n 'group/coordinate-field',\n styles.field,\n classNames?.field,\n )}\n data-size={size}\n data-disabled={isDisabled || null}\n data-invalid={isInvalid || null}\n >\n {!isSmall && labelProp && (\n <Label\n className={classNames?.label}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n\n <div\n style={\n {\n '--min-width': variant === 'stacked' ? 'unset' : minControlWidth,\n } as CSSProperties\n }\n className={clsx(styles.control, classNames?.control)}\n data-readonly={isReadOnly || null}\n >\n <div\n className={clsx(styles.input, styles[variant], classNames?.input)}\n onPasteCapture={paste.handleInputPaste}\n data-input-container\n >\n {state.segmentConfigs\n .reduce<ReactNode[][]>(\n (acc, config, configIndex) => {\n const currentGroupIndex = acc.length - 1;\n\n if (\n config.value === GROUP_SEPARATOR &&\n variant === 'stacked'\n ) {\n acc.push([]);\n\n return acc;\n }\n\n if (config.type === 'literal') {\n acc[currentGroupIndex]?.push(\n <span\n key={`${format}-literal-${configIndex}-${config.value}`}\n className={styles.literal}\n >\n {config.value}\n </span>,\n );\n\n return acc;\n }\n\n const editableIndex = state.segmentConfigs\n .slice(0, configIndex)\n .filter((c) => c.type !== 'literal').length;\n\n acc[currentGroupIndex]?.push(\n <CoordinateSegment\n key={`${format}-segment-${editableIndex}`}\n value={state.segmentValues[editableIndex] || ''}\n onChange={(newValue) =>\n state.handleSegmentChange(editableIndex, newValue)\n }\n onFocus={() =>\n focus.setFocusedSegmentIndex(editableIndex)\n }\n onBlur={() => {\n focus.setFocusedSegmentIndex(-1);\n state.flushPendingValidation();\n }}\n onKeyDown={(e) =>\n focus.handleSegmentKeyDown(editableIndex, e)\n }\n onAutoAdvance={() =>\n focus.focusNextSegment(editableIndex)\n }\n onAutoRetreat={() =>\n focus.focusPreviousSegment(editableIndex)\n }\n placeholder={config.placeholder}\n maxLength={config.maxLength}\n pad={config.pad}\n className={clsx(styles.segment, classNames?.segment)}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n allowedChars={config.allowedChars}\n segmentRef={focus.segmentRefs[editableIndex]}\n segmentIndex={editableIndex}\n totalSegments={state.editableSegmentConfigs.length}\n ariaLabel={getSegmentLabel(format, editableIndex)}\n />,\n );\n\n return acc;\n },\n [[]],\n )\n .map((group, groupIndex) => (\n <div\n className={clsx(styles.segmentGroup, styles[variant])}\n key={`${format}-group-${\n // biome-ignore lint/suspicious/noArrayIndexKey: intentional\n groupIndex\n }`}\n >\n {group}\n </div>\n ))}\n </div>\n\n {showFormatButton && (\n <TooltipTrigger isDisabled={isPopoverOpen}>\n <DialogTrigger onOpenChange={handlePopoverOpenChange}>\n <Button\n variant='icon'\n size='small'\n color='mono-bold'\n className={clsx(\n styles.formatButton,\n classNames?.formatButton,\n )}\n aria-label='View coordinate in all formats'\n isDisabled={!copy.isFormatButtonEnabled}\n >\n <Icon>\n <GlobalShare />\n </Icon>\n </Button>\n <Popover classNames={{ popover: styles.popover }}>\n <PopoverTitle className={styles.popoverTitle}>\n Copy Coordinates\n </PopoverTitle>\n <PopoverContent>\n {allCoordinateFormats &&\n COORDINATE_SYSTEMS.map((formatKey) => {\n const formatResult = allCoordinateFormats[formatKey];\n const isCopied = copy.copiedFormat === formatKey;\n\n return (\n <div key={formatKey} className={styles.formatRow}>\n <div className={styles.formatLabels}>\n <span className={styles.formatLabel}>\n {COORDINATE_FORMAT_LABELS[formatKey]}\n </span>\n <span\n className={styles.formatValue}\n title={formatResult.value}\n >\n {formatResult.value}\n </span>\n </div>\n <Button\n variant='icon'\n color='mono-bold'\n aria-label={`Copy ${COORDINATE_FORMAT_LABELS[formatKey]} format`}\n onPress={() => copy.handleCopyFormat(formatKey)}\n isDisabled={!formatResult.isValid}\n >\n <Icon>\n {isCopied ? <Check /> : <CopyToClipboard />}\n </Icon>\n </Button>\n </div>\n );\n })}\n </PopoverContent>\n </Popover>\n </DialogTrigger>\n <Tooltip>{formatButtonTooltip}</Tooltip>\n </TooltipTrigger>\n )}\n </div>\n\n {/* Description is hidden when field is invalid (unless disabled) to make room for error message */}\n {descriptionProp && !isSmall && (!isInvalid || isDisabled) && (\n <AriaText\n className={clsx(styles.description, classNames?.description)}\n slot='description'\n >\n {descriptionProp}\n </AriaText>\n )}\n\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {effectiveErrorMessage}\n </FieldError>\n\n <DialogTrigger\n isOpen={paste.showDisambiguationModal}\n onOpenChange={paste.setShowDisambiguationModal}\n >\n <Button className={styles.hiddenTrigger}>Hidden Trigger</Button>\n <Dialog size='small'>\n <DialogTitle className={styles.modalTitle}>\n Select Coordinate Format\n </DialogTitle>\n <DialogContent>\n <p className={styles.modalDescription}>\n The pasted value matches multiple coordinate formats. Please\n select the correct interpretation:\n </p>\n\n <RadioGroup\n classNames={{ group: styles.formatOptions }}\n value={paste.selectedDisambiguationFormat}\n onChange={(value) =>\n paste.setSelectedDisambiguationFormat(\n value as CoordinateSystem,\n )\n }\n >\n {paste.disambiguationMatches.map((match) => (\n <Radio key={match.format} value={match.format}>\n <div className={styles.modalOptionContent}>\n <span className={styles.formatOptionLabel}>\n {COORDINATE_FORMAT_NAMES[match.format]}\n </span>\n <span className={styles.formatOptionValue}>\n {match.displayString}\n </span>\n </div>\n </Radio>\n ))}\n </RadioGroup>\n </DialogContent>\n <DialogFooter className={styles.modalActions}>\n <Button\n variant='flat'\n onPress={() => paste.setShowDisambiguationModal(false)}\n >\n Cancel\n </Button>\n <Button onPress={paste.handleDisambiguationSelect}>\n Apply Selected\n </Button>\n </DialogFooter>\n </Dialog>\n </DialogTrigger>\n </div>\n </Provider>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Label","AriaText"],"sources":["../../../src/components/coordinate-field/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\n'use client';\n\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport Check from '@accelint/icons/check';\nimport CopyToClipboard from '@accelint/icons/copy-to-clipboard';\nimport GlobalShare from '@accelint/icons/global-share';\nimport { filterDOMProps } from 'react-aria/filterDOMProps';\nimport 'client-only';\nimport {\n type CSSProperties,\n type ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport { Text as AriaText, TextContext } from 'react-aria-components/Text';\nimport { composeRenderProps } from 'react-aria-components/composeRenderProps';\nimport { Provider, useContextProps } from 'react-aria-components/slots';\nimport {\n FieldError,\n FieldErrorContext,\n} from 'react-aria-components/FieldError';\nimport { LabelContext } from 'react-aria-components/Label';\nimport { GroupContext } from 'react-aria-components/Group';\n\nimport { useCoordinateField } from '../../hooks/coordinate-field';\nimport { Button } from '../button';\nimport { Dialog } from '../dialog';\nimport { DialogContent } from '../dialog/content';\nimport { DialogFooter } from '../dialog/footer';\nimport { DialogTitle } from '../dialog/title';\nimport { DialogTrigger } from '../dialog/trigger';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Popover } from '../popover';\nimport { PopoverContent } from '../popover/content';\nimport { PopoverTitle } from '../popover/title';\nimport { Radio } from '../radio';\nimport { RadioGroup } from '../radio/group';\nimport { Tooltip } from '../tooltip';\nimport { TooltipTrigger } from '../tooltip/trigger';\nimport { CoordinateFieldContext, CoordinateFieldStateContext } from './context';\nimport {\n type CoordinateFormatResult,\n getAllCoordinateFormats,\n} from './coordinate-utils';\nimport { CoordinateSegment } from './segment';\nimport { GROUP_SEPARATOR, getSegmentLabel } from './segment-configs';\nimport styles from './styles.module.css';\nimport {\n COORDINATE_FORMAT_LABELS,\n COORDINATE_FORMAT_NAMES,\n COORDINATE_SYSTEMS,\n type CoordinateSystem,\n} from './types';\nimport { calculateMinControlWidth } from './width-utils';\nimport type { CoordinateFieldProps } from './types';\n\n/**\n * CoordinateField - A comprehensive coordinate input component with multiple format support\n *\n * Provides accessible coordinate input functionality with support for multiple coordinate\n * systems (DD, DDM, DMS, MGRS, UTM). All values are normalized to Decimal Degrees internally\n * for consistency.\n *\n * @param props - The coordinate field props.\n * @param props.ref - Reference to the coordinate field element.\n * @param props.classNames - Custom class names for sub-elements.\n * @param props.description - Description text displayed below the field.\n * @param props.label - Label text for the coordinate field.\n * @param props.format - Coordinate format to use (dd, ddm, dms, mgrs, utm).\n * @param props.size - Size variant of the field.\n * @param props.variant - Layout variant (inline or stacked).\n * @param props.showFormatButton - Whether to show the format conversion button.\n * @param props.isDisabled - Whether the field is disabled.\n * @param props.isInvalid - Whether the field is in an invalid state.\n * @param props.isRequired - Whether the field is required.\n * @param props.isReadOnly - Whether the field is read-only.\n * @returns The coordinate field component.\n *\n * @example\n * ```tsx\n * // Basic coordinate field\n * <CoordinateField label=\"Location\" />\n * ```\n *\n * @example\n * ```tsx\n * // Coordinate field with validation\n * <CoordinateField\n * label=\"Target Coordinates\"\n * isRequired\n * isInvalid={hasError}\n * errorMessage=\"Please enter a valid coordinate\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Coordinate field with specific format\n * <CoordinateField\n * label=\"Position\"\n * format=\"dms\"\n * description=\"Enter coordinates in Degrees Minutes Seconds format\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Compact coordinate field\n * <CoordinateField\n * label=\"Coordinates\"\n * size=\"small\"\n * format=\"dd\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Controlled coordinate field\n * <CoordinateField\n * label=\"Selected Location\"\n * value={coordinates}\n * onChange={setCoordinates}\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Coordinate field with error handling\n * <CoordinateField\n * label=\"Target Coordinates\"\n * onError={(message, context) => {\n * // message will be \"Invalid coordinate value\" for validation errors\n * // or \"Invalid coordinate format\" for paste errors\n * setErrorMessage(message);\n * console.error(message, context);\n * }}\n * isInvalid={!!errorMessage}\n * errorMessage={errorMessage}\n * />\n * ```\n */\nexport function CoordinateField({ ref, ...props }: CoordinateFieldProps) {\n [props, ref] = useContextProps(props, ref, CoordinateFieldContext);\n\n const {\n classNames,\n description: descriptionProp,\n label: labelProp,\n format = 'dd',\n size = 'medium',\n variant = 'inline',\n showFormatButton = true,\n formatButtonTooltip = 'View/copy other formats',\n isDisabled = false,\n isInvalid: isInvalidProp = false,\n isRequired = false,\n isReadOnly = false,\n ...rest\n } = props;\n\n const isSmall = size === 'small';\n\n const DOMProps = filterDOMProps(rest, { global: true });\n\n // When size is small and label is hidden, use aria-label instead of aria-labelledby\n // to ensure screen readers have an accessible name\n const ariaLabelForSmallSize =\n isSmall && labelProp ? labelProp : rest['aria-label'];\n\n const {\n state,\n focus,\n paste,\n copy,\n registerTimeout,\n fieldProps,\n labelProps,\n descriptionProps,\n errorProps,\n validation,\n effectiveErrorMessage,\n isInvalid,\n } = useCoordinateField(\n props,\n ariaLabelForSmallSize,\n rest['aria-describedby'],\n rest['aria-details'],\n );\n\n const componentState = {\n segmentValues: state.segmentValues,\n format,\n currentValue: state.currentValue,\n validationErrors: state.validationErrors,\n isDisabled,\n isInvalid,\n isRequired,\n size,\n variant,\n registerTimeout,\n };\n\n // Store all coordinate formats, calculated only when popover opens\n const [allCoordinateFormats, setAllCoordinateFormats] = useState<Record<\n CoordinateSystem,\n CoordinateFormatResult\n > | null>(null);\n\n // Track popover open state so tooltip hides when popover is open\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const handlePopoverOpenChange = useCallback(\n (isOpen: boolean) => {\n setIsPopoverOpen(isOpen);\n if (isOpen) {\n setAllCoordinateFormats(getAllCoordinateFormats(state.currentValue));\n }\n },\n [state.currentValue],\n );\n\n // Calculate the minimum width needed for the control container\n // This keeps the outlined container at a fixed width while segments animate\n const minControlWidth = useMemo(\n () =>\n calculateMinControlWidth(\n state.editableSegmentConfigs,\n state.segmentConfigs,\n showFormatButton,\n ),\n [state.editableSegmentConfigs, state.segmentConfigs, showFormatButton],\n );\n\n return (\n <Provider\n values={[\n [CoordinateFieldContext, props],\n [CoordinateFieldStateContext, componentState],\n [GroupContext, fieldProps],\n [LabelContext, labelProps],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorProps,\n },\n },\n ],\n [FieldErrorContext, validation],\n ]}\n >\n <div\n {...DOMProps}\n {...fieldProps}\n ref={ref}\n className={clsx(\n 'group/coordinate-field',\n styles.field,\n classNames?.field,\n )}\n data-size={size}\n data-disabled={isDisabled || null}\n data-invalid={isInvalid || null}\n >\n {!isSmall && labelProp && (\n <Label\n className={classNames?.label}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n\n <div\n style={\n {\n '--min-width': variant === 'stacked' ? 'unset' : minControlWidth,\n } as CSSProperties\n }\n className={clsx(styles.control, classNames?.control)}\n data-readonly={isReadOnly || null}\n >\n <div\n className={clsx(styles.input, styles[variant], classNames?.input)}\n onPasteCapture={paste.handleInputPaste}\n data-input-container\n >\n {state.segmentConfigs\n .reduce<ReactNode[][]>(\n (acc, config, configIndex) => {\n const currentGroupIndex = acc.length - 1;\n\n if (\n config.value === GROUP_SEPARATOR &&\n variant === 'stacked'\n ) {\n acc.push([]);\n\n return acc;\n }\n\n if (config.type === 'literal') {\n acc[currentGroupIndex]?.push(\n <span\n key={`${format}-literal-${configIndex}-${config.value}`}\n className={styles.literal}\n >\n {config.value}\n </span>,\n );\n\n return acc;\n }\n\n const editableIndex = state.segmentConfigs\n .slice(0, configIndex)\n .filter((c) => c.type !== 'literal').length;\n\n acc[currentGroupIndex]?.push(\n <CoordinateSegment\n key={`${format}-segment-${editableIndex}`}\n value={state.segmentValues[editableIndex] || ''}\n onChange={(newValue) =>\n state.handleSegmentChange(editableIndex, newValue)\n }\n onFocus={() =>\n focus.setFocusedSegmentIndex(editableIndex)\n }\n onBlur={() => {\n focus.setFocusedSegmentIndex(-1);\n state.flushPendingValidation();\n }}\n onKeyDown={(e) =>\n focus.handleSegmentKeyDown(editableIndex, e)\n }\n onAutoAdvance={() =>\n focus.focusNextSegment(editableIndex)\n }\n onAutoRetreat={() =>\n focus.focusPreviousSegment(editableIndex)\n }\n placeholder={config.placeholder}\n maxLength={config.maxLength}\n pad={config.pad}\n className={clsx(styles.segment, classNames?.segment)}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n allowedChars={config.allowedChars}\n segmentRef={focus.segmentRefs[editableIndex]}\n segmentIndex={editableIndex}\n totalSegments={state.editableSegmentConfigs.length}\n ariaLabel={getSegmentLabel(format, editableIndex)}\n />,\n );\n\n return acc;\n },\n [[]],\n )\n .map((group, groupIndex) => (\n <div\n className={clsx(styles.segmentGroup, styles[variant])}\n key={`${format}-group-${\n // biome-ignore lint/suspicious/noArrayIndexKey: intentional\n groupIndex\n }`}\n >\n {group}\n </div>\n ))}\n </div>\n\n {showFormatButton && (\n <TooltipTrigger isDisabled={isPopoverOpen}>\n <DialogTrigger onOpenChange={handlePopoverOpenChange}>\n <Button\n variant='icon'\n size='small'\n color='mono-bold'\n className={clsx(\n styles.formatButton,\n classNames?.formatButton,\n )}\n aria-label='View coordinate in all formats'\n isDisabled={!copy.isFormatButtonEnabled}\n >\n <Icon>\n <GlobalShare />\n </Icon>\n </Button>\n <Popover classNames={{ popover: styles.popover }}>\n <PopoverTitle className={styles.popoverTitle}>\n Copy Coordinates\n </PopoverTitle>\n <PopoverContent>\n {allCoordinateFormats &&\n COORDINATE_SYSTEMS.map((formatKey) => {\n const formatResult = allCoordinateFormats[formatKey];\n const isCopied = copy.copiedFormat === formatKey;\n\n return (\n <div key={formatKey} className={styles.formatRow}>\n <div className={styles.formatLabels}>\n <span className={styles.formatLabel}>\n {COORDINATE_FORMAT_LABELS[formatKey]}\n </span>\n <span\n className={styles.formatValue}\n title={formatResult.value}\n >\n {formatResult.value}\n </span>\n </div>\n <Button\n variant='icon'\n color='mono-bold'\n aria-label={`Copy ${COORDINATE_FORMAT_LABELS[formatKey]} format`}\n onPress={() => copy.handleCopyFormat(formatKey)}\n isDisabled={!formatResult.isValid}\n >\n <Icon>\n {isCopied ? <Check /> : <CopyToClipboard />}\n </Icon>\n </Button>\n </div>\n );\n })}\n </PopoverContent>\n </Popover>\n </DialogTrigger>\n <Tooltip>{formatButtonTooltip}</Tooltip>\n </TooltipTrigger>\n )}\n </div>\n\n {/* Description is hidden when field is invalid (unless disabled) to make room for error message */}\n {descriptionProp && !isSmall && (!isInvalid || isDisabled) && (\n <AriaText\n className={clsx(styles.description, classNames?.description)}\n slot='description'\n >\n {descriptionProp}\n </AriaText>\n )}\n\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {effectiveErrorMessage}\n </FieldError>\n\n <DialogTrigger\n isOpen={paste.showDisambiguationModal}\n onOpenChange={paste.setShowDisambiguationModal}\n >\n <Button className={styles.hiddenTrigger}>Hidden Trigger</Button>\n <Dialog size='small'>\n <DialogTitle className={styles.modalTitle}>\n Select Coordinate Format\n </DialogTitle>\n <DialogContent>\n <p className={styles.modalDescription}>\n The pasted value matches multiple coordinate formats. Please\n select the correct interpretation:\n </p>\n\n <RadioGroup\n classNames={{ group: styles.formatOptions }}\n value={paste.selectedDisambiguationFormat}\n onChange={(value) =>\n paste.setSelectedDisambiguationFormat(\n value as CoordinateSystem,\n )\n }\n >\n {paste.disambiguationMatches.map((match) => (\n <Radio key={match.format} value={match.format}>\n <div className={styles.modalOptionContent}>\n <span className={styles.formatOptionLabel}>\n {COORDINATE_FORMAT_NAMES[match.format]}\n </span>\n <span className={styles.formatOptionValue}>\n {match.displayString}\n </span>\n </div>\n </Radio>\n ))}\n </RadioGroup>\n </DialogContent>\n <DialogFooter className={styles.modalActions}>\n <Button\n variant='flat'\n onPress={() => paste.setShowDisambiguationModal(false)}\n >\n Cancel\n </Button>\n <Button onPress={paste.handleDisambiguationSelect}>\n Apply Selected\n </Button>\n </DialogFooter>\n </Dialog>\n </DialogTrigger>\n </div>\n </Provider>\n );\n}\n"],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { CoordinateSegmentProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime23 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime24 from "react/jsx-runtime";
16
16
 
17
17
  //#region src/components/coordinate-field/segment.d.ts
18
18
 
@@ -91,7 +91,7 @@ declare function CoordinateSegment({
91
91
  onAutoRetreat,
92
92
  pad,
93
93
  ariaLabel
94
- }: CoordinateSegmentProps): react_jsx_runtime23.JSX.Element;
94
+ }: CoordinateSegmentProps): react_jsx_runtime24.JSX.Element;
95
95
  //#endregion
96
96
  export { CoordinateSegment };
97
97
  //# sourceMappingURL=segment.d.ts.map
@@ -11,7 +11,9 @@
11
11
  */
12
12
 
13
13
  import { Dispatch, KeyboardEvent, RefAttributes, SetStateAction } from "react";
14
- import { FieldErrorProps, LabelProps, TextFieldProps } from "react-aria-components";
14
+ import { LabelProps } from "react-aria-components/Label";
15
+ import { FieldErrorProps } from "react-aria-components/FieldError";
16
+ import { TextFieldProps } from "react-aria-components/TextField";
15
17
 
16
18
  //#region src/components/coordinate-field/types.d.ts
17
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["COORDINATE_FORMAT_LABELS: Record<CoordinateSystem, string>","COORDINATE_FORMAT_NAMES: Record<CoordinateSystem, string>","COORDINATE_SYSTEMS: readonly CoordinateSystem[]"],"sources":["../../../src/components/coordinate-field/types.ts"],"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 {\n Dispatch,\n KeyboardEvent,\n RefAttributes,\n SetStateAction,\n} from 'react';\nimport type {\n TextFieldProps as AriaTextFieldProps,\n FieldErrorProps,\n LabelProps,\n} from 'react-aria-components';\n\n/**\n * Supported coordinate systems for display and input\n */\nexport type CoordinateSystem = 'dd' | 'ddm' | 'dms' | 'mgrs' | 'utm';\n\n/**\n * Short labels for coordinate formats (used in popover)\n */\nexport const COORDINATE_FORMAT_LABELS: Record<CoordinateSystem, string> = {\n dd: 'DD',\n ddm: 'DDM',\n dms: 'DMS',\n mgrs: 'MGRS',\n utm: 'UTM',\n};\n\n/**\n * Full names for coordinate formats (used in popover titles/descriptions)\n */\nexport const COORDINATE_FORMAT_NAMES: Record<CoordinateSystem, string> = {\n dd: 'Decimal Degrees',\n ddm: 'Degrees Decimal Minutes',\n dms: 'Degrees Minutes Seconds',\n mgrs: 'Military Grid Reference System',\n utm: 'Universal Transverse Mercator',\n};\n\n/**\n * All supported coordinate systems\n * Use this constant instead of hardcoding the array in multiple places\n */\nexport const COORDINATE_SYSTEMS: readonly CoordinateSystem[] = [\n 'dd',\n 'dms',\n 'ddm',\n 'mgrs',\n 'utm',\n] as const;\n\n/**\n * Coordinate value in Decimal Degrees format (internal representation)\n * All coordinate values are normalized to this format internally\n */\nexport type CoordinateValue = {\n lat: number; // Latitude in decimal degrees (-90 to 90)\n lon: number; // Longitude in decimal degrees (-180 to 180)\n};\n\n/**\n * Types of segments in a coordinate input\n */\nexport type SegmentType =\n | 'numeric'\n | 'directional'\n | 'literal'\n | 'alphanumeric';\n\n/**\n * Configuration for a single coordinate segment\n */\nexport type SegmentConfig = {\n type: SegmentType;\n /** Placeholder text shown when segment is empty */\n placeholder?: string;\n /** Maximum character length for the segment */\n maxLength?: number;\n /** Regex pattern for allowed characters */\n allowedChars?: string;\n /** Fixed value for literal segments (e.g., \", \" or \"º\") */\n value?: string;\n /** Padding in CSS 'ch' units to add to the segment width (defaults to 0.5 if not specified) */\n pad?: number;\n};\n\n/**\n * Result of parsing a pasted coordinate string\n */\nexport type ParsedCoordinateMatch = {\n /** The coordinate system format that matched */\n format: CoordinateSystem;\n /** The coordinate value in DD format */\n value: CoordinateValue;\n /** Display string in the matched format */\n displayString: string;\n};\n\n/**\n * State shared with child components through context\n */\nexport type CoordinateFieldState = {\n segmentValues: string[];\n format: CoordinateFieldProps['format'];\n /**\n * Current coordinate value in DD format\n * - undefined: uncontrolled mode with no default value\n * - null: controlled mode with empty/invalid value\n * - CoordinateValue: valid coordinate\n */\n currentValue?: CoordinateValue | null;\n /** Validation errors from @accelint/geo */\n validationErrors: string[];\n isDisabled: boolean;\n isInvalid: boolean;\n isRequired: boolean;\n /** Size variant of the field */\n size: CoordinateFieldProps['size'];\n /** Whether or not the logical coordinate fields are inlined or stacked */\n variant: CoordinateFieldProps['variant'];\n /** Function to register timeouts for cleanup on unmount */\n registerTimeout: (timeoutId: NodeJS.Timeout) => void;\n};\n\n/**\n * Props for the CoordinateSegment component\n */\nexport type CoordinateSegmentProps = {\n /** Current value of the segment */\n value: string;\n /** Callback when the segment value changes */\n onChange: (value: string) => void;\n /** Callback when the segment receives focus */\n onFocus?: () => void;\n /** Callback when the segment loses focus */\n onBlur?: () => void;\n /** Callback for keyboard events (used for navigation between segments) */\n onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n /** Placeholder text to display when segment is empty */\n placeholder?: string;\n /** Maximum character length for the segment */\n maxLength?: number;\n /** Custom className for styling */\n className?: string;\n /** Whether the segment is disabled */\n isDisabled?: boolean;\n /** Whether the segment is read-only */\n isReadOnly?: boolean;\n /** Regex pattern for allowed characters (e.g., \"[0-9\\\\-\\\\.]\" for numeric, \"[NSEW]\" for directional) */\n allowedChars?: string;\n /** Ref to the input element for programmatic focus management */\n segmentRef?: React.RefObject<HTMLInputElement>;\n /** Index of this segment in the parent field (for accessibility) */\n segmentIndex?: number;\n /** Total number of segments (for accessibility) */\n totalSegments?: number;\n /** Callback to trigger auto-advance to next segment */\n onAutoAdvance?: () => void;\n /** Callback to trigger auto-retreat to previous segment */\n onAutoRetreat?: () => void;\n /** Padding in CSS 'ch' units to add to the segment width (defaults to 0.5 if not specified) */\n pad?: number;\n /** Semantic accessibility label for the segment (e.g., \"Latitude degrees\") */\n ariaLabel?: string;\n};\n\n/**\n * Props for the CoordinateField component\n *\n * Extends AriaTextFieldProps to inherit standard form field props (id, isDisabled, isRequired, etc.)\n */\nexport type CoordinateFieldProps = Omit<\n AriaTextFieldProps,\n | 'children'\n | 'className'\n | 'placeholder'\n | 'type'\n | 'pattern'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'name' // Not applicable to multi-segment fields\n> &\n RefAttributes<HTMLDivElement> & {\n /**\n * Custom class names for component slots\n */\n classNames?: {\n field?: string;\n label?: LabelProps['className'];\n control?: string;\n input?: string;\n segment?: string;\n description?: string;\n error?: FieldErrorProps['className'];\n formatButton?: string;\n };\n\n /**\n * Label text displayed above the input (medium size only)\n */\n label?: string;\n\n /**\n * Helper text displayed below the input\n */\n description?: string;\n\n /**\n * Error message to display when the field is invalid\n */\n errorMessage?: string;\n\n /**\n * Display format for coordinate input\n * @default 'dd' (Decimal Degrees)\n */\n format?: CoordinateSystem;\n\n /**\n * Size variant of the field\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n\n /**\n * Whether to show the format button for copying coordinates in different formats\n * @default true\n */\n showFormatButton?: boolean;\n\n /**\n * Controlled value in Decimal Degrees format\n * - undefined: uncontrolled mode\n * - null: controlled mode with no/invalid value\n * - CoordinateValue: controlled mode with valid value\n */\n value?: CoordinateValue | null;\n\n /**\n * Whether or not the input is stacked or inline\n * @default 'inline'\n */\n variant?: 'inline' | 'stacked';\n\n /**\n * Default uncontrolled value in Decimal Degrees format\n */\n defaultValue?: CoordinateValue;\n\n /**\n * Callback fired when the coordinate value changes\n * @param value - The new coordinate value in DD format, or null if invalid\n */\n onChange?:\n | Dispatch<SetStateAction<CoordinateValue | null>>\n | ((value: CoordinateValue | null) => void);\n\n /**\n * Callback fired when validation or paste errors occur\n * @param message - Error message (\"Invalid coordinate value\" for validation errors, \"Invalid coordinate format\" for paste errors)\n * @param context - Additional context about the error:\n * - Validation errors: `{ errors: string[], format: string, segments: string[] }`\n * - Paste errors: `{ pastedText: string }`\n */\n onError?: (message: string, context?: Record<string, unknown>) => void;\n\n /**\n * Tooltip text for the format button\n * @default 'View/copy other formats'\n */\n formatButtonTooltip?: string;\n };\n"],"mappings":";;;;;;;;;;;;;;;;;AAgCA,MAAaA,2BAA6D;CACxE,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACN;;;;AAKD,MAAaC,0BAA4D;CACvE,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACN;;;;;AAMD,MAAaC,qBAAkD;CAC7D;CACA;CACA;CACA;CACA;CACD"}
1
+ {"version":3,"file":"types.js","names":["COORDINATE_FORMAT_LABELS: Record<CoordinateSystem, string>","COORDINATE_FORMAT_NAMES: Record<CoordinateSystem, string>","COORDINATE_SYSTEMS: readonly CoordinateSystem[]"],"sources":["../../../src/components/coordinate-field/types.ts"],"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 {\n Dispatch,\n KeyboardEvent,\n RefAttributes,\n SetStateAction,\n} from 'react';\nimport type { TextFieldProps as AriaTextFieldProps } from 'react-aria-components/TextField';\nimport type { FieldErrorProps } from 'react-aria-components/FieldError';\nimport type { LabelProps } from 'react-aria-components/Label';\n\n/**\n * Supported coordinate systems for display and input\n */\nexport type CoordinateSystem = 'dd' | 'ddm' | 'dms' | 'mgrs' | 'utm';\n\n/**\n * Short labels for coordinate formats (used in popover)\n */\nexport const COORDINATE_FORMAT_LABELS: Record<CoordinateSystem, string> = {\n dd: 'DD',\n ddm: 'DDM',\n dms: 'DMS',\n mgrs: 'MGRS',\n utm: 'UTM',\n};\n\n/**\n * Full names for coordinate formats (used in popover titles/descriptions)\n */\nexport const COORDINATE_FORMAT_NAMES: Record<CoordinateSystem, string> = {\n dd: 'Decimal Degrees',\n ddm: 'Degrees Decimal Minutes',\n dms: 'Degrees Minutes Seconds',\n mgrs: 'Military Grid Reference System',\n utm: 'Universal Transverse Mercator',\n};\n\n/**\n * All supported coordinate systems\n * Use this constant instead of hardcoding the array in multiple places\n */\nexport const COORDINATE_SYSTEMS: readonly CoordinateSystem[] = [\n 'dd',\n 'dms',\n 'ddm',\n 'mgrs',\n 'utm',\n] as const;\n\n/**\n * Coordinate value in Decimal Degrees format (internal representation)\n * All coordinate values are normalized to this format internally\n */\nexport type CoordinateValue = {\n lat: number; // Latitude in decimal degrees (-90 to 90)\n lon: number; // Longitude in decimal degrees (-180 to 180)\n};\n\n/**\n * Types of segments in a coordinate input\n */\nexport type SegmentType =\n | 'numeric'\n | 'directional'\n | 'literal'\n | 'alphanumeric';\n\n/**\n * Configuration for a single coordinate segment\n */\nexport type SegmentConfig = {\n type: SegmentType;\n /** Placeholder text shown when segment is empty */\n placeholder?: string;\n /** Maximum character length for the segment */\n maxLength?: number;\n /** Regex pattern for allowed characters */\n allowedChars?: string;\n /** Fixed value for literal segments (e.g., \", \" or \"º\") */\n value?: string;\n /** Padding in CSS 'ch' units to add to the segment width (defaults to 0.5 if not specified) */\n pad?: number;\n};\n\n/**\n * Result of parsing a pasted coordinate string\n */\nexport type ParsedCoordinateMatch = {\n /** The coordinate system format that matched */\n format: CoordinateSystem;\n /** The coordinate value in DD format */\n value: CoordinateValue;\n /** Display string in the matched format */\n displayString: string;\n};\n\n/**\n * State shared with child components through context\n */\nexport type CoordinateFieldState = {\n segmentValues: string[];\n format: CoordinateFieldProps['format'];\n /**\n * Current coordinate value in DD format\n * - undefined: uncontrolled mode with no default value\n * - null: controlled mode with empty/invalid value\n * - CoordinateValue: valid coordinate\n */\n currentValue?: CoordinateValue | null;\n /** Validation errors from @accelint/geo */\n validationErrors: string[];\n isDisabled: boolean;\n isInvalid: boolean;\n isRequired: boolean;\n /** Size variant of the field */\n size: CoordinateFieldProps['size'];\n /** Whether or not the logical coordinate fields are inlined or stacked */\n variant: CoordinateFieldProps['variant'];\n /** Function to register timeouts for cleanup on unmount */\n registerTimeout: (timeoutId: NodeJS.Timeout) => void;\n};\n\n/**\n * Props for the CoordinateSegment component\n */\nexport type CoordinateSegmentProps = {\n /** Current value of the segment */\n value: string;\n /** Callback when the segment value changes */\n onChange: (value: string) => void;\n /** Callback when the segment receives focus */\n onFocus?: () => void;\n /** Callback when the segment loses focus */\n onBlur?: () => void;\n /** Callback for keyboard events (used for navigation between segments) */\n onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;\n /** Placeholder text to display when segment is empty */\n placeholder?: string;\n /** Maximum character length for the segment */\n maxLength?: number;\n /** Custom className for styling */\n className?: string;\n /** Whether the segment is disabled */\n isDisabled?: boolean;\n /** Whether the segment is read-only */\n isReadOnly?: boolean;\n /** Regex pattern for allowed characters (e.g., \"[0-9\\\\-\\\\.]\" for numeric, \"[NSEW]\" for directional) */\n allowedChars?: string;\n /** Ref to the input element for programmatic focus management */\n segmentRef?: React.RefObject<HTMLInputElement>;\n /** Index of this segment in the parent field (for accessibility) */\n segmentIndex?: number;\n /** Total number of segments (for accessibility) */\n totalSegments?: number;\n /** Callback to trigger auto-advance to next segment */\n onAutoAdvance?: () => void;\n /** Callback to trigger auto-retreat to previous segment */\n onAutoRetreat?: () => void;\n /** Padding in CSS 'ch' units to add to the segment width (defaults to 0.5 if not specified) */\n pad?: number;\n /** Semantic accessibility label for the segment (e.g., \"Latitude degrees\") */\n ariaLabel?: string;\n};\n\n/**\n * Props for the CoordinateField component\n *\n * Extends AriaTextFieldProps to inherit standard form field props (id, isDisabled, isRequired, etc.)\n */\nexport type CoordinateFieldProps = Omit<\n AriaTextFieldProps,\n | 'children'\n | 'className'\n | 'placeholder'\n | 'type'\n | 'pattern'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'name' // Not applicable to multi-segment fields\n> &\n RefAttributes<HTMLDivElement> & {\n /**\n * Custom class names for component slots\n */\n classNames?: {\n field?: string;\n label?: LabelProps['className'];\n control?: string;\n input?: string;\n segment?: string;\n description?: string;\n error?: FieldErrorProps['className'];\n formatButton?: string;\n };\n\n /**\n * Label text displayed above the input (medium size only)\n */\n label?: string;\n\n /**\n * Helper text displayed below the input\n */\n description?: string;\n\n /**\n * Error message to display when the field is invalid\n */\n errorMessage?: string;\n\n /**\n * Display format for coordinate input\n * @default 'dd' (Decimal Degrees)\n */\n format?: CoordinateSystem;\n\n /**\n * Size variant of the field\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n\n /**\n * Whether to show the format button for copying coordinates in different formats\n * @default true\n */\n showFormatButton?: boolean;\n\n /**\n * Controlled value in Decimal Degrees format\n * - undefined: uncontrolled mode\n * - null: controlled mode with no/invalid value\n * - CoordinateValue: controlled mode with valid value\n */\n value?: CoordinateValue | null;\n\n /**\n * Whether or not the input is stacked or inline\n * @default 'inline'\n */\n variant?: 'inline' | 'stacked';\n\n /**\n * Default uncontrolled value in Decimal Degrees format\n */\n defaultValue?: CoordinateValue;\n\n /**\n * Callback fired when the coordinate value changes\n * @param value - The new coordinate value in DD format, or null if invalid\n */\n onChange?:\n | Dispatch<SetStateAction<CoordinateValue | null>>\n | ((value: CoordinateValue | null) => void);\n\n /**\n * Callback fired when validation or paste errors occur\n * @param message - Error message (\"Invalid coordinate value\" for validation errors, \"Invalid coordinate format\" for paste errors)\n * @param context - Additional context about the error:\n * - Validation errors: `{ errors: string[], format: string, segments: string[] }`\n * - Paste errors: `{ pastedText: string }`\n */\n onError?: (message: string, context?: Record<string, unknown>) => void;\n\n /**\n * Tooltip text for the format button\n * @default 'View/copy other formats'\n */\n formatButtonTooltip?: string;\n };\n"],"mappings":";;;;;;;;;;;;;;;;;AA8BA,MAAaA,2BAA6D;CACxE,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACN;;;;AAKD,MAAaC,0BAA4D;CACvE,IAAI;CACJ,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACN;;;;;AAMD,MAAaC,qBAAkD;CAC7D;CACA;CACA;CACA;CACA;CACD"}
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { DateFieldProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime25 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
16
16
  import { DateValue } from "@internationalized/date";
17
17
 
18
18
  //#region src/components/date-field/index.d.ts
@@ -100,7 +100,7 @@ declare function DateField<T extends DateValue>({
100
100
  isRequired,
101
101
  isReadOnly,
102
102
  ...rest
103
- }: DateFieldProps<T>): react_jsx_runtime25.JSX.Element;
103
+ }: DateFieldProps<T>): react_jsx_runtime21.JSX.Element;
104
104
  //#endregion
105
105
  export { DateField };
106
106
  //# sourceMappingURL=index.d.ts.map
@@ -14,12 +14,13 @@
14
14
  'use client';
15
15
 
16
16
  import { Icon } from "../icon/index.js";
17
- import { Label as Label$1 } from "../label/index.js";
17
+ import { Label } from "../label/index.js";
18
18
  import "client-only";
19
19
  import { clsx } from "@accelint/design-foundation/lib/utils";
20
- import { DateField as DateField$1, DateInput, DateSegment, FieldError, Text, composeRenderProps } from "react-aria-components";
20
+ import { composeRenderProps } from "react-aria-components/composeRenderProps";
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
22
  import Calendar from "@accelint/icons/calendar";
23
+ import { DateField as DateField$1, DateInput, DateSegment, FieldError, Text } from "react-aria-components/DateField";
23
24
  import styles from "./styles.module.css";
24
25
 
25
26
  //#region src/components/date-field/index.tsx
@@ -120,7 +121,7 @@ function DateField({ classNames, description: descriptionProp, errorMessage: err
120
121
  "aria-label": labelProp,
121
122
  "data-size": size,
122
123
  children: ({ isDisabled: isDisabled$1 }) => /* @__PURE__ */ jsxs(Fragment, { children: [
123
- !isSmall && labelProp && /* @__PURE__ */ jsx(Label$1, {
124
+ !isSmall && labelProp && /* @__PURE__ */ jsx(Label, {
124
125
  className: clsx(styles.label, classNames?.label),
125
126
  isDisabled: isDisabled$1,
126
127
  isRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AriaDateField","Label","isDisabled","AriaDateInput","AriaText"],"sources":["../../../src/components/date-field/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\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport Calendar from '@accelint/icons/calendar';\nimport {\n DateField as AriaDateField,\n DateInput as AriaDateInput,\n Text as AriaText,\n composeRenderProps,\n DateSegment,\n FieldError,\n} from 'react-aria-components';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport styles from './styles.module.css';\nimport type { DateValue } from '@internationalized/date';\nimport type { DateFieldProps } from './types';\n\nconst months = [\n 'JAN',\n 'FEB',\n 'MAR',\n 'APR',\n 'MAY',\n 'JUN',\n 'JUL',\n 'AUG',\n 'SEP',\n 'OCT',\n 'NOV',\n 'DEC',\n];\n\n/**\n * DateField - A comprehensive date input component with segmented editing\n *\n * Provides accessible date input functionality with separate segments for day,\n * month, and year. Includes calendar icon, validation states, and international\n * date format support with keyboard navigation between segments.\n *\n * @param props - The date field props.\n * @param props.classNames - Custom class names for sub-elements.\n * @param props.description - Helper text displayed below the field.\n * @param props.errorMessage - Error message displayed when invalid.\n * @param props.inputProps - Additional props for the date input element.\n * @param props.label - Label text displayed above the field.\n * @param props.size - Size variant of the field.\n * @param props.shortMonth - When true, displays 3-letter month abbreviation when not editing.\n * @param props.shouldForceLeadingZeros - Whether to force leading zeros in segments.\n * @param props.isDisabled - Whether the field is disabled.\n * @param props.isInvalid - Whether the field is in an invalid state.\n * @param props.isRequired - Whether the field is required.\n * @param props.isReadOnly - Whether the field is read-only.\n * @returns The date field component.\n *\n * @example\n * ```tsx\n * // Basic date field\n * <DateField label=\"Birth Date\" />\n * ```\n *\n * @example\n * ```tsx\n * // Date field with validation\n * <DateField\n * label=\"Event Date\"\n * isRequired\n * isInvalid={hasError}\n * errorMessage=\"Please select a valid date\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Date field with custom formatting\n * <DateField\n * label=\"Meeting Date\"\n * shortMonth={false}\n * placeholder=\"Select meeting date\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Compact date field\n * <DateField\n * label=\"Due Date\"\n * size=\"small\"\n * description=\"When is this task due?\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Controlled date field\n * <DateField\n * label=\"Selected Date\"\n * value={selectedDate}\n * onChange={setSelectedDate}\n * />\n * ```\n */\nexport function DateField<T extends DateValue>({\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n inputProps,\n label: labelProp,\n size = 'medium',\n shortMonth = true,\n shouldForceLeadingZeros = true,\n isDisabled,\n isInvalid: isInvalidProp,\n isRequired,\n isReadOnly = false,\n ...rest\n}: DateFieldProps<T>) {\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <AriaDateField<T>\n {...rest}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/date-field', styles.field, className),\n )}\n shouldForceLeadingZeros={shouldForceLeadingZeros}\n isDisabled={isDisabled}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)} // Leave uncontrolled if possible to fallback to validation state\n isRequired={isRequired}\n isReadOnly={isReadOnly}\n aria-label={labelProp}\n data-size={size}\n >\n {(\n { isDisabled }, // Rely on internal state, not props, since state could differ from props\n ) => (\n <>\n {!isSmall && labelProp && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n <div\n className={clsx(styles.control, classNames?.control)}\n data-readonly={isReadOnly || null}\n >\n {!isReadOnly && size === 'medium' && (\n <Icon>\n <Calendar />\n </Icon>\n )}\n <AriaDateInput\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n >\n {(segmentProp) => {\n // Remove extra space and punctuation from input display\n if (segmentProp.type === 'literal') {\n return <>{segmentProp.text === ':' ? ':' : null}</>;\n }\n\n return (\n <DateSegment\n className={composeRenderProps(\n classNames?.segment,\n (className) =>\n clsx(\n styles.segment,\n segmentProp.type === 'month' &&\n shortMonth &&\n styles.shortMonth,\n className,\n ),\n )}\n segment={segmentProp}\n >\n {({\n placeholder,\n text,\n value,\n isFocused,\n isPlaceholder,\n }) => {\n if (isPlaceholder) {\n return placeholder;\n }\n\n return segmentProp.type === 'month' &&\n shortMonth &&\n !isFocused\n ? months[(value ?? 0) - 1]\n : text;\n }}\n </DateSegment>\n );\n }}\n </AriaDateInput>\n </div>\n {descriptionProp && (!(isSmall || isInvalidProp) || isDisabled) && (\n <AriaText\n className={clsx(styles.description, classNames?.description)}\n slot='description'\n >\n {descriptionProp}\n </AriaText>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n </>\n )}\n </AriaDateField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuED,SAAgB,UAA+B,EAC7C,YACA,aAAa,iBACb,cAAc,kBACd,YACA,OAAO,WACP,OAAO,UACP,aAAa,MACb,0BAA0B,MAC1B,YACA,WAAW,eACX,YACA,aAAa,OACb,GAAG,QACiB;CACpB,MAAM,eAAe,oBAAoB;CACzC,MAAM,UAAU,SAAS;AAEzB,QACE,oBAACA;EACC,GAAI;EACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,oBAAoB,OAAO,OAAO,UAAU,CAClD;EACwB;EACb;EACZ,WAAW,kBAAkB,eAAe,OAAO;EACvC;EACA;EACZ,cAAY;EACZ,aAAW;aAGT,EAAE,+BAEF;GACG,CAAC,WAAW,aACX,oBAACC;IACC,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;IAChD,YAAYC;IACA;cAEX;KACK;GAEV,qBAAC;IACC,WAAW,KAAK,OAAO,SAAS,YAAY,QAAQ;IACpD,iBAAe,cAAc;eAE5B,CAAC,cAAc,SAAS,YACvB,oBAAC,kBACC,oBAAC,aAAW,GACP,EAET,oBAACC;KACC,GAAI;KACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;gBAEC,gBAAgB;AAEhB,UAAI,YAAY,SAAS,UACvB,QAAO,0CAAG,YAAY,SAAS,MAAM,MAAM,OAAQ;AAGrD,aACE,oBAAC;OACC,WAAW,mBACT,YAAY,UACX,cACC,KACE,OAAO,SACP,YAAY,SAAS,WACnB,cACA,OAAO,YACT,UACD,CACJ;OACD,SAAS;kBAEP,EACA,aACA,MACA,OACA,WACA,oBACI;AACJ,YAAI,cACF,QAAO;AAGT,eAAO,YAAY,SAAS,WAC1B,cACA,CAAC,YACC,QAAQ,SAAS,KAAK,KACtB;;QAEM;;MAGJ;KACZ;GACL,oBAAoB,EAAE,WAAW,kBAAkBD,iBAClD,oBAACE;IACC,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;IAC5D,MAAK;cAEJ;KACQ;GAEb,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAES"}
1
+ {"version":3,"file":"index.js","names":["AriaDateField","isDisabled","AriaDateInput","AriaText"],"sources":["../../../src/components/date-field/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\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport Calendar from '@accelint/icons/calendar';\nimport {\n DateField as AriaDateField,\n DateInput as AriaDateInput,\n Text as AriaText,\n DateSegment,\n FieldError,\n} from 'react-aria-components/DateField';\nimport { composeRenderProps } from 'react-aria-components/composeRenderProps';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport styles from './styles.module.css';\nimport type { DateValue } from '@internationalized/date';\nimport type { DateFieldProps } from './types';\n\nconst months = [\n 'JAN',\n 'FEB',\n 'MAR',\n 'APR',\n 'MAY',\n 'JUN',\n 'JUL',\n 'AUG',\n 'SEP',\n 'OCT',\n 'NOV',\n 'DEC',\n];\n\n/**\n * DateField - A comprehensive date input component with segmented editing\n *\n * Provides accessible date input functionality with separate segments for day,\n * month, and year. Includes calendar icon, validation states, and international\n * date format support with keyboard navigation between segments.\n *\n * @param props - The date field props.\n * @param props.classNames - Custom class names for sub-elements.\n * @param props.description - Helper text displayed below the field.\n * @param props.errorMessage - Error message displayed when invalid.\n * @param props.inputProps - Additional props for the date input element.\n * @param props.label - Label text displayed above the field.\n * @param props.size - Size variant of the field.\n * @param props.shortMonth - When true, displays 3-letter month abbreviation when not editing.\n * @param props.shouldForceLeadingZeros - Whether to force leading zeros in segments.\n * @param props.isDisabled - Whether the field is disabled.\n * @param props.isInvalid - Whether the field is in an invalid state.\n * @param props.isRequired - Whether the field is required.\n * @param props.isReadOnly - Whether the field is read-only.\n * @returns The date field component.\n *\n * @example\n * ```tsx\n * // Basic date field\n * <DateField label=\"Birth Date\" />\n * ```\n *\n * @example\n * ```tsx\n * // Date field with validation\n * <DateField\n * label=\"Event Date\"\n * isRequired\n * isInvalid={hasError}\n * errorMessage=\"Please select a valid date\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Date field with custom formatting\n * <DateField\n * label=\"Meeting Date\"\n * shortMonth={false}\n * placeholder=\"Select meeting date\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Compact date field\n * <DateField\n * label=\"Due Date\"\n * size=\"small\"\n * description=\"When is this task due?\"\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Controlled date field\n * <DateField\n * label=\"Selected Date\"\n * value={selectedDate}\n * onChange={setSelectedDate}\n * />\n * ```\n */\nexport function DateField<T extends DateValue>({\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n inputProps,\n label: labelProp,\n size = 'medium',\n shortMonth = true,\n shouldForceLeadingZeros = true,\n isDisabled,\n isInvalid: isInvalidProp,\n isRequired,\n isReadOnly = false,\n ...rest\n}: DateFieldProps<T>) {\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <AriaDateField<T>\n {...rest}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/date-field', styles.field, className),\n )}\n shouldForceLeadingZeros={shouldForceLeadingZeros}\n isDisabled={isDisabled}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)} // Leave uncontrolled if possible to fallback to validation state\n isRequired={isRequired}\n isReadOnly={isReadOnly}\n aria-label={labelProp}\n data-size={size}\n >\n {(\n { isDisabled }, // Rely on internal state, not props, since state could differ from props\n ) => (\n <>\n {!isSmall && labelProp && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n <div\n className={clsx(styles.control, classNames?.control)}\n data-readonly={isReadOnly || null}\n >\n {!isReadOnly && size === 'medium' && (\n <Icon>\n <Calendar />\n </Icon>\n )}\n <AriaDateInput\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n >\n {(segmentProp) => {\n // Remove extra space and punctuation from input display\n if (segmentProp.type === 'literal') {\n return <>{segmentProp.text === ':' ? ':' : null}</>;\n }\n\n return (\n <DateSegment\n className={composeRenderProps(\n classNames?.segment,\n (className) =>\n clsx(\n styles.segment,\n segmentProp.type === 'month' &&\n shortMonth &&\n styles.shortMonth,\n className,\n ),\n )}\n segment={segmentProp}\n >\n {({\n placeholder,\n text,\n value,\n isFocused,\n isPlaceholder,\n }) => {\n if (isPlaceholder) {\n return placeholder;\n }\n\n return segmentProp.type === 'month' &&\n shortMonth &&\n !isFocused\n ? months[(value ?? 0) - 1]\n : text;\n }}\n </DateSegment>\n );\n }}\n </AriaDateInput>\n </div>\n {descriptionProp && (!(isSmall || isInvalidProp) || isDisabled) && (\n <AriaText\n className={clsx(styles.description, classNames?.description)}\n slot='description'\n >\n {descriptionProp}\n </AriaText>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n </>\n )}\n </AriaDateField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuED,SAAgB,UAA+B,EAC7C,YACA,aAAa,iBACb,cAAc,kBACd,YACA,OAAO,WACP,OAAO,UACP,aAAa,MACb,0BAA0B,MAC1B,YACA,WAAW,eACX,YACA,aAAa,OACb,GAAG,QACiB;CACpB,MAAM,eAAe,oBAAoB;CACzC,MAAM,UAAU,SAAS;AAEzB,QACE,oBAACA;EACC,GAAI;EACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,oBAAoB,OAAO,OAAO,UAAU,CAClD;EACwB;EACb;EACZ,WAAW,kBAAkB,eAAe,OAAO;EACvC;EACA;EACZ,cAAY;EACZ,aAAW;aAGT,EAAE,+BAEF;GACG,CAAC,WAAW,aACX,oBAAC;IACC,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;IAChD,YAAYC;IACA;cAEX;KACK;GAEV,qBAAC;IACC,WAAW,KAAK,OAAO,SAAS,YAAY,QAAQ;IACpD,iBAAe,cAAc;eAE5B,CAAC,cAAc,SAAS,YACvB,oBAAC,kBACC,oBAAC,aAAW,GACP,EAET,oBAACC;KACC,GAAI;KACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;gBAEC,gBAAgB;AAEhB,UAAI,YAAY,SAAS,UACvB,QAAO,0CAAG,YAAY,SAAS,MAAM,MAAM,OAAQ;AAGrD,aACE,oBAAC;OACC,WAAW,mBACT,YAAY,UACX,cACC,KACE,OAAO,SACP,YAAY,SAAS,WACnB,cACA,OAAO,YACT,UACD,CACJ;OACD,SAAS;kBAEP,EACA,aACA,MACA,OACA,WACA,oBACI;AACJ,YAAI,cACF,QAAO;AAGT,eAAO,YAAY,SAAS,WAC1B,cACA,CAAC,YACC,QAAQ,SAAS,KAAK,KACtB;;QAEM;;MAGJ;KACZ;GACL,oBAAoB,EAAE,WAAW,kBAAkBD,iBAClD,oBAACE;IACC,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;IAC5D,MAAK;cAEJ;KACQ;GAEb,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAES"}
@@ -10,7 +10,7 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { DateFieldProps as DateFieldProps$1, DateInputProps, DateSegmentProps, DateValue, FieldErrorProps, LabelProps } from "react-aria-components";
13
+ import { DateFieldProps as DateFieldProps$1, DateInputProps, DateSegmentProps, DateValue, FieldErrorProps, LabelProps } from "react-aria-components/DateField";
14
14
 
15
15
  //#region src/components/date-field/types.d.ts
16
16
  /**
@@ -11,7 +11,7 @@
11
11
  */
12
12
 
13
13
  import { DeferredCollectionProps } from "./types.js";
14
- import * as react_jsx_runtime28 from "react/jsx-runtime";
14
+ import * as react_jsx_runtime38 from "react/jsx-runtime";
15
15
 
16
16
  //#region src/components/deferred-collection/index.d.ts
17
17
 
@@ -45,7 +45,7 @@ declare function DeferredCollection({
45
45
  children,
46
46
  fallback,
47
47
  deferFrames
48
- }: DeferredCollectionProps): react_jsx_runtime28.JSX.Element;
48
+ }: DeferredCollectionProps): react_jsx_runtime38.JSX.Element;
49
49
  //#endregion
50
50
  export { DeferredCollection, type DeferredCollectionProps };
51
51
  //# sourceMappingURL=index.d.ts.map
@@ -13,15 +13,15 @@
13
13
  import { ProviderProps } from "../../lib/types.js";
14
14
  import { DetailsListProps } from "./types.js";
15
15
  import "client-only";
16
- import * as react9 from "react";
17
- import { ContextValue } from "react-aria-components";
18
- import * as react_jsx_runtime26 from "react/jsx-runtime";
16
+ import * as react28 from "react";
17
+ import * as react_jsx_runtime100 from "react/jsx-runtime";
18
+ import { ContextValue } from "react-aria-components/slots";
19
19
 
20
20
  //#region src/components/details-list/context.d.ts
21
21
  /**
22
22
  * Context for sharing DetailsList props across component tree.
23
23
  */
24
- declare const DetailsListContext: react9.Context<ContextValue<DetailsListProps, HTMLDListElement>>;
24
+ declare const DetailsListContext: react28.Context<ContextValue<DetailsListProps, HTMLDListElement>>;
25
25
  /**
26
26
  * DetailsListProvider - Context provider for setting default DetailsList props.
27
27
  *
@@ -43,7 +43,7 @@ declare const DetailsListContext: react9.Context<ContextValue<DetailsListProps,
43
43
  declare function DetailsListProvider({
44
44
  children,
45
45
  ...props
46
- }: ProviderProps<DetailsListProps>): react_jsx_runtime26.JSX.Element;
46
+ }: ProviderProps<DetailsListProps>): react_jsx_runtime100.JSX.Element;
47
47
  //#endregion
48
48
  export { DetailsListContext, DetailsListProvider };
49
49
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/details-list/context.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'use client';\n\nimport 'client-only';\nimport { createContext } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport type { ProviderProps } from '@/lib/types';\nimport type { DetailsListProps } from './types';\n\n/**\n * Context for sharing DetailsList props across component tree.\n */\nexport const DetailsListContext =\n createContext<ContextValue<DetailsListProps, HTMLDListElement>>(null);\n\n/**\n * DetailsListProvider - Context provider for setting default DetailsList props.\n *\n * Use this to configure shared alignment and classNames across multiple\n * DetailsList components in your application.\n *\n * @param props - The provider props.\n * @param props.children - Child components that will receive the details list context.\n * @returns The details list context provider wrapping children.\n *\n * @example\n * ```tsx\n * <DetailsListProvider align=\"left\">\n * <DetailsList>...</DetailsList>\n * <DetailsList>...</DetailsList>\n * </DetailsListProvider>\n * ```\n */\nexport function DetailsListProvider({\n children,\n ...props\n}: ProviderProps<DetailsListProps>) {\n return (\n <DetailsListContext.Provider value={props}>\n {children}\n </DetailsListContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,qBACX,cAAgE,KAAK;;;;;;;;;;;;;;;;;;;AAoBvE,SAAgB,oBAAoB,EAClC,UACA,GAAG,SAC+B;AAClC,QACE,oBAAC,mBAAmB;EAAS,OAAO;EACjC;GAC2B"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/details-list/context.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'use client';\n\nimport 'client-only';\nimport { createContext } from 'react';\nimport type { ContextValue } from 'react-aria-components/slots';\nimport type { ProviderProps } from '@/lib/types';\nimport type { DetailsListProps } from './types';\n\n/**\n * Context for sharing DetailsList props across component tree.\n */\nexport const DetailsListContext =\n createContext<ContextValue<DetailsListProps, HTMLDListElement>>(null);\n\n/**\n * DetailsListProvider - Context provider for setting default DetailsList props.\n *\n * Use this to configure shared alignment and classNames across multiple\n * DetailsList components in your application.\n *\n * @param props - The provider props.\n * @param props.children - Child components that will receive the details list context.\n * @returns The details list context provider wrapping children.\n *\n * @example\n * ```tsx\n * <DetailsListProvider align=\"left\">\n * <DetailsList>...</DetailsList>\n * <DetailsList>...</DetailsList>\n * </DetailsListProvider>\n * ```\n */\nexport function DetailsListProvider({\n children,\n ...props\n}: ProviderProps<DetailsListProps>) {\n return (\n <DetailsListContext.Provider value={props}>\n {children}\n </DetailsListContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,qBACX,cAAgE,KAAK;;;;;;;;;;;;;;;;;;;AAoBvE,SAAgB,oBAAoB,EAClC,UACA,GAAG,SAC+B;AAClC,QACE,oBAAC,mBAAmB;EAAS,OAAO;EACjC;GAC2B"}