@startdownnotez404/ui 1.3.5 → 1.3.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 (254) hide show
  1. package/dist/AutocompleteField-653233JU.mjs +203 -0
  2. package/dist/AutocompleteField-653233JU.mjs.map +1 -0
  3. package/dist/AvatarField-KFASMVZU.mjs +378 -0
  4. package/dist/AvatarField-KFASMVZU.mjs.map +1 -0
  5. package/dist/{DateField-ZYMZFHL4.mjs → DateField-CDJ6W6XF.mjs} +19 -7
  6. package/dist/DateField-CDJ6W6XF.mjs.map +1 -0
  7. package/dist/DateRangeField-ZWSFT5KV.mjs +118 -0
  8. package/dist/DateRangeField-ZWSFT5KV.mjs.map +1 -0
  9. package/dist/{DateTimeField-TPTJ7YIZ.mjs → DateTimeField-SFAF4I6A.mjs} +36 -11
  10. package/dist/DateTimeField-SFAF4I6A.mjs.map +1 -0
  11. package/dist/FileUploadField-TSNCSLXX.mjs +101 -0
  12. package/dist/FileUploadField-TSNCSLXX.mjs.map +1 -0
  13. package/dist/{JSONEditorField-TMRWGXVR.mjs → JSONEditorField-3KXC2GOG.mjs} +7 -6
  14. package/dist/{JSONEditorField-TMRWGXVR.mjs.map → JSONEditorField-3KXC2GOG.mjs.map} +1 -1
  15. package/dist/{PopperMenu-LJ36RPBW.mjs → PopperMenu-PSHLKIEZ.mjs} +26 -12
  16. package/dist/{PopperMenu-LJ36RPBW.mjs.map → PopperMenu-PSHLKIEZ.mjs.map} +1 -1
  17. package/dist/{TelField-LOGRVZ4I.mjs → TelField-FRQT2UBJ.mjs} +8 -7
  18. package/dist/{TelField-LOGRVZ4I.mjs.map → TelField-FRQT2UBJ.mjs.map} +1 -1
  19. package/dist/TimeField-XVWXBJID.mjs +94 -0
  20. package/dist/TimeField-XVWXBJID.mjs.map +1 -0
  21. package/dist/alert.d.mts +148 -18
  22. package/dist/alert.d.ts +148 -18
  23. package/dist/alert.js +698 -254
  24. package/dist/alert.js.map +1 -1
  25. package/dist/alert.mjs +46 -10
  26. package/dist/autocomplete.d.mts +438 -4
  27. package/dist/autocomplete.d.ts +438 -4
  28. package/dist/autocomplete.js +632 -21
  29. package/dist/autocomplete.js.map +1 -1
  30. package/dist/autocomplete.mjs +26 -7
  31. package/dist/avatar.js +2 -1
  32. package/dist/avatar.js.map +1 -1
  33. package/dist/avatar.mjs +12 -11
  34. package/dist/box.mjs +2 -1
  35. package/dist/button.mjs +3 -2
  36. package/dist/chart.mjs +3 -2
  37. package/dist/checkbox.mjs +3 -2
  38. package/dist/chunk-2FK24ZPJ.mjs +78 -0
  39. package/dist/chunk-2FK24ZPJ.mjs.map +1 -0
  40. package/dist/{chunk-V26V2S3W.mjs → chunk-3O3N6X6D.mjs} +3 -3
  41. package/dist/{chunk-Y74ALKBL.mjs → chunk-4MSPA7U7.mjs} +11 -9
  42. package/dist/{chunk-Y74ALKBL.mjs.map → chunk-4MSPA7U7.mjs.map} +1 -1
  43. package/dist/{chunk-24XDGNJ6.mjs → chunk-4P45Z5LR.mjs} +63 -41
  44. package/dist/chunk-4P45Z5LR.mjs.map +1 -0
  45. package/dist/chunk-4SSJY32J.mjs +1182 -0
  46. package/dist/chunk-4SSJY32J.mjs.map +1 -0
  47. package/dist/{chunk-XJ2SXC2Q.mjs → chunk-6B6I27TT.mjs} +18 -16
  48. package/dist/{chunk-XJ2SXC2Q.mjs.map → chunk-6B6I27TT.mjs.map} +1 -1
  49. package/dist/chunk-6JKMEH2L.mjs +205 -0
  50. package/dist/chunk-6JKMEH2L.mjs.map +1 -0
  51. package/dist/{chunk-IN3O4R7Q.mjs → chunk-7O526A2D.mjs} +6 -4
  52. package/dist/{chunk-IN3O4R7Q.mjs.map → chunk-7O526A2D.mjs.map} +1 -1
  53. package/dist/chunk-AFLEG5ZC.mjs +28 -0
  54. package/dist/chunk-AFLEG5ZC.mjs.map +1 -0
  55. package/dist/{chunk-UGMRJMFZ.mjs → chunk-BO5CU4ZM.mjs} +4 -4
  56. package/dist/{chunk-JIU5GVM7.mjs → chunk-D4XPNSSI.mjs} +5 -3
  57. package/dist/{chunk-JIU5GVM7.mjs.map → chunk-D4XPNSSI.mjs.map} +1 -1
  58. package/dist/chunk-DPIMA5IO.mjs +72 -0
  59. package/dist/chunk-DPIMA5IO.mjs.map +1 -0
  60. package/dist/chunk-F2CGFVIZ.mjs +83 -0
  61. package/dist/chunk-F2CGFVIZ.mjs.map +1 -0
  62. package/dist/{chunk-R5MKQN6D.mjs → chunk-FBLSJQWK.mjs} +3 -3
  63. package/dist/{chunk-BGB7JHIU.mjs → chunk-FMGZCOJC.mjs} +5 -3
  64. package/dist/{chunk-BGB7JHIU.mjs.map → chunk-FMGZCOJC.mjs.map} +1 -1
  65. package/dist/{chunk-UTVSYS6S.mjs → chunk-FNSIQ2B7.mjs} +18 -6
  66. package/dist/chunk-FNSIQ2B7.mjs.map +1 -0
  67. package/dist/{chunk-JWANK42G.mjs → chunk-FUZ2JNTZ.mjs} +3 -3
  68. package/dist/{chunk-CRYIEYZZ.mjs → chunk-HAJWE62X.mjs} +66 -42
  69. package/dist/chunk-HAJWE62X.mjs.map +1 -0
  70. package/dist/{chunk-CWFWRZWU.mjs → chunk-KSN33A6I.mjs} +3 -2
  71. package/dist/{chunk-CWFWRZWU.mjs.map → chunk-KSN33A6I.mjs.map} +1 -1
  72. package/dist/chunk-KYTHGFFY.mjs +866 -0
  73. package/dist/chunk-KYTHGFFY.mjs.map +1 -0
  74. package/dist/{chunk-QKGCW37O.mjs → chunk-LDFM46LV.mjs} +5 -3
  75. package/dist/{chunk-QKGCW37O.mjs.map → chunk-LDFM46LV.mjs.map} +1 -1
  76. package/dist/chunk-LQNDBPHU.mjs +142 -0
  77. package/dist/chunk-LQNDBPHU.mjs.map +1 -0
  78. package/dist/{chunk-E3I2VDHZ.mjs → chunk-M2PYXSAF.mjs} +6 -4
  79. package/dist/{chunk-E3I2VDHZ.mjs.map → chunk-M2PYXSAF.mjs.map} +1 -1
  80. package/dist/{chunk-DELCADNF.mjs → chunk-ODVKRIVN.mjs} +30 -30
  81. package/dist/{chunk-HR3A4H4E.mjs → chunk-PEJL2T2K.mjs} +13 -11
  82. package/dist/{chunk-HR3A4H4E.mjs.map → chunk-PEJL2T2K.mjs.map} +1 -1
  83. package/dist/{chunk-OGNGPI3M.mjs → chunk-PL55YKT4.mjs} +2 -2
  84. package/dist/{chunk-S6EZVRZC.mjs → chunk-PNSJC6PC.mjs} +5 -28
  85. package/dist/chunk-PNSJC6PC.mjs.map +1 -0
  86. package/dist/{chunk-TDRA5EZI.mjs → chunk-PUREEN2J.mjs} +7 -7
  87. package/dist/chunk-QFS5CENY.mjs +659 -0
  88. package/dist/chunk-QFS5CENY.mjs.map +1 -0
  89. package/dist/chunk-RSN7NH2J.mjs +250 -0
  90. package/dist/chunk-RSN7NH2J.mjs.map +1 -0
  91. package/dist/{chunk-UDREPVEY.mjs → chunk-RVSMEZE3.mjs} +12 -78
  92. package/dist/chunk-RVSMEZE3.mjs.map +1 -0
  93. package/dist/{chunk-SRWPHN2N.mjs → chunk-S64IYJ6Y.mjs} +2 -2
  94. package/dist/{chunk-ZG3NQI77.mjs → chunk-SMD7OEUW.mjs} +6 -4
  95. package/dist/{chunk-ZG3NQI77.mjs.map → chunk-SMD7OEUW.mjs.map} +1 -1
  96. package/dist/{chunk-NJYNJLT7.mjs → chunk-SWFB3A3G.mjs} +2 -2
  97. package/dist/{chunk-RXBQ7KXF.mjs → chunk-USXGNKWJ.mjs} +98 -44
  98. package/dist/chunk-USXGNKWJ.mjs.map +1 -0
  99. package/dist/{chunk-OJV6V7YZ.mjs → chunk-VL7V52YD.mjs} +27 -20
  100. package/dist/chunk-VL7V52YD.mjs.map +1 -0
  101. package/dist/{chunk-2ZZJTBTE.mjs → chunk-WJZ3IYET.mjs} +2 -2
  102. package/dist/chunk-XAJAMVAG.mjs +1720 -0
  103. package/dist/chunk-XAJAMVAG.mjs.map +1 -0
  104. package/dist/chunk-YIJ5QVJ6.mjs +277 -0
  105. package/dist/chunk-YIJ5QVJ6.mjs.map +1 -0
  106. package/dist/{chunk-T6AMRENK.mjs → chunk-YRW5NKD7.mjs} +148 -112
  107. package/dist/chunk-YRW5NKD7.mjs.map +1 -0
  108. package/dist/chunk-ZMJKG2UI.mjs +71 -0
  109. package/dist/chunk-ZMJKG2UI.mjs.map +1 -0
  110. package/dist/confirm.d.mts +48 -0
  111. package/dist/confirm.d.ts +48 -0
  112. package/dist/confirm.js +334 -0
  113. package/dist/confirm.js.map +1 -0
  114. package/dist/confirm.mjs +20 -0
  115. package/dist/datePicker.d.mts +256 -14
  116. package/dist/datePicker.d.ts +256 -14
  117. package/dist/datePicker.js +1624 -145
  118. package/dist/datePicker.js.map +1 -1
  119. package/dist/datePicker.mjs +19 -6
  120. package/dist/dialog.d.mts +166 -0
  121. package/dist/dialog.d.ts +166 -0
  122. package/dist/dialog.js +362 -0
  123. package/dist/dialog.js.map +1 -0
  124. package/dist/dialog.mjs +45 -0
  125. package/dist/emptyState.d.mts +17 -0
  126. package/dist/emptyState.d.ts +17 -0
  127. package/dist/emptyState.js +253 -0
  128. package/dist/emptyState.js.map +1 -0
  129. package/dist/emptyState.mjs +12 -0
  130. package/dist/emptyState.mjs.map +1 -0
  131. package/dist/errorState.d.mts +18 -0
  132. package/dist/errorState.d.ts +18 -0
  133. package/dist/{displayFile.js → errorState.js} +107 -156
  134. package/dist/errorState.js.map +1 -0
  135. package/dist/errorState.mjs +15 -0
  136. package/dist/errorState.mjs.map +1 -0
  137. package/dist/fileUpload.d.mts +197 -0
  138. package/dist/fileUpload.d.ts +197 -0
  139. package/dist/fileUpload.js +1483 -0
  140. package/dist/fileUpload.js.map +1 -0
  141. package/dist/fileUpload.mjs +65 -0
  142. package/dist/fileUpload.mjs.map +1 -0
  143. package/dist/flowMap.mjs +7 -6
  144. package/dist/flowMap.mjs.map +1 -1
  145. package/dist/image.js +1195 -429
  146. package/dist/image.js.map +1 -1
  147. package/dist/image.mjs +8 -6
  148. package/dist/index.d.ts +7 -2
  149. package/dist/index.js +8606 -4087
  150. package/dist/index.js.map +1 -1
  151. package/dist/index.mjs +314 -152
  152. package/dist/inlineError.d.mts +16 -0
  153. package/dist/inlineError.d.ts +16 -0
  154. package/dist/inlineError.js +297 -0
  155. package/dist/inlineError.js.map +1 -0
  156. package/dist/inlineError.mjs +15 -0
  157. package/dist/inlineError.mjs.map +1 -0
  158. package/dist/input.mjs +8 -7
  159. package/dist/jsonEditor.mjs +3 -2
  160. package/dist/list.mjs +7 -6
  161. package/dist/loading.mjs +8 -6
  162. package/dist/markdown.mjs +7 -6
  163. package/dist/markdown.mjs.map +1 -1
  164. package/dist/menu.mjs +9 -8
  165. package/dist/modal.js +2 -1
  166. package/dist/modal.js.map +1 -1
  167. package/dist/modal.mjs +7 -5
  168. package/dist/process.d.mts +33 -75
  169. package/dist/process.d.ts +33 -75
  170. package/dist/process.js +1275 -203
  171. package/dist/process.js.map +1 -1
  172. package/dist/process.mjs +12 -9
  173. package/dist/scrollToLoad.mjs +4 -3
  174. package/dist/select.mjs +10 -9
  175. package/dist/skeleton.d.mts +15 -1
  176. package/dist/skeleton.d.ts +15 -1
  177. package/dist/skeleton.js +114 -2
  178. package/dist/skeleton.js.map +1 -1
  179. package/dist/skeleton.mjs +6 -3
  180. package/dist/stepper.mjs +4 -3
  181. package/dist/tab.mjs +10 -9
  182. package/dist/table.d.mts +269 -85
  183. package/dist/table.d.ts +269 -85
  184. package/dist/table.js +5102 -3153
  185. package/dist/table.js.map +1 -1
  186. package/dist/table.mjs +21 -19
  187. package/dist/theme.js +1766 -432
  188. package/dist/theme.js.map +1 -1
  189. package/dist/theme.mjs +32 -25
  190. package/dist/timeline.mjs +4 -3
  191. package/dist/toast.d.mts +49 -0
  192. package/dist/toast.d.ts +49 -0
  193. package/dist/toast.js +175 -0
  194. package/dist/toast.js.map +1 -0
  195. package/dist/toast.mjs +9 -0
  196. package/dist/toast.mjs.map +1 -0
  197. package/dist/toggleButtonGroup.mjs +3 -2
  198. package/dist/useForm.d.mts +270 -86
  199. package/dist/useForm.d.ts +270 -86
  200. package/dist/useForm.js +4672 -2727
  201. package/dist/useForm.js.map +1 -1
  202. package/dist/useForm.mjs +18 -16
  203. package/dist/useSearch.mjs +13 -12
  204. package/dist/variablesRenderer.mjs +8 -7
  205. package/package.json +3 -3
  206. package/dist/AutocompleteField-ZKNU2IRR.mjs +0 -181
  207. package/dist/AutocompleteField-ZKNU2IRR.mjs.map +0 -1
  208. package/dist/AvatarField-SAODT3CZ.mjs +0 -275
  209. package/dist/AvatarField-SAODT3CZ.mjs.map +0 -1
  210. package/dist/DateField-ZYMZFHL4.mjs.map +0 -1
  211. package/dist/DateTimeField-TPTJ7YIZ.mjs.map +0 -1
  212. package/dist/FileUploadField-NTMWBJER.mjs +0 -78
  213. package/dist/FileUploadField-NTMWBJER.mjs.map +0 -1
  214. package/dist/chunk-24XDGNJ6.mjs.map +0 -1
  215. package/dist/chunk-27KYFU7R.mjs +0 -30
  216. package/dist/chunk-27KYFU7R.mjs.map +0 -1
  217. package/dist/chunk-AAH2O24U.mjs +0 -325
  218. package/dist/chunk-AAH2O24U.mjs.map +0 -1
  219. package/dist/chunk-CRYIEYZZ.mjs.map +0 -1
  220. package/dist/chunk-EEH7HACG.mjs +0 -249
  221. package/dist/chunk-EEH7HACG.mjs.map +0 -1
  222. package/dist/chunk-EKPULYPU.mjs +0 -497
  223. package/dist/chunk-EKPULYPU.mjs.map +0 -1
  224. package/dist/chunk-OJV6V7YZ.mjs.map +0 -1
  225. package/dist/chunk-RXBQ7KXF.mjs.map +0 -1
  226. package/dist/chunk-S6EZVRZC.mjs.map +0 -1
  227. package/dist/chunk-SGCUDWO3.mjs +0 -396
  228. package/dist/chunk-SGCUDWO3.mjs.map +0 -1
  229. package/dist/chunk-T6AMRENK.mjs.map +0 -1
  230. package/dist/chunk-UDREPVEY.mjs.map +0 -1
  231. package/dist/chunk-UTVSYS6S.mjs.map +0 -1
  232. package/dist/chunk-XIMFP6RB.mjs +0 -161
  233. package/dist/chunk-XIMFP6RB.mjs.map +0 -1
  234. package/dist/displayFile.d.mts +0 -95
  235. package/dist/displayFile.d.ts +0 -95
  236. package/dist/displayFile.js.map +0 -1
  237. package/dist/displayFile.mjs +0 -19
  238. package/dist/fileUploader.d.mts +0 -86
  239. package/dist/fileUploader.d.ts +0 -86
  240. package/dist/fileUploader.js +0 -722
  241. package/dist/fileUploader.js.map +0 -1
  242. package/dist/fileUploader.mjs +0 -16
  243. /package/dist/{chunk-V26V2S3W.mjs.map → chunk-3O3N6X6D.mjs.map} +0 -0
  244. /package/dist/{chunk-UGMRJMFZ.mjs.map → chunk-BO5CU4ZM.mjs.map} +0 -0
  245. /package/dist/{chunk-R5MKQN6D.mjs.map → chunk-FBLSJQWK.mjs.map} +0 -0
  246. /package/dist/{chunk-JWANK42G.mjs.map → chunk-FUZ2JNTZ.mjs.map} +0 -0
  247. /package/dist/{chunk-DELCADNF.mjs.map → chunk-ODVKRIVN.mjs.map} +0 -0
  248. /package/dist/{chunk-OGNGPI3M.mjs.map → chunk-PL55YKT4.mjs.map} +0 -0
  249. /package/dist/{chunk-TDRA5EZI.mjs.map → chunk-PUREEN2J.mjs.map} +0 -0
  250. /package/dist/{chunk-SRWPHN2N.mjs.map → chunk-S64IYJ6Y.mjs.map} +0 -0
  251. /package/dist/{chunk-NJYNJLT7.mjs.map → chunk-SWFB3A3G.mjs.map} +0 -0
  252. /package/dist/{chunk-2ZZJTBTE.mjs.map → chunk-WJZ3IYET.mjs.map} +0 -0
  253. /package/dist/{displayFile.mjs.map → confirm.mjs.map} +0 -0
  254. /package/dist/{fileUploader.mjs.map → dialog.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/elemental/Avatar/src/Avatar/Avatar.tsx","../src/components/elemental/Avatar/src/_utils/_const.ts","../src/components/elemental/Avatar/src/Avatar/themes.ts","../src/components/elemental/Avatar/src/Avatar/AvatarButton.tsx","../src/components/elemental/Avatar/src/StatusAvatar/StatusAvatar.tsx","../src/components/elemental/Avatar/src/StatusAvatar/theme.ts"],"sourcesContent":["import MuiAvatar, {type AvatarProps} from '@mui/material/Avatar'\nimport { CLASSNAMEs } from '@/_utils/_const/classNames';\nimport { Stack } from '@/ele/Box'\nimport { Skeleton } from '@/ele/Skeleton'\n\nimport { Subscript } from '@/ele/Typography'\n\nimport { AVATAR_SIZEs, AVATAR_SX, type Size } from '../_utils'\n\ninterface MuiAvatarProps {\n name?: string;\n src?: string;\n size?: Size;\n fontSize?: string | number;\n displayName?: boolean;\n direction?: 'column' | 'row';\n dim?: {\n width?: string | number;\n height?: string | number;\n };\n backgroundIcon?: React.ReactNode;\n}\n\n/**\n * A styled Mui Avatar component\n * \n * [Doc](https://mui.com/material-ui/api/avatar/)\n */\nexport default function Avatar(props: MuiAvatarProps) {\n const {\n name,\n src,\n size=\"md\", // sm, md, lg\n fontSize, \n displayName=true, \n direction=\"column\",\n dim={},\n backgroundIcon,\n ...rest\n } = props\n\n const h = dim.height || AVATAR_SIZEs[size]\n const w = dim.width || AVATAR_SIZEs[size]\n\n return (\n <Stack\n className={CLASSNAMEs.elemental.avatar.root}\n style={{\n '--AVATAR_SX': direction,\n '--gap': AVATAR_SX[direction]?.stackSX[size]?.gap,\n } as React.CSSProperties}\n sx={() => ({\n direction:\"var(--AVATAR_SX)\",\n gap: `calc(var(--gap) * 8px)`,\n justifyContent: \"center\",\n overflow: \"hidden\",\n })} \n alignItems=\"center\" direction={direction}>\n <AvatarSkel \n name={name} \n src={src} \n h={h} \n w={w} \n backgroundIcon={backgroundIcon} \n {...rest}\n />\n {name && displayName && <NameSkel name={name} direction={direction} fontSize={fontSize}/>}\n </Stack>\n )\n}\n\ninterface AvatarSkelProps extends Omit<AvatarProps, \"children\"> {\n name?: string;\n src?: string;\n h: string | number;\n w: string | number;\n backgroundIcon?: React.ReactNode;\n}\n\nfunction AvatarSkel(props: AvatarSkelProps) {\n const { name, src, h, w, backgroundIcon, ...rest } = props\n if(!name && !src) return <Skeleton variant=\"circular\" width={w} height={h} />\n if(backgroundIcon) return (<Stack sx={{\n position: 'relative', width: w, height: h,\n alignItems: 'center', justifyContent: 'center',\n \"&>svg\":{\n height: w, width: h,\n padding: '0.25em',\n borderRadius: '50%',\n },\n }}>{backgroundIcon}</Stack>)\n return (<NameAvatar name={name} src={src} h={h} w={w} {...rest}/>)\n}\n\ninterface NameSkelProps {\n name?: string;\n direction: 'column' | 'row';\n fontSize?: string | number;\n}\n\n/**\n * A Mui Skeleton component which used as a placeholder for loading image\n * \n * [Doc](https://mui.com/material-ui/api/skeleton/)\n */\nexport function NameSkel(props: NameSkelProps) {\n const { name, direction, fontSize } = props\n if(!name) return <Skeleton variant=\"text\" width={40} height={20} />\n\n const fs = typeof fontSize === 'number' ? `${fontSize}px` : fontSize\n return <Subscript fontSize={fs || AVATAR_SX[direction]?.fontSize} lineHeight=\"1.2\" \n style={{\n \"--fs-n\": fontSize || AVATAR_SX[direction]?.fontSize,\n \"--lh-n\": \"1.2\",\n } as React.CSSProperties}\n sx={{\n \"&.MuiTypography-root\":{\n whiteSpace:\"nowrap\",\n fontSize: \"var(--fs-n)\",\n lineHeight: \"var(--lh-n)\",\n WebkitLineClamp: \"3\",\n WebkitBoxOrient: \"vertical\",\n maxWidth: '-webkit-fill-available',\n lineBreak: 'anywhere',\n },\n }}>{name}</Subscript>\n\n}\n\ninterface NameAvatarProps extends Omit<AvatarProps, \"children\"> {\n name?: string;\n src?: string;\n h: string | number;\n w: string | number;\n}\n\nfunction NameAvatar(props: NameAvatarProps) {\n const { name, src, h, w, ...rest } = props\n return (\n <MuiAvatar \n {...stringAvatar(name,src)} \n {...rest} \n \n style={{\n '--w': typeof w === 'number' ? `${w}px` : w,\n '--h': typeof h === 'number' ? `${h}px` : h,\n '--fs': \"calc(var(--w) / 2)\", // half of the height, so it will be fit in the circle\n } as React.CSSProperties} \n sx={{\n \"&.MuiAvatar-root\":{\n fontSize: \"var(--fs)\",\n color: 'var(--avatar-color)',\n backgroundColor: 'transparent',\n width: 'var(--w)',\n height: 'var(--h)',\n },\n }}\n />)\n}\nfunction stringAvatar(name?:string,src?:string){\n if(src) return {src}\n if(!name) return { children: '' }\n\n const splitName = name.split(' ')\n const first = splitName[0] || ''\n const second = splitName[1] || ''\n const str = `${first[0] || ''}${second[0] || ''}`\n\n return {\n children: str,\n }\n}","import type { Size } from '../_utils'\n\nexport const AVATARBUTTON_STANDARD_DIMENSIONs = {\n xs:\"36px\",\n sm: \"100px\",\n md: \"120px\",\n lg: \"200px\",\n xl: \"240px\",\n} as const satisfies Record<Size, string>;\n\nexport const AVATAR_SIZEs = {\n xs: \"20px\",\n sm: \"24px\",\n md: \"40px\",\n lg: \"56px\",\n xl: \"80px\",\n} as const satisfies Record<Size, string>;\n\nexport const AVATAR_SX = {\n column:{\n stackSX:{\n xs: {gap: 0.5},\n sm: {gap: 0.5},\n md: {gap: 0.75},\n lg: {gap: 1},\n xl: {gap: 1},\n },\n fontSize: \"0.6rem\",\n },\n row:{\n stackSX:{\n xs: {gap: 0.75},\n sm: {gap: 0.75},\n md: {gap: 1},\n lg: {gap: 1.5},\n xl: {gap: 2},\n },\n fontSize: \"0.8rem\",\n }\n} as const satisfies {\n [key in 'column' | 'row']: {\n stackSX: Record<Size, {gap:number}>,\n fontSize: string,\n }\n};","import type { MuiComponentTheme } from '@/_utils/_types'\nimport type { SxProps, Theme } from '@mui/material/styles'\n\nexport const avatarTheme = {\n styleOverrides: {\n root: {\n '--avatar-bg': 'var(--mui-palette-action-selected)',\n '--avatar-color': 'var(--mui-palette-text-primary)',\n backgroundColor: 'var(--avatar-bg)',\n color: 'var(--avatar-color)',\n },\n },\n} as const satisfies MuiComponentTheme<'MuiAvatar'>\n\n/** Static palette aliases for AvatarButton root element */\nexport const avatarButtonRootSx: SxProps<Theme> = {\n '--avatar-button-text': 'var(--mui-palette-text-primary)',\n '--avatar-hover-icon-color': 'var(--mui-palette-text-subscript)',\n} as const satisfies SxProps<Theme>\n","import React from 'react'\nimport { IconButton } from '@/ele/Button'\nimport { Box } from '@/ele/Box'\n\nimport Avatar, { NameSkel } from './Avatar'\nimport { CLASSNAMEs } from '@/_utils/_const/classNames';\nimport { Size, AVATARBUTTON_STANDARD_DIMENSIONs } from '../_utils'\nimport { avatarButtonRootSx } from './themes'\nimport { mergeSx } from '@/_utils/_func'\n\nconst pos = {\n top: {dir:\"column-reverse\",gap:0.5,direction:\"column\"},\n bottom: {dir:\"column\",gap:0.5,direction:\"column\"},\n left: {dir:\"row-reverse\",gap:1,direction:\"row\"},\n right: {dir:\"row\",gap:1,direction:\"row\"},\n} as const\n\ninterface AvatarButtonProps {\n onClick?: React.ComponentProps<typeof IconButton>['onClick'];\n size?: Size;\n disabled?: boolean;\n dim?: React.ComponentProps<typeof Avatar>['dim'];\n\n backgroundUrl?: string;\n backgroundIcon?: React.ReactNode;\n icon?: React.ReactNode;\n fontSize?: string | number;\n\n name?: string; \n src?: string;\n showName?: boolean;\n namePosition?: keyof typeof pos;\n hasBorder?: boolean;\n 'aria-label'?: string;\n}\n\n/**\n * A clickable Mui Avatar component\n * \n * use button to wrap an Avatar component\n * \n * logic:\n * use backgroundIcon if any\n * then use backgroundUrl if any\n * then name if any\n */\nexport default function AvatarButton(props: AvatarButtonProps) {\n const {\n onClick,\n size=\"md\",\n disabled=false,\n dim,\n\n backgroundUrl=\"transparent\",\n icon=null,\n fontSize,\n\n name=\"\", \n src=\"\",\n showName=false, \n namePosition=\"bottom\",// namePosition: top, bottom, left, right\n \n backgroundIcon,\n hasBorder=true,\n 'aria-label': ariaLabel,\n } = props\n\n const _dim = {\n w: dim?.width ?? AVATARBUTTON_STANDARD_DIMENSIONs[size],\n h: dim?.height ?? AVATARBUTTON_STANDARD_DIMENSIONs[size],\n }\n\n return (\n <Box\n className={CLASSNAMEs.elemental.avatar.button}\n sx={mergeSx(avatarButtonRootSx, {\n display:\"flex\",\n flexDirection:pos[namePosition]?.dir,\n alignItems:\"center\",\n gap:pos[namePosition]?.gap,\n })}>\n <IconButton\n onClick={onClick}\n disabled={disabled}\n disableRipple\n aria-label={ariaLabel}\n style={{\n '--bg': backgroundUrl,\n '--bg-size': _dim.w,\n '--size': _dim.w,\n '--shadow': hasBorder ? 'var(--mui-palette-shadow-border-1)' : 'none',\n } as React.CSSProperties}\n sx={{\n '&.MuiButtonBase-root':{\n border:\"none\",\n position: 'relative',\n color:\"var(--avatar-button-text)\",\n background:\"var(--bg)\",\n backgroundSize:'var(--bg-size)',\n width:'var(--size)',\n height:'var(--size)',\n // allow overlay banner to fit the button\n padding: 0,\n \n // shadow\n boxShadow: \"var(--shadow)\",\n borderRadius:\"50%\",\n \n // hover effect\n '&:hover, &.Mui-focusVisible': {\n zIndex: 1,\n '& .MuiImageBackdrop-root': {\n opacity: 0.5,\n },\n '& .MuiImageMarked-root': {\n opacity: 0,\n },\n '& .MuiTypography-root': {\n border: '4px solid currentColor',\n },\n },\n },\n }} \n >\n <Box sx={{\n width:\"100%\",\n position:\"absolute\",\n top:0,\n left:0,\n right:0,\n bottom:0,\n zIndex:1,\n \"&>.MuiStack-root\":{\n width:\"100%\",\n height:\"100%\",\n maxWidth:\"100%\",\n maxHeight:\"100%\",\n },\n }}>\n <ImageBackdrop/>\n <HoverIcon icon={icon} />\n <Avatar\n name={name} src={src} backgroundIcon={backgroundIcon}\n displayName={false}\n dim={{\n width:_dim.w,\n height:_dim.h,\n }}\n />\n </Box>\n </IconButton>\n {showName && <NameSkel name={name} direction={pos[namePosition].direction} fontSize={fontSize}/>}\n </Box>\n\n )\n}\n\nfunction HoverIcon({ icon }: { icon: React.ReactNode }) {\n return (\n <Box className=\"HoverIcon-root\"\n sx={{\n position:\"absolute\",\n top:0,\n left:0,\n right:0,\n bottom:0,\n zIndex:2,\n \"&>*\":{display:\"none\"},\n \"&:hover>*\":{display:\"flex\"},\n borderRadius:\"50%\",\n }}>\n <Box sx={{\n width:\"100%\",\n height:\"100%\",\n display:\"none\",\n justifyContent:\"center\",\n alignItems:\"center\", \n color:\"var(--avatar-hover-icon-color)\",\n }}>\n {icon}\n </Box>\n </Box>\n )\n}\n\nfunction ImageBackdrop() {\n return (\n <Box component=\"span\"\n className=\"MuiImageBackdrop-root\"\n sx={{\n zIndex: 2,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: \"#000\", // photo overlay — CSS variable tokens cannot reliably target this layer\n opacity: 0,\n transition: \"opacity 0.3s\",\n borderRadius:\"50%\",\n }}/>\n )\n}","'use client'\nimport { styled } from '@mui/material/styles'\nimport { Badge } from '@/ele/Badge'\n\nimport { useMenu, MenuPopper } from '@/ele/Menu'\n\nimport { Avatar, AvatarButton } from '../Avatar'\nimport { statusAvatarRootSx } from './theme'\nimport { mergeSx } from '@/_utils/_func'\n\n// all the status that can be changed except offline\nconst USER_STATUSs = {\n online: 'online',\n away: 'away',\n busy: 'busy',\n offline: 'offline',\n invisible: 'invisible',\n} as const\nconst changable_status = Object.values(USER_STATUSs).filter(s=>s!=='offline')\ntype UserStatusTypes = typeof USER_STATUSs[keyof typeof USER_STATUSs]\n\n/**\n * StatusAvatar\n * @description: avatar of the participant with status\n * @param status - status of the participant\n * @param src - src of the avatar\n * @param name - name of the participant\n * \n * user status will be shown as a dot on the avatar\n */\nexport function Renderer(props:{\n status:UserStatusTypes;\n statusEditable?:boolean;\n handleStatusChange?:((status:UserStatusTypes)=>void);\n name:string;\n src?:string;\n\n slotProps?:{\n badge?:React.ComponentProps<typeof Badge>;\n avatar?:Partial<React.ComponentProps<typeof Avatar>>;\n avatarButton?:Partial<React.ComponentProps<typeof AvatarButton>>;\n };\n}){\n const {\n name, src,\n status, handleStatusChange,\n statusEditable,\n slotProps,\n } = props\n\n const p = useMenu({\n multiple: false,\n initSelected: [status],\n })\n return (\n <>\n <StyledBadge \n\n status={status}\n overlap=\"circular\"\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n variant=\"dot\"\n\n sx={mergeSx(statusAvatarRootSx, {\n height:\"fit-content\",\n })}\n >\n {statusEditable\n ?<AvatarButton name={name} src={src} {...slotProps?.avatarButton} onClick={p.onTriggerClickHandler}/>\n :<Avatar name={name} src={src} {...slotProps?.avatar} displayName={false}/>\n }\n </StyledBadge>\n <MenuPopper\n openMenuProps={p}\n options={changable_status.map((s)=>({\n id: s,\n label: s,\n onClick:()=>{\n p.closeHandler()\n if(handleStatusChange) handleStatusChange(s)\n },\n }))}\n />\n </>\n )\n}\nexport const status = USER_STATUSs\nexport type Status = UserStatusTypes\n\n/**\n * StyledBadge\n * @description: styled badge for the avatar\n * @param status - status of the participant\n * \n * use css variables to set the color and animation of the badge\n */\nconst StyledBadge = styled(Badge,{\n shouldForwardProp: p=> p!==\"status\"\n})<{status:UserStatusTypes}>(() => ({\n '& .MuiBadge-badge': {\n width:\"15%\",\n height:\"15%\",\n minWidth: '10px',\n minHeight: '10px',\n borderRadius: '50%',\n borderColor:\"transparent\",\n backgroundColor: 'var(--color)',\n color: 'var(--color)',\n boxShadow: `0 0 0 2px var(--status-badge-shadow)`,\n display:\"var(--display)\",\n '&::after': {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n animation: 'var(--animate)',\n border: '1px solid currentColor',\n content: '\"\"',\n },\n },\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(.8)',\n opacity: 1,\n },\n '100%': {\n transform: 'scale(2.4)',\n opacity: 0,\n },\n },\n\n variants:[\n {\n props: {status:USER_STATUSs.online},\n style: {\n '--color': 'var(--status-color-online)',\n '--animate': 'ripple 1.2s infinite ease-in-out', // ripple animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.away},\n style: {\n '--color': 'var(--status-color-away)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.busy},\n style: {\n '--color': 'var(--status-color-busy)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.offline,},\n style: {\n '--color': 'var(--status-color-offline)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.invisible,},\n style: {\n '--color': 'var(--status-color-offline)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n ]\n}))\n","import type { SxProps, Theme } from '@mui/material/styles'\n\nexport const statusAvatarRootSx: SxProps<Theme> = {\n\t'--status-badge-shadow': 'var(--mui-palette-background-default)',\n\t'--status-color-online': 'var(--mui-palette-success-main)',\n\t'--status-color-away': 'var(--mui-palette-warning-main)',\n\t'--status-color-busy': 'var(--mui-palette-error-main)',\n\t'--status-color-offline': 'var(--mui-palette-grey-500)',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,eAAmC;;;ACEnC,IAAM,mCAAmC;AAAA,EAC9C,IAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,IAAM,eAAe;AAAA,EAC1B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,IAAM,YAAY;AAAA,EACrB,QAAO;AAAA,IACH,SAAQ;AAAA,MACJ,IAAI,EAAC,KAAK,IAAG;AAAA,MACb,IAAI,EAAC,KAAK,IAAG;AAAA,MACb,IAAI,EAAC,KAAK,KAAI;AAAA,MACd,IAAI,EAAC,KAAK,EAAC;AAAA,MACX,IAAI,EAAC,KAAK,EAAC;AAAA,IACf;AAAA,IACA,UAAU;AAAA,EACd;AAAA,EACA,KAAI;AAAA,IACA,SAAQ;AAAA,MACJ,IAAI,EAAC,KAAK,KAAI;AAAA,MACd,IAAI,EAAC,KAAK,KAAI;AAAA,MACd,IAAI,EAAC,KAAK,EAAC;AAAA,MACX,IAAI,EAAC,KAAK,IAAG;AAAA,MACb,IAAI,EAAC,KAAK,EAAC;AAAA,IACf;AAAA,IACA,UAAU;AAAA,EACd;AACJ;;;ADMQ,SAaI,KAbJ;AAjBO,SAAR,OAAwB,OAAuB;AAClD,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAK;AAAA;AAAA,IACL;AAAA,IACA,cAAY;AAAA,IACZ,YAAU;AAAA,IACV,MAAI,CAAC;AAAA,IACL;AAAA,IACA,GAAG;AAAA,EACP,IAAI;AAEJ,QAAM,IAAI,IAAI,UAAU,aAAa,IAAI;AACzC,QAAM,IAAI,IAAI,SAAS,aAAa,IAAI;AAExC,SACI;AAAA,IAACA;AAAA,IAAA;AAAA,MACG,WAAW,WAAW,UAAU,OAAO;AAAA,MACvC,OAAO;AAAA,QACP,eAAe;AAAA,QACf,SAAS,UAAU,SAAS,GAAG,QAAQ,IAAI,GAAG;AAAA,MAClD;AAAA,MACA,IAAI,OAAO;AAAA,QACP,WAAU;AAAA,QACV,KAAK;AAAA,QACL,gBAAgB;AAAA,QAChB,UAAU;AAAA,MACd;AAAA,MACA,YAAW;AAAA,MAAS;AAAA,MAChB;AAAA;AAAA,UAAC;AAAA;AAAA,YACG;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACC,GAAG;AAAA;AAAA,QACR;AAAA,QACC,QAAQ,eAAe,oBAAC,YAAS,MAAY,WAAsB,UAAmB;AAAA;AAAA;AAAA,EAC3F;AAER;AAUA,SAAS,WAAW,OAAwB;AACxC,QAAM,EAAE,MAAM,KAAK,GAAG,GAAG,gBAAgB,GAAG,KAAK,IAAI;AACrD,MAAG,CAAC,QAAQ,CAAC,IAAK,QAAO,oBAACA,UAAA,EAAS,SAAQ,YAAW,OAAO,GAAG,QAAQ,GAAG;AAC3E,MAAG,eAAgB,QAAQ,oBAACA,UAAA,EAAM,IAAI;AAAA,IAClC,UAAU;AAAA,IAAY,OAAO;AAAA,IAAG,QAAQ;AAAA,IACxC,YAAY;AAAA,IAAU,gBAAgB;AAAA,IACtC,SAAQ;AAAA,MACJ,QAAQ;AAAA,MAAG,OAAO;AAAA,MAClB,SAAS;AAAA,MACT,cAAc;AAAA,IAClB;AAAA,EACJ,GAAI,0BAAe;AACnB,SAAQ,oBAAC,cAAW,MAAY,KAAU,GAAM,GAAO,GAAG,MAAK;AACnE;AAaO,SAAS,SAAS,OAAsB;AAC3C,QAAM,EAAE,MAAM,WAAW,SAAS,IAAI;AACtC,MAAG,CAAC,KAAM,QAAO,oBAACA,UAAA,EAAS,SAAQ,QAAO,OAAO,IAAI,QAAQ,IAAI;AAEjE,QAAM,KAAK,OAAO,aAAa,WAAW,GAAG,QAAQ,OAAO;AAC5D,SAAO;AAAA,IAAC;AAAA;AAAA,MAAU,UAAU,MAAM,UAAU,SAAS,GAAG;AAAA,MAAU,YAAW;AAAA,MACzE,OAAO;AAAA,QACH,UAAU,YAAY,UAAU,SAAS,GAAG;AAAA,QAC5C,UAAU;AAAA,MACd;AAAA,MACA,IAAI;AAAA,QACA,wBAAuB;AAAA,UACnB,YAAW;AAAA,UACX,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,iBAAiB;AAAA,UACjB,iBAAiB;AAAA,UACjB,UAAU;AAAA,UACV,WAAW;AAAA,QACf;AAAA,MACJ;AAAA,MAAI;AAAA;AAAA,EAAK;AAEjB;AASA,SAAS,WAAW,OAAwB;AACxC,QAAM,EAAE,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,IAAI;AACrC,SACA;AAAA,IAAC;AAAA;AAAA,MACI,GAAG,aAAa,MAAK,GAAG;AAAA,MACxB,GAAG;AAAA,MAEJ,OAAO;AAAA,QACH,OAAO,OAAO,MAAM,WAAW,GAAG,CAAC,OAAO;AAAA,QAC1C,OAAO,OAAO,MAAM,WAAW,GAAG,CAAC,OAAO;AAAA,QAC1C,QAAQ;AAAA;AAAA,MACZ;AAAA,MACA,IAAI;AAAA,QACA,oBAAmB;AAAA,UACf,UAAU;AAAA,UACV,OAAO;AAAA,UACP,iBAAiB;AAAA,UACjB,OAAO;AAAA,UACP,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA;AAAA,EACJ;AACJ;AACA,SAAS,aAAa,MAAa,KAAY;AAC3C,MAAG,IAAK,QAAO,EAAC,IAAG;AACnB,MAAG,CAAC,KAAM,QAAO,EAAE,UAAU,GAAG;AAEhC,QAAM,YAAY,KAAK,MAAM,GAAG;AAChC,QAAM,QAAQ,UAAU,CAAC,KAAK;AAC9B,QAAM,SAAS,UAAU,CAAC,KAAK;AAC/B,QAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE;AAE/C,SAAO;AAAA,IACH,UAAU;AAAA,EACd;AACJ;;;AExKO,IAAM,cAAc;AAAA,EACzB,gBAAgB;AAAA,IACd,MAAM;AAAA,MACJ,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAGO,IAAM,qBAAqC;AAAA,EAChD,wBAA8B;AAAA,EAC9B,6BAA8B;AAChC;;;AC0GgB,SAeI,OAAAC,MAfJ,QAAAC,aAAA;AAlHhB,IAAM,MAAM;AAAA,EACR,KAAK,EAAC,KAAI,kBAAiB,KAAI,KAAI,WAAU,SAAQ;AAAA,EACrD,QAAQ,EAAC,KAAI,UAAS,KAAI,KAAI,WAAU,SAAQ;AAAA,EAChD,MAAM,EAAC,KAAI,eAAc,KAAI,GAAE,WAAU,MAAK;AAAA,EAC9C,OAAO,EAAC,KAAI,OAAM,KAAI,GAAE,WAAU,MAAK;AAC3C;AA+Be,SAAR,aAA8B,OAA0B;AAC3D,QAAM;AAAA,IACF;AAAA,IACA,OAAK;AAAA,IACL,WAAS;AAAA,IACT;AAAA,IAEA,gBAAc;AAAA,IACd,OAAK;AAAA,IACL;AAAA,IAEA,OAAK;AAAA,IACL,MAAI;AAAA,IACJ,WAAS;AAAA,IACT,eAAa;AAAA;AAAA,IAEb;AAAA,IACA,YAAU;AAAA,IACV,cAAc;AAAA,EAClB,IAAI;AAEJ,QAAM,OAAO;AAAA,IACX,GAAG,KAAK,SAAS,iCAAiC,IAAI;AAAA,IACtD,GAAG,KAAK,UAAU,iCAAiC,IAAI;AAAA,EACzD;AAEA,SACI,gBAAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACG,WAAW,WAAW,UAAU,OAAO;AAAA,MACvC,IAAI,QAAQ,oBAAoB;AAAA,QAChC,SAAQ;AAAA,QACR,eAAc,IAAI,YAAY,GAAG;AAAA,QACjC,YAAW;AAAA,QACX,KAAI,IAAI,YAAY,GAAG;AAAA,MAC3B,CAAC;AAAA,MACG;AAAA,wBAAAF;AAAA,UAAC;AAAA;AAAA,YACG;AAAA,YACA;AAAA,YACA,eAAa;AAAA,YACb,cAAY;AAAA,YACZ,OAAO;AAAA,cACH,QAAQ;AAAA,cACR,aAAa,KAAK;AAAA,cAClB,UAAU,KAAK;AAAA,cACf,YAAY,YAAY,uCAAuC;AAAA,YACnE;AAAA,YACA,IAAI;AAAA,cACA,wBAAuB;AAAA,gBACnB,QAAO;AAAA,gBACP,UAAU;AAAA,gBACV,OAAM;AAAA,gBACN,YAAW;AAAA,gBACX,gBAAe;AAAA,gBACf,OAAM;AAAA,gBACN,QAAO;AAAA;AAAA,gBAEP,SAAS;AAAA;AAAA,gBAGT,WAAW;AAAA,gBACX,cAAa;AAAA;AAAA,gBAGb,+BAA+B;AAAA,kBAC3B,QAAQ;AAAA,kBACR,4BAA4B;AAAA,oBACxB,SAAS;AAAA,kBACb;AAAA,kBACA,0BAA0B;AAAA,oBACtB,SAAS;AAAA,kBACb;AAAA,kBACA,yBAAyB;AAAA,oBACrB,QAAQ;AAAA,kBACZ;AAAA,gBACJ;AAAA,cACJ;AAAA,YACJ;AAAA,YAEA,0BAAAC,MAACC,UAAA,EAAI,IAAI;AAAA,cACL,OAAM;AAAA,cACN,UAAS;AAAA,cACT,KAAI;AAAA,cACJ,MAAK;AAAA,cACL,OAAM;AAAA,cACN,QAAO;AAAA,cACP,QAAO;AAAA,cACP,oBAAmB;AAAA,gBACf,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,UAAS;AAAA,gBACT,WAAU;AAAA,cACd;AAAA,YACJ,GACI;AAAA,8BAAAF,KAAC,iBAAa;AAAA,cACd,gBAAAA,KAAC,aAAU,MAAY;AAAA,cACvB,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACG;AAAA,kBAAY;AAAA,kBAAU;AAAA,kBACtB,aAAa;AAAA,kBACb,KAAK;AAAA,oBACD,OAAM,KAAK;AAAA,oBACX,QAAO,KAAK;AAAA,kBAChB;AAAA;AAAA,cACJ;AAAA,eACJ;AAAA;AAAA,QACJ;AAAA,QACC,YAAY,gBAAAA,KAAC,YAAS,MAAY,WAAW,IAAI,YAAY,EAAE,WAAW,UAAmB;AAAA;AAAA;AAAA,EAClG;AAGR;AAEA,SAAS,UAAU,EAAE,KAAK,GAA8B;AACpD,SACA,gBAAAA;AAAA,IAACE;AAAA,IAAA;AAAA,MAAI,WAAU;AAAA,MACf,IAAI;AAAA,QACA,UAAS;AAAA,QACT,KAAI;AAAA,QACJ,MAAK;AAAA,QACL,OAAM;AAAA,QACN,QAAO;AAAA,QACP,QAAO;AAAA,QACP,OAAM,EAAC,SAAQ,OAAM;AAAA,QACrB,aAAY,EAAC,SAAQ,OAAM;AAAA,QAC3B,cAAa;AAAA,MACjB;AAAA,MACI,0BAAAF,KAACE,UAAA,EAAI,IAAI;AAAA,QACP,OAAM;AAAA,QACN,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,gBAAe;AAAA,QACf,YAAW;AAAA,QACX,OAAM;AAAA,MACR,GACK,gBACL;AAAA;AAAA,EACJ;AAEJ;AAEA,SAAS,gBAAgB;AACrB,SACA,gBAAAF;AAAA,IAACE;AAAA,IAAA;AAAA,MAAI,WAAU;AAAA,MACf,WAAU;AAAA,MACV,IAAI;AAAA,QACA,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,iBAAiB;AAAA;AAAA,QACjB,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAa;AAAA,MACjB;AAAA;AAAA,EAAE;AAEN;;;AC1MA;AAAA;AAAA;AAAA;AAAA;AACA,SAAS,cAAc;;;ACChB,IAAM,qBAAqC;AAAA,EACjD,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,0BAA0B;AAC3B;;;AD+CI,mBAgBK,OAAAC,MAhBL,QAAAC,aAAA;AA5CJ,IAAM,eAAe;AAAA,EACnB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,WAAW;AACb;AACA,IAAM,mBAAmB,OAAO,OAAO,YAAY,EAAE,OAAO,OAAG,MAAI,SAAS;AAYrE,SAAS,SAAS,OAYvB;AACA,QAAM;AAAA,IACJ;AAAA,IAAM;AAAA,IACN,QAAAC;AAAA,IAAQ;AAAA,IACR;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,IAAI,QAAQ;AAAA,IAChB,UAAU;AAAA,IACV,cAAc,CAACA,OAAM;AAAA,EACvB,CAAC;AACD,SACE,gBAAAD,MAAA,YACA;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QAEC,QAAQE;AAAA,QACR,SAAQ;AAAA,QACR,cAAc;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,QACd;AAAA,QACA,SAAQ;AAAA,QAER,IAAI,QAAQ,oBAAoB;AAAA,UAC9B,QAAO;AAAA,QACT,CAAC;AAAA,QAEA,2BACE,gBAAAF,KAAC,gBAAa,MAAY,KAAW,GAAG,WAAW,cAAc,SAAS,EAAE,uBAAsB,IAClG,gBAAAA,KAAC,UAAO,MAAY,KAAW,GAAG,WAAW,QAAQ,aAAa,OAAM;AAAA;AAAA,IAE7E;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAe;AAAA,QACf,SAAS,iBAAiB,IAAI,CAAC,OAAK;AAAA,UAClC,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,SAAQ,MAAI;AACV,cAAE,aAAa;AACf,gBAAG,mBAAoB,oBAAmB,CAAC;AAAA,UAC7C;AAAA,QACF,EAAE;AAAA;AAAA,IACJ;AAAA,KACA;AAEJ;AACO,IAAM,SAAS;AAUtB,IAAM,cAAc,OAAO,OAAM;AAAA,EAC/B,mBAAmB,OAAI,MAAI;AAC7B,CAAC,EAA4B,OAAO;AAAA,EAClC,qBAAqB;AAAA,IACnB,OAAM;AAAA,IACN,QAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,cAAc;AAAA,IACd,aAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAQ;AAAA,IACR,YAAY;AAAA,MACV,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,qBAAqB;AAAA,IACnB,MAAM;AAAA,MACJ,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,UAAS;AAAA,IACP;AAAA,MACE,OAAO,EAAC,QAAO,aAAa,OAAM;AAAA,MAClC,OAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA;AAAA,QACb,aAAa;AAAA;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,EAAC,QAAO,aAAa,KAAI;AAAA,MAChC,OAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA;AAAA,QACb,aAAa;AAAA;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,EAAC,QAAO,aAAa,KAAI;AAAA,MAChC,OAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA;AAAA,QACb,aAAa;AAAA;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,EAAC,QAAO,aAAa,QAAQ;AAAA,MACpC,OAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA;AAAA,QACb,aAAa;AAAA;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,OAAO,EAAC,QAAO,aAAa,UAAU;AAAA,MACtC,OAAO;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA;AAAA,QACb,aAAa;AAAA;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF,EAAE;","names":["default","jsx","jsxs","default","jsx","jsxs","status"]}
1
+ {"version":3,"sources":["../src/components/elemental/Avatar/src/Avatar/Avatar.tsx","../src/components/elemental/Avatar/src/_utils/_const.ts","../src/components/elemental/Avatar/src/Avatar/themes.ts","../src/components/elemental/Avatar/src/Avatar/AvatarButton.tsx","../src/components/elemental/Avatar/src/StatusAvatar/StatusAvatar.tsx","../src/components/elemental/Avatar/src/StatusAvatar/theme.ts"],"sourcesContent":["import MuiAvatar, {type AvatarProps} from '@mui/material/Avatar'\nimport { CLASSNAMEs } from '@/_utils/_const/classNames';\nimport { Stack } from '@/ele/Box'\nimport { Skeleton } from '@/ele/Skeleton'\n\nimport { Subscript } from '@/ele/Typography'\n\nimport { AVATAR_SIZEs, AVATAR_SX, type Size } from '../_utils'\n\ninterface MuiAvatarProps {\n name?: string;\n src?: string;\n size?: Size;\n fontSize?: string | number;\n displayName?: boolean;\n direction?: 'column' | 'row';\n dim?: {\n width?: string | number;\n height?: string | number;\n };\n backgroundIcon?: React.ReactNode;\n}\n\n/**\n * A styled Mui Avatar component\n * \n * [Doc](https://mui.com/material-ui/api/avatar/)\n */\nexport default function Avatar(props: MuiAvatarProps) {\n const {\n name,\n src,\n size=\"md\", // sm, md, lg\n fontSize, \n displayName=true, \n direction=\"column\",\n dim={},\n backgroundIcon,\n ...rest\n } = props\n\n const h = dim.height || AVATAR_SIZEs[size]\n const w = dim.width || AVATAR_SIZEs[size]\n\n return (\n <Stack\n className={CLASSNAMEs.elemental.avatar.root}\n style={{\n '--AVATAR_SX': direction,\n '--gap': AVATAR_SX[direction]?.stackSX[size]?.gap,\n } as React.CSSProperties}\n sx={() => ({\n direction:\"var(--AVATAR_SX)\",\n gap: `calc(var(--gap) * 8px)`,\n justifyContent: \"center\",\n overflow: \"hidden\",\n })} \n alignItems=\"center\" direction={direction}>\n <AvatarSkel \n name={name} \n src={src} \n h={h} \n w={w} \n backgroundIcon={backgroundIcon} \n {...rest}\n />\n {name && displayName && <NameSkel name={name} direction={direction} fontSize={fontSize}/>}\n </Stack>\n )\n}\n\ninterface AvatarSkelProps extends Omit<AvatarProps, \"children\"> {\n name?: string;\n src?: string;\n h: string | number;\n w: string | number;\n backgroundIcon?: React.ReactNode;\n}\n\nfunction AvatarSkel(props: AvatarSkelProps) {\n const { name, src, h, w, backgroundIcon, ...rest } = props\n if(!name && !src) return <Skeleton variant=\"circular\" width={w} height={h} />\n if(backgroundIcon) return (<Stack sx={{\n position: 'relative', width: w, height: h,\n alignItems: 'center', justifyContent: 'center',\n \"&>svg\":{\n height: w, width: h,\n padding: '0.25em',\n borderRadius: '50%',\n },\n }}>{backgroundIcon}</Stack>)\n return (<NameAvatar name={name} src={src} h={h} w={w} {...rest}/>)\n}\n\ninterface NameSkelProps {\n name?: string;\n direction: 'column' | 'row';\n fontSize?: string | number;\n}\n\n/**\n * A Mui Skeleton component which used as a placeholder for loading image\n * \n * [Doc](https://mui.com/material-ui/api/skeleton/)\n */\nexport function NameSkel(props: NameSkelProps) {\n const { name, direction, fontSize } = props\n if(!name) return <Skeleton variant=\"text\" width={40} height={20} />\n\n const fs = typeof fontSize === 'number' ? `${fontSize}px` : fontSize\n return <Subscript fontSize={fs || AVATAR_SX[direction]?.fontSize} lineHeight=\"1.2\" \n style={{\n \"--fs-n\": fontSize || AVATAR_SX[direction]?.fontSize,\n \"--lh-n\": \"1.2\",\n } as React.CSSProperties}\n sx={{\n \"&.MuiTypography-root\":{\n whiteSpace:\"nowrap\",\n fontSize: \"var(--fs-n)\",\n lineHeight: \"var(--lh-n)\",\n WebkitLineClamp: \"3\",\n WebkitBoxOrient: \"vertical\",\n maxWidth: '-webkit-fill-available',\n lineBreak: 'anywhere',\n },\n }}>{name}</Subscript>\n\n}\n\ninterface NameAvatarProps extends Omit<AvatarProps, \"children\"> {\n name?: string;\n src?: string;\n h: string | number;\n w: string | number;\n}\n\nfunction NameAvatar(props: NameAvatarProps) {\n const { name, src, h, w, ...rest } = props\n return (\n <MuiAvatar \n {...stringAvatar(name,src)} \n {...rest} \n \n style={{\n '--w': typeof w === 'number' ? `${w}px` : w,\n '--h': typeof h === 'number' ? `${h}px` : h,\n '--fs': \"calc(var(--w) / 2)\", // half of the height, so it will be fit in the circle\n } as React.CSSProperties} \n sx={{\n \"&.MuiAvatar-root\":{\n fontSize: \"var(--fs)\",\n color: 'var(--avatar-color)',\n backgroundColor: 'transparent',\n width: 'var(--w)',\n height: 'var(--h)',\n },\n }}\n />)\n}\nfunction stringAvatar(name?:string,src?:string){\n if(src) return {src}\n if(!name) return { children: '' }\n\n const splitName = name.split(' ')\n const first = splitName[0] || ''\n const second = splitName[1] || ''\n const str = `${first[0] || ''}${second[0] || ''}`\n\n return {\n children: str,\n }\n}","import type { Size } from '../_utils'\n\nexport const AVATARBUTTON_STANDARD_DIMENSIONs = {\n xs:\"36px\",\n sm: \"100px\",\n md: \"120px\",\n lg: \"200px\",\n xl: \"240px\",\n} as const satisfies Record<Size, string>;\n\nexport const AVATAR_SIZEs = {\n xs: \"20px\",\n sm: \"24px\",\n md: \"40px\",\n lg: \"56px\",\n xl: \"80px\",\n} as const satisfies Record<Size, string>;\n\nexport const AVATAR_SX = {\n column:{\n stackSX:{\n xs: {gap: 0.5},\n sm: {gap: 0.5},\n md: {gap: 0.75},\n lg: {gap: 1},\n xl: {gap: 1},\n },\n fontSize: \"0.6rem\",\n },\n row:{\n stackSX:{\n xs: {gap: 0.75},\n sm: {gap: 0.75},\n md: {gap: 1},\n lg: {gap: 1.5},\n xl: {gap: 2},\n },\n fontSize: \"0.8rem\",\n }\n} as const satisfies {\n [key in 'column' | 'row']: {\n stackSX: Record<Size, {gap:number}>,\n fontSize: string,\n }\n};","import type { MuiComponentTheme } from '@/_utils/_types'\nimport type { SxProps, Theme } from '@mui/material/styles'\n\nexport const avatarTheme = {\n styleOverrides: {\n root: {\n '--avatar-bg': 'var(--mui-palette-action-selected)',\n '--avatar-color': 'var(--mui-palette-text-primary)',\n backgroundColor: 'var(--avatar-bg)',\n color: 'var(--avatar-color)',\n },\n },\n} as const satisfies MuiComponentTheme<'MuiAvatar'>\n\n/** Static palette aliases for AvatarButton root element */\nexport const avatarButtonRootSx: SxProps<Theme> = {\n '--avatar-button-text': 'var(--mui-palette-text-primary)',\n '--avatar-hover-icon-color': 'var(--mui-palette-text-subscript)',\n} as const satisfies SxProps<Theme>\n","import React from 'react'\nimport { IconButton } from '@/ele/Button'\nimport { Box } from '@/ele/Box'\n\nimport Avatar, { NameSkel } from './Avatar'\nimport { CLASSNAMEs } from '@/_utils/_const/classNames';\nimport { Size, AVATARBUTTON_STANDARD_DIMENSIONs } from '../_utils'\nimport { avatarButtonRootSx } from './themes'\nimport { mergeSx } from '@/_utils/_func'\n\nconst pos = {\n top: {dir:\"column-reverse\",gap:0.5,direction:\"column\"},\n bottom: {dir:\"column\",gap:0.5,direction:\"column\"},\n left: {dir:\"row-reverse\",gap:1,direction:\"row\"},\n right: {dir:\"row\",gap:1,direction:\"row\"},\n} as const\n\ninterface AvatarButtonProps {\n onClick?: React.ComponentProps<typeof IconButton>['onClick'];\n size?: Size;\n disabled?: boolean;\n dim?: React.ComponentProps<typeof Avatar>['dim'];\n\n backgroundUrl?: string;\n backgroundIcon?: React.ReactNode;\n icon?: React.ReactNode;\n fontSize?: string | number;\n\n name?: string; \n src?: string;\n showName?: boolean;\n namePosition?: keyof typeof pos;\n hasBorder?: boolean;\n 'aria-label'?: string;\n}\n\n/**\n * A clickable Mui Avatar component\n * \n * use button to wrap an Avatar component\n * \n * logic:\n * use backgroundIcon if any\n * then use backgroundUrl if any\n * then name if any\n */\nexport default function AvatarButton(props: AvatarButtonProps) {\n const {\n onClick,\n size=\"md\",\n disabled=false,\n dim,\n\n backgroundUrl=\"transparent\",\n icon=null,\n fontSize,\n\n name=\"\", \n src=\"\",\n showName=false, \n namePosition=\"bottom\",// namePosition: top, bottom, left, right\n \n backgroundIcon,\n hasBorder=true,\n 'aria-label': ariaLabel,\n } = props\n\n const _dim = {\n w: dim?.width ?? AVATARBUTTON_STANDARD_DIMENSIONs[size],\n h: dim?.height ?? AVATARBUTTON_STANDARD_DIMENSIONs[size],\n }\n\n return (\n <Box\n className={CLASSNAMEs.elemental.avatar.button}\n sx={mergeSx(avatarButtonRootSx, {\n display:\"flex\",\n flexDirection:pos[namePosition]?.dir,\n alignItems:\"center\",\n gap:pos[namePosition]?.gap,\n })}>\n <IconButton\n onClick={onClick}\n disabled={disabled}\n disableRipple\n aria-label={ariaLabel}\n style={{\n '--bg': backgroundUrl,\n '--bg-size': _dim.w,\n '--size': _dim.w,\n '--shadow': hasBorder ? 'var(--mui-palette-shadow-border-1)' : 'none',\n } as React.CSSProperties}\n sx={{\n '&.MuiButtonBase-root':{\n border:\"none\",\n position: 'relative',\n color:\"var(--avatar-button-text)\",\n background:\"var(--bg)\",\n backgroundSize:'var(--bg-size)',\n width:'var(--size)',\n height:'var(--size)',\n // allow overlay banner to fit the button\n padding: 0,\n \n // shadow\n boxShadow: \"var(--shadow)\",\n borderRadius:\"50%\",\n \n // hover effect\n '&:hover, &.Mui-focusVisible': {\n zIndex: 1,\n '& .MuiImageBackdrop-root': {\n opacity: 0.5,\n },\n '& .MuiImageMarked-root': {\n opacity: 0,\n },\n '& .MuiTypography-root': {\n border: '4px solid currentColor',\n },\n },\n },\n }} \n >\n <Box sx={{\n width:\"100%\",\n position:\"absolute\",\n top:0,\n left:0,\n right:0,\n bottom:0,\n zIndex:1,\n \"&>.MuiStack-root\":{\n width:\"100%\",\n height:\"100%\",\n maxWidth:\"100%\",\n maxHeight:\"100%\",\n },\n }}>\n <ImageBackdrop/>\n <HoverIcon icon={icon} />\n <Avatar\n name={name} src={src} backgroundIcon={backgroundIcon}\n displayName={false}\n dim={{\n width:_dim.w,\n height:_dim.h,\n }}\n />\n </Box>\n </IconButton>\n {showName && <NameSkel name={name} direction={pos[namePosition].direction} fontSize={fontSize}/>}\n </Box>\n\n )\n}\n\nfunction HoverIcon({ icon }: { icon: React.ReactNode }) {\n return (\n <Box className=\"HoverIcon-root\"\n sx={{\n position:\"absolute\",\n top:0,\n left:0,\n right:0,\n bottom:0,\n zIndex:2,\n \"&>*\":{display:\"none\"},\n \"&:hover>*\":{display:\"flex\"},\n borderRadius:\"50%\",\n }}>\n <Box sx={{\n width:\"100%\",\n height:\"100%\",\n display:\"none\",\n justifyContent:\"center\",\n alignItems:\"center\", \n color:\"var(--avatar-hover-icon-color)\",\n }}>\n {icon}\n </Box>\n </Box>\n )\n}\n\nfunction ImageBackdrop() {\n return (\n <Box component=\"span\"\n className=\"MuiImageBackdrop-root\"\n sx={{\n zIndex: 2,\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: \"#000\", // photo overlay — CSS variable tokens cannot reliably target this layer\n opacity: 0,\n transition: \"opacity 0.3s\",\n borderRadius:\"50%\",\n }}/>\n )\n}","'use client'\nimport { styled } from '@mui/material/styles'\nimport { Badge } from '@/ele/Badge'\n\nimport { useMenu, MenuPopper } from '@/ele/Menu'\n\nimport { Avatar, AvatarButton } from '../Avatar'\nimport { statusAvatarRootSx } from './theme'\nimport { mergeSx } from '@/_utils/_func'\n\n// all the status that can be changed except offline\nconst USER_STATUSs = {\n online: 'online',\n away: 'away',\n busy: 'busy',\n offline: 'offline',\n invisible: 'invisible',\n} as const\nconst changable_status = Object.values(USER_STATUSs).filter(s=>s!=='offline')\ntype UserStatusTypes = typeof USER_STATUSs[keyof typeof USER_STATUSs]\n\n/**\n * StatusAvatar\n * @description: avatar of the participant with status\n * @param status - status of the participant\n * @param src - src of the avatar\n * @param name - name of the participant\n * \n * user status will be shown as a dot on the avatar\n */\nexport function Renderer(props:{\n status:UserStatusTypes;\n statusEditable?:boolean;\n handleStatusChange?:((status:UserStatusTypes)=>void);\n name:string;\n src?:string;\n\n slotProps?:{\n badge?:React.ComponentProps<typeof Badge>;\n avatar?:Partial<React.ComponentProps<typeof Avatar>>;\n avatarButton?:Partial<React.ComponentProps<typeof AvatarButton>>;\n };\n}){\n const {\n name, src,\n status, handleStatusChange,\n statusEditable,\n slotProps,\n } = props\n\n const p = useMenu({\n multiple: false,\n initSelected: [status],\n })\n return (\n <>\n <StyledBadge \n\n status={status}\n overlap=\"circular\"\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n variant=\"dot\"\n\n sx={mergeSx(statusAvatarRootSx, {\n height:\"fit-content\",\n })}\n >\n {statusEditable\n ?<AvatarButton name={name} src={src} {...slotProps?.avatarButton} onClick={p.onTriggerClickHandler}/>\n :<Avatar name={name} src={src} {...slotProps?.avatar} displayName={false}/>\n }\n </StyledBadge>\n <MenuPopper\n openMenuProps={p}\n options={changable_status.map((s)=>({\n id: s,\n label: s,\n onClick:()=>{\n p.closeHandler()\n if(handleStatusChange) handleStatusChange(s)\n },\n }))}\n />\n </>\n )\n}\nexport const status = USER_STATUSs\nexport type Status = UserStatusTypes\n\n/**\n * StyledBadge\n * @description: styled badge for the avatar\n * @param status - status of the participant\n * \n * use css variables to set the color and animation of the badge\n */\nconst StyledBadge = styled(Badge,{\n shouldForwardProp: p=> p!==\"status\"\n})<{status:UserStatusTypes}>(() => ({\n '& .MuiBadge-badge': {\n width:\"15%\",\n height:\"15%\",\n minWidth: '10px',\n minHeight: '10px',\n borderRadius: '50%',\n borderColor:\"transparent\",\n backgroundColor: 'var(--color)',\n color: 'var(--color)',\n boxShadow: `0 0 0 2px var(--status-badge-shadow)`,\n display:\"var(--display)\",\n '&::after': {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n animation: 'var(--animate)',\n border: '1px solid currentColor',\n content: '\"\"',\n },\n },\n '@keyframes ripple': {\n '0%': {\n transform: 'scale(.8)',\n opacity: 1,\n },\n '100%': {\n transform: 'scale(2.4)',\n opacity: 0,\n },\n },\n\n variants:[\n {\n props: {status:USER_STATUSs.online},\n style: {\n '--color': 'var(--status-color-online)',\n '--animate': 'ripple 1.2s infinite ease-in-out', // ripple animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.away},\n style: {\n '--color': 'var(--status-color-away)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.busy},\n style: {\n '--color': 'var(--status-color-busy)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.offline,},\n style: {\n '--color': 'var(--status-color-offline)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n {\n props: {status:USER_STATUSs.invisible,},\n style: {\n '--color': 'var(--status-color-offline)',\n '--animate': 'none', // no animation\n '--display': 'block', // show the dot\n },\n },\n ]\n}))\n","import type { SxProps, Theme } from '@mui/material/styles'\n\nexport const statusAvatarRootSx: SxProps<Theme> = {\n\t'--status-badge-shadow': 'var(--mui-palette-background-default)',\n\t'--status-color-online': 'var(--mui-palette-success-main)',\n\t'--status-color-away': 'var(--mui-palette-warning-main)',\n\t'--status-color-busy': 'var(--mui-palette-error-main)',\n\t'--status-color-offline': 'var(--mui-palette-grey-500)',\n}\n"],"mappings":"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","names":["default","jsx","jsxs","default","jsx","jsxs","status"]}
@@ -13,43 +13,39 @@ import {
13
13
  isEmptyFormValue,
14
14
  mergeFieldSx,
15
15
  validateFormSchema
16
- } from "./chunk-UTVSYS6S.mjs";
17
- import {
18
- StandardStepper_default
19
- } from "./chunk-V26V2S3W.mjs";
16
+ } from "./chunk-FNSIQ2B7.mjs";
20
17
  import {
21
18
  MuiSwitch
22
19
  } from "./chunk-T34IULP5.mjs";
23
20
  import {
24
21
  ToggleButtonGroup
25
- } from "./chunk-2ZZJTBTE.mjs";
22
+ } from "./chunk-WJZ3IYET.mjs";
26
23
  import {
27
24
  MuiSelect_default
28
- } from "./chunk-UGMRJMFZ.mjs";
25
+ } from "./chunk-BO5CU4ZM.mjs";
26
+ import {
27
+ StandardStepper_default
28
+ } from "./chunk-3O3N6X6D.mjs";
29
29
  import {
30
- default as default14
30
+ default as default15
31
31
  } from "./chunk-EW4DTFH3.mjs";
32
32
  import {
33
33
  MuiModal
34
- } from "./chunk-UDREPVEY.mjs";
35
- import {
36
- default as default15
37
- } from "./chunk-VYD3PDBB.mjs";
34
+ } from "./chunk-RVSMEZE3.mjs";
38
35
  import {
39
36
  CheckboxGroup
40
- } from "./chunk-BGB7JHIU.mjs";
37
+ } from "./chunk-FMGZCOJC.mjs";
41
38
  import {
42
39
  MuiFormLabel,
43
- default as default12,
44
- default3 as default13
40
+ default as default13,
41
+ default3 as default14
45
42
  } from "./chunk-T4X375IG.mjs";
46
43
  import {
47
44
  CircularProgress
48
45
  } from "./chunk-WYYP3Y34.mjs";
49
46
  import {
50
- Button,
51
- IconButton_default
52
- } from "./chunk-JIU5GVM7.mjs";
47
+ default as default12
48
+ } from "./chunk-VYD3PDBB.mjs";
53
49
  import {
54
50
  default125 as default10,
55
51
  default126 as default11,
@@ -60,11 +56,17 @@ import {
60
56
  default69 as default8,
61
57
  default82 as default9
62
58
  } from "./chunk-ZVFYOXDE.mjs";
59
+ import {
60
+ Button,
61
+ IconButton_default
62
+ } from "./chunk-D4XPNSSI.mjs";
63
63
  import {
64
64
  default as default2,
65
- default2 as default3,
65
+ default2 as default3
66
+ } from "./chunk-PNSJC6PC.mjs";
67
+ import {
66
68
  mergeSx
67
- } from "./chunk-S6EZVRZC.mjs";
69
+ } from "./chunk-AFLEG5ZC.mjs";
68
70
 
69
71
  // src/components/compound/UseForm/src/useHooks.ts
70
72
  import { useForm } from "react-hook-form";
@@ -405,7 +407,7 @@ var TextField = ({ field }) => {
405
407
  gap: 1
406
408
  }, mergeFieldSx(size, sx)), children: [
407
409
  /* @__PURE__ */ jsx3(
408
- default15,
410
+ default12,
409
411
  {
410
412
  ...restField,
411
413
  value: value ?? "",
@@ -544,7 +546,7 @@ var SliderField = ({ field }) => {
544
546
  name,
545
547
  defaultValue,
546
548
  render: ({ field: { onChange, value, ...restField }, fieldState: { error } }) => /* @__PURE__ */ jsxs3(
547
- default12,
549
+ default13,
548
550
  {
549
551
  disabled,
550
552
  required,
@@ -558,7 +560,7 @@ var SliderField = ({ field }) => {
558
560
  /* @__PURE__ */ jsx5(Explanation_default, { explanation: getFieldExplanation(field) })
559
561
  ] }),
560
562
  /* @__PURE__ */ jsx5(default2, { sx: { px: 4 }, children: /* @__PURE__ */ jsx5(
561
- default14,
563
+ default15,
562
564
  {
563
565
  ...restField,
564
566
  value: typeof value === "number" || Array.isArray(value) ? value : sliderSlotProps?.min ?? 0,
@@ -685,7 +687,7 @@ var ToggleButtonField = ({ field }) => {
685
687
  render: ({ field: { onChange, value }, fieldState: { error } }) => {
686
688
  const helperTextNode = /* @__PURE__ */ jsx7(FieldHelperText, { error, errorMsg, helpers: [field.helperText] });
687
689
  return /* @__PURE__ */ jsxs4(
688
- default12,
690
+ default13,
689
691
  {
690
692
  disabled,
691
693
  required,
@@ -743,7 +745,7 @@ var SwitchField = ({ field }) => {
743
745
  name,
744
746
  defaultValue: defaultValue ?? false,
745
747
  render: ({ field: { onChange, value }, fieldState: { error } }) => /* @__PURE__ */ jsxs5(
746
- default12,
748
+ default13,
747
749
  {
748
750
  disabled,
749
751
  required,
@@ -807,7 +809,7 @@ var CustomField = ({ field }) => {
807
809
  field.onChange?.(v, getValues());
808
810
  };
809
811
  return /* @__PURE__ */ jsxs6(
810
- default12,
812
+ default13,
811
813
  {
812
814
  disabled,
813
815
  required,
@@ -887,7 +889,7 @@ var TextArrayField = ({ field }) => {
887
889
  setItems(next);
888
890
  };
889
891
  return /* @__PURE__ */ jsxs7(
890
- default12,
892
+ default13,
891
893
  {
892
894
  disabled,
893
895
  required,
@@ -903,7 +905,7 @@ var TextArrayField = ({ field }) => {
903
905
  /* @__PURE__ */ jsxs7(default2, { sx: { py: 1, display: "flex", flexDirection: "column", gap: 1 }, children: [
904
906
  items.map((it, idx) => /* @__PURE__ */ jsxs7(default2, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
905
907
  /* @__PURE__ */ jsx10(
906
- default15,
908
+ default12,
907
909
  {
908
910
  size: "small",
909
911
  value: it,
@@ -964,7 +966,7 @@ var NumberField = ({ field }) => {
964
966
  update(next);
965
967
  };
966
968
  return /* @__PURE__ */ jsx11(
967
- default12,
969
+ default13,
968
970
  {
969
971
  disabled,
970
972
  required,
@@ -974,7 +976,7 @@ var NumberField = ({ field }) => {
974
976
  sx: mergeSx(mergeFieldSx(size, sx), { maxWidth: "200px" }),
975
977
  children: /* @__PURE__ */ jsxs8(default2, { sx: { display: "flex", alignItems: "flex-start", gap: 1 }, children: [
976
978
  /* @__PURE__ */ jsx11(
977
- default15,
979
+ default12,
978
980
  {
979
981
  fullWidth: true,
980
982
  size: "small",
@@ -1018,8 +1020,8 @@ var NumberField = ({ field }) => {
1018
1020
  },
1019
1021
  input: {
1020
1022
  ...numSlot?.slotProps?.input ?? {},
1021
- startAdornment: /* @__PURE__ */ jsx11(default13, { position: "start", children: /* @__PURE__ */ jsx11(IconButton_default, { size: "small", onClick: handleMinus, disabled: typeof value === "number" && typeof numSlot?.min === "number" ? value <= numSlot.min : false, children: /* @__PURE__ */ jsx11(default4, { fontSize: "small" }) }) }),
1022
- endAdornment: /* @__PURE__ */ jsx11(default13, { position: "end", children: /* @__PURE__ */ jsx11(IconButton_default, { size: "small", onClick: handlePlus, disabled: typeof value === "number" && typeof numSlot?.max === "number" ? value >= numSlot.max : false, children: /* @__PURE__ */ jsx11(default5, { fontSize: "small" }) }) })
1023
+ startAdornment: /* @__PURE__ */ jsx11(default14, { position: "start", children: /* @__PURE__ */ jsx11(IconButton_default, { size: "small", onClick: handleMinus, disabled: typeof value === "number" && typeof numSlot?.min === "number" ? value <= numSlot.min : false, children: /* @__PURE__ */ jsx11(default4, { fontSize: "small" }) }) }),
1024
+ endAdornment: /* @__PURE__ */ jsx11(default14, { position: "end", children: /* @__PURE__ */ jsx11(IconButton_default, { size: "small", onClick: handlePlus, disabled: typeof value === "number" && typeof numSlot?.max === "number" ? value >= numSlot.max : false, children: /* @__PURE__ */ jsx11(default5, { fontSize: "small" }) }) })
1023
1025
  }
1024
1026
  },
1025
1027
  disabled
@@ -1037,37 +1039,47 @@ var NumberField = ({ field }) => {
1037
1039
  // src/components/compound/UseForm/src/FormRenderer/RowRenderer.tsx
1038
1040
  import { jsx as jsx12 } from "react/jsx-runtime";
1039
1041
  var DateField = React3.lazy(
1040
- () => import("./DateField-ZYMZFHL4.mjs").then((m) => ({
1042
+ () => import("./DateField-CDJ6W6XF.mjs").then((m) => ({
1041
1043
  default: m.DateField
1042
1044
  }))
1043
1045
  );
1044
1046
  var DateTimeField = React3.lazy(
1045
- () => import("./DateTimeField-TPTJ7YIZ.mjs").then((m) => ({
1047
+ () => import("./DateTimeField-SFAF4I6A.mjs").then((m) => ({
1046
1048
  default: m.DateTimeField
1047
1049
  }))
1048
1050
  );
1051
+ var TimeField = React3.lazy(
1052
+ () => import("./TimeField-XVWXBJID.mjs").then((m) => ({
1053
+ default: m.TimeField
1054
+ }))
1055
+ );
1056
+ var DateRangeField = React3.lazy(
1057
+ () => import("./DateRangeField-ZWSFT5KV.mjs").then((m) => ({
1058
+ default: m.DateRangeField
1059
+ }))
1060
+ );
1049
1061
  var TelField = React3.lazy(
1050
- () => import("./TelField-LOGRVZ4I.mjs").then((m) => ({
1062
+ () => import("./TelField-FRQT2UBJ.mjs").then((m) => ({
1051
1063
  default: m.TelField
1052
1064
  }))
1053
1065
  );
1054
1066
  var FileUploadField = React3.lazy(
1055
- () => import("./FileUploadField-NTMWBJER.mjs").then((m) => ({
1067
+ () => import("./FileUploadField-TSNCSLXX.mjs").then((m) => ({
1056
1068
  default: m.FileUploadField
1057
1069
  }))
1058
1070
  );
1059
1071
  var AvatarField = React3.lazy(
1060
- () => import("./AvatarField-SAODT3CZ.mjs").then((m) => ({
1072
+ () => import("./AvatarField-KFASMVZU.mjs").then((m) => ({
1061
1073
  default: m.AvatarField
1062
1074
  }))
1063
1075
  );
1064
1076
  var JSONEditorField = React3.lazy(
1065
- () => import("./JSONEditorField-TMRWGXVR.mjs").then((m) => ({
1077
+ () => import("./JSONEditorField-3KXC2GOG.mjs").then((m) => ({
1066
1078
  default: m.JSONEditorField
1067
1079
  }))
1068
1080
  );
1069
1081
  var AutocompleteField = React3.lazy(
1070
- () => import("./AutocompleteField-ZKNU2IRR.mjs").then((m) => ({
1082
+ () => import("./AutocompleteField-653233JU.mjs").then((m) => ({
1071
1083
  default: m.AutocompleteField
1072
1084
  }))
1073
1085
  );
@@ -1087,6 +1099,10 @@ var FieldRenderer = ({ field }) => {
1087
1099
  return /* @__PURE__ */ jsx12(LazyField, { children: /* @__PURE__ */ jsx12(DateField, { field }) });
1088
1100
  case FIELD_TYPEs.dateTime:
1089
1101
  return /* @__PURE__ */ jsx12(LazyField, { children: /* @__PURE__ */ jsx12(DateTimeField, { field }) });
1102
+ case FIELD_TYPEs.time:
1103
+ return /* @__PURE__ */ jsx12(LazyField, { children: /* @__PURE__ */ jsx12(TimeField, { field }) });
1104
+ case FIELD_TYPEs.dateRange:
1105
+ return /* @__PURE__ */ jsx12(LazyField, { children: /* @__PURE__ */ jsx12(DateRangeField, { field }) });
1090
1106
  case FIELD_TYPEs.toggleButton:
1091
1107
  return /* @__PURE__ */ jsx12(ToggleButtonField, { field });
1092
1108
  case FIELD_TYPEs.autocomplete:
@@ -1121,6 +1137,7 @@ var RowFieldFrame = ({
1121
1137
  sx: {
1122
1138
  flex: field.size?.width || 1,
1123
1139
  minWidth: field.size?.width || "auto",
1140
+ overflow: "visible",
1124
1141
  ...hidden && { display: "none" },
1125
1142
  "& > *": {
1126
1143
  minWidth: 200
@@ -1290,7 +1307,9 @@ var FormRenderer = (props) => {
1290
1307
  flexDirection: "column",
1291
1308
  gap: "4px",
1292
1309
  overflow: "hidden",
1293
- px: 1.5,
1310
+ // Vertical pad only on the outer clip shell. Horizontal pad belongs
1311
+ // on the scroll body below so elevated field shadows can bleed into
1312
+ // padding before overflow clips (fixes left-clipped Autocomplete shadow).
1294
1313
  py: 1
1295
1314
  }), children: [
1296
1315
  isMulti && /* @__PURE__ */ jsx14(StepperSection_default, {}),
@@ -1299,7 +1318,10 @@ var FormRenderer = (props) => {
1299
1318
  flexDirection: "column",
1300
1319
  gap: "8px",
1301
1320
  flex: 1,
1302
- overflow: "auto"
1321
+ overflow: "auto",
1322
+ // Inside scrollport: room for soft elevated shadow on all sides.
1323
+ px: 2.5,
1324
+ py: 0.75
1303
1325
  }, children: /* @__PURE__ */ jsx14(default2, { sx: { flex: 1 }, children: /* @__PURE__ */ jsxs10("form", { onSubmit: handleFormSubmit, children: [
1304
1326
  sortedSchema.map((row, idx) => /* @__PURE__ */ jsx14(RowRenderer_default, { row }, `${row.row}-${idx}`)),
1305
1327
  children
@@ -1447,4 +1469,4 @@ export {
1447
1469
  FormModalRenderer,
1448
1470
  UseForm
1449
1471
  };
1450
- //# sourceMappingURL=chunk-24XDGNJ6.mjs.map
1472
+ //# sourceMappingURL=chunk-4P45Z5LR.mjs.map