@dmsi/wedgekit-react 0.0.4

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 (596) hide show
  1. package/README.md +35 -0
  2. package/dist/acc.css +3 -0
  3. package/dist/agility.css +7 -0
  4. package/dist/chunk-22YZ6LFN.js +322 -0
  5. package/dist/chunk-25Y2OMTD.js +38 -0
  6. package/dist/chunk-27KIIUAR.js +59 -0
  7. package/dist/chunk-27OSC5OM.js +68 -0
  8. package/dist/chunk-2B7WUAOV.js +28 -0
  9. package/dist/chunk-2EHJFFX4.js +124 -0
  10. package/dist/chunk-2G2E2JMA.js +123 -0
  11. package/dist/chunk-2GC2SPSS.js +130 -0
  12. package/dist/chunk-2KLCMD2M.js +106 -0
  13. package/dist/chunk-2TLQVCQQ.js +130 -0
  14. package/dist/chunk-2Y6GPKXR.js +263 -0
  15. package/dist/chunk-322ATVWD.js +298 -0
  16. package/dist/chunk-35DCQU2F.js +127 -0
  17. package/dist/chunk-3B7FAEF7.js +38 -0
  18. package/dist/chunk-3FLOLZYP.js +21 -0
  19. package/dist/chunk-3IZWY2C7.js +221 -0
  20. package/dist/chunk-3NGYDV56.js +38 -0
  21. package/dist/chunk-3NLKVKFR.js +72 -0
  22. package/dist/chunk-3R7YVBRL.js +135 -0
  23. package/dist/chunk-3RDFNEVD.js +91 -0
  24. package/dist/chunk-3TPGMRVY.js +123 -0
  25. package/dist/chunk-42X2EOOI.js +129 -0
  26. package/dist/chunk-47GJZWOH.js +103 -0
  27. package/dist/chunk-4BUU5MTT.js +263 -0
  28. package/dist/chunk-4C66DLIJ.js +51 -0
  29. package/dist/chunk-4IZG2UCW.js +31 -0
  30. package/dist/chunk-4M7CJVTZ.js +136 -0
  31. package/dist/chunk-4NZBVXM3.js +53 -0
  32. package/dist/chunk-4RD5ZF2V.js +55 -0
  33. package/dist/chunk-4RJKB7LC.js +14 -0
  34. package/dist/chunk-4S4WZ3MQ.js +103 -0
  35. package/dist/chunk-4SV7MJMP.js +340 -0
  36. package/dist/chunk-4T7F5BZZ.js +26 -0
  37. package/dist/chunk-4TH2SUHQ.js +145 -0
  38. package/dist/chunk-56ORPWGF.js +148 -0
  39. package/dist/chunk-5GOBP2JS.js +53 -0
  40. package/dist/chunk-5HIUW5CM.js +128 -0
  41. package/dist/chunk-5K3U4IUW.js +34 -0
  42. package/dist/chunk-5KOZKEEM.js +91 -0
  43. package/dist/chunk-5OIRPFRD.js +114 -0
  44. package/dist/chunk-5QW5SJNW.js +31 -0
  45. package/dist/chunk-5QZO37QK.js +263 -0
  46. package/dist/chunk-5ROMJJRK.js +135 -0
  47. package/dist/chunk-5VHYVTZI.js +123 -0
  48. package/dist/chunk-6277DY3K.js +437 -0
  49. package/dist/chunk-6C5NOV6D.js +263 -0
  50. package/dist/chunk-6CDVHKTS.js +103 -0
  51. package/dist/chunk-6E4OJA7E.js +263 -0
  52. package/dist/chunk-6GBZFWQ4.js +105 -0
  53. package/dist/chunk-6GGLA6DI.js +263 -0
  54. package/dist/chunk-6HKVN4QK.js +340 -0
  55. package/dist/chunk-6HLJFPGY.js +284 -0
  56. package/dist/chunk-6KUUK27D.js +31 -0
  57. package/dist/chunk-6Q5NNY5V.js +135 -0
  58. package/dist/chunk-6VAZR5GK.js +122 -0
  59. package/dist/chunk-6XDXJ3Z3.js +131 -0
  60. package/dist/chunk-6XIXUFSA.js +114 -0
  61. package/dist/chunk-7CG4GVU7.js +21 -0
  62. package/dist/chunk-7DNCGSXK.js +284 -0
  63. package/dist/chunk-7GFGBJCU.js +287 -0
  64. package/dist/chunk-7VA3AERB.js +31 -0
  65. package/dist/chunk-7YJLGGIR.js +83 -0
  66. package/dist/chunk-7ZCBQXHR.js +272 -0
  67. package/dist/chunk-A4BGWCF6.js +221 -0
  68. package/dist/chunk-A6RDEIAN.js +254 -0
  69. package/dist/chunk-AE7SZPWF.js +121 -0
  70. package/dist/chunk-AEQYZFXI.js +50 -0
  71. package/dist/chunk-AFEIB2Y7.js +213 -0
  72. package/dist/chunk-AGQML5BM.js +340 -0
  73. package/dist/chunk-AHBE63RV.js +263 -0
  74. package/dist/chunk-AHHXD4EH.js +31 -0
  75. package/dist/chunk-AILPQXDY.js +47 -0
  76. package/dist/chunk-AKTL6JU5.js +25 -0
  77. package/dist/chunk-AMZFEIAM.js +114 -0
  78. package/dist/chunk-ANI7PKSV.js +38 -0
  79. package/dist/chunk-AO6WGDPJ.js +105 -0
  80. package/dist/chunk-ASDN5OZ3.js +318 -0
  81. package/dist/chunk-ASSOOV4N.js +53 -0
  82. package/dist/chunk-AWQSSKCK.js +32 -0
  83. package/dist/chunk-AWSUZLRR.js +79 -0
  84. package/dist/chunk-B6A3BOGW.js +31 -0
  85. package/dist/chunk-B6NMINKX.js +72 -0
  86. package/dist/chunk-B7UOXS2S.js +221 -0
  87. package/dist/chunk-BDN7SDV5.js +31 -0
  88. package/dist/chunk-BDPJYJD2.js +218 -0
  89. package/dist/chunk-BDYWCYRG.js +263 -0
  90. package/dist/chunk-BENTHNAQ.js +51 -0
  91. package/dist/chunk-BGPBLXQ5.js +131 -0
  92. package/dist/chunk-BKC5DNOX.js +162 -0
  93. package/dist/chunk-BMGYSXYW.js +50 -0
  94. package/dist/chunk-BNHSAFMP.js +93 -0
  95. package/dist/chunk-BNOE4DGB.js +79 -0
  96. package/dist/chunk-BQMI4NKT.js +103 -0
  97. package/dist/chunk-BSBXTPTA.js +84 -0
  98. package/dist/chunk-BYNATA7V.js +114 -0
  99. package/dist/chunk-BZFVPEG3.js +98 -0
  100. package/dist/chunk-C2GYWE4S.js +263 -0
  101. package/dist/chunk-C5NNFQ4B.js +114 -0
  102. package/dist/chunk-C7ALJGJG.js +322 -0
  103. package/dist/chunk-C7S6DKZ6.js +31 -0
  104. package/dist/chunk-CA4BW655.js +50 -0
  105. package/dist/chunk-CABAANHQ.js +249 -0
  106. package/dist/chunk-CELC37U6.js +38 -0
  107. package/dist/chunk-CIWOBFZ4.js +340 -0
  108. package/dist/chunk-CKB4S3O3.js +284 -0
  109. package/dist/chunk-CL6RYGIT.js +263 -0
  110. package/dist/chunk-CLB4OQS5.js +84 -0
  111. package/dist/chunk-CMBMFSP4.js +340 -0
  112. package/dist/chunk-CTHHLBRT.js +90 -0
  113. package/dist/chunk-DDQ4KWHW.js +74 -0
  114. package/dist/chunk-DHWXCPF2.js +56 -0
  115. package/dist/chunk-DV3IMUO6.js +50 -0
  116. package/dist/chunk-DZHPNWUL.js +70 -0
  117. package/dist/chunk-DZLUR2I7.js +34 -0
  118. package/dist/chunk-E5ALT5W7.js +182 -0
  119. package/dist/chunk-E7H6GJIB.js +31 -0
  120. package/dist/chunk-EAJ37R7R.js +31 -0
  121. package/dist/chunk-EDMIKY4Q.js +50 -0
  122. package/dist/chunk-EE4GUGFX.js +31 -0
  123. package/dist/chunk-EHCD3FVZ.js +50 -0
  124. package/dist/chunk-EHOMG5B4.js +31 -0
  125. package/dist/chunk-EM7ODK2O.js +53 -0
  126. package/dist/chunk-ER3HQRPL.js +105 -0
  127. package/dist/chunk-ER6TD3DA.js +30 -0
  128. package/dist/chunk-ESK7AT3B.js +38 -0
  129. package/dist/chunk-ETWMDEUU.js +114 -0
  130. package/dist/chunk-EWX2EDF5.js +236 -0
  131. package/dist/chunk-EXJKOP3Y.js +236 -0
  132. package/dist/chunk-F2YQE6G5.js +145 -0
  133. package/dist/chunk-F3U3RHIB.js +131 -0
  134. package/dist/chunk-F433MJII.js +91 -0
  135. package/dist/chunk-F4JE6AD2.js +160 -0
  136. package/dist/chunk-FCYGYC7R.js +30 -0
  137. package/dist/chunk-FEEMBYZR.js +98 -0
  138. package/dist/chunk-FKQ63FLW.js +91 -0
  139. package/dist/chunk-FNFDOS7L.js +263 -0
  140. package/dist/chunk-FNLYAP3I.js +135 -0
  141. package/dist/chunk-FQVCRL3Z.js +145 -0
  142. package/dist/chunk-FY7PTP6E.js +322 -0
  143. package/dist/chunk-FZ6I2KRT.js +263 -0
  144. package/dist/chunk-FZLYFJ53.js +26 -0
  145. package/dist/chunk-G3AYBQ2Y.js +221 -0
  146. package/dist/chunk-G4V7WZAV.js +72 -0
  147. package/dist/chunk-GDAY5XPY.js +47 -0
  148. package/dist/chunk-GELM4Z36.js +263 -0
  149. package/dist/chunk-GGR5UY3Q.js +83 -0
  150. package/dist/chunk-GK556OXV.js +263 -0
  151. package/dist/chunk-GOB3NB3Q.js +130 -0
  152. package/dist/chunk-GPIG2QUB.js +437 -0
  153. package/dist/chunk-GV63QYC5.js +130 -0
  154. package/dist/chunk-GWNDXZUZ.js +263 -0
  155. package/dist/chunk-H3INEB6H.js +296 -0
  156. package/dist/chunk-H3VQYL46.js +50 -0
  157. package/dist/chunk-H53EBFHV.js +114 -0
  158. package/dist/chunk-HBD6NLMB.js +51 -0
  159. package/dist/chunk-HBTQFVPW.js +121 -0
  160. package/dist/chunk-HCDYAZGJ.js +91 -0
  161. package/dist/chunk-HE3XKR3P.js +130 -0
  162. package/dist/chunk-HK3NQMPY.js +51 -0
  163. package/dist/chunk-HK54SJNM.js +103 -0
  164. package/dist/chunk-HL2IYNCS.js +50 -0
  165. package/dist/chunk-I5A3SU35.js +282 -0
  166. package/dist/chunk-I5HKQSF2.js +59 -0
  167. package/dist/chunk-I7LXSGQA.js +10 -0
  168. package/dist/chunk-IDAZ53A4.js +261 -0
  169. package/dist/chunk-IGQVA7SC.js +41 -0
  170. package/dist/chunk-II6HWGH6.js +295 -0
  171. package/dist/chunk-IIDPTJCI.js +31 -0
  172. package/dist/chunk-IJ6AAL4W.js +59 -0
  173. package/dist/chunk-IKZQIIV3.js +123 -0
  174. package/dist/chunk-ISKELMPI.js +67 -0
  175. package/dist/chunk-IWUZ6NSN.js +218 -0
  176. package/dist/chunk-IYDKL3OH.js +130 -0
  177. package/dist/chunk-IZ75D7KD.js +30 -0
  178. package/dist/chunk-JCLVMFRY.js +122 -0
  179. package/dist/chunk-JDHZQIFC.js +135 -0
  180. package/dist/chunk-JFMZU3WS.js +123 -0
  181. package/dist/chunk-JI54AM6E.js +105 -0
  182. package/dist/chunk-JM4DMO5V.js +91 -0
  183. package/dist/chunk-JNLDVEK3.js +221 -0
  184. package/dist/chunk-JU3RVFK5.js +114 -0
  185. package/dist/chunk-JU4PINK3.js +282 -0
  186. package/dist/chunk-K2YPB4SV.js +38 -0
  187. package/dist/chunk-K3IKUSZW.js +59 -0
  188. package/dist/chunk-K5EXR7F7.js +253 -0
  189. package/dist/chunk-K7CWFWAA.js +263 -0
  190. package/dist/chunk-KENSVWOY.js +151 -0
  191. package/dist/chunk-KGCFZ3ZY.js +263 -0
  192. package/dist/chunk-KJEU2OLC.js +263 -0
  193. package/dist/chunk-KNZWZVWO.js +50 -0
  194. package/dist/chunk-KVQDUSDT.js +33 -0
  195. package/dist/chunk-KX3O6GJ6.js +138 -0
  196. package/dist/chunk-KXFCVFX7.js +50 -0
  197. package/dist/chunk-KXWYWY7O.js +135 -0
  198. package/dist/chunk-KYJFCVGO.js +53 -0
  199. package/dist/chunk-L4SK5HYC.js +114 -0
  200. package/dist/chunk-L5OMTPWT.js +130 -0
  201. package/dist/chunk-LBL6VQ5F.js +51 -0
  202. package/dist/chunk-LCJKAY5H.js +122 -0
  203. package/dist/chunk-LEPHUIU3.js +263 -0
  204. package/dist/chunk-LFNCUQNK.js +103 -0
  205. package/dist/chunk-LIQIMUDD.js +270 -0
  206. package/dist/chunk-LJ2W2FEG.js +134 -0
  207. package/dist/chunk-LJGUNBDS.js +238 -0
  208. package/dist/chunk-LK6UNOMX.js +24 -0
  209. package/dist/chunk-LQLPGMGP.js +238 -0
  210. package/dist/chunk-LRNZOITG.js +318 -0
  211. package/dist/chunk-LSDPH4GX.js +38 -0
  212. package/dist/chunk-LXYDGV6K.js +437 -0
  213. package/dist/chunk-MFNBBTWX.js +177 -0
  214. package/dist/chunk-MGJ3GO6Z.js +284 -0
  215. package/dist/chunk-MIMYQH75.js +91 -0
  216. package/dist/chunk-MKIVQLZW.js +122 -0
  217. package/dist/chunk-MLQQU3ZN.js +31 -0
  218. package/dist/chunk-MLTOT73W.js +38 -0
  219. package/dist/chunk-MM2YBW7A.js +31 -0
  220. package/dist/chunk-MMHTKJ7Z.js +50 -0
  221. package/dist/chunk-MNZUBPVB.js +263 -0
  222. package/dist/chunk-MRXJRTKP.js +62 -0
  223. package/dist/chunk-MSM2B2VT.js +106 -0
  224. package/dist/chunk-MTJDLHR6.js +218 -0
  225. package/dist/chunk-MU4ZBPUT.js +263 -0
  226. package/dist/chunk-MUQHKNFV.js +158 -0
  227. package/dist/chunk-N2XNU5PP.js +91 -0
  228. package/dist/chunk-N4NGR36H.js +263 -0
  229. package/dist/chunk-NA4H2JQX.js +145 -0
  230. package/dist/chunk-NBV3Y6UB.js +315 -0
  231. package/dist/chunk-NEBYCDGE.js +284 -0
  232. package/dist/chunk-NS2KPONF.js +263 -0
  233. package/dist/chunk-O2KOOPL4.js +148 -0
  234. package/dist/chunk-OEIQDS7X.js +50 -0
  235. package/dist/chunk-OJ4PX3ZG.js +59 -0
  236. package/dist/chunk-OOIM4AHV.js +106 -0
  237. package/dist/chunk-OQ2SDHRA.js +267 -0
  238. package/dist/chunk-OQAOAEH5.js +114 -0
  239. package/dist/chunk-OQWOF5CI.js +322 -0
  240. package/dist/chunk-ORMEWXMH.js +37 -0
  241. package/dist/chunk-ORW5CX24.js +316 -0
  242. package/dist/chunk-OUHI4UBN.js +38 -0
  243. package/dist/chunk-OULD24TE.js +98 -0
  244. package/dist/chunk-P66A67NV.js +30 -0
  245. package/dist/chunk-PC5JSEHD.js +269 -0
  246. package/dist/chunk-PLCJ56FF.js +72 -0
  247. package/dist/chunk-PMNRGAPH.js +191 -0
  248. package/dist/chunk-PMQOPIJZ.js +75 -0
  249. package/dist/chunk-PPU6PK34.js +263 -0
  250. package/dist/chunk-PQEWSSM5.js +31 -0
  251. package/dist/chunk-PY6MF2II.js +51 -0
  252. package/dist/chunk-QBXVAKCM.js +59 -0
  253. package/dist/chunk-QDAFX66E.js +55 -0
  254. package/dist/chunk-QEXYUSGH.js +201 -0
  255. package/dist/chunk-QFEYPU44.js +91 -0
  256. package/dist/chunk-QJWVR7FR.js +387 -0
  257. package/dist/chunk-QKKRKHFR.js +38 -0
  258. package/dist/chunk-QKQ4M6UK.js +263 -0
  259. package/dist/chunk-QTKPVQAY.js +66 -0
  260. package/dist/chunk-R3IEEDQ6.js +284 -0
  261. package/dist/chunk-R4UZI5WE.js +171 -0
  262. package/dist/chunk-RBXILAST.js +437 -0
  263. package/dist/chunk-RENGWIST.js +263 -0
  264. package/dist/chunk-REZ33AJK.js +172 -0
  265. package/dist/chunk-RGI3V47F.js +216 -0
  266. package/dist/chunk-RMIQDOJV.js +287 -0
  267. package/dist/chunk-ROYYCT4A.js +31 -0
  268. package/dist/chunk-RWVJ2YAO.js +131 -0
  269. package/dist/chunk-RZLSOKZB.js +123 -0
  270. package/dist/chunk-S3POCSOH.js +31 -0
  271. package/dist/chunk-S4IHG5J6.js +54 -0
  272. package/dist/chunk-SEKKGFM6.js +28 -0
  273. package/dist/chunk-SHQVFIVR.js +122 -0
  274. package/dist/chunk-SPQH4CSJ.js +31 -0
  275. package/dist/chunk-SPV52UKB.js +50 -0
  276. package/dist/chunk-SSBZHFHQ.js +123 -0
  277. package/dist/chunk-STVC6SBJ.js +91 -0
  278. package/dist/chunk-SY3HT54E.js +91 -0
  279. package/dist/chunk-T23U4LBM.js +148 -0
  280. package/dist/chunk-TBHTISFW.js +119 -0
  281. package/dist/chunk-TC5ACZ3X.js +263 -0
  282. package/dist/chunk-TD5JMMNX.js +72 -0
  283. package/dist/chunk-TDEEN7O7.js +50 -0
  284. package/dist/chunk-TKRAU33B.js +53 -0
  285. package/dist/chunk-TMLPJ27P.js +126 -0
  286. package/dist/chunk-TTKSTVEF.js +41 -0
  287. package/dist/chunk-TVYKK7ZX.js +123 -0
  288. package/dist/chunk-TWZZB4WO.js +114 -0
  289. package/dist/chunk-TYI74BSP.js +62 -0
  290. package/dist/chunk-TZCA2T5D.js +282 -0
  291. package/dist/chunk-U2CMWI75.js +250 -0
  292. package/dist/chunk-UA7N4NQJ.js +30 -0
  293. package/dist/chunk-UEN5BURK.js +106 -0
  294. package/dist/chunk-UGXT677T.js +437 -0
  295. package/dist/chunk-ULCNZZBV.js +38 -0
  296. package/dist/chunk-UO4T3RQ7.js +62 -0
  297. package/dist/chunk-US3SPKKB.js +266 -0
  298. package/dist/chunk-UU3FA6LV.js +72 -0
  299. package/dist/chunk-UUNHTQDU.js +79 -0
  300. package/dist/chunk-UUZXVVJY.js +161 -0
  301. package/dist/chunk-UZJMB6V7.js +26 -0
  302. package/dist/chunk-V3HXUE6V.js +221 -0
  303. package/dist/chunk-V6UMVJGA.js +53 -0
  304. package/dist/chunk-V7C6DTJ6.js +72 -0
  305. package/dist/chunk-VFWFORJJ.js +131 -0
  306. package/dist/chunk-VHWB6H64.js +75 -0
  307. package/dist/chunk-VI62SXXU.js +284 -0
  308. package/dist/chunk-VK3FB67Z.js +31 -0
  309. package/dist/chunk-VKC7QT46.js +83 -0
  310. package/dist/chunk-VVTY2NT4.js +105 -0
  311. package/dist/chunk-VWEOVI4O.js +123 -0
  312. package/dist/chunk-WOCMJF6O.js +221 -0
  313. package/dist/chunk-WPDU5H5L.js +114 -0
  314. package/dist/chunk-WQMFGEAF.js +235 -0
  315. package/dist/chunk-WTAZ6P6T.js +263 -0
  316. package/dist/chunk-WUJFEG3H.js +118 -0
  317. package/dist/chunk-WUTFZGXS.js +50 -0
  318. package/dist/chunk-WVUIIBRR.js +51 -0
  319. package/dist/chunk-X65IBJJM.js +436 -0
  320. package/dist/chunk-XATMLZOP.js +263 -0
  321. package/dist/chunk-XFCRKJRI.js +261 -0
  322. package/dist/chunk-XGKHSZ6E.js +38 -0
  323. package/dist/chunk-XJAQVF2E.js +83 -0
  324. package/dist/chunk-XQX7HSL5.js +38 -0
  325. package/dist/chunk-XTP3ODBD.js +56 -0
  326. package/dist/chunk-XWF3ZJCZ.js +97 -0
  327. package/dist/chunk-XX3GHFG5.js +121 -0
  328. package/dist/chunk-XZ6AMNDQ.js +290 -0
  329. package/dist/chunk-Y2LOHSZL.js +72 -0
  330. package/dist/chunk-Y66VCVZZ.js +122 -0
  331. package/dist/chunk-YD462QK7.js +346 -0
  332. package/dist/chunk-YELD6VJI.js +68 -0
  333. package/dist/chunk-YHPZ5T3W.js +91 -0
  334. package/dist/chunk-YJV7JCIC.js +38 -0
  335. package/dist/chunk-YMZUZ5HX.js +263 -0
  336. package/dist/chunk-YN7MUHAZ.js +218 -0
  337. package/dist/chunk-YOCKCBUA.js +72 -0
  338. package/dist/chunk-YPFUW2PT.js +306 -0
  339. package/dist/chunk-YRLRIQNP.js +284 -0
  340. package/dist/chunk-YRTR6KJN.js +210 -0
  341. package/dist/chunk-YSSJHCRC.js +221 -0
  342. package/dist/chunk-YWLJJNJY.js +259 -0
  343. package/dist/chunk-YYRH2SGW.js +114 -0
  344. package/dist/chunk-YZRIJ4AP.js +263 -0
  345. package/dist/chunk-Z4UCFUF7.js +299 -0
  346. package/dist/chunk-Z64CLA4J.js +53 -0
  347. package/dist/chunk-ZCFOYW2U.js +296 -0
  348. package/dist/chunk-ZEYZVUG5.js +53 -0
  349. package/dist/chunk-ZHRZMJA3.js +31 -0
  350. package/dist/chunk-ZJQAMKIP.js +113 -0
  351. package/dist/chunk-ZRQZOT6X.js +141 -0
  352. package/dist/chunk-ZUTAZW53.js +306 -0
  353. package/dist/chunk-ZVJ2T3DC.js +79 -0
  354. package/dist/chunk-ZWJZHUKU.js +50 -0
  355. package/dist/chunk-ZXQKFHBO.js +221 -0
  356. package/dist/components/Breadcrumbs.cjs +376 -0
  357. package/dist/components/Breadcrumbs.js +90 -0
  358. package/dist/components/Button.cjs +319 -0
  359. package/dist/components/Button.js +8 -0
  360. package/dist/components/Calendar.cjs +219 -0
  361. package/dist/components/Calendar.js +10 -0
  362. package/dist/components/CalendarRange.cjs +520 -0
  363. package/dist/components/CalendarRange.js +13 -0
  364. package/dist/components/CalendarRange.stories.cjs +1 -0
  365. package/dist/components/CalendarRange.stories.js +0 -0
  366. package/dist/components/Caption.cjs +283 -0
  367. package/dist/components/Caption.js +80 -0
  368. package/dist/components/Checkbox.cjs +377 -0
  369. package/dist/components/Checkbox.js +11 -0
  370. package/dist/components/ContentTab.cjs +382 -0
  371. package/dist/components/ContentTab.js +10 -0
  372. package/dist/components/ContentTabs.cjs +472 -0
  373. package/dist/components/ContentTabs.js +98 -0
  374. package/dist/components/DMSiLogo.cjs +79 -0
  375. package/dist/components/DMSiLogo.js +56 -0
  376. package/dist/components/DataGrid.cjs +2985 -0
  377. package/dist/components/DataGrid.js +639 -0
  378. package/dist/components/DataGridCell.cjs +1905 -0
  379. package/dist/components/DataGridCell.js +24 -0
  380. package/dist/components/DataTable.cjs +791 -0
  381. package/dist/components/DataTable.js +720 -0
  382. package/dist/components/DateInput.cjs +1128 -0
  383. package/dist/components/DateInput.js +170 -0
  384. package/dist/components/DateRangeInput.cjs +1129 -0
  385. package/dist/components/DateRangeInput.js +171 -0
  386. package/dist/components/DebugJson.cjs +50 -0
  387. package/dist/components/DebugJson.js +27 -0
  388. package/dist/components/Display.cjs +234 -0
  389. package/dist/components/Display.js +12 -0
  390. package/dist/components/Display1.cjs +223 -0
  391. package/dist/components/Display1.js +8 -0
  392. package/dist/components/Display2.cjs +220 -0
  393. package/dist/components/Display2.js +46 -0
  394. package/dist/components/EditingContext.cjs +73 -0
  395. package/dist/components/EditingContext.js +35 -0
  396. package/dist/components/FilterGroup.cjs +903 -0
  397. package/dist/components/FilterGroup.js +213 -0
  398. package/dist/components/FullViewportBox.cjs +35 -0
  399. package/dist/components/FullViewportBox.js +12 -0
  400. package/dist/components/Grid.cjs +69 -0
  401. package/dist/components/Grid.js +36 -0
  402. package/dist/components/GridContainer.cjs +125 -0
  403. package/dist/components/GridContainer.js +92 -0
  404. package/dist/components/Heading.cjs +238 -0
  405. package/dist/components/Heading.js +14 -0
  406. package/dist/components/Heading1.cjs +223 -0
  407. package/dist/components/Heading1.js +49 -0
  408. package/dist/components/Heading2.cjs +223 -0
  409. package/dist/components/Heading2.js +8 -0
  410. package/dist/components/Heading3.cjs +223 -0
  411. package/dist/components/Heading3.js +8 -0
  412. package/dist/components/HorizontalDivider.cjs +33 -0
  413. package/dist/components/HorizontalDivider.js +10 -0
  414. package/dist/components/Icon.cjs +98 -0
  415. package/dist/components/Icon.js +7 -0
  416. package/dist/components/Input.cjs +670 -0
  417. package/dist/components/Input.js +21 -0
  418. package/dist/components/InputGroup.cjs +270 -0
  419. package/dist/components/InputGroup.js +60 -0
  420. package/dist/components/Label.cjs +223 -0
  421. package/dist/components/Label.js +8 -0
  422. package/dist/components/Link.cjs +262 -0
  423. package/dist/components/Link.js +8 -0
  424. package/dist/components/List.cjs +37 -0
  425. package/dist/components/List.js +14 -0
  426. package/dist/components/LiveChatComponent.cjs +63 -0
  427. package/dist/components/LiveChatComponent.js +40 -0
  428. package/dist/components/LogoAgilityTopBar.cjs +115 -0
  429. package/dist/components/LogoAgilityTopBar.js +92 -0
  430. package/dist/components/LogoDMSiTopBar.cjs +79 -0
  431. package/dist/components/LogoDMSiTopBar.js +7 -0
  432. package/dist/components/LogoMillworkTopBar.cjs +221 -0
  433. package/dist/components/LogoMillworkTopBar.js +198 -0
  434. package/dist/components/MainBar.cjs +210 -0
  435. package/dist/components/MainBar.js +64 -0
  436. package/dist/components/Menu.cjs +437 -0
  437. package/dist/components/Menu.js +11 -0
  438. package/dist/components/MenuOption.cjs +483 -0
  439. package/dist/components/MenuOption.js +13 -0
  440. package/dist/components/Modal.cjs +688 -0
  441. package/dist/components/Modal.js +195 -0
  442. package/dist/components/ModalButtons.cjs +381 -0
  443. package/dist/components/ModalButtons.js +10 -0
  444. package/dist/components/ModalContent.cjs +34 -0
  445. package/dist/components/ModalContent.js +7 -0
  446. package/dist/components/ModalHeader.cjs +418 -0
  447. package/dist/components/ModalHeader.js +11 -0
  448. package/dist/components/ModalScrim.cjs +65 -0
  449. package/dist/components/ModalScrim.js +7 -0
  450. package/dist/components/NavigationTab.cjs +431 -0
  451. package/dist/components/NavigationTab.js +10 -0
  452. package/dist/components/NavigationTabs.cjs +477 -0
  453. package/dist/components/NavigationTabs.js +56 -0
  454. package/dist/components/Notification.cjs +529 -0
  455. package/dist/components/Notification.js +104 -0
  456. package/dist/components/OptionPill.cjs +478 -0
  457. package/dist/components/OptionPill.js +11 -0
  458. package/dist/components/Paragraph.cjs +231 -0
  459. package/dist/components/Paragraph.js +8 -0
  460. package/dist/components/Password.cjs +698 -0
  461. package/dist/components/Password.js +53 -0
  462. package/dist/components/ProjectBar.cjs +242 -0
  463. package/dist/components/ProjectBar.js +63 -0
  464. package/dist/components/Radio.cjs +349 -0
  465. package/dist/components/Radio.js +131 -0
  466. package/dist/components/Search.cjs +765 -0
  467. package/dist/components/Search.js +12 -0
  468. package/dist/components/Select.cjs +750 -0
  469. package/dist/components/Select.js +12 -0
  470. package/dist/components/SideMenu.cjs +54 -0
  471. package/dist/components/SideMenu.js +21 -0
  472. package/dist/components/SideMenuGroup.cjs +393 -0
  473. package/dist/components/SideMenuGroup.js +83 -0
  474. package/dist/components/SideMenuItem.cjs +359 -0
  475. package/dist/components/SideMenuItem.js +70 -0
  476. package/dist/components/Stack.cjs +109 -0
  477. package/dist/components/Stack.js +7 -0
  478. package/dist/components/StatusPill.cjs +265 -0
  479. package/dist/components/StatusPill.js +52 -0
  480. package/dist/components/Stepper.cjs +883 -0
  481. package/dist/components/Stepper.js +105 -0
  482. package/dist/components/Subheader.cjs +226 -0
  483. package/dist/components/Subheader.js +8 -0
  484. package/dist/components/Surface.cjs +98 -0
  485. package/dist/components/Surface.js +7 -0
  486. package/dist/components/Swatch.cjs +779 -0
  487. package/dist/components/Swatch.js +398 -0
  488. package/dist/components/Textarea.cjs +269 -0
  489. package/dist/components/Textarea.js +96 -0
  490. package/dist/components/Theme.cjs +36 -0
  491. package/dist/components/Theme.js +13 -0
  492. package/dist/components/Time.cjs +1059 -0
  493. package/dist/components/Time.js +365 -0
  494. package/dist/components/Toast.cjs +644 -0
  495. package/dist/components/Toast.js +218 -0
  496. package/dist/components/Tooltip.cjs +273 -0
  497. package/dist/components/Tooltip.js +9 -0
  498. package/dist/components/TopBar.cjs +352 -0
  499. package/dist/components/TopBar.js +132 -0
  500. package/dist/components/useInfiniteScroll.cjs +57 -0
  501. package/dist/components/useInfiniteScroll.js +8 -0
  502. package/dist/components/useMatchesMedia.cjs +53 -0
  503. package/dist/components/useMatchesMedia.js +9 -0
  504. package/dist/components/useMenuSystem.cjs +358 -0
  505. package/dist/components/useMenuSystem.js +11 -0
  506. package/dist/components/useMounted.cjs +39 -0
  507. package/dist/components/useMounted.js +8 -0
  508. package/dist/fonts.css +19 -0
  509. package/dist/icons-light-QXLRBPC4.woff2 +0 -0
  510. package/dist/icons-light[FILL]-PPZXOLWS.woff2 +0 -0
  511. package/dist/icons-normal-MJATZ73K.woff2 +0 -0
  512. package/dist/icons-normal[FILL]-PPZXOLWS.woff2 +0 -0
  513. package/dist/index.css +4049 -0
  514. package/dist/millwork.css +4 -0
  515. package/dist/open-sans-55T6A4JE.woff2 +0 -0
  516. package/dist/types.cjs +18 -0
  517. package/dist/types.js +0 -0
  518. package/package.json +66 -0
  519. package/src/brand.css +110 -0
  520. package/src/classNames.ts +144 -0
  521. package/src/components/Breadcrumbs.tsx +116 -0
  522. package/src/components/Button.tsx +210 -0
  523. package/src/components/CalendarRange.tsx +429 -0
  524. package/src/components/Caption.tsx +101 -0
  525. package/src/components/Checkbox.tsx +195 -0
  526. package/src/components/ContentTab.tsx +66 -0
  527. package/src/components/ContentTabs.tsx +103 -0
  528. package/src/components/DMSiLogo.tsx +32 -0
  529. package/src/components/DataGrid.tsx +819 -0
  530. package/src/components/DataGridCell.tsx +384 -0
  531. package/src/components/DataTable.tsx +835 -0
  532. package/src/components/DateInput.tsx +188 -0
  533. package/src/components/DateRangeInput.tsx +179 -0
  534. package/src/components/DebugJson.tsx +24 -0
  535. package/src/components/Display.tsx +60 -0
  536. package/src/components/EditingContext.tsx +40 -0
  537. package/src/components/FilterGroup.tsx +211 -0
  538. package/src/components/FullViewportBox.tsx +11 -0
  539. package/src/components/Grid.tsx +75 -0
  540. package/src/components/GridContainer.tsx +124 -0
  541. package/src/components/Heading.tsx +66 -0
  542. package/src/components/HorizontalDivider.tsx +3 -0
  543. package/src/components/Icon.tsx +36 -0
  544. package/src/components/Input.tsx +508 -0
  545. package/src/components/InputGroup.tsx +51 -0
  546. package/src/components/Label.tsx +40 -0
  547. package/src/components/Link.tsx +106 -0
  548. package/src/components/List.tsx +10 -0
  549. package/src/components/LiveChatComponent.tsx +56 -0
  550. package/src/components/LogoAgilityTopBar.tsx +53 -0
  551. package/src/components/LogoDMSiTopBar.tsx +32 -0
  552. package/src/components/LogoMillworkTopBar.tsx +118 -0
  553. package/src/components/MainBar.tsx +82 -0
  554. package/src/components/Menu.tsx +279 -0
  555. package/src/components/MenuOption.tsx +275 -0
  556. package/src/components/Modal.tsx +211 -0
  557. package/src/components/ModalButtons.tsx +35 -0
  558. package/src/components/ModalContent.tsx +5 -0
  559. package/src/components/ModalHeader.tsx +30 -0
  560. package/src/components/ModalScrim.tsx +34 -0
  561. package/src/components/NavigationTab.tsx +89 -0
  562. package/src/components/NavigationTabs.tsx +63 -0
  563. package/src/components/Notification.tsx +113 -0
  564. package/src/components/OptionPill.tsx +114 -0
  565. package/src/components/Paragraph.tsx +49 -0
  566. package/src/components/Password.tsx +46 -0
  567. package/src/components/ProjectBar.tsx +76 -0
  568. package/src/components/Radio.tsx +140 -0
  569. package/src/components/Search.tsx +129 -0
  570. package/src/components/Select.tsx +106 -0
  571. package/src/components/SideMenu.tsx +21 -0
  572. package/src/components/SideMenuGroup.tsx +81 -0
  573. package/src/components/SideMenuItem.tsx +90 -0
  574. package/src/components/Stack.tsx +114 -0
  575. package/src/components/StatusPill.tsx +51 -0
  576. package/src/components/Stepper.tsx +91 -0
  577. package/src/components/Subheader.tsx +44 -0
  578. package/src/components/Surface.tsx +35 -0
  579. package/src/components/Swatch.tsx +293 -0
  580. package/src/components/Textarea.tsx +101 -0
  581. package/src/components/Theme.tsx +13 -0
  582. package/src/components/Time.tsx +457 -0
  583. package/src/components/Toast.tsx +244 -0
  584. package/src/components/Tooltip.tsx +137 -0
  585. package/src/components/TopBar.tsx +124 -0
  586. package/src/components/useInfiniteScroll.tsx +40 -0
  587. package/src/components/useMatchesMedia.tsx +28 -0
  588. package/src/components/useMenuSystem.tsx +367 -0
  589. package/src/components/useMounted.tsx +14 -0
  590. package/src/darkmode.css +125 -0
  591. package/src/fonts.css +21 -0
  592. package/src/index.css +489 -0
  593. package/src/index.tsx +2 -0
  594. package/src/types.ts +149 -0
  595. package/src/utils/formatting.tsx +81 -0
  596. package/src/utils.ts +23 -0
@@ -0,0 +1,188 @@
1
+ import { useRef, useEffect, useState } from "react";
2
+ import { createPortal } from "react-dom";
3
+ import { InputBaseProps, InputBase } from "./Input";
4
+ import { CalendarRange } from "./CalendarRange";
5
+ import { Icon } from "./Icon";
6
+ import { findDocumentRoot } from "../utils";
7
+
8
+ type DateInputProps = InputBaseProps & {
9
+ /**
10
+ * Value in the format "YYYY-MM-DD" or empty string.
11
+ * When enableRangeInSingleMode is true, this should be in format "YYYY-MM-DD|YYYY-MM-DD"
12
+ */
13
+ value: string;
14
+ /**
15
+ * Called when the date changes.
16
+ * For single date: receives "YYYY-MM-DD"
17
+ * For range: receives "YYYY-MM-DD|YYYY-MM-DD"
18
+ */
19
+ onChange: (value: string) => void;
20
+ /**
21
+ * Optional placeholder text
22
+ */
23
+ placeholder?: string;
24
+ /**
25
+ * Optional disabled state
26
+ */
27
+ disabled?: boolean;
28
+ /**
29
+ * Enable range selection in single mode calendar
30
+ */
31
+ readOnly?: boolean; // If true, input is read-only and cannot be focused
32
+ label?: string; // Optional label for the input
33
+ };
34
+ export const DateInput = ({
35
+ value,
36
+ onChange,
37
+ placeholder = "MM/DD/YYYY",
38
+ disabled,
39
+ readOnly = false,
40
+ label,
41
+ ...props
42
+ }: DateInputProps) => {
43
+ const [visible, setVisible] = useState(false);
44
+ const popoverRef = useRef<HTMLDivElement | null>(null);
45
+ const triggerRef = useRef<HTMLInputElement | null>(null);
46
+ const [calendarPosition, setCalendarPosition] = useState({
47
+ top: 0,
48
+ left: 0,
49
+ width: 0,
50
+ });
51
+
52
+ // Extract from and to values from the pipe-separated string when range is enabled
53
+ const [from, to] = [value, ""];
54
+
55
+ const updatePosition = () => {
56
+ if (triggerRef.current) {
57
+ requestAnimationFrame(() => {
58
+ if (triggerRef.current) {
59
+ const rect = triggerRef.current.getBoundingClientRect();
60
+ setCalendarPosition({
61
+ top: rect.bottom + window.scrollY,
62
+ left: rect.left + window.scrollX,
63
+ width: rect.width,
64
+ });
65
+ }
66
+ });
67
+ }
68
+ };
69
+
70
+ useEffect(() => {
71
+ updatePosition();
72
+
73
+ const resizeObserver = new ResizeObserver(updatePosition);
74
+ if (triggerRef.current) {
75
+ resizeObserver.observe(triggerRef.current);
76
+ }
77
+
78
+ window.addEventListener("scroll", updatePosition);
79
+
80
+ return () => {
81
+ resizeObserver.disconnect();
82
+ window.removeEventListener("scroll", updatePosition);
83
+ };
84
+ }, []);
85
+
86
+ useEffect(() => {
87
+ const handleKeyDown = (event: KeyboardEvent) => {
88
+ if (event.key === "Escape" && popoverRef.current) {
89
+ setVisible(false);
90
+ triggerRef.current?.blur();
91
+ }
92
+ };
93
+ document.addEventListener("keydown", handleKeyDown);
94
+ return () => {
95
+ document.removeEventListener("keydown", handleKeyDown);
96
+ };
97
+ });
98
+
99
+ useEffect(() => {
100
+ const handleClickOutside = (event: MouseEvent) => {
101
+ if (
102
+ popoverRef.current &&
103
+ !popoverRef.current.contains(event.target as HTMLElement) &&
104
+ triggerRef.current &&
105
+ !triggerRef.current.contains(event.target as HTMLElement)
106
+ ) {
107
+ setVisible(false);
108
+ }
109
+ };
110
+ document.addEventListener("mousedown", handleClickOutside);
111
+ return () => {
112
+ document.removeEventListener("mousedown", handleClickOutside);
113
+ };
114
+ }, []);
115
+
116
+ function handleDateChange(fromValue: string) {
117
+ // For single date selection, only pass the from value
118
+ onChange(fromValue);
119
+ setVisible(false);
120
+ }
121
+
122
+ const handleFocus = () => {
123
+ if (readOnly) return;
124
+ setVisible(true);
125
+ updatePosition();
126
+ };
127
+
128
+ function formatDisplayValue(from?: string) {
129
+ if (!from) return "";
130
+
131
+ // Show single date format: "MM/DD/YYYY"
132
+ return formatDate(from ?? "");
133
+ }
134
+
135
+ function formatDate(date: string) {
136
+ if (!date) return "";
137
+ const [y, m, d] = date.split("-");
138
+ return `${m}/${d}/${y}`;
139
+ }
140
+
141
+ return (
142
+ <div className="relative">
143
+ <InputBase
144
+ ref={(el) => {
145
+ triggerRef.current = el;
146
+ }}
147
+ {...props}
148
+ value={formatDisplayValue(from)}
149
+ placeholder={placeholder}
150
+ disabled={disabled}
151
+ readOnly={readOnly}
152
+ after={<Icon name="calendar_month" />}
153
+ onFocus={handleFocus}
154
+ onChange={() => {
155
+ // Input is controlled by calendar picker, ignore direct text changes
156
+ }}
157
+ label={label}
158
+ />
159
+ {visible &&
160
+ !readOnly &&
161
+ createPortal(
162
+ <div
163
+ ref={(el) => {
164
+ popoverRef.current = el;
165
+ }}
166
+ className="absolute z-40 bg-white"
167
+ style={{
168
+ top: `${calendarPosition.top + 16}px`,
169
+ left: `${calendarPosition.left - 4}px`,
170
+ minWidth: `${calendarPosition.width}px`,
171
+ }}
172
+ >
173
+ <CalendarRange
174
+ from={from}
175
+ to={to || from}
176
+ onChange={handleDateChange}
177
+ cardStyle
178
+ mode="single"
179
+ disableRange
180
+ />
181
+ </div>,
182
+ findDocumentRoot(popoverRef.current),
183
+ )}
184
+ </div>
185
+ );
186
+ };
187
+
188
+ DateInput.displayName = "DateInput";
@@ -0,0 +1,179 @@
1
+ import { useRef, useEffect, useState } from "react";
2
+ import { createPortal } from "react-dom";
3
+ import { InputBaseProps, InputBase } from "./Input";
4
+ import { CalendarRange } from "./CalendarRange";
5
+ import { Icon } from "./Icon";
6
+ import { findDocumentRoot } from "../utils";
7
+
8
+ type DateRangeInputProps = InputBaseProps & {
9
+ /**
10
+ * Value in the format "YYYY-MM-DD|YYYY-MM-DD" or empty string
11
+ */
12
+ value: string;
13
+ /**
14
+ * Called when the range changes. Value is in the format "YYYY-MM-DD|YYYY-MM-DD"
15
+ */
16
+ onChange: (value: string) => void;
17
+ /**
18
+ * Optional placeholder text
19
+ */
20
+ placeholder?: string;
21
+ /**
22
+ * Optional disabled state
23
+ */
24
+ disabled?: boolean;
25
+ single?: boolean; // If true, allows single date selection instead of range
26
+ readOnly?: boolean; // If true, input is read-only and cannot be focused
27
+ label?: string; // Optional label for the input
28
+ };
29
+
30
+ export const DateRangeInput = ({
31
+ value,
32
+ onChange,
33
+ placeholder = "MM/DD/YYYY - MM/DD/YYYY",
34
+ disabled,
35
+ readOnly = false,
36
+ single = false, // Enables single date selection instead of range
37
+ label,
38
+ ...props
39
+ }: DateRangeInputProps) => {
40
+ const [visible, setVisible] = useState(false);
41
+ const popoverRef = useRef<HTMLDivElement | null>(null);
42
+ const triggerRef = useRef<HTMLInputElement | null>(null);
43
+ const [calendarPosition, setCalendarPosition] = useState({
44
+ top: 0,
45
+ left: 0,
46
+ width: 0,
47
+ });
48
+
49
+ const [from, to] = value.split("|");
50
+
51
+ const updatePosition = () => {
52
+ if (triggerRef.current) {
53
+ requestAnimationFrame(() => {
54
+ const rect = triggerRef.current!.getBoundingClientRect();
55
+ setCalendarPosition({
56
+ top: rect.bottom + window.scrollY,
57
+ left: rect.left + window.scrollX,
58
+ width: rect.width,
59
+ });
60
+ });
61
+ }
62
+ };
63
+
64
+ useEffect(() => {
65
+ updatePosition();
66
+
67
+ const resizeObserver = new ResizeObserver(updatePosition);
68
+ if (triggerRef.current) {
69
+ resizeObserver.observe(triggerRef.current);
70
+ }
71
+
72
+ window.addEventListener("scroll", updatePosition);
73
+
74
+ return () => {
75
+ resizeObserver.disconnect();
76
+ window.removeEventListener("scroll", updatePosition);
77
+ };
78
+ }, []);
79
+
80
+ useEffect(() => {
81
+ const handleKeyDown = (event: KeyboardEvent) => {
82
+ if (event.key === "Escape" && popoverRef.current) {
83
+ setVisible(false);
84
+ triggerRef.current?.blur();
85
+ }
86
+ };
87
+ document.addEventListener("keydown", handleKeyDown);
88
+ return () => {
89
+ document.removeEventListener("keydown", handleKeyDown);
90
+ };
91
+ });
92
+
93
+ useEffect(() => {
94
+ const handleClickOutside = (event: MouseEvent) => {
95
+ if (
96
+ popoverRef.current &&
97
+ !popoverRef.current.contains(event.target as HTMLElement) &&
98
+ triggerRef.current &&
99
+ !triggerRef.current.contains(event.target as HTMLElement)
100
+ ) {
101
+ setVisible(false);
102
+ }
103
+ };
104
+ document.addEventListener("mousedown", handleClickOutside);
105
+ return () => {
106
+ document.removeEventListener("mousedown", handleClickOutside);
107
+ };
108
+ }, []);
109
+
110
+ function handleRangeChange(fromValue: string, toValue: string) {
111
+ onChange(`${fromValue}|${toValue}`);
112
+ setVisible(false);
113
+ }
114
+
115
+ const handleFocus = () => {
116
+ if (readOnly) return; // Do not open calendar if read-only
117
+ setVisible(true);
118
+ updatePosition();
119
+ };
120
+
121
+ function formatDisplayValue(from?: string, to?: string) {
122
+ if (!from && !to) return "";
123
+ if (from && to) return `${formatDate(from)} - ${formatDate(to)}`;
124
+ if (from) return `${formatDate(from)} -`;
125
+ return "";
126
+ }
127
+
128
+ function formatDate(date: string) {
129
+ const [y, m, d] = date.split("-");
130
+ return `${m}/${d}/${y}`;
131
+ }
132
+
133
+ return (
134
+ <div className="relative">
135
+ <InputBase
136
+ ref={(el) => {
137
+ triggerRef.current = el;
138
+ }}
139
+ {...props}
140
+ value={formatDisplayValue(from, to)}
141
+ placeholder={placeholder}
142
+ disabled={disabled}
143
+ after={<Icon name="calendar_month" />}
144
+ onFocus={handleFocus}
145
+ readOnly={readOnly}
146
+ label={label}
147
+ onChange={() => {
148
+ // Input is controlled by calendar picker, ignore direct text changes
149
+ }}
150
+ />
151
+ {visible &&
152
+ !readOnly &&
153
+ createPortal(
154
+ <div
155
+ ref={(el) => {
156
+ popoverRef.current = el;
157
+ }}
158
+ className="absolute z-40 bg-white"
159
+ style={{
160
+ top: `${calendarPosition.top + 16}px`,
161
+ left: `${calendarPosition.left - 4}px`,
162
+ minWidth: `${calendarPosition.width}px`,
163
+ }}
164
+ >
165
+ <CalendarRange
166
+ from={from}
167
+ to={to}
168
+ onChange={handleRangeChange}
169
+ cardStyle
170
+ mode={single ? "single" : "double"}
171
+ />
172
+ </div>,
173
+ findDocumentRoot(popoverRef.current),
174
+ )}
175
+ </div>
176
+ );
177
+ };
178
+
179
+ DateRangeInput.displayName = "DateRangeInput";
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { useState } from "react";
3
+
4
+ export function DebugJson({ data }: { data: unknown }) {
5
+ const [open, setOpen] = useState(false);
6
+
7
+ if (process.env.NODE_ENV !== "development") {
8
+ return null;
9
+ }
10
+
11
+ return (
12
+ <div className="p-2 rounded bg-neutral-100 border border-red-500 my-4">
13
+ <button
14
+ onClick={() => setOpen((prev) => !prev)}
15
+ className="px-4 py-2 border rounded bg-white"
16
+ >
17
+ {open ? "Hide JSON" : "Show JSON"}
18
+ </button>
19
+ {open && <pre className="mt-4">{JSON.stringify(data, null, 4)}</pre>}
20
+ </div>
21
+ );
22
+ }
23
+
24
+ DebugJson.displayName = "dasda";
@@ -0,0 +1,60 @@
1
+ import clsx from "clsx";
2
+ import { AsProps, TextAttributes, TypographyProps } from "../types";
3
+ import { typography } from "../classNames";
4
+
5
+ type Tags = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "span" | "p";
6
+
7
+ type DisplayVariant = "display1" | "display2";
8
+
9
+ type DisplayProps = {
10
+ as?: Tags;
11
+ variant?: DisplayVariant;
12
+ } & AsProps<Tags> &
13
+ TextAttributes &
14
+ TypographyProps;
15
+
16
+ export const Display = ({
17
+ className,
18
+ children,
19
+ as,
20
+ color,
21
+ align,
22
+ variant = "display1",
23
+ ...props
24
+ }: DisplayProps) => {
25
+ const defaultElement = variant === "display1" ? "h1" : "h2";
26
+ const Element = as ?? defaultElement;
27
+
28
+ return (
29
+ <Element
30
+ className={clsx(
31
+ typography[variant],
32
+ className,
33
+ align === "left" && "text-left",
34
+ align === "center" && "text-center",
35
+ align === "right" && "text-right",
36
+ )}
37
+ style={{
38
+ ...props.style,
39
+ color: color ? `var(--color-${color})` : undefined,
40
+ }}
41
+ {...props}
42
+ >
43
+ {children}
44
+ </Element>
45
+ );
46
+ };
47
+
48
+ Display.displayName = "Display";
49
+
50
+ // Backward compatibility exports
51
+ export const Display1 = (props: Omit<DisplayProps, "variant">) => (
52
+ <Display {...props} variant="display1" />
53
+ );
54
+
55
+ export const Display2 = (props: Omit<DisplayProps, "variant">) => (
56
+ <Display {...props} variant="display2" />
57
+ );
58
+
59
+ Display1.displayName = "Display1";
60
+ Display2.displayName = "Display2";
@@ -0,0 +1,40 @@
1
+ "use client";
2
+
3
+ import { createContext, PropsWithChildren, useState } from "react";
4
+
5
+ type EditingContextType<T> = {
6
+ data: T[];
7
+ setData: (row: number, key: string, value: string) => void;
8
+ };
9
+
10
+ export const EditingContext = createContext<EditingContextType<any>>({
11
+ data: [],
12
+ setData: (row: number, key: string, value: string) => {
13
+ console.log(row, key, value);
14
+ },
15
+ });
16
+
17
+ type EditingProviderProps<T> = PropsWithChildren<{ data: T[] }>;
18
+
19
+ export const EditingProvider = <T,>({ data, children }: EditingProviderProps<T>) =>
20
+ {
21
+ const [actual, setData] = useState<T[]>(data);
22
+
23
+ const context: EditingContextType<T> = {
24
+ data: actual,
25
+ setData: (row: number, key: string, value: string) =>
26
+ {
27
+ setData((prev) => {
28
+ const newData = [...prev];
29
+ newData[row] = {
30
+ ...newData[row],
31
+ [key]: value,
32
+ };
33
+
34
+ return newData;
35
+ });
36
+ },
37
+ };
38
+
39
+ return <EditingContext value={context}>{children}</EditingContext>;
40
+ };
@@ -0,0 +1,211 @@
1
+ "use client";
2
+
3
+ import { ComponentProps, useState, Children, isValidElement } from "react";
4
+ import { Label } from "./Label";
5
+
6
+ import { Checkbox } from "./Checkbox";
7
+ import { OptionPill } from "./OptionPill";
8
+ import clsx from "clsx";
9
+ import { Link } from "./Link";
10
+ import {
11
+ baseTransition,
12
+ componentGap,
13
+ componentPaddingBottom,
14
+ componentPaddingY,
15
+ layoutGroupGap,
16
+ layoutPaddingBottom,
17
+ } from "../classNames";
18
+ import { Icon } from "./Icon";
19
+
20
+ type FilterGroupProps = {
21
+ label: string;
22
+ open?: boolean;
23
+ showMore?: boolean;
24
+ type?: "link" | "checkbox" | "summary";
25
+ onShowMore?: () => void;
26
+ onClearAll?: () => void; // ✅ NEW
27
+ };
28
+
29
+ export const FilterGroup = ({
30
+ label,
31
+ type = "link",
32
+ open = false,
33
+ showMore = false,
34
+ onShowMore,
35
+ onClearAll,
36
+ children,
37
+ ...props
38
+ }: ComponentProps<"div"> & FilterGroupProps) => {
39
+ const isSummary = type === "summary";
40
+ const [internalExpanded, setInternalExpanded] = useState(open);
41
+ const [showAllItems, setShowAllItems] = useState(false);
42
+ const isExpanded = open || internalExpanded;
43
+ const childArray = Children.toArray(children).filter(isValidElement);
44
+ const shouldShowAll = isSummary || showAllItems;
45
+ const visibleChildren = childArray.slice(
46
+ 0,
47
+ shouldShowAll ? childArray.length : 5,
48
+ );
49
+ const showShowMoreLink =
50
+ showMore &&
51
+ !isSummary &&
52
+ childArray.length > 5 &&
53
+ !showAllItems &&
54
+ isExpanded;
55
+
56
+ return (
57
+ <div
58
+ {...props}
59
+ className={clsx(
60
+ "border-b border-border-primary-normal",
61
+ isSummary ? layoutPaddingBottom : componentPaddingBottom,
62
+ )}
63
+ >
64
+ <div
65
+ className={clsx(
66
+ "flex items-center justify-between cursor-pointer",
67
+ layoutGroupGap,
68
+ )}
69
+ onClick={handleToggleExpanded}
70
+ >
71
+ <Label>{label}</Label>
72
+
73
+ {type !== "summary" ? (
74
+ <Icon
75
+ name="keyboard_arrow_down"
76
+ className={clsx(
77
+ baseTransition.replace(
78
+ "transition-colors",
79
+ "transition-transform",
80
+ ),
81
+ isExpanded && "rotate-180",
82
+ "text-icon-action-primary-normal",
83
+ )}
84
+ />
85
+ ) : (
86
+ <Link
87
+ className={clsx("block", componentPaddingY)}
88
+ onClick={handleClearAll}
89
+ >
90
+ Clear All
91
+ </Link>
92
+ )}
93
+ </div>
94
+
95
+ <div
96
+ className={clsx(
97
+ "grid",
98
+ baseTransition.replace(
99
+ "transition-colors",
100
+ "transition-[grid-template-rows]",
101
+ ),
102
+ isExpanded || isSummary ? "grid-rows-[1fr]" : "grid-rows-[0fr]",
103
+ )}
104
+ >
105
+ <div
106
+ className={clsx(
107
+ "overflow-hidden",
108
+ componentGap,
109
+ (isExpanded || isSummary || internalExpanded) &&
110
+ "mt-mobile-component-gap desktop:mt-desktop-component-gap compact:mt-desktop-compact-component-gap",
111
+ )}
112
+ >
113
+ <div className={clsx(isSummary && `flex flex-col ${componentGap}`)}>
114
+ {visibleChildren}
115
+ </div>
116
+ {showShowMoreLink && (
117
+ <Link
118
+ className={clsx("block", "!items-start", componentPaddingY)}
119
+ onClick={handleOnShowMore}
120
+ >
121
+ Show More
122
+ </Link>
123
+ )}
124
+ </div>
125
+ </div>
126
+ </div>
127
+ );
128
+
129
+ function handleOnShowMore(e: React.MouseEvent<HTMLElement>) {
130
+ e.stopPropagation();
131
+ setShowAllItems(true);
132
+ onShowMore?.();
133
+ }
134
+
135
+ function handleToggleExpanded(e: React.MouseEvent<HTMLElement>) {
136
+ if (type === "summary") return;
137
+ e.stopPropagation();
138
+ setInternalExpanded(!internalExpanded);
139
+ }
140
+
141
+ function handleClearAll(e: React.MouseEvent<HTMLElement>) {
142
+ e.stopPropagation();
143
+ onClearAll?.();
144
+ }
145
+ };
146
+
147
+ type FilterGroupItemProps = {
148
+ count?: number;
149
+ type?: FilterGroupProps["type"];
150
+ };
151
+
152
+ export const FilterGroupItem = ({
153
+ type = "link",
154
+ children,
155
+ onClick,
156
+ ...props
157
+ }: ComponentProps<React.ElementType> & FilterGroupItemProps) => {
158
+ return (
159
+ <div
160
+ onClick={handleClick}
161
+ {...props}
162
+ className={clsx(
163
+ "flex items-center justify-between *:first:flex-1 cursor-pointer",
164
+ type !== "summary"
165
+ ? "*:first:py-mobile-component-padding *:first:desktop:py-desktop-component-padding *:first:compact:py-desktop-compact-component-padding"
166
+ : "",
167
+ )}
168
+ >
169
+ <FilterGroupItemChildComponent {...props} type={type} count={props.count}>
170
+ <span className="flex items-center justify-between w-full">
171
+ {children}
172
+
173
+ {type !== "summary" && props.count && <span>({props.count})</span>}
174
+ </span>
175
+ </FilterGroupItemChildComponent>
176
+ </div>
177
+ );
178
+
179
+ function handleClick(e: React.MouseEvent<HTMLElement>) {
180
+ e.stopPropagation();
181
+ onClick?.();
182
+ }
183
+ };
184
+
185
+ const FilterGroupItemChildComponent = ({
186
+ type = "link",
187
+ children,
188
+ ...props
189
+ }: ComponentProps<React.ElementType> & {
190
+ type: FilterGroupItemProps["type"];
191
+ }) => {
192
+ if (type === "checkbox") {
193
+ return <Checkbox paragraphClassName="w-full" label={children} {...props} />;
194
+ }
195
+
196
+ if (type === "summary") {
197
+ return (
198
+ <div>
199
+ <OptionPill removable {...props}>
200
+ {children}
201
+ </OptionPill>
202
+ </div>
203
+ );
204
+ }
205
+
206
+ return (
207
+ <Link variant="secondary" {...props}>
208
+ {children}
209
+ </Link>
210
+ );
211
+ };