@accelint/design-toolkit 9.2.0 → 9.4.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 (733) hide show
  1. package/README.md +15 -22
  2. package/catalog-info.yaml +4 -4
  3. package/dist/components/accordion/context.d.ts +6 -0
  4. package/dist/components/accordion/context.js +6 -0
  5. package/dist/components/accordion/context.js.map +1 -1
  6. package/dist/components/accordion/group.d.ts +37 -2
  7. package/dist/components/accordion/group.js +34 -0
  8. package/dist/components/accordion/group.js.map +1 -1
  9. package/dist/components/accordion/header.d.ts +27 -2
  10. package/dist/components/accordion/header.js +25 -1
  11. package/dist/components/accordion/header.js.map +1 -1
  12. package/dist/components/accordion/index.d.ts +18 -4
  13. package/dist/components/accordion/index.js +16 -2
  14. package/dist/components/accordion/index.js.map +1 -1
  15. package/dist/components/accordion/panel.d.ts +29 -2
  16. package/dist/components/accordion/panel.js +26 -0
  17. package/dist/components/accordion/panel.js.map +1 -1
  18. package/dist/components/accordion/trigger.d.ts +25 -2
  19. package/dist/components/accordion/trigger.js +23 -1
  20. package/dist/components/accordion/trigger.js.map +1 -1
  21. package/dist/components/accordion/types.d.ts +33 -0
  22. package/dist/components/action-bar/index.d.ts +35 -6
  23. package/dist/components/action-bar/index.js +33 -5
  24. package/dist/components/action-bar/index.js.map +1 -1
  25. package/dist/components/action-bar/styles.module.css +9 -1
  26. package/dist/components/action-bar/types.d.ts +8 -0
  27. package/dist/components/avatar/context.d.ts +22 -4
  28. package/dist/components/avatar/context.js +18 -0
  29. package/dist/components/avatar/context.js.map +1 -1
  30. package/dist/components/avatar/index.d.ts +22 -15
  31. package/dist/components/avatar/index.js +21 -14
  32. package/dist/components/avatar/index.js.map +1 -1
  33. package/dist/components/avatar/types.d.ts +13 -0
  34. package/dist/components/badge/context.d.ts +22 -4
  35. package/dist/components/badge/context.js +18 -0
  36. package/dist/components/badge/context.js.map +1 -1
  37. package/dist/components/badge/index.d.ts +30 -16
  38. package/dist/components/badge/index.js +28 -14
  39. package/dist/components/badge/index.js.map +1 -1
  40. package/dist/components/badge/types.d.ts +9 -0
  41. package/dist/components/breadcrumbs/index.d.ts +10 -2
  42. package/dist/components/breadcrumbs/index.js +7 -0
  43. package/dist/components/breadcrumbs/index.js.map +1 -1
  44. package/dist/components/breadcrumbs/item.d.ts +25 -2
  45. package/dist/components/breadcrumbs/item.js +23 -1
  46. package/dist/components/breadcrumbs/item.js.map +1 -1
  47. package/dist/components/breadcrumbs/types.d.ts +17 -0
  48. package/dist/components/button/context.d.ts +62 -8
  49. package/dist/components/button/context.js +54 -0
  50. package/dist/components/button/context.js.map +1 -1
  51. package/dist/components/button/index.d.ts +21 -2
  52. package/dist/components/button/index.js +19 -0
  53. package/dist/components/button/index.js.map +1 -1
  54. package/dist/components/button/link.d.ts +22 -2
  55. package/dist/components/button/link.js +20 -0
  56. package/dist/components/button/link.js.map +1 -1
  57. package/dist/components/button/toggle.d.ts +23 -2
  58. package/dist/components/button/toggle.js +22 -1
  59. package/dist/components/button/toggle.js.map +1 -1
  60. package/dist/components/button/types.d.ts +26 -0
  61. package/dist/components/checkbox/context.d.ts +9 -3
  62. package/dist/components/checkbox/context.js +6 -0
  63. package/dist/components/checkbox/context.js.map +1 -1
  64. package/dist/components/checkbox/group.d.ts +31 -2
  65. package/dist/components/checkbox/group.js +28 -0
  66. package/dist/components/checkbox/group.js.map +1 -1
  67. package/dist/components/checkbox/index.d.ts +19 -2
  68. package/dist/components/checkbox/index.js +19 -1
  69. package/dist/components/checkbox/index.js.map +1 -1
  70. package/dist/components/checkbox/types.d.ts +19 -0
  71. package/dist/components/chip/context.d.ts +22 -4
  72. package/dist/components/chip/context.js +18 -0
  73. package/dist/components/chip/context.js.map +1 -1
  74. package/dist/components/chip/deletable.d.ts +38 -2
  75. package/dist/components/chip/deletable.js +36 -1
  76. package/dist/components/chip/deletable.js.map +1 -1
  77. package/dist/components/chip/index.d.ts +24 -2
  78. package/dist/components/chip/index.js +22 -0
  79. package/dist/components/chip/index.js.map +1 -1
  80. package/dist/components/chip/list.d.ts +49 -4
  81. package/dist/components/chip/list.js +45 -0
  82. package/dist/components/chip/list.js.map +1 -1
  83. package/dist/components/chip/selectable.d.ts +34 -2
  84. package/dist/components/chip/selectable.js +31 -0
  85. package/dist/components/chip/selectable.js.map +1 -1
  86. package/dist/components/chip/types.d.ts +27 -0
  87. package/dist/components/classification-badge/context.d.ts +20 -4
  88. package/dist/components/classification-badge/context.js +16 -0
  89. package/dist/components/classification-badge/context.js.map +1 -1
  90. package/dist/components/classification-badge/index.d.ts +28 -10
  91. package/dist/components/classification-badge/index.js +25 -8
  92. package/dist/components/classification-badge/index.js.map +1 -1
  93. package/dist/components/classification-badge/types.d.ts +4 -0
  94. package/dist/components/classification-banner/context.d.ts +20 -4
  95. package/dist/components/classification-banner/context.js +16 -0
  96. package/dist/components/classification-banner/context.js.map +1 -1
  97. package/dist/components/classification-banner/index.d.ts +12 -2
  98. package/dist/components/classification-banner/index.js +9 -0
  99. package/dist/components/classification-banner/index.js.map +1 -1
  100. package/dist/components/classification-banner/types.d.ts +4 -0
  101. package/dist/components/clock/index.d.ts +12 -2
  102. package/dist/components/clock/index.js +10 -0
  103. package/dist/components/clock/index.js.map +1 -1
  104. package/dist/components/clock/types.d.ts +4 -0
  105. package/dist/components/color-picker/index.d.ts +12 -10
  106. package/dist/components/color-picker/index.js +10 -8
  107. package/dist/components/color-picker/index.js.map +1 -1
  108. package/dist/components/color-picker/types.d.ts +8 -0
  109. package/dist/components/combobox-field/context.d.ts +20 -4
  110. package/dist/components/combobox-field/context.js +16 -0
  111. package/dist/components/combobox-field/context.js.map +1 -1
  112. package/dist/components/combobox-field/index.d.ts +15 -2
  113. package/dist/components/combobox-field/index.js +57 -38
  114. package/dist/components/combobox-field/index.js.map +1 -1
  115. package/dist/components/combobox-field/styles.module.css +5 -1
  116. package/dist/components/combobox-field/types.d.ts +19 -0
  117. package/dist/components/coordinate-field/context.d.ts +15 -6
  118. package/dist/components/coordinate-field/context.js +9 -0
  119. package/dist/components/coordinate-field/context.js.map +1 -1
  120. package/dist/components/coordinate-field/coordinate-utils.d.ts +8 -0
  121. package/dist/components/coordinate-field/coordinate-utils.js +8 -0
  122. package/dist/components/coordinate-field/coordinate-utils.js.map +1 -1
  123. package/dist/components/coordinate-field/index.d.ts +29 -2
  124. package/dist/components/coordinate-field/index.js +32 -4
  125. package/dist/components/coordinate-field/index.js.map +1 -1
  126. package/dist/components/coordinate-field/segment.d.ts +28 -2
  127. package/dist/components/coordinate-field/segment.js +28 -1
  128. package/dist/components/coordinate-field/segment.js.map +1 -1
  129. package/dist/components/coordinate-field/styles.module.css +19 -1
  130. package/dist/components/coordinate-field/types.d.ts +2 -0
  131. package/dist/components/coordinate-field/types.js.map +1 -1
  132. package/dist/components/date-field/index.d.ts +28 -2
  133. package/dist/components/date-field/index.js +29 -2
  134. package/dist/components/date-field/index.js.map +1 -1
  135. package/dist/components/date-field/styles.module.css +4 -0
  136. package/dist/components/date-field/types.d.ts +19 -3
  137. package/dist/components/deferred-collection/index.d.ts +51 -0
  138. package/dist/components/deferred-collection/index.js +52 -0
  139. package/dist/components/deferred-collection/index.js.map +1 -0
  140. package/dist/components/deferred-collection/types.d.ts +29 -0
  141. package/dist/components/deferred-collection/types.js +12 -0
  142. package/dist/components/details-list/context.d.ts +25 -4
  143. package/dist/components/details-list/context.js +21 -0
  144. package/dist/components/details-list/context.js.map +1 -1
  145. package/dist/components/details-list/index.d.ts +9 -2
  146. package/dist/components/details-list/index.js +7 -0
  147. package/dist/components/details-list/index.js.map +1 -1
  148. package/dist/components/details-list/label.d.ts +18 -2
  149. package/dist/components/details-list/label.js +16 -0
  150. package/dist/components/details-list/label.js.map +1 -1
  151. package/dist/components/details-list/types.d.ts +14 -0
  152. package/dist/components/details-list/value.d.ts +20 -2
  153. package/dist/components/details-list/value.js +17 -0
  154. package/dist/components/details-list/value.js.map +1 -1
  155. package/dist/components/dialog/content.d.ts +23 -2
  156. package/dist/components/dialog/content.js +20 -0
  157. package/dist/components/dialog/content.js.map +1 -1
  158. package/dist/components/dialog/context.d.ts +5 -2
  159. package/dist/components/dialog/context.js +3 -0
  160. package/dist/components/dialog/context.js.map +1 -1
  161. package/dist/components/dialog/footer.d.ts +26 -2
  162. package/dist/components/dialog/footer.js +23 -0
  163. package/dist/components/dialog/footer.js.map +1 -1
  164. package/dist/components/dialog/index.d.ts +12 -2
  165. package/dist/components/dialog/index.js +10 -0
  166. package/dist/components/dialog/index.js.map +1 -1
  167. package/dist/components/dialog/title.d.ts +21 -2
  168. package/dist/components/dialog/title.js +18 -0
  169. package/dist/components/dialog/title.js.map +1 -1
  170. package/dist/components/dialog/trigger.d.ts +18 -0
  171. package/dist/components/dialog/trigger.js +17 -0
  172. package/dist/components/dialog/trigger.js.map +1 -1
  173. package/dist/components/dialog/types.d.ts +12 -0
  174. package/dist/components/divider/context.d.ts +24 -4
  175. package/dist/components/divider/context.js +20 -0
  176. package/dist/components/divider/context.js.map +1 -1
  177. package/dist/components/divider/index.d.ts +13 -2
  178. package/dist/components/divider/index.js +10 -0
  179. package/dist/components/divider/index.js.map +1 -1
  180. package/dist/components/divider/types.d.ts +4 -4
  181. package/dist/components/drawer/back.d.ts +21 -2
  182. package/dist/components/drawer/back.js +19 -1
  183. package/dist/components/drawer/back.js.map +1 -1
  184. package/dist/components/drawer/close.d.ts +25 -2
  185. package/dist/components/drawer/close.js +28 -3
  186. package/dist/components/drawer/close.js.map +1 -1
  187. package/dist/components/drawer/content.d.ts +22 -2
  188. package/dist/components/drawer/content.js +19 -0
  189. package/dist/components/drawer/content.js.map +1 -1
  190. package/dist/components/drawer/context.d.ts +46 -4
  191. package/dist/components/drawer/context.js +45 -2
  192. package/dist/components/drawer/context.js.map +1 -1
  193. package/dist/components/drawer/events.d.ts +2 -0
  194. package/dist/components/drawer/events.js +2 -0
  195. package/dist/components/drawer/events.js.map +1 -1
  196. package/dist/components/drawer/footer.d.ts +24 -2
  197. package/dist/components/drawer/footer.js +21 -0
  198. package/dist/components/drawer/footer.js.map +1 -1
  199. package/dist/components/drawer/header-title.d.ts +22 -4
  200. package/dist/components/drawer/header-title.js +19 -2
  201. package/dist/components/drawer/header-title.js.map +1 -1
  202. package/dist/components/drawer/header.d.ts +34 -2
  203. package/dist/components/drawer/header.js +42 -2
  204. package/dist/components/drawer/header.js.map +1 -1
  205. package/dist/components/drawer/index.d.ts +14 -2
  206. package/dist/components/drawer/index.js +16 -0
  207. package/dist/components/drawer/index.js.map +1 -1
  208. package/dist/components/drawer/layout-main.d.ts +23 -2
  209. package/dist/components/drawer/layout-main.js +20 -0
  210. package/dist/components/drawer/layout-main.js.map +1 -1
  211. package/dist/components/drawer/layout.d.ts +25 -2
  212. package/dist/components/drawer/layout.js +22 -0
  213. package/dist/components/drawer/layout.js.map +1 -1
  214. package/dist/components/drawer/menu-item.d.ts +25 -2
  215. package/dist/components/drawer/menu-item.js +22 -0
  216. package/dist/components/drawer/menu-item.js.map +1 -1
  217. package/dist/components/drawer/menu.d.ts +22 -2
  218. package/dist/components/drawer/menu.js +19 -0
  219. package/dist/components/drawer/menu.js.map +1 -1
  220. package/dist/components/drawer/panel.d.ts +21 -2
  221. package/dist/components/drawer/panel.js +18 -0
  222. package/dist/components/drawer/panel.js.map +1 -1
  223. package/dist/components/drawer/styles.module.css +2 -2
  224. package/dist/components/drawer/trigger.d.ts +31 -2
  225. package/dist/components/drawer/trigger.js +29 -1
  226. package/dist/components/drawer/trigger.js.map +1 -1
  227. package/dist/components/drawer/types.d.ts +149 -2
  228. package/dist/components/drawer/view.d.ts +25 -2
  229. package/dist/components/drawer/view.js +22 -0
  230. package/dist/components/drawer/view.js.map +1 -1
  231. package/dist/components/flashcard/index.d.ts +129 -27
  232. package/dist/components/flashcard/index.js +120 -18
  233. package/dist/components/flashcard/index.js.map +1 -1
  234. package/dist/components/flashcard/styles.module.css +1 -1
  235. package/dist/components/flashcard/types.d.ts +12 -0
  236. package/dist/components/hero/context.d.ts +5 -2
  237. package/dist/components/hero/context.js +3 -0
  238. package/dist/components/hero/context.js.map +1 -1
  239. package/dist/components/hero/index.d.ts +9 -2
  240. package/dist/components/hero/index.js +7 -0
  241. package/dist/components/hero/index.js.map +1 -1
  242. package/dist/components/hero/subtitle.d.ts +17 -2
  243. package/dist/components/hero/subtitle.js +15 -0
  244. package/dist/components/hero/subtitle.js.map +1 -1
  245. package/dist/components/hero/title.d.ts +15 -2
  246. package/dist/components/hero/title.js +13 -0
  247. package/dist/components/hero/title.js.map +1 -1
  248. package/dist/components/hero/types.d.ts +9 -0
  249. package/dist/components/hotkey/context.d.ts +24 -4
  250. package/dist/components/hotkey/context.js +20 -0
  251. package/dist/components/hotkey/context.js.map +1 -1
  252. package/dist/components/hotkey/index.d.ts +17 -2
  253. package/dist/components/hotkey/index.js +15 -0
  254. package/dist/components/hotkey/index.js.map +1 -1
  255. package/dist/components/hotkey/set.d.ts +21 -2
  256. package/dist/components/hotkey/set.js +18 -0
  257. package/dist/components/hotkey/set.js.map +1 -1
  258. package/dist/components/hotkey/types.d.ts +4 -0
  259. package/dist/components/icon/context.d.ts +24 -4
  260. package/dist/components/icon/context.js +20 -0
  261. package/dist/components/icon/context.js.map +1 -1
  262. package/dist/components/icon/index.d.ts +15 -2
  263. package/dist/components/icon/index.js +13 -0
  264. package/dist/components/icon/index.js.map +1 -1
  265. package/dist/components/icon/types.d.ts +4 -0
  266. package/dist/components/input/context.d.ts +6 -2
  267. package/dist/components/input/context.js +4 -0
  268. package/dist/components/input/context.js.map +1 -1
  269. package/dist/components/input/index.d.ts +17 -2
  270. package/dist/components/input/index.js +19 -3
  271. package/dist/components/input/index.js.map +1 -1
  272. package/dist/components/input/styles.module.css +5 -1
  273. package/dist/components/input/types.d.ts +16 -0
  274. package/dist/components/kanban/card-body.d.ts +10 -2
  275. package/dist/components/kanban/card-body.js +8 -0
  276. package/dist/components/kanban/card-body.js.map +1 -1
  277. package/dist/components/kanban/card-header-actions.d.ts +10 -2
  278. package/dist/components/kanban/card-header-actions.js +8 -0
  279. package/dist/components/kanban/card-header-actions.js.map +1 -1
  280. package/dist/components/kanban/card-header-title.d.ts +10 -2
  281. package/dist/components/kanban/card-header-title.js +8 -0
  282. package/dist/components/kanban/card-header-title.js.map +1 -1
  283. package/dist/components/kanban/card-header.d.ts +12 -2
  284. package/dist/components/kanban/card-header.js +10 -0
  285. package/dist/components/kanban/card-header.js.map +1 -1
  286. package/dist/components/kanban/card.d.ts +26 -2
  287. package/dist/components/kanban/card.js +23 -0
  288. package/dist/components/kanban/card.js.map +1 -1
  289. package/dist/components/kanban/column-actions.d.ts +10 -2
  290. package/dist/components/kanban/column-actions.js +9 -1
  291. package/dist/components/kanban/column-actions.js.map +1 -1
  292. package/dist/components/kanban/column-container.d.ts +10 -2
  293. package/dist/components/kanban/column-container.js +8 -0
  294. package/dist/components/kanban/column-container.js.map +1 -1
  295. package/dist/components/kanban/column-content.d.ts +13 -2
  296. package/dist/components/kanban/column-content.js +11 -0
  297. package/dist/components/kanban/column-content.js.map +1 -1
  298. package/dist/components/kanban/column-header-actions.d.ts +13 -2
  299. package/dist/components/kanban/column-header-actions.js +11 -0
  300. package/dist/components/kanban/column-header-actions.js.map +1 -1
  301. package/dist/components/kanban/column-header-drag-handle.d.ts +7 -2
  302. package/dist/components/kanban/column-header-drag-handle.js +6 -1
  303. package/dist/components/kanban/column-header-drag-handle.js.map +1 -1
  304. package/dist/components/kanban/column-header-title.d.ts +10 -2
  305. package/dist/components/kanban/column-header-title.js +8 -0
  306. package/dist/components/kanban/column-header-title.js.map +1 -1
  307. package/dist/components/kanban/column-header.d.ts +12 -2
  308. package/dist/components/kanban/column-header.js +10 -0
  309. package/dist/components/kanban/column-header.js.map +1 -1
  310. package/dist/components/kanban/column.d.ts +22 -2
  311. package/dist/components/kanban/column.js +19 -0
  312. package/dist/components/kanban/column.js.map +1 -1
  313. package/dist/components/kanban/context.d.ts +49 -2
  314. package/dist/components/kanban/context.js +30 -0
  315. package/dist/components/kanban/context.js.map +1 -1
  316. package/dist/components/kanban/header-actions.d.ts +10 -2
  317. package/dist/components/kanban/header-actions.js +8 -0
  318. package/dist/components/kanban/header-actions.js.map +1 -1
  319. package/dist/components/kanban/header-search.d.ts +9 -2
  320. package/dist/components/kanban/header-search.js +7 -0
  321. package/dist/components/kanban/header-search.js.map +1 -1
  322. package/dist/components/kanban/header-title.d.ts +10 -2
  323. package/dist/components/kanban/header-title.js +8 -0
  324. package/dist/components/kanban/header-title.js.map +1 -1
  325. package/dist/components/kanban/header.d.ts +12 -2
  326. package/dist/components/kanban/header.js +10 -0
  327. package/dist/components/kanban/header.js.map +1 -1
  328. package/dist/components/kanban/kanban.d.ts +33 -4
  329. package/dist/components/kanban/kanban.js +29 -0
  330. package/dist/components/kanban/kanban.js.map +1 -1
  331. package/dist/components/kanban/types.d.ts +51 -0
  332. package/dist/components/label/context.d.ts +25 -4
  333. package/dist/components/label/context.js +21 -0
  334. package/dist/components/label/context.js.map +1 -1
  335. package/dist/components/label/index.d.ts +16 -2
  336. package/dist/components/label/index.js +14 -0
  337. package/dist/components/label/index.js.map +1 -1
  338. package/dist/components/label/types.d.ts +5 -0
  339. package/dist/components/lines/index.d.ts +12 -2
  340. package/dist/components/lines/index.js +9 -0
  341. package/dist/components/lines/index.js.map +1 -1
  342. package/dist/components/lines/types.d.ts +6 -0
  343. package/dist/components/link/context.d.ts +21 -2
  344. package/dist/components/link/context.js +18 -0
  345. package/dist/components/link/context.js.map +1 -1
  346. package/dist/components/link/index.d.ts +12 -2
  347. package/dist/components/link/index.js +9 -0
  348. package/dist/components/link/index.js.map +1 -1
  349. package/dist/components/link/types.d.ts +5 -0
  350. package/dist/components/list/context.d.ts +11 -2
  351. package/dist/components/list/context.js +9 -0
  352. package/dist/components/list/context.js.map +1 -1
  353. package/dist/components/list/index.d.ts +11 -2
  354. package/dist/components/list/index.js +9 -0
  355. package/dist/components/list/index.js.map +1 -1
  356. package/dist/components/list/item-content.d.ts +9 -2
  357. package/dist/components/list/item-content.js +6 -0
  358. package/dist/components/list/item-content.js.map +1 -1
  359. package/dist/components/list/item-description.d.ts +9 -2
  360. package/dist/components/list/item-description.js +7 -0
  361. package/dist/components/list/item-description.js.map +1 -1
  362. package/dist/components/list/item-title.d.ts +9 -2
  363. package/dist/components/list/item-title.js +7 -0
  364. package/dist/components/list/item-title.js.map +1 -1
  365. package/dist/components/list/item.d.ts +10 -2
  366. package/dist/components/list/item.js +8 -0
  367. package/dist/components/list/item.js.map +1 -1
  368. package/dist/components/list/types.d.ts +22 -0
  369. package/dist/components/menu/context.d.ts +6 -2
  370. package/dist/components/menu/context.js +4 -0
  371. package/dist/components/menu/context.js.map +1 -1
  372. package/dist/components/menu/index.d.ts +24 -3
  373. package/dist/components/menu/index.js +22 -1
  374. package/dist/components/menu/index.js.map +1 -1
  375. package/dist/components/menu/item-description.d.ts +17 -2
  376. package/dist/components/menu/item-description.js +15 -0
  377. package/dist/components/menu/item-description.js.map +1 -1
  378. package/dist/components/menu/item-label.d.ts +17 -2
  379. package/dist/components/menu/item-label.js +15 -0
  380. package/dist/components/menu/item-label.js.map +1 -1
  381. package/dist/components/menu/item.d.ts +23 -2
  382. package/dist/components/menu/item.js +21 -1
  383. package/dist/components/menu/item.js.map +1 -1
  384. package/dist/components/menu/section.d.ts +23 -2
  385. package/dist/components/menu/section.js +20 -0
  386. package/dist/components/menu/section.js.map +1 -1
  387. package/dist/components/menu/separator.d.ts +16 -2
  388. package/dist/components/menu/separator.js +14 -0
  389. package/dist/components/menu/separator.js.map +1 -1
  390. package/dist/components/menu/styles.module.css +62 -46
  391. package/dist/components/menu/submenu.d.ts +18 -2
  392. package/dist/components/menu/submenu.js +16 -0
  393. package/dist/components/menu/submenu.js.map +1 -1
  394. package/dist/components/menu/trigger.d.ts +15 -0
  395. package/dist/components/menu/trigger.js +15 -0
  396. package/dist/components/menu/trigger.js.map +1 -1
  397. package/dist/components/menu/types.d.ts +25 -0
  398. package/dist/components/notice/events.d.ts +9 -0
  399. package/dist/components/notice/events.js +9 -0
  400. package/dist/components/notice/events.js.map +1 -1
  401. package/dist/components/notice/index.d.ts +34 -2
  402. package/dist/components/notice/index.js +32 -1
  403. package/dist/components/notice/index.js.map +1 -1
  404. package/dist/components/notice/list.d.ts +31 -2
  405. package/dist/components/notice/list.js +28 -0
  406. package/dist/components/notice/list.js.map +1 -1
  407. package/dist/components/notice/notice-icon.d.ts +22 -2
  408. package/dist/components/notice/notice-icon.js +23 -1
  409. package/dist/components/notice/notice-icon.js.map +1 -1
  410. package/dist/components/notice/types.d.ts +60 -0
  411. package/dist/components/notice/utils.d.ts +8 -0
  412. package/dist/components/notice/utils.js +8 -0
  413. package/dist/components/notice/utils.js.map +1 -1
  414. package/dist/components/options/context.d.ts +3 -2
  415. package/dist/components/options/context.js +1 -0
  416. package/dist/components/options/context.js.map +1 -1
  417. package/dist/components/options/index.d.ts +15 -2
  418. package/dist/components/options/index.js +13 -0
  419. package/dist/components/options/index.js.map +1 -1
  420. package/dist/components/options/item-content.d.ts +22 -2
  421. package/dist/components/options/item-content.js +19 -0
  422. package/dist/components/options/item-content.js.map +1 -1
  423. package/dist/components/options/item-description.d.ts +14 -2
  424. package/dist/components/options/item-description.js +12 -0
  425. package/dist/components/options/item-description.js.map +1 -1
  426. package/dist/components/options/item-label.d.ts +14 -2
  427. package/dist/components/options/item-label.js +12 -0
  428. package/dist/components/options/item-label.js.map +1 -1
  429. package/dist/components/options/item.d.ts +22 -0
  430. package/dist/components/options/item.js +21 -0
  431. package/dist/components/options/item.js.map +1 -1
  432. package/dist/components/options/section.d.ts +21 -2
  433. package/dist/components/options/section.js +18 -0
  434. package/dist/components/options/section.js.map +1 -1
  435. package/dist/components/options/types.d.ts +24 -0
  436. package/dist/components/pagination/context.d.ts +3 -2
  437. package/dist/components/pagination/context.js +1 -0
  438. package/dist/components/pagination/context.js.map +1 -1
  439. package/dist/components/pagination/index.d.ts +18 -11
  440. package/dist/components/pagination/index.js +15 -9
  441. package/dist/components/pagination/index.js.map +1 -1
  442. package/dist/components/pagination/next.d.ts +17 -2
  443. package/dist/components/pagination/next.js +15 -0
  444. package/dist/components/pagination/next.js.map +1 -1
  445. package/dist/components/pagination/pages.d.ts +21 -2
  446. package/dist/components/pagination/pages.js +18 -0
  447. package/dist/components/pagination/pages.js.map +1 -1
  448. package/dist/components/pagination/prev.d.ts +17 -2
  449. package/dist/components/pagination/prev.js +16 -1
  450. package/dist/components/pagination/prev.js.map +1 -1
  451. package/dist/components/pagination/types.d.ts +32 -0
  452. package/dist/components/pagination/utils.d.ts +35 -0
  453. package/dist/components/pagination/utils.js +35 -0
  454. package/dist/components/pagination/utils.js.map +1 -1
  455. package/dist/components/popover/content.d.ts +20 -2
  456. package/dist/components/popover/content.js +17 -0
  457. package/dist/components/popover/content.js.map +1 -1
  458. package/dist/components/popover/footer.d.ts +22 -2
  459. package/dist/components/popover/footer.js +19 -0
  460. package/dist/components/popover/footer.js.map +1 -1
  461. package/dist/components/popover/index.d.ts +9 -2
  462. package/dist/components/popover/index.js +8 -1
  463. package/dist/components/popover/index.js.map +1 -1
  464. package/dist/components/popover/styles.module.css +6 -0
  465. package/dist/components/popover/title.d.ts +17 -2
  466. package/dist/components/popover/title.js +15 -0
  467. package/dist/components/popover/title.js.map +1 -1
  468. package/dist/components/popover/trigger.d.ts +24 -2
  469. package/dist/components/popover/trigger.js +21 -0
  470. package/dist/components/popover/trigger.js.map +1 -1
  471. package/dist/components/popover/types.d.ts +10 -0
  472. package/dist/components/query-builder/action-element.d.ts +20 -2
  473. package/dist/components/query-builder/action-element.js +17 -0
  474. package/dist/components/query-builder/action-element.js.map +1 -1
  475. package/dist/components/query-builder/actions.d.ts +37 -4
  476. package/dist/components/query-builder/actions.js +36 -1
  477. package/dist/components/query-builder/actions.js.map +1 -1
  478. package/dist/components/query-builder/combinator-selector.d.ts +10 -2
  479. package/dist/components/query-builder/combinator-selector.js +8 -0
  480. package/dist/components/query-builder/combinator-selector.js.map +1 -1
  481. package/dist/components/query-builder/constants.d.ts +1 -0
  482. package/dist/components/query-builder/constants.js +1 -0
  483. package/dist/components/query-builder/constants.js.map +1 -1
  484. package/dist/components/query-builder/index.d.ts +11 -2
  485. package/dist/components/query-builder/index.js +9 -0
  486. package/dist/components/query-builder/index.js.map +1 -1
  487. package/dist/components/query-builder/rule-group.d.ts +52 -4
  488. package/dist/components/query-builder/rule-group.js +47 -0
  489. package/dist/components/query-builder/rule-group.js.map +1 -1
  490. package/dist/components/query-builder/rule.d.ts +20 -2
  491. package/dist/components/query-builder/rule.js +18 -0
  492. package/dist/components/query-builder/rule.js.map +1 -1
  493. package/dist/components/query-builder/types.d.ts +9 -0
  494. package/dist/components/query-builder/utils.d.ts +15 -0
  495. package/dist/components/query-builder/utils.js +15 -0
  496. package/dist/components/query-builder/utils.js.map +1 -1
  497. package/dist/components/query-builder/value-editor.d.ts +23 -2
  498. package/dist/components/query-builder/value-editor.js +20 -0
  499. package/dist/components/query-builder/value-editor.js.map +1 -1
  500. package/dist/components/query-builder/value-selector.d.ts +23 -2
  501. package/dist/components/query-builder/value-selector.js +20 -0
  502. package/dist/components/query-builder/value-selector.js.map +1 -1
  503. package/dist/components/radio/context.d.ts +2 -2
  504. package/dist/components/radio/group.d.ts +19 -2
  505. package/dist/components/radio/group.js +16 -0
  506. package/dist/components/radio/group.js.map +1 -1
  507. package/dist/components/radio/index.d.ts +13 -26
  508. package/dist/components/radio/index.js +11 -24
  509. package/dist/components/radio/index.js.map +1 -1
  510. package/dist/components/radio/types.d.ts +16 -0
  511. package/dist/components/search-field/context.d.ts +7 -4
  512. package/dist/components/search-field/context.js +3 -0
  513. package/dist/components/search-field/context.js.map +1 -1
  514. package/dist/components/search-field/index.d.ts +15 -24
  515. package/dist/components/search-field/index.js +16 -23
  516. package/dist/components/search-field/index.js.map +1 -1
  517. package/dist/components/search-field/types.d.ts +13 -0
  518. package/dist/components/select-field/context.d.ts +11 -4
  519. package/dist/components/select-field/context.js +7 -0
  520. package/dist/components/select-field/context.js.map +1 -1
  521. package/dist/components/select-field/index.d.ts +19 -39
  522. package/dist/components/select-field/index.js +28 -42
  523. package/dist/components/select-field/index.js.map +1 -1
  524. package/dist/components/select-field/styles.module.css +12 -0
  525. package/dist/components/select-field/types.d.ts +19 -0
  526. package/dist/components/sidenav/avatar.d.ts +19 -2
  527. package/dist/components/sidenav/avatar.js +16 -0
  528. package/dist/components/sidenav/avatar.js.map +1 -1
  529. package/dist/components/sidenav/content.d.ts +23 -2
  530. package/dist/components/sidenav/content.js +20 -0
  531. package/dist/components/sidenav/content.js.map +1 -1
  532. package/dist/components/sidenav/context.d.ts +3 -2
  533. package/dist/components/sidenav/context.js +1 -0
  534. package/dist/components/sidenav/context.js.map +1 -1
  535. package/dist/components/sidenav/events.d.ts +2 -0
  536. package/dist/components/sidenav/events.js +2 -0
  537. package/dist/components/sidenav/events.js.map +1 -1
  538. package/dist/components/sidenav/footer.d.ts +16 -2
  539. package/dist/components/sidenav/footer.js +13 -0
  540. package/dist/components/sidenav/footer.js.map +1 -1
  541. package/dist/components/sidenav/header.d.ts +20 -2
  542. package/dist/components/sidenav/header.js +18 -1
  543. package/dist/components/sidenav/header.js.map +1 -1
  544. package/dist/components/sidenav/index.d.ts +11 -2
  545. package/dist/components/sidenav/index.js +9 -0
  546. package/dist/components/sidenav/index.js.map +1 -1
  547. package/dist/components/sidenav/item.d.ts +17 -2
  548. package/dist/components/sidenav/item.js +14 -0
  549. package/dist/components/sidenav/item.js.map +1 -1
  550. package/dist/components/sidenav/link.d.ts +17 -2
  551. package/dist/components/sidenav/link.js +15 -1
  552. package/dist/components/sidenav/link.js.map +1 -1
  553. package/dist/components/sidenav/menu-item.d.ts +16 -2
  554. package/dist/components/sidenav/menu-item.js +13 -0
  555. package/dist/components/sidenav/menu-item.js.map +1 -1
  556. package/dist/components/sidenav/menu.d.ts +19 -2
  557. package/dist/components/sidenav/menu.js +17 -1
  558. package/dist/components/sidenav/menu.js.map +1 -1
  559. package/dist/components/sidenav/trigger.d.ts +17 -2
  560. package/dist/components/sidenav/trigger.js +14 -0
  561. package/dist/components/sidenav/trigger.js.map +1 -1
  562. package/dist/components/sidenav/types.d.ts +53 -0
  563. package/dist/components/skeleton/index.d.ts +12 -27
  564. package/dist/components/skeleton/index.js +10 -24
  565. package/dist/components/skeleton/index.js.map +1 -1
  566. package/dist/components/skeleton/types.d.ts +4 -0
  567. package/dist/components/slider/index.d.ts +30 -29
  568. package/dist/components/slider/index.js +28 -27
  569. package/dist/components/slider/index.js.map +1 -1
  570. package/dist/components/slider/types.d.ts +18 -0
  571. package/dist/components/switch/context.d.ts +16 -10
  572. package/dist/components/switch/context.js +13 -7
  573. package/dist/components/switch/context.js.map +1 -1
  574. package/dist/components/switch/index.d.ts +14 -31
  575. package/dist/components/switch/index.js +12 -29
  576. package/dist/components/switch/index.js.map +1 -1
  577. package/dist/components/switch/types.d.ts +5 -0
  578. package/dist/components/table/body.d.ts +21 -2
  579. package/dist/components/table/body.js +18 -0
  580. package/dist/components/table/body.js.map +1 -1
  581. package/dist/components/table/cell.d.ts +22 -2
  582. package/dist/components/table/cell.js +19 -0
  583. package/dist/components/table/cell.js.map +1 -1
  584. package/dist/components/table/constants/table.d.ts +6 -0
  585. package/dist/components/table/constants/table.js +4 -0
  586. package/dist/components/table/constants/table.js.map +1 -1
  587. package/dist/components/table/context.d.ts +1 -0
  588. package/dist/components/table/context.js +1 -0
  589. package/dist/components/table/context.js.map +1 -1
  590. package/dist/components/table/header-cell.d.ts +24 -2
  591. package/dist/components/table/header-cell.js +24 -1
  592. package/dist/components/table/header-cell.js.map +1 -1
  593. package/dist/components/table/header.d.ts +22 -2
  594. package/dist/components/table/header.js +19 -0
  595. package/dist/components/table/header.js.map +1 -1
  596. package/dist/components/table/index.d.ts +28 -6
  597. package/dist/components/table/index.js +27 -5
  598. package/dist/components/table/index.js.map +1 -1
  599. package/dist/components/table/row.d.ts +26 -2
  600. package/dist/components/table/row.js +23 -0
  601. package/dist/components/table/row.js.map +1 -1
  602. package/dist/components/table/types.d.ts +3 -0
  603. package/dist/components/tabs/context.d.ts +20 -10
  604. package/dist/components/tabs/context.js +17 -7
  605. package/dist/components/tabs/context.js.map +1 -1
  606. package/dist/components/tabs/index.d.ts +17 -40
  607. package/dist/components/tabs/index.js +15 -38
  608. package/dist/components/tabs/index.js.map +1 -1
  609. package/dist/components/tabs/list.d.ts +20 -4
  610. package/dist/components/tabs/list.js +17 -2
  611. package/dist/components/tabs/list.js.map +1 -1
  612. package/dist/components/tabs/panel.d.ts +21 -4
  613. package/dist/components/tabs/panel.js +18 -2
  614. package/dist/components/tabs/panel.js.map +1 -1
  615. package/dist/components/tabs/tab.d.ts +17 -4
  616. package/dist/components/tabs/tab.js +14 -2
  617. package/dist/components/tabs/tab.js.map +1 -1
  618. package/dist/components/tabs/types.d.ts +3 -0
  619. package/dist/components/text-area-field/context.d.ts +20 -10
  620. package/dist/components/text-area-field/context.js +17 -7
  621. package/dist/components/text-area-field/context.js.map +1 -1
  622. package/dist/components/text-area-field/index.d.ts +20 -15
  623. package/dist/components/text-area-field/index.js +18 -13
  624. package/dist/components/text-area-field/index.js.map +1 -1
  625. package/dist/components/text-area-field/styles.module.css +5 -1
  626. package/dist/components/text-area-field/types.d.ts +9 -0
  627. package/dist/components/text-field/context.d.ts +24 -4
  628. package/dist/components/text-field/context.js +20 -0
  629. package/dist/components/text-field/context.js.map +1 -1
  630. package/dist/components/text-field/index.d.ts +17 -82
  631. package/dist/components/text-field/index.js +15 -80
  632. package/dist/components/text-field/index.js.map +1 -1
  633. package/dist/components/text-field/types.d.ts +9 -0
  634. package/dist/components/time-field/index.d.ts +24 -5
  635. package/dist/components/time-field/index.js +25 -6
  636. package/dist/components/time-field/index.js.map +1 -1
  637. package/dist/components/time-field/styles.module.css +5 -2
  638. package/dist/components/time-field/types.d.ts +9 -0
  639. package/dist/components/tooltip/context.d.ts +3 -2
  640. package/dist/components/tooltip/context.js +1 -0
  641. package/dist/components/tooltip/context.js.map +1 -1
  642. package/dist/components/tooltip/index.d.ts +15 -30
  643. package/dist/components/tooltip/index.js +13 -28
  644. package/dist/components/tooltip/index.js.map +1 -1
  645. package/dist/components/tooltip/trigger.d.ts +22 -2
  646. package/dist/components/tooltip/trigger.js +19 -0
  647. package/dist/components/tooltip/trigger.js.map +1 -1
  648. package/dist/components/tooltip/types.d.ts +7 -0
  649. package/dist/components/tree/context.d.ts +5 -9
  650. package/dist/components/tree/context.js +2 -6
  651. package/dist/components/tree/context.js.map +1 -1
  652. package/dist/components/tree/index.d.ts +30 -8
  653. package/dist/components/tree/index.js +28 -6
  654. package/dist/components/tree/index.js.map +1 -1
  655. package/dist/components/tree/item-actions.d.ts +19 -4
  656. package/dist/components/tree/item-actions.js +16 -2
  657. package/dist/components/tree/item-actions.js.map +1 -1
  658. package/dist/components/tree/item-content.d.ts +18 -4
  659. package/dist/components/tree/item-content.js +20 -3
  660. package/dist/components/tree/item-content.js.map +1 -1
  661. package/dist/components/tree/item-description.d.ts +15 -4
  662. package/dist/components/tree/item-description.js +13 -2
  663. package/dist/components/tree/item-description.js.map +1 -1
  664. package/dist/components/tree/item-label.d.ts +15 -4
  665. package/dist/components/tree/item-label.js +13 -2
  666. package/dist/components/tree/item-label.js.map +1 -1
  667. package/dist/components/tree/item-prefix-icon.d.ts +15 -4
  668. package/dist/components/tree/item-prefix-icon.js +13 -2
  669. package/dist/components/tree/item-prefix-icon.js.map +1 -1
  670. package/dist/components/tree/item.d.ts +24 -4
  671. package/dist/components/tree/item.js +21 -2
  672. package/dist/components/tree/item.js.map +1 -1
  673. package/dist/components/tree/lines.d.ts +10 -2
  674. package/dist/components/tree/lines.js +8 -0
  675. package/dist/components/tree/lines.js.map +1 -1
  676. package/dist/components/tree/types.d.ts +26 -0
  677. package/dist/components/view-stack/context.d.ts +20 -9
  678. package/dist/components/view-stack/context.js +18 -7
  679. package/dist/components/view-stack/context.js.map +1 -1
  680. package/dist/components/view-stack/events.d.ts +2 -0
  681. package/dist/components/view-stack/events.js +2 -0
  682. package/dist/components/view-stack/events.js.map +1 -1
  683. package/dist/components/view-stack/index.d.ts +16 -24
  684. package/dist/components/view-stack/index.js +14 -22
  685. package/dist/components/view-stack/index.js.map +1 -1
  686. package/dist/components/view-stack/trigger.d.ts +26 -4
  687. package/dist/components/view-stack/trigger.js +23 -2
  688. package/dist/components/view-stack/trigger.js.map +1 -1
  689. package/dist/components/view-stack/types.d.ts +29 -0
  690. package/dist/components/view-stack/view.d.ts +22 -2
  691. package/dist/components/view-stack/view.js +19 -0
  692. package/dist/components/view-stack/view.js.map +1 -1
  693. package/dist/hooks/coordinate-field/use-coordinate-copy.d.ts +44 -0
  694. package/dist/hooks/coordinate-field/use-coordinate-copy.js +35 -0
  695. package/dist/hooks/coordinate-field/use-coordinate-copy.js.map +1 -1
  696. package/dist/hooks/coordinate-field/use-coordinate-field-state.d.ts +69 -0
  697. package/dist/hooks/coordinate-field/use-coordinate-field-state.js +50 -0
  698. package/dist/hooks/coordinate-field/use-coordinate-field-state.js.map +1 -1
  699. package/dist/hooks/coordinate-field/use-coordinate-field.d.ts +61 -0
  700. package/dist/hooks/coordinate-field/use-coordinate-field.js +47 -0
  701. package/dist/hooks/coordinate-field/use-coordinate-field.js.map +1 -1
  702. package/dist/hooks/coordinate-field/use-coordinate-focus.d.ts +51 -0
  703. package/dist/hooks/coordinate-field/use-coordinate-focus.js +39 -0
  704. package/dist/hooks/coordinate-field/use-coordinate-focus.js.map +1 -1
  705. package/dist/hooks/coordinate-field/use-coordinate-paste.d.ts +63 -0
  706. package/dist/hooks/coordinate-field/use-coordinate-paste.js +51 -0
  707. package/dist/hooks/coordinate-field/use-coordinate-paste.js.map +1 -1
  708. package/dist/hooks/coordinate-field/use-timeout-cleanup.d.ts +32 -0
  709. package/dist/hooks/coordinate-field/use-timeout-cleanup.js +30 -0
  710. package/dist/hooks/coordinate-field/use-timeout-cleanup.js.map +1 -1
  711. package/dist/hooks/use-frame-delay/index.d.ts +43 -0
  712. package/dist/hooks/use-frame-delay/index.js +66 -0
  713. package/dist/hooks/use-frame-delay/index.js.map +1 -0
  714. package/dist/hooks/use-tree/actions/index.d.ts +4 -2
  715. package/dist/hooks/use-tree/actions/index.js +4 -2
  716. package/dist/hooks/use-tree/actions/index.js.map +1 -1
  717. package/dist/hooks/use-tree/state/index.d.ts +7 -0
  718. package/dist/hooks/use-tree/state/index.js +7 -0
  719. package/dist/hooks/use-tree/state/index.js.map +1 -1
  720. package/dist/hooks/use-tree/types.d.ts +22 -0
  721. package/dist/index.d.ts +7 -4
  722. package/dist/index.js +4 -2
  723. package/dist/lib/types.d.ts +17 -0
  724. package/dist/lib/utils.d.ts +15 -0
  725. package/dist/lib/utils.js +15 -0
  726. package/dist/lib/utils.js.map +1 -1
  727. package/dist/providers/portal.d.ts +11 -2
  728. package/dist/providers/portal.js +9 -0
  729. package/dist/providers/portal.js.map +1 -1
  730. package/dist/providers/theme-provider.d.ts +18 -2
  731. package/dist/providers/theme-provider.js +15 -0
  732. package/dist/providers/theme-provider.js.map +1 -1
  733. package/package.json +15 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Label"],"sources":["../../../src/components/text-area-field/index.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport {\n composeRenderProps,\n FieldError,\n Text,\n TextArea,\n TextField,\n useContextProps,\n} from 'react-aria-components';\nimport { Label } from '../label';\nimport { TextAreaFieldContext } from './context';\nimport styles from './styles.module.css';\nimport type { TextAreaFieldProps } from './types';\n\n/**\n * TextAreaField - A multi-line text input component with label and validation\n *\n * Provides a complete form field experience for longer text content with integrated\n * label, description, and error message components. Handles validation states and\n * accessibility automatically while supporting resizable text areas.\n *\n * @example\n * // Basic text area field\n * <TextAreaField label=\"Comments\" />\n *\n * @example\n * // Text area with validation\n * <TextAreaField\n * isInvalid={true}\n * errorMessage='Message is required'\n * label='Foo'\n * isRequired\n * />\n */\nexport function TextAreaField({ ref, ...props }: TextAreaFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, TextAreaFieldContext);\n\n const {\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n label: labelProp,\n inputProps,\n size = 'medium',\n isInvalid: isInvalidProp,\n ...rest\n } = props;\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <TextField\n {...rest}\n aria-label={labelProp}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/text-area-field', styles.field, className),\n )}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)} // Leave uncontrolled if possible to fallback to validation state\n data-size={size}\n >\n {(\n { isDisabled, isInvalid, isRequired }, // Rely on internal state, not props, since state could differ from props\n ) => (\n <>\n {!!labelProp && !isSmall && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n <TextArea\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n />\n {!!descriptionProp && !(isSmall || isInvalid) && (\n <Text\n slot='description'\n className={clsx(styles.description, classNames?.description)}\n >\n {descriptionProp}\n </Text>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n </>\n )}\n </TextField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,SAAgB,cAAc,EAAE,KAAK,GAAG,SAA6B;AACnE,EAAC,OAAO,OAAO,gBAAgB,OAAO,OAAO,MAAM,qBAAqB;CAExE,MAAM,EACJ,YACA,aAAa,iBACb,cAAc,kBACd,OAAO,WACP,YACA,OAAO,UACP,WAAW,eACX,GAAG,SACD;CACJ,MAAM,eAAe,oBAAoB;CACzC,MAAM,UAAU,SAAS;AAEzB,QACE,oBAAC;EACC,GAAI;EACJ,cAAY;EACP;EACL,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,yBAAyB,OAAO,OAAO,UAAU,CACvD;EACD,WAAW,kBAAkB,eAAe,OAAO;EACnD,aAAW;aAGT,EAAE,YAAY,WAAW,iBAEzB;GACG,CAAC,CAAC,aAAa,CAAC,WACf,oBAACA;IACC,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;IACpC;IACA;cAEX;KACK;GAEV,oBAAC;IACC,GAAI;IACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;KACD;GACD,CAAC,CAAC,mBAAmB,EAAE,WAAW,cACjC,oBAAC;IACC,MAAK;IACL,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;cAE3D;KACI;GAET,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAEK"}
1
+ {"version":3,"file":"index.js","names":["Label"],"sources":["../../../src/components/text-area-field/index.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport {\n composeRenderProps,\n FieldError,\n Text,\n TextArea,\n TextField,\n useContextProps,\n} from 'react-aria-components';\nimport { Label } from '../label';\nimport { TextAreaFieldContext } from './context';\nimport styles from './styles.module.css';\nimport type { TextAreaFieldProps } from './types';\n\n/**\n * TextAreaField - Multi-line text input with label and validation\n *\n * Provides integrated label, description, and error message with automatic accessibility.\n *\n * @param props - {@link TextAreaFieldProps}\n * @param props.ref - Ref to the field container element.\n * @param props.classNames - Custom CSS class names for field elements.\n * @param props.description - Helper text displayed below the input.\n * @param props.errorMessage - Error message displayed when validation fails.\n * @param props.label - Label text for the field.\n * @param props.inputProps - Props passed to the underlying TextArea element.\n * @param props.size - Size variant of the field.\n * @param props.isInvalid - Whether the field is in an invalid state.\n * @returns The rendered TextAreaField component.\n *\n * @example\n * ```tsx\n * <TextAreaField\n * label=\"Description\"\n * placeholder=\"Enter description...\"\n * onChange={setDescription}\n * />\n * ```\n */\nexport function TextAreaField({ ref, ...props }: TextAreaFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, TextAreaFieldContext);\n\n const {\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n label: labelProp,\n inputProps,\n size = 'medium',\n isInvalid: isInvalidProp,\n ...rest\n } = props;\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <TextField\n {...rest}\n aria-label={labelProp}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/text-area-field', styles.field, className),\n )}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)} // Leave uncontrolled if possible to fallback to validation state\n data-size={size}\n >\n {(\n { isDisabled, isInvalid, isRequired }, // Rely on internal state, not props, since state could differ from props\n ) => (\n <>\n {!!labelProp && !isSmall && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n <TextArea\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n />\n {!!descriptionProp && !(isSmall || isInvalid) && (\n <Text\n slot='description'\n className={clsx(styles.description, classNames?.description)}\n >\n {descriptionProp}\n </Text>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n </>\n )}\n </TextField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,cAAc,EAAE,KAAK,GAAG,SAA6B;AACnE,EAAC,OAAO,OAAO,gBAAgB,OAAO,OAAO,MAAM,qBAAqB;CAExE,MAAM,EACJ,YACA,aAAa,iBACb,cAAc,kBACd,OAAO,WACP,YACA,OAAO,UACP,WAAW,eACX,GAAG,SACD;CACJ,MAAM,eAAe,oBAAoB;CACzC,MAAM,UAAU,SAAS;AAEzB,QACE,oBAAC;EACC,GAAI;EACJ,cAAY;EACP;EACL,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,yBAAyB,OAAO,OAAO,UAAU,CACvD;EACD,WAAW,kBAAkB,eAAe,OAAO;EACnD,aAAW;aAGT,EAAE,YAAY,WAAW,iBAEzB;GACG,CAAC,CAAC,aAAa,CAAC,WACf,oBAACA;IACC,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;IACpC;IACA;cAEX;KACK;GAEV,oBAAC;IACC,GAAI;IACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;KACD;GACD,CAAC,CAAC,mBAAmB,EAAE,WAAW,cACjC,oBAAC;IACC,MAAK;IACL,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;cAE3D;KACI;GAET,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAEK"}
@@ -41,7 +41,7 @@
41
41
  }
42
42
 
43
43
  @variant pressed {
44
- @apply outline-accent-primary-pressed;
44
+ @apply outline-interactive-pressed;
45
45
  }
46
46
 
47
47
  @variant group-invalid/text-area-field {
@@ -51,6 +51,10 @@
51
51
  @variant disabled {
52
52
  @apply fg-disabled outline-interactive-disabled;
53
53
  }
54
+
55
+ @variant read-only {
56
+ @apply px-0 outline-none;
57
+ }
54
58
  }
55
59
 
56
60
  .description {
@@ -14,7 +14,11 @@ import { RefAttributes } from "react";
14
14
  import { FieldErrorProps, TextAreaProps, TextFieldProps } from "react-aria-components";
15
15
 
16
16
  //#region src/components/text-area-field/types.d.ts
17
+ /**
18
+ * Props for the TextAreaField component.
19
+ */
17
20
  type TextAreaFieldProps = Omit<TextFieldProps, 'children' | 'className'> & RefAttributes<HTMLDivElement> & {
21
+ /** Custom CSS class names for field elements. */
18
22
  classNames?: {
19
23
  field?: TextFieldProps['className'];
20
24
  label?: string;
@@ -22,10 +26,15 @@ type TextAreaFieldProps = Omit<TextFieldProps, 'children' | 'className'> & RefAt
22
26
  description?: string;
23
27
  error?: FieldErrorProps['className'];
24
28
  };
29
+ /** Label text for the field. */
25
30
  label?: string;
31
+ /** Props passed to the underlying TextArea element. */
26
32
  inputProps?: Omit<TextAreaProps, 'className'> & RefAttributes<HTMLTextAreaElement>;
33
+ /** Helper text displayed below the input. */
27
34
  description?: string;
35
+ /** Error message displayed when validation fails. */
28
36
  errorMessage?: FieldErrorProps['children'];
37
+ /** Size variant of the field. */
29
38
  size?: 'medium' | 'small';
30
39
  };
31
40
  //#endregion
@@ -13,16 +13,36 @@
13
13
  import { ProviderProps } from "../../lib/types.js";
14
14
  import { TextFieldProps as TextFieldProps$1 } from "./types.js";
15
15
  import "client-only";
16
- import * as react29 from "react";
16
+ import * as react39 from "react";
17
17
  import { ContextValue } from "react-aria-components";
18
- import * as react_jsx_runtime119 from "react/jsx-runtime";
18
+ import * as react_jsx_runtime166 from "react/jsx-runtime";
19
19
 
20
20
  //#region src/components/text-field/context.d.ts
21
- declare const TextFieldContext: react29.Context<ContextValue<TextFieldProps$1, HTMLDivElement>>;
21
+ /** Context for sharing props across TextField components */
22
+ declare const TextFieldContext: react39.Context<ContextValue<TextFieldProps$1, HTMLDivElement>>;
23
+ /**
24
+ * Sets default props for all TextField components within.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <TextFieldProvider isRequired>
29
+ * <TextField label="First Name">
30
+ * <Input placeholder="Enter first name" />
31
+ * </TextField>
32
+ * <TextField label="Last Name">
33
+ * <Input placeholder="Enter last name" />
34
+ * </TextField>
35
+ * </TextFieldProvider>
36
+ * ```
37
+ *
38
+ * @param props - ProviderProps with TextFieldProps.
39
+ * @param props.children - Child components that receive the context.
40
+ * @returns The TextFieldContext provider wrapping children.
41
+ */
22
42
  declare function TextFieldProvider({
23
43
  children,
24
44
  ...props
25
- }: ProviderProps<TextFieldProps$1>): react_jsx_runtime119.JSX.Element;
45
+ }: ProviderProps<TextFieldProps$1>): react_jsx_runtime166.JSX.Element;
26
46
  //#endregion
27
47
  export { TextFieldContext, TextFieldProvider };
28
48
  //# sourceMappingURL=context.d.ts.map
@@ -18,7 +18,27 @@ import { createContext } from "react";
18
18
  import { jsx } from "react/jsx-runtime";
19
19
 
20
20
  //#region src/components/text-field/context.tsx
21
+ /** Context for sharing props across TextField components */
21
22
  const TextFieldContext = createContext(null);
23
+ /**
24
+ * Sets default props for all TextField components within.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <TextFieldProvider isRequired>
29
+ * <TextField label="First Name">
30
+ * <Input placeholder="Enter first name" />
31
+ * </TextField>
32
+ * <TextField label="Last Name">
33
+ * <Input placeholder="Enter last name" />
34
+ * </TextField>
35
+ * </TextFieldProvider>
36
+ * ```
37
+ *
38
+ * @param props - ProviderProps with TextFieldProps.
39
+ * @param props.children - Child components that receive the context.
40
+ * @returns The TextFieldContext provider wrapping children.
41
+ */
22
42
  function TextFieldProvider({ children, ...props }) {
23
43
  return /* @__PURE__ */ jsx(TextFieldContext.Provider, {
24
44
  value: props,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/text-field/context.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport type { ProviderProps } from '@/lib/types';\nimport 'client-only';\nimport { createContext } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport type { TextFieldProps } from './types';\n\nexport const TextFieldContext =\n createContext<ContextValue<TextFieldProps, HTMLDivElement>>(null);\n\nexport function TextFieldProvider({\n children,\n ...props\n}: ProviderProps<TextFieldProps>) {\n return (\n <TextFieldContext.Provider value={props}>\n {children}\n </TextFieldContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,MAAa,mBACX,cAA4D,KAAK;AAEnE,SAAgB,kBAAkB,EAChC,UACA,GAAG,SAC6B;AAChC,QACE,oBAAC,iBAAiB;EAAS,OAAO;EAC/B;GACyB"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/text-field/context.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport type { ProviderProps } from '@/lib/types';\nimport 'client-only';\nimport { createContext } from 'react';\nimport type { ContextValue } from 'react-aria-components';\nimport type { TextFieldProps } from './types';\n\n/** Context for sharing props across TextField components */\nexport const TextFieldContext =\n createContext<ContextValue<TextFieldProps, HTMLDivElement>>(null);\n\n/**\n * Sets default props for all TextField components within.\n *\n * @example\n * ```tsx\n * <TextFieldProvider isRequired>\n * <TextField label=\"First Name\">\n * <Input placeholder=\"Enter first name\" />\n * </TextField>\n * <TextField label=\"Last Name\">\n * <Input placeholder=\"Enter last name\" />\n * </TextField>\n * </TextFieldProvider>\n * ```\n *\n * @param props - ProviderProps with TextFieldProps.\n * @param props.children - Child components that receive the context.\n * @returns The TextFieldContext provider wrapping children.\n */\nexport function TextFieldProvider({\n children,\n ...props\n}: ProviderProps<TextFieldProps>) {\n return (\n <TextFieldContext.Provider value={props}>\n {children}\n </TextFieldContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBA,MAAa,mBACX,cAA4D,KAAK;;;;;;;;;;;;;;;;;;;;AAqBnE,SAAgB,kBAAkB,EAChC,UACA,GAAG,SAC6B;AAChC,QACE,oBAAC,iBAAiB;EAAS,OAAO;EAC/B;GACyB"}
@@ -12,100 +12,35 @@
12
12
 
13
13
  import { TextFieldProps } from "./types.js";
14
14
  import "client-only";
15
- import * as react_jsx_runtime148 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime169 from "react/jsx-runtime";
16
16
 
17
17
  //#region src/components/text-field/index.d.ts
18
18
 
19
19
  /**
20
- * TextField - A complete form field component with label, input, and validation
20
+ * TextField - Single-line text input with label and validation
21
21
  *
22
- * Provides a comprehensive form field experience combining label, input, description,
23
- * and error message components. Handles validation states and accessibility
24
- * automatically while supporting extensive customization through styling props.
22
+ * Provides integrated label, description, and error message with automatic accessibility.
25
23
  *
26
- * @example
27
- * // Basic text field with label and required validation
28
- * <TextField label='Full Name' isRequired defaultValue='John Doe' />
29
- *
30
- * @example
31
- * // Text field with placeholder and description
32
- * <TextField
33
- * label='Email Address'
34
- * inputProps={{ placeholder: 'Enter your email address', type: 'email' }}
35
- * description='We will never share your email with third parties'
36
- * />
37
- *
38
- * @example
39
- * // Text field with prefix for currency
40
- * <TextField
41
- * label='Price'
42
- * inputProps={{ placeholder: '0.00', type: 'number', prefix: '$' }}
43
- * description='Enter the price in dollars'
44
- * />
45
- *
46
- * @example
47
- * // Text field with suffix for units
48
- * <TextField
49
- * label='Weight'
50
- * inputProps={{ placeholder: '0', type: 'number', suffix: 'kg' }}
51
- * description='Enter the weight in kilograms'
52
- * />
53
- *
54
- * @example
55
- * // Text field with both prefix and suffix
56
- * <TextField
57
- * label='Temperature'
58
- * inputProps={{ placeholder: '0', type: 'number', prefix: '~', suffix: '°C' }}
59
- * description='Approximate temperature in Celsius'
60
- * />
61
- *
62
- * @example
63
- * // Text field with error state
64
- * <TextField
65
- * label='Username'
66
- * isInvalid
67
- * errorMessage='Username must be at least 3 characters long'
68
- * inputProps={{ placeholder: 'Enter username' }}
69
- * />
70
- *
71
- * @example
72
- * // Small size text field with clearable input
73
- * <TextField
74
- * label='Search'
75
- * size='small'
76
- * inputProps={{
77
- * placeholder: 'Type to search...',
78
- * isClearable: true,
79
- * type: 'search'
80
- * }}
81
- * />
82
- *
83
- * @example
84
- * // Disabled text field
85
- * <TextField
86
- * label='Status'
87
- * isDisabled
88
- * defaultValue='Inactive'
89
- * description='This field cannot be edited'
90
- * />
24
+ * @param props - {@link TextFieldProps}
25
+ * @param props.ref - Ref to the field container element.
26
+ * @param props.classNames - Custom CSS class names for field elements.
27
+ * @param props.description - Helper text displayed below the input.
28
+ * @param props.errorMessage - Error message displayed when validation fails.
29
+ * @param props.inputProps - Props passed to the underlying Input element.
30
+ * @param props.label - Label text for the field.
31
+ * @param props.size - Size variant of the field.
32
+ * @param props.isInvalid - Whether the field is in an invalid state.
33
+ * @returns The rendered TextField component.
91
34
  *
92
35
  * @example
93
- * // Password field with validation
94
- * <TextField
95
- * label='Password'
96
- * isRequired
97
- * inputProps={{
98
- * type: 'password',
99
- * placeholder: 'Enter a secure password',
100
- * minLength: 8
101
- * }}
102
- * description='Password must be at least 8 characters'
103
- * />
36
+ * ```tsx
37
+ * <TextField label="Email" type="email" onChange={setEmail} />
38
+ * ```
104
39
  */
105
40
  declare function TextField({
106
41
  ref,
107
42
  ...props
108
- }: TextFieldProps): react_jsx_runtime148.JSX.Element;
43
+ }: TextFieldProps): react_jsx_runtime169.JSX.Element;
109
44
  //#endregion
110
45
  export { TextField };
111
46
  //# sourceMappingURL=index.d.ts.map
@@ -24,90 +24,25 @@ import styles from "./styles.module.css";
24
24
 
25
25
  //#region src/components/text-field/index.tsx
26
26
  /**
27
- * TextField - A complete form field component with label, input, and validation
27
+ * TextField - Single-line text input with label and validation
28
28
  *
29
- * Provides a comprehensive form field experience combining label, input, description,
30
- * and error message components. Handles validation states and accessibility
31
- * automatically while supporting extensive customization through styling props.
29
+ * Provides integrated label, description, and error message with automatic accessibility.
32
30
  *
33
- * @example
34
- * // Basic text field with label and required validation
35
- * <TextField label='Full Name' isRequired defaultValue='John Doe' />
36
- *
37
- * @example
38
- * // Text field with placeholder and description
39
- * <TextField
40
- * label='Email Address'
41
- * inputProps={{ placeholder: 'Enter your email address', type: 'email' }}
42
- * description='We will never share your email with third parties'
43
- * />
44
- *
45
- * @example
46
- * // Text field with prefix for currency
47
- * <TextField
48
- * label='Price'
49
- * inputProps={{ placeholder: '0.00', type: 'number', prefix: '$' }}
50
- * description='Enter the price in dollars'
51
- * />
52
- *
53
- * @example
54
- * // Text field with suffix for units
55
- * <TextField
56
- * label='Weight'
57
- * inputProps={{ placeholder: '0', type: 'number', suffix: 'kg' }}
58
- * description='Enter the weight in kilograms'
59
- * />
60
- *
61
- * @example
62
- * // Text field with both prefix and suffix
63
- * <TextField
64
- * label='Temperature'
65
- * inputProps={{ placeholder: '0', type: 'number', prefix: '~', suffix: '°C' }}
66
- * description='Approximate temperature in Celsius'
67
- * />
68
- *
69
- * @example
70
- * // Text field with error state
71
- * <TextField
72
- * label='Username'
73
- * isInvalid
74
- * errorMessage='Username must be at least 3 characters long'
75
- * inputProps={{ placeholder: 'Enter username' }}
76
- * />
77
- *
78
- * @example
79
- * // Small size text field with clearable input
80
- * <TextField
81
- * label='Search'
82
- * size='small'
83
- * inputProps={{
84
- * placeholder: 'Type to search...',
85
- * isClearable: true,
86
- * type: 'search'
87
- * }}
88
- * />
89
- *
90
- * @example
91
- * // Disabled text field
92
- * <TextField
93
- * label='Status'
94
- * isDisabled
95
- * defaultValue='Inactive'
96
- * description='This field cannot be edited'
97
- * />
31
+ * @param props - {@link TextFieldProps}
32
+ * @param props.ref - Ref to the field container element.
33
+ * @param props.classNames - Custom CSS class names for field elements.
34
+ * @param props.description - Helper text displayed below the input.
35
+ * @param props.errorMessage - Error message displayed when validation fails.
36
+ * @param props.inputProps - Props passed to the underlying Input element.
37
+ * @param props.label - Label text for the field.
38
+ * @param props.size - Size variant of the field.
39
+ * @param props.isInvalid - Whether the field is in an invalid state.
40
+ * @returns The rendered TextField component.
98
41
  *
99
42
  * @example
100
- * // Password field with validation
101
- * <TextField
102
- * label='Password'
103
- * isRequired
104
- * inputProps={{
105
- * type: 'password',
106
- * placeholder: 'Enter a secure password',
107
- * minLength: 8
108
- * }}
109
- * description='Password must be at least 8 characters'
110
- * />
43
+ * ```tsx
44
+ * <TextField label="Email" type="email" onChange={setEmail} />
45
+ * ```
111
46
  */
112
47
  function TextField({ ref, ...props }) {
113
48
  [props, ref] = useContextProps(props, ref ?? null, TextFieldContext);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AriaTextField","Label","Input"],"sources":["../../../src/components/text-field/index.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport {\n TextField as AriaTextField,\n composeRenderProps,\n FieldError,\n Text,\n useContextProps,\n} from 'react-aria-components';\nimport { Input } from '../input';\nimport { Label } from '../label';\nimport { TextFieldContext } from './context';\nimport styles from './styles.module.css';\nimport type { TextFieldProps } from './types';\n\n/**\n * TextField - A complete form field component with label, input, and validation\n *\n * Provides a comprehensive form field experience combining label, input, description,\n * and error message components. Handles validation states and accessibility\n * automatically while supporting extensive customization through styling props.\n *\n * @example\n * // Basic text field with label and required validation\n * <TextField label='Full Name' isRequired defaultValue='John Doe' />\n *\n * @example\n * // Text field with placeholder and description\n * <TextField\n * label='Email Address'\n * inputProps={{ placeholder: 'Enter your email address', type: 'email' }}\n * description='We will never share your email with third parties'\n * />\n *\n * @example\n * // Text field with prefix for currency\n * <TextField\n * label='Price'\n * inputProps={{ placeholder: '0.00', type: 'number', prefix: '$' }}\n * description='Enter the price in dollars'\n * />\n *\n * @example\n * // Text field with suffix for units\n * <TextField\n * label='Weight'\n * inputProps={{ placeholder: '0', type: 'number', suffix: 'kg' }}\n * description='Enter the weight in kilograms'\n * />\n *\n * @example\n * // Text field with both prefix and suffix\n * <TextField\n * label='Temperature'\n * inputProps={{ placeholder: '0', type: 'number', prefix: '~', suffix: '°C' }}\n * description='Approximate temperature in Celsius'\n * />\n *\n * @example\n * // Text field with error state\n * <TextField\n * label='Username'\n * isInvalid\n * errorMessage='Username must be at least 3 characters long'\n * inputProps={{ placeholder: 'Enter username' }}\n * />\n *\n * @example\n * // Small size text field with clearable input\n * <TextField\n * label='Search'\n * size='small'\n * inputProps={{\n * placeholder: 'Type to search...',\n * isClearable: true,\n * type: 'search'\n * }}\n * />\n *\n * @example\n * // Disabled text field\n * <TextField\n * label='Status'\n * isDisabled\n * defaultValue='Inactive'\n * description='This field cannot be edited'\n * />\n *\n * @example\n * // Password field with validation\n * <TextField\n * label='Password'\n * isRequired\n * inputProps={{\n * type: 'password',\n * placeholder: 'Enter a secure password',\n * minLength: 8\n * }}\n * description='Password must be at least 8 characters'\n * />\n */\nexport function TextField({ ref, ...props }: TextFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, TextFieldContext);\n\n const {\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n inputProps,\n label: labelProp,\n size = 'medium',\n isInvalid: isInvalidProp,\n ...rest\n } = props;\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <AriaTextField\n {...rest}\n aria-label={labelProp}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/text-field', styles.field, className),\n )}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)} // Leave uncontrolled if possible to fallback to validation state\n data-size={size}\n >\n {(\n { isDisabled, isInvalid, isRequired }, // Rely on internal state, not props, since state could differ from props\n ) => (\n <>\n {!!labelProp && !isSmall && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n <Input\n {...inputProps}\n classNames={{\n ...classNames?.input,\n sizer: clsx(styles.input, classNames?.input?.sizer),\n }}\n disabled={isDisabled}\n required={isRequired}\n size={size}\n isInvalid={isInvalid}\n />\n {!!descriptionProp && !(isSmall || isInvalid) && (\n <Text\n slot='description'\n className={clsx(styles.description, classNames?.description)}\n >\n {descriptionProp}\n </Text>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n </>\n )}\n </AriaTextField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkHA,SAAgB,UAAU,EAAE,KAAK,GAAG,SAAyB;AAC3D,EAAC,OAAO,OAAO,gBAAgB,OAAO,OAAO,MAAM,iBAAiB;CAEpE,MAAM,EACJ,YACA,aAAa,iBACb,cAAc,kBACd,YACA,OAAO,WACP,OAAO,UACP,WAAW,eACX,GAAG,SACD;CACJ,MAAM,eAAe,oBAAoB;CACzC,MAAM,UAAU,SAAS;AAEzB,QACE,oBAACA;EACC,GAAI;EACJ,cAAY;EACP;EACL,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,oBAAoB,OAAO,OAAO,UAAU,CAClD;EACD,WAAW,kBAAkB,eAAe,OAAO;EACnD,aAAW;aAGT,EAAE,YAAY,WAAW,iBAEzB;GACG,CAAC,CAAC,aAAa,CAAC,WACf,oBAACC;IACC,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;IACpC;IACA;cAEX;KACK;GAEV,oBAACC;IACC,GAAI;IACJ,YAAY;KACV,GAAG,YAAY;KACf,OAAO,KAAK,OAAO,OAAO,YAAY,OAAO,MAAM;KACpD;IACD,UAAU;IACV,UAAU;IACJ;IACK;KACX;GACD,CAAC,CAAC,mBAAmB,EAAE,WAAW,cACjC,oBAAC;IACC,MAAK;IACL,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;cAE3D;KACI;GAET,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAES"}
1
+ {"version":3,"file":"index.js","names":["AriaTextField","Label","Input"],"sources":["../../../src/components/text-field/index.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport {\n TextField as AriaTextField,\n composeRenderProps,\n FieldError,\n Text,\n useContextProps,\n} from 'react-aria-components';\nimport { Input } from '../input';\nimport { Label } from '../label';\nimport { TextFieldContext } from './context';\nimport styles from './styles.module.css';\nimport type { TextFieldProps } from './types';\n\n/**\n * TextField - Single-line text input with label and validation\n *\n * Provides integrated label, description, and error message with automatic accessibility.\n *\n * @param props - {@link TextFieldProps}\n * @param props.ref - Ref to the field container element.\n * @param props.classNames - Custom CSS class names for field elements.\n * @param props.description - Helper text displayed below the input.\n * @param props.errorMessage - Error message displayed when validation fails.\n * @param props.inputProps - Props passed to the underlying Input element.\n * @param props.label - Label text for the field.\n * @param props.size - Size variant of the field.\n * @param props.isInvalid - Whether the field is in an invalid state.\n * @returns The rendered TextField component.\n *\n * @example\n * ```tsx\n * <TextField label=\"Email\" type=\"email\" onChange={setEmail} />\n * ```\n */\nexport function TextField({ ref, ...props }: TextFieldProps) {\n [props, ref] = useContextProps(props, ref ?? null, TextFieldContext);\n\n const {\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n inputProps,\n label: labelProp,\n size = 'medium',\n isInvalid: isInvalidProp,\n ...rest\n } = props;\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <AriaTextField\n {...rest}\n aria-label={labelProp}\n ref={ref}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/text-field', styles.field, className),\n )}\n isInvalid={isInvalidProp || (errorMessage ? true : undefined)} // Leave uncontrolled if possible to fallback to validation state\n data-size={size}\n >\n {(\n { isDisabled, isInvalid, isRequired }, // Rely on internal state, not props, since state could differ from props\n ) => (\n <>\n {!!labelProp && !isSmall && (\n <Label\n className={clsx(styles.label, classNames?.label)}\n isDisabled={isDisabled}\n isRequired={isRequired}\n >\n {labelProp}\n </Label>\n )}\n <Input\n {...inputProps}\n classNames={{\n ...classNames?.input,\n sizer: clsx(styles.input, classNames?.input?.sizer),\n }}\n disabled={isDisabled}\n required={isRequired}\n size={size}\n isInvalid={isInvalid}\n />\n {!!descriptionProp && !(isSmall || isInvalid) && (\n <Text\n slot='description'\n className={clsx(styles.description, classNames?.description)}\n >\n {descriptionProp}\n </Text>\n )}\n <FieldError\n className={composeRenderProps(classNames?.error, (className) =>\n clsx(styles.error, className),\n )}\n >\n {errorMessage}\n </FieldError>\n </>\n )}\n </AriaTextField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,SAAgB,UAAU,EAAE,KAAK,GAAG,SAAyB;AAC3D,EAAC,OAAO,OAAO,gBAAgB,OAAO,OAAO,MAAM,iBAAiB;CAEpE,MAAM,EACJ,YACA,aAAa,iBACb,cAAc,kBACd,YACA,OAAO,WACP,OAAO,UACP,WAAW,eACX,GAAG,SACD;CACJ,MAAM,eAAe,oBAAoB;CACzC,MAAM,UAAU,SAAS;AAEzB,QACE,oBAACA;EACC,GAAI;EACJ,cAAY;EACP;EACL,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,oBAAoB,OAAO,OAAO,UAAU,CAClD;EACD,WAAW,kBAAkB,eAAe,OAAO;EACnD,aAAW;aAGT,EAAE,YAAY,WAAW,iBAEzB;GACG,CAAC,CAAC,aAAa,CAAC,WACf,oBAACC;IACC,WAAW,KAAK,OAAO,OAAO,YAAY,MAAM;IACpC;IACA;cAEX;KACK;GAEV,oBAACC;IACC,GAAI;IACJ,YAAY;KACV,GAAG,YAAY;KACf,OAAO,KAAK,OAAO,OAAO,YAAY,OAAO,MAAM;KACpD;IACD,UAAU;IACV,UAAU;IACJ;IACK;KACX;GACD,CAAC,CAAC,mBAAmB,EAAE,WAAW,cACjC,oBAAC;IACC,MAAK;IACL,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;cAE3D;KACI;GAET,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAES"}
@@ -16,7 +16,11 @@ import { RefAttributes } from "react";
16
16
  import { FieldErrorProps, TextFieldProps as TextFieldProps$1 } from "react-aria-components";
17
17
 
18
18
  //#region src/components/text-field/types.d.ts
19
+ /**
20
+ * Props for the TextField component.
21
+ */
19
22
  type TextFieldProps = Omit<TextFieldProps$1, 'children' | 'className' | 'type' | 'pattern'> & RefAttributes<HTMLDivElement> & {
23
+ /** Custom CSS class names for field elements. */
20
24
  classNames?: {
21
25
  field?: TextFieldProps$1['className'];
22
26
  label?: LabelProps$1['className'];
@@ -24,10 +28,15 @@ type TextFieldProps = Omit<TextFieldProps$1, 'children' | 'className' | 'type' |
24
28
  description?: string;
25
29
  error?: FieldErrorProps['className'];
26
30
  };
31
+ /** Label text for the field. */
27
32
  label?: string;
33
+ /** Props passed to the underlying Input element. */
28
34
  inputProps?: InputProps$1;
35
+ /** Helper text displayed below the input. */
29
36
  description?: string;
37
+ /** Error message displayed when validation fails. */
30
38
  errorMessage?: string;
39
+ /** Size variant of the field. */
31
40
  size?: 'medium' | 'small';
32
41
  };
33
42
  //#endregion
@@ -13,17 +13,35 @@
13
13
  import { TimeFieldProps as TimeFieldProps$1 } from "./types.js";
14
14
  import "client-only";
15
15
  import { TimeValue } from "react-aria-components";
16
- import * as react_jsx_runtime145 from "react/jsx-runtime";
16
+ import * as react_jsx_runtime161 from "react/jsx-runtime";
17
17
 
18
18
  //#region src/components/time-field/index.d.ts
19
+
19
20
  /**
20
21
  * TimeField - Form input for time values
21
22
  *
22
- * A time input field with configurable granularity and size, built on React
23
- * Aria components and suitable for forms requiring time entry.
23
+ * Provides configurable granularity, 12/24-hour format, and automatic accessibility.
24
+ *
25
+ * @param props - {@link TimeFieldProps}
26
+ * @param props.classNames - Custom CSS class names for field elements.
27
+ * @param props.description - Helper text displayed below the input.
28
+ * @param props.errorMessage - Error message displayed when validation fails.
29
+ * @param props.granularity - The granularity of the time value (hour, minute, second).
30
+ * @param props.hourCycle - Whether to use 12 or 24 hour time format.
31
+ * @param props.inputProps - Props passed to the underlying DateInput element.
32
+ * @param props.label - Label text for the field.
33
+ * @param props.shouldForceLeadingZeros - Whether to force leading zeros in time segments.
34
+ * @param props.size - Size variant of the field.
35
+ * @param props.isDisabled - Whether the field is disabled.
36
+ * @param props.isInvalid - Whether the field is in an invalid state.
37
+ * @param props.isRequired - Whether the field is required.
38
+ * @param props.isReadOnly - Whether the field is read-only.
39
+ * @returns The rendered TimeField component.
24
40
  *
25
41
  * @example
26
- * <TimeField label="Time" granularity="second" />
42
+ * ```tsx
43
+ * <TimeField label="Start time" granularity="minute" onChange={setTime} />
44
+ * ```
27
45
  */
28
46
  declare function TimeField<T extends TimeValue>({
29
47
  classNames,
@@ -38,8 +56,9 @@ declare function TimeField<T extends TimeValue>({
38
56
  isDisabled,
39
57
  isInvalid: isInvalidProp,
40
58
  isRequired,
59
+ isReadOnly,
41
60
  ...rest
42
- }: TimeFieldProps$1<T>): react_jsx_runtime145.JSX.Element;
61
+ }: TimeFieldProps$1<T>): react_jsx_runtime161.JSX.Element;
43
62
  //#endregion
44
63
  export { TimeField };
45
64
  //# sourceMappingURL=index.d.ts.map
@@ -19,20 +19,37 @@ import "client-only";
19
19
  import { clsx } from "@accelint/design-foundation/lib/utils";
20
20
  import { DateInput, DateSegment, FieldError, Text, TimeField as TimeField$1, composeRenderProps } from "react-aria-components";
21
21
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
- import { Time } from "@accelint/icons";
22
+ import Time from "@accelint/icons/time";
23
23
  import styles from "./styles.module.css";
24
24
 
25
25
  //#region src/components/time-field/index.tsx
26
26
  /**
27
27
  * TimeField - Form input for time values
28
28
  *
29
- * A time input field with configurable granularity and size, built on React
30
- * Aria components and suitable for forms requiring time entry.
29
+ * Provides configurable granularity, 12/24-hour format, and automatic accessibility.
30
+ *
31
+ * @param props - {@link TimeFieldProps}
32
+ * @param props.classNames - Custom CSS class names for field elements.
33
+ * @param props.description - Helper text displayed below the input.
34
+ * @param props.errorMessage - Error message displayed when validation fails.
35
+ * @param props.granularity - The granularity of the time value (hour, minute, second).
36
+ * @param props.hourCycle - Whether to use 12 or 24 hour time format.
37
+ * @param props.inputProps - Props passed to the underlying DateInput element.
38
+ * @param props.label - Label text for the field.
39
+ * @param props.shouldForceLeadingZeros - Whether to force leading zeros in time segments.
40
+ * @param props.size - Size variant of the field.
41
+ * @param props.isDisabled - Whether the field is disabled.
42
+ * @param props.isInvalid - Whether the field is in an invalid state.
43
+ * @param props.isRequired - Whether the field is required.
44
+ * @param props.isReadOnly - Whether the field is read-only.
45
+ * @returns The rendered TimeField component.
31
46
  *
32
47
  * @example
33
- * <TimeField label="Time" granularity="second" />
48
+ * ```tsx
49
+ * <TimeField label="Start time" granularity="minute" onChange={setTime} />
50
+ * ```
34
51
  */
35
- function TimeField({ classNames, description: descriptionProp, errorMessage: errorMessageProp, granularity = "second", hourCycle = 24, inputProps, label: labelProp, shouldForceLeadingZeros = true, size = "medium", isDisabled, isInvalid: isInvalidProp, isRequired, ...rest }) {
52
+ function TimeField({ classNames, description: descriptionProp, errorMessage: errorMessageProp, granularity = "second", hourCycle = 24, inputProps, label: labelProp, shouldForceLeadingZeros = true, size = "medium", isDisabled, isInvalid: isInvalidProp, isRequired, isReadOnly = false, ...rest }) {
36
53
  const errorMessage = errorMessageProp || null;
37
54
  const isSmall = size === "small";
38
55
  return /* @__PURE__ */ jsx(TimeField$1, {
@@ -44,6 +61,7 @@ function TimeField({ classNames, description: descriptionProp, errorMessage: err
44
61
  isDisabled,
45
62
  isInvalid: isInvalidProp || (errorMessage ? true : void 0),
46
63
  isRequired,
64
+ isReadOnly,
47
65
  "aria-label": labelProp,
48
66
  "data-size": size,
49
67
  children: ({ isDisabled: isDisabled$1 }) => /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -55,8 +73,9 @@ function TimeField({ classNames, description: descriptionProp, errorMessage: err
55
73
  }),
56
74
  /* @__PURE__ */ jsxs("div", {
57
75
  className: clsx(styles.control, classNames?.control),
76
+ "data-readonly": isReadOnly || null,
58
77
  children: [
59
- size === "medium" && /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(Time, {}) }),
78
+ !isReadOnly && size === "medium" && /* @__PURE__ */ jsx(Icon, { children: /* @__PURE__ */ jsx(Time, {}) }),
60
79
  /* @__PURE__ */ jsx(DateInput, {
61
80
  ...inputProps,
62
81
  className: composeRenderProps(classNames?.input, (className) => clsx(styles.input, className)),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["AriaTimeField","Label","isDisabled","AriaDateInput","AriaText"],"sources":["../../../src/components/time-field/index.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport { Time } from '@accelint/icons';\nimport {\n DateInput as AriaDateInput,\n Text as AriaText,\n TimeField as AriaTimeField,\n composeRenderProps,\n DateSegment,\n FieldError,\n type TimeValue,\n} from 'react-aria-components';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport styles from './styles.module.css';\nimport type { TimeFieldProps } from './types';\n\n/**\n * TimeField - Form input for time values\n *\n * A time input field with configurable granularity and size, built on React\n * Aria components and suitable for forms requiring time entry.\n *\n * @example\n * <TimeField label=\"Time\" granularity=\"second\" />\n */\nexport function TimeField<T extends TimeValue>({\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n granularity = 'second',\n hourCycle = 24,\n inputProps,\n label: labelProp,\n shouldForceLeadingZeros = true,\n size = 'medium',\n isDisabled,\n isInvalid: isInvalidProp,\n isRequired,\n ...rest\n}: TimeFieldProps<T>) {\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <AriaTimeField<T>\n {...rest}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/time-field', styles.field, className),\n )}\n granularity={granularity}\n hourCycle={hourCycle}\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 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 className={clsx(styles.control, classNames?.control)}>\n {size === 'medium' && (\n <Icon>\n <Time />\n </Icon>\n )}\n <AriaDateInput\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n >\n {(segmentProp) => (\n <DateSegment\n segment={segmentProp}\n className={composeRenderProps(\n classNames?.segment,\n (className) => clsx(styles.segment, className),\n )}\n />\n )}\n </AriaDateInput>\n <span>Z</span>\n </div>\n {descriptionProp && !(isSmall || isInvalidProp) && !errorMessage && (\n <AriaText\n slot='description'\n className={clsx(styles.description, classNames?.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 </AriaTimeField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgB,UAA+B,EAC7C,YACA,aAAa,iBACb,cAAc,kBACd,cAAc,UACd,YAAY,IACZ,YACA,OAAO,WACP,0BAA0B,MAC1B,OAAO,UACP,YACA,WAAW,eACX,YACA,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;EACY;EACF;EACc;EACb;EACZ,WAAW,kBAAkB,eAAe,OAAO;EACvC;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;IAAI,WAAW,KAAK,OAAO,SAAS,YAAY,QAAQ;;KACtD,SAAS,YACR,oBAAC,kBACC,oBAAC,SAAO,GACH;KAET,oBAACC;MACC,GAAI;MACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;iBAEC,gBACA,oBAAC;OACC,SAAS;OACT,WAAW,mBACT,YAAY,UACX,cAAc,KAAK,OAAO,SAAS,UAAU,CAC/C;QACD;OAEU;KAChB,oBAAC,oBAAK,MAAQ;;KACV;GACL,mBAAmB,EAAE,WAAW,kBAAkB,CAAC,gBAClD,oBAACC;IACC,MAAK;IACL,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;cAE3D;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":["AriaTimeField","Label","isDisabled","AriaDateInput","AriaText"],"sources":["../../../src/components/time-field/index.tsx"],"sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { clsx } from '@accelint/design-foundation/lib/utils';\nimport Time from '@accelint/icons/time';\nimport {\n DateInput as AriaDateInput,\n Text as AriaText,\n TimeField as AriaTimeField,\n composeRenderProps,\n DateSegment,\n FieldError,\n type TimeValue,\n} from 'react-aria-components';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport styles from './styles.module.css';\nimport type { TimeFieldProps } from './types';\n\n/**\n * TimeField - Form input for time values\n *\n * Provides configurable granularity, 12/24-hour format, and automatic accessibility.\n *\n * @param props - {@link TimeFieldProps}\n * @param props.classNames - Custom CSS class names for field elements.\n * @param props.description - Helper text displayed below the input.\n * @param props.errorMessage - Error message displayed when validation fails.\n * @param props.granularity - The granularity of the time value (hour, minute, second).\n * @param props.hourCycle - Whether to use 12 or 24 hour time format.\n * @param props.inputProps - Props passed to the underlying DateInput element.\n * @param props.label - Label text for the field.\n * @param props.shouldForceLeadingZeros - Whether to force leading zeros in time segments.\n * @param props.size - Size variant of the field.\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 rendered TimeField component.\n *\n * @example\n * ```tsx\n * <TimeField label=\"Start time\" granularity=\"minute\" onChange={setTime} />\n * ```\n */\nexport function TimeField<T extends TimeValue>({\n classNames,\n description: descriptionProp,\n errorMessage: errorMessageProp,\n granularity = 'second',\n hourCycle = 24,\n inputProps,\n label: labelProp,\n shouldForceLeadingZeros = true,\n size = 'medium',\n isDisabled,\n isInvalid: isInvalidProp,\n isRequired,\n isReadOnly = false,\n ...rest\n}: TimeFieldProps<T>) {\n const errorMessage = errorMessageProp || null; // Protect against empty string\n const isSmall = size === 'small';\n\n return (\n <AriaTimeField<T>\n {...rest}\n className={composeRenderProps(classNames?.field, (className) =>\n clsx('group/time-field', styles.field, className),\n )}\n granularity={granularity}\n hourCycle={hourCycle}\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 <Time />\n </Icon>\n )}\n <AriaDateInput\n {...inputProps}\n className={composeRenderProps(classNames?.input, (className) =>\n clsx(styles.input, className),\n )}\n >\n {(segmentProp) => (\n <DateSegment\n segment={segmentProp}\n className={composeRenderProps(\n classNames?.segment,\n (className) => clsx(styles.segment, className),\n )}\n />\n )}\n </AriaDateInput>\n <span>Z</span>\n </div>\n {descriptionProp && !(isSmall || isInvalidProp) && !errorMessage && (\n <AriaText\n slot='description'\n className={clsx(styles.description, classNames?.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 </AriaTimeField>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAgB,UAA+B,EAC7C,YACA,aAAa,iBACb,cAAc,kBACd,cAAc,UACd,YAAY,IACZ,YACA,OAAO,WACP,0BAA0B,MAC1B,OAAO,UACP,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;EACY;EACF;EACc;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;;KAE5B,CAAC,cAAc,SAAS,YACvB,oBAAC,kBACC,oBAAC,SAAO,GACH;KAET,oBAACC;MACC,GAAI;MACJ,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;iBAEC,gBACA,oBAAC;OACC,SAAS;OACT,WAAW,mBACT,YAAY,UACX,cAAc,KAAK,OAAO,SAAS,UAAU,CAC/C;QACD;OAEU;KAChB,oBAAC,oBAAK,MAAQ;;KACV;GACL,mBAAmB,EAAE,WAAW,kBAAkB,CAAC,gBAClD,oBAACC;IACC,MAAK;IACL,WAAW,KAAK,OAAO,aAAa,YAAY,YAAY;cAE3D;KACQ;GAEb,oBAAC;IACC,WAAW,mBAAmB,YAAY,QAAQ,cAChD,KAAK,OAAO,OAAO,UAAU,CAC9B;cAEA;KACU;MACZ;GAES"}
@@ -18,7 +18,7 @@
18
18
  }
19
19
 
20
20
  .control {
21
- @apply gap-xs rounded-medium px-s py-xs font-display outline-interactive fg-primary-bold flex w-full items-center outline;
21
+ @apply gap-xs rounded-medium px-s py-xs font-display fg-primary-bold outline-interactive flex w-full items-center outline;
22
22
 
23
23
  @variant group-size-medium/time-field {
24
24
  @apply text-body-s;
@@ -35,7 +35,6 @@
35
35
  @variant focus-visible-within {
36
36
  @apply outline-accent-primary-bold;
37
37
  }
38
-
39
38
  @variant group-invalid/time-field {
40
39
  @apply outline-serious-bold;
41
40
  }
@@ -43,6 +42,10 @@
43
42
  @variant group-disabled/time-field {
44
43
  @apply fg-disabled outline-interactive-disabled;
45
44
  }
45
+
46
+ @variant read-only {
47
+ @apply px-0 outline-none;
48
+ }
46
49
  }
47
50
 
48
51
  .input {