@techzyapp/ui-library 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (943) hide show
  1. package/dist/Accordion-CAxa1I-m.js +112 -0
  2. package/dist/Accordion-CAxa1I-m.js.map +1 -0
  3. package/dist/Accordion-Dy_dM79Y.cjs +2 -0
  4. package/dist/Accordion-Dy_dM79Y.cjs.map +1 -0
  5. package/dist/Alert-BQpA48PY.js +71 -0
  6. package/dist/Alert-BQpA48PY.js.map +1 -0
  7. package/dist/Alert-DKIjM-9x.cjs +2 -0
  8. package/dist/Alert-DKIjM-9x.cjs.map +1 -0
  9. package/dist/Avatar-BJVCdo-K.js +60 -0
  10. package/dist/Avatar-BJVCdo-K.js.map +1 -0
  11. package/dist/Avatar-_ufXh3AY.cjs +2 -0
  12. package/dist/Avatar-_ufXh3AY.cjs.map +1 -0
  13. package/dist/AvatarGroup-DdJf4aT7.js +33 -0
  14. package/dist/AvatarGroup-DdJf4aT7.js.map +1 -0
  15. package/dist/AvatarGroup-TW1pt4tj.cjs +2 -0
  16. package/dist/AvatarGroup-TW1pt4tj.cjs.map +1 -0
  17. package/dist/Badge-BQpr2Jee.cjs +2 -0
  18. package/dist/Badge-BQpr2Jee.cjs.map +1 -0
  19. package/dist/Badge-DSWigoGC.js +50 -0
  20. package/dist/Badge-DSWigoGC.js.map +1 -0
  21. package/dist/Breadcrumbs-Bx5UgwDy.js +35 -0
  22. package/dist/Breadcrumbs-Bx5UgwDy.js.map +1 -0
  23. package/dist/Breadcrumbs-CHONper7.cjs +2 -0
  24. package/dist/Breadcrumbs-CHONper7.cjs.map +1 -0
  25. package/dist/Button-D4bfVNNa.cjs +2 -0
  26. package/dist/Button-D4bfVNNa.cjs.map +1 -0
  27. package/dist/Button-DhEv0YFk.js +72 -0
  28. package/dist/Button-DhEv0YFk.js.map +1 -0
  29. package/dist/Calendar-Bh317SaV.js +267 -0
  30. package/dist/Calendar-Bh317SaV.js.map +1 -0
  31. package/dist/Calendar-C8uNezI-.cjs +2 -0
  32. package/dist/Calendar-C8uNezI-.cjs.map +1 -0
  33. package/dist/Card-CfyaerZZ.cjs +2 -0
  34. package/dist/Card-CfyaerZZ.cjs.map +1 -0
  35. package/dist/Card-DzClqJuu.js +118 -0
  36. package/dist/Card-DzClqJuu.js.map +1 -0
  37. package/dist/Checkbox-DXOzYIAz.cjs +2 -0
  38. package/dist/Checkbox-DXOzYIAz.cjs.map +1 -0
  39. package/dist/Checkbox-XKL_Q5qj.js +84 -0
  40. package/dist/Checkbox-XKL_Q5qj.js.map +1 -0
  41. package/dist/Chip-Cfo0v3Z8.js +92 -0
  42. package/dist/Chip-Cfo0v3Z8.js.map +1 -0
  43. package/dist/Chip-DSrdXLBU.cjs +2 -0
  44. package/dist/Chip-DSrdXLBU.cjs.map +1 -0
  45. package/dist/ChoiceCardGroup-6eFM1eL0.cjs +2 -0
  46. package/dist/ChoiceCardGroup-6eFM1eL0.cjs.map +1 -0
  47. package/dist/ChoiceCardGroup-CvFzZlgI.js +181 -0
  48. package/dist/ChoiceCardGroup-CvFzZlgI.js.map +1 -0
  49. package/dist/CodeBlock-DOk5wekc.cjs +2 -0
  50. package/dist/CodeBlock-DOk5wekc.cjs.map +1 -0
  51. package/dist/CodeBlock-n3KExtTO.js +104 -0
  52. package/dist/CodeBlock-n3KExtTO.js.map +1 -0
  53. package/dist/Col-D2TfZKiM.js +13 -0
  54. package/dist/Col-D2TfZKiM.js.map +1 -0
  55. package/dist/Col-R5mAy8T9.cjs +2 -0
  56. package/dist/Col-R5mAy8T9.cjs.map +1 -0
  57. package/dist/ColorPicker-2udt1ORM.js +119 -0
  58. package/dist/ColorPicker-2udt1ORM.js.map +1 -0
  59. package/dist/ColorPicker-BwmaXCOy.cjs +2 -0
  60. package/dist/ColorPicker-BwmaXCOy.cjs.map +1 -0
  61. package/dist/ColorPickerPanel-BM9OwDDE.js +336 -0
  62. package/dist/ColorPickerPanel-BM9OwDDE.js.map +1 -0
  63. package/dist/ColorPickerPanel-ByB1mLSi.cjs +2 -0
  64. package/dist/ColorPickerPanel-ByB1mLSi.cjs.map +1 -0
  65. package/dist/ConfigProvider-2c94kUOk.js +291 -0
  66. package/dist/ConfigProvider-2c94kUOk.js.map +1 -0
  67. package/dist/ConfigProvider-ByOFXVyP.cjs +2 -0
  68. package/dist/ConfigProvider-ByOFXVyP.cjs.map +1 -0
  69. package/dist/DatePicker-DF4Epkn8.cjs +2 -0
  70. package/dist/DatePicker-DF4Epkn8.cjs.map +1 -0
  71. package/dist/DatePicker-WM9TC6L_.js +191 -0
  72. package/dist/DatePicker-WM9TC6L_.js.map +1 -0
  73. package/dist/DatePicker.module-BZDftL4g.js +138 -0
  74. package/dist/DatePicker.module-BZDftL4g.js.map +1 -0
  75. package/dist/DatePicker.module-tE-tGNBd.cjs +2 -0
  76. package/dist/DatePicker.module-tE-tGNBd.cjs.map +1 -0
  77. package/dist/DateTimePicker-C557OjBU.cjs +2 -0
  78. package/dist/DateTimePicker-C557OjBU.cjs.map +1 -0
  79. package/dist/DateTimePicker-DBtcWK0F.js +245 -0
  80. package/dist/DateTimePicker-DBtcWK0F.js.map +1 -0
  81. package/dist/Divider-CzbhdCiD.cjs +2 -0
  82. package/dist/Divider-CzbhdCiD.cjs.map +1 -0
  83. package/dist/Divider-LtH3dLgw.js +36 -0
  84. package/dist/Divider-LtH3dLgw.js.map +1 -0
  85. package/dist/Dropdown-DKAXue5_.js +146 -0
  86. package/dist/Dropdown-DKAXue5_.js.map +1 -0
  87. package/dist/Dropdown-DygP50OB.cjs +2 -0
  88. package/dist/Dropdown-DygP50OB.cjs.map +1 -0
  89. package/dist/EmptyState-CCCpZ-ZA.cjs +2 -0
  90. package/dist/EmptyState-CCCpZ-ZA.cjs.map +1 -0
  91. package/dist/EmptyState-CetM49vk.js +38 -0
  92. package/dist/EmptyState-CetM49vk.js.map +1 -0
  93. package/dist/FileUploader-B4TJHyoi.cjs +2 -0
  94. package/dist/FileUploader-B4TJHyoi.cjs.map +1 -0
  95. package/dist/FileUploader-VtmmwUFE.js +684 -0
  96. package/dist/FileUploader-VtmmwUFE.js.map +1 -0
  97. package/dist/Flag-BWCX6oSR.js +24 -0
  98. package/dist/Flag-BWCX6oSR.js.map +1 -0
  99. package/dist/Flag-EPZOrH-U.cjs +2 -0
  100. package/dist/Flag-EPZOrH-U.cjs.map +1 -0
  101. package/dist/Flex-Bj3mMF5A.js +50 -0
  102. package/dist/Flex-Bj3mMF5A.js.map +1 -0
  103. package/dist/Flex-CqL3Ghda.cjs +2 -0
  104. package/dist/Flex-CqL3Ghda.cjs.map +1 -0
  105. package/dist/FloatingPanel-BG9Uag__.js +131 -0
  106. package/dist/FloatingPanel-BG9Uag__.js.map +1 -0
  107. package/dist/FloatingPanel-U6sGYiSK.cjs +2 -0
  108. package/dist/FloatingPanel-U6sGYiSK.cjs.map +1 -0
  109. package/dist/Form-Bz2xgkEm.cjs +2 -0
  110. package/dist/Form-Bz2xgkEm.cjs.map +1 -0
  111. package/dist/Form-kglaJYr5.js +9 -0
  112. package/dist/Form-kglaJYr5.js.map +1 -0
  113. package/dist/FullscreenToggle-DDKN5n8B.cjs +2 -0
  114. package/dist/FullscreenToggle-DDKN5n8B.cjs.map +1 -0
  115. package/dist/FullscreenToggle-oWzYqUPH.js +42 -0
  116. package/dist/FullscreenToggle-oWzYqUPH.js.map +1 -0
  117. package/dist/Grid-Bw95bKkJ.cjs +2 -0
  118. package/dist/Grid-Bw95bKkJ.cjs.map +1 -0
  119. package/dist/Grid-CY-syhTX.js +24 -0
  120. package/dist/Grid-CY-syhTX.js.map +1 -0
  121. package/dist/Icon-CXTl_QAP.cjs +2 -0
  122. package/dist/Icon-CXTl_QAP.cjs.map +1 -0
  123. package/dist/Icon-CophpkHo.js +1228 -0
  124. package/dist/Icon-CophpkHo.js.map +1 -0
  125. package/dist/IconButton-CBusrDa9.js +68 -0
  126. package/dist/IconButton-CBusrDa9.js.map +1 -0
  127. package/dist/IconButton-D6TenQZ_.cjs +2 -0
  128. package/dist/IconButton-D6TenQZ_.cjs.map +1 -0
  129. package/dist/List-BHgFI9Ll.js +26 -0
  130. package/dist/List-BHgFI9Ll.js.map +1 -0
  131. package/dist/List-CNz2M3-q.cjs +2 -0
  132. package/dist/List-CNz2M3-q.cjs.map +1 -0
  133. package/dist/ListItem-B4yqZR-Z.js +74 -0
  134. package/dist/ListItem-B4yqZR-Z.js.map +1 -0
  135. package/dist/ListItem-RH-D-Wey.cjs +2 -0
  136. package/dist/ListItem-RH-D-Wey.cjs.map +1 -0
  137. package/dist/Loader-C4JoXOyA.js +28 -0
  138. package/dist/Loader-C4JoXOyA.js.map +1 -0
  139. package/dist/Loader-D1MtlQOH.cjs +2 -0
  140. package/dist/Loader-D1MtlQOH.cjs.map +1 -0
  141. package/dist/Modal-B2YSCVVt.cjs +2 -0
  142. package/dist/Modal-B2YSCVVt.cjs.map +1 -0
  143. package/dist/Modal-BuaPDlKV.js +195 -0
  144. package/dist/Modal-BuaPDlKV.js.map +1 -0
  145. package/dist/MultiSelect-BGRT_B60.js +350 -0
  146. package/dist/MultiSelect-BGRT_B60.js.map +1 -0
  147. package/dist/MultiSelect-CSJKSWpA.cjs +2 -0
  148. package/dist/MultiSelect-CSJKSWpA.cjs.map +1 -0
  149. package/dist/MultilineTextField-CwNCJ9lZ.js +123 -0
  150. package/dist/MultilineTextField-CwNCJ9lZ.js.map +1 -0
  151. package/dist/MultilineTextField-Dz6Fg8RJ.cjs +2 -0
  152. package/dist/MultilineTextField-Dz6Fg8RJ.cjs.map +1 -0
  153. package/dist/NumberField-DBpO-Z_7.cjs +2 -0
  154. package/dist/NumberField-DBpO-Z_7.cjs.map +1 -0
  155. package/dist/NumberField-DBvhSQCw.js +183 -0
  156. package/dist/NumberField-DBvhSQCw.js.map +1 -0
  157. package/dist/OtpField-BUBYyorC.cjs +2 -0
  158. package/dist/OtpField-BUBYyorC.cjs.map +1 -0
  159. package/dist/OtpField-CTq-CUbF.js +171 -0
  160. package/dist/OtpField-CTq-CUbF.js.map +1 -0
  161. package/dist/PageLayout-DddzYw2B.js +12 -0
  162. package/dist/PageLayout-DddzYw2B.js.map +1 -0
  163. package/dist/PageLayout-Dfbjw6jD.cjs +2 -0
  164. package/dist/PageLayout-Dfbjw6jD.cjs.map +1 -0
  165. package/dist/Pagination-CN9V8M5C.js +139 -0
  166. package/dist/Pagination-CN9V8M5C.js.map +1 -0
  167. package/dist/Pagination-DRwTLPh8.cjs +2 -0
  168. package/dist/Pagination-DRwTLPh8.cjs.map +1 -0
  169. package/dist/Popover-CBI1icIM.cjs +2 -0
  170. package/dist/Popover-CBI1icIM.cjs.map +1 -0
  171. package/dist/Popover-CgIU4Rhg.js +65 -0
  172. package/dist/Popover-CgIU4Rhg.js.map +1 -0
  173. package/dist/RadioGroup-C8u7eNBS.cjs +2 -0
  174. package/dist/RadioGroup-C8u7eNBS.cjs.map +1 -0
  175. package/dist/RadioGroup-DbodUJW8.js +141 -0
  176. package/dist/RadioGroup-DbodUJW8.js.map +1 -0
  177. package/dist/RemoveDialog-Bvt6sH79.js +47 -0
  178. package/dist/RemoveDialog-Bvt6sH79.js.map +1 -0
  179. package/dist/RemoveDialog-ClyZKyUG.cjs +2 -0
  180. package/dist/RemoveDialog-ClyZKyUG.cjs.map +1 -0
  181. package/dist/RichTextEditor-BTx8Py3I.js +806 -0
  182. package/dist/RichTextEditor-BTx8Py3I.js.map +1 -0
  183. package/dist/RichTextEditor-CAYt1Zm1.cjs +2 -0
  184. package/dist/RichTextEditor-CAYt1Zm1.cjs.map +1 -0
  185. package/dist/RootLayout-Cp-9CVjP.cjs +2 -0
  186. package/dist/RootLayout-Cp-9CVjP.cjs.map +1 -0
  187. package/dist/RootLayout-DCpfuFWF.js +405 -0
  188. package/dist/RootLayout-DCpfuFWF.js.map +1 -0
  189. package/dist/Select-PbTyxB1Q.js +338 -0
  190. package/dist/Select-PbTyxB1Q.js.map +1 -0
  191. package/dist/Select-_6WogC0u.cjs +2 -0
  192. package/dist/Select-_6WogC0u.cjs.map +1 -0
  193. package/dist/Sidebar-AaIlRzgk.cjs +2 -0
  194. package/dist/Sidebar-AaIlRzgk.cjs.map +1 -0
  195. package/dist/Sidebar-DRCs2ygZ.js +422 -0
  196. package/dist/Sidebar-DRCs2ygZ.js.map +1 -0
  197. package/dist/Slider-dxYVXRev.cjs +2 -0
  198. package/dist/Slider-dxYVXRev.cjs.map +1 -0
  199. package/dist/Slider-oGXd5e9X.js +184 -0
  200. package/dist/Slider-oGXd5e9X.js.map +1 -0
  201. package/dist/SpeedDial-C4jxIXTr.cjs +2 -0
  202. package/dist/SpeedDial-C4jxIXTr.cjs.map +1 -0
  203. package/dist/SpeedDial-DgFj16BQ.js +165 -0
  204. package/dist/SpeedDial-DgFj16BQ.js.map +1 -0
  205. package/dist/Stepper-7pPEBRLI.cjs +2 -0
  206. package/dist/Stepper-7pPEBRLI.cjs.map +1 -0
  207. package/dist/Stepper-COKAyN1L.js +165 -0
  208. package/dist/Stepper-COKAyN1L.js.map +1 -0
  209. package/dist/SwatchPicker-D30aSrbY.js +129 -0
  210. package/dist/SwatchPicker-D30aSrbY.js.map +1 -0
  211. package/dist/SwatchPicker-DbAU9-ux.cjs +2 -0
  212. package/dist/SwatchPicker-DbAU9-ux.cjs.map +1 -0
  213. package/dist/Switch-DMPJ0fhB.js +85 -0
  214. package/dist/Switch-DMPJ0fhB.js.map +1 -0
  215. package/dist/Switch-DRkZ6kHJ.cjs +2 -0
  216. package/dist/Switch-DRkZ6kHJ.cjs.map +1 -0
  217. package/dist/Table-BeOumGng.cjs +2 -0
  218. package/dist/Table-BeOumGng.cjs.map +1 -0
  219. package/dist/Table-BjPLvMbf.js +1090 -0
  220. package/dist/Table-BjPLvMbf.js.map +1 -0
  221. package/dist/Tabs--DDM-zKe.js +190 -0
  222. package/dist/Tabs--DDM-zKe.js.map +1 -0
  223. package/dist/Tabs-BZcMnjdC.cjs +2 -0
  224. package/dist/Tabs-BZcMnjdC.cjs.map +1 -0
  225. package/dist/TagsField-BTJcZS9P.js +186 -0
  226. package/dist/TagsField-BTJcZS9P.js.map +1 -0
  227. package/dist/TagsField-kknWiJZZ.cjs +2 -0
  228. package/dist/TagsField-kknWiJZZ.cjs.map +1 -0
  229. package/dist/TextField-BPefnD5M.cjs +2 -0
  230. package/dist/TextField-BPefnD5M.cjs.map +1 -0
  231. package/dist/TextField-DMI1X09n.js +266 -0
  232. package/dist/TextField-DMI1X09n.js.map +1 -0
  233. package/dist/TextField.module-QePvGeJ3.js +27 -0
  234. package/dist/TextField.module-QePvGeJ3.js.map +1 -0
  235. package/dist/TextField.module-m-UllwzG.cjs +2 -0
  236. package/dist/TextField.module-m-UllwzG.cjs.map +1 -0
  237. package/dist/ThemeToggle-DTal3RX5.cjs +2 -0
  238. package/dist/ThemeToggle-DTal3RX5.cjs.map +1 -0
  239. package/dist/ThemeToggle-Deh9j8pm.js +28 -0
  240. package/dist/ThemeToggle-Deh9j8pm.js.map +1 -0
  241. package/dist/TimeColumns-BCNmu4b_.js +147 -0
  242. package/dist/TimeColumns-BCNmu4b_.js.map +1 -0
  243. package/dist/TimeColumns-Duh4DcYJ.cjs +2 -0
  244. package/dist/TimeColumns-Duh4DcYJ.cjs.map +1 -0
  245. package/dist/TimePicker-3JgvK2on.js +194 -0
  246. package/dist/TimePicker-3JgvK2on.js.map +1 -0
  247. package/dist/TimePicker-CfGrCH9T.cjs +2 -0
  248. package/dist/TimePicker-CfGrCH9T.cjs.map +1 -0
  249. package/dist/Timeline-CoxW0Ia_.cjs +2 -0
  250. package/dist/Timeline-CoxW0Ia_.cjs.map +1 -0
  251. package/dist/Timeline-WkV4k_we.js +71 -0
  252. package/dist/Timeline-WkV4k_we.js.map +1 -0
  253. package/dist/Toaster-Bk5GtPjX.cjs +2 -0
  254. package/dist/Toaster-Bk5GtPjX.cjs.map +1 -0
  255. package/dist/Toaster-D-eG1xv7.js +63 -0
  256. package/dist/Toaster-D-eG1xv7.js.map +1 -0
  257. package/dist/ToggleButtonGroup-BWd7MOcc.js +123 -0
  258. package/dist/ToggleButtonGroup-BWd7MOcc.js.map +1 -0
  259. package/dist/ToggleButtonGroup-DYRLwKKh.cjs +2 -0
  260. package/dist/ToggleButtonGroup-DYRLwKKh.cjs.map +1 -0
  261. package/dist/Tooltip-Ao7az09p.cjs +2 -0
  262. package/dist/Tooltip-Ao7az09p.cjs.map +1 -0
  263. package/dist/Tooltip-Cb_FKxT9.js +65 -0
  264. package/dist/Tooltip-Cb_FKxT9.js.map +1 -0
  265. package/dist/TranslatedFields-CI0F9bHw.js +82 -0
  266. package/dist/TranslatedFields-CI0F9bHw.js.map +1 -0
  267. package/dist/TranslatedFields-DT3bYse6.cjs +2 -0
  268. package/dist/TranslatedFields-DT3bYse6.cjs.map +1 -0
  269. package/dist/Typography-BFatE1_A.cjs +2 -0
  270. package/dist/Typography-BFatE1_A.cjs.map +1 -0
  271. package/dist/Typography-Cta6Rg4L.js +51 -0
  272. package/dist/Typography-Cta6Rg4L.js.map +1 -0
  273. package/dist/UserCard-BhqtX1vU.js +74 -0
  274. package/dist/UserCard-BhqtX1vU.js.map +1 -0
  275. package/dist/UserCard-OlLeyyS0.cjs +2 -0
  276. package/dist/UserCard-OlLeyyS0.cjs.map +1 -0
  277. package/dist/access-DPUHbE-S.cjs +2 -0
  278. package/dist/access-DPUHbE-S.cjs.map +1 -0
  279. package/dist/access-Db4knwyR.js +25 -0
  280. package/dist/access-Db4knwyR.js.map +1 -0
  281. package/dist/components/Accordion/Accordion.d.cts +43 -0
  282. package/dist/components/Accordion/Accordion.d.ts +43 -0
  283. package/dist/components/Accordion/AccordionItem.d.cts +20 -0
  284. package/dist/components/Accordion/AccordionItem.d.ts +20 -0
  285. package/dist/components/Accordion/accordionContext.d.cts +13 -0
  286. package/dist/components/Accordion/accordionContext.d.ts +13 -0
  287. package/dist/components/Accordion/index.cjs +2 -0
  288. package/dist/components/Accordion/index.cjs.map +1 -0
  289. package/dist/components/Accordion/index.d.cts +4 -0
  290. package/dist/components/Accordion/index.d.ts +4 -0
  291. package/dist/components/Accordion/index.js +7 -0
  292. package/dist/components/Accordion/index.js.map +1 -0
  293. package/dist/components/Alert/Alert.d.cts +30 -0
  294. package/dist/components/Alert/Alert.d.ts +30 -0
  295. package/dist/components/Alert/index.cjs +2 -0
  296. package/dist/components/Alert/index.cjs.map +1 -0
  297. package/dist/components/Alert/index.d.cts +2 -0
  298. package/dist/components/Alert/index.d.ts +2 -0
  299. package/dist/components/Alert/index.js +6 -0
  300. package/dist/components/Alert/index.js.map +1 -0
  301. package/dist/components/Avatar/Avatar.d.cts +28 -0
  302. package/dist/components/Avatar/Avatar.d.ts +28 -0
  303. package/dist/components/Avatar/AvatarGroup.d.cts +19 -0
  304. package/dist/components/Avatar/AvatarGroup.d.ts +19 -0
  305. package/dist/components/Avatar/index.cjs +2 -0
  306. package/dist/components/Avatar/index.cjs.map +1 -0
  307. package/dist/components/Avatar/index.d.cts +4 -0
  308. package/dist/components/Avatar/index.d.ts +4 -0
  309. package/dist/components/Avatar/index.js +8 -0
  310. package/dist/components/Avatar/index.js.map +1 -0
  311. package/dist/components/Badge/Badge.d.cts +26 -0
  312. package/dist/components/Badge/Badge.d.ts +26 -0
  313. package/dist/components/Badge/index.cjs +2 -0
  314. package/dist/components/Badge/index.cjs.map +1 -0
  315. package/dist/components/Badge/index.d.cts +2 -0
  316. package/dist/components/Badge/index.d.ts +2 -0
  317. package/dist/components/Badge/index.js +6 -0
  318. package/dist/components/Badge/index.js.map +1 -0
  319. package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +17 -0
  320. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +17 -0
  321. package/dist/components/Breadcrumbs/index.cjs +2 -0
  322. package/dist/components/Breadcrumbs/index.cjs.map +1 -0
  323. package/dist/components/Breadcrumbs/index.d.cts +2 -0
  324. package/dist/components/Breadcrumbs/index.d.ts +2 -0
  325. package/dist/components/Breadcrumbs/index.js +6 -0
  326. package/dist/components/Breadcrumbs/index.js.map +1 -0
  327. package/dist/components/Button/Button.d.cts +23 -0
  328. package/dist/components/Button/Button.d.ts +23 -0
  329. package/dist/components/Button/index.cjs +2 -0
  330. package/dist/components/Button/index.cjs.map +1 -0
  331. package/dist/components/Button/index.d.cts +2 -0
  332. package/dist/components/Button/index.d.ts +2 -0
  333. package/dist/components/Button/index.js +6 -0
  334. package/dist/components/Button/index.js.map +1 -0
  335. package/dist/components/Card/Card.d.cts +37 -0
  336. package/dist/components/Card/Card.d.ts +37 -0
  337. package/dist/components/Card/index.cjs +2 -0
  338. package/dist/components/Card/index.cjs.map +1 -0
  339. package/dist/components/Card/index.d.cts +2 -0
  340. package/dist/components/Card/index.d.ts +2 -0
  341. package/dist/components/Card/index.js +6 -0
  342. package/dist/components/Card/index.js.map +1 -0
  343. package/dist/components/Checkbox/Checkbox.d.cts +29 -0
  344. package/dist/components/Checkbox/Checkbox.d.ts +29 -0
  345. package/dist/components/Checkbox/index.cjs +2 -0
  346. package/dist/components/Checkbox/index.cjs.map +1 -0
  347. package/dist/components/Checkbox/index.d.cts +2 -0
  348. package/dist/components/Checkbox/index.d.ts +2 -0
  349. package/dist/components/Checkbox/index.js +6 -0
  350. package/dist/components/Checkbox/index.js.map +1 -0
  351. package/dist/components/Chip/Chip.d.cts +37 -0
  352. package/dist/components/Chip/Chip.d.ts +37 -0
  353. package/dist/components/Chip/index.cjs +2 -0
  354. package/dist/components/Chip/index.cjs.map +1 -0
  355. package/dist/components/Chip/index.d.cts +2 -0
  356. package/dist/components/Chip/index.d.ts +2 -0
  357. package/dist/components/Chip/index.js +6 -0
  358. package/dist/components/Chip/index.js.map +1 -0
  359. package/dist/components/ChoiceCard/ChoiceCard.d.cts +41 -0
  360. package/dist/components/ChoiceCard/ChoiceCard.d.ts +41 -0
  361. package/dist/components/ChoiceCard/ChoiceCardGroup.d.cts +72 -0
  362. package/dist/components/ChoiceCard/ChoiceCardGroup.d.ts +72 -0
  363. package/dist/components/ChoiceCard/choiceCardContext.d.cts +21 -0
  364. package/dist/components/ChoiceCard/choiceCardContext.d.ts +21 -0
  365. package/dist/components/ChoiceCard/index.cjs +2 -0
  366. package/dist/components/ChoiceCard/index.cjs.map +1 -0
  367. package/dist/components/ChoiceCard/index.d.cts +4 -0
  368. package/dist/components/ChoiceCard/index.d.ts +4 -0
  369. package/dist/components/ChoiceCard/index.js +7 -0
  370. package/dist/components/ChoiceCard/index.js.map +1 -0
  371. package/dist/components/CodeBlock/CodeBlock.d.cts +30 -0
  372. package/dist/components/CodeBlock/CodeBlock.d.ts +30 -0
  373. package/dist/components/CodeBlock/index.cjs +2 -0
  374. package/dist/components/CodeBlock/index.cjs.map +1 -0
  375. package/dist/components/CodeBlock/index.d.cts +2 -0
  376. package/dist/components/CodeBlock/index.d.ts +2 -0
  377. package/dist/components/CodeBlock/index.js +6 -0
  378. package/dist/components/CodeBlock/index.js.map +1 -0
  379. package/dist/components/ColorPicker/ColorPicker.d.cts +47 -0
  380. package/dist/components/ColorPicker/ColorPicker.d.ts +47 -0
  381. package/dist/components/ColorPicker/ColorPickerPanel.d.cts +20 -0
  382. package/dist/components/ColorPicker/ColorPickerPanel.d.ts +20 -0
  383. package/dist/components/ColorPicker/colorUtils.d.cts +44 -0
  384. package/dist/components/ColorPicker/colorUtils.d.ts +44 -0
  385. package/dist/components/ColorPicker/index.cjs +2 -0
  386. package/dist/components/ColorPicker/index.cjs.map +1 -0
  387. package/dist/components/ColorPicker/index.d.cts +2 -0
  388. package/dist/components/ColorPicker/index.d.ts +2 -0
  389. package/dist/components/ColorPicker/index.js +6 -0
  390. package/dist/components/ColorPicker/index.js.map +1 -0
  391. package/dist/components/DatePicker/Calendar.d.cts +29 -0
  392. package/dist/components/DatePicker/Calendar.d.ts +29 -0
  393. package/dist/components/DatePicker/DatePicker.d.cts +66 -0
  394. package/dist/components/DatePicker/DatePicker.d.ts +66 -0
  395. package/dist/components/DatePicker/dateUtils.d.cts +86 -0
  396. package/dist/components/DatePicker/dateUtils.d.ts +86 -0
  397. package/dist/components/DatePicker/index.cjs +2 -0
  398. package/dist/components/DatePicker/index.cjs.map +1 -0
  399. package/dist/components/DatePicker/index.d.cts +2 -0
  400. package/dist/components/DatePicker/index.d.ts +2 -0
  401. package/dist/components/DatePicker/index.js +6 -0
  402. package/dist/components/DatePicker/index.js.map +1 -0
  403. package/dist/components/DateTimePicker/DateTimePicker.d.cts +79 -0
  404. package/dist/components/DateTimePicker/DateTimePicker.d.ts +79 -0
  405. package/dist/components/DateTimePicker/TimeColumns.d.cts +22 -0
  406. package/dist/components/DateTimePicker/TimeColumns.d.ts +22 -0
  407. package/dist/components/DateTimePicker/index.cjs +2 -0
  408. package/dist/components/DateTimePicker/index.cjs.map +1 -0
  409. package/dist/components/DateTimePicker/index.d.cts +2 -0
  410. package/dist/components/DateTimePicker/index.d.ts +2 -0
  411. package/dist/components/DateTimePicker/index.js +6 -0
  412. package/dist/components/DateTimePicker/index.js.map +1 -0
  413. package/dist/components/Divider/Divider.d.cts +17 -0
  414. package/dist/components/Divider/Divider.d.ts +17 -0
  415. package/dist/components/Divider/index.cjs +2 -0
  416. package/dist/components/Divider/index.cjs.map +1 -0
  417. package/dist/components/Divider/index.d.cts +2 -0
  418. package/dist/components/Divider/index.d.ts +2 -0
  419. package/dist/components/Divider/index.js +6 -0
  420. package/dist/components/Divider/index.js.map +1 -0
  421. package/dist/components/Dropdown/Dropdown.d.cts +44 -0
  422. package/dist/components/Dropdown/Dropdown.d.ts +44 -0
  423. package/dist/components/Dropdown/index.cjs +2 -0
  424. package/dist/components/Dropdown/index.cjs.map +1 -0
  425. package/dist/components/Dropdown/index.d.cts +2 -0
  426. package/dist/components/Dropdown/index.d.ts +2 -0
  427. package/dist/components/Dropdown/index.js +6 -0
  428. package/dist/components/Dropdown/index.js.map +1 -0
  429. package/dist/components/EmptyState/EmptyState.d.cts +29 -0
  430. package/dist/components/EmptyState/EmptyState.d.ts +29 -0
  431. package/dist/components/EmptyState/index.cjs +2 -0
  432. package/dist/components/EmptyState/index.cjs.map +1 -0
  433. package/dist/components/EmptyState/index.d.cts +2 -0
  434. package/dist/components/EmptyState/index.d.ts +2 -0
  435. package/dist/components/EmptyState/index.js +6 -0
  436. package/dist/components/EmptyState/index.js.map +1 -0
  437. package/dist/components/FileUploader/FileUploader.d.cts +144 -0
  438. package/dist/components/FileUploader/FileUploader.d.ts +144 -0
  439. package/dist/components/FileUploader/FileUploaderEditDialog.d.cts +34 -0
  440. package/dist/components/FileUploader/FileUploaderEditDialog.d.ts +34 -0
  441. package/dist/components/FileUploader/FileUploaderPreview.d.cts +23 -0
  442. package/dist/components/FileUploader/FileUploaderPreview.d.ts +23 -0
  443. package/dist/components/FileUploader/index.cjs +2 -0
  444. package/dist/components/FileUploader/index.cjs.map +1 -0
  445. package/dist/components/FileUploader/index.d.cts +2 -0
  446. package/dist/components/FileUploader/index.d.ts +2 -0
  447. package/dist/components/FileUploader/index.js +6 -0
  448. package/dist/components/FileUploader/index.js.map +1 -0
  449. package/dist/components/Flag/Flag.d.cts +14 -0
  450. package/dist/components/Flag/Flag.d.ts +14 -0
  451. package/dist/components/Flag/index.cjs +2 -0
  452. package/dist/components/Flag/index.cjs.map +1 -0
  453. package/dist/components/Flag/index.d.cts +2 -0
  454. package/dist/components/Flag/index.d.ts +2 -0
  455. package/dist/components/Flag/index.js +6 -0
  456. package/dist/components/Flag/index.js.map +1 -0
  457. package/dist/components/Flex/Col.d.cts +8 -0
  458. package/dist/components/Flex/Col.d.ts +8 -0
  459. package/dist/components/Flex/Flex.d.cts +32 -0
  460. package/dist/components/Flex/Flex.d.ts +32 -0
  461. package/dist/components/Flex/Grid.d.cts +28 -0
  462. package/dist/components/Flex/Grid.d.ts +28 -0
  463. package/dist/components/Flex/Row.d.cts +8 -0
  464. package/dist/components/Flex/Row.d.ts +8 -0
  465. package/dist/components/Flex/index.cjs +2 -0
  466. package/dist/components/Flex/index.cjs.map +1 -0
  467. package/dist/components/Flex/index.d.cts +8 -0
  468. package/dist/components/Flex/index.d.ts +8 -0
  469. package/dist/components/Flex/index.js +11 -0
  470. package/dist/components/Flex/index.js.map +1 -0
  471. package/dist/components/FloatingPanel/FloatingPanel.d.cts +39 -0
  472. package/dist/components/FloatingPanel/FloatingPanel.d.ts +39 -0
  473. package/dist/components/FullscreenToggle/FullscreenToggle.d.cts +12 -0
  474. package/dist/components/FullscreenToggle/FullscreenToggle.d.ts +12 -0
  475. package/dist/components/FullscreenToggle/index.cjs +2 -0
  476. package/dist/components/FullscreenToggle/index.cjs.map +1 -0
  477. package/dist/components/FullscreenToggle/index.d.cts +2 -0
  478. package/dist/components/FullscreenToggle/index.d.ts +2 -0
  479. package/dist/components/FullscreenToggle/index.js +6 -0
  480. package/dist/components/FullscreenToggle/index.js.map +1 -0
  481. package/dist/components/Icon/Icon.d.cts +19 -0
  482. package/dist/components/Icon/Icon.d.ts +19 -0
  483. package/dist/components/Icon/index.cjs +2 -0
  484. package/dist/components/Icon/index.cjs.map +1 -0
  485. package/dist/components/Icon/index.d.cts +4 -0
  486. package/dist/components/Icon/index.d.ts +4 -0
  487. package/dist/components/Icon/index.js +9 -0
  488. package/dist/components/Icon/index.js.map +1 -0
  489. package/dist/components/IconButton/IconButton.d.cts +28 -0
  490. package/dist/components/IconButton/IconButton.d.ts +28 -0
  491. package/dist/components/IconButton/index.cjs +2 -0
  492. package/dist/components/IconButton/index.cjs.map +1 -0
  493. package/dist/components/IconButton/index.d.cts +2 -0
  494. package/dist/components/IconButton/index.d.ts +2 -0
  495. package/dist/components/IconButton/index.js +6 -0
  496. package/dist/components/IconButton/index.js.map +1 -0
  497. package/dist/components/List/List.d.cts +20 -0
  498. package/dist/components/List/List.d.ts +20 -0
  499. package/dist/components/List/ListItem.d.cts +33 -0
  500. package/dist/components/List/ListItem.d.ts +33 -0
  501. package/dist/components/List/index.cjs +2 -0
  502. package/dist/components/List/index.cjs.map +1 -0
  503. package/dist/components/List/index.d.cts +4 -0
  504. package/dist/components/List/index.d.ts +4 -0
  505. package/dist/components/List/index.js +8 -0
  506. package/dist/components/List/index.js.map +1 -0
  507. package/dist/components/List/listContext.d.cts +5 -0
  508. package/dist/components/List/listContext.d.ts +5 -0
  509. package/dist/components/Loader/Loader.d.cts +15 -0
  510. package/dist/components/Loader/Loader.d.ts +15 -0
  511. package/dist/components/Loader/index.cjs +2 -0
  512. package/dist/components/Loader/index.cjs.map +1 -0
  513. package/dist/components/Loader/index.d.cts +2 -0
  514. package/dist/components/Loader/index.d.ts +2 -0
  515. package/dist/components/Loader/index.js +6 -0
  516. package/dist/components/Loader/index.js.map +1 -0
  517. package/dist/components/Modal/Modal.d.cts +63 -0
  518. package/dist/components/Modal/Modal.d.ts +63 -0
  519. package/dist/components/Modal/index.cjs +2 -0
  520. package/dist/components/Modal/index.cjs.map +1 -0
  521. package/dist/components/Modal/index.d.cts +2 -0
  522. package/dist/components/Modal/index.d.ts +2 -0
  523. package/dist/components/Modal/index.js +6 -0
  524. package/dist/components/Modal/index.js.map +1 -0
  525. package/dist/components/MultiSelect/MultiSelect.d.cts +72 -0
  526. package/dist/components/MultiSelect/MultiSelect.d.ts +72 -0
  527. package/dist/components/MultiSelect/index.cjs +2 -0
  528. package/dist/components/MultiSelect/index.cjs.map +1 -0
  529. package/dist/components/MultiSelect/index.d.cts +2 -0
  530. package/dist/components/MultiSelect/index.d.ts +2 -0
  531. package/dist/components/MultiSelect/index.js +6 -0
  532. package/dist/components/MultiSelect/index.js.map +1 -0
  533. package/dist/components/MultilineTextField/MultilineTextField.d.cts +28 -0
  534. package/dist/components/MultilineTextField/MultilineTextField.d.ts +28 -0
  535. package/dist/components/MultilineTextField/index.cjs +2 -0
  536. package/dist/components/MultilineTextField/index.cjs.map +1 -0
  537. package/dist/components/MultilineTextField/index.d.cts +2 -0
  538. package/dist/components/MultilineTextField/index.d.ts +2 -0
  539. package/dist/components/MultilineTextField/index.js +6 -0
  540. package/dist/components/MultilineTextField/index.js.map +1 -0
  541. package/dist/components/NumberField/NumberField.d.cts +45 -0
  542. package/dist/components/NumberField/NumberField.d.ts +45 -0
  543. package/dist/components/NumberField/index.cjs +2 -0
  544. package/dist/components/NumberField/index.cjs.map +1 -0
  545. package/dist/components/NumberField/index.d.cts +2 -0
  546. package/dist/components/NumberField/index.d.ts +2 -0
  547. package/dist/components/NumberField/index.js +6 -0
  548. package/dist/components/NumberField/index.js.map +1 -0
  549. package/dist/components/OtpField/OtpField.d.cts +55 -0
  550. package/dist/components/OtpField/OtpField.d.ts +55 -0
  551. package/dist/components/OtpField/index.cjs +2 -0
  552. package/dist/components/OtpField/index.cjs.map +1 -0
  553. package/dist/components/OtpField/index.d.cts +2 -0
  554. package/dist/components/OtpField/index.d.ts +2 -0
  555. package/dist/components/OtpField/index.js +6 -0
  556. package/dist/components/OtpField/index.js.map +1 -0
  557. package/dist/components/Overlay/Overlay.d.cts +29 -0
  558. package/dist/components/Overlay/Overlay.d.ts +29 -0
  559. package/dist/components/PageLayout/PageLayout.d.cts +13 -0
  560. package/dist/components/PageLayout/PageLayout.d.ts +13 -0
  561. package/dist/components/PageLayout/index.cjs +2 -0
  562. package/dist/components/PageLayout/index.cjs.map +1 -0
  563. package/dist/components/PageLayout/index.d.cts +2 -0
  564. package/dist/components/PageLayout/index.d.ts +2 -0
  565. package/dist/components/PageLayout/index.js +6 -0
  566. package/dist/components/PageLayout/index.js.map +1 -0
  567. package/dist/components/Pagination/Pagination.d.cts +44 -0
  568. package/dist/components/Pagination/Pagination.d.ts +44 -0
  569. package/dist/components/Pagination/index.cjs +2 -0
  570. package/dist/components/Pagination/index.cjs.map +1 -0
  571. package/dist/components/Pagination/index.d.cts +2 -0
  572. package/dist/components/Pagination/index.d.ts +2 -0
  573. package/dist/components/Pagination/index.js +6 -0
  574. package/dist/components/Pagination/index.js.map +1 -0
  575. package/dist/components/Pagination/paginationRange.d.cts +21 -0
  576. package/dist/components/Pagination/paginationRange.d.ts +21 -0
  577. package/dist/components/Popover/Popover.d.cts +43 -0
  578. package/dist/components/Popover/Popover.d.ts +43 -0
  579. package/dist/components/Popover/index.cjs +2 -0
  580. package/dist/components/Popover/index.cjs.map +1 -0
  581. package/dist/components/Popover/index.d.cts +2 -0
  582. package/dist/components/Popover/index.d.ts +2 -0
  583. package/dist/components/Popover/index.js +6 -0
  584. package/dist/components/Popover/index.js.map +1 -0
  585. package/dist/components/Radio/Radio.d.cts +27 -0
  586. package/dist/components/Radio/Radio.d.ts +27 -0
  587. package/dist/components/Radio/RadioGroup.d.cts +47 -0
  588. package/dist/components/Radio/RadioGroup.d.ts +47 -0
  589. package/dist/components/Radio/index.cjs +2 -0
  590. package/dist/components/Radio/index.cjs.map +1 -0
  591. package/dist/components/Radio/index.d.cts +4 -0
  592. package/dist/components/Radio/index.d.ts +4 -0
  593. package/dist/components/Radio/index.js +7 -0
  594. package/dist/components/Radio/index.js.map +1 -0
  595. package/dist/components/Radio/radioContext.d.cts +18 -0
  596. package/dist/components/Radio/radioContext.d.ts +18 -0
  597. package/dist/components/RemoveDialog/RemoveDialog.d.cts +35 -0
  598. package/dist/components/RemoveDialog/RemoveDialog.d.ts +35 -0
  599. package/dist/components/RemoveDialog/index.cjs +2 -0
  600. package/dist/components/RemoveDialog/index.cjs.map +1 -0
  601. package/dist/components/RemoveDialog/index.d.cts +2 -0
  602. package/dist/components/RemoveDialog/index.d.ts +2 -0
  603. package/dist/components/RemoveDialog/index.js +6 -0
  604. package/dist/components/RemoveDialog/index.js.map +1 -0
  605. package/dist/components/RichTextEditor/RichTextEditor.d.cts +48 -0
  606. package/dist/components/RichTextEditor/RichTextEditor.d.ts +48 -0
  607. package/dist/components/RichTextEditor/Toolbar.d.cts +10 -0
  608. package/dist/components/RichTextEditor/Toolbar.d.ts +10 -0
  609. package/dist/components/RichTextEditor/index.cjs +2 -0
  610. package/dist/components/RichTextEditor/index.cjs.map +1 -0
  611. package/dist/components/RichTextEditor/index.d.cts +2 -0
  612. package/dist/components/RichTextEditor/index.d.ts +2 -0
  613. package/dist/components/RichTextEditor/index.js +6 -0
  614. package/dist/components/RichTextEditor/index.js.map +1 -0
  615. package/dist/components/RichTextEditor/nodes/ImageNode.d.cts +33 -0
  616. package/dist/components/RichTextEditor/nodes/ImageNode.d.ts +33 -0
  617. package/dist/components/RichTextEditor/nodes/VideoNode.d.cts +36 -0
  618. package/dist/components/RichTextEditor/nodes/VideoNode.d.ts +36 -0
  619. package/dist/components/RichTextEditor/urlSafety.d.cts +16 -0
  620. package/dist/components/RichTextEditor/urlSafety.d.ts +16 -0
  621. package/dist/components/RootLayout/RootLayout.d.cts +46 -0
  622. package/dist/components/RootLayout/RootLayout.d.ts +46 -0
  623. package/dist/components/RootLayout/SettingsDrawer.d.cts +23 -0
  624. package/dist/components/RootLayout/SettingsDrawer.d.ts +23 -0
  625. package/dist/components/RootLayout/index.cjs +2 -0
  626. package/dist/components/RootLayout/index.cjs.map +1 -0
  627. package/dist/components/RootLayout/index.d.cts +2 -0
  628. package/dist/components/RootLayout/index.d.ts +2 -0
  629. package/dist/components/RootLayout/index.js +6 -0
  630. package/dist/components/RootLayout/index.js.map +1 -0
  631. package/dist/components/Select/Select.d.cts +85 -0
  632. package/dist/components/Select/Select.d.ts +85 -0
  633. package/dist/components/Select/index.cjs +2 -0
  634. package/dist/components/Select/index.cjs.map +1 -0
  635. package/dist/components/Select/index.d.cts +2 -0
  636. package/dist/components/Select/index.d.ts +2 -0
  637. package/dist/components/Select/index.js +6 -0
  638. package/dist/components/Select/index.js.map +1 -0
  639. package/dist/components/Sidebar/Sidebar.d.cts +90 -0
  640. package/dist/components/Sidebar/Sidebar.d.ts +90 -0
  641. package/dist/components/Sidebar/index.cjs +2 -0
  642. package/dist/components/Sidebar/index.cjs.map +1 -0
  643. package/dist/components/Sidebar/index.d.cts +1 -0
  644. package/dist/components/Sidebar/index.d.ts +1 -0
  645. package/dist/components/Sidebar/index.js +7 -0
  646. package/dist/components/Sidebar/index.js.map +1 -0
  647. package/dist/components/Slider/Slider.d.cts +58 -0
  648. package/dist/components/Slider/Slider.d.ts +58 -0
  649. package/dist/components/Slider/index.cjs +2 -0
  650. package/dist/components/Slider/index.cjs.map +1 -0
  651. package/dist/components/Slider/index.d.cts +2 -0
  652. package/dist/components/Slider/index.d.ts +2 -0
  653. package/dist/components/Slider/index.js +6 -0
  654. package/dist/components/Slider/index.js.map +1 -0
  655. package/dist/components/SpeedDial/SpeedDial.d.cts +56 -0
  656. package/dist/components/SpeedDial/SpeedDial.d.ts +56 -0
  657. package/dist/components/SpeedDial/SpeedDialAction.d.cts +18 -0
  658. package/dist/components/SpeedDial/SpeedDialAction.d.ts +18 -0
  659. package/dist/components/SpeedDial/index.cjs +2 -0
  660. package/dist/components/SpeedDial/index.cjs.map +1 -0
  661. package/dist/components/SpeedDial/index.d.cts +4 -0
  662. package/dist/components/SpeedDial/index.d.ts +4 -0
  663. package/dist/components/SpeedDial/index.js +7 -0
  664. package/dist/components/SpeedDial/index.js.map +1 -0
  665. package/dist/components/SpeedDial/speedDialContext.d.cts +19 -0
  666. package/dist/components/SpeedDial/speedDialContext.d.ts +19 -0
  667. package/dist/components/Stepper/Stepper.d.cts +94 -0
  668. package/dist/components/Stepper/Stepper.d.ts +94 -0
  669. package/dist/components/Stepper/index.cjs +2 -0
  670. package/dist/components/Stepper/index.cjs.map +1 -0
  671. package/dist/components/Stepper/index.d.cts +2 -0
  672. package/dist/components/Stepper/index.d.ts +2 -0
  673. package/dist/components/Stepper/index.js +6 -0
  674. package/dist/components/Stepper/index.js.map +1 -0
  675. package/dist/components/SwatchPicker/SwatchPicker.d.cts +43 -0
  676. package/dist/components/SwatchPicker/SwatchPicker.d.ts +43 -0
  677. package/dist/components/SwatchPicker/index.cjs +2 -0
  678. package/dist/components/SwatchPicker/index.cjs.map +1 -0
  679. package/dist/components/SwatchPicker/index.d.cts +2 -0
  680. package/dist/components/SwatchPicker/index.d.ts +2 -0
  681. package/dist/components/SwatchPicker/index.js +6 -0
  682. package/dist/components/SwatchPicker/index.js.map +1 -0
  683. package/dist/components/Switch/Switch.d.cts +29 -0
  684. package/dist/components/Switch/Switch.d.ts +29 -0
  685. package/dist/components/Switch/index.cjs +2 -0
  686. package/dist/components/Switch/index.cjs.map +1 -0
  687. package/dist/components/Switch/index.d.cts +2 -0
  688. package/dist/components/Switch/index.d.ts +2 -0
  689. package/dist/components/Switch/index.js +6 -0
  690. package/dist/components/Switch/index.js.map +1 -0
  691. package/dist/components/Table/Table.d.cts +248 -0
  692. package/dist/components/Table/Table.d.ts +248 -0
  693. package/dist/components/Table/TableFilters.d.cts +16 -0
  694. package/dist/components/Table/TableFilters.d.ts +16 -0
  695. package/dist/components/Table/index.cjs +2 -0
  696. package/dist/components/Table/index.cjs.map +1 -0
  697. package/dist/components/Table/index.d.cts +3 -0
  698. package/dist/components/Table/index.d.ts +3 -0
  699. package/dist/components/Table/index.js +6 -0
  700. package/dist/components/Table/index.js.map +1 -0
  701. package/dist/components/Table/tableFilter.d.cts +65 -0
  702. package/dist/components/Table/tableFilter.d.ts +65 -0
  703. package/dist/components/Tabs/Tabs.d.cts +80 -0
  704. package/dist/components/Tabs/Tabs.d.ts +80 -0
  705. package/dist/components/Tabs/index.cjs +2 -0
  706. package/dist/components/Tabs/index.cjs.map +1 -0
  707. package/dist/components/Tabs/index.d.cts +2 -0
  708. package/dist/components/Tabs/index.d.ts +2 -0
  709. package/dist/components/Tabs/index.js +6 -0
  710. package/dist/components/Tabs/index.js.map +1 -0
  711. package/dist/components/TagsField/TagsField.d.cts +47 -0
  712. package/dist/components/TagsField/TagsField.d.ts +47 -0
  713. package/dist/components/TagsField/index.cjs +2 -0
  714. package/dist/components/TagsField/index.cjs.map +1 -0
  715. package/dist/components/TagsField/index.d.cts +2 -0
  716. package/dist/components/TagsField/index.d.ts +2 -0
  717. package/dist/components/TagsField/index.js +6 -0
  718. package/dist/components/TagsField/index.js.map +1 -0
  719. package/dist/components/TextField/TextField.d.cts +62 -0
  720. package/dist/components/TextField/TextField.d.ts +62 -0
  721. package/dist/components/TextField/index.cjs +2 -0
  722. package/dist/components/TextField/index.cjs.map +1 -0
  723. package/dist/components/TextField/index.d.cts +2 -0
  724. package/dist/components/TextField/index.d.ts +2 -0
  725. package/dist/components/TextField/index.js +6 -0
  726. package/dist/components/TextField/index.js.map +1 -0
  727. package/dist/components/ThemeToggle/ThemeToggle.d.cts +9 -0
  728. package/dist/components/ThemeToggle/ThemeToggle.d.ts +9 -0
  729. package/dist/components/ThemeToggle/index.cjs +2 -0
  730. package/dist/components/ThemeToggle/index.cjs.map +1 -0
  731. package/dist/components/ThemeToggle/index.d.cts +2 -0
  732. package/dist/components/ThemeToggle/index.d.ts +2 -0
  733. package/dist/components/ThemeToggle/index.js +6 -0
  734. package/dist/components/ThemeToggle/index.js.map +1 -0
  735. package/dist/components/TimePicker/TimePicker.d.cts +68 -0
  736. package/dist/components/TimePicker/TimePicker.d.ts +68 -0
  737. package/dist/components/TimePicker/index.cjs +2 -0
  738. package/dist/components/TimePicker/index.cjs.map +1 -0
  739. package/dist/components/TimePicker/index.d.cts +2 -0
  740. package/dist/components/TimePicker/index.d.ts +2 -0
  741. package/dist/components/TimePicker/index.js +6 -0
  742. package/dist/components/TimePicker/index.js.map +1 -0
  743. package/dist/components/Timeline/Timeline.d.cts +37 -0
  744. package/dist/components/Timeline/Timeline.d.ts +37 -0
  745. package/dist/components/Timeline/TimelineItem.d.cts +26 -0
  746. package/dist/components/Timeline/TimelineItem.d.ts +26 -0
  747. package/dist/components/Timeline/index.cjs +2 -0
  748. package/dist/components/Timeline/index.cjs.map +1 -0
  749. package/dist/components/Timeline/index.d.cts +4 -0
  750. package/dist/components/Timeline/index.d.ts +4 -0
  751. package/dist/components/Timeline/index.js +7 -0
  752. package/dist/components/Timeline/index.js.map +1 -0
  753. package/dist/components/Timeline/timelineContext.d.cts +10 -0
  754. package/dist/components/Timeline/timelineContext.d.ts +10 -0
  755. package/dist/components/Toast/ToastItem.d.cts +12 -0
  756. package/dist/components/Toast/ToastItem.d.ts +12 -0
  757. package/dist/components/Toast/Toaster.d.cts +18 -0
  758. package/dist/components/Toast/Toaster.d.ts +18 -0
  759. package/dist/components/Toast/index.cjs +2 -0
  760. package/dist/components/Toast/index.cjs.map +1 -0
  761. package/dist/components/Toast/index.d.cts +4 -0
  762. package/dist/components/Toast/index.d.ts +4 -0
  763. package/dist/components/Toast/index.js +8 -0
  764. package/dist/components/Toast/index.js.map +1 -0
  765. package/dist/components/Toast/toastStore.d.cts +45 -0
  766. package/dist/components/Toast/toastStore.d.ts +45 -0
  767. package/dist/components/ToggleButton/ToggleButton.d.cts +26 -0
  768. package/dist/components/ToggleButton/ToggleButton.d.ts +26 -0
  769. package/dist/components/ToggleButton/ToggleButtonGroup.d.cts +52 -0
  770. package/dist/components/ToggleButton/ToggleButtonGroup.d.ts +52 -0
  771. package/dist/components/ToggleButton/index.cjs +2 -0
  772. package/dist/components/ToggleButton/index.cjs.map +1 -0
  773. package/dist/components/ToggleButton/index.d.cts +4 -0
  774. package/dist/components/ToggleButton/index.d.ts +4 -0
  775. package/dist/components/ToggleButton/index.js +7 -0
  776. package/dist/components/ToggleButton/index.js.map +1 -0
  777. package/dist/components/ToggleButton/toggleButtonGroupContext.d.cts +15 -0
  778. package/dist/components/ToggleButton/toggleButtonGroupContext.d.ts +15 -0
  779. package/dist/components/Tooltip/Tooltip.d.cts +21 -0
  780. package/dist/components/Tooltip/Tooltip.d.ts +21 -0
  781. package/dist/components/Tooltip/index.cjs +2 -0
  782. package/dist/components/Tooltip/index.cjs.map +1 -0
  783. package/dist/components/Tooltip/index.d.cts +2 -0
  784. package/dist/components/Tooltip/index.d.ts +2 -0
  785. package/dist/components/Tooltip/index.js +6 -0
  786. package/dist/components/Tooltip/index.js.map +1 -0
  787. package/dist/components/TranslatedFields/TranslatedFields.d.cts +56 -0
  788. package/dist/components/TranslatedFields/TranslatedFields.d.ts +56 -0
  789. package/dist/components/TranslatedFields/index.cjs +2 -0
  790. package/dist/components/TranslatedFields/index.cjs.map +1 -0
  791. package/dist/components/TranslatedFields/index.d.cts +2 -0
  792. package/dist/components/TranslatedFields/index.d.ts +2 -0
  793. package/dist/components/TranslatedFields/index.js +6 -0
  794. package/dist/components/TranslatedFields/index.js.map +1 -0
  795. package/dist/components/Typography/Typography.d.cts +30 -0
  796. package/dist/components/Typography/Typography.d.ts +30 -0
  797. package/dist/components/Typography/index.cjs +2 -0
  798. package/dist/components/Typography/index.cjs.map +1 -0
  799. package/dist/components/Typography/index.d.cts +2 -0
  800. package/dist/components/Typography/index.d.ts +2 -0
  801. package/dist/components/Typography/index.js +6 -0
  802. package/dist/components/Typography/index.js.map +1 -0
  803. package/dist/components/UserCard/UserCard.d.cts +33 -0
  804. package/dist/components/UserCard/UserCard.d.ts +33 -0
  805. package/dist/components/UserCard/index.cjs +2 -0
  806. package/dist/components/UserCard/index.cjs.map +1 -0
  807. package/dist/components/UserCard/index.d.cts +2 -0
  808. package/dist/components/UserCard/index.d.ts +2 -0
  809. package/dist/components/UserCard/index.js +6 -0
  810. package/dist/components/UserCard/index.js.map +1 -0
  811. package/dist/components/index.d.cts +57 -0
  812. package/dist/components/index.d.ts +57 -0
  813. package/dist/entries/components.cjs +2 -0
  814. package/dist/entries/components.cjs.map +1 -0
  815. package/dist/entries/components.d.cts +3 -0
  816. package/dist/entries/components.d.ts +3 -0
  817. package/dist/entries/components.js +140 -0
  818. package/dist/entries/components.js.map +1 -0
  819. package/dist/entries/helpers.cjs +2 -0
  820. package/dist/entries/helpers.cjs.map +1 -0
  821. package/dist/entries/helpers.d.cts +4 -0
  822. package/dist/entries/helpers.d.ts +4 -0
  823. package/dist/entries/helpers.js +17 -0
  824. package/dist/entries/helpers.js.map +1 -0
  825. package/dist/entries/hooks.cjs +2 -0
  826. package/dist/entries/hooks.cjs.map +1 -0
  827. package/dist/entries/hooks.d.cts +7 -0
  828. package/dist/entries/hooks.d.ts +7 -0
  829. package/dist/entries/hooks.js +12 -0
  830. package/dist/entries/hooks.js.map +1 -0
  831. package/dist/entries/i18n.cjs +2 -0
  832. package/dist/entries/i18n.cjs.map +1 -0
  833. package/dist/entries/i18n.d.cts +3 -0
  834. package/dist/entries/i18n.d.ts +3 -0
  835. package/dist/entries/i18n.js +11 -0
  836. package/dist/entries/i18n.js.map +1 -0
  837. package/dist/entries/icons.cjs +2 -0
  838. package/dist/entries/icons.cjs.map +1 -0
  839. package/dist/entries/icons.d.cts +2 -0
  840. package/dist/entries/icons.d.ts +2 -0
  841. package/dist/entries/icons.js +9 -0
  842. package/dist/entries/icons.js.map +1 -0
  843. package/dist/entries/theme.cjs +2 -0
  844. package/dist/entries/theme.cjs.map +1 -0
  845. package/dist/entries/theme.d.cts +2 -0
  846. package/dist/entries/theme.d.ts +2 -0
  847. package/dist/entries/theme.js +18 -0
  848. package/dist/entries/theme.js.map +1 -0
  849. package/dist/form/Form.d.cts +14 -0
  850. package/dist/form/Form.d.ts +14 -0
  851. package/dist/form/formContext.d.cts +8 -0
  852. package/dist/form/formContext.d.ts +8 -0
  853. package/dist/form/index.d.cts +5 -0
  854. package/dist/form/index.d.ts +5 -0
  855. package/dist/form/useForm.d.cts +81 -0
  856. package/dist/form/useForm.d.ts +81 -0
  857. package/dist/formContext-B7ln1Miy.js +10 -0
  858. package/dist/formContext-B7ln1Miy.js.map +1 -0
  859. package/dist/formContext-bTWrqdEV.cjs +2 -0
  860. package/dist/formContext-bTWrqdEV.cjs.map +1 -0
  861. package/dist/helpers/access.d.cts +11 -0
  862. package/dist/helpers/access.d.ts +11 -0
  863. package/dist/helpers/table.d.cts +41 -0
  864. package/dist/helpers/table.d.ts +41 -0
  865. package/dist/helpers/translations.d.cts +63 -0
  866. package/dist/helpers/translations.d.ts +63 -0
  867. package/dist/hooks/index.d.cts +4 -0
  868. package/dist/hooks/index.d.ts +4 -0
  869. package/dist/hooks/useDisclosure.d.cts +7 -0
  870. package/dist/hooks/useDisclosure.d.ts +7 -0
  871. package/dist/hooks/useFloatingPanel.d.cts +45 -0
  872. package/dist/hooks/useFloatingPanel.d.ts +45 -0
  873. package/dist/hooks/useLockBodyScroll.d.cts +7 -0
  874. package/dist/hooks/useLockBodyScroll.d.ts +7 -0
  875. package/dist/hooks/useMediaQuery.d.cts +13 -0
  876. package/dist/hooks/useMediaQuery.d.ts +13 -0
  877. package/dist/i18n/locales/de.d.cts +5 -0
  878. package/dist/i18n/locales/de.d.ts +5 -0
  879. package/dist/i18n/locales/en.d.cts +9 -0
  880. package/dist/i18n/locales/en.d.ts +9 -0
  881. package/dist/i18n/locales/es.d.cts +5 -0
  882. package/dist/i18n/locales/es.d.ts +5 -0
  883. package/dist/i18n/locales/fr.d.cts +5 -0
  884. package/dist/i18n/locales/fr.d.ts +5 -0
  885. package/dist/i18n/locales/it.d.cts +5 -0
  886. package/dist/i18n/locales/it.d.ts +5 -0
  887. package/dist/i18n/locales/ka.d.cts +8 -0
  888. package/dist/i18n/locales/ka.d.ts +8 -0
  889. package/dist/i18n/locales/ru.d.cts +5 -0
  890. package/dist/i18n/locales/ru.d.ts +5 -0
  891. package/dist/i18n/messages.d.cts +241 -0
  892. package/dist/i18n/messages.d.ts +241 -0
  893. package/dist/icons/icons.d.cts +2 -0
  894. package/dist/icons/icons.d.ts +2 -0
  895. package/dist/icons/names.d.cts +3 -0
  896. package/dist/icons/names.d.ts +3 -0
  897. package/dist/index.cjs +2 -0
  898. package/dist/index.cjs.map +1 -0
  899. package/dist/index.css +203 -0
  900. package/dist/index.d.cts +6 -0
  901. package/dist/index.d.ts +6 -0
  902. package/dist/index.js +185 -0
  903. package/dist/index.js.map +1 -0
  904. package/dist/messages-C-zecFBE.js +1363 -0
  905. package/dist/messages-C-zecFBE.js.map +1 -0
  906. package/dist/messages-Cy-qK5xU.cjs +36 -0
  907. package/dist/messages-Cy-qK5xU.cjs.map +1 -0
  908. package/dist/names-C2Yj1p3u.cjs +2 -0
  909. package/dist/names-C2Yj1p3u.cjs.map +1 -0
  910. package/dist/names-D8ABK2Wk.js +1205 -0
  911. package/dist/names-D8ABK2Wk.js.map +1 -0
  912. package/dist/reset.css +78 -0
  913. package/dist/table-CZRQGNdk.cjs +2 -0
  914. package/dist/table-CZRQGNdk.cjs.map +1 -0
  915. package/dist/table-DF3zTrC3.js +49 -0
  916. package/dist/table-DF3zTrC3.js.map +1 -0
  917. package/dist/theme/ConfigProvider.d.cts +362 -0
  918. package/dist/theme/ConfigProvider.d.ts +362 -0
  919. package/dist/theme/applyTheme.d.cts +28 -0
  920. package/dist/theme/applyTheme.d.ts +28 -0
  921. package/dist/theme/index.d.cts +5 -0
  922. package/dist/theme/index.d.ts +5 -0
  923. package/dist/toastStore-B4Tk2Xk7.cjs +2 -0
  924. package/dist/toastStore-B4Tk2Xk7.cjs.map +1 -0
  925. package/dist/toastStore-Cx_JOKwS.js +32 -0
  926. package/dist/toastStore-Cx_JOKwS.js.map +1 -0
  927. package/dist/translations-CXEeeUDL.cjs +2 -0
  928. package/dist/translations-CXEeeUDL.cjs.map +1 -0
  929. package/dist/translations-D15tFHM1.js +74 -0
  930. package/dist/translations-D15tFHM1.js.map +1 -0
  931. package/dist/useForm-B_5wDIER.js +126 -0
  932. package/dist/useForm-B_5wDIER.js.map +1 -0
  933. package/dist/useForm-C7erBHt0.cjs +2 -0
  934. package/dist/useForm-C7erBHt0.cjs.map +1 -0
  935. package/dist/useLockBodyScroll-CIXHZo-Q.cjs +2 -0
  936. package/dist/useLockBodyScroll-CIXHZo-Q.cjs.map +1 -0
  937. package/dist/useLockBodyScroll-DwBILLPK.js +35 -0
  938. package/dist/useLockBodyScroll-DwBILLPK.js.map +1 -0
  939. package/dist/useMediaQuery-BCsNfMA1.cjs +2 -0
  940. package/dist/useMediaQuery-BCsNfMA1.cjs.map +1 -0
  941. package/dist/useMediaQuery-_1EcFoC5.js +17 -0
  942. package/dist/useMediaQuery-_1EcFoC5.js.map +1 -0
  943. package/package.json +244 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimePicker-CfGrCH9T.cjs","sources":["../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useT } from '../../theme'\nimport { useFormContext } from '../../form/formContext'\nimport { FloatingPanel } from '../FloatingPanel/FloatingPanel'\nimport { Button } from '../Button'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { Typography } from '../Typography'\nimport { TimeColumns } from '../DateTimePicker/TimeColumns'\nimport {\n applyMask,\n localWallToUtc,\n maskFromFormat,\n parseInput,\n parseTime,\n utcToLocalWall,\n type Dayjs,\n} from '../DatePicker/dateUtils'\nimport styles from '../DatePicker/DatePicker.module.css'\nimport tp from './TimePicker.module.css'\n\nexport type TimePickerSize = 'sm' | 'md' | 'lg'\n\nexport interface TimePickerProps {\n /** Label rendered above the field. */\n label?: ReactNode\n /** Preset size — control height, font and popover density. */\n size?: TimePickerSize\n /** Marks the field invalid: red border/ring + the `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the field. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Stretches the field to fill its container width. Defaults to `true`. */\n fullWidth?: boolean\n /** Disables the field. */\n disabled?: boolean\n /** Controlled value — a time string in `valueFormat` (`''` = empty). */\n value?: string\n /** Initial value for uncontrolled use (in `valueFormat`). */\n defaultValue?: string\n /** Fires with the next time in `valueFormat` (`''` when cleared). */\n onChange?: (value: string) => void\n /**\n * Display + typed-input format (dayjs tokens). Defaults to `'HH:mm:ss'` (or `hh:mm:ss A` when\n * `hour12`; the `:ss` is dropped when `showSeconds` is `false`).\n */\n format?: string\n /**\n * Wire format of `value`/`defaultValue`/`onChange` (dayjs tokens), decoupled from the displayed\n * `format`. Defaults to `'HH:mm:ss[Z]'` when `utc` (the `Z` marks UTC), or `'HH:mm:ss'` when\n * `utc={false}`. Incoming values are parsed **leniently** (this format, then a numeric time — so a\n * backend time like `'09:35:49.6134342'` is accepted, ms-capped — then any ISO-8601 datetime, whose\n * time is used). Only the time-of-day is used; the date is ignored.\n */\n valueFormat?: string\n /**\n * Treat the value as **UTC** and display/edit in the viewer's **local** timezone (default `true`).\n * Set `false` to disable timezone conversion — the field shows and emits the value's exact wall-clock.\n */\n utc?: boolean\n /** 12-hour clock (1–12 + AM/PM) instead of 24-hour (0–23). Defaults to `false`. */\n hour12?: boolean\n /** Minute increment for the minutes column. Defaults to `1`. */\n minuteStep?: number\n /** Show the seconds column + `:ss` in the default format. Defaults to `true`; pass `false` to hide seconds. */\n showSeconds?: boolean\n /** Placeholder shown when empty. Defaults to the lowercased `format`. */\n placeholder?: string\n /** Shows a clear (×) button when a value is set. Defaults to `true`. */\n clearable?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (value is the time string). */\n name?: string\n /** Id for the input (label association). */\n id?: string\n className?: string\n style?: CSSProperties\n}\n\nfunction defaultFormatFor(hour12: boolean, showSeconds: boolean): string {\n if (hour12) return showSeconds ? 'hh:mm:ss A' : 'hh:mm A'\n return showSeconds ? 'HH:mm:ss' : 'HH:mm'\n}\n\n/** Compares two datetimes by **time of day** only (ignoring the date) at the given precision. */\nfunction sameTime(a: Dayjs, b: Dayjs, unit: 'minute' | 'second'): boolean {\n if (a.hour() !== b.hour() || a.minute() !== b.minute()) return false\n return unit === 'minute' ? true : a.second() === b.second()\n}\n\n/**\n * A time-of-day field with a typed, masked input **and** a popover of scrollable time columns\n * (hour / minute / optional second + AM/PM in 12-hour mode) — the time sibling of `DateTimePicker`,\n * with no calendar. The value is a string in `valueFormat` (UTC, with a `Z`, unless `utc={false}`) —\n * incoming values are parsed leniently (a richer backend time is accepted) and the chosen time emitted\n * in that format. Picking keeps the popover open until you click away, press Escape, or hit Done.\n * Supports `hour12`, `minuteStep`, `showSeconds`, and `clearable`. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name`. Requires `dayjs`.\n */\nexport const TimePicker = forwardRef<HTMLInputElement, TimePickerProps>(function TimePicker(\n {\n label,\n size = 'md',\n error,\n helperText,\n required = false,\n fullWidth = true,\n disabled = false,\n value,\n defaultValue,\n onChange,\n format: formatProp,\n valueFormat: valueFormatProp,\n utc = true,\n hour12 = false,\n minuteStep = 1,\n showSeconds = true,\n placeholder,\n clearable = true,\n name,\n id: idProp,\n className,\n style,\n },\n ref,\n) {\n const t = useT()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n const format = formatProp ?? defaultFormatFor(hour12, showSeconds)\n // UTC time-of-day carries a `Z` (\"09:35:00Z\"); `utc={false}` emits the bare wall-clock. Override via `valueFormat`.\n const valueFormat = valueFormatProp ?? (utc ? 'HH:mm:ss[Z]' : 'HH:mm:ss')\n\n // ── value (controlled / form-bound / uncontrolled) — a `valueFormat` time string ────────────────\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const externalValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : undefined\n const isControlled = value !== undefined || isFormBound\n const [internal, setInternal] = useState<string>(defaultValue ?? '')\n const currentValue = isControlled ? externalValue! : internal\n // when `utc`, parse the UTC time and show it in the viewer's LOCAL time (value stays UTC, emit\n // converts back); when `utc={false}`, show/emit the value's exact wall-clock (no tz conversion)\n const selected = utc\n ? utcToLocalWall(parseTime(currentValue, valueFormat))\n : parseTime(currentValue, valueFormat)\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const mask = maskFromFormat(format)\n const timeUnit = /s/.test(format) ? 'second' : 'minute'\n\n const commit = (next: string) => {\n if (next === currentValue) return // skip redundant onChange / setValue with an unchanged value\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n // emit a time in the wire `valueFormat`, or '' to clear. Re-picking the same time-of-day is a no-op\n const commitTime = (d: Dayjs | null) => {\n if (d && selected && sameTime(d, selected, 'second')) return\n // local-wall → UTC for the wire value (or emit the wall-clock as-is when `utc={false}`)\n commit(d ? (utc ? localWallToUtc(d) : d).format(valueFormat) : '')\n }\n\n // true when `d` differs from the current value at the input's precision — gates typed-input commits\n const changed = (d: Dayjs) => !selected || !sameTime(d, selected, timeUnit)\n\n const [inputText, setInputText] = useState<string>(() =>\n selected ? selected.format(format) : '',\n )\n useEffect(() => {\n setInputText(selected ? selected.format(format) : '')\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue, format, valueFormat])\n\n // ── popover ────────────────────────────────────────────────────────────────────────────────────\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [open, setOpen] = useState(false)\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n\n const fieldBlurRef = useRef<(() => void) | undefined>(undefined)\n fieldBlurRef.current = bound ? () => bound.onBlur({} as FocusEvent<HTMLInputElement>) : undefined\n\n // the floating panel forwards its node here, for the focus-leaves-the-widget check on blur\n const popoverRef = useRef<HTMLDivElement | null>(null)\n\n const closePopover = useCallback((refocus: boolean) => {\n setOpen(false)\n fieldBlurRef.current?.()\n if (refocus) inputRef.current?.focus()\n }, [])\n\n const handleInputChange = (raw: string) => {\n const masked = applyMask(raw, mask)\n setInputText(masked)\n if (masked === '') {\n commit('')\n return\n }\n const parsed = parseInput(masked, format)\n if (parsed && changed(parsed)) commitTime(parsed)\n }\n\n const handleInputBlur = (event: FocusEvent<HTMLInputElement>) => {\n const parsed = parseInput(inputText, format)\n if (inputText === '') {\n commit('')\n } else if (parsed) {\n if (changed(parsed)) commitTime(parsed)\n setInputText(parsed.format(format))\n } else {\n setInputText(selected ? selected.format(format) : '')\n }\n const nextEl = event.relatedTarget as Node | null\n if (nextEl && (popoverRef.current?.contains(nextEl) || triggerRef.current?.contains(nextEl)))\n return\n bound?.onBlur(event)\n }\n\n const handleTimeChange = (next: Dayjs) => commitTime(next)\n\n const iconSize: 'sm' | 'md' = size === 'sm' ? 'sm' : 'md'\n\n return (\n <div\n className={clsx(\n styles.field,\n styles[size],\n fullWidth && styles.fullWidth,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={style}\n >\n {label != null && (\n <label htmlFor={id} className={styles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n\n <div ref={triggerRef} className={clsx(styles.control, open && styles.open)}>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n className={styles.input}\n value={inputText}\n placeholder={placeholder ?? format.toLowerCase()}\n disabled={disabled}\n autoComplete=\"off\"\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n onChange={(e) => handleInputChange(e.target.value)}\n onBlur={handleInputBlur}\n />\n\n {clearable && currentValue !== '' && !disabled && (\n <button\n type=\"button\"\n className={styles.clear}\n aria-label={t('timePicker.clear')}\n tabIndex={-1}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => {\n commit('')\n setInputText('')\n inputRef.current?.focus()\n }}\n >\n <Icon name=\"CloseCircle\" size=\"sm\" />\n </button>\n )}\n\n <IconButton\n type=\"button\"\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('timePicker.open')}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n className={styles.calendarButton}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setOpen((o) => !o)}\n >\n <Icon name=\"Clock\" size={iconSize} />\n </IconButton>\n </div>\n\n <FloatingPanel\n ref={popoverRef}\n open={open}\n triggerRef={triggerRef}\n onClose={closePopover}\n role=\"dialog\"\n ariaLabel=\"Choose time\"\n trapFocus\n className={styles.popover}\n >\n <TimeColumns\n value={selected}\n onChange={handleTimeChange}\n hour12={hour12}\n minuteStep={minuteStep}\n showSeconds={showSeconds}\n autoFocus\n />\n <div className={tp.footer}>\n <Button size=\"sm\" variant=\"filled\" color=\"primary\" onClick={() => closePopover(true)}>\n {t('common.done')}\n </Button>\n </div>\n </FloatingPanel>\n\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={styles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["defaultFormatFor","hour12","showSeconds","sameTime","a","b","unit","TimePicker","forwardRef","label","size","error","helperText","required","fullWidth","disabled","value","defaultValue","onChange","formatProp","valueFormatProp","utc","minuteStep","placeholder","clearable","name","idProp","className","style","ref","t","useT","reactId","useId","id","helperId","format","valueFormat","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","currentValue","selected","utcToLocalWall","parseTime","resolvedError","resolvedHelperText","mask","maskFromFormat","timeUnit","commit","next","commitTime","d","localWallToUtc","changed","inputText","setInputText","useEffect","triggerRef","useRef","inputRef","open","setOpen","setInputRef","useCallback","node","fieldBlurRef","popoverRef","closePopover","refocus","_a","_b","handleInputChange","raw","masked","applyMask","parsed","parseInput","handleInputBlur","event","nextEl","handleTimeChange","iconSize","jsxs","clsx","styles","jsx","Typography","Icon","IconButton","o","FloatingPanel","TimeColumns","tp","Button"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const o=require("react/jsx-runtime"),a=require("react"),x=require("clsx"),p=require("./names-C2Yj1p3u.cjs"),y=require("./Icon-CXTl_QAP.cjs"),N=a.createContext(null);function T(){return a.useContext(N)}const f="_root_34zcl_2",v="_item_34zcl_12",C="_sm_34zcl_24",I="_md_34zcl_31",g="_lg_34zcl_38",q="_node_34zcl_47",S="_dotNode_34zcl_60",w="_dot_34zcl_60",E="_connector_34zcl_71",R="_body_34zcl_87",A="_label_34zcl_95",M="_time_34zcl_102",O="_content_34zcl_107",n={root:f,item:v,sm:C,md:I,lg:g,node:q,dotNode:S,dot:w,connector:E,body:R,label:A,time:M,content:O},P=new Set(p.ICON_NAMES),z=a.forwardRef(function({label:s,time:c,children:l,icon:t,color:d,className:i,style:_,...m},u){const e=T(),r=(e==null?void 0:e.size)??"md",b=d??(e==null?void 0:e.color)??"primary",h=typeof t=="string"&&P.has(t)?o.jsx(y.Icon,{name:t,size:r}):t;return o.jsxs("li",{ref:u,className:x.clsx(n.item,n[r],i),style:{"--tl-rgb":`var(--tz-color-${b}-rgb)`,..._},...m,children:[o.jsx("span",{className:x.clsx(n.node,t==null&&n.dotNode),"aria-hidden":"true",children:t!=null?h:o.jsx("span",{className:n.dot})}),o.jsx("span",{className:n.connector,"aria-hidden":"true"}),o.jsxs("div",{className:n.body,children:[s!=null&&o.jsx("span",{className:n.label,children:s}),c!=null&&o.jsx("span",{className:n.time,children:c}),l!=null&&o.jsx("div",{className:n.content,children:l})]})]})}),$=a.forwardRef(function({items:s,size:c="md",color:l="primary",children:t,className:d,style:i,..._},m){const u={size:c,color:l};return o.jsx("ol",{ref:m,className:x.clsx(n.root,d),style:i,..._,children:o.jsx(N.Provider,{value:u,children:s?s.map((e,r)=>o.jsx(z,{label:e.label,time:e.time,icon:e.icon,color:e.color,children:e.content},r)):t})})});exports.Timeline=$;exports.TimelineItem=z;
2
+ //# sourceMappingURL=Timeline-CoxW0Ia_.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline-CoxW0Ia_.cjs","sources":["../src/components/Timeline/timelineContext.ts","../src/components/Timeline/TimelineItem.tsx","../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { TimelineSize } from './Timeline'\n\n/** Shared defaults a `<Timeline>` hands down to its `<TimelineItem>` children via context. */\nexport interface TimelineContextValue {\n size: TimelineSize\n color: ThemeColor\n}\n\nexport const TimelineContext = createContext<TimelineContextValue | null>(null)\n\n/** Read the surrounding `<Timeline>` so a `<TimelineItem>` can inherit its `size`/`color`. */\nexport function useTimelineContext(): TimelineContextValue | null {\n return useContext(TimelineContext)\n}\n","import { forwardRef, type CSSProperties, type LiHTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { Icon } from '../Icon'\nimport { useTimelineContext } from './timelineContext'\nimport styles from './Timeline.module.css'\n\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport interface TimelineItemProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'color'> {\n /** Title line. */\n label?: ReactNode\n /** Muted caption under the label — usually the date/time (e.g. `\"13th May 2021\"`). */\n time?: ReactNode\n /** Body content under the caption — any node (text, chips, buttons). */\n children?: ReactNode\n /**\n * Node icon — a known `IconName` or any node, shown in a soft tinted circle. Omit for a small\n * **dot** node instead (the compact activity-log look).\n */\n icon?: IconName | ReactNode\n /** Theme palette token tinting this item's node. Inherits the timeline's `color` when omitted. */\n color?: ThemeColor\n}\n\n/**\n * One entry on a `<Timeline>` — a node (a soft tinted icon circle, or a small dot when there's no\n * `icon`) on the rail, with a `label`, a muted `time` caption, and any `children` as the body.\n * Inherits `size`/`color` from the surrounding `<Timeline>` (a per-item `color` wins — e.g. a green\n * `success` node for a delivered step). Renders an `<li>`; the connecting rail hides itself on the\n * last item via CSS.\n */\nexport const TimelineItem = forwardRef<HTMLLIElement, TimelineItemProps>(function TimelineItem(\n { label, time, children, icon, color, className, style, ...props },\n ref,\n) {\n const timeline = useTimelineContext()\n const resolvedSize = timeline?.size ?? 'md'\n const resolvedColor = color ?? timeline?.color ?? 'primary'\n\n const iconNode =\n typeof icon === 'string' && ICON_NAME_SET.has(icon) ? (\n <Icon name={icon as IconName} size={resolvedSize} />\n ) : (\n icon\n )\n\n return (\n <li\n ref={ref}\n className={clsx(styles.item, styles[resolvedSize], className)}\n style={{ '--tl-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n {...props}\n >\n {/* the node — an icon circle, or a small dot when there's no icon */}\n <span className={clsx(styles.node, icon == null && styles.dotNode)} aria-hidden=\"true\">\n {icon != null ? iconNode : <span className={styles.dot} />}\n </span>\n {/* the rail segment down to the next node — hidden on the last item via :last-child */}\n <span className={styles.connector} aria-hidden=\"true\" />\n <div className={styles.body}>\n {label != null && <span className={styles.label}>{label}</span>}\n {time != null && <span className={styles.time}>{time}</span>}\n {children != null && <div className={styles.content}>{children}</div>}\n </div>\n </li>\n )\n})\n","import { forwardRef, type CSSProperties, type OlHTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport type { IconName } from '../../icons/names'\nimport { TimelineItem } from './TimelineItem'\nimport { TimelineContext, type TimelineContextValue } from './timelineContext'\nimport styles from './Timeline.module.css'\n\nexport type TimelineSize = 'sm' | 'md' | 'lg'\n\n/** A single entry for the data-driven `items` prop. */\nexport interface TimelineEntry {\n /** Title line. */\n label?: ReactNode\n /** Muted caption under the label — usually the date/time. */\n time?: ReactNode\n /** Body content under the caption — any node. */\n content?: ReactNode\n /** Node icon (soft tinted circle) — a known `IconName` or any node. Omit for a small dot node. */\n icon?: IconName | ReactNode\n /** Theme palette token tinting this entry's node (overrides the timeline's `color`). */\n color?: ThemeColor\n}\n\nexport interface TimelineProps extends Omit<OlHTMLAttributes<HTMLOListElement>, 'color'> {\n /** Data-driven entries — an alternative to passing `<TimelineItem>` children. */\n items?: TimelineEntry[]\n /** Preset size — node circle, dot and fonts. Defaults to `md`. */\n size?: TimelineSize\n /** Theme palette token tinting the nodes. Defaults to `primary` (a per-item `color` wins). */\n color?: ThemeColor\n /** `<TimelineItem>` children (used when `items` is not given). */\n children?: ReactNode\n}\n\n/**\n * A vertical timeline — events on a rail (order tracking, activity feeds, audit logs). Data-driven via\n * **`items`** (`{ label?, time?, content?, icon?, color? }[]`) or as `<TimelineItem>` children. An\n * entry **with** an `icon` gets a soft tinted circle node; one **without** gets a small dot — mix them\n * freely, and tint any node per item via its `color` (e.g. `success` for a completed event). `size`\n * (`sm`/`md`/`lg`) scales the nodes and type together. Renders a semantic `<ol>`/`<li>` list (name it\n * with `aria-label`); the rail is a hairline that hides itself after the last entry. Styling uses\n * `--tz-*` tokens.\n */\nexport const Timeline = forwardRef<HTMLOListElement, TimelineProps>(function Timeline(\n { items, size = 'md', color = 'primary', children, className, style, ...props },\n ref,\n) {\n const ctx: TimelineContextValue = { size, color }\n\n return (\n <ol\n ref={ref}\n className={clsx(styles.root, className)}\n style={style as CSSProperties}\n {...props}\n >\n <TimelineContext.Provider value={ctx}>\n {items\n ? items.map((item, i) => (\n <TimelineItem\n key={i}\n label={item.label}\n time={item.time}\n icon={item.icon}\n color={item.color}\n >\n {item.content}\n </TimelineItem>\n ))\n : children}\n </TimelineContext.Provider>\n </ol>\n )\n})\n"],"names":["TimelineContext","createContext","useTimelineContext","useContext","ICON_NAME_SET","ICON_NAMES","TimelineItem","forwardRef","label","time","children","icon","color","className","style","props","ref","timeline","resolvedSize","resolvedColor","iconNode","jsx","Icon","jsxs","clsx","styles","Timeline","items","size","ctx","item","i"],"mappings":"0JAUaA,EAAkBC,EAAAA,cAA2C,IAAI,EAGvE,SAASC,GAAkD,CAChE,OAAOC,EAAAA,WAAWH,CAAe,CACnC,wWCPMI,EAAgB,IAAI,IAAYC,YAAU,EAyBnCC,EAAeC,EAAAA,WAA6C,SACvE,CAAE,MAAAC,EAAO,KAAAC,EAAM,SAAAC,EAAU,KAAAC,EAAM,MAAAC,EAAO,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAA,EAC3DC,EACA,CACA,MAAMC,EAAWf,EAAA,EACXgB,GAAeD,GAAA,YAAAA,EAAU,OAAQ,KACjCE,EAAgBP,IAASK,GAAA,YAAAA,EAAU,QAAS,UAE5CG,EACJ,OAAOT,GAAS,UAAYP,EAAc,IAAIO,CAAI,EAChDU,EAAAA,IAACC,EAAAA,KAAA,CAAK,KAAMX,EAAkB,KAAMO,EAAc,EAElDP,EAGJ,OACEY,EAAAA,KAAC,KAAA,CACC,IAAAP,EACA,UAAWQ,EAAAA,KAAKC,EAAO,KAAMA,EAAOP,CAAY,EAAGL,CAAS,EAC5D,MAAO,CAAE,WAAY,kBAAkBM,CAAa,QAAS,GAAGL,CAAA,EAC/D,GAAGC,EAGJ,SAAA,CAAAM,EAAAA,IAAC,OAAA,CAAK,UAAWG,OAAKC,EAAO,KAAMd,GAAQ,MAAQc,EAAO,OAAO,EAAG,cAAY,OAC7E,SAAAd,GAAQ,KAAOS,EAAWC,EAAAA,IAAC,QAAK,UAAWI,EAAO,IAAK,CAAA,CAC1D,QAEC,OAAA,CAAK,UAAWA,EAAO,UAAW,cAAY,OAAO,EACtDF,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAO,KACpB,SAAA,CAAAjB,GAAS,MAAQa,EAAAA,IAAC,OAAA,CAAK,UAAWI,EAAO,MAAQ,SAAAjB,EAAM,EACvDC,GAAQ,MAAQY,EAAAA,IAAC,QAAK,UAAWI,EAAO,KAAO,SAAAhB,EAAK,EACpDC,GAAY,MAAQW,EAAAA,IAAC,OAAI,UAAWI,EAAO,QAAU,SAAAf,CAAA,CAAS,CAAA,CAAA,CACjE,CAAA,CAAA,CAAA,CAGN,CAAC,ECxBYgB,EAAWnB,EAAAA,WAA4C,SAClE,CAAE,MAAAoB,EAAO,KAAAC,EAAO,KAAM,MAAAhB,EAAQ,UAAW,SAAAF,EAAU,UAAAG,EAAW,MAAAC,EAAO,GAAGC,CAAA,EACxEC,EACA,CACA,MAAMa,EAA4B,CAAE,KAAAD,EAAM,MAAAhB,CAAA,EAE1C,OACES,EAAAA,IAAC,KAAA,CACC,IAAAL,EACA,UAAWQ,EAAAA,KAAKC,EAAO,KAAMZ,CAAS,EACtC,MAAAC,EACC,GAAGC,EAEJ,SAAAM,EAAAA,IAACrB,EAAgB,SAAhB,CAAyB,MAAO6B,EAC9B,SAAAF,EACGA,EAAM,IAAI,CAACG,EAAMC,IACfV,EAAAA,IAACf,EAAA,CAEC,MAAOwB,EAAK,MACZ,KAAMA,EAAK,KACX,KAAMA,EAAK,KACX,MAAOA,EAAK,MAEX,SAAAA,EAAK,OAAA,EANDC,CAAA,CAQR,EACDrB,CAAA,CACN,CAAA,CAAA,CAGN,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { jsx as n, jsxs as u } from "react/jsx-runtime";
2
+ import { createContext as x, useContext as y, forwardRef as z } from "react";
3
+ import { clsx as N } from "clsx";
4
+ import { a as T } from "./names-D8ABK2Wk.js";
5
+ import { I as v } from "./Icon-CophpkHo.js";
6
+ const p = x(null);
7
+ function C() {
8
+ return y(p);
9
+ }
10
+ const g = "_root_34zcl_2", I = "_item_34zcl_12", S = "_sm_34zcl_24", E = "_md_34zcl_31", j = "_lg_34zcl_38", w = "_node_34zcl_47", A = "_dotNode_34zcl_60", M = "_dot_34zcl_60", O = "_connector_34zcl_71", P = "_body_34zcl_87", R = "_label_34zcl_95", $ = "_time_34zcl_102", k = "_content_34zcl_107", e = {
11
+ root: g,
12
+ item: I,
13
+ sm: S,
14
+ md: E,
15
+ lg: j,
16
+ node: w,
17
+ dotNode: A,
18
+ dot: M,
19
+ connector: O,
20
+ body: P,
21
+ label: R,
22
+ time: $,
23
+ content: k
24
+ }, q = new Set(T), B = z(function({ label: c, time: l, children: s, icon: t, color: a, className: d, style: _, ...m }, i) {
25
+ const o = C(), r = (o == null ? void 0 : o.size) ?? "md", f = a ?? (o == null ? void 0 : o.color) ?? "primary", h = typeof t == "string" && q.has(t) ? /* @__PURE__ */ n(v, { name: t, size: r }) : t;
26
+ return /* @__PURE__ */ u(
27
+ "li",
28
+ {
29
+ ref: i,
30
+ className: N(e.item, e[r], d),
31
+ style: { "--tl-rgb": `var(--tz-color-${f}-rgb)`, ..._ },
32
+ ...m,
33
+ children: [
34
+ /* @__PURE__ */ n("span", { className: N(e.node, t == null && e.dotNode), "aria-hidden": "true", children: t != null ? h : /* @__PURE__ */ n("span", { className: e.dot }) }),
35
+ /* @__PURE__ */ n("span", { className: e.connector, "aria-hidden": "true" }),
36
+ /* @__PURE__ */ u("div", { className: e.body, children: [
37
+ c != null && /* @__PURE__ */ n("span", { className: e.label, children: c }),
38
+ l != null && /* @__PURE__ */ n("span", { className: e.time, children: l }),
39
+ s != null && /* @__PURE__ */ n("div", { className: e.content, children: s })
40
+ ] })
41
+ ]
42
+ }
43
+ );
44
+ }), K = z(function({ items: c, size: l = "md", color: s = "primary", children: t, className: a, style: d, ..._ }, m) {
45
+ const i = { size: l, color: s };
46
+ return /* @__PURE__ */ n(
47
+ "ol",
48
+ {
49
+ ref: m,
50
+ className: N(e.root, a),
51
+ style: d,
52
+ ..._,
53
+ children: /* @__PURE__ */ n(p.Provider, { value: i, children: c ? c.map((o, r) => /* @__PURE__ */ n(
54
+ B,
55
+ {
56
+ label: o.label,
57
+ time: o.time,
58
+ icon: o.icon,
59
+ color: o.color,
60
+ children: o.content
61
+ },
62
+ r
63
+ )) : t })
64
+ }
65
+ );
66
+ });
67
+ export {
68
+ K as T,
69
+ B as a
70
+ };
71
+ //# sourceMappingURL=Timeline-WkV4k_we.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline-WkV4k_we.js","sources":["../src/components/Timeline/timelineContext.ts","../src/components/Timeline/TimelineItem.tsx","../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { TimelineSize } from './Timeline'\n\n/** Shared defaults a `<Timeline>` hands down to its `<TimelineItem>` children via context. */\nexport interface TimelineContextValue {\n size: TimelineSize\n color: ThemeColor\n}\n\nexport const TimelineContext = createContext<TimelineContextValue | null>(null)\n\n/** Read the surrounding `<Timeline>` so a `<TimelineItem>` can inherit its `size`/`color`. */\nexport function useTimelineContext(): TimelineContextValue | null {\n return useContext(TimelineContext)\n}\n","import { forwardRef, type CSSProperties, type LiHTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { Icon } from '../Icon'\nimport { useTimelineContext } from './timelineContext'\nimport styles from './Timeline.module.css'\n\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport interface TimelineItemProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'color'> {\n /** Title line. */\n label?: ReactNode\n /** Muted caption under the label — usually the date/time (e.g. `\"13th May 2021\"`). */\n time?: ReactNode\n /** Body content under the caption — any node (text, chips, buttons). */\n children?: ReactNode\n /**\n * Node icon — a known `IconName` or any node, shown in a soft tinted circle. Omit for a small\n * **dot** node instead (the compact activity-log look).\n */\n icon?: IconName | ReactNode\n /** Theme palette token tinting this item's node. Inherits the timeline's `color` when omitted. */\n color?: ThemeColor\n}\n\n/**\n * One entry on a `<Timeline>` — a node (a soft tinted icon circle, or a small dot when there's no\n * `icon`) on the rail, with a `label`, a muted `time` caption, and any `children` as the body.\n * Inherits `size`/`color` from the surrounding `<Timeline>` (a per-item `color` wins — e.g. a green\n * `success` node for a delivered step). Renders an `<li>`; the connecting rail hides itself on the\n * last item via CSS.\n */\nexport const TimelineItem = forwardRef<HTMLLIElement, TimelineItemProps>(function TimelineItem(\n { label, time, children, icon, color, className, style, ...props },\n ref,\n) {\n const timeline = useTimelineContext()\n const resolvedSize = timeline?.size ?? 'md'\n const resolvedColor = color ?? timeline?.color ?? 'primary'\n\n const iconNode =\n typeof icon === 'string' && ICON_NAME_SET.has(icon) ? (\n <Icon name={icon as IconName} size={resolvedSize} />\n ) : (\n icon\n )\n\n return (\n <li\n ref={ref}\n className={clsx(styles.item, styles[resolvedSize], className)}\n style={{ '--tl-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n {...props}\n >\n {/* the node — an icon circle, or a small dot when there's no icon */}\n <span className={clsx(styles.node, icon == null && styles.dotNode)} aria-hidden=\"true\">\n {icon != null ? iconNode : <span className={styles.dot} />}\n </span>\n {/* the rail segment down to the next node — hidden on the last item via :last-child */}\n <span className={styles.connector} aria-hidden=\"true\" />\n <div className={styles.body}>\n {label != null && <span className={styles.label}>{label}</span>}\n {time != null && <span className={styles.time}>{time}</span>}\n {children != null && <div className={styles.content}>{children}</div>}\n </div>\n </li>\n )\n})\n","import { forwardRef, type CSSProperties, type OlHTMLAttributes, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport type { IconName } from '../../icons/names'\nimport { TimelineItem } from './TimelineItem'\nimport { TimelineContext, type TimelineContextValue } from './timelineContext'\nimport styles from './Timeline.module.css'\n\nexport type TimelineSize = 'sm' | 'md' | 'lg'\n\n/** A single entry for the data-driven `items` prop. */\nexport interface TimelineEntry {\n /** Title line. */\n label?: ReactNode\n /** Muted caption under the label — usually the date/time. */\n time?: ReactNode\n /** Body content under the caption — any node. */\n content?: ReactNode\n /** Node icon (soft tinted circle) — a known `IconName` or any node. Omit for a small dot node. */\n icon?: IconName | ReactNode\n /** Theme palette token tinting this entry's node (overrides the timeline's `color`). */\n color?: ThemeColor\n}\n\nexport interface TimelineProps extends Omit<OlHTMLAttributes<HTMLOListElement>, 'color'> {\n /** Data-driven entries — an alternative to passing `<TimelineItem>` children. */\n items?: TimelineEntry[]\n /** Preset size — node circle, dot and fonts. Defaults to `md`. */\n size?: TimelineSize\n /** Theme palette token tinting the nodes. Defaults to `primary` (a per-item `color` wins). */\n color?: ThemeColor\n /** `<TimelineItem>` children (used when `items` is not given). */\n children?: ReactNode\n}\n\n/**\n * A vertical timeline — events on a rail (order tracking, activity feeds, audit logs). Data-driven via\n * **`items`** (`{ label?, time?, content?, icon?, color? }[]`) or as `<TimelineItem>` children. An\n * entry **with** an `icon` gets a soft tinted circle node; one **without** gets a small dot — mix them\n * freely, and tint any node per item via its `color` (e.g. `success` for a completed event). `size`\n * (`sm`/`md`/`lg`) scales the nodes and type together. Renders a semantic `<ol>`/`<li>` list (name it\n * with `aria-label`); the rail is a hairline that hides itself after the last entry. Styling uses\n * `--tz-*` tokens.\n */\nexport const Timeline = forwardRef<HTMLOListElement, TimelineProps>(function Timeline(\n { items, size = 'md', color = 'primary', children, className, style, ...props },\n ref,\n) {\n const ctx: TimelineContextValue = { size, color }\n\n return (\n <ol\n ref={ref}\n className={clsx(styles.root, className)}\n style={style as CSSProperties}\n {...props}\n >\n <TimelineContext.Provider value={ctx}>\n {items\n ? items.map((item, i) => (\n <TimelineItem\n key={i}\n label={item.label}\n time={item.time}\n icon={item.icon}\n color={item.color}\n >\n {item.content}\n </TimelineItem>\n ))\n : children}\n </TimelineContext.Provider>\n </ol>\n )\n})\n"],"names":["TimelineContext","createContext","useTimelineContext","useContext","ICON_NAME_SET","ICON_NAMES","TimelineItem","forwardRef","label","time","children","icon","color","className","style","props","ref","timeline","resolvedSize","resolvedColor","iconNode","jsx","Icon","jsxs","clsx","styles","Timeline","items","size","ctx","item","i"],"mappings":";;;;;AAUO,MAAMA,IAAkBC,EAA2C,IAAI;AAGvE,SAASC,IAAkD;AAChE,SAAOC,EAAWH,CAAe;AACnC;;;;;;;;;;;;;;;GCPMI,IAAgB,IAAI,IAAYC,CAAU,GAyBnCC,IAAeC,EAA6C,SACvE,EAAE,OAAAC,GAAO,MAAAC,GAAM,UAAAC,GAAU,MAAAC,GAAM,OAAAC,GAAO,WAAAC,GAAW,OAAAC,GAAO,GAAGC,EAAA,GAC3DC,GACA;AACA,QAAMC,IAAWf,EAAA,GACXgB,KAAeD,KAAA,gBAAAA,EAAU,SAAQ,MACjCE,IAAgBP,MAASK,KAAA,gBAAAA,EAAU,UAAS,WAE5CG,IACJ,OAAOT,KAAS,YAAYP,EAAc,IAAIO,CAAI,IAChD,gBAAAU,EAACC,GAAA,EAAK,MAAMX,GAAkB,MAAMO,GAAc,IAElDP;AAGJ,SACE,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAP;AAAA,MACA,WAAWQ,EAAKC,EAAO,MAAMA,EAAOP,CAAY,GAAGL,CAAS;AAAA,MAC5D,OAAO,EAAE,YAAY,kBAAkBM,CAAa,SAAS,GAAGL,EAAA;AAAA,MAC/D,GAAGC;AAAA,MAGJ,UAAA;AAAA,QAAA,gBAAAM,EAAC,QAAA,EAAK,WAAWG,EAAKC,EAAO,MAAMd,KAAQ,QAAQc,EAAO,OAAO,GAAG,eAAY,QAC7E,UAAAd,KAAQ,OAAOS,IAAW,gBAAAC,EAAC,UAAK,WAAWI,EAAO,KAAK,EAAA,CAC1D;AAAA,0BAEC,QAAA,EAAK,WAAWA,EAAO,WAAW,eAAY,QAAO;AAAA,QACtD,gBAAAF,EAAC,OAAA,EAAI,WAAWE,EAAO,MACpB,UAAA;AAAA,UAAAjB,KAAS,QAAQ,gBAAAa,EAAC,QAAA,EAAK,WAAWI,EAAO,OAAQ,UAAAjB,GAAM;AAAA,UACvDC,KAAQ,QAAQ,gBAAAY,EAAC,UAAK,WAAWI,EAAO,MAAO,UAAAhB,GAAK;AAAA,UACpDC,KAAY,QAAQ,gBAAAW,EAAC,SAAI,WAAWI,EAAO,SAAU,UAAAf,EAAA,CAAS;AAAA,QAAA,EAAA,CACjE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC,GCxBYgB,IAAWnB,EAA4C,SAClE,EAAE,OAAAoB,GAAO,MAAAC,IAAO,MAAM,OAAAhB,IAAQ,WAAW,UAAAF,GAAU,WAAAG,GAAW,OAAAC,GAAO,GAAGC,EAAA,GACxEC,GACA;AACA,QAAMa,IAA4B,EAAE,MAAAD,GAAM,OAAAhB,EAAA;AAE1C,SACE,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAL;AAAA,MACA,WAAWQ,EAAKC,EAAO,MAAMZ,CAAS;AAAA,MACtC,OAAAC;AAAA,MACC,GAAGC;AAAA,MAEJ,UAAA,gBAAAM,EAACrB,EAAgB,UAAhB,EAAyB,OAAO6B,GAC9B,UAAAF,IACGA,EAAM,IAAI,CAACG,GAAMC,MACf,gBAAAV;AAAA,QAACf;AAAA,QAAA;AAAA,UAEC,OAAOwB,EAAK;AAAA,UACZ,MAAMA,EAAK;AAAA,UACX,MAAMA,EAAK;AAAA,UACX,OAAOA,EAAK;AAAA,UAEX,UAAAA,EAAK;AAAA,QAAA;AAAA,QANDC;AAAA,MAAA,CAQR,IACDrB,EAAA,CACN;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const s=require("react/jsx-runtime"),t=require("react"),w=require("react-dom"),r=require("./toastStore-B4Tk2Xk7.cjs"),_=require("./Alert-DKIjM-9x.cjs"),x="_viewport_zx7eo_3",b="_item_zx7eo_40",q="_alert_zx7eo_63",d={viewport:x,item:b,alert:q},E=300;function g({toast:e,duration:c,position:u}){const[o,f]=t.useState(!1),a=e.duration??c,n=t.useRef(void 0),i=t.useRef(a),T=t.useRef(0);t.useEffect(()=>{const m=requestAnimationFrame(()=>f(!0));return()=>cancelAnimationFrame(m)},[]),t.useEffect(()=>{if(e.open)return;f(!1);const m=window.setTimeout(()=>r.removeToast(e.id),E);return()=>window.clearTimeout(m)},[e.open,e.id]);const l=()=>{n.current!=null&&(window.clearTimeout(n.current),n.current=void 0)},p=()=>{!e.open||i.current===1/0||(l(),T.current=Date.now(),n.current=window.setTimeout(()=>r.closeToast(e.id),i.current))},v=()=>{n.current!=null&&(l(),i.current-=Date.now()-T.current)};return t.useEffect(()=>(i.current=a,p(),l),[e.open,a]),s.jsx("div",{className:d.item,"data-open":o?"true":"false","data-position":u,onMouseEnter:v,onMouseLeave:p,children:s.jsx(_.Alert,{color:e.color,variant:e.variant??"contained",icon:e.icon,action:e.action,onClose:()=>r.closeToast(e.id),role:"status",className:d.alert,children:e.message})})}function j({position:e="bottom-right",duration:c=4e3}){const u=t.useSyncExternalStore(r.subscribeToasts,r.getToasts,r.getToasts);return typeof document>"u"?null:w.createPortal(s.jsx("div",{className:d.viewport,"data-position":e,"aria-live":"polite",children:u.map(o=>s.jsx(g,{toast:o,duration:c,position:e},o.id))}),document.body)}exports.Toaster=j;
2
+ //# sourceMappingURL=Toaster-Bk5GtPjX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toaster-Bk5GtPjX.cjs","sources":["../src/components/Toast/ToastItem.tsx","../src/components/Toast/Toaster.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Alert } from '../Alert'\nimport { closeToast, removeToast, type ToastPosition, type ToastRecord } from './toastStore'\nimport styles from './Toaster.module.css'\n\n/** Exit-animation duration (matches `--tz-duration`) — how long to keep a closing toast mounted. */\nconst EXIT_MS = 300\n\nexport interface ToastItemProps {\n toast: ToastRecord\n /** Fallback auto-dismiss delay when the toast doesn't set its own. */\n duration: number\n position: ToastPosition\n}\n\n/**\n * One rendered toast — an `Alert` wrapped with the enter/exit animation, the auto-dismiss timer\n * (paused while hovered), and the close wiring. Internal to `Toaster`.\n */\nexport function ToastItem({ toast, duration, position }: ToastItemProps) {\n const [visible, setVisible] = useState(false)\n const ttl = toast.duration ?? duration\n const timer = useRef<number | undefined>(undefined)\n const remaining = useRef(ttl)\n const startedAt = useRef(0)\n\n // enter — flip `visible` on the next frame so the transition runs\n useEffect(() => {\n const raf = requestAnimationFrame(() => setVisible(true))\n return () => cancelAnimationFrame(raf)\n }, [])\n\n // exit — when the store marks this toast closing, animate out then remove it\n useEffect(() => {\n if (toast.open) return\n setVisible(false)\n const t = window.setTimeout(() => removeToast(toast.id), EXIT_MS)\n return () => window.clearTimeout(t)\n }, [toast.open, toast.id])\n\n // auto-dismiss timer, paused on hover (tracks the remaining time across pauses)\n const clearTimer = () => {\n if (timer.current != null) {\n window.clearTimeout(timer.current)\n timer.current = undefined\n }\n }\n const resume = () => {\n if (!toast.open || remaining.current === Infinity) return\n clearTimer()\n startedAt.current = Date.now()\n timer.current = window.setTimeout(() => closeToast(toast.id), remaining.current)\n }\n const pause = () => {\n if (timer.current == null) return\n clearTimer()\n remaining.current -= Date.now() - startedAt.current\n }\n useEffect(() => {\n // (re)start from the full duration on open, and whenever an update-by-id changes `duration`\n // (otherwise the original countdown keeps running against the stale ttl)\n remaining.current = ttl\n resume()\n return clearTimer\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [toast.open, ttl])\n\n return (\n <div\n className={styles.item}\n data-open={visible ? 'true' : 'false'}\n data-position={position}\n onMouseEnter={pause}\n onMouseLeave={resume}\n >\n <Alert\n color={toast.color}\n variant={toast.variant ?? 'contained'}\n icon={toast.icon}\n action={toast.action}\n onClose={() => closeToast(toast.id)}\n role=\"status\"\n className={styles.alert}\n >\n {toast.message}\n </Alert>\n </div>\n )\n}\n","import { useSyncExternalStore } from 'react'\nimport { createPortal } from 'react-dom'\nimport { getToasts, subscribeToasts, type ToastPosition } from './toastStore'\nimport { ToastItem } from './ToastItem'\nimport styles from './Toaster.module.css'\n\nexport interface ToasterProps {\n /** Corner the toasts stack in. Defaults to `bottom-right`. */\n position?: ToastPosition\n /** Default auto-dismiss delay in ms; a per-toast `duration` overrides it. Defaults to `4000`. */\n duration?: number\n}\n\n/**\n * The toast viewport — mount it **once** near the app root. It portals to `<body>` at `--tz-z-toast`,\n * subscribes to the imperative `toast` store, and renders each toast as an animated, auto-dismissing\n * `Alert`. Drive it from anywhere with `toast.success('Saved')` / `toast.error(...)` / `toast.dismiss(id)`.\n *\n * @example\n * <Toaster position=\"bottom-right\" />\n * // …elsewhere:\n * toast.success('Saved')\n */\nexport function Toaster({ position = 'bottom-right', duration = 4000 }: ToasterProps) {\n const toasts = useSyncExternalStore(subscribeToasts, getToasts, getToasts)\n\n if (typeof document === 'undefined') return null\n\n return createPortal(\n <div className={styles.viewport} data-position={position} aria-live=\"polite\">\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} duration={duration} position={position} />\n ))}\n </div>,\n document.body,\n )\n}\n"],"names":["EXIT_MS","ToastItem","toast","duration","position","visible","setVisible","useState","ttl","timer","useRef","remaining","startedAt","useEffect","raf","t","removeToast","clearTimer","resume","closeToast","pause","jsx","styles","Alert","Toaster","toasts","useSyncExternalStore","subscribeToasts","getToasts","createPortal"],"mappings":"gQAMMA,EAAU,IAaT,SAASC,EAAU,CAAE,MAAAC,EAAO,SAAAC,EAAU,SAAAC,GAA4B,CACvE,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EACtCC,EAAMN,EAAM,UAAYC,EACxBM,EAAQC,EAAAA,OAA2B,MAAS,EAC5CC,EAAYD,EAAAA,OAAOF,CAAG,EACtBI,EAAYF,EAAAA,OAAO,CAAC,EAG1BG,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAM,sBAAsB,IAAMR,EAAW,EAAI,CAAC,EACxD,MAAO,IAAM,qBAAqBQ,CAAG,CACvC,EAAG,CAAA,CAAE,EAGLD,EAAAA,UAAU,IAAM,CACd,GAAIX,EAAM,KAAM,OAChBI,EAAW,EAAK,EAChB,MAAMS,EAAI,OAAO,WAAW,IAAMC,EAAAA,YAAYd,EAAM,EAAE,EAAGF,CAAO,EAChE,MAAO,IAAM,OAAO,aAAae,CAAC,CACpC,EAAG,CAACb,EAAM,KAAMA,EAAM,EAAE,CAAC,EAGzB,MAAMe,EAAa,IAAM,CACnBR,EAAM,SAAW,OACnB,OAAO,aAAaA,EAAM,OAAO,EACjCA,EAAM,QAAU,OAEpB,EACMS,EAAS,IAAM,CACf,CAAChB,EAAM,MAAQS,EAAU,UAAY,MACzCM,EAAA,EACAL,EAAU,QAAU,KAAK,IAAA,EACzBH,EAAM,QAAU,OAAO,WAAW,IAAMU,aAAWjB,EAAM,EAAE,EAAGS,EAAU,OAAO,EACjF,EACMS,EAAQ,IAAM,CACdX,EAAM,SAAW,OACrBQ,EAAA,EACAN,EAAU,SAAW,KAAK,IAAA,EAAQC,EAAU,QAC9C,EACAC,OAAAA,EAAAA,UAAU,KAGRF,EAAU,QAAUH,EACpBU,EAAA,EACOD,GAEN,CAACf,EAAM,KAAMM,CAAG,CAAC,EAGlBa,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAO,KAClB,YAAWjB,EAAU,OAAS,QAC9B,gBAAeD,EACf,aAAcgB,EACd,aAAcF,EAEd,SAAAG,EAAAA,IAACE,EAAAA,MAAA,CACC,MAAOrB,EAAM,MACb,QAASA,EAAM,SAAW,YAC1B,KAAMA,EAAM,KACZ,OAAQA,EAAM,OACd,QAAS,IAAMiB,EAAAA,WAAWjB,EAAM,EAAE,EAClC,KAAK,SACL,UAAWoB,EAAO,MAEjB,SAAApB,EAAM,OAAA,CAAA,CACT,CAAA,CAGN,CCjEO,SAASsB,EAAQ,CAAE,SAAApB,EAAW,eAAgB,SAAAD,EAAW,KAAsB,CACpF,MAAMsB,EAASC,EAAAA,qBAAqBC,kBAAiBC,EAAAA,UAAWA,EAAAA,SAAS,EAEzE,OAAI,OAAO,SAAa,IAAoB,KAErCC,EAAAA,aACLR,EAAAA,IAAC,OAAI,UAAWC,EAAO,SAAU,gBAAelB,EAAU,YAAU,SACjE,SAAAqB,EAAO,IAAKV,GACXM,EAAAA,IAACpB,GAAqB,MAAOc,EAAG,SAAAZ,EAAoB,SAAAC,GAApCW,EAAE,EAAsD,CACzE,CAAA,CACH,EACA,SAAS,IAAA,CAEb"}
@@ -0,0 +1,63 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { useState as b, useRef as l, useEffect as m, useSyncExternalStore as x } from "react";
3
+ import { createPortal as g } from "react-dom";
4
+ import { r as y, c as w, s as A, g as T } from "./toastStore-Cx_JOKwS.js";
5
+ import { A as h } from "./Alert-BQpA48PY.js";
6
+ const E = "_viewport_zx7eo_3", S = "_item_zx7eo_40", z = "_alert_zx7eo_63", d = {
7
+ viewport: E,
8
+ item: S,
9
+ alert: z
10
+ }, I = 300;
11
+ function M({ toast: e, duration: i, position: s }) {
12
+ const [t, f] = b(!1), c = e.duration ?? i, r = l(void 0), n = l(c), p = l(0);
13
+ m(() => {
14
+ const u = requestAnimationFrame(() => f(!0));
15
+ return () => cancelAnimationFrame(u);
16
+ }, []), m(() => {
17
+ if (e.open) return;
18
+ f(!1);
19
+ const u = window.setTimeout(() => y(e.id), I);
20
+ return () => window.clearTimeout(u);
21
+ }, [e.open, e.id]);
22
+ const a = () => {
23
+ r.current != null && (window.clearTimeout(r.current), r.current = void 0);
24
+ }, v = () => {
25
+ !e.open || n.current === 1 / 0 || (a(), p.current = Date.now(), r.current = window.setTimeout(() => w(e.id), n.current));
26
+ }, _ = () => {
27
+ r.current != null && (a(), n.current -= Date.now() - p.current);
28
+ };
29
+ return m(() => (n.current = c, v(), a), [e.open, c]), /* @__PURE__ */ o(
30
+ "div",
31
+ {
32
+ className: d.item,
33
+ "data-open": t ? "true" : "false",
34
+ "data-position": s,
35
+ onMouseEnter: _,
36
+ onMouseLeave: v,
37
+ children: /* @__PURE__ */ o(
38
+ h,
39
+ {
40
+ color: e.color,
41
+ variant: e.variant ?? "contained",
42
+ icon: e.icon,
43
+ action: e.action,
44
+ onClose: () => w(e.id),
45
+ role: "status",
46
+ className: d.alert,
47
+ children: e.message
48
+ }
49
+ )
50
+ }
51
+ );
52
+ }
53
+ function C({ position: e = "bottom-right", duration: i = 4e3 }) {
54
+ const s = x(A, T, T);
55
+ return typeof document > "u" ? null : g(
56
+ /* @__PURE__ */ o("div", { className: d.viewport, "data-position": e, "aria-live": "polite", children: s.map((t) => /* @__PURE__ */ o(M, { toast: t, duration: i, position: e }, t.id)) }),
57
+ document.body
58
+ );
59
+ }
60
+ export {
61
+ C as T
62
+ };
63
+ //# sourceMappingURL=Toaster-D-eG1xv7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toaster-D-eG1xv7.js","sources":["../src/components/Toast/ToastItem.tsx","../src/components/Toast/Toaster.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { Alert } from '../Alert'\nimport { closeToast, removeToast, type ToastPosition, type ToastRecord } from './toastStore'\nimport styles from './Toaster.module.css'\n\n/** Exit-animation duration (matches `--tz-duration`) — how long to keep a closing toast mounted. */\nconst EXIT_MS = 300\n\nexport interface ToastItemProps {\n toast: ToastRecord\n /** Fallback auto-dismiss delay when the toast doesn't set its own. */\n duration: number\n position: ToastPosition\n}\n\n/**\n * One rendered toast — an `Alert` wrapped with the enter/exit animation, the auto-dismiss timer\n * (paused while hovered), and the close wiring. Internal to `Toaster`.\n */\nexport function ToastItem({ toast, duration, position }: ToastItemProps) {\n const [visible, setVisible] = useState(false)\n const ttl = toast.duration ?? duration\n const timer = useRef<number | undefined>(undefined)\n const remaining = useRef(ttl)\n const startedAt = useRef(0)\n\n // enter — flip `visible` on the next frame so the transition runs\n useEffect(() => {\n const raf = requestAnimationFrame(() => setVisible(true))\n return () => cancelAnimationFrame(raf)\n }, [])\n\n // exit — when the store marks this toast closing, animate out then remove it\n useEffect(() => {\n if (toast.open) return\n setVisible(false)\n const t = window.setTimeout(() => removeToast(toast.id), EXIT_MS)\n return () => window.clearTimeout(t)\n }, [toast.open, toast.id])\n\n // auto-dismiss timer, paused on hover (tracks the remaining time across pauses)\n const clearTimer = () => {\n if (timer.current != null) {\n window.clearTimeout(timer.current)\n timer.current = undefined\n }\n }\n const resume = () => {\n if (!toast.open || remaining.current === Infinity) return\n clearTimer()\n startedAt.current = Date.now()\n timer.current = window.setTimeout(() => closeToast(toast.id), remaining.current)\n }\n const pause = () => {\n if (timer.current == null) return\n clearTimer()\n remaining.current -= Date.now() - startedAt.current\n }\n useEffect(() => {\n // (re)start from the full duration on open, and whenever an update-by-id changes `duration`\n // (otherwise the original countdown keeps running against the stale ttl)\n remaining.current = ttl\n resume()\n return clearTimer\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [toast.open, ttl])\n\n return (\n <div\n className={styles.item}\n data-open={visible ? 'true' : 'false'}\n data-position={position}\n onMouseEnter={pause}\n onMouseLeave={resume}\n >\n <Alert\n color={toast.color}\n variant={toast.variant ?? 'contained'}\n icon={toast.icon}\n action={toast.action}\n onClose={() => closeToast(toast.id)}\n role=\"status\"\n className={styles.alert}\n >\n {toast.message}\n </Alert>\n </div>\n )\n}\n","import { useSyncExternalStore } from 'react'\nimport { createPortal } from 'react-dom'\nimport { getToasts, subscribeToasts, type ToastPosition } from './toastStore'\nimport { ToastItem } from './ToastItem'\nimport styles from './Toaster.module.css'\n\nexport interface ToasterProps {\n /** Corner the toasts stack in. Defaults to `bottom-right`. */\n position?: ToastPosition\n /** Default auto-dismiss delay in ms; a per-toast `duration` overrides it. Defaults to `4000`. */\n duration?: number\n}\n\n/**\n * The toast viewport — mount it **once** near the app root. It portals to `<body>` at `--tz-z-toast`,\n * subscribes to the imperative `toast` store, and renders each toast as an animated, auto-dismissing\n * `Alert`. Drive it from anywhere with `toast.success('Saved')` / `toast.error(...)` / `toast.dismiss(id)`.\n *\n * @example\n * <Toaster position=\"bottom-right\" />\n * // …elsewhere:\n * toast.success('Saved')\n */\nexport function Toaster({ position = 'bottom-right', duration = 4000 }: ToasterProps) {\n const toasts = useSyncExternalStore(subscribeToasts, getToasts, getToasts)\n\n if (typeof document === 'undefined') return null\n\n return createPortal(\n <div className={styles.viewport} data-position={position} aria-live=\"polite\">\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} duration={duration} position={position} />\n ))}\n </div>,\n document.body,\n )\n}\n"],"names":["EXIT_MS","ToastItem","toast","duration","position","visible","setVisible","useState","ttl","timer","useRef","remaining","startedAt","useEffect","raf","t","removeToast","clearTimer","resume","closeToast","pause","jsx","styles","Alert","Toaster","toasts","useSyncExternalStore","subscribeToasts","getToasts","createPortal"],"mappings":";;;;;;;;;GAMMA,IAAU;AAaT,SAASC,EAAU,EAAE,OAAAC,GAAO,UAAAC,GAAU,UAAAC,KAA4B;AACvE,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAMN,EAAM,YAAYC,GACxBM,IAAQC,EAA2B,MAAS,GAC5CC,IAAYD,EAAOF,CAAG,GACtBI,IAAYF,EAAO,CAAC;AAG1B,EAAAG,EAAU,MAAM;AACd,UAAMC,IAAM,sBAAsB,MAAMR,EAAW,EAAI,CAAC;AACxD,WAAO,MAAM,qBAAqBQ,CAAG;AAAA,EACvC,GAAG,CAAA,CAAE,GAGLD,EAAU,MAAM;AACd,QAAIX,EAAM,KAAM;AAChB,IAAAI,EAAW,EAAK;AAChB,UAAMS,IAAI,OAAO,WAAW,MAAMC,EAAYd,EAAM,EAAE,GAAGF,CAAO;AAChE,WAAO,MAAM,OAAO,aAAae,CAAC;AAAA,EACpC,GAAG,CAACb,EAAM,MAAMA,EAAM,EAAE,CAAC;AAGzB,QAAMe,IAAa,MAAM;AACvB,IAAIR,EAAM,WAAW,SACnB,OAAO,aAAaA,EAAM,OAAO,GACjCA,EAAM,UAAU;AAAA,EAEpB,GACMS,IAAS,MAAM;AACnB,IAAI,CAAChB,EAAM,QAAQS,EAAU,YAAY,UACzCM,EAAA,GACAL,EAAU,UAAU,KAAK,IAAA,GACzBH,EAAM,UAAU,OAAO,WAAW,MAAMU,EAAWjB,EAAM,EAAE,GAAGS,EAAU,OAAO;AAAA,EACjF,GACMS,IAAQ,MAAM;AAClB,IAAIX,EAAM,WAAW,SACrBQ,EAAA,GACAN,EAAU,WAAW,KAAK,IAAA,IAAQC,EAAU;AAAA,EAC9C;AACA,SAAAC,EAAU,OAGRF,EAAU,UAAUH,GACpBU,EAAA,GACOD,IAEN,CAACf,EAAM,MAAMM,CAAG,CAAC,GAGlB,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAO;AAAA,MAClB,aAAWjB,IAAU,SAAS;AAAA,MAC9B,iBAAeD;AAAA,MACf,cAAcgB;AAAA,MACd,cAAcF;AAAA,MAEd,UAAA,gBAAAG;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAOrB,EAAM;AAAA,UACb,SAASA,EAAM,WAAW;AAAA,UAC1B,MAAMA,EAAM;AAAA,UACZ,QAAQA,EAAM;AAAA,UACd,SAAS,MAAMiB,EAAWjB,EAAM,EAAE;AAAA,UAClC,MAAK;AAAA,UACL,WAAWoB,EAAO;AAAA,UAEjB,UAAApB,EAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACT;AAAA,EAAA;AAGN;ACjEO,SAASsB,EAAQ,EAAE,UAAApB,IAAW,gBAAgB,UAAAD,IAAW,OAAsB;AACpF,QAAMsB,IAASC,EAAqBC,GAAiBC,GAAWA,CAAS;AAEzE,SAAI,OAAO,WAAa,MAAoB,OAErCC;AAAA,IACL,gBAAAR,EAAC,SAAI,WAAWC,EAAO,UAAU,iBAAelB,GAAU,aAAU,UACjE,UAAAqB,EAAO,IAAI,CAAC,MACX,gBAAAJ,EAACpB,KAAqB,OAAO,GAAG,UAAAE,GAAoB,UAAAC,KAApC,EAAE,EAAsD,CACzE,EAAA,CACH;AAAA,IACA,SAAS;AAAA,EAAA;AAEb;"}
@@ -0,0 +1,123 @@
1
+ import { jsx as _, jsxs as h } from "react/jsx-runtime";
2
+ import { useContext as E, createContext as w, forwardRef as A, useState as M } from "react";
3
+ import { clsx as N } from "clsx";
4
+ import { a as O } from "./names-D8ABK2Wk.js";
5
+ import { I as D } from "./Icon-CophpkHo.js";
6
+ const W = w(null);
7
+ function F() {
8
+ return E(W);
9
+ }
10
+ const L = "_toggleButton_gj6n3_4", P = "_selected_gj6n3_29", R = "_fullWidth_gj6n3_45", $ = "_sm_gj6n3_50", q = "_md_gj6n3_56", H = "_lg_gj6n3_62", J = "_group_gj6n3_70", K = "_vertical_gj6n3_73", s = {
11
+ toggleButton: L,
12
+ selected: P,
13
+ fullWidth: R,
14
+ sm: $,
15
+ md: q,
16
+ lg: H,
17
+ group: J,
18
+ vertical: K
19
+ }, Q = A(function({
20
+ value: r,
21
+ selected: i,
22
+ onChange: o,
23
+ color: c,
24
+ size: d,
25
+ fullWidth: f,
26
+ disabled: m,
27
+ className: b,
28
+ style: B,
29
+ children: j,
30
+ onClick: n,
31
+ ...y
32
+ }, S) {
33
+ const e = F(), a = e ? e.isSelected(r) : i ?? !1, u = c ?? (e == null ? void 0 : e.color) ?? "primary", v = d ?? (e == null ? void 0 : e.size) ?? "md", x = !!(m || e != null && e.disabled), l = !e && (f ?? !1);
34
+ return /* @__PURE__ */ _(
35
+ "button",
36
+ {
37
+ ref: S,
38
+ type: "button",
39
+ className: N(
40
+ s.toggleButton,
41
+ s[v],
42
+ a && s.selected,
43
+ l && s.fullWidth,
44
+ b
45
+ ),
46
+ style: { "--tz-btn-rgb": `var(--tz-color-${u}-rgb)`, ...B },
47
+ "aria-pressed": a,
48
+ disabled: x,
49
+ onClick: (p) => {
50
+ n == null || n(p), e ? e.toggle(r) : o == null || o(!a, r);
51
+ },
52
+ ...y,
53
+ children: j
54
+ }
55
+ );
56
+ }), U = new Set(O), tt = A(
57
+ function({
58
+ exclusive: r = !1,
59
+ value: i,
60
+ defaultValue: o,
61
+ onChange: c,
62
+ options: d,
63
+ orientation: f = "horizontal",
64
+ size: m = "md",
65
+ color: b = "primary",
66
+ disabled: B = !1,
67
+ fullWidth: j = !1,
68
+ children: n,
69
+ className: y,
70
+ style: S,
71
+ ...e
72
+ }, a) {
73
+ const u = i !== void 0, [v, x] = M(o), l = u ? i : v, I = {
74
+ isSelected: (t) => r ? l === t : Array.isArray(l) && l.includes(t),
75
+ toggle: (t) => {
76
+ let g;
77
+ if (r)
78
+ g = l === t ? null : t;
79
+ else {
80
+ const T = Array.isArray(l) ? l : [];
81
+ g = T.includes(t) ? T.filter((G) => G !== t) : [...T, t];
82
+ }
83
+ u || x(g), c == null || c(g);
84
+ },
85
+ size: m,
86
+ color: b,
87
+ disabled: B
88
+ };
89
+ return /* @__PURE__ */ _(
90
+ "div",
91
+ {
92
+ ref: a,
93
+ role: "group",
94
+ className: N(
95
+ s.group,
96
+ f === "vertical" && s.vertical,
97
+ j && s.fullWidth,
98
+ y
99
+ ),
100
+ style: S,
101
+ ...e,
102
+ children: /* @__PURE__ */ _(W.Provider, { value: I, children: d ? d.map((t) => /* @__PURE__ */ h(
103
+ Q,
104
+ {
105
+ value: t.value,
106
+ disabled: t.disabled,
107
+ "aria-label": t.ariaLabel,
108
+ children: [
109
+ t.icon != null && (typeof t.icon == "string" && U.has(t.icon) ? /* @__PURE__ */ _(D, { name: t.icon }) : t.icon),
110
+ t.label
111
+ ]
112
+ },
113
+ t.value
114
+ )) : n })
115
+ }
116
+ );
117
+ }
118
+ );
119
+ export {
120
+ Q as T,
121
+ tt as a
122
+ };
123
+ //# sourceMappingURL=ToggleButtonGroup-BWd7MOcc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButtonGroup-BWd7MOcc.js","sources":["../src/components/ToggleButton/toggleButtonGroupContext.ts","../src/components/ToggleButton/ToggleButton.tsx","../src/components/ToggleButton/ToggleButtonGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { ToggleButtonSize } from './ToggleButton'\n\n/** Shared state a `<ToggleButtonGroup>` hands down to its `<ToggleButton>` children via context. */\nexport interface ToggleButtonGroupContextValue {\n /** Whether a given button value is currently selected. */\n isSelected: (value: string) => boolean\n /** Toggle a button value — called by a child on click. */\n toggle: (value: string) => void\n size?: ToggleButtonSize\n color?: ThemeColor\n disabled?: boolean\n // (no `fullWidth` — the group applies its own `.fullWidth` class on the container; a child only honors\n // its own `fullWidth` prop when standalone, so passing it through context would be dead state)\n}\n\nexport const ToggleButtonGroupContext = createContext<ToggleButtonGroupContextValue | null>(null)\n\n/** Read the surrounding `<ToggleButtonGroup>` (or `null` when a `<ToggleButton>` is standalone). */\nexport function useToggleButtonGroup(): ToggleButtonGroupContextValue | null {\n return useContext(ToggleButtonGroupContext)\n}\n","import { forwardRef, type ButtonHTMLAttributes, type CSSProperties, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { useToggleButtonGroup } from './toggleButtonGroupContext'\nimport styles from './ToggleButton.module.css'\n\nexport type ToggleButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ToggleButtonProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'color' | 'value' | 'onChange'\n> {\n /** The value this button represents — its identity within a `ToggleButtonGroup`. */\n value: string\n /** Selected state for standalone use (inside a group, the group owns selection). */\n selected?: boolean\n /** Fires with the next selected state — standalone use only. */\n onChange?: (selected: boolean, value: string) => void\n /** Theme palette token tinting the selected state. Defaults to `primary`. */\n color?: ThemeColor\n /** Preset size. Defaults to `md`. */\n size?: ToggleButtonSize\n /** Stretch to fill the container width. */\n fullWidth?: boolean\n /** Button content — typically an `Icon`, text, or both. */\n children?: ReactNode\n}\n\n/**\n * A two-state button that toggles between selected and unselected — the building block of\n * `ToggleButtonGroup` (which owns selection, size, color and disabled via context), but also usable\n * standalone with `selected` + `onChange`. Selected uses the soft `filled` tint of `color` (the shared\n * `--tz-btn-rgb` pattern); `aria-pressed` reflects the state. The ref points at the `<button>`.\n */\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(function ToggleButton(\n {\n value,\n selected,\n onChange,\n color,\n size,\n fullWidth,\n disabled,\n className,\n style,\n children,\n onClick,\n ...props\n },\n ref,\n) {\n const group = useToggleButtonGroup()\n const isSelected = group ? group.isSelected(value) : (selected ?? false)\n const resolvedColor = color ?? group?.color ?? 'primary'\n const resolvedSize = size ?? group?.size ?? 'md'\n const resolvedDisabled = Boolean(disabled || group?.disabled)\n // standalone full-width uses a width:100% class; inside a group the group stretches the buttons\n const resolvedFullWidth = !group && (fullWidth ?? false)\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(\n styles.toggleButton,\n styles[resolvedSize],\n isSelected && styles.selected,\n resolvedFullWidth && styles.fullWidth,\n className,\n )}\n style={{ '--tz-btn-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n aria-pressed={isSelected}\n disabled={resolvedDisabled}\n onClick={(event) => {\n onClick?.(event)\n if (group) group.toggle(value)\n else onChange?.(!isSelected, value)\n }}\n {...props}\n >\n {children}\n </button>\n )\n})\n","import {\n forwardRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { Icon } from '../Icon'\nimport { ToggleButton, type ToggleButtonSize } from './ToggleButton'\nimport {\n ToggleButtonGroupContext,\n type ToggleButtonGroupContextValue,\n} from './toggleButtonGroupContext'\nimport styles from './ToggleButton.module.css'\n\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport type ToggleButtonGroupOrientation = 'horizontal' | 'vertical'\n\n/** A data-driven button for the `options` prop. */\nexport interface ToggleButtonOption {\n value: string\n label?: ReactNode\n /** Leading icon — a known `IconName` or any node. */\n icon?: IconName | ReactNode\n disabled?: boolean\n /** Accessible label (use for icon-only buttons). */\n ariaLabel?: string\n}\n\nexport interface ToggleButtonGroupProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'color' | 'onChange' | 'defaultValue'\n> {\n /**\n * Single-selection (`value` is a `string | null`, like a segmented control) vs multiple (`value` is\n * a `string[]`). Defaults to `false` (multiple), matching MUI.\n */\n exclusive?: boolean\n /** Controlled value — a `string | null` when `exclusive`, else a `string[]`. */\n value?: string | string[] | null\n /** Initial value for uncontrolled use (same shape as `value`). */\n defaultValue?: string | string[] | null\n /** Fires with the next value (matches the `exclusive` shape). */\n onChange?: (value: string | string[] | null) => void\n /** Data-driven buttons — an alternative to passing `<ToggleButton>` children. */\n options?: ToggleButtonOption[]\n /** Lay the buttons in a row or a column. Defaults to `horizontal`. */\n orientation?: ToggleButtonGroupOrientation\n /** Preset size for every button. Defaults to `md`. */\n size?: ToggleButtonSize\n /** Theme palette token tinting selected buttons. Defaults to `primary`. */\n color?: ThemeColor\n /** Disables every button in the group. */\n disabled?: boolean\n /** Stretch the group to fill the width (buttons share it equally). */\n fullWidth?: boolean\n /** `<ToggleButton>` children (used when `options` is not given). */\n children?: ReactNode\n}\n\n/**\n * Groups `<ToggleButton>`s into a joined, segmented control. **`exclusive`** picks single-selection\n * (`value` is a `string | null` — clicking the active button deselects it) vs multiple (`value` is a\n * `string[]`); both are controlled (`value` + `onChange`) or uncontrolled (`defaultValue`). Supply the\n * buttons via the data-driven `options` prop or as `<ToggleButton>` children — the group shares\n * `size`/`color`/`disabled`/`fullWidth` and the selection via context. `orientation` lays them in a\n * row or column; adjacent borders collapse so the strip reads as one control. `role=\"group\"`; styling\n * uses `--tz-*` tokens.\n */\nexport const ToggleButtonGroup = forwardRef<HTMLDivElement, ToggleButtonGroupProps>(\n function ToggleButtonGroup(\n {\n exclusive = false,\n value,\n defaultValue,\n onChange,\n options,\n orientation = 'horizontal',\n size = 'md',\n color = 'primary',\n disabled = false,\n fullWidth = false,\n children,\n className,\n style,\n ...props\n },\n ref,\n ) {\n const isControlled = value !== undefined\n const [internal, setInternal] = useState<string | string[] | null | undefined>(defaultValue)\n const current = isControlled ? value : internal\n\n const isSelected = (v: string) =>\n exclusive ? current === v : Array.isArray(current) && current.includes(v)\n\n const toggle = (v: string) => {\n let next: string | string[] | null\n if (exclusive) {\n next = current === v ? null : v // click the active button to deselect (MUI behavior)\n } else {\n const arr = Array.isArray(current) ? current : []\n next = arr.includes(v) ? arr.filter((x) => x !== v) : [...arr, v]\n }\n if (!isControlled) setInternal(next)\n onChange?.(next)\n }\n\n const ctx: ToggleButtonGroupContextValue = {\n isSelected,\n toggle,\n size,\n color,\n disabled,\n }\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={clsx(\n styles.group,\n orientation === 'vertical' && styles.vertical,\n fullWidth && styles.fullWidth,\n className,\n )}\n style={style as CSSProperties}\n {...props}\n >\n <ToggleButtonGroupContext.Provider value={ctx}>\n {options\n ? options.map((option) => (\n <ToggleButton\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n aria-label={option.ariaLabel}\n >\n {option.icon != null &&\n (typeof option.icon === 'string' && ICON_NAME_SET.has(option.icon) ? (\n <Icon name={option.icon as IconName} />\n ) : (\n option.icon\n ))}\n {option.label}\n </ToggleButton>\n ))\n : children}\n </ToggleButtonGroupContext.Provider>\n </div>\n )\n },\n)\n"],"names":["ToggleButtonGroupContext","createContext","useToggleButtonGroup","useContext","ToggleButton","forwardRef","value","selected","onChange","color","size","fullWidth","disabled","className","style","children","onClick","props","ref","group","isSelected","resolvedColor","resolvedSize","resolvedDisabled","resolvedFullWidth","jsx","clsx","styles","event","ICON_NAME_SET","ICON_NAMES","ToggleButtonGroup","exclusive","defaultValue","options","orientation","isControlled","internal","setInternal","useState","current","ctx","v","next","arr","x","option","jsxs","Icon"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const i=require("react/jsx-runtime"),d=require("react"),W=require("clsx"),w=require("./names-C2Yj1p3u.cjs"),E=require("./Icon-CXTl_QAP.cjs"),q=d.createContext(null);function R(){return d.useContext(q)}const M="_toggleButton_gj6n3_4",O="_selected_gj6n3_29",p="_fullWidth_gj6n3_45",D="_sm_gj6n3_50",F="_md_gj6n3_56",L="_lg_gj6n3_62",P="_group_gj6n3_70",$="_vertical_gj6n3_73",s={toggleButton:M,selected:O,fullWidth:p,sm:D,md:F,lg:L,group:P,vertical:$},z=d.forwardRef(function({value:r,selected:a,onChange:o,color:c,size:g,fullWidth:m,disabled:j,className:b,style:x,children:B,onClick:n,...y},S){const t=R(),u=t?t.isSelected(r):a??!1,_=c??(t==null?void 0:t.color)??"primary",T=g??(t==null?void 0:t.size)??"md",v=!!(j||t!=null&&t.disabled),l=!t&&(m??!1);return i.jsx("button",{ref:S,type:"button",className:W.clsx(s.toggleButton,s[T],u&&s.selected,l&&s.fullWidth,b),style:{"--tz-btn-rgb":`var(--tz-color-${_}-rgb)`,...x},"aria-pressed":u,disabled:v,onClick:N=>{n==null||n(N),t?t.toggle(r):o==null||o(!u,r)},...y,children:B})}),H=new Set(w.ICON_NAMES),J=d.forwardRef(function({exclusive:r=!1,value:a,defaultValue:o,onChange:c,options:g,orientation:m="horizontal",size:j="md",color:b="primary",disabled:x=!1,fullWidth:B=!1,children:n,className:y,style:S,...t},u){const _=a!==void 0,[T,v]=d.useState(o),l=_?a:T,I={isSelected:e=>r?l===e:Array.isArray(l)&&l.includes(e),toggle:e=>{let f;if(r)f=l===e?null:e;else{const A=Array.isArray(l)?l:[];f=A.includes(e)?A.filter(h=>h!==e):[...A,e]}_||v(f),c==null||c(f)},size:j,color:b,disabled:x};return i.jsx("div",{ref:u,role:"group",className:W.clsx(s.group,m==="vertical"&&s.vertical,B&&s.fullWidth,y),style:S,...t,children:i.jsx(q.Provider,{value:I,children:g?g.map(e=>i.jsxs(z,{value:e.value,disabled:e.disabled,"aria-label":e.ariaLabel,children:[e.icon!=null&&(typeof e.icon=="string"&&H.has(e.icon)?i.jsx(E.Icon,{name:e.icon}):e.icon),e.label]},e.value)):n})})});exports.ToggleButton=z;exports.ToggleButtonGroup=J;
2
+ //# sourceMappingURL=ToggleButtonGroup-DYRLwKKh.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButtonGroup-DYRLwKKh.cjs","sources":["../src/components/ToggleButton/toggleButtonGroupContext.ts","../src/components/ToggleButton/ToggleButton.tsx","../src/components/ToggleButton/ToggleButtonGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { ToggleButtonSize } from './ToggleButton'\n\n/** Shared state a `<ToggleButtonGroup>` hands down to its `<ToggleButton>` children via context. */\nexport interface ToggleButtonGroupContextValue {\n /** Whether a given button value is currently selected. */\n isSelected: (value: string) => boolean\n /** Toggle a button value — called by a child on click. */\n toggle: (value: string) => void\n size?: ToggleButtonSize\n color?: ThemeColor\n disabled?: boolean\n // (no `fullWidth` — the group applies its own `.fullWidth` class on the container; a child only honors\n // its own `fullWidth` prop when standalone, so passing it through context would be dead state)\n}\n\nexport const ToggleButtonGroupContext = createContext<ToggleButtonGroupContextValue | null>(null)\n\n/** Read the surrounding `<ToggleButtonGroup>` (or `null` when a `<ToggleButton>` is standalone). */\nexport function useToggleButtonGroup(): ToggleButtonGroupContextValue | null {\n return useContext(ToggleButtonGroupContext)\n}\n","import { forwardRef, type ButtonHTMLAttributes, type CSSProperties, type ReactNode } from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { useToggleButtonGroup } from './toggleButtonGroupContext'\nimport styles from './ToggleButton.module.css'\n\nexport type ToggleButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ToggleButtonProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'color' | 'value' | 'onChange'\n> {\n /** The value this button represents — its identity within a `ToggleButtonGroup`. */\n value: string\n /** Selected state for standalone use (inside a group, the group owns selection). */\n selected?: boolean\n /** Fires with the next selected state — standalone use only. */\n onChange?: (selected: boolean, value: string) => void\n /** Theme palette token tinting the selected state. Defaults to `primary`. */\n color?: ThemeColor\n /** Preset size. Defaults to `md`. */\n size?: ToggleButtonSize\n /** Stretch to fill the container width. */\n fullWidth?: boolean\n /** Button content — typically an `Icon`, text, or both. */\n children?: ReactNode\n}\n\n/**\n * A two-state button that toggles between selected and unselected — the building block of\n * `ToggleButtonGroup` (which owns selection, size, color and disabled via context), but also usable\n * standalone with `selected` + `onChange`. Selected uses the soft `filled` tint of `color` (the shared\n * `--tz-btn-rgb` pattern); `aria-pressed` reflects the state. The ref points at the `<button>`.\n */\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(function ToggleButton(\n {\n value,\n selected,\n onChange,\n color,\n size,\n fullWidth,\n disabled,\n className,\n style,\n children,\n onClick,\n ...props\n },\n ref,\n) {\n const group = useToggleButtonGroup()\n const isSelected = group ? group.isSelected(value) : (selected ?? false)\n const resolvedColor = color ?? group?.color ?? 'primary'\n const resolvedSize = size ?? group?.size ?? 'md'\n const resolvedDisabled = Boolean(disabled || group?.disabled)\n // standalone full-width uses a width:100% class; inside a group the group stretches the buttons\n const resolvedFullWidth = !group && (fullWidth ?? false)\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(\n styles.toggleButton,\n styles[resolvedSize],\n isSelected && styles.selected,\n resolvedFullWidth && styles.fullWidth,\n className,\n )}\n style={{ '--tz-btn-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n aria-pressed={isSelected}\n disabled={resolvedDisabled}\n onClick={(event) => {\n onClick?.(event)\n if (group) group.toggle(value)\n else onChange?.(!isSelected, value)\n }}\n {...props}\n >\n {children}\n </button>\n )\n})\n","import {\n forwardRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { ICON_NAMES, type IconName } from '../../icons/names'\nimport { Icon } from '../Icon'\nimport { ToggleButton, type ToggleButtonSize } from './ToggleButton'\nimport {\n ToggleButtonGroupContext,\n type ToggleButtonGroupContextValue,\n} from './toggleButtonGroupContext'\nimport styles from './ToggleButton.module.css'\n\nconst ICON_NAME_SET = new Set<string>(ICON_NAMES)\n\nexport type ToggleButtonGroupOrientation = 'horizontal' | 'vertical'\n\n/** A data-driven button for the `options` prop. */\nexport interface ToggleButtonOption {\n value: string\n label?: ReactNode\n /** Leading icon — a known `IconName` or any node. */\n icon?: IconName | ReactNode\n disabled?: boolean\n /** Accessible label (use for icon-only buttons). */\n ariaLabel?: string\n}\n\nexport interface ToggleButtonGroupProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'color' | 'onChange' | 'defaultValue'\n> {\n /**\n * Single-selection (`value` is a `string | null`, like a segmented control) vs multiple (`value` is\n * a `string[]`). Defaults to `false` (multiple), matching MUI.\n */\n exclusive?: boolean\n /** Controlled value — a `string | null` when `exclusive`, else a `string[]`. */\n value?: string | string[] | null\n /** Initial value for uncontrolled use (same shape as `value`). */\n defaultValue?: string | string[] | null\n /** Fires with the next value (matches the `exclusive` shape). */\n onChange?: (value: string | string[] | null) => void\n /** Data-driven buttons — an alternative to passing `<ToggleButton>` children. */\n options?: ToggleButtonOption[]\n /** Lay the buttons in a row or a column. Defaults to `horizontal`. */\n orientation?: ToggleButtonGroupOrientation\n /** Preset size for every button. Defaults to `md`. */\n size?: ToggleButtonSize\n /** Theme palette token tinting selected buttons. Defaults to `primary`. */\n color?: ThemeColor\n /** Disables every button in the group. */\n disabled?: boolean\n /** Stretch the group to fill the width (buttons share it equally). */\n fullWidth?: boolean\n /** `<ToggleButton>` children (used when `options` is not given). */\n children?: ReactNode\n}\n\n/**\n * Groups `<ToggleButton>`s into a joined, segmented control. **`exclusive`** picks single-selection\n * (`value` is a `string | null` — clicking the active button deselects it) vs multiple (`value` is a\n * `string[]`); both are controlled (`value` + `onChange`) or uncontrolled (`defaultValue`). Supply the\n * buttons via the data-driven `options` prop or as `<ToggleButton>` children — the group shares\n * `size`/`color`/`disabled`/`fullWidth` and the selection via context. `orientation` lays them in a\n * row or column; adjacent borders collapse so the strip reads as one control. `role=\"group\"`; styling\n * uses `--tz-*` tokens.\n */\nexport const ToggleButtonGroup = forwardRef<HTMLDivElement, ToggleButtonGroupProps>(\n function ToggleButtonGroup(\n {\n exclusive = false,\n value,\n defaultValue,\n onChange,\n options,\n orientation = 'horizontal',\n size = 'md',\n color = 'primary',\n disabled = false,\n fullWidth = false,\n children,\n className,\n style,\n ...props\n },\n ref,\n ) {\n const isControlled = value !== undefined\n const [internal, setInternal] = useState<string | string[] | null | undefined>(defaultValue)\n const current = isControlled ? value : internal\n\n const isSelected = (v: string) =>\n exclusive ? current === v : Array.isArray(current) && current.includes(v)\n\n const toggle = (v: string) => {\n let next: string | string[] | null\n if (exclusive) {\n next = current === v ? null : v // click the active button to deselect (MUI behavior)\n } else {\n const arr = Array.isArray(current) ? current : []\n next = arr.includes(v) ? arr.filter((x) => x !== v) : [...arr, v]\n }\n if (!isControlled) setInternal(next)\n onChange?.(next)\n }\n\n const ctx: ToggleButtonGroupContextValue = {\n isSelected,\n toggle,\n size,\n color,\n disabled,\n }\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={clsx(\n styles.group,\n orientation === 'vertical' && styles.vertical,\n fullWidth && styles.fullWidth,\n className,\n )}\n style={style as CSSProperties}\n {...props}\n >\n <ToggleButtonGroupContext.Provider value={ctx}>\n {options\n ? options.map((option) => (\n <ToggleButton\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n aria-label={option.ariaLabel}\n >\n {option.icon != null &&\n (typeof option.icon === 'string' && ICON_NAME_SET.has(option.icon) ? (\n <Icon name={option.icon as IconName} />\n ) : (\n option.icon\n ))}\n {option.label}\n </ToggleButton>\n ))\n : children}\n </ToggleButtonGroupContext.Provider>\n </div>\n )\n },\n)\n"],"names":["ToggleButtonGroupContext","createContext","useToggleButtonGroup","useContext","ToggleButton","forwardRef","value","selected","onChange","color","size","fullWidth","disabled","className","style","children","onClick","props","ref","group","isSelected","resolvedColor","resolvedSize","resolvedDisabled","resolvedFullWidth","jsx","clsx","styles","event","ICON_NAME_SET","ICON_NAMES","ToggleButtonGroup","exclusive","defaultValue","options","orientation","isControlled","internal","setInternal","useState","current","ctx","v","next","arr","x","option","jsxs","Icon"],"mappings":"0JAiBaA,EAA2BC,EAAAA,cAAoD,IAAI,EAGzF,SAASC,GAA6D,CAC3E,OAAOC,EAAAA,WAAWH,CAAwB,CAC5C,0PCYaI,EAAeC,EAAAA,WAAiD,SAC3E,CACE,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,MAAAC,EACA,KAAAC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAQjB,EAAA,EACRkB,EAAaD,EAAQA,EAAM,WAAWb,CAAK,EAAKC,GAAY,GAC5Dc,EAAgBZ,IAASU,GAAA,YAAAA,EAAO,QAAS,UACzCG,EAAeZ,IAAQS,GAAA,YAAAA,EAAO,OAAQ,KACtCI,EAAmB,GAAQX,GAAYO,GAAA,MAAAA,EAAO,UAE9CK,EAAoB,CAACL,IAAUR,GAAa,IAElD,OACEc,EAAAA,IAAC,SAAA,CACC,IAAAP,EACA,KAAK,SACL,UAAWQ,EAAAA,KACTC,EAAO,aACPA,EAAOL,CAAY,EACnBF,GAAcO,EAAO,SACrBH,GAAqBG,EAAO,UAC5Bd,CAAA,EAEF,MAAO,CAAE,eAAgB,kBAAkBQ,CAAa,QAAS,GAAGP,CAAA,EACpE,eAAcM,EACd,SAAUG,EACV,QAAUK,GAAU,CAClBZ,GAAA,MAAAA,EAAUY,GACNT,EAAOA,EAAM,OAAOb,CAAK,EACxBE,GAAA,MAAAA,EAAW,CAACY,EAAYd,EAC/B,EACC,GAAGW,EAEH,SAAAF,CAAA,CAAA,CAGP,CAAC,ECjEKc,EAAgB,IAAI,IAAYC,YAAU,EAuDnCC,EAAoB1B,EAAAA,WAC/B,SACE,CACE,UAAA2B,EAAY,GACZ,MAAA1B,EACA,aAAA2B,EACA,SAAAzB,EACA,QAAA0B,EACA,YAAAC,EAAc,aACd,KAAAzB,EAAO,KACP,MAAAD,EAAQ,UACR,SAAAG,EAAW,GACX,UAAAD,EAAY,GACZ,SAAAI,EACA,UAAAF,EACA,MAAAC,EACA,GAAGG,CAAA,EAELC,EACA,CACA,MAAMkB,EAAe9B,IAAU,OACzB,CAAC+B,EAAUC,CAAW,EAAIC,EAAAA,SAA+CN,CAAY,EACrFO,EAAUJ,EAAe9B,EAAQ+B,EAiBjCI,EAAqC,CACzC,WAhBkBC,GAClBV,EAAYQ,IAAYE,EAAI,MAAM,QAAQF,CAAO,GAAKA,EAAQ,SAASE,CAAC,EAgBxE,OAdcA,GAAc,CAC5B,IAAIC,EACJ,GAAIX,EACFW,EAAOH,IAAYE,EAAI,KAAOA,MACzB,CACL,MAAME,EAAM,MAAM,QAAQJ,CAAO,EAAIA,EAAU,CAAA,EAC/CG,EAAOC,EAAI,SAASF,CAAC,EAAIE,EAAI,OAAQC,GAAMA,IAAMH,CAAC,EAAI,CAAC,GAAGE,EAAKF,CAAC,CAClE,CACKN,GAAcE,EAAYK,CAAI,EACnCnC,GAAA,MAAAA,EAAWmC,EACb,EAKE,KAAAjC,EACA,MAAAD,EACA,SAAAG,CAAA,EAGF,OACEa,EAAAA,IAAC,MAAA,CACC,IAAAP,EACA,KAAK,QACL,UAAWQ,EAAAA,KACTC,EAAO,MACPQ,IAAgB,YAAcR,EAAO,SACrChB,GAAagB,EAAO,UACpBd,CAAA,EAEF,MAAAC,EACC,GAAGG,EAEJ,SAAAQ,EAAAA,IAACzB,EAAyB,SAAzB,CAAkC,MAAOyC,EACvC,SAAAP,EACGA,EAAQ,IAAKY,GACXC,EAAAA,KAAC3C,EAAA,CAEC,MAAO0C,EAAO,MACd,SAAUA,EAAO,SACjB,aAAYA,EAAO,UAElB,SAAA,CAAAA,EAAO,MAAQ,OACb,OAAOA,EAAO,MAAS,UAAYjB,EAAc,IAAIiB,EAAO,IAAI,EAC/DrB,EAAAA,IAACuB,EAAAA,KAAA,CAAK,KAAMF,EAAO,IAAA,CAAkB,EAErCA,EAAO,MAEVA,EAAO,KAAA,CAAA,EAXHA,EAAO,KAAA,CAaf,EACD/B,CAAA,CACN,CAAA,CAAA,CAGN,CACF"}
@@ -0,0 +1,2 @@
1
+ "use strict";const l=require("react/jsx-runtime"),a=require("react"),_=require("clsx"),x="_root_1h36l_4",g="_tooltip_1h36l_10",j="_arrow_1h36l_37",z="_top_1h36l_45",q="_bottom_1h36l_57",v="_left_1h36l_69",y="_right_1h36l_81",s={root:x,tooltip:g,arrow:j,top:z,bottom:q,left:v,right:y};function E({content:o,placement:u="top",color:n="primary",children:r,className:f,style:h,onKeyDown:e,...d}){const c=`${a.useId()}-tooltip`,[i,t]=a.useState(!1),b=o!=null&&o!=="",m=p=>{p.key==="Escape"&&t(!1),e==null||e(p)};return b?l.jsxs("span",{className:_.clsx(s.root,f),style:{"--tz-btn-rgb":`var(--tz-color-${n}-rgb)`,"--tz-btn-on":`var(--tz-color-${n}-contrast, #fff)`,...h},onMouseEnter:()=>t(!0),onMouseLeave:()=>t(!1),onFocus:()=>t(!0),onBlur:()=>t(!1),onKeyDown:m,...d,children:[i?a.cloneElement(r,{"aria-describedby":c}):r,l.jsxs("span",{role:"tooltip",id:c,className:_.clsx(s.tooltip,s[u]),"data-open":i?"true":"false",children:[o,l.jsx("span",{className:s.arrow,"aria-hidden":"true"})]})]}):r}exports.Tooltip=E;
2
+ //# sourceMappingURL=Tooltip-Ao7az09p.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip-Ao7az09p.cjs","sources":["../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n cloneElement,\n useId,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Tooltip.module.css'\n\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right'\n\nexport interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'content' | 'color'> {\n /** The tooltip text/content shown on hover or focus. Empty content renders no tooltip. */\n content: ReactNode\n /** Which side of the trigger the tooltip appears on. Defaults to `top`. */\n placement?: TooltipPlacement\n /** Theme palette token for the fill (label uses its contrast color). Defaults to `primary`. */\n color?: ThemeColor\n /** A single focusable element to attach the tooltip to (e.g. a `Button` or `IconButton`). */\n children: ReactElement\n}\n\n/**\n * Shows a small floating label on hover or keyboard focus of its child, with an arrow pointing at\n * the trigger. Wrap a single element: `<Tooltip content=\"Save\"><IconButton…/></Tooltip>`. Opens on\n * `mouseenter`/`focus`, closes on `mouseleave`/`blur`/`Escape`. The child gets `aria-describedby`\n * while open (the label has `role=\"tooltip\"`). Token-only styling via the shared `--tz-btn-rgb`\n * pattern — `color` (default `primary`) sets the fill and its contrast label, flipping with the theme.\n */\nexport function Tooltip({\n content,\n placement = 'top',\n color = 'primary',\n children,\n className,\n style,\n onKeyDown,\n ...props\n}: TooltipProps) {\n const tooltipId = `${useId()}-tooltip`\n const [open, setOpen] = useState(false)\n const hasContent = content !== null && content !== undefined && content !== ''\n\n const handleKeyDown = (event: KeyboardEvent<HTMLSpanElement>) => {\n if (event.key === 'Escape') setOpen(false)\n onKeyDown?.(event)\n }\n\n if (!hasContent) return children\n\n return (\n <span\n className={clsx(styles.root, className)}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {open\n ? cloneElement(children as ReactElement<{ 'aria-describedby'?: string }>, {\n 'aria-describedby': tooltipId,\n })\n : children}\n <span\n role=\"tooltip\"\n id={tooltipId}\n className={clsx(styles.tooltip, styles[placement])}\n data-open={open ? 'true' : 'false'}\n >\n {content}\n <span className={styles.arrow} aria-hidden=\"true\" />\n </span>\n </span>\n )\n}\n"],"names":["Tooltip","content","placement","color","children","className","style","onKeyDown","props","tooltipId","useId","open","setOpen","useState","hasContent","handleKeyDown","event","jsxs","clsx","styles","cloneElement"],"mappings":"4RAkCO,SAASA,EAAQ,CACtB,QAAAC,EACA,UAAAC,EAAY,MACZ,MAAAC,EAAQ,UACR,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,UAAAC,EACA,GAAGC,CACL,EAAiB,CACf,MAAMC,EAAY,GAAGC,EAAAA,MAAA,CAAO,WACtB,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EAChCC,EAAab,GAAY,MAAiCA,IAAY,GAEtEc,EAAiBC,GAA0C,CAC3DA,EAAM,MAAQ,UAAUJ,EAAQ,EAAK,EACzCL,GAAA,MAAAA,EAAYS,EACd,EAEA,OAAKF,EAGHG,EAAAA,KAAC,OAAA,CACC,UAAWC,EAAAA,KAAKC,EAAO,KAAMd,CAAS,EACtC,MACE,CACE,eAAgB,kBAAkBF,CAAK,QACvC,cAAe,kBAAkBA,CAAK,mBACtC,GAAGG,CAAA,EAGP,aAAc,IAAMM,EAAQ,EAAI,EAChC,aAAc,IAAMA,EAAQ,EAAK,EACjC,QAAS,IAAMA,EAAQ,EAAI,EAC3B,OAAQ,IAAMA,EAAQ,EAAK,EAC3B,UAAWG,EACV,GAAGP,EAEH,SAAA,CAAAG,EACGS,EAAAA,aAAahB,EAA2D,CACtE,mBAAoBK,CAAA,CACrB,EACDL,EACJa,EAAAA,KAAC,OAAA,CACC,KAAK,UACL,GAAIR,EACJ,UAAWS,EAAAA,KAAKC,EAAO,QAASA,EAAOjB,CAAS,CAAC,EACjD,YAAWS,EAAO,OAAS,QAE1B,SAAA,CAAAV,QACA,OAAA,CAAK,UAAWkB,EAAO,MAAO,cAAY,MAAA,CAAO,CAAA,CAAA,CAAA,CACpD,CAAA,CAAA,EAhCoBf,CAmC1B"}
@@ -0,0 +1,65 @@
1
+ import { jsxs as p, jsx as b } from "react/jsx-runtime";
2
+ import { useId as g, useState as x, cloneElement as z } from "react";
3
+ import { clsx as _ } from "clsx";
4
+ const v = "_root_1h36l_4", y = "_tooltip_1h36l_10", E = "_arrow_1h36l_37", N = "_top_1h36l_45", $ = "_bottom_1h36l_57", j = "_left_1h36l_69", w = "_right_1h36l_81", r = {
5
+ root: v,
6
+ tooltip: y,
7
+ arrow: E,
8
+ top: N,
9
+ bottom: $,
10
+ left: j,
11
+ right: w
12
+ };
13
+ function k({
14
+ content: o,
15
+ placement: c = "top",
16
+ color: e = "primary",
17
+ children: s,
18
+ className: f,
19
+ style: m,
20
+ onKeyDown: l,
21
+ ...u
22
+ }) {
23
+ const a = `${g()}-tooltip`, [n, t] = x(!1), h = o != null && o !== "", d = (i) => {
24
+ i.key === "Escape" && t(!1), l == null || l(i);
25
+ };
26
+ return h ? /* @__PURE__ */ p(
27
+ "span",
28
+ {
29
+ className: _(r.root, f),
30
+ style: {
31
+ "--tz-btn-rgb": `var(--tz-color-${e}-rgb)`,
32
+ "--tz-btn-on": `var(--tz-color-${e}-contrast, #fff)`,
33
+ ...m
34
+ },
35
+ onMouseEnter: () => t(!0),
36
+ onMouseLeave: () => t(!1),
37
+ onFocus: () => t(!0),
38
+ onBlur: () => t(!1),
39
+ onKeyDown: d,
40
+ ...u,
41
+ children: [
42
+ n ? z(s, {
43
+ "aria-describedby": a
44
+ }) : s,
45
+ /* @__PURE__ */ p(
46
+ "span",
47
+ {
48
+ role: "tooltip",
49
+ id: a,
50
+ className: _(r.tooltip, r[c]),
51
+ "data-open": n ? "true" : "false",
52
+ children: [
53
+ o,
54
+ /* @__PURE__ */ b("span", { className: r.arrow, "aria-hidden": "true" })
55
+ ]
56
+ }
57
+ )
58
+ ]
59
+ }
60
+ ) : s;
61
+ }
62
+ export {
63
+ k as T
64
+ };
65
+ //# sourceMappingURL=Tooltip-Cb_FKxT9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip-Cb_FKxT9.js","sources":["../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n cloneElement,\n useId,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Tooltip.module.css'\n\nexport type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right'\n\nexport interface TooltipProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'content' | 'color'> {\n /** The tooltip text/content shown on hover or focus. Empty content renders no tooltip. */\n content: ReactNode\n /** Which side of the trigger the tooltip appears on. Defaults to `top`. */\n placement?: TooltipPlacement\n /** Theme palette token for the fill (label uses its contrast color). Defaults to `primary`. */\n color?: ThemeColor\n /** A single focusable element to attach the tooltip to (e.g. a `Button` or `IconButton`). */\n children: ReactElement\n}\n\n/**\n * Shows a small floating label on hover or keyboard focus of its child, with an arrow pointing at\n * the trigger. Wrap a single element: `<Tooltip content=\"Save\"><IconButton…/></Tooltip>`. Opens on\n * `mouseenter`/`focus`, closes on `mouseleave`/`blur`/`Escape`. The child gets `aria-describedby`\n * while open (the label has `role=\"tooltip\"`). Token-only styling via the shared `--tz-btn-rgb`\n * pattern — `color` (default `primary`) sets the fill and its contrast label, flipping with the theme.\n */\nexport function Tooltip({\n content,\n placement = 'top',\n color = 'primary',\n children,\n className,\n style,\n onKeyDown,\n ...props\n}: TooltipProps) {\n const tooltipId = `${useId()}-tooltip`\n const [open, setOpen] = useState(false)\n const hasContent = content !== null && content !== undefined && content !== ''\n\n const handleKeyDown = (event: KeyboardEvent<HTMLSpanElement>) => {\n if (event.key === 'Escape') setOpen(false)\n onKeyDown?.(event)\n }\n\n if (!hasContent) return children\n\n return (\n <span\n className={clsx(styles.root, className)}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n onMouseEnter={() => setOpen(true)}\n onMouseLeave={() => setOpen(false)}\n onFocus={() => setOpen(true)}\n onBlur={() => setOpen(false)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {open\n ? cloneElement(children as ReactElement<{ 'aria-describedby'?: string }>, {\n 'aria-describedby': tooltipId,\n })\n : children}\n <span\n role=\"tooltip\"\n id={tooltipId}\n className={clsx(styles.tooltip, styles[placement])}\n data-open={open ? 'true' : 'false'}\n >\n {content}\n <span className={styles.arrow} aria-hidden=\"true\" />\n </span>\n </span>\n )\n}\n"],"names":["Tooltip","content","placement","color","children","className","style","onKeyDown","props","tooltipId","useId","open","setOpen","useState","hasContent","handleKeyDown","event","jsxs","clsx","styles","cloneElement"],"mappings":";;;;;;;;;;;;AAkCO,SAASA,EAAQ;AAAA,EACtB,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,GAAiB;AACf,QAAMC,IAAY,GAAGC,EAAA,CAAO,YACtB,CAACC,GAAMC,CAAO,IAAIC,EAAS,EAAK,GAChCC,IAAab,KAAY,QAAiCA,MAAY,IAEtEc,IAAgB,CAACC,MAA0C;AAC/D,IAAIA,EAAM,QAAQ,YAAUJ,EAAQ,EAAK,GACzCL,KAAA,QAAAA,EAAYS;AAAA,EACd;AAEA,SAAKF,IAGH,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAKC,EAAO,MAAMd,CAAS;AAAA,MACtC,OACE;AAAA,QACE,gBAAgB,kBAAkBF,CAAK;AAAA,QACvC,eAAe,kBAAkBA,CAAK;AAAA,QACtC,GAAGG;AAAA,MAAA;AAAA,MAGP,cAAc,MAAMM,EAAQ,EAAI;AAAA,MAChC,cAAc,MAAMA,EAAQ,EAAK;AAAA,MACjC,SAAS,MAAMA,EAAQ,EAAI;AAAA,MAC3B,QAAQ,MAAMA,EAAQ,EAAK;AAAA,MAC3B,WAAWG;AAAA,MACV,GAAGP;AAAA,MAEH,UAAA;AAAA,QAAAG,IACGS,EAAahB,GAA2D;AAAA,UACtE,oBAAoBK;AAAA,QAAA,CACrB,IACDL;AAAA,QACJ,gBAAAa;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,IAAIR;AAAA,YACJ,WAAWS,EAAKC,EAAO,SAASA,EAAOjB,CAAS,CAAC;AAAA,YACjD,aAAWS,IAAO,SAAS;AAAA,YAE1B,UAAA;AAAA,cAAAV;AAAA,gCACA,QAAA,EAAK,WAAWkB,EAAO,OAAO,eAAY,OAAA,CAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACpD;AAAA,IAAA;AAAA,EAAA,IAhCoBf;AAmC1B;"}