@dmsi/wedgekit-react 0.0.5 → 0.0.6

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 (430) hide show
  1. package/dist/{chunk-25Y2OMTD.js → chunk-6ZY524ID.js} +8 -4
  2. package/dist/{chunk-UGXT677T.js → chunk-BWRHL2AG.js} +4 -2
  3. package/dist/{chunk-VFWFORJJ.js → chunk-DKKYR6DS.js} +1 -0
  4. package/dist/{chunk-TBHTISFW.js → chunk-GTCSRHPF.js} +1 -1
  5. package/dist/chunk-I2UVVKQI.js +12 -0
  6. package/dist/{chunk-CABAANHQ.js → chunk-L4UM372R.js} +5 -1
  7. package/dist/chunk-Q3FKEKIN.js +23 -0
  8. package/dist/{chunk-YD462QK7.js → chunk-TAW5ZZ4Z.js} +4 -4
  9. package/dist/{chunk-UEN5BURK.js → chunk-TRUPPHBQ.js} +14 -11
  10. package/dist/{chunk-2B7WUAOV.js → chunk-TU55CHXU.js} +4 -2
  11. package/dist/{chunk-PMQOPIJZ.js → chunk-U42SKNR6.js} +45 -16
  12. package/dist/{chunk-SPQH4CSJ.js → chunk-XUIPGYP5.js} +11 -3
  13. package/dist/components/Checkbox.cjs +1 -0
  14. package/dist/components/Checkbox.js +1 -1
  15. package/dist/components/DataGrid.cjs +145 -17
  16. package/dist/components/DataGrid.js +138 -19
  17. package/dist/components/DataGridCell.cjs +4 -2
  18. package/dist/components/DataGridCell.js +4 -4
  19. package/dist/components/DateInput.cjs +4 -2
  20. package/dist/components/DateInput.js +1 -1
  21. package/dist/components/DateRangeInput.cjs +4 -2
  22. package/dist/components/DateRangeInput.js +1 -1
  23. package/dist/components/FilterGroup.cjs +559 -31
  24. package/dist/components/FilterGroup.js +21 -3
  25. package/dist/components/Input.cjs +4 -2
  26. package/dist/components/Input.js +1 -1
  27. package/dist/components/MainBar.cjs +2 -1
  28. package/dist/components/MainBar.js +2 -1
  29. package/dist/components/Menu.js +1 -1
  30. package/dist/components/MobileDataGrid.cjs +658 -0
  31. package/dist/components/MobileDataGrid.js +125 -0
  32. package/dist/components/Modal.cjs +147 -52
  33. package/dist/components/Modal.js +80 -30
  34. package/dist/components/ModalButtons.cjs +7 -3
  35. package/dist/components/ModalButtons.js +1 -1
  36. package/dist/components/ModalContent.cjs +25 -2
  37. package/dist/components/ModalContent.js +1 -1
  38. package/dist/components/ModalHeader.cjs +11 -3
  39. package/dist/components/ModalHeader.js +1 -1
  40. package/dist/components/ModalScrim.cjs +5 -6
  41. package/dist/components/ModalScrim.js +1 -1
  42. package/dist/components/Notification.cjs +137 -26
  43. package/dist/components/Notification.js +29 -16
  44. package/dist/components/Password.cjs +4 -2
  45. package/dist/components/Password.js +1 -1
  46. package/dist/components/Search.cjs +4 -2
  47. package/dist/components/Search.js +2 -2
  48. package/dist/components/Select.cjs +15 -7
  49. package/dist/components/Select.js +2 -2
  50. package/dist/components/SideMenuGroup.cjs +45 -16
  51. package/dist/components/SideMenuGroup.js +1 -1
  52. package/dist/components/SideMenuItem.cjs +45 -16
  53. package/dist/components/SideMenuItem.js +1 -1
  54. package/dist/components/Stack.cjs +45 -16
  55. package/dist/components/Stack.js +1 -1
  56. package/dist/components/Stepper.cjs +4 -2
  57. package/dist/components/Stepper.js +1 -1
  58. package/dist/components/Surface.cjs +4 -4
  59. package/dist/components/Surface.js +36 -3
  60. package/dist/components/Swatch.cjs +971 -22
  61. package/dist/components/Swatch.js +928 -7
  62. package/dist/components/Theme.js +3 -9
  63. package/dist/components/Time.cjs +150 -91
  64. package/dist/components/Time.js +48 -60
  65. package/dist/components/Toast.cjs +1 -1
  66. package/dist/components/Toast.js +1 -1
  67. package/dist/fonts.css +2 -0
  68. package/dist/index.css +371 -19
  69. package/package.json +1 -1
  70. package/src/brand.css +16 -1
  71. package/src/components/Checkbox.tsx +1 -0
  72. package/src/components/DataGrid.tsx +132 -3
  73. package/src/components/FilterGroup.tsx +25 -2
  74. package/src/components/Input.tsx +4 -1
  75. package/src/components/MainBar.tsx +2 -1
  76. package/src/components/Menu.tsx +11 -4
  77. package/src/components/MobileDataGrid.tsx +135 -0
  78. package/src/components/Modal.tsx +73 -13
  79. package/src/components/ModalButtons.tsx +26 -17
  80. package/src/components/ModalContent.tsx +20 -2
  81. package/src/components/ModalHeader.tsx +24 -13
  82. package/src/components/ModalScrim.tsx +4 -3
  83. package/src/components/Notification.tsx +21 -14
  84. package/src/components/Select.tsx +7 -9
  85. package/src/components/Stack.tsx +85 -20
  86. package/src/components/Surface.tsx +4 -5
  87. package/src/components/Swatch.tsx +779 -6
  88. package/src/components/Time.tsx +51 -70
  89. package/src/components/Toast.tsx +1 -1
  90. package/src/darkmode.css +18 -3
  91. package/src/fonts.css +2 -0
  92. package/src/index.css +23 -3
  93. package/dist/acc.css +0 -3
  94. package/dist/agility.css +0 -7
  95. package/dist/chunk-22YZ6LFN.js +0 -322
  96. package/dist/chunk-27OSC5OM.js +0 -68
  97. package/dist/chunk-2EHJFFX4.js +0 -124
  98. package/dist/chunk-2GC2SPSS.js +0 -130
  99. package/dist/chunk-2KLCMD2M.js +0 -106
  100. package/dist/chunk-2TLQVCQQ.js +0 -130
  101. package/dist/chunk-2Y6GPKXR.js +0 -263
  102. package/dist/chunk-322ATVWD.js +0 -298
  103. package/dist/chunk-35DCQU2F.js +0 -127
  104. package/dist/chunk-3B7FAEF7.js +0 -38
  105. package/dist/chunk-3FLOLZYP.js +0 -21
  106. package/dist/chunk-3IZWY2C7.js +0 -221
  107. package/dist/chunk-3NGYDV56.js +0 -38
  108. package/dist/chunk-3NLKVKFR.js +0 -72
  109. package/dist/chunk-3R7YVBRL.js +0 -135
  110. package/dist/chunk-3RDFNEVD.js +0 -91
  111. package/dist/chunk-3TPGMRVY.js +0 -123
  112. package/dist/chunk-42X2EOOI.js +0 -129
  113. package/dist/chunk-47GJZWOH.js +0 -103
  114. package/dist/chunk-4BUU5MTT.js +0 -263
  115. package/dist/chunk-4IZG2UCW.js +0 -31
  116. package/dist/chunk-4M7CJVTZ.js +0 -136
  117. package/dist/chunk-4NZBVXM3.js +0 -53
  118. package/dist/chunk-4S4WZ3MQ.js +0 -103
  119. package/dist/chunk-4SV7MJMP.js +0 -340
  120. package/dist/chunk-4TH2SUHQ.js +0 -145
  121. package/dist/chunk-56ORPWGF.js +0 -148
  122. package/dist/chunk-5HIUW5CM.js +0 -128
  123. package/dist/chunk-5K3U4IUW.js +0 -34
  124. package/dist/chunk-5KOZKEEM.js +0 -91
  125. package/dist/chunk-5OIRPFRD.js +0 -114
  126. package/dist/chunk-5QW5SJNW.js +0 -31
  127. package/dist/chunk-5QZO37QK.js +0 -263
  128. package/dist/chunk-5ROMJJRK.js +0 -135
  129. package/dist/chunk-5VHYVTZI.js +0 -123
  130. package/dist/chunk-6277DY3K.js +0 -437
  131. package/dist/chunk-6C5NOV6D.js +0 -263
  132. package/dist/chunk-6CDVHKTS.js +0 -103
  133. package/dist/chunk-6E4OJA7E.js +0 -263
  134. package/dist/chunk-6GBZFWQ4.js +0 -105
  135. package/dist/chunk-6GGLA6DI.js +0 -263
  136. package/dist/chunk-6HKVN4QK.js +0 -340
  137. package/dist/chunk-6HLJFPGY.js +0 -284
  138. package/dist/chunk-6KUUK27D.js +0 -31
  139. package/dist/chunk-6Q5NNY5V.js +0 -135
  140. package/dist/chunk-6VAZR5GK.js +0 -122
  141. package/dist/chunk-6XDXJ3Z3.js +0 -131
  142. package/dist/chunk-6XIXUFSA.js +0 -114
  143. package/dist/chunk-7CG4GVU7.js +0 -21
  144. package/dist/chunk-7DNCGSXK.js +0 -284
  145. package/dist/chunk-7GFGBJCU.js +0 -287
  146. package/dist/chunk-7VA3AERB.js +0 -31
  147. package/dist/chunk-7YJLGGIR.js +0 -83
  148. package/dist/chunk-7ZCBQXHR.js +0 -272
  149. package/dist/chunk-A4BGWCF6.js +0 -221
  150. package/dist/chunk-A6RDEIAN.js +0 -254
  151. package/dist/chunk-AE7SZPWF.js +0 -121
  152. package/dist/chunk-AEQYZFXI.js +0 -50
  153. package/dist/chunk-AFEIB2Y7.js +0 -213
  154. package/dist/chunk-AGQML5BM.js +0 -340
  155. package/dist/chunk-AHBE63RV.js +0 -263
  156. package/dist/chunk-AHHXD4EH.js +0 -31
  157. package/dist/chunk-AILPQXDY.js +0 -47
  158. package/dist/chunk-AKTL6JU5.js +0 -25
  159. package/dist/chunk-AMZFEIAM.js +0 -114
  160. package/dist/chunk-ANI7PKSV.js +0 -38
  161. package/dist/chunk-AO6WGDPJ.js +0 -105
  162. package/dist/chunk-ASDN5OZ3.js +0 -318
  163. package/dist/chunk-ASSOOV4N.js +0 -53
  164. package/dist/chunk-AWSUZLRR.js +0 -79
  165. package/dist/chunk-B6A3BOGW.js +0 -31
  166. package/dist/chunk-B6NMINKX.js +0 -72
  167. package/dist/chunk-B7UOXS2S.js +0 -221
  168. package/dist/chunk-BDN7SDV5.js +0 -31
  169. package/dist/chunk-BDPJYJD2.js +0 -218
  170. package/dist/chunk-BDYWCYRG.js +0 -263
  171. package/dist/chunk-BENTHNAQ.js +0 -51
  172. package/dist/chunk-BGPBLXQ5.js +0 -131
  173. package/dist/chunk-BKC5DNOX.js +0 -162
  174. package/dist/chunk-BMGYSXYW.js +0 -50
  175. package/dist/chunk-BNOE4DGB.js +0 -79
  176. package/dist/chunk-BQMI4NKT.js +0 -103
  177. package/dist/chunk-BSBXTPTA.js +0 -84
  178. package/dist/chunk-BYNATA7V.js +0 -114
  179. package/dist/chunk-BZFVPEG3.js +0 -98
  180. package/dist/chunk-C2GYWE4S.js +0 -263
  181. package/dist/chunk-C5NNFQ4B.js +0 -114
  182. package/dist/chunk-C7ALJGJG.js +0 -322
  183. package/dist/chunk-C7S6DKZ6.js +0 -31
  184. package/dist/chunk-CA4BW655.js +0 -50
  185. package/dist/chunk-CELC37U6.js +0 -38
  186. package/dist/chunk-CIWOBFZ4.js +0 -340
  187. package/dist/chunk-CKB4S3O3.js +0 -284
  188. package/dist/chunk-CL6RYGIT.js +0 -263
  189. package/dist/chunk-CLB4OQS5.js +0 -84
  190. package/dist/chunk-CMBMFSP4.js +0 -340
  191. package/dist/chunk-CTHHLBRT.js +0 -90
  192. package/dist/chunk-DDQ4KWHW.js +0 -74
  193. package/dist/chunk-DHWXCPF2.js +0 -56
  194. package/dist/chunk-DV3IMUO6.js +0 -50
  195. package/dist/chunk-DZHPNWUL.js +0 -70
  196. package/dist/chunk-DZLUR2I7.js +0 -34
  197. package/dist/chunk-E7H6GJIB.js +0 -31
  198. package/dist/chunk-EAJ37R7R.js +0 -31
  199. package/dist/chunk-EDMIKY4Q.js +0 -50
  200. package/dist/chunk-EE4GUGFX.js +0 -31
  201. package/dist/chunk-EHCD3FVZ.js +0 -50
  202. package/dist/chunk-EHOMG5B4.js +0 -31
  203. package/dist/chunk-EM7ODK2O.js +0 -53
  204. package/dist/chunk-ER3HQRPL.js +0 -105
  205. package/dist/chunk-ER6TD3DA.js +0 -30
  206. package/dist/chunk-ESK7AT3B.js +0 -38
  207. package/dist/chunk-ETWMDEUU.js +0 -114
  208. package/dist/chunk-EWX2EDF5.js +0 -236
  209. package/dist/chunk-EXJKOP3Y.js +0 -236
  210. package/dist/chunk-F2YQE6G5.js +0 -145
  211. package/dist/chunk-F3U3RHIB.js +0 -131
  212. package/dist/chunk-F433MJII.js +0 -91
  213. package/dist/chunk-F4JE6AD2.js +0 -160
  214. package/dist/chunk-FCYGYC7R.js +0 -30
  215. package/dist/chunk-FEEMBYZR.js +0 -98
  216. package/dist/chunk-FKQ63FLW.js +0 -91
  217. package/dist/chunk-FNFDOS7L.js +0 -263
  218. package/dist/chunk-FNLYAP3I.js +0 -135
  219. package/dist/chunk-FQVCRL3Z.js +0 -145
  220. package/dist/chunk-FZ6I2KRT.js +0 -263
  221. package/dist/chunk-FZLYFJ53.js +0 -26
  222. package/dist/chunk-G3AYBQ2Y.js +0 -221
  223. package/dist/chunk-G4V7WZAV.js +0 -72
  224. package/dist/chunk-GDAY5XPY.js +0 -47
  225. package/dist/chunk-GELM4Z36.js +0 -263
  226. package/dist/chunk-GGR5UY3Q.js +0 -83
  227. package/dist/chunk-GK556OXV.js +0 -263
  228. package/dist/chunk-GOB3NB3Q.js +0 -130
  229. package/dist/chunk-GPIG2QUB.js +0 -437
  230. package/dist/chunk-GV63QYC5.js +0 -130
  231. package/dist/chunk-GWNDXZUZ.js +0 -263
  232. package/dist/chunk-H3INEB6H.js +0 -296
  233. package/dist/chunk-H3VQYL46.js +0 -50
  234. package/dist/chunk-H53EBFHV.js +0 -114
  235. package/dist/chunk-HBD6NLMB.js +0 -51
  236. package/dist/chunk-HBTQFVPW.js +0 -121
  237. package/dist/chunk-HCDYAZGJ.js +0 -91
  238. package/dist/chunk-HE3XKR3P.js +0 -130
  239. package/dist/chunk-HK3NQMPY.js +0 -51
  240. package/dist/chunk-HK54SJNM.js +0 -103
  241. package/dist/chunk-HL2IYNCS.js +0 -50
  242. package/dist/chunk-I5A3SU35.js +0 -282
  243. package/dist/chunk-I5HKQSF2.js +0 -59
  244. package/dist/chunk-I7LXSGQA.js +0 -10
  245. package/dist/chunk-IDAZ53A4.js +0 -261
  246. package/dist/chunk-II6HWGH6.js +0 -295
  247. package/dist/chunk-IIDPTJCI.js +0 -31
  248. package/dist/chunk-IJ6AAL4W.js +0 -59
  249. package/dist/chunk-IKZQIIV3.js +0 -123
  250. package/dist/chunk-ISKELMPI.js +0 -67
  251. package/dist/chunk-IWUZ6NSN.js +0 -218
  252. package/dist/chunk-IYDKL3OH.js +0 -130
  253. package/dist/chunk-IZ75D7KD.js +0 -30
  254. package/dist/chunk-JCLVMFRY.js +0 -122
  255. package/dist/chunk-JDHZQIFC.js +0 -135
  256. package/dist/chunk-JFMZU3WS.js +0 -123
  257. package/dist/chunk-JI54AM6E.js +0 -105
  258. package/dist/chunk-JM4DMO5V.js +0 -91
  259. package/dist/chunk-JNLDVEK3.js +0 -221
  260. package/dist/chunk-JU3RVFK5.js +0 -114
  261. package/dist/chunk-JU4PINK3.js +0 -282
  262. package/dist/chunk-K2YPB4SV.js +0 -38
  263. package/dist/chunk-K5EXR7F7.js +0 -253
  264. package/dist/chunk-K7CWFWAA.js +0 -263
  265. package/dist/chunk-KGCFZ3ZY.js +0 -263
  266. package/dist/chunk-KJEU2OLC.js +0 -263
  267. package/dist/chunk-KNZWZVWO.js +0 -50
  268. package/dist/chunk-KVQDUSDT.js +0 -33
  269. package/dist/chunk-KXFCVFX7.js +0 -50
  270. package/dist/chunk-KXWYWY7O.js +0 -135
  271. package/dist/chunk-KYJFCVGO.js +0 -53
  272. package/dist/chunk-L4SK5HYC.js +0 -114
  273. package/dist/chunk-L5OMTPWT.js +0 -130
  274. package/dist/chunk-LBL6VQ5F.js +0 -51
  275. package/dist/chunk-LCJKAY5H.js +0 -122
  276. package/dist/chunk-LEPHUIU3.js +0 -263
  277. package/dist/chunk-LFNCUQNK.js +0 -103
  278. package/dist/chunk-LIQIMUDD.js +0 -270
  279. package/dist/chunk-LJ2W2FEG.js +0 -134
  280. package/dist/chunk-LJGUNBDS.js +0 -238
  281. package/dist/chunk-LK6UNOMX.js +0 -24
  282. package/dist/chunk-LQLPGMGP.js +0 -238
  283. package/dist/chunk-LRNZOITG.js +0 -318
  284. package/dist/chunk-LSDPH4GX.js +0 -38
  285. package/dist/chunk-LXYDGV6K.js +0 -437
  286. package/dist/chunk-MFNBBTWX.js +0 -177
  287. package/dist/chunk-MGJ3GO6Z.js +0 -284
  288. package/dist/chunk-MIMYQH75.js +0 -91
  289. package/dist/chunk-MKIVQLZW.js +0 -122
  290. package/dist/chunk-MLQQU3ZN.js +0 -31
  291. package/dist/chunk-MLTOT73W.js +0 -38
  292. package/dist/chunk-MM2YBW7A.js +0 -31
  293. package/dist/chunk-MMHTKJ7Z.js +0 -50
  294. package/dist/chunk-MNZUBPVB.js +0 -263
  295. package/dist/chunk-MRXJRTKP.js +0 -62
  296. package/dist/chunk-MSM2B2VT.js +0 -106
  297. package/dist/chunk-MTJDLHR6.js +0 -218
  298. package/dist/chunk-MU4ZBPUT.js +0 -263
  299. package/dist/chunk-MUQHKNFV.js +0 -158
  300. package/dist/chunk-N2XNU5PP.js +0 -91
  301. package/dist/chunk-N4NGR36H.js +0 -263
  302. package/dist/chunk-NA4H2JQX.js +0 -145
  303. package/dist/chunk-NBV3Y6UB.js +0 -315
  304. package/dist/chunk-NEBYCDGE.js +0 -284
  305. package/dist/chunk-NS2KPONF.js +0 -263
  306. package/dist/chunk-O2KOOPL4.js +0 -148
  307. package/dist/chunk-OEIQDS7X.js +0 -50
  308. package/dist/chunk-OJ4PX3ZG.js +0 -59
  309. package/dist/chunk-OOIM4AHV.js +0 -106
  310. package/dist/chunk-OQ2SDHRA.js +0 -267
  311. package/dist/chunk-OQAOAEH5.js +0 -114
  312. package/dist/chunk-OQWOF5CI.js +0 -322
  313. package/dist/chunk-ORW5CX24.js +0 -316
  314. package/dist/chunk-OUHI4UBN.js +0 -38
  315. package/dist/chunk-OULD24TE.js +0 -98
  316. package/dist/chunk-P66A67NV.js +0 -30
  317. package/dist/chunk-PC5JSEHD.js +0 -269
  318. package/dist/chunk-PLCJ56FF.js +0 -72
  319. package/dist/chunk-PMNRGAPH.js +0 -191
  320. package/dist/chunk-PPU6PK34.js +0 -263
  321. package/dist/chunk-PQEWSSM5.js +0 -31
  322. package/dist/chunk-PY6MF2II.js +0 -51
  323. package/dist/chunk-QBXVAKCM.js +0 -59
  324. package/dist/chunk-QDAFX66E.js +0 -55
  325. package/dist/chunk-QEXYUSGH.js +0 -201
  326. package/dist/chunk-QFEYPU44.js +0 -91
  327. package/dist/chunk-QJWVR7FR.js +0 -387
  328. package/dist/chunk-QKKRKHFR.js +0 -38
  329. package/dist/chunk-QKQ4M6UK.js +0 -263
  330. package/dist/chunk-QTKPVQAY.js +0 -66
  331. package/dist/chunk-R3IEEDQ6.js +0 -284
  332. package/dist/chunk-R4UZI5WE.js +0 -171
  333. package/dist/chunk-RBXILAST.js +0 -437
  334. package/dist/chunk-RENGWIST.js +0 -263
  335. package/dist/chunk-REZ33AJK.js +0 -172
  336. package/dist/chunk-RGI3V47F.js +0 -216
  337. package/dist/chunk-RMIQDOJV.js +0 -287
  338. package/dist/chunk-ROYYCT4A.js +0 -31
  339. package/dist/chunk-RWVJ2YAO.js +0 -131
  340. package/dist/chunk-RZLSOKZB.js +0 -123
  341. package/dist/chunk-S3POCSOH.js +0 -31
  342. package/dist/chunk-S4IHG5J6.js +0 -54
  343. package/dist/chunk-SHQVFIVR.js +0 -122
  344. package/dist/chunk-SPV52UKB.js +0 -50
  345. package/dist/chunk-SSBZHFHQ.js +0 -123
  346. package/dist/chunk-STVC6SBJ.js +0 -91
  347. package/dist/chunk-T23U4LBM.js +0 -148
  348. package/dist/chunk-TC5ACZ3X.js +0 -263
  349. package/dist/chunk-TD5JMMNX.js +0 -72
  350. package/dist/chunk-TDEEN7O7.js +0 -50
  351. package/dist/chunk-TKRAU33B.js +0 -53
  352. package/dist/chunk-TMLPJ27P.js +0 -126
  353. package/dist/chunk-TTKSTVEF.js +0 -41
  354. package/dist/chunk-TVYKK7ZX.js +0 -123
  355. package/dist/chunk-TZCA2T5D.js +0 -282
  356. package/dist/chunk-U2CMWI75.js +0 -250
  357. package/dist/chunk-UA7N4NQJ.js +0 -30
  358. package/dist/chunk-ULCNZZBV.js +0 -38
  359. package/dist/chunk-UO4T3RQ7.js +0 -62
  360. package/dist/chunk-US3SPKKB.js +0 -266
  361. package/dist/chunk-UUNHTQDU.js +0 -79
  362. package/dist/chunk-UUZXVVJY.js +0 -161
  363. package/dist/chunk-UZJMB6V7.js +0 -26
  364. package/dist/chunk-V3HXUE6V.js +0 -221
  365. package/dist/chunk-V6UMVJGA.js +0 -53
  366. package/dist/chunk-V7C6DTJ6.js +0 -72
  367. package/dist/chunk-VHWB6H64.js +0 -75
  368. package/dist/chunk-VI62SXXU.js +0 -284
  369. package/dist/chunk-VK3FB67Z.js +0 -31
  370. package/dist/chunk-VKC7QT46.js +0 -83
  371. package/dist/chunk-VVTY2NT4.js +0 -105
  372. package/dist/chunk-VWEOVI4O.js +0 -123
  373. package/dist/chunk-WOCMJF6O.js +0 -221
  374. package/dist/chunk-WPDU5H5L.js +0 -114
  375. package/dist/chunk-WQMFGEAF.js +0 -235
  376. package/dist/chunk-WTAZ6P6T.js +0 -263
  377. package/dist/chunk-WUJFEG3H.js +0 -118
  378. package/dist/chunk-WUTFZGXS.js +0 -50
  379. package/dist/chunk-X65IBJJM.js +0 -436
  380. package/dist/chunk-XATMLZOP.js +0 -263
  381. package/dist/chunk-XFCRKJRI.js +0 -261
  382. package/dist/chunk-XGKHSZ6E.js +0 -38
  383. package/dist/chunk-XJAQVF2E.js +0 -83
  384. package/dist/chunk-XQX7HSL5.js +0 -38
  385. package/dist/chunk-XTP3ODBD.js +0 -56
  386. package/dist/chunk-XWF3ZJCZ.js +0 -97
  387. package/dist/chunk-XX3GHFG5.js +0 -121
  388. package/dist/chunk-XZ6AMNDQ.js +0 -290
  389. package/dist/chunk-Y2LOHSZL.js +0 -72
  390. package/dist/chunk-Y66VCVZZ.js +0 -122
  391. package/dist/chunk-YELD6VJI.js +0 -68
  392. package/dist/chunk-YHPZ5T3W.js +0 -91
  393. package/dist/chunk-YJV7JCIC.js +0 -38
  394. package/dist/chunk-YMZUZ5HX.js +0 -263
  395. package/dist/chunk-YN7MUHAZ.js +0 -218
  396. package/dist/chunk-YOCKCBUA.js +0 -72
  397. package/dist/chunk-YPFUW2PT.js +0 -306
  398. package/dist/chunk-YRLRIQNP.js +0 -284
  399. package/dist/chunk-YRTR6KJN.js +0 -210
  400. package/dist/chunk-YSSJHCRC.js +0 -221
  401. package/dist/chunk-YWLJJNJY.js +0 -259
  402. package/dist/chunk-YYRH2SGW.js +0 -114
  403. package/dist/chunk-YZRIJ4AP.js +0 -263
  404. package/dist/chunk-Z64CLA4J.js +0 -53
  405. package/dist/chunk-ZCFOYW2U.js +0 -296
  406. package/dist/chunk-ZEYZVUG5.js +0 -53
  407. package/dist/chunk-ZHRZMJA3.js +0 -31
  408. package/dist/chunk-ZJQAMKIP.js +0 -113
  409. package/dist/chunk-ZRQZOT6X.js +0 -141
  410. package/dist/chunk-ZUTAZW53.js +0 -306
  411. package/dist/chunk-ZVJ2T3DC.js +0 -79
  412. package/dist/chunk-ZWJZHUKU.js +0 -50
  413. package/dist/chunk-ZXQKFHBO.js +0 -221
  414. package/dist/components/Calendar.cjs +0 -219
  415. package/dist/components/Calendar.js +0 -10
  416. package/dist/components/CalendarRange.stories.cjs +0 -1
  417. package/dist/components/CalendarRange.stories.js +0 -0
  418. package/dist/components/Display1.cjs +0 -223
  419. package/dist/components/Display1.js +0 -8
  420. package/dist/components/Display2.cjs +0 -220
  421. package/dist/components/Display2.js +0 -46
  422. package/dist/components/Heading1.cjs +0 -223
  423. package/dist/components/Heading1.js +0 -49
  424. package/dist/components/Heading2.cjs +0 -223
  425. package/dist/components/Heading2.js +0 -8
  426. package/dist/components/Heading3.cjs +0 -223
  427. package/dist/components/Heading3.js +0 -8
  428. package/dist/icons-light-QXLRBPC4.woff2 +0 -0
  429. package/dist/icons-normal-MJATZ73K.woff2 +0 -0
  430. package/dist/millwork.css +0 -4
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
 
3
- import React, { ReactNode, useId, useState } from "react";
3
+ import React, { ReactNode, useCallback, useId, useRef, useState } from "react";
4
4
 
5
5
  // TanStack Table
6
6
  import {
7
+ Column,
7
8
  ColumnDef,
8
9
  ColumnFiltersState,
9
10
  FilterFn,
@@ -115,6 +116,7 @@ export interface DataGridProps<T extends Record<string, unknown>> {
115
116
  totalRowCount: number;
116
117
  hideStatusBar?: boolean;
117
118
  centerHeader?: boolean;
119
+ enableColumnSelector?: boolean;
118
120
  }
119
121
 
120
122
  export function DataGrid<T extends Record<string, unknown>>({
@@ -136,6 +138,7 @@ export function DataGrid<T extends Record<string, unknown>>({
136
138
  totalRowCount,
137
139
  hideStatusBar,
138
140
  centerHeader,
141
+ enableColumnSelector,
139
142
  }: DataGridProps<T>) {
140
143
  const [columnOrder, setColumnOrder] = useState<string[]>(() =>
141
144
  columns.map((c) => c.id!),
@@ -205,6 +208,37 @@ export function DataGrid<T extends Record<string, unknown>>({
205
208
  const id = useId();
206
209
  const containerRef = React.useRef<HTMLDivElement>(null);
207
210
 
211
+ const [columnVisibility, setColumnVisibility] = useState<
212
+ Record<string, boolean>
213
+ >(() => {
214
+ const initialVisibility: Record<string, boolean> = {};
215
+ columns.forEach((column) => {
216
+ if (column.id) {
217
+ initialVisibility[column.id] = column.meta?.visible ?? true;
218
+ }
219
+ });
220
+ return initialVisibility;
221
+ });
222
+
223
+ const toggleColumnVisibility = useCallback(
224
+ (id: string, isVisible: boolean) => {
225
+ setColumnVisibility((prev) => ({ ...prev, [id]: isVisible }));
226
+ },
227
+ [setColumnVisibility],
228
+ );
229
+
230
+ const resetColumnVisibility = useCallback(() => {
231
+ setColumnVisibility(() => {
232
+ const initialVisibility: Record<string, boolean> = {};
233
+ columns.forEach((column) => {
234
+ if (column.id) {
235
+ initialVisibility[column.id] = column.meta?.visible ?? true;
236
+ }
237
+ });
238
+ return initialVisibility;
239
+ });
240
+ }, [columns]);
241
+
208
242
  const table = useReactTable<T>({
209
243
  columns,
210
244
  data,
@@ -218,6 +252,7 @@ export function DataGrid<T extends Record<string, unknown>>({
218
252
  sorting: sortingState,
219
253
  columnFilters: columnFilterState,
220
254
  rowSelection,
255
+ columnVisibility,
221
256
  },
222
257
  onColumnOrderChange: setColumnOrder,
223
258
  onSortingChange: adaptTableStateSetter(setSortingState),
@@ -326,9 +361,9 @@ export function DataGrid<T extends Record<string, unknown>>({
326
361
  items={columnOrder}
327
362
  strategy={horizontalListSortingStrategy}
328
363
  >
329
- <div className="flex flex-col flex-1 max-h-screen m-4 rounded border border-border-primary-normal overflow-hidden text-text-primary-normal">
364
+ <div className="flex flex-col flex-1 h-full w-full rounded border border-border-primary-normal overflow-hidden text-text-primary-normal">
330
365
  <div
331
- className="overflow-auto scrollbar-thin max-h-full relative contain-paint will-change-transform"
366
+ className="overflow-auto scrollbar-thin h-full relative contain-paint will-change-transform"
332
367
  ref={containerRef}
333
368
  >
334
369
  <table className="min-w-full grid">
@@ -432,6 +467,13 @@ export function DataGrid<T extends Record<string, unknown>>({
432
467
  style={{ display: "flex", width: virtualPaddingRight }}
433
468
  />
434
469
  ) : null}
470
+ {enableColumnSelector && (
471
+ <ColumnSelectorHeaderCell
472
+ table={table}
473
+ toggleColumnVisibility={toggleColumnVisibility}
474
+ resetColumnVisibility={resetColumnVisibility}
475
+ />
476
+ )}
435
477
  </tr>
436
478
  ))}
437
479
  </thead>
@@ -446,6 +488,7 @@ export function DataGrid<T extends Record<string, unknown>>({
446
488
  isLoadingMore={isLoadingMore}
447
489
  hasMore={hasMore}
448
490
  showFilterRow={showFilterRow}
491
+ enableColumnSelector={enableColumnSelector}
449
492
  />
450
493
  </table>
451
494
  </div>
@@ -551,6 +594,7 @@ interface TableBodyProps<TData extends RowData> {
551
594
  isLoadingMore: boolean;
552
595
  hasMore: boolean;
553
596
  showFilterRow: boolean;
597
+ enableColumnSelector?: boolean;
554
598
  }
555
599
 
556
600
  // Helpers
@@ -565,6 +609,7 @@ function TableBody<T>({
565
609
  isLoadingMore,
566
610
  hasMore,
567
611
  showFilterRow,
612
+ enableColumnSelector = false,
568
613
  }: TableBodyProps<T>) {
569
614
  const { rows } = table.getRowModel();
570
615
 
@@ -639,6 +684,7 @@ function TableBody<T>({
639
684
  virtualPaddingRight={virtualPaddingRight}
640
685
  virtualRow={virtualRow}
641
686
  showFilterRow={showFilterRow}
687
+ enableColumnSelector={enableColumnSelector}
642
688
  />
643
689
  );
644
690
  })}
@@ -670,6 +716,7 @@ interface TableBodyRowProps<T> {
670
716
  virtualPaddingRight: number | undefined;
671
717
  virtualRow: VirtualItem;
672
718
  showFilterRow: boolean;
719
+ enableColumnSelector?: boolean;
673
720
  }
674
721
 
675
722
  function TableBodyRow<T>({
@@ -680,6 +727,7 @@ function TableBodyRow<T>({
680
727
  virtualPaddingRight,
681
728
  virtualRow,
682
729
  showFilterRow,
730
+ enableColumnSelector = false,
683
731
  }: TableBodyRowProps<T>) {
684
732
  const visibleCells = row.getVisibleCells();
685
733
  const virtualColumns = columnVirtualizer.getVirtualItems();
@@ -738,6 +786,8 @@ function TableBodyRow<T>({
738
786
  // fake empty column to the right for virtualization scroll padding
739
787
  <td style={{ display: "flex", width: virtualPaddingRight }} />
740
788
  ) : null}
789
+
790
+ {enableColumnSelector && <td></td>}
741
791
  </tr>
742
792
  );
743
793
  }
@@ -773,6 +823,84 @@ const LoadingCell = <T extends RowData>({
773
823
  );
774
824
  };
775
825
 
826
+ function ColumnSelectorHeaderCell<T>({
827
+ table,
828
+ toggleColumnVisibility,
829
+ resetColumnVisibility,
830
+ }: {
831
+ table: Table<T>;
832
+ toggleColumnVisibility: (id: string, isVisible: boolean) => void;
833
+ resetColumnVisibility: () => void;
834
+ }) {
835
+ const ref = useRef<HTMLElement>(null);
836
+ const [show, setShow] = useState(false);
837
+
838
+ return (
839
+ <DataGridCell
840
+ width="48"
841
+ type="header"
842
+ color="text-secondary-normal"
843
+ ref={ref}
844
+ >
845
+ <Button
846
+ onClick={() => setShow((prev) => !prev)}
847
+ variant="navigation"
848
+ iconOnly
849
+ leftIcon={<Icon name="tune" />}
850
+ ></Button>
851
+ <Menu
852
+ positionTo={ref}
853
+ position="bottom-right"
854
+ show={show}
855
+ setShow={setShow}
856
+ >
857
+ <Button
858
+ variant="tertiary"
859
+ onClick={() => {
860
+ resetColumnVisibility();
861
+ setShow(false);
862
+ }}
863
+ >
864
+ Reset to default
865
+ </Button>
866
+ {table.getAllColumns().map((column) => (
867
+ <ColumnSelectorMenuOption
868
+ key={column.id}
869
+ column={column}
870
+ toggleColumnVisibility={toggleColumnVisibility}
871
+ />
872
+ ))}
873
+ </Menu>
874
+ </DataGridCell>
875
+ );
876
+ }
877
+
878
+ function ColumnSelectorMenuOption<T>({
879
+ column,
880
+ toggleColumnVisibility,
881
+ }: {
882
+ column: Column<T, unknown>;
883
+ toggleColumnVisibility: (id: string, isVisible: boolean) => void;
884
+ }) {
885
+ const [isVisible, setIsVisible] = useState(column.getIsVisible());
886
+ const label =
887
+ typeof column.columnDef.header === "string"
888
+ ? column.columnDef.header
889
+ : null;
890
+ return (
891
+ <MenuOption selected={isVisible} defaultChecked={isVisible}>
892
+ <Checkbox
893
+ label={label ?? "Unknown"}
894
+ checked={isVisible}
895
+ onChange={(e) => {
896
+ setIsVisible(e.target.checked);
897
+ toggleColumnVisibility(column.id, e.target.checked);
898
+ }}
899
+ />
900
+ </MenuOption>
901
+ );
902
+ }
903
+
776
904
  function getSortIcon(sort: SortDirection | false, nextSort = false) {
777
905
  const iconClassName = clsx(
778
906
  "text-icon-on-action-primary-normal",
@@ -807,6 +935,7 @@ declare module "@tanstack/react-table" {
807
935
  locked?: boolean;
808
936
  checkbox?: boolean;
809
937
  headerWidth?: string;
938
+ visible?: boolean;
810
939
  filterRowCell?: ({
811
940
  header,
812
941
  table,
@@ -7,6 +7,7 @@ import { Checkbox } from "./Checkbox";
7
7
  import { OptionPill } from "./OptionPill";
8
8
  import clsx from "clsx";
9
9
  import { Link } from "./Link";
10
+ import { Search } from "./Search";
10
11
  import {
11
12
  baseTransition,
12
13
  componentGap,
@@ -23,8 +24,19 @@ type FilterGroupProps = {
23
24
  showMore?: boolean;
24
25
  type?: "link" | "checkbox" | "summary";
25
26
  onShowMore?: () => void;
26
- onClearAll?: () => void; // ✅ NEW
27
- };
27
+ onClearAll?: () => void;
28
+ } & (
29
+ | {
30
+ showSearchField: true;
31
+ searchValue: string;
32
+ onSearchChange: React.ChangeEventHandler<HTMLInputElement>;
33
+ }
34
+ | {
35
+ showSearchField?: false | undefined;
36
+ searchValue?: string;
37
+ onSearchChange?: React.ChangeEventHandler<HTMLInputElement>;
38
+ }
39
+ );
28
40
 
29
41
  export const FilterGroup = ({
30
42
  label,
@@ -34,6 +46,9 @@ export const FilterGroup = ({
34
46
  onShowMore,
35
47
  onClearAll,
36
48
  children,
49
+ showSearchField = false,
50
+ searchValue,
51
+ onSearchChange,
37
52
  ...props
38
53
  }: ComponentProps<"div"> & FilterGroupProps) => {
39
54
  const isSummary = type === "summary";
@@ -110,6 +125,14 @@ export const FilterGroup = ({
110
125
  "mt-mobile-component-gap desktop:mt-desktop-component-gap compact:mt-desktop-compact-component-gap",
111
126
  )}
112
127
  >
128
+ {!isSummary && showSearchField && (
129
+ <Search
130
+ style={{ marginBottom: '2px' }}
131
+ onChange={onSearchChange}
132
+ value={searchValue}
133
+ />
134
+ )}
135
+
113
136
  <div className={clsx(isSummary && `flex flex-col ${componentGap}`)}>
114
137
  {visibleChildren}
115
138
  </div>
@@ -251,6 +251,7 @@ export const Input = ({
251
251
  const baseProps = {
252
252
  ...props,
253
253
  ...getDecimalPlaceholder(decimals),
254
+ value: propValue
254
255
  };
255
256
 
256
257
  switch (variant) {
@@ -329,7 +330,9 @@ export const Input = ({
329
330
 
330
331
  case "uom":
331
332
  return uom ? (
332
- <span className="text-text-secondary-normal uppercase">{uom}</span>
333
+ <span className="text-text-secondary-normal uppercase">
334
+ {uom.slice(0, 4)}
335
+ </span>
333
336
  ) : null;
334
337
 
335
338
  case "percentage":
@@ -32,8 +32,9 @@ export const MainBar = ({
32
32
  return (
33
33
  <div
34
34
  className={clsx(
35
+ "min-h-mobile-container-padding",
35
36
  "bg-background-brand-normal items-center justify-between",
36
- !mobileLeft && !mobileRight ? "hidden desktop:flex" : "flex",
37
+ "flex",
37
38
  layoutGroupGap,
38
39
  containerPaddingX,
39
40
  footer ? containerPaddingY : componentPaddingYUsingComponentGap,
@@ -1,7 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  import clsx from "clsx";
4
- import { ComponentProps, ReactNode, RefObject, useEffect, useRef, useState } from "react";
4
+ import {
5
+ ComponentProps,
6
+ ReactNode,
7
+ RefObject,
8
+ useEffect,
9
+ useRef,
10
+ useState,
11
+ } from "react";
5
12
  import { createPortal } from "react-dom";
6
13
  import { useMenuPosition } from "./useMenuSystem";
7
14
  import { findDocumentRoot } from "../utils";
@@ -53,7 +60,7 @@ export const Menu = ({
53
60
  isOpen: show,
54
61
  setIsOpen: setShow,
55
62
  menuRef: internalRef,
56
- topOffset
63
+ topOffset,
57
64
  },
58
65
  );
59
66
 
@@ -131,7 +138,7 @@ export const Menu = ({
131
138
  ...props.style,
132
139
  maxHeight: customMaxHeight || maxHeight,
133
140
  ...menuPosition,
134
- minWidth: useDefaultMinWidth ? '212px' : menuPosition.minWidth
141
+ minWidth: useDefaultMinWidth ? "212px" : menuPosition.minWidth,
135
142
  }}
136
143
  onKeyDown={handleKeydown}
137
144
  onMouseDown={stopPropagation}
@@ -247,7 +254,7 @@ export const Menu = ({
247
254
  block: "nearest",
248
255
  behavior: "instant",
249
256
  });
250
-
257
+
251
258
  if (autoFocusOff) {
252
259
  return;
253
260
  }
@@ -0,0 +1,135 @@
1
+ import clsx from "clsx";
2
+ import { Icon } from "./Icon";
3
+ import { ComponentProps } from "react";
4
+ import { Stack } from "./Stack";
5
+ import { Button } from "./Button";
6
+ import { Theme } from "./Theme";
7
+ import { Heading3 } from "./Heading";
8
+ import { Paragraph } from "./Paragraph";
9
+
10
+ export type RowData = Record<string, unknown>;
11
+
12
+ export type MobileColumnDef<T extends RowData> = {
13
+ header: string;
14
+ accessorKey: keyof T;
15
+ show?: boolean;
16
+
17
+ cell?: (info: { row: T }) => React.ReactNode;
18
+ };
19
+
20
+ export function MobileDataGrid<T extends RowData>({
21
+ columns,
22
+ data,
23
+ header,
24
+ getId,
25
+ renderLink,
26
+ renderChevron,
27
+ }: {
28
+ columns: MobileColumnDef<T>[];
29
+ data: T[];
30
+ header: string;
31
+ getId: (data: T) => string | number | undefined;
32
+ renderLink?: (data: T) => React.ReactNode;
33
+ renderChevron?: (data: T) => React.ReactNode;
34
+ } & ComponentProps<"div">) {
35
+ return (
36
+ <div
37
+ className={clsx(
38
+ "rounded",
39
+ "overflow-hidden",
40
+ "divide-y divide-border-primary-normal",
41
+ "border border-border-primary-normal",
42
+ "overflow-y-scroll scrollbar-thin",
43
+ )}
44
+ >
45
+ <MobileDataGridHeader header={header} />
46
+ {data.map((item) => (
47
+ <MobileDataGridCard
48
+ data={item}
49
+ key={getId(item)}
50
+ columns={columns}
51
+ renderLink={renderLink}
52
+ renderChevron={renderChevron}
53
+ />
54
+ ))}
55
+ </div>
56
+ );
57
+ }
58
+
59
+ function MobileDataGridHeader({ header }: { header: string }) {
60
+ return (
61
+ <div className="sticky top-0">
62
+ <Theme theme="brand">
63
+ <Stack
64
+ horizontal
65
+ items="start"
66
+ justify="center"
67
+ backgroundColor="background-primary-normal"
68
+ padding
69
+ sizing="component"
70
+ >
71
+ <Heading3 as="span" color="text-primary-normal">
72
+ {header}
73
+ </Heading3>
74
+ </Stack>
75
+ </Theme>
76
+ </div>
77
+ );
78
+ }
79
+
80
+ function MobileDataGridCard<T extends RowData>({
81
+ data,
82
+ columns,
83
+ renderLink,
84
+ renderChevron,
85
+ }: {
86
+ data: T;
87
+ columns: MobileColumnDef<T>[];
88
+ renderLink?: (data: T) => React.ReactNode;
89
+ renderChevron?: (data: T) => React.ReactNode;
90
+ }) {
91
+ return (
92
+ <div>
93
+ <Stack sizing="component" padding>
94
+ <Stack horizontal horizontalMobile items="center" justify="between">
95
+ {renderLink && renderLink(data)}
96
+ <Stack horizontal horizontalMobile items="center" justify="end">
97
+ <Button
98
+ iconOnly
99
+ variant="tertiary"
100
+ onClick={() => console.log("Edit", data.id)}
101
+ leftIcon={<Icon name="docs" />}
102
+ ></Button>
103
+ <Button
104
+ iconOnly
105
+ variant="tertiary"
106
+ onClick={() => console.log("Edit", data.id)}
107
+ leftIcon={<Icon name="swap_vert" />}
108
+ ></Button>
109
+ </Stack>
110
+ </Stack>
111
+
112
+ {columns
113
+ .filter((x) => x.show)
114
+ .map((column) => (
115
+ <div
116
+ key={String(column.accessorKey)}
117
+ className="mb-2 grid grid-cols-2"
118
+ >
119
+ <Paragraph color="text-secondary-normal" className="text-left">
120
+ {column.header}:
121
+ </Paragraph>{" "}
122
+ {column.cell
123
+ ? column.cell({ row: data })
124
+ : String(data[column.accessorKey])}
125
+ </div>
126
+ ))}
127
+ </Stack>
128
+ {renderChevron && (
129
+ <Stack items="center" justify="center" horizontal horizontalMobile>
130
+ {renderChevron(data)}
131
+ </Stack>
132
+ )}
133
+ </div>
134
+ );
135
+ }
@@ -9,6 +9,7 @@ import { ModalScrim } from "./ModalScrim";
9
9
  import { createPortal } from "react-dom";
10
10
  import { findDocumentRoot } from "../utils";
11
11
  import { usePrevious } from "react-use";
12
+ import { useMatchesMobile } from "./useMatchesMedia";
12
13
  import { useMounted } from "./useMounted";
13
14
 
14
15
  type ModalProps = PropsWithChildren<{
@@ -20,6 +21,10 @@ type ModalProps = PropsWithChildren<{
20
21
  onContinue?: () => void;
21
22
  closeOnBackdropClick?: boolean;
22
23
  showButtons?: boolean;
24
+ hideCloseIcon?: boolean;
25
+ headerIcon?: React.ReactNode;
26
+ fixedHeightScrolling?: boolean;
27
+ customActions?: React.ReactNode;
23
28
  }>;
24
29
 
25
30
  const fadeInScale = (element: HTMLElement, duration = 300) =>
@@ -80,16 +85,19 @@ const whenAllAnimationsFinish = (
80
85
 
81
86
  const sizes = {
82
87
  small: {
83
- sizeClass: "max-w-120",
88
+ sizeClass: "max-h-screen desktop:max-w-120 rounded-sm",
84
89
  },
85
90
  medium: {
86
- sizeClass: "max-w-180",
91
+ sizeClass:
92
+ "desktop:max-w-180 w-screen desktop:h-fit h-screen desktop:w-full max-w-240",
87
93
  },
88
94
  large: {
89
- sizeClass: "max-w-240",
95
+ sizeClass:
96
+ "desktop:max-w-240 w-screen desktop:h-fit h-screen desktop:w-full max-w-240",
90
97
  },
91
98
  "x-large": {
92
- sizeClass: "max-w-300",
99
+ sizeClass:
100
+ "desktop:max-w-300 w-screen desktop:h-fit h-screen desktop:w-full max-w-240",
93
101
  },
94
102
  };
95
103
 
@@ -103,6 +111,10 @@ export const Modal = ({
103
111
  onContinue,
104
112
  closeOnBackdropClick = true,
105
113
  showButtons = false,
114
+ hideCloseIcon = false,
115
+ headerIcon,
116
+ fixedHeightScrolling = false,
117
+ customActions,
106
118
  }: ModalProps) => {
107
119
  const mounted = useMounted();
108
120
 
@@ -111,8 +123,11 @@ export const Modal = ({
111
123
 
112
124
  const wasOpen = usePrevious(open);
113
125
 
126
+ const isMobile = useMatchesMobile();
127
+
128
+ const computedFixedHeightScrolling = isMobile || fixedHeightScrolling;
129
+
114
130
  useEffect(() => {
115
- console.log("was open", wasOpen, open);
116
131
  if (!mounted) return;
117
132
  if (!modalRef.current || !bgRef.current) {
118
133
  console.error("Modal or background reference is not set.");
@@ -120,7 +135,6 @@ export const Modal = ({
120
135
  }
121
136
  if (wasOpen === undefined) return;
122
137
  if (wasOpen && !open) {
123
- console.log('"Closing modal"');
124
138
  const modalAnimation = fadeOutScale(modalRef.current);
125
139
  const bgAnimation = bgFadeOut(bgRef.current);
126
140
  whenAllAnimationsFinish([modalAnimation, bgAnimation], () => {
@@ -129,7 +143,6 @@ export const Modal = ({
129
143
  }
130
144
  });
131
145
  } else if (!wasOpen && open) {
132
- console.log('"Opening modal"');
133
146
  fadeInScale(modalRef.current);
134
147
  bgFadeIn(bgRef.current);
135
148
  }
@@ -163,13 +176,40 @@ export const Modal = ({
163
176
  };
164
177
  }, [open, handleKeyDown]);
165
178
 
179
+ // Effect to lock scroll when modal is open
180
+ useEffect(() => {
181
+ if (!open) return;
182
+
183
+ const scrollY = window.scrollY;
184
+ const body = document.body;
185
+
186
+ // Lock scroll
187
+ body.style.position = "fixed";
188
+ body.style.top = `-${scrollY}px`;
189
+ body.style.left = "0";
190
+ body.style.right = "0";
191
+ body.style.overflow = "hidden";
192
+ body.style.width = "100%";
193
+
194
+ return () => {
195
+ // Restore scroll
196
+ body.style.position = "";
197
+ body.style.top = "";
198
+ body.style.left = "";
199
+ body.style.right = "";
200
+ body.style.overflow = "";
201
+ body.style.width = "";
202
+
203
+ window.scrollTo(0, scrollY);
204
+ };
205
+ }, [open]);
206
+
166
207
  const { sizeClass } = sizes[size] ?? sizes.small;
167
208
 
168
209
  const backgroundClickHandler = useCallback(
169
210
  (e: React.MouseEvent<HTMLElement>) => {
170
211
  const target = e.target as HTMLElement;
171
212
  const currentTarget = e.currentTarget as HTMLElement;
172
- console.log(currentTarget, target, currentTarget.contains(target));
173
213
  if (currentTarget.contains(target) && currentTarget !== target) {
174
214
  e.stopPropagation();
175
215
  return;
@@ -187,20 +227,40 @@ export const Modal = ({
187
227
  }
188
228
 
189
229
  return createPortal(
190
- <ModalScrim ref={bgRef} show={open} onClick={backgroundClickHandler}>
230
+ <ModalScrim
231
+ size={size}
232
+ ref={bgRef}
233
+ show={open}
234
+ onClick={backgroundClickHandler}
235
+ >
191
236
  <div
192
237
  ref={modalRef}
193
238
  className={clsx(
194
- "bg-white shadow-md rounded-sm flex flex-col overflow-hidden max-h-[calc(100vh-32px)] w-full opacity-0",
239
+ "bg-white shadow-md rounded-sm flex flex-col overflow-hidden w-full opacity-0 h-fit",
240
+ computedFixedHeightScrolling &&
241
+ "desktop:max-h-[calc(100vh-32px)] desktop:h-auto",
195
242
  className,
196
243
  sizeClass,
197
244
  )}
198
245
  onClick={(e) => e.stopPropagation()}
199
246
  >
200
- <ModalHeader title={title} onClose={handleClose} />
201
- {children && <ModalContent>{children}</ModalContent>}
247
+ <ModalHeader
248
+ title={title}
249
+ onClose={handleClose}
250
+ hideCloseIcon={hideCloseIcon}
251
+ headerIcon={headerIcon}
252
+ />
253
+ {children && (
254
+ <ModalContent fixedHeightScrolling={computedFixedHeightScrolling}>
255
+ {children}
256
+ </ModalContent>
257
+ )}
202
258
  {showButtons && (
203
- <ModalButtons onClose={handleClose} onContinue={onContinue} />
259
+ <ModalButtons
260
+ onClose={handleClose}
261
+ onContinue={onContinue}
262
+ customActions={customActions}
263
+ />
204
264
  )}
205
265
  </div>
206
266
  </ModalScrim>,