@mage-ui/components 1.0.16 → 1.0.18

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 (255) hide show
  1. package/dist/components/buttons/button-action/ButtonAction.d.mts +5 -2
  2. package/dist/components/buttons/button-action/ButtonAction.d.mts.map +1 -1
  3. package/dist/components/buttons/button-action/ButtonAction.mjs +1 -1
  4. package/dist/components/buttons/button-action/ButtonAction.mjs.map +1 -1
  5. package/dist/components/buttons/button-action/ButtonActionContext.mjs +2 -0
  6. package/dist/components/buttons/button-action/ButtonActionContext.mjs.map +1 -0
  7. package/dist/components/buttons/button-action/ButtonLoader.d.mts +11 -0
  8. package/dist/components/buttons/button-action/ButtonLoader.d.mts.map +1 -0
  9. package/dist/components/buttons/button-action/ButtonLoader.mjs +2 -0
  10. package/dist/components/buttons/button-action/ButtonLoader.mjs.map +1 -0
  11. package/dist/components/buttons/button-icon/ButtonIcon.d.mts +2 -2
  12. package/dist/components/buttons/button-icon/ButtonIcon.mjs.map +1 -1
  13. package/dist/components/buttons/button-visual/ButtonVisual.d.mts +2 -2
  14. package/dist/components/buttons/index.d.mts +1 -0
  15. package/dist/components/controls/autocomplete/Autocomplete.d.mts +2 -2
  16. package/dist/components/controls/autocomplete/Autocomplete.d.mts.map +1 -1
  17. package/dist/components/controls/autocomplete/Autocomplete.mjs +1 -1
  18. package/dist/components/controls/autocomplete/Autocomplete.mjs.map +1 -1
  19. package/dist/components/controls/checkbox/Checkbox.mjs.map +1 -1
  20. package/dist/components/controls/checkbox-group/CheckboxGroup.mjs.map +1 -1
  21. package/dist/components/controls/combobox/Combobox.d.mts +2 -2
  22. package/dist/components/controls/combobox/Combobox.d.mts.map +1 -1
  23. package/dist/components/controls/combobox/Combobox.mjs.map +1 -1
  24. package/dist/components/controls/date-picker/DatePicker.d.mts.map +1 -1
  25. package/dist/components/controls/date-picker/DatePicker.mjs.map +1 -1
  26. package/dist/components/controls/dropdown/Dropdown.d.mts.map +1 -1
  27. package/dist/components/controls/dropdown/Dropdown.mjs.map +1 -1
  28. package/dist/components/controls/dropzone/Dropzone.d.mts +2 -2
  29. package/dist/components/controls/dropzone/Dropzone.d.mts.map +1 -1
  30. package/dist/components/controls/dropzone/Dropzone.mjs.map +1 -1
  31. package/dist/components/controls/dropzone/use-dropzone-state.mjs.map +1 -1
  32. package/dist/components/controls/dropzone-files/DropzoneFiles.d.mts +3 -6
  33. package/dist/components/controls/dropzone-files/DropzoneFiles.d.mts.map +1 -1
  34. package/dist/components/controls/dropzone-files/DropzoneFiles.mjs +1 -1
  35. package/dist/components/controls/dropzone-files/DropzoneFiles.mjs.map +1 -1
  36. package/dist/components/controls/file-input/BaseFileInput.d.mts.map +1 -1
  37. package/dist/components/controls/file-input/BaseFileInput.mjs.map +1 -1
  38. package/dist/components/controls/file-input/FileInput.d.mts +2 -2
  39. package/dist/components/controls/file-input/FileInput.mjs.map +1 -1
  40. package/dist/components/controls/file-input/FileInputMultiple.d.mts +2 -2
  41. package/dist/components/controls/file-input/FileInputMultiple.d.mts.map +1 -1
  42. package/dist/components/controls/file-input/FileInputMultiple.mjs.map +1 -1
  43. package/dist/components/controls/index.d.mts +15 -13
  44. package/dist/components/controls/multi-select/MultiSelect.d.mts +2 -2
  45. package/dist/components/controls/multi-select/MultiSelect.mjs.map +1 -1
  46. package/dist/components/controls/multi-select/MultiSelectTags.d.mts +2 -2
  47. package/dist/components/controls/multi-select/MultiSelectTags.mjs +1 -1
  48. package/dist/components/controls/multi-select/MultiSelectTags.mjs.map +1 -1
  49. package/dist/components/controls/password-input/PasswordInput.d.mts +8 -26
  50. package/dist/components/controls/password-input/PasswordInput.d.mts.map +1 -1
  51. package/dist/components/controls/password-input/PasswordInput.mjs +1 -1
  52. package/dist/components/controls/password-input/PasswordInput.mjs.map +1 -1
  53. package/dist/components/controls/password-input/PasswordStrengthInput.d.mts +11 -0
  54. package/dist/components/controls/password-input/PasswordStrengthInput.d.mts.map +1 -0
  55. package/dist/components/controls/password-input/PasswordStrengthInput.mjs +2 -0
  56. package/dist/components/controls/password-input/PasswordStrengthInput.mjs.map +1 -0
  57. package/dist/components/controls/password-input/usePasswordRules.d.mts +11 -0
  58. package/dist/components/controls/password-input/usePasswordRules.d.mts.map +1 -0
  59. package/dist/components/controls/password-input/usePasswordRules.mjs +2 -0
  60. package/dist/components/controls/password-input/usePasswordRules.mjs.map +1 -0
  61. package/dist/components/controls/password-input-strength/{PasswordInputStrength.d.mts → oldPasswordInputStrength.d.mts} +4 -4
  62. package/dist/components/controls/password-input-strength/oldPasswordInputStrength.d.mts.map +1 -0
  63. package/dist/components/controls/password-input-strength/{PasswordInputStrength.mjs → oldPasswordInputStrength.mjs} +2 -2
  64. package/dist/components/controls/password-input-strength/oldPasswordInputStrength.mjs.map +1 -0
  65. package/dist/components/controls/radio/Radio.d.mts.map +1 -1
  66. package/dist/components/controls/radio/Radio.mjs.map +1 -1
  67. package/dist/components/controls/radio-group/RadioGroup.mjs.map +1 -1
  68. package/dist/components/controls/select/Select.d.mts +2 -2
  69. package/dist/components/controls/select/Select.d.mts.map +1 -1
  70. package/dist/components/controls/select/Select.mjs.map +1 -1
  71. package/dist/components/controls/text-input/TextInput.d.mts +3 -16
  72. package/dist/components/controls/text-input/TextInput.d.mts.map +1 -1
  73. package/dist/components/controls/text-input/TextInput.mjs +1 -1
  74. package/dist/components/controls/text-input/TextInput.mjs.map +1 -1
  75. package/dist/components/controls/textarea/Textarea.d.mts +2 -2
  76. package/dist/components/controls/utils/chevron/Chevron.d.mts +27 -1
  77. package/dist/components/controls/utils/chevron/Chevron.d.mts.map +1 -0
  78. package/dist/components/controls/utils/chevron/Chevron.mjs.map +1 -1
  79. package/dist/components/controls/utils/clear-button/ClearButton.d.mts +26 -1
  80. package/dist/components/controls/utils/clear-button/ClearButton.d.mts.map +1 -0
  81. package/dist/components/controls/utils/clear-button/ClearButton.mjs.map +1 -1
  82. package/dist/components/controls/utils/index.d.mts +2 -2
  83. package/dist/components/data-display/assigned-user/AssignedUser.d.mts +37 -0
  84. package/dist/components/data-display/assigned-user/AssignedUser.d.mts.map +1 -0
  85. package/dist/components/data-display/assigned-user/AssignedUser.mjs +2 -0
  86. package/dist/components/data-display/assigned-user/AssignedUser.mjs.map +1 -0
  87. package/dist/components/data-display/avatar/Avatar.d.mts +2 -2
  88. package/dist/components/data-display/badge/Badge.d.mts +2 -2
  89. package/dist/components/data-display/calendar/Calendar.d.mts +4 -4
  90. package/dist/components/data-display/calendar/Calendar.d.mts.map +1 -1
  91. package/dist/components/data-display/calendar/Calendar.mjs.map +1 -1
  92. package/dist/components/data-display/icons/icon/Icon.d.mts +2 -4
  93. package/dist/components/data-display/icons/icon/Icon.d.mts.map +1 -1
  94. package/dist/components/data-display/icons/icon/Icon.mjs +1 -1
  95. package/dist/components/data-display/icons/icon/Icon.mjs.map +1 -1
  96. package/dist/components/data-display/icons/icon-raw/IconRaw.d.mts.map +1 -1
  97. package/dist/components/data-display/icons/icon-raw/IconRaw.mjs.map +1 -1
  98. package/dist/components/data-display/icons/icon-svg/IconSvg.d.mts +24 -0
  99. package/dist/components/data-display/icons/icon-svg/IconSvg.d.mts.map +1 -0
  100. package/dist/components/data-display/icons/icon-svg/IconSvg.mjs +2 -0
  101. package/dist/components/data-display/icons/icon-svg/IconSvg.mjs.map +1 -0
  102. package/dist/components/data-display/index.d.mts +9 -5
  103. package/dist/components/data-display/indicator/Indicator.d.mts.map +1 -1
  104. package/dist/components/data-display/indicator/Indicator.mjs.map +1 -1
  105. package/dist/components/data-display/loader-dot/LoaderDot.d.mts +2 -2
  106. package/dist/components/data-display/loader-dot/LoaderDot.d.mts.map +1 -1
  107. package/dist/components/data-display/loader-dot/LoaderDot.mjs.map +1 -1
  108. package/dist/components/data-display/loader-oval/LoaderOval.d.mts +2 -2
  109. package/dist/components/data-display/logos/logo-image/LogoImage.d.mts.map +1 -1
  110. package/dist/components/data-display/logos/logo-image/LogoImage.mjs.map +1 -1
  111. package/dist/components/data-display/logos/logo-svg/LogoSvg.d.mts.map +1 -1
  112. package/dist/components/data-display/logos/logo-svg/LogoSvg.mjs.map +1 -1
  113. package/dist/components/data-display/removable-item/RemovableItem.d.mts +29 -0
  114. package/dist/components/data-display/removable-item/RemovableItem.d.mts.map +1 -0
  115. package/dist/components/data-display/removable-item/RemovableItem.mjs +2 -0
  116. package/dist/components/data-display/removable-item/RemovableItem.mjs.map +1 -0
  117. package/dist/components/data-display/tag/Tag.d.mts +3 -3
  118. package/dist/components/data-display/tag/Tag.mjs.map +1 -1
  119. package/dist/components/data-display/tag-group/TagGroup.d.mts +2 -2
  120. package/dist/components/data-display/tag-group/TagGroup.mjs.map +1 -1
  121. package/dist/components/data-display/uploaded-file/UploadedFile.d.mts +17 -19
  122. package/dist/components/data-display/uploaded-file/UploadedFile.d.mts.map +1 -1
  123. package/dist/components/data-display/uploaded-file/UploadedFile.mjs +1 -1
  124. package/dist/components/data-display/uploaded-file/UploadedFile.mjs.map +1 -1
  125. package/dist/components/data-display/uploaded-file/UploadedFileDetails.d.mts +23 -0
  126. package/dist/components/data-display/uploaded-file/UploadedFileDetails.d.mts.map +1 -0
  127. package/dist/components/data-display/uploaded-file/UploadedFileDetails.mjs +2 -0
  128. package/dist/components/data-display/uploaded-file/UploadedFileDetails.mjs.map +1 -0
  129. package/dist/components/data-display/uploaded-file/UploadedFileIcon.mjs +2 -0
  130. package/dist/components/data-display/uploaded-file/UploadedFileIcon.mjs.map +1 -0
  131. package/dist/components/forms/Form.d.mts +114 -0
  132. package/dist/components/forms/Form.d.mts.map +1 -0
  133. package/dist/components/forms/Form.mjs +2 -0
  134. package/dist/components/forms/Form.mjs.map +1 -0
  135. package/dist/components/forms/FormBase.mjs +2 -0
  136. package/dist/components/forms/FormBase.mjs.map +1 -0
  137. package/dist/components/forms/FormErrorBox.mjs +2 -0
  138. package/dist/components/forms/FormErrorBox.mjs.map +1 -0
  139. package/dist/components/forms/controls/FormCheckbox.mjs +2 -0
  140. package/dist/components/forms/controls/FormCheckbox.mjs.map +1 -0
  141. package/dist/components/forms/controls/FormHidden.mjs +2 -0
  142. package/dist/components/forms/controls/FormHidden.mjs.map +1 -0
  143. package/dist/components/forms/controls/FormPassword.mjs +2 -0
  144. package/dist/components/forms/controls/FormPassword.mjs.map +1 -0
  145. package/dist/components/forms/controls/FormSubmit.mjs +2 -0
  146. package/dist/components/forms/controls/FormSubmit.mjs.map +1 -0
  147. package/dist/components/forms/controls/FormTextInput.mjs +2 -0
  148. package/dist/components/forms/controls/FormTextInput.mjs.map +1 -0
  149. package/dist/components/forms/controls/find-form-components.mjs +2 -0
  150. package/dist/components/forms/controls/find-form-components.mjs.map +1 -0
  151. package/dist/components/forms/controls/index.mjs +2 -0
  152. package/dist/components/forms/controls/index.mjs.map +1 -0
  153. package/dist/components/forms/controls/register-components.mjs +2 -0
  154. package/dist/components/forms/controls/register-components.mjs.map +1 -0
  155. package/dist/components/forms/index.d.mts +3 -0
  156. package/dist/components/forms/rules/confirmed.mjs +2 -0
  157. package/dist/components/forms/rules/confirmed.mjs.map +1 -0
  158. package/dist/components/forms/rules/create-rule.d.mts +1 -0
  159. package/dist/components/forms/rules/create-rule.mjs +2 -0
  160. package/dist/components/forms/rules/create-rule.mjs.map +1 -0
  161. package/dist/components/forms/rules/extract-form-rules.mjs +2 -0
  162. package/dist/components/forms/rules/extract-form-rules.mjs.map +1 -0
  163. package/dist/components/forms/rules/in.mjs +2 -0
  164. package/dist/components/forms/rules/in.mjs.map +1 -0
  165. package/dist/components/forms/rules/index.mjs +2 -0
  166. package/dist/components/forms/rules/index.mjs.map +1 -0
  167. package/dist/components/forms/rules/numeric.mjs +2 -0
  168. package/dist/components/forms/rules/numeric.mjs.map +1 -0
  169. package/dist/components/forms/rules/password-rules.d.mts +7 -0
  170. package/dist/components/forms/rules/password-rules.d.mts.map +1 -0
  171. package/dist/components/forms/rules/password-rules.mjs +2 -0
  172. package/dist/components/forms/rules/password-rules.mjs.map +1 -0
  173. package/dist/components/forms/rules/password.mjs +2 -0
  174. package/dist/components/forms/rules/password.mjs.map +1 -0
  175. package/dist/components/forms/rules/required.mjs +2 -0
  176. package/dist/components/forms/rules/required.mjs.map +1 -0
  177. package/dist/components/forms/rules/zod.d.mts +298 -0
  178. package/dist/components/forms/rules/zod.d.mts.map +1 -0
  179. package/dist/components/forms/rules/zod.mjs +2 -0
  180. package/dist/components/forms/rules/zod.mjs.map +1 -0
  181. package/dist/components/index.d.mts +37 -26
  182. package/dist/components/layouts/top-bar/TopBar.d.mts +2 -2
  183. package/dist/components/layouts/top-bar/TopBar.d.mts.map +1 -1
  184. package/dist/components/layouts/top-bar/TopBar.mjs.map +1 -1
  185. package/dist/components/misc/horizontal-divider/HorizontalDivider.d.mts +2 -2
  186. package/dist/components/misc/scroll-area/ScrollArea.d.mts +1 -1
  187. package/dist/components/misc/scroll-area/ScrollArea.mjs.map +1 -1
  188. package/dist/components/misc/scroll-area-autosize/ScrollAreaAutosize.d.mts.map +1 -1
  189. package/dist/components/misc/scroll-area-autosize/ScrollAreaAutosize.mjs.map +1 -1
  190. package/dist/components/misc/visually-hidden/VisuallyHidden.d.mts +2 -2
  191. package/dist/components/navigations/breadcrumbs/Breadcrumbs.d.mts +2 -2
  192. package/dist/components/navigations/menu/Menu.d.mts +4 -4
  193. package/dist/components/navigations/menu/Menu.d.mts.map +1 -1
  194. package/dist/components/navigations/menu/Menu.mjs.map +1 -1
  195. package/dist/components/overlays/index.d.mts +9 -9
  196. package/dist/components/overlays/modal/Modal.d.mts +11 -11
  197. package/dist/components/overlays/modal/Modal.d.mts.map +1 -1
  198. package/dist/components/overlays/modal/Modal.mjs.map +1 -1
  199. package/dist/components/overlays/modal/ModalContext.mjs +1 -1
  200. package/dist/components/overlays/modal/ModalContext.mjs.map +1 -1
  201. package/dist/components/overlays/modals/ModalsProvider.d.mts +3 -3
  202. package/dist/components/overlays/modals/ModalsProvider.d.mts.map +1 -1
  203. package/dist/components/overlays/modals/ModalsProvider.mjs.map +1 -1
  204. package/dist/components/overlays/modals/alert/ModalAlert.d.mts +2 -2
  205. package/dist/components/overlays/modals/alert/ModalAlert.d.mts.map +1 -1
  206. package/dist/components/overlays/modals/alert/ModalAlert.mjs +1 -1
  207. package/dist/components/overlays/modals/alert/ModalAlert.mjs.map +1 -1
  208. package/dist/components/overlays/modals/alert/alert.d.mts.map +1 -1
  209. package/dist/components/overlays/modals/alert/alert.mjs.map +1 -1
  210. package/dist/components/overlays/modals/confirm/ModalConfirm.d.mts +2 -2
  211. package/dist/components/overlays/modals/confirm/ModalConfirm.d.mts.map +1 -1
  212. package/dist/components/overlays/modals/confirm/ModalConfirm.mjs +1 -1
  213. package/dist/components/overlays/modals/confirm/ModalConfirm.mjs.map +1 -1
  214. package/dist/components/overlays/modals/confirm/confirm.d.mts.map +1 -1
  215. package/dist/components/overlays/modals/confirm/confirm.mjs.map +1 -1
  216. package/dist/components/overlays/modals/registry/createModal.d.mts +1 -1
  217. package/dist/components/overlays/modals/registry/createModal.d.mts.map +1 -1
  218. package/dist/components/overlays/modals/registry/createModal.mjs.map +1 -1
  219. package/dist/components/overlays/modals/registry/openModalById.d.mts.map +1 -1
  220. package/dist/components/overlays/modals/registry/openModalById.mjs.map +1 -1
  221. package/dist/components/overlays/modals/registry/registerModal.d.mts.map +1 -1
  222. package/dist/components/overlays/modals/registry/registerModal.mjs.map +1 -1
  223. package/dist/components/overlays/tooltip/Tooltip.d.mts +2 -2
  224. package/dist/components/overlays/tooltip/Tooltip.d.mts.map +1 -1
  225. package/dist/components/overlays/tooltip/Tooltip.mjs.map +1 -1
  226. package/dist/index.d.mts +40 -30
  227. package/dist/index.mjs +1 -1
  228. package/dist/semedlab/components/data-display/index.d.mts +2 -2
  229. package/dist/semedlab/components/data-display/notification/Notification.d.mts.map +1 -1
  230. package/dist/semedlab/components/data-display/notification/Notification.mjs.map +1 -1
  231. package/dist/semedlab/components/data-display/user-group-preview/UserGroupPreview.d.mts +2 -2
  232. package/dist/semedlab/components/data-display/user-group-preview/UserGroupPreview.d.mts.map +1 -1
  233. package/dist/semedlab/components/data-display/user-group-preview/UserGroupPreview.mjs.map +1 -1
  234. package/dist/semedlab/components/data-display/user-profile/UserProfile.d.mts +0 -2
  235. package/dist/semedlab/components/data-display/user-profile/UserProfile.d.mts.map +1 -1
  236. package/dist/semedlab/components/data-display/user-profile/UserProfile.mjs +1 -1
  237. package/dist/semedlab/components/data-display/user-profile/UserProfile.mjs.map +1 -1
  238. package/dist/semedlab/components/index.d.mts +3 -3
  239. package/dist/semedlab/components/navigations/backoffice-top-bar/BackofficeTopBar.d.mts +2 -2
  240. package/dist/semedlab/components/navigations/backoffice-top-bar/BackofficeTopBar.d.mts.map +1 -1
  241. package/dist/semedlab/components/navigations/backoffice-top-bar/BackofficeTopBar.mjs.map +1 -1
  242. package/dist/semedlab/components/navigations/breadcrumbs-bar/BreadcrumbsBar.d.mts.map +1 -1
  243. package/dist/semedlab/components/navigations/breadcrumbs-bar/BreadcrumbsBar.mjs.map +1 -1
  244. package/dist/semedlab/components/navigations/index.d.mts +3 -3
  245. package/dist/semedlab/components/navigations/notification-list/NotificationList.d.mts +2 -2
  246. package/dist/semedlab/components/navigations/notification-list/NotificationList.d.mts.map +1 -1
  247. package/dist/semedlab/components/navigations/notification-list/NotificationList.mjs.map +1 -1
  248. package/dist/semedlab/components/navigations/notification-menu/NotificationMenu.d.mts +2 -2
  249. package/dist/semedlab/components/navigations/notification-menu/NotificationMenu.d.mts.map +1 -1
  250. package/dist/semedlab/components/navigations/notification-menu/NotificationMenu.mjs.map +1 -1
  251. package/dist/semedlab/components/navigations/profile-menu/ProfileMenu.d.mts +2 -2
  252. package/dist/semedlab/components/navigations/profile-menu/ProfileMenu.mjs.map +1 -1
  253. package/package.json +7 -7
  254. package/dist/components/controls/password-input-strength/PasswordInputStrength.d.mts.map +0 -1
  255. package/dist/components/controls/password-input-strength/PasswordInputStrength.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconSvg.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-svg/IconSvg.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n iconSvg,\n iconSvgRoot,\n iconSvgSvg,\n} from '@mage-ui/styled-system/recipes';\n\nexport type IconSvgProps = {\n classNames?: {\n iconSvg?: string;\n root?: string;\n svg?: string;\n };\n width?: number | string;\n height?: number | string;\n viewBox?: string;\n children: ReactNode;\n};\n\nexport const IconSvg = ({\n classNames,\n children,\n width,\n height,\n viewBox,\n}: IconSvgProps): ReactNode => {\n return (\n <span\n className={cx(\n classNames?.iconSvg ?? iconSvg(),\n classNames?.root ?? iconSvgRoot(),\n )}\n aria-hidden='true'\n >\n <svg\n className={classNames?.svg ?? iconSvgSvg()}\n width={width}\n height={height}\n viewBox={viewBox}\n aria-hidden='true'\n focusable='false'\n xmlns='http://www.w3.org/2000/svg'\n >\n {children}\n </svg>\n </span>\n );\n};\n"],"mappings":"kLAqBA,MAAa,GAAW,CACtB,aACA,WACA,QACA,SACA,aAGE,EAAC,OAAA,CACC,UAAW,EACT,GAAY,SAAW,GAAS,CAChC,GAAY,MAAQ,GAAa,CAClC,CACD,cAAY,gBAEZ,EAAC,MAAA,CACC,UAAW,GAAY,KAAO,GAAY,CACnC,QACC,SACC,UACT,cAAY,OACZ,UAAU,QACV,MAAM,6BAEL,YACG,EACD"}
@@ -1,14 +1,18 @@
1
+ import { AssignedUser, AssignedUserProps } from "./assigned-user/AssignedUser.mjs";
1
2
  import { Avatar, AvatarProps } from "./avatar/Avatar.mjs";
2
3
  import { Badge, BadgeProps } from "./badge/Badge.mjs";
3
- import { Tag, TagProps } from "./tag/Tag.mjs";
4
- import { TagGroup, TagGroupProps } from "./tag-group/TagGroup.mjs";
4
+ import { Calendar, CalendarEvent, CalendarProps, DateLocalizer, momentLocalizer } from "./calendar/Calendar.mjs";
5
5
  import { Icon, IconProps } from "./icons/icon/Icon.mjs";
6
6
  import { IconRaw, IconRawProps } from "./icons/icon-raw/IconRaw.mjs";
7
+ import { IconSvg, IconSvgProps } from "./icons/icon-svg/IconSvg.mjs";
7
8
  import { IconWrapped, IconWrappedProps } from "./icons/icon-wrapped/IconWrapped.mjs";
8
- import { UploadedFile, UploadedFileProps } from "./uploaded-file/UploadedFile.mjs";
9
+ import { Indicator, IndicatorProps } from "./indicator/Indicator.mjs";
9
10
  import { LoaderDot, LoaderDotProps } from "./loader-dot/LoaderDot.mjs";
10
11
  import { LoaderOval, LoaderOvalProps } from "./loader-oval/LoaderOval.mjs";
11
- import { Calendar, CalendarEvent, CalendarProps, momentLocalizer } from "./calendar/Calendar.mjs";
12
12
  import { LogoImage, LogoImageProps } from "./logos/logo-image/LogoImage.mjs";
13
13
  import { LogoSvg, LogoSvgProps } from "./logos/logo-svg/LogoSvg.mjs";
14
- import { Indicator, IndicatorProps } from "./indicator/Indicator.mjs";
14
+ import { RemovableItem, RemovableItemProps } from "./removable-item/RemovableItem.mjs";
15
+ import { Tag, TagProps } from "./tag/Tag.mjs";
16
+ import { TagGroup, TagGroupProps } from "./tag-group/TagGroup.mjs";
17
+ import { UploadedFile, UploadedFileProps } from "./uploaded-file/UploadedFile.mjs";
18
+ import { UploadedFileDetails, UploadedFileDetailsProps } from "./uploaded-file/UploadedFileDetails.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.d.mts","names":[],"sources":["../../../../src/components/data-display/indicator/Indicator.tsx"],"mappings":";;;;KASK,iBAAA;AAAA,KAkBO,cAAA,GAAiB,qBAAA;EAC3B,KAAA;EACA,SAAA;EACA,QAAA;EACA,MAAA;EACA,QAAA,GAAW,iBAAA;EACX,UAAA;IACE,SAAA;IACA,IAAA;IACA,KAAA;EAAA;AAAA;AAAA,cAaS,SAAA,EAAS,MAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,cAAA,WAAA,MAAA,CAAA,aAAA,CAAA,cAAA"}
1
+ {"version":3,"file":"Indicator.d.mts","names":[],"sources":["../../../../src/components/data-display/indicator/Indicator.tsx"],"mappings":";;;;KAUK,iBAAA;AAAA,KAkBO,cAAA,GAAiB,qBAAA;EAC3B,KAAA;EACA,SAAA;EACA,QAAA;EACA,MAAA;EACA,QAAA,GAAW,iBAAA;EACX,UAAA;IACE,SAAA;IACA,IAAA;IACA,KAAA;EAAA;AAAA;AAAA,cAaS,SAAA,EAAS,MAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,cAAA,WAAA,MAAA,CAAA,aAAA,CAAA,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Indicator.mjs","names":[],"sources":["../../../../src/components/data-display/indicator/Indicator.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css'\nimport { visuallyHidden } from '@mage-ui/styled-system/patterns'\nimport {\n indicator,\n indicatorLabel,\n indicatorRoot,\n} from '@mage-ui/styled-system/recipes'\nimport { forwardRef, type ComponentPropsWithRef} from 'react'\n\ntype IndicatorPosition =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'bottom-center'\n | 'center-start'\n | 'center-end'\n | 'center-center'\n\ntype Offset = {\n top?: string\n bottom?: string\n left?: string\n right?: string\n}\n\nexport type IndicatorProps = ComponentPropsWithRef<'div'> & {\n label?: string | number\n ariaLabel?: string\n disabled?: boolean\n offset?: number\n position?: IndicatorPosition\n classNames?: {\n indicator?: string\n root?: string\n label?: string\n }\n}\n\nconst calculateOffset = (position: string, offset: number) => {\n const offsetLabel = {} as Offset\n if (position.includes('top') && offset) offsetLabel.top = offset + 'px'\n if (position.includes('bottom') && offset) offsetLabel.bottom = offset + 'px'\n if (position.includes('start') && offset) offsetLabel.left = offset + 'px'\n if (position.includes('end') && offset) offsetLabel.right = offset + 'px'\n return offsetLabel\n}\n\nexport const Indicator = forwardRef<HTMLDivElement, IndicatorProps>(\n (\n {\n children,\n label = undefined,\n disabled = false,\n position = 'top-end',\n offset = 0,\n classNames,\n ariaLabel\n },\n ref\n ) => {\n return (\n <div\n className={cx(\n classNames?.indicator ?? indicator(),\n classNames?.root ?? indicatorRoot()\n )}\n ref={ref}\n >\n {!disabled && (\n <>\n {ariaLabel && <span className={visuallyHidden()}>{ariaLabel}</span>}\n <span\n className={cx(\n indicatorLabel({ position }),\n classNames?.label\n )}\n style={calculateOffset(position, offset)}\n >\n {label}\n </span>\n </>\n )}\n {children}\n </div>\n )\n }\n)\n\nIndicator.displayName = 'Indicator'"],"mappings":"sTAwCA,MAAM,GAAmB,EAAkB,IAAmB,CAC5D,IAAM,EAAc,EAAE,CAKtB,OAJI,EAAS,SAAS,MAAM,EAAI,IAAQ,EAAY,IAAM,EAAS,MAC/D,EAAS,SAAS,SAAS,EAAI,IAAQ,EAAY,OAAS,EAAS,MACrE,EAAS,SAAS,QAAQ,EAAI,IAAQ,EAAY,KAAO,EAAS,MAClE,EAAS,SAAS,MAAM,EAAI,IAAQ,EAAY,MAAQ,EAAS,MAC9D,GAGI,EAAY,GAErB,CACE,WACA,QAAQ,IAAA,GACR,WAAW,GACX,WAAW,UACX,SAAS,EACT,aACA,aAEF,IAGE,EAAC,MAAA,CACC,UAAW,EACT,GAAY,WAAa,GAAW,CACpC,GAAY,MAAQ,GAAe,CACpC,CACI,gBAEJ,CAAC,GACA,EAAA,EAAA,CAAA,SAAA,CACG,GAAa,EAAC,OAAA,CAAK,UAAW,GAAgB,UAAG,GAAiB,CACnE,EAAC,OAAA,CACC,UAAW,EACT,EAAe,CAAE,WAAU,CAAC,CAC5B,GAAY,MACb,CACD,MAAO,EAAgB,EAAU,EAAO,UAEvC,GACI,CAAA,CAAA,CACN,CAEJ,EAAA,EACG,CAGX,CAED,EAAU,YAAc"}
1
+ {"version":3,"file":"Indicator.mjs","names":[],"sources":["../../../../src/components/data-display/indicator/Indicator.tsx"],"sourcesContent":["import { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { visuallyHidden } from '@mage-ui/styled-system/patterns';\nimport {\n indicator,\n indicatorLabel,\n indicatorRoot,\n} from '@mage-ui/styled-system/recipes';\n\ntype IndicatorPosition =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'bottom-center'\n | 'center-start'\n | 'center-end'\n | 'center-center';\n\ntype Offset = {\n top?: string;\n bottom?: string;\n left?: string;\n right?: string;\n};\n\nexport type IndicatorProps = ComponentPropsWithRef<'div'> & {\n label?: string | number;\n ariaLabel?: string;\n disabled?: boolean;\n offset?: number;\n position?: IndicatorPosition;\n classNames?: {\n indicator?: string;\n root?: string;\n label?: string;\n };\n};\n\nconst calculateOffset = (position: string, offset: number) => {\n const offsetLabel = {} as Offset;\n if (position.includes('top') && offset) offsetLabel.top = offset + 'px';\n if (position.includes('bottom') && offset) offsetLabel.bottom = offset + 'px';\n if (position.includes('start') && offset) offsetLabel.left = offset + 'px';\n if (position.includes('end') && offset) offsetLabel.right = offset + 'px';\n return offsetLabel;\n};\n\nexport const Indicator = forwardRef<HTMLDivElement, IndicatorProps>(\n (\n {\n children,\n label = undefined,\n disabled = false,\n position = 'top-end',\n offset = 0,\n classNames,\n ariaLabel,\n },\n ref,\n ) => {\n return (\n <div\n className={cx(\n classNames?.indicator ?? indicator(),\n classNames?.root ?? indicatorRoot(),\n )}\n ref={ref}\n >\n {!disabled && (\n <>\n {ariaLabel && <span className={visuallyHidden()}>{ariaLabel}</span>}\n <span\n className={cx(indicatorLabel({ position }), classNames?.label)}\n style={calculateOffset(position, offset)}\n >\n {label}\n </span>\n </>\n )}\n {children}\n </div>\n );\n },\n);\n\nIndicator.displayName = 'Indicator';\n"],"mappings":"sTAyCA,MAAM,GAAmB,EAAkB,IAAmB,CAC5D,IAAM,EAAc,EAAE,CAKtB,OAJI,EAAS,SAAS,MAAM,EAAI,IAAQ,EAAY,IAAM,EAAS,MAC/D,EAAS,SAAS,SAAS,EAAI,IAAQ,EAAY,OAAS,EAAS,MACrE,EAAS,SAAS,QAAQ,EAAI,IAAQ,EAAY,KAAO,EAAS,MAClE,EAAS,SAAS,MAAM,EAAI,IAAQ,EAAY,MAAQ,EAAS,MAC9D,GAGI,EAAY,GAErB,CACE,WACA,QAAQ,IAAA,GACR,WAAW,GACX,WAAW,UACX,SAAS,EACT,aACA,aAEF,IAGE,EAAC,MAAA,CACC,UAAW,EACT,GAAY,WAAa,GAAW,CACpC,GAAY,MAAQ,GAAe,CACpC,CACI,gBAEJ,CAAC,GACA,EAAA,EAAA,CAAA,SAAA,CACG,GAAa,EAAC,OAAA,CAAK,UAAW,GAAgB,UAAG,GAAiB,CACnE,EAAC,OAAA,CACC,UAAW,EAAG,EAAe,CAAE,WAAU,CAAC,CAAE,GAAY,MAAM,CAC9D,MAAO,EAAgB,EAAU,EAAO,UAEvC,GACI,CAAA,CAAA,CACN,CAEJ,EAAA,EACG,CAGX,CAED,EAAU,YAAc"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime44 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime43 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/data-display/loader-dot/LoaderDot.d.ts
4
4
  type LoaderDotProps = {
@@ -9,7 +9,7 @@ type LoaderDotProps = {
9
9
  };
10
10
  declare const LoaderDot: ({
11
11
  classNames
12
- }: LoaderDotProps) => react_jsx_runtime44.JSX.Element;
12
+ }: LoaderDotProps) => react_jsx_runtime43.JSX.Element;
13
13
  //#endregion
14
14
  export { LoaderDot, LoaderDotProps };
15
15
  //# sourceMappingURL=LoaderDot.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoaderDot.d.mts","names":[],"sources":["../../../../src/components/data-display/loader-dot/LoaderDot.tsx"],"mappings":";;;KAIY,cAAA;EACV,UAAA;IACE,MAAA;IACA,IAAA;EAAA;AAAA;AAAA,cAIS,SAAA;EAAc;AAAA,GAAgB,cAAA,KAAc,mBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"LoaderDot.d.mts","names":[],"sources":["../../../../src/components/data-display/loader-dot/LoaderDot.tsx"],"mappings":";;;KAIY,cAAA;EACV,UAAA;IACE,MAAA;IACA,IAAA;EAAA;AAAA;AAAA,cAIS,SAAA;EAAa;AAAA,GAAgB,cAAA,KAAc,mBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"LoaderDot.mjs","names":[],"sources":["../../../../src/components/data-display/loader-dot/LoaderDot.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport { loaderDot, loaderDotRoot } from '@mage-ui/styled-system/recipes';\nimport { Loader } from '@mantine/core';\n\nexport type LoaderDotProps = {\n classNames?: {\n loader?: string;\n root?: string;\n };\n};\n\nexport const LoaderDot = ({ classNames }: LoaderDotProps) => {\n return (\n <Loader\n type='dots'\n classNames={{\n root: cx(\n classNames?.loader ?? loaderDot(),\n classNames?.root ?? loaderDotRoot(),\n ),\n }}\n />\n );\n};\n"],"mappings":"6MAWA,MAAa,GAAc,CAAE,gBAEzB,EAAC,EAAA,CACC,KAAK,OACL,WAAY,CACV,KAAM,EACJ,GAAY,QAAU,GAAW,CACjC,GAAY,MAAQ,GAAe,CACpC,CACF,EACD"}
1
+ {"version":3,"file":"LoaderDot.mjs","names":[],"sources":["../../../../src/components/data-display/loader-dot/LoaderDot.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport { loaderDot, loaderDotRoot } from '@mage-ui/styled-system/recipes';\nimport { Loader } from '@mantine/core';\n\nexport type LoaderDotProps = {\n classNames?: {\n loader?: string;\n root?: string;\n };\n};\n\nexport const LoaderDot = ({ classNames }: LoaderDotProps) => {\n return (\n <Loader\n type='dots'\n classNames={{\n root: cx(\n classNames?.loader ?? loaderDot(),\n classNames?.root ?? loaderDotRoot(),\n ),\n }}\n />\n );\n};\n"],"mappings":"6MAWA,MAAa,GAAa,CAAE,gBAExB,EAAC,EAAA,CACC,KAAK,OACL,WAAY,CACV,KAAM,EACJ,GAAY,QAAU,GAAW,CACjC,GAAY,MAAQ,GAAe,CACpC,CACF,EACD"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime45 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime44 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/data-display/loader-oval/LoaderOval.d.ts
4
4
  type LoaderOvalProps = {
@@ -9,7 +9,7 @@ type LoaderOvalProps = {
9
9
  };
10
10
  declare const LoaderOval: ({
11
11
  classNames
12
- }: LoaderOvalProps) => react_jsx_runtime45.JSX.Element;
12
+ }: LoaderOvalProps) => react_jsx_runtime44.JSX.Element;
13
13
  //#endregion
14
14
  export { LoaderOval, LoaderOvalProps };
15
15
  //# sourceMappingURL=LoaderOval.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogoImage.d.mts","names":[],"sources":["../../../../../src/components/data-display/logos/logo-image/LogoImage.tsx"],"mappings":";;;KAQY,cAAA;EACV,IAAA;EACA,GAAA;EACA,OAAA;EACA,GAAA;EACA,SAAA;EACA,KAAA;EACA,KAAA;EACA,MAAA;EACA,UAAA;IACE,IAAA;IACA,IAAA;IACA,KAAA;EAAA;AAAA,IAEA,qBAAA;AAAA,cAES,SAAA;EAAa,IAAA;EAAA,GAAA;EAAA,OAAA;EAAA,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,KAAA;EAAA,MAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GAWvB,cAAA,KAAiB,SAAA"}
1
+ {"version":3,"file":"LogoImage.d.mts","names":[],"sources":["../../../../../src/components/data-display/logos/logo-image/LogoImage.tsx"],"mappings":";;;KASY,cAAA;EACV,IAAA;EACA,GAAA;EACA,OAAA;EACA,GAAA;EACA,SAAA;EACA,KAAA;EACA,KAAA;EACA,MAAA;EACA,UAAA;IACE,IAAA;IACA,IAAA;IACA,KAAA;EAAA;AAAA,IAEA,qBAAA;AAAA,cAES,SAAA;EAAa,IAAA;EAAA,GAAA;EAAA,OAAA;EAAA,GAAA;EAAA,SAAA;EAAA,KAAA;EAAA,KAAA;EAAA,MAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GAWvB,cAAA,KAAiB,SAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogoImage.mjs","names":[],"sources":["../../../../../src/components/data-display/logos/logo-image/LogoImage.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport {\n logoImage,\n logoImageRoot,\n logoImageImage,\n} from '@mage-ui/styled-system/recipes';\nimport type { ComponentPropsWithRef, ReactNode } from 'react';\n\nexport type LogoImageProps = {\n href?: string;\n src: string;\n srcDark?: string;\n alt: string;\n ariaLabel?: string;\n theme?: 'light' | 'dark';\n width: number;\n height: number;\n classNames?: {\n logo?: string;\n root?: string;\n image?: string;\n };\n} & ComponentPropsWithRef<'a'>;\n\nexport const LogoImage = ({\n href = '/',\n src,\n srcDark,\n alt,\n ariaLabel,\n theme = 'light',\n width,\n height,\n classNames,\n ...props\n}: LogoImageProps): ReactNode => {\n const resolvedSrc = theme === 'dark' && srcDark ? srcDark : src; // que vingui de fora\n\n // TODO: possibilitat usar link next\n // TODO: next image\n // TODO: no té perquè tenir link\n return (\n <a\n href={href}\n aria-label={ariaLabel}\n className={cx(\n classNames?.logo ?? logoImage(),\n classNames?.root ?? logoImageRoot(),\n )}\n {...props}\n >\n <img\n src={resolvedSrc}\n alt={alt}\n width={width}\n height={height}\n loading='eager'\n className={classNames?.image ?? logoImageImage()}\n />\n </a>\n );\n};\n"],"mappings":"0LAwBA,MAAa,GAAa,CACxB,OAAO,IACP,MACA,UACA,MACA,YACA,QAAQ,QACR,QACA,SACA,aACA,GAAG,KAC4B,CAC/B,IAAM,EAAc,IAAU,QAAU,EAAU,EAAU,EAK5D,OACE,EAAC,IAAA,CACO,OACN,aAAY,EACZ,UAAW,EACT,GAAY,MAAQ,GAAW,CAC/B,GAAY,MAAQ,GAAe,CACpC,CACD,GAAI,WAEJ,EAAC,MAAA,CACC,IAAK,EACA,MACE,QACC,SACR,QAAQ,QACR,UAAW,GAAY,OAAS,GAAgB,EAChD,EACA"}
1
+ {"version":3,"file":"LogoImage.mjs","names":[],"sources":["../../../../../src/components/data-display/logos/logo-image/LogoImage.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n logoImage,\n logoImageImage,\n logoImageRoot,\n} from '@mage-ui/styled-system/recipes';\n\nexport type LogoImageProps = {\n href?: string;\n src: string;\n srcDark?: string;\n alt: string;\n ariaLabel?: string;\n theme?: 'light' | 'dark';\n width: number;\n height: number;\n classNames?: {\n logo?: string;\n root?: string;\n image?: string;\n };\n} & ComponentPropsWithRef<'a'>;\n\nexport const LogoImage = ({\n href = '/',\n src,\n srcDark,\n alt,\n ariaLabel,\n theme = 'light',\n width,\n height,\n classNames,\n ...props\n}: LogoImageProps): ReactNode => {\n const resolvedSrc = theme === 'dark' && srcDark ? srcDark : src; // que vingui de fora\n\n // TODO: possibilitat usar link next\n // TODO: next image\n // TODO: no té perquè tenir link\n return (\n <a\n href={href}\n aria-label={ariaLabel}\n className={cx(\n classNames?.logo ?? logoImage(),\n classNames?.root ?? logoImageRoot(),\n )}\n {...props}\n >\n <img\n src={resolvedSrc}\n alt={alt}\n width={width}\n height={height}\n loading='eager'\n className={classNames?.image ?? logoImageImage()}\n />\n </a>\n );\n};\n"],"mappings":"0LAyBA,MAAa,GAAa,CACxB,OAAO,IACP,MACA,UACA,MACA,YACA,QAAQ,QACR,QACA,SACA,aACA,GAAG,KAC4B,CAC/B,IAAM,EAAc,IAAU,QAAU,EAAU,EAAU,EAK5D,OACE,EAAC,IAAA,CACO,OACN,aAAY,EACZ,UAAW,EACT,GAAY,MAAQ,GAAW,CAC/B,GAAY,MAAQ,GAAe,CACpC,CACD,GAAI,WAEJ,EAAC,MAAA,CACC,IAAK,EACA,MACE,QACC,SACR,QAAQ,QACR,UAAW,GAAY,OAAS,GAAgB,EAChD,EACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogoSvg.d.mts","names":[],"sources":["../../../../../src/components/data-display/logos/logo-svg/LogoSvg.tsx"],"mappings":";;;KAQY,YAAA;EACV,IAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA,EAAU,SAAA;EACV,UAAA;IACE,IAAA;IACA,IAAA;IACA,GAAA;EAAA;AAAA,IAEA,qBAAA;AAAA,cAES,OAAA;EAAW,IAAA;EAAA,SAAA;EAAA,KAAA;EAAA,MAAA;EAAA,OAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GASrB,YAAA,KAAe,SAAA"}
1
+ {"version":3,"file":"LogoSvg.d.mts","names":[],"sources":["../../../../../src/components/data-display/logos/logo-svg/LogoSvg.tsx"],"mappings":";;;KASY,YAAA;EACV,IAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA,EAAU,SAAA;EACV,UAAA;IACE,IAAA;IACA,IAAA;IACA,GAAA;EAAA;AAAA,IAEA,qBAAA;AAAA,cAES,OAAA;EAAW,IAAA;EAAA,SAAA;EAAA,KAAA;EAAA,MAAA;EAAA,OAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;AAAA,GASrB,YAAA,KAAe,SAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogoSvg.mjs","names":[],"sources":["../../../../../src/components/data-display/logos/logo-svg/LogoSvg.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport {\n logoSvg,\n logoSvgRoot,\n logoSvgSvg,\n} from '@mage-ui/styled-system/recipes';\nimport type { ComponentPropsWithRef, ReactNode } from 'react';\n\nexport type LogoSvgProps = {\n href?: string;\n ariaLabel?: string;\n width?: number | string;\n height?: number | string;\n viewBox?: string;\n children: ReactNode;\n classNames?: {\n logo?: string;\n root?: string;\n svg?: string;\n };\n} & ComponentPropsWithRef<'a'>;\n\nexport const LogoSvg = ({\n href = '/',\n ariaLabel,\n width,\n height,\n viewBox,\n children,\n classNames,\n ...props\n}: LogoSvgProps): ReactNode => {\n return (\n <a\n href={href}\n aria-label={ariaLabel}\n className={cx(\n classNames?.logo ?? logoSvg(),\n classNames?.root ?? logoSvgRoot(),\n )}\n {...props}\n >\n <svg\n width={width}\n height={height}\n viewBox={viewBox}\n className={classNames?.svg ?? logoSvgSvg()}\n fill='none'\n aria-hidden='true'\n focusable='false'\n xmlns='http://www.w3.org/2000/svg'\n >\n {children}\n </svg>\n </a>\n );\n};\n"],"mappings":"kLAsBA,MAAa,GAAW,CACtB,OAAO,IACP,YACA,QACA,SACA,UACA,WACA,aACA,GAAG,KAGD,EAAC,IAAA,CACO,OACN,aAAY,EACZ,UAAW,EACT,GAAY,MAAQ,GAAS,CAC7B,GAAY,MAAQ,GAAa,CAClC,CACD,GAAI,WAEJ,EAAC,MAAA,CACQ,QACC,SACC,UACT,UAAW,GAAY,KAAO,GAAY,CAC1C,KAAK,OACL,cAAY,OACZ,UAAU,QACV,MAAM,6BAEL,YACG,EACJ"}
1
+ {"version":3,"file":"LogoSvg.mjs","names":[],"sources":["../../../../../src/components/data-display/logos/logo-svg/LogoSvg.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n logoSvg,\n logoSvgRoot,\n logoSvgSvg,\n} from '@mage-ui/styled-system/recipes';\n\nexport type LogoSvgProps = {\n href?: string;\n ariaLabel?: string;\n width?: number | string;\n height?: number | string;\n viewBox?: string;\n children: ReactNode;\n classNames?: {\n logo?: string;\n root?: string;\n svg?: string;\n };\n} & ComponentPropsWithRef<'a'>;\n\nexport const LogoSvg = ({\n href = '/',\n ariaLabel,\n width,\n height,\n viewBox,\n children,\n classNames,\n ...props\n}: LogoSvgProps): ReactNode => {\n return (\n <a\n href={href}\n aria-label={ariaLabel}\n className={cx(\n classNames?.logo ?? logoSvg(),\n classNames?.root ?? logoSvgRoot(),\n )}\n {...props}\n >\n <svg\n width={width}\n height={height}\n viewBox={viewBox}\n className={classNames?.svg ?? logoSvgSvg()}\n fill='none'\n aria-hidden='true'\n focusable='false'\n xmlns='http://www.w3.org/2000/svg'\n >\n {children}\n </svg>\n </a>\n );\n};\n"],"mappings":"kLAuBA,MAAa,GAAW,CACtB,OAAO,IACP,YACA,QACA,SACA,UACA,WACA,aACA,GAAG,KAGD,EAAC,IAAA,CACO,OACN,aAAY,EACZ,UAAW,EACT,GAAY,MAAQ,GAAS,CAC7B,GAAY,MAAQ,GAAa,CAClC,CACD,GAAI,WAEJ,EAAC,MAAA,CACQ,QACC,SACC,UACT,UAAW,GAAY,KAAO,GAAY,CAC1C,KAAK,OACL,cAAY,OACZ,UAAU,QACV,MAAM,6BAEL,YACG,EACJ"}
@@ -0,0 +1,29 @@
1
+ import { ButtonIconProps } from "../../buttons/button-icon/ButtonIcon.mjs";
2
+ import "../../buttons/index.mjs";
3
+ import * as react_jsx_runtime45 from "react/jsx-runtime";
4
+ import { ReactNode } from "react";
5
+
6
+ //#region src/components/data-display/removable-item/RemovableItem.d.ts
7
+ type RemovableItemProps = {
8
+ startSlot?: ReactNode;
9
+ children: ReactNode;
10
+ onRemove: () => void;
11
+ removeButtonLabel?: string;
12
+ classNames?: {
13
+ container?: string;
14
+ root?: string;
15
+ section?: string;
16
+ content?: string;
17
+ buttonIcon?: ButtonIconProps['classNames'];
18
+ };
19
+ };
20
+ declare const RemovableItem: ({
21
+ startSlot,
22
+ children,
23
+ onRemove,
24
+ removeButtonLabel,
25
+ classNames
26
+ }: RemovableItemProps) => react_jsx_runtime45.JSX.Element;
27
+ //#endregion
28
+ export { RemovableItem, RemovableItemProps };
29
+ //# sourceMappingURL=RemovableItem.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemovableItem.d.mts","names":[],"sources":["../../../../src/components/data-display/removable-item/RemovableItem.tsx"],"mappings":";;;;;;KAgBY,kBAAA;EACV,SAAA,GAAY,SAAA;EACZ,QAAA,EAAU,SAAA;EACV,QAAA;EACA,iBAAA;EACA,UAAA;IACE,SAAA;IACA,IAAA;IACA,OAAA;IACA,OAAA;IACA,UAAA,GAAa,eAAA;EAAA;AAAA;AAAA,cAIJ,aAAA;EAAiB,SAAA;EAAA,QAAA;EAAA,QAAA;EAAA,iBAAA;EAAA;AAAA,GAM3B,kBAAA,KAAkB,mBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,2 @@
1
+ import{ButtonIcon as e}from"../../buttons/button-icon/ButtonIcon.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{removableItem as n,removableItemButtonIcon as r,removableItemButtonIconIcon as i,removableItemButtonIconIconRaw as a,removableItemButtonIconIconRawRoot as o,removableItemButtonIconRoot as s,removableItemContent as c,removableItemRoot as l,removableItemSection as u}from"@mage-ui/styled-system/recipes";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=({startSlot:p,children:m,onRemove:h,removeButtonLabel:g=`Remove`,classNames:_})=>f(`div`,{className:t(_?.container??n(),_?.root??l()),children:[p&&d(`div`,{className:_?.section??u(),children:p}),d(`div`,{className:_?.content??c(),children:m}),d(e,{label:g,onClick:h,path:`/icons/sprite-mage.svg`,name:`mage-removableitem-clear-button-x`,classNames:{buttonIcon:_?.buttonIcon?.buttonIcon??r(),root:_?.buttonIcon?.root??s(),icon:_?.buttonIcon?.icon??i(),iconRaw:{iconRaw:_?.buttonIcon?.iconRaw?.iconRaw??a(),root:_?.buttonIcon?.iconRaw?.root??o()}}})]});export{p as RemovableItem};
2
+ //# sourceMappingURL=RemovableItem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemovableItem.mjs","names":[],"sources":["../../../../src/components/data-display/removable-item/RemovableItem.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n removableItem,\n removableItemButtonIcon,\n removableItemButtonIconIcon,\n removableItemButtonIconIconRaw,\n removableItemButtonIconIconRawRoot,\n removableItemButtonIconRoot,\n removableItemContent,\n removableItemRoot,\n removableItemSection,\n} from '@mage-ui/styled-system/recipes';\nimport { ButtonIcon, type ButtonIconProps } from '@/components/buttons';\n\nexport type RemovableItemProps = {\n startSlot?: ReactNode;\n children: ReactNode;\n onRemove: () => void;\n removeButtonLabel?: string;\n classNames?: {\n container?: string;\n root?: string;\n section?: string;\n content?: string;\n buttonIcon?: ButtonIconProps['classNames'];\n };\n};\n\nexport const RemovableItem = ({\n startSlot,\n children,\n onRemove,\n removeButtonLabel = 'Remove',\n classNames,\n}: RemovableItemProps) => {\n return (\n <div\n className={cx(\n classNames?.container ?? removableItem(),\n classNames?.root ?? removableItemRoot(),\n )}\n >\n {startSlot && (\n <div className={classNames?.section ?? removableItemSection()}>\n {startSlot}\n </div>\n )}\n\n <div className={classNames?.content ?? removableItemContent()}>\n {children}\n </div>\n\n <ButtonIcon\n label={removeButtonLabel}\n onClick={onRemove}\n path='/icons/sprite-mage.svg'\n name='mage-removableitem-clear-button-x'\n classNames={{\n buttonIcon:\n classNames?.buttonIcon?.buttonIcon ?? removableItemButtonIcon(),\n root: classNames?.buttonIcon?.root ?? removableItemButtonIconRoot(),\n icon: classNames?.buttonIcon?.icon ?? removableItemButtonIconIcon(),\n iconRaw: {\n iconRaw:\n classNames?.buttonIcon?.iconRaw?.iconRaw ??\n removableItemButtonIconIconRaw(),\n root:\n classNames?.buttonIcon?.iconRaw?.root ??\n removableItemButtonIconIconRawRoot(),\n },\n }}\n />\n </div>\n );\n};\n"],"mappings":"6dA8BA,MAAa,GAAiB,CAC5B,YACA,WACA,WACA,oBAAoB,SACpB,gBAGE,EAAC,MAAA,CACC,UAAW,EACT,GAAY,WAAa,GAAe,CACxC,GAAY,MAAQ,GAAmB,CACxC,WAEA,GACC,EAAC,MAAA,CAAI,UAAW,GAAY,SAAW,GAAsB,UAC1D,GACG,CAGR,EAAC,MAAA,CAAI,UAAW,GAAY,SAAW,GAAsB,CAC1D,YACG,CAEN,EAAC,EAAA,CACC,MAAO,EACP,QAAS,EACT,KAAK,yBACL,KAAK,oCACL,WAAY,CACV,WACE,GAAY,YAAY,YAAc,GAAyB,CACjE,KAAM,GAAY,YAAY,MAAQ,GAA6B,CACnE,KAAM,GAAY,YAAY,MAAQ,GAA6B,CACnE,QAAS,CACP,QACE,GAAY,YAAY,SAAS,SACjC,GAAgC,CAClC,KACE,GAAY,YAAY,SAAS,MACjC,GAAoC,CACvC,CACF,EACD,GACE"}
@@ -1,7 +1,7 @@
1
1
  import { BadgeProps } from "../badge/Badge.mjs";
2
2
  import { TagGroupProps } from "../tag-group/TagGroup.mjs";
3
3
  import "../index.mjs";
4
- import * as react_jsx_runtime40 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime46 from "react/jsx-runtime";
5
5
 
6
6
  //#region src/components/data-display/tag/Tag.d.ts
7
7
  type TagProps = Omit<BadgeProps, 'classNames'> & {
@@ -25,11 +25,11 @@ declare const Tag: {
25
25
  onRemove,
26
26
  classNames,
27
27
  children
28
- }: TagProps): react_jsx_runtime40.JSX.Element;
28
+ }: TagProps): react_jsx_runtime46.JSX.Element;
29
29
  Group: ({
30
30
  children,
31
31
  classNames
32
- }: TagGroupProps) => react_jsx_runtime40.JSX.Element;
32
+ }: TagGroupProps) => react_jsx_runtime46.JSX.Element;
33
33
  };
34
34
  //#endregion
35
35
  export { Tag, TagProps };
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.mjs","names":[],"sources":["../../../../src/components/data-display/tag/Tag.tsx"],"sourcesContent":["import {\n tag,\n tagButtonIcon,\n tagButtonIconIcon,\n tagButtonIconIconRaw,\n tagButtonIconIconRawRoot,\n tagButtonIconRoot,\n tagLabel,\n tagRoot,\n tagSection,\n} from '@mage-ui/styled-system/recipes';\nimport { ButtonIcon } from '@/components/buttons';\n\nimport { Badge, type BadgeProps } from '../badge/Badge';\nimport { TagGroup } from '../tag-group/TagGroup';\n\nexport type TagProps = Omit<BadgeProps, 'classNames'> & {\n label: string;\n onRemove?: () => void;\n classNames?: BadgeProps['classNames'] & {\n buttonIcon?: {\n buttonIcon?: string;\n root?: string;\n icon?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n };\n};\n\nexport const Tag = ({ label, onRemove, classNames, children }: TagProps) => {\n return (\n <Badge\n endSlot={\n <ButtonIcon\n path='/icons/sprite-mage.svg'\n label={label}\n name='mage-tag-x'\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.();\n }}\n classNames={{\n buttonIcon: classNames?.buttonIcon?.buttonIcon ?? tagButtonIcon(),\n root: classNames?.buttonIcon?.root ?? tagButtonIconRoot(),\n icon: classNames?.buttonIcon?.icon ?? tagButtonIconIcon(),\n iconRaw: {\n iconRaw:\n classNames?.buttonIcon?.iconRaw?.iconRaw ?? tagButtonIconIconRaw(),\n root:\n classNames?.buttonIcon?.iconRaw?.root ?? tagButtonIconIconRawRoot(),\n },\n }}\n />\n }\n classNames={{\n badge: classNames?.badge ?? tag(),\n root: classNames?.root ?? tagRoot(),\n section: classNames?.section ?? tagSection(),\n label: classNames?.label ?? tagLabel(),\n }}\n >\n {children}\n </Badge>\n );\n};\n\nTag.Group = TagGroup;\n"],"mappings":"uaAgCA,MAAa,GAAO,CAAE,QAAO,WAAU,aAAY,cAE/C,EAAC,EAAA,CACC,QACE,EAAC,EAAA,CACC,KAAK,yBACE,QACP,KAAK,aACL,QAAU,GAAM,CACd,EAAE,iBAAiB,CACnB,KAAY,EAEd,WAAY,CACV,WAAY,GAAY,YAAY,YAAc,GAAe,CACjE,KAAM,GAAY,YAAY,MAAQ,GAAmB,CACzD,KAAM,GAAY,YAAY,MAAQ,GAAmB,CACzD,QAAS,CACP,QACE,GAAY,YAAY,SAAS,SAAW,GAAsB,CACpE,KACE,GAAY,YAAY,SAAS,MAAQ,GAA0B,CACtE,CACF,EACD,CAEJ,WAAY,CACV,MAAO,GAAY,OAAS,GAAK,CACjC,KAAM,GAAY,MAAQ,GAAS,CACnC,QAAS,GAAY,SAAW,GAAY,CAC5C,MAAO,GAAY,OAAS,GAAU,CACvC,CAEA,YACK,CAIZ,EAAI,MAAQ"}
1
+ {"version":3,"file":"Tag.mjs","names":[],"sources":["../../../../src/components/data-display/tag/Tag.tsx"],"sourcesContent":["import {\n tag,\n tagButtonIcon,\n tagButtonIconIcon,\n tagButtonIconIconRaw,\n tagButtonIconIconRawRoot,\n tagButtonIconRoot,\n tagLabel,\n tagRoot,\n tagSection,\n} from '@mage-ui/styled-system/recipes';\nimport { ButtonIcon } from '@/components/buttons';\n\nimport { Badge, type BadgeProps } from '../badge/Badge';\nimport { TagGroup } from '../tag-group/TagGroup';\n\nexport type TagProps = Omit<BadgeProps, 'classNames'> & {\n label: string;\n onRemove?: () => void;\n classNames?: BadgeProps['classNames'] & {\n buttonIcon?: {\n buttonIcon?: string;\n root?: string;\n icon?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n };\n};\n\nexport const Tag = ({ label, onRemove, classNames, children }: TagProps) => {\n return (\n <Badge\n endSlot={\n <ButtonIcon\n path='/icons/sprite-mage.svg'\n label={label}\n name='mage-tag-x'\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.();\n }}\n classNames={{\n buttonIcon: classNames?.buttonIcon?.buttonIcon ?? tagButtonIcon(),\n root: classNames?.buttonIcon?.root ?? tagButtonIconRoot(),\n icon: classNames?.buttonIcon?.icon ?? tagButtonIconIcon(),\n iconRaw: {\n iconRaw:\n classNames?.buttonIcon?.iconRaw?.iconRaw ??\n tagButtonIconIconRaw(),\n root:\n classNames?.buttonIcon?.iconRaw?.root ??\n tagButtonIconIconRawRoot(),\n },\n }}\n />\n }\n classNames={{\n badge: classNames?.badge ?? tag(),\n root: classNames?.root ?? tagRoot(),\n section: classNames?.section ?? tagSection(),\n label: classNames?.label ?? tagLabel(),\n }}\n >\n {children}\n </Badge>\n );\n};\n\nTag.Group = TagGroup;\n"],"mappings":"uaAgCA,MAAa,GAAO,CAAE,QAAO,WAAU,aAAY,cAE/C,EAAC,EAAA,CACC,QACE,EAAC,EAAA,CACC,KAAK,yBACE,QACP,KAAK,aACL,QAAU,GAAM,CACd,EAAE,iBAAiB,CACnB,KAAY,EAEd,WAAY,CACV,WAAY,GAAY,YAAY,YAAc,GAAe,CACjE,KAAM,GAAY,YAAY,MAAQ,GAAmB,CACzD,KAAM,GAAY,YAAY,MAAQ,GAAmB,CACzD,QAAS,CACP,QACE,GAAY,YAAY,SAAS,SACjC,GAAsB,CACxB,KACE,GAAY,YAAY,SAAS,MACjC,GAA0B,CAC7B,CACF,EACD,CAEJ,WAAY,CACV,MAAO,GAAY,OAAS,GAAK,CACjC,KAAM,GAAY,MAAQ,GAAS,CACnC,QAAS,GAAY,SAAW,GAAY,CAC5C,MAAO,GAAY,OAAS,GAAU,CACvC,CAEA,YACK,CAIZ,EAAI,MAAQ"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime42 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime48 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/data-display/tag-group/TagGroup.d.ts
4
4
  type TagGroupProps = {
@@ -11,7 +11,7 @@ type TagGroupProps = {
11
11
  declare const TagGroup: ({
12
12
  children,
13
13
  classNames
14
- }: TagGroupProps) => react_jsx_runtime42.JSX.Element;
14
+ }: TagGroupProps) => react_jsx_runtime48.JSX.Element;
15
15
  //#endregion
16
16
  export { TagGroup, TagGroupProps };
17
17
  //# sourceMappingURL=TagGroup.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagGroup.mjs","names":[],"sources":["../../../../src/components/data-display/tag-group/TagGroup.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport { tagGroup, tagGroupRoot } from '@mage-ui/styled-system/recipes';\n\nexport type TagGroupProps = {\n children: React.ReactNode;\n classNames?: {\n tagGroup?: string;\n root?: string;\n };\n};\n\nexport const TagGroup = ({ children, classNames }: TagGroupProps) => {\n return (\n <div className={cx(classNames?.tagGroup ?? tagGroup(), classNames?.root ?? tagGroupRoot())}>\n {children}\n </div>\n )\n};\n"],"mappings":"oKAWA,MAAa,GAAY,CAAE,WAAU,gBAEjC,EAAC,MAAA,CAAI,UAAW,EAAG,GAAY,UAAY,GAAU,CAAE,GAAY,MAAQ,GAAc,CAAC,CACvF,YACG"}
1
+ {"version":3,"file":"TagGroup.mjs","names":[],"sources":["../../../../src/components/data-display/tag-group/TagGroup.tsx"],"sourcesContent":["import { cx } from '@mage-ui/styled-system/css';\nimport { tagGroup, tagGroupRoot } from '@mage-ui/styled-system/recipes';\n\nexport type TagGroupProps = {\n children: React.ReactNode;\n classNames?: {\n tagGroup?: string;\n root?: string;\n };\n};\n\nexport const TagGroup = ({ children, classNames }: TagGroupProps) => {\n return (\n <div\n className={cx(\n classNames?.tagGroup ?? tagGroup(),\n classNames?.root ?? tagGroupRoot(),\n )}\n >\n {children}\n </div>\n );\n};\n"],"mappings":"oKAWA,MAAa,GAAY,CAAE,WAAU,gBAEjC,EAAC,MAAA,CACC,UAAW,EACT,GAAY,UAAY,GAAU,CAClC,GAAY,MAAQ,GAAc,CACnC,CAEA,YACG"}
@@ -1,43 +1,41 @@
1
- import { ButtonIconProps } from "../../buttons/button-icon/ButtonIcon.mjs";
2
- import "../../buttons/index.mjs";
3
- import * as react_jsx_runtime43 from "react/jsx-runtime";
1
+ import { IconProps } from "../icons/icon/Icon.mjs";
2
+ import { IconWrappedProps } from "../icons/icon-wrapped/IconWrapped.mjs";
3
+ import { RemovableItemProps } from "../removable-item/RemovableItem.mjs";
4
+ import "../index.mjs";
5
+ import * as react_jsx_runtime49 from "react/jsx-runtime";
4
6
  import { ReactNode } from "react";
5
7
 
6
8
  //#region src/components/data-display/uploaded-file/UploadedFile.d.ts
7
9
  type UploadedFileProps = {
8
10
  clearButtonLabel?: string;
9
- startSlot?: ReactNode;
10
11
  fileName?: ReactNode;
12
+ fileType?: string;
11
13
  url?: string;
12
- fileSize?: ReactNode;
13
- fileDate?: ReactNode;
14
- fileType?: ReactNode;
15
- onRemove?: () => void;
14
+ children: ReactNode;
15
+ onRemove: () => void;
16
16
  classNames?: {
17
17
  uploadedFile?: string;
18
18
  root?: string;
19
19
  section?: string;
20
20
  content?: string;
21
21
  details?: string;
22
- fileSize?: string;
23
- fileDate?: string;
24
- fileType?: string;
25
22
  fileLink?: string;
26
23
  fileName?: string;
27
- buttonIcon?: ButtonIconProps['classNames'];
24
+ startIconWrapped?: IconWrappedProps['classNames'];
25
+ startIcon?: IconProps['classNames'];
26
+ removableItem?: RemovableItemProps['classNames'];
27
+ buttonIcon?: NonNullable<RemovableItemProps['classNames']>['buttonIcon'];
28
28
  };
29
29
  };
30
30
  declare const UploadedFile: ({
31
31
  clearButtonLabel,
32
- startSlot,
33
32
  fileName,
34
- url,
35
- fileSize,
36
- fileDate,
37
33
  fileType,
38
- classNames,
39
- onRemove
40
- }: UploadedFileProps) => react_jsx_runtime43.JSX.Element;
34
+ url,
35
+ children,
36
+ onRemove,
37
+ classNames
38
+ }: UploadedFileProps) => react_jsx_runtime49.JSX.Element;
41
39
  //#endregion
42
40
  export { UploadedFile, UploadedFileProps };
43
41
  //# sourceMappingURL=UploadedFile.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadedFile.d.mts","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFile.tsx"],"mappings":";;;;;;KAsBY,iBAAA;EACV,gBAAA;EACA,SAAA,GAAY,SAAA;EACZ,QAAA,GAAW,SAAA;EACX,GAAA;EACA,QAAA,GAAW,SAAA;EACX,QAAA,GAAW,SAAA;EACX,QAAA,GAAW,SAAA;EACX,QAAA;EACA,UAAA;IACE,YAAA;IACA,IAAA;IACA,OAAA;IACA,OAAA;IACA,OAAA;IACA,QAAA;IACA,QAAA;IACA,QAAA;IACA,QAAA;IACA,QAAA;IACA,UAAA,GAAa,eAAA;EAAA;AAAA;AAAA,cAIJ,YAAA;EAAgB,gBAAA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;EAAA,QAAA;EAAA,QAAA;EAAA,QAAA;EAAA,UAAA;EAAA;AAAA,GAU1B,iBAAA,KAAiB,mBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"UploadedFile.d.mts","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFile.tsx"],"mappings":";;;;;;;;KAyBY,iBAAA;EACV,gBAAA;EACA,QAAA,GAAW,SAAA;EACX,QAAA;EACA,GAAA;EACA,QAAA,EAAU,SAAA;EACV,QAAA;EACA,UAAA;IACE,YAAA;IACA,IAAA;IACA,OAAA;IACA,OAAA;IACA,OAAA;IACA,QAAA;IACA,QAAA;IACA,gBAAA,GAAmB,gBAAA;IACnB,SAAA,GAAY,SAAA;IACZ,aAAA,GAAgB,kBAAA;IAChB,UAAA,GAAa,WAAA,CAAY,kBAAA;EAAA;AAAA;AAAA,cAIhB,YAAA;EAAgB,gBAAA;EAAA,QAAA;EAAA,QAAA;EAAA,GAAA;EAAA,QAAA;EAAA,QAAA;EAAA;AAAA,GAQ1B,iBAAA,KAAiB,mBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,2 +1,2 @@
1
- import{ButtonIcon as e}from"../../buttons/button-icon/ButtonIcon.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{uploadedFile as n,uploadedFileButtonIcon as r,uploadedFileButtonIconIcon as i,uploadedFileButtonIconIconRaw as a,uploadedFileButtonIconIconRawRoot as o,uploadedFileButtonIconRoot as s,uploadedFileContent as c,uploadedFileDate as l,uploadedFileDetails as u,uploadedFileLink as d,uploadedFileName as f,uploadedFileRoot as p,uploadedFileSection as m,uploadedFileSize as h,uploadedFileType as g}from"@mage-ui/styled-system/recipes";import{jsx as _,jsxs as v}from"react/jsx-runtime";const y=({clearButtonLabel:y=`Remove file`,startSlot:b,fileName:x,url:S,fileSize:C,fileDate:w,fileType:T,classNames:E,onRemove:D})=>v(`div`,{className:t(E?.uploadedFile??n(),E?.root??p()),children:[b&&_(`div`,{className:E?.section??m(),children:b}),v(`div`,{className:E?.content??c(),children:[S?_(`a`,{href:S,target:`_blank`,rel:`noopener noreferrer`,download:!0,className:E?.fileLink??d(),children:x}):_(`span`,{className:E?.fileName??f(),children:x}),v(`div`,{className:E?.details??u(),children:[C&&_(`span`,{className:E?.fileSize??h(),children:C}),w&&_(`span`,{className:E?.fileDate??l(),children:w}),T&&_(`span`,{className:E?.fileType??g(),children:T})]})]}),D&&_(e,{label:y,onClick:()=>D?.(),path:`/icons/sprite-mage.svg`,name:`mage-uploadedfile-clear-button-x`,classNames:{buttonIcon:E?.buttonIcon?.buttonIcon??r(),root:E?.buttonIcon?.root??s(),icon:E?.buttonIcon?.icon??i(),iconRaw:{iconRaw:E?.buttonIcon?.iconRaw?.iconRaw??a(),root:E?.buttonIcon?.iconRaw?.root??o()}}})]});export{y as UploadedFile};
1
+ import{RemovableItem as e}from"../removable-item/RemovableItem.mjs";import{UploadedFileIcon as t}from"./UploadedFileIcon.mjs";import{uploadedFile as n,uploadedFileButtonIcon as r,uploadedFileButtonIconIcon as i,uploadedFileButtonIconIconRaw as a,uploadedFileButtonIconIconRawRoot as o,uploadedFileButtonIconRoot as s,uploadedFileContent as c,uploadedFileDetails as l,uploadedFileLink as u,uploadedFileName as d,uploadedFileRoot as f,uploadedFileSection as p}from"@mage-ui/styled-system/recipes";import{jsx as m,jsxs as h}from"react/jsx-runtime";const g=({clearButtonLabel:g=`Remove file`,fileName:_,fileType:v,url:y,children:b,onRemove:x,classNames:S})=>h(e,{startSlot:m(t,{fileType:v,fileName:typeof _==`string`?_:void 0,classNames:{startIconWrapped:S?.startIconWrapped,startIcon:S?.startIcon}}),onRemove:x,removeButtonLabel:g,classNames:{container:S?.removableItem?.container??S?.uploadedFile??n(),root:S?.removableItem?.root??S?.root??f(),section:S?.removableItem?.section??S?.section??p(),content:S?.removableItem?.content??S?.content??c(),buttonIcon:{buttonIcon:S?.buttonIcon?.buttonIcon??S?.removableItem?.buttonIcon?.buttonIcon??r(),root:S?.buttonIcon?.root??S?.removableItem?.buttonIcon?.root??s(),icon:S?.buttonIcon?.icon??S?.removableItem?.buttonIcon?.icon??i(),iconRaw:{iconRaw:S?.buttonIcon?.iconRaw?.iconRaw??S?.removableItem?.buttonIcon?.iconRaw?.iconRaw??a(),root:S?.buttonIcon?.iconRaw?.root??S?.removableItem?.buttonIcon?.iconRaw?.root??o()}}},children:[y?m(`a`,{href:y,target:`_blank`,rel:`noopener noreferrer`,download:!0,className:S?.fileLink??u(),children:_}):m(`span`,{className:S?.fileName??d(),children:_}),m(`div`,{className:S?.details??l(),children:b})]});export{g as UploadedFile};
2
2
  //# sourceMappingURL=UploadedFile.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadedFile.mjs","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFile.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n uploadedFile,\n uploadedFileButtonIcon,\n uploadedFileButtonIconIcon,\n uploadedFileButtonIconIconRaw,\n uploadedFileButtonIconIconRawRoot,\n uploadedFileButtonIconRoot,\n uploadedFileContent,\n uploadedFileDetails,\n uploadedFileDate,\n uploadedFileName,\n uploadedFileSize,\n uploadedFileType,\n uploadedFileRoot,\n uploadedFileSection,\n uploadedFileLink,\n} from '@mage-ui/styled-system/recipes';\nimport { ButtonIcon, type ButtonIconProps } from '@/components/buttons';\n\nexport type UploadedFileProps = {\n clearButtonLabel?: string;\n startSlot?: ReactNode;\n fileName?: ReactNode;\n url?: string;\n fileSize?: ReactNode;\n fileDate?: ReactNode;\n fileType?: ReactNode;\n onRemove?: () => void;\n classNames?: {\n uploadedFile?: string;\n root?: string;\n section?: string;\n content?: string;\n details?: string;\n fileSize?: string;\n fileDate?: string;\n fileType?: string;\n fileLink?: string;\n fileName?: string;\n buttonIcon?: ButtonIconProps['classNames'];\n };\n};\n\nexport const UploadedFile = ({\n clearButtonLabel = 'Remove file',\n startSlot,\n fileName,\n url,\n fileSize,\n fileDate,\n fileType,\n classNames,\n onRemove,\n}: UploadedFileProps) => {\n return (\n <div\n className={cx(\n classNames?.uploadedFile ?? uploadedFile(),\n classNames?.root ?? uploadedFileRoot(),\n )}\n >\n {startSlot && (\n <div className={classNames?.section ?? uploadedFileSection()}>\n {startSlot}\n </div>\n )}\n <div className={classNames?.content ?? uploadedFileContent()}>\n {url ? (\n <a\n href={url}\n target='_blank'\n rel='noopener noreferrer'\n download\n className={classNames?.fileLink ?? uploadedFileLink()}\n >\n {fileName}\n </a>\n ) : (\n <span className={classNames?.fileName ?? uploadedFileName()}>\n {fileName}\n </span>\n )}\n\n {/* TODO: children i sical, crear components per a mostrar el contingut */}\n <div className={classNames?.details ?? uploadedFileDetails()}>\n {fileSize && (\n <span className={classNames?.fileSize ?? uploadedFileSize()}>\n {fileSize}\n </span>\n )}\n {fileDate && (\n <span className={classNames?.fileDate ?? uploadedFileDate()}>\n {fileDate}\n </span>\n )}\n {fileType && (\n <span className={classNames?.fileType ?? uploadedFileType()}>\n {fileType}\n </span>\n )}\n </div>\n </div>\n\n {onRemove && (\n <ButtonIcon\n label={clearButtonLabel}\n onClick={() => onRemove?.()}\n path='/icons/sprite-mage.svg'\n name='mage-uploadedfile-clear-button-x'\n classNames={{\n buttonIcon:\n classNames?.buttonIcon?.buttonIcon ?? uploadedFileButtonIcon(),\n root: classNames?.buttonIcon?.root ?? uploadedFileButtonIconRoot(),\n icon: classNames?.buttonIcon?.icon ?? uploadedFileButtonIconIcon(),\n iconRaw: {\n iconRaw:\n classNames?.buttonIcon?.iconRaw?.iconRaw ??\n uploadedFileButtonIconIconRaw(),\n root:\n classNames?.buttonIcon?.iconRaw?.root ??\n uploadedFileButtonIconIconRawRoot(),\n },\n }}\n />\n )}\n </div>\n );\n};\n"],"mappings":"2lBA8CA,MAAa,GAAgB,CAC3B,mBAAmB,cACnB,YACA,WACA,MACA,WACA,WACA,WACA,aACA,cAGE,EAAC,MAAA,CACC,UAAW,EACT,GAAY,cAAgB,GAAc,CAC1C,GAAY,MAAQ,GAAkB,CACvC,WAEA,GACC,EAAC,MAAA,CAAI,UAAW,GAAY,SAAW,GAAqB,UACzD,GACG,CAER,EAAC,MAAA,CAAI,UAAW,GAAY,SAAW,GAAqB,WACzD,EACC,EAAC,IAAA,CACC,KAAM,EACN,OAAO,SACP,IAAI,sBACJ,SAAA,GACA,UAAW,GAAY,UAAY,GAAkB,UAEpD,GACC,CAEJ,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,CAIT,EAAC,MAAA,CAAI,UAAW,GAAY,SAAW,GAAqB,WACzD,GACC,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,CAER,GACC,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,CAER,GACC,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,GAEL,CAAA,EACF,CAEL,GACC,EAAC,EAAA,CACC,MAAO,EACP,YAAe,KAAY,CAC3B,KAAK,yBACL,KAAK,mCACL,WAAY,CACV,WACE,GAAY,YAAY,YAAc,GAAwB,CAChE,KAAM,GAAY,YAAY,MAAQ,GAA4B,CAClE,KAAM,GAAY,YAAY,MAAQ,GAA4B,CAClE,QAAS,CACP,QACE,GAAY,YAAY,SAAS,SACjC,GAA+B,CACjC,KACE,GAAY,YAAY,SAAS,MACjC,GAAmC,CACtC,CACF,EACD,GAEA"}
1
+ {"version":3,"file":"UploadedFile.mjs","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFile.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport {\n uploadedFile,\n uploadedFileButtonIcon,\n uploadedFileButtonIconIcon,\n uploadedFileButtonIconIconRaw,\n uploadedFileButtonIconIconRawRoot,\n uploadedFileButtonIconRoot,\n uploadedFileContent,\n uploadedFileDetails,\n uploadedFileLink,\n uploadedFileName,\n uploadedFileRoot,\n uploadedFileSection,\n} from '@mage-ui/styled-system/recipes';\nimport {\n type IconProps,\n type IconWrappedProps,\n RemovableItem,\n type RemovableItemProps,\n} from '@/components/data-display';\n\nimport { UploadedFileIcon } from './UploadedFileIcon';\n\nexport type UploadedFileProps = {\n clearButtonLabel?: string;\n fileName?: ReactNode;\n fileType?: string;\n url?: string;\n children: ReactNode;\n onRemove: () => void;\n classNames?: {\n uploadedFile?: string;\n root?: string;\n section?: string;\n content?: string;\n details?: string;\n fileLink?: string;\n fileName?: string;\n startIconWrapped?: IconWrappedProps['classNames'];\n startIcon?: IconProps['classNames'];\n removableItem?: RemovableItemProps['classNames'];\n buttonIcon?: NonNullable<RemovableItemProps['classNames']>['buttonIcon'];\n };\n};\n\nexport const UploadedFile = ({\n clearButtonLabel = 'Remove file',\n fileName,\n fileType,\n url,\n children,\n onRemove,\n classNames,\n}: UploadedFileProps) => {\n return (\n <RemovableItem\n startSlot={\n <UploadedFileIcon\n fileType={fileType}\n fileName={typeof fileName === 'string' ? fileName : undefined}\n classNames={{\n startIconWrapped: classNames?.startIconWrapped,\n startIcon: classNames?.startIcon,\n }}\n />\n }\n onRemove={onRemove}\n removeButtonLabel={clearButtonLabel}\n classNames={{\n container:\n classNames?.removableItem?.container ??\n classNames?.uploadedFile ??\n uploadedFile(),\n root:\n classNames?.removableItem?.root ??\n classNames?.root ??\n uploadedFileRoot(),\n section:\n classNames?.removableItem?.section ??\n classNames?.section ??\n uploadedFileSection(),\n content:\n classNames?.removableItem?.content ??\n classNames?.content ??\n uploadedFileContent(),\n buttonIcon: {\n buttonIcon:\n classNames?.buttonIcon?.buttonIcon ??\n classNames?.removableItem?.buttonIcon?.buttonIcon ??\n uploadedFileButtonIcon(),\n root:\n classNames?.buttonIcon?.root ??\n classNames?.removableItem?.buttonIcon?.root ??\n uploadedFileButtonIconRoot(),\n icon:\n classNames?.buttonIcon?.icon ??\n classNames?.removableItem?.buttonIcon?.icon ??\n uploadedFileButtonIconIcon(),\n iconRaw: {\n iconRaw:\n classNames?.buttonIcon?.iconRaw?.iconRaw ??\n classNames?.removableItem?.buttonIcon?.iconRaw?.iconRaw ??\n uploadedFileButtonIconIconRaw(),\n root:\n classNames?.buttonIcon?.iconRaw?.root ??\n classNames?.removableItem?.buttonIcon?.iconRaw?.root ??\n uploadedFileButtonIconIconRawRoot(),\n },\n },\n }}\n >\n {/* TODO: comentar link */}\n {url ? (\n <a\n href={url}\n target='_blank'\n rel='noopener noreferrer'\n download\n className={classNames?.fileLink ?? uploadedFileLink()}\n >\n {fileName}\n </a>\n ) : (\n <span className={classNames?.fileName ?? uploadedFileName()}>\n {fileName}\n </span>\n )}\n\n <div className={classNames?.details ?? uploadedFileDetails()}>\n {children}\n </div>\n </RemovableItem>\n );\n};\n"],"mappings":"iiBA+CA,MAAa,GAAgB,CAC3B,mBAAmB,cACnB,WACA,WACA,MACA,WACA,WACA,gBAGE,EAAC,EAAA,CACC,UACE,EAAC,EAAA,CACW,WACV,SAAU,OAAO,GAAa,SAAW,EAAW,IAAA,GACpD,WAAY,CACV,iBAAkB,GAAY,iBAC9B,UAAW,GAAY,UACxB,EACD,CAEM,WACV,kBAAmB,EACnB,WAAY,CACV,UACE,GAAY,eAAe,WAC3B,GAAY,cACZ,GAAc,CAChB,KACE,GAAY,eAAe,MAC3B,GAAY,MACZ,GAAkB,CACpB,QACE,GAAY,eAAe,SAC3B,GAAY,SACZ,GAAqB,CACvB,QACE,GAAY,eAAe,SAC3B,GAAY,SACZ,GAAqB,CACvB,WAAY,CACV,WACE,GAAY,YAAY,YACxB,GAAY,eAAe,YAAY,YACvC,GAAwB,CAC1B,KACE,GAAY,YAAY,MACxB,GAAY,eAAe,YAAY,MACvC,GAA4B,CAC9B,KACE,GAAY,YAAY,MACxB,GAAY,eAAe,YAAY,MACvC,GAA4B,CAC9B,QAAS,CACP,QACE,GAAY,YAAY,SAAS,SACjC,GAAY,eAAe,YAAY,SAAS,SAChD,GAA+B,CACjC,KACE,GAAY,YAAY,SAAS,MACjC,GAAY,eAAe,YAAY,SAAS,MAChD,GAAmC,CACtC,CACF,CACF,WAGA,EACC,EAAC,IAAA,CACC,KAAM,EACN,OAAO,SACP,IAAI,sBACJ,SAAA,GACA,UAAW,GAAY,UAAY,GAAkB,UAEpD,GACC,CAEJ,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,CAGT,EAAC,MAAA,CAAI,UAAW,GAAY,SAAW,GAAqB,CACzD,YACG,CAAA,EACQ"}
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime38 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/uploaded-file/UploadedFileDetails.d.ts
5
+ type UploadedFileDetailsProps = {
6
+ fileSize?: ReactNode;
7
+ fileDate?: ReactNode;
8
+ fileType?: ReactNode;
9
+ classNames?: {
10
+ fileSize?: string;
11
+ fileDate?: string;
12
+ fileType?: string;
13
+ };
14
+ };
15
+ declare const UploadedFileDetails: ({
16
+ fileSize,
17
+ fileDate,
18
+ fileType,
19
+ classNames
20
+ }: UploadedFileDetailsProps) => react_jsx_runtime38.JSX.Element;
21
+ //#endregion
22
+ export { UploadedFileDetails, UploadedFileDetailsProps };
23
+ //# sourceMappingURL=UploadedFileDetails.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadedFileDetails.d.mts","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFileDetails.tsx"],"mappings":";;;;KAQY,wBAAA;EACV,QAAA,GAAW,SAAA;EACX,QAAA,GAAW,SAAA;EACX,QAAA,GAAW,SAAA;EACX,UAAA;IACE,QAAA;IACA,QAAA;IACA,QAAA;EAAA;AAAA;AAAA,cAIS,mBAAA;EAAuB,QAAA;EAAA,QAAA;EAAA,QAAA;EAAA;AAAA,GAKjC,wBAAA,KAAwB,mBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,2 @@
1
+ import{uploadedFileDate as e,uploadedFileSize as t,uploadedFileType as n}from"@mage-ui/styled-system/recipes";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";const o=({fileSize:o,fileDate:s,fileType:c,classNames:l})=>a(r,{children:[o&&i(`span`,{className:l?.fileSize??t(),children:o}),s&&i(`span`,{className:l?.fileDate??e(),children:s}),c&&i(`span`,{className:l?.fileType??n(),children:c})]});export{o as UploadedFileDetails};
2
+ //# sourceMappingURL=UploadedFileDetails.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadedFileDetails.mjs","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFileDetails.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport {\n uploadedFileDate,\n uploadedFileSize,\n uploadedFileType,\n} from '@mage-ui/styled-system/recipes';\n\nexport type UploadedFileDetailsProps = {\n fileSize?: ReactNode;\n fileDate?: ReactNode;\n fileType?: ReactNode;\n classNames?: {\n fileSize?: string;\n fileDate?: string;\n fileType?: string;\n };\n};\n\nexport const UploadedFileDetails = ({\n fileSize,\n fileDate,\n fileType,\n classNames,\n}: UploadedFileDetailsProps) => {\n return (\n <>\n {fileSize && (\n <span className={classNames?.fileSize ?? uploadedFileSize()}>\n {fileSize}\n </span>\n )}\n {fileDate && (\n <span className={classNames?.fileDate ?? uploadedFileDate()}>\n {fileDate}\n </span>\n )}\n {fileType && (\n <span className={classNames?.fileType ?? uploadedFileType()}>\n {fileType}\n </span>\n )}\n </>\n );\n};\n"],"mappings":"8KAmBA,MAAa,GAAuB,CAClC,WACA,WACA,WACA,gBAGE,EAAA,EAAA,CAAA,SAAA,CACG,GACC,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,CAER,GACC,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,CAER,GACC,EAAC,OAAA,CAAK,UAAW,GAAY,UAAY,GAAkB,UACxD,GACI,GAER"}
@@ -0,0 +1,2 @@
1
+ import{Icon as e}from"../icons/icon/Icon.mjs";import{IconWrapped as t}from"../icons/icon-wrapped/IconWrapped.mjs";import{uploadedFileStartIcon as n,uploadedFileStartIconIconRaw as r,uploadedFileStartIconIconRawRoot as i,uploadedFileStartIconRoot as a,uploadedFileStartIconWrapped as o,uploadedFileStartIconWrappedRoot as s}from"@mage-ui/styled-system/recipes";import{jsx as c}from"react/jsx-runtime";const l=[{match:e=>e.startsWith(`image/`),type:`image`},{match:e=>e.startsWith(`video/`),type:`video`},{match:e=>e.startsWith(`audio/`),type:`audio`},{match:e=>e===`application/pdf`,type:`pdf`},{match:e=>e.startsWith(`text/`),type:`text`},{match:e=>[`application/zip`,`application/x-zip-compressed`,`application/x-rar-compressed`,`application/x-7z-compressed`].includes(e),type:`archive`}],u={png:`image`,jpg:`image`,jpeg:`image`,webp:`image`,gif:`image`,mp4:`video`,mov:`video`,webm:`video`,mp3:`audio`,wav:`audio`,txt:`text`,md:`text`,csv:`text`,pdf:`pdf`,zip:`archive`,rar:`archive`,"7z":`archive`},d={image:`mage-uploaded-file-image`,video:`mage-uploaded-file-video`,audio:`mage-uploaded-file-audio`,text:`mage-uploaded-file-text`,pdf:`mage-uploaded-file-pdf`,archive:`mage-uploaded-file-archive`,default:`mage-uploaded-file-attachment`},f=(e,t)=>{if(e){let t=l.find(({match:t})=>t(e));if(t)return d[t.type]}if(t){let e=t.split(`.`).pop()?.toLowerCase();if(e&&u[e])return d[u[e]]}return d.default},p=({fileType:l,fileName:u,classNames:d})=>{let p=f(l,u);return c(t,{classNames:{iconWrapped:d?.startIconWrapped?.iconWrapped??o(),root:d?.startIconWrapped?.root??s()},children:c(e,{name:p,path:`/icons/sprite-mage.svg`,classNames:{icon:d?.startIcon?.icon??n(),root:d?.startIcon?.root??a(),iconRaw:{iconRaw:d?.startIcon?.iconRaw?.iconRaw??r(),root:d?.startIcon?.iconRaw?.root??i()}}})})};export{p as UploadedFileIcon};
2
+ //# sourceMappingURL=UploadedFileIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadedFileIcon.mjs","names":[],"sources":["../../../../src/components/data-display/uploaded-file/UploadedFileIcon.tsx"],"sourcesContent":["import {\n uploadedFileStartIcon,\n uploadedFileStartIconIconRaw,\n uploadedFileStartIconIconRawRoot,\n uploadedFileStartIconRoot,\n uploadedFileStartIconWrapped,\n uploadedFileStartIconWrappedRoot,\n} from '@mage-ui/styled-system/recipes';\nimport {\n Icon,\n type IconProps,\n IconWrapped,\n type IconWrappedProps,\n} from '@/components/data-display';\n\ntype FileIconType =\n | 'image'\n | 'video'\n | 'audio'\n | 'text'\n | 'pdf'\n | 'archive'\n | 'default';\n\nconst MIME_ICON_MAP: Array<{\n match: (mime: string) => boolean;\n type: FileIconType;\n}> = [\n { match: (m) => m.startsWith('image/'), type: 'image' },\n { match: (m) => m.startsWith('video/'), type: 'video' },\n { match: (m) => m.startsWith('audio/'), type: 'audio' },\n { match: (m) => m === 'application/pdf', type: 'pdf' },\n { match: (m) => m.startsWith('text/'), type: 'text' },\n {\n match: (m) =>\n [\n 'application/zip',\n 'application/x-zip-compressed',\n 'application/x-rar-compressed',\n 'application/x-7z-compressed',\n ].includes(m),\n type: 'archive',\n },\n];\n\nconst EXTENSION_ICON_MAP: Record<string, FileIconType> = {\n png: 'image',\n jpg: 'image',\n jpeg: 'image',\n webp: 'image',\n gif: 'image',\n mp4: 'video',\n mov: 'video',\n webm: 'video',\n mp3: 'audio',\n wav: 'audio',\n txt: 'text',\n md: 'text',\n csv: 'text',\n pdf: 'pdf',\n zip: 'archive',\n rar: 'archive',\n '7z': 'archive',\n};\n\nconst ICON_NAME_MAP: Record<FileIconType, string> = {\n image: 'mage-uploaded-file-image',\n video: 'mage-uploaded-file-video',\n audio: 'mage-uploaded-file-audio',\n text: 'mage-uploaded-file-text',\n pdf: 'mage-uploaded-file-pdf',\n archive: 'mage-uploaded-file-archive',\n default: 'mage-uploaded-file-attachment',\n};\n\nconst resolveIconName = (fileType?: string, fileName?: string): string => {\n if (fileType) {\n const match = MIME_ICON_MAP.find(({ match }) => match(fileType));\n if (match) return ICON_NAME_MAP[match.type];\n }\n\n if (fileName) {\n const ext = fileName.split('.').pop()?.toLowerCase();\n if (ext && EXTENSION_ICON_MAP[ext]) {\n return ICON_NAME_MAP[EXTENSION_ICON_MAP[ext]];\n }\n }\n\n return ICON_NAME_MAP.default;\n};\n\nexport type UploadedFileIconProps = {\n fileType?: string;\n fileName?: string;\n classNames?: {\n startIconWrapped?: IconWrappedProps['classNames'];\n startIcon?: IconProps['classNames'];\n };\n};\n\nexport const UploadedFileIcon = ({\n fileType,\n fileName,\n classNames,\n}: UploadedFileIconProps) => {\n const iconName = resolveIconName(fileType, fileName);\n\n return (\n <IconWrapped\n classNames={{\n iconWrapped:\n classNames?.startIconWrapped?.iconWrapped ??\n uploadedFileStartIconWrapped(),\n root:\n classNames?.startIconWrapped?.root ??\n uploadedFileStartIconWrappedRoot(),\n }}\n >\n <Icon\n name={iconName}\n path='/icons/sprite-mage.svg'\n classNames={{\n icon: classNames?.startIcon?.icon ?? uploadedFileStartIcon(),\n root: classNames?.startIcon?.root ?? uploadedFileStartIconRoot(),\n iconRaw: {\n iconRaw:\n classNames?.startIcon?.iconRaw?.iconRaw ??\n uploadedFileStartIconIconRaw(),\n root:\n classNames?.startIcon?.iconRaw?.root ??\n uploadedFileStartIconIconRawRoot(),\n },\n }}\n />\n </IconWrapped>\n );\n};\n"],"mappings":"gZAwBA,MAAM,EAGD,CACH,CAAE,MAAQ,GAAM,EAAE,WAAW,SAAS,CAAE,KAAM,QAAS,CACvD,CAAE,MAAQ,GAAM,EAAE,WAAW,SAAS,CAAE,KAAM,QAAS,CACvD,CAAE,MAAQ,GAAM,EAAE,WAAW,SAAS,CAAE,KAAM,QAAS,CACvD,CAAE,MAAQ,GAAM,IAAM,kBAAmB,KAAM,MAAO,CACtD,CAAE,MAAQ,GAAM,EAAE,WAAW,QAAQ,CAAE,KAAM,OAAQ,CACrD,CACE,MAAQ,GACN,CACE,kBACA,+BACA,+BACA,8BACD,CAAC,SAAS,EAAE,CACf,KAAM,UACP,CACF,CAEK,EAAmD,CACvD,IAAK,QACL,IAAK,QACL,KAAM,QACN,KAAM,QACN,IAAK,QACL,IAAK,QACL,IAAK,QACL,KAAM,QACN,IAAK,QACL,IAAK,QACL,IAAK,OACL,GAAI,OACJ,IAAK,OACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,KAAM,UACP,CAEK,EAA8C,CAClD,MAAO,2BACP,MAAO,2BACP,MAAO,2BACP,KAAM,0BACN,IAAK,yBACL,QAAS,6BACT,QAAS,gCACV,CAEK,GAAmB,EAAmB,IAA8B,CACxE,GAAI,EAAU,CACZ,IAAM,EAAQ,EAAc,MAAM,CAAE,WAAY,EAAM,EAAS,CAAC,CAChE,GAAI,EAAO,OAAO,EAAc,EAAM,MAGxC,GAAI,EAAU,CACZ,IAAM,EAAM,EAAS,MAAM,IAAI,CAAC,KAAK,EAAE,aAAa,CACpD,GAAI,GAAO,EAAmB,GAC5B,OAAO,EAAc,EAAmB,IAI5C,OAAO,EAAc,SAYV,GAAoB,CAC/B,WACA,WACA,gBAC2B,CAC3B,IAAM,EAAW,EAAgB,EAAU,EAAS,CAEpD,OACE,EAAC,EAAA,CACC,WAAY,CACV,YACE,GAAY,kBAAkB,aAC9B,GAA8B,CAChC,KACE,GAAY,kBAAkB,MAC9B,GAAkC,CACrC,UAED,EAAC,EAAA,CACC,KAAM,EACN,KAAK,yBACL,WAAY,CACV,KAAM,GAAY,WAAW,MAAQ,GAAuB,CAC5D,KAAM,GAAY,WAAW,MAAQ,GAA2B,CAChE,QAAS,CACP,QACE,GAAY,WAAW,SAAS,SAChC,GAA8B,CAChC,KACE,GAAY,WAAW,SAAS,MAChC,GAAkC,CACrC,CACF,EACD,EACU"}
@@ -0,0 +1,114 @@
1
+ import { TextInputProps } from "../controls/text-input/TextInput.mjs";
2
+ import { PasswordSegment } from "../controls/password-input/PasswordStrengthInput.mjs";
3
+ import { PasswordRuleDefinition } from "../controls/password-input/usePasswordRules.mjs";
4
+ import "../index.mjs";
5
+ import * as react_jsx_runtime52 from "react/jsx-runtime";
6
+ import React, { ReactNode } from "react";
7
+ import { FieldValues, UseFormSetError } from "react-hook-form";
8
+ import { ZodObject, ZodTypeAny } from "zod";
9
+
10
+ //#region src/components/forms/Form.d.ts
11
+ type FormResponse = {
12
+ body?: object;
13
+ details?: string;
14
+ status?: number;
15
+ url?: string;
16
+ };
17
+ type FormProps<T extends FieldValues> = {
18
+ $fetcher: (params: {
19
+ data: T;
20
+ }) => Promise<unknown>;
21
+ onValidSubmit?: (response: FormResponse) => void;
22
+ onInvalidSubmit?: (params: {
23
+ message: string;
24
+ setError: UseFormSetError<T>;
25
+ status: number;
26
+ }) => void;
27
+ invalidStatus?: number[];
28
+ children: ReactNode;
29
+ schema?: ZodObject<Record<string, ZodTypeAny>>;
30
+ t?: (key: string, bindings?: Record<string, string>, fallback?: string) => string | React.ReactNode;
31
+ };
32
+ declare const Form: {
33
+ <T extends FieldValues>({
34
+ $fetcher,
35
+ onValidSubmit,
36
+ onInvalidSubmit,
37
+ invalidStatus,
38
+ children,
39
+ schema,
40
+ t
41
+ }: FormProps<T>): react_jsx_runtime52.JSX.Element;
42
+ displayName: string;
43
+ TextInput: {
44
+ ({
45
+ $rule,
46
+ isSubmitting,
47
+ ...props
48
+ }: {
49
+ $rule?: string;
50
+ error?: string;
51
+ isSubmitting?: boolean;
52
+ } & TextInputProps): react_jsx_runtime52.JSX.Element;
53
+ displayName: string;
54
+ };
55
+ Submit: {
56
+ ({
57
+ children
58
+ }: {
59
+ children: React.ReactNode;
60
+ }): react_jsx_runtime52.JSX.Element;
61
+ displayName: string;
62
+ };
63
+ Hidden: {
64
+ ({
65
+ name,
66
+ value,
67
+ ...props
68
+ }: {
69
+ name?: string;
70
+ value?: string;
71
+ defaultValue?: string;
72
+ } & React.InputHTMLAttributes<HTMLInputElement>): react_jsx_runtime52.JSX.Element;
73
+ displayName: string;
74
+ };
75
+ Checkbox: {
76
+ ({
77
+ $rule,
78
+ error,
79
+ isSubmitting,
80
+ children,
81
+ ...props
82
+ }: {
83
+ $rule?: string;
84
+ error?: string;
85
+ isSubmitting?: boolean;
86
+ name: string;
87
+ } & React.InputHTMLAttributes<HTMLInputElement>): react_jsx_runtime52.JSX.Element;
88
+ displayName: string;
89
+ };
90
+ Password: {
91
+ ({
92
+ error,
93
+ isSubmitting,
94
+ strengthBar,
95
+ value,
96
+ name,
97
+ rules,
98
+ segments
99
+ }: {
100
+ $rule?: string;
101
+ error?: string;
102
+ isSubmitting?: boolean;
103
+ strengthBar?: boolean;
104
+ value?: string;
105
+ name: string;
106
+ rules?: PasswordRuleDefinition[];
107
+ segments?: PasswordSegment[];
108
+ }): react_jsx_runtime52.JSX.Element;
109
+ displayName: string;
110
+ };
111
+ };
112
+ //#endregion
113
+ export { Form, FormProps };
114
+ //# sourceMappingURL=Form.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.d.mts","names":[],"sources":["../../../src/components/forms/Form.tsx"],"mappings":";;;;;;;;;;KAaK,YAAA;EACH,IAAA;EACA,OAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,KAGU,SAAA,WAAoB,WAAA;EAC9B,QAAA,GAAW,MAAA;IAAU,IAAA,EAAM,CAAA;EAAA,MAAQ,OAAA;EACnC,aAAA,IAAiB,QAAA,EAAU,YAAA;EAC3B,eAAA,IAAmB,MAAA;IACjB,OAAA;IACA,QAAA,EAAU,eAAA,CAAgB,CAAA;IAC1B,MAAA;EAAA;EAEF,aAAA;EACA,QAAA,EAAU,SAAA;EACV,MAAA,GAAS,SAAA,CAAU,MAAA,SAAe,UAAA;EAClC,CAAA,IACE,GAAA,UACA,QAAA,GAAW,MAAA,kBACX,QAAA,uBACY,KAAA,CAAM,SAAA;AAAA;AAAA,cAWT,IAAA;EAAA,WAAkB,WAAA;IAAW,QAAA;IAAA,aAAA;IAAA,eAAA;IAAA,aAAA;IAAA,QAAA;IAAA,MAAA;IAAA;EAAA,GAQvC,SAAA,CAAU,CAAA,IAAE,mBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAlCR,eAAA;IAAA"}
@@ -0,0 +1,2 @@
1
+ import{FormCheckbox as e}from"./controls/FormCheckbox.mjs";import{FormHidden as t}from"./controls/FormHidden.mjs";import{FormPassword as n}from"./controls/FormPassword.mjs";import{FormSubmit as r}from"./controls/FormSubmit.mjs";import{FormTextInput as i}from"./controls/FormTextInput.mjs";import{FormBase as a}from"./FormBase.mjs";import{FormErrorBox as o}from"./FormErrorBox.mjs";import{jsx as s}from"react/jsx-runtime";const c=({$fetcher:e,onValidSubmit:t,onInvalidSubmit:n,invalidStatus:r=[],children:i,schema:c,t:l})=>s(a,{onSubmit:async({data:i,setError:a})=>{await e({data:i}).then(e=>{let n=e;if(n?.statusCode&&n.statusCode>=400)throw n;t?.(e||{})}).catch(e=>{switch(e.statusCode){case 400:case 422:e.cause?.issues&&Object.keys(e.cause.issues).forEach(t=>{a(t,{type:`server`,message:e.cause?.issues?.[t]})}),a(`root.serverError`,{type:`server`,message:e?.message??`Something went wrong`});break;default:if(r.includes(e.statusCode)){n?.({message:e.message,setError:a,status:e.statusCode});break}throw e}})},schema:c,errorBox:o,t:l,children:i});c.displayName=`Form`,c.TextInput=i,c.Submit=r,c.Hidden=t,c.Checkbox=e,c.Password=n;export{c as Form};
2
+ //# sourceMappingURL=Form.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.mjs","names":[],"sources":["../../../src/components/forms/Form.tsx"],"sourcesContent":["import type React from 'react';\nimport type { ReactNode } from 'react';\nimport type { FieldValues, UseFormSetError } from 'react-hook-form';\nimport type { ZodObject, ZodTypeAny } from 'zod';\n\nimport { FormCheckbox } from './controls/FormCheckbox';\nimport { FormHidden } from './controls/FormHidden';\nimport { FormPassword } from './controls/FormPassword';\nimport { FormSubmit } from './controls/FormSubmit';\nimport { FormTextInput } from './controls/FormTextInput';\nimport { FormBase } from './FormBase';\nimport { FormErrorBox } from './FormErrorBox';\n\ntype FormResponse = {\n body?: object;\n details?: string;\n status?: number;\n url?: string;\n};\n\nexport type FormProps<T extends FieldValues> = {\n $fetcher: (params: { data: T }) => Promise<unknown>;\n onValidSubmit?: (response: FormResponse) => void;\n onInvalidSubmit?: (params: {\n message: string;\n setError: UseFormSetError<T>;\n status: number;\n }) => void;\n invalidStatus?: number[];\n children: ReactNode;\n schema?: ZodObject<Record<string, ZodTypeAny>>;\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode;\n};\n\ntype FormError = {\n statusCode: number;\n message: string;\n cause?: {\n issues: Record<string, string>;\n };\n};\n\nexport const Form = <T extends FieldValues>({\n $fetcher,\n onValidSubmit,\n onInvalidSubmit,\n invalidStatus = [],\n children,\n schema,\n t,\n}: FormProps<T>) => {\n const onSubmit = async ({\n data,\n setError,\n }: {\n data: FieldValues;\n setError: UseFormSetError<FieldValues>;\n }) => {\n await $fetcher({ data: data as T })\n .then((response) => {\n const res = response as FormError & FormResponse;\n if (res?.statusCode && res.statusCode >= 400) {\n throw res;\n }\n\n onValidSubmit?.((response || {}) as FormResponse);\n })\n .catch((error: FormError) => {\n switch (error.statusCode) {\n case 400:\n case 422: {\n if (error.cause?.issues) {\n Object.keys(error.cause.issues).forEach((key) => {\n setError(key, {\n type: 'server',\n message: error.cause?.issues?.[key],\n });\n });\n }\n setError('root.serverError', {\n type: 'server',\n message: error?.message ?? 'Something went wrong',\n });\n break;\n }\n default:\n if (invalidStatus.includes(error.statusCode)) {\n onInvalidSubmit?.({\n message: error.message,\n setError: setError as UseFormSetError<T>,\n status: error.statusCode,\n });\n break;\n }\n throw error;\n }\n });\n };\n\n return (\n <FormBase onSubmit={onSubmit} schema={schema} errorBox={FormErrorBox} t={t}>\n {children}\n </FormBase>\n );\n};\n\nForm.displayName = 'Form';\nForm.TextInput = FormTextInput;\nForm.Submit = FormSubmit;\nForm.Hidden = FormHidden;\nForm.Checkbox = FormCheckbox;\nForm.Password = FormPassword;\n"],"mappings":"qaA8CA,MAAa,GAA+B,CAC1C,WACA,gBACA,kBACA,gBAAgB,EAAE,CAClB,WACA,SACA,OAmDE,EAAC,EAAA,CAAmB,SAjDL,MAAO,CACtB,OACA,cAII,CACJ,MAAM,EAAS,CAAQ,OAAW,CAAC,CAChC,KAAM,GAAa,CAClB,IAAM,EAAM,EACZ,GAAI,GAAK,YAAc,EAAI,YAAc,IACvC,MAAM,EAGR,IAAiB,GAAY,EAAE,CAAkB,EACjD,CACD,MAAO,GAAqB,CAC3B,OAAQ,EAAM,WAAd,CACE,IAAK,KACL,IAAK,KACC,EAAM,OAAO,QACf,OAAO,KAAK,EAAM,MAAM,OAAO,CAAC,QAAS,GAAQ,CAC/C,EAAS,EAAK,CACZ,KAAM,SACN,QAAS,EAAM,OAAO,SAAS,GAChC,CAAC,EACF,CAEJ,EAAS,mBAAoB,CAC3B,KAAM,SACN,QAAS,GAAO,SAAW,uBAC5B,CAAC,CACF,MAEF,QACE,GAAI,EAAc,SAAS,EAAM,WAAW,CAAE,CAC5C,IAAkB,CAChB,QAAS,EAAM,QACL,WACV,OAAQ,EAAM,WACf,CAAC,CACF,MAEF,MAAM,IAEV,EAIkC,SAAQ,SAAU,EAAiB,IACtE,YACQ,CAIf,EAAK,YAAc,OACnB,EAAK,UAAY,EACjB,EAAK,OAAS,EACd,EAAK,OAAS,EACd,EAAK,SAAW,EAChB,EAAK,SAAW"}
@@ -0,0 +1,2 @@
1
+ "use client";import{controls as e}from"./controls/index.mjs";import{RegisteredFormChildren as t}from"./controls/register-components.mjs";import{extractFormRules as n}from"./rules/extract-form-rules.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";import{useEffect as a}from"react";import{FormProvider as o,useForm as s}from"react-hook-form";import*as c from"zod";import{zodResolver as l}from"@hookform/resolvers/zod";const u=({errorBox:u,onWatch:d,onSubmit:f,children:p,schema:m=c.object({}),t:h})=>{let g=s({shouldFocusError:!0,resolver:l(m?m.and(n(p,e)):n(p,e))}),{register:_,handleSubmit:v,setError:y,formState:{errors:b},watch:x}=g;return a(()=>{let{unsubscribe:e}=x(e=>{d?.(e)});return()=>e()},[x,d]),i(o,{...g,t:h,children:[r(u,{errors:b}),r(`form`,{onSubmit:v(e=>f({data:e,setError:y})),children:r(t,{register:_,componentTypes:e,errors:b,t:h,children:p})})]})};export{u as FormBase};
2
+ //# sourceMappingURL=FormBase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormBase.mjs","names":["z"],"sources":["../../../src/components/forms/FormBase.tsx"],"sourcesContent":["'use client';\n\nimport type React from 'react';\nimport { useEffect } from 'react';\nimport type {\n DeepPartialSkipArrayKey,\n FieldErrors,\n FieldValues,\n UseFormSetError,\n} from 'react-hook-form';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport * as z from 'zod';\n\nimport { zodResolver } from '@hookform/resolvers/zod';\n\nimport { controls } from './controls';\nimport { RegisteredFormChildren } from './controls/register-components';\nimport { extractFormRules } from './rules/extract-form-rules';\n\ntype FormProps = {\n children: React.ReactNode;\n schema?: z.ZodObject<Record<string, z.ZodTypeAny>>;\n errorBox: React.ComponentType<{ errors: FieldErrors }>;\n onWatch?: (values: DeepPartialSkipArrayKey<FieldValues>) => void;\n onSubmit: (args: {\n data: FieldValues;\n setError: UseFormSetError<FieldValues>;\n }) => void | Promise<void>;\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode;\n};\n\nexport const FormBase = ({\n errorBox: ErrorBox,\n onWatch,\n onSubmit,\n children,\n schema = z.object({}),\n t,\n}: FormProps) => {\n const rules = (\n schema\n ? schema.and(extractFormRules(children, controls) as z.ZodTypeAny)\n : (extractFormRules(children, controls) as z.ZodTypeAny)\n ) as z.ZodType<FieldValues, FieldValues>;\n\n const form = useForm({\n shouldFocusError: true,\n resolver: zodResolver(rules),\n });\n\n const {\n register,\n handleSubmit,\n setError,\n formState: { errors },\n watch,\n } = form;\n\n useEffect(() => {\n const { unsubscribe } = watch((values) => {\n onWatch?.(values);\n });\n return () => unsubscribe();\n }, [watch, onWatch]);\n\n return (\n <FormProvider {...form} {...({ t } as Record<string, unknown>)}>\n <ErrorBox errors={errors} />\n <form onSubmit={handleSubmit((data) => onSubmit({ data, setError }))}>\n <RegisteredFormChildren\n register={register}\n componentTypes={controls}\n errors={errors}\n t={t}\n >\n {children}\n </RegisteredFormChildren>\n </form>\n </FormProvider>\n );\n};\n"],"mappings":"uaAmCA,MAAa,GAAY,CACvB,SAAU,EACV,UACA,WACA,WACA,SAASA,EAAE,OAAO,EAAE,CAAC,CACrB,OACe,CAOf,IAAM,EAAO,EAAQ,CACnB,iBAAkB,GAClB,SAAU,EAPV,EACI,EAAO,IAAI,EAAiB,EAAU,EAAS,CAAiB,CAC/D,EAAiB,EAAU,EAAS,CAKb,CAC7B,CAAC,CAEI,CACJ,WACA,eACA,WACA,UAAW,CAAE,UACb,SACE,EASJ,OAPA,MAAgB,CACd,GAAM,CAAE,eAAgB,EAAO,GAAW,CACxC,IAAU,EAAO,EACjB,CACF,UAAa,GAAa,EACzB,CAAC,EAAO,EAAQ,CAAC,CAGlB,EAAC,EAAA,CAAa,GAAI,EAAa,cAC7B,EAAC,EAAA,CAAiB,SAAA,CAAU,CAC5B,EAAC,OAAA,CAAK,SAAU,EAAc,GAAS,EAAS,CAAE,OAAM,WAAU,CAAC,CAAC,UAClE,EAAC,EAAA,CACW,WACV,eAAgB,EACR,SACL,IAEF,YACsB,EACpB,CAAA,EACM"}
@@ -0,0 +1,2 @@
1
+ import{jsx as e}from"react/jsx-runtime";const t=({errors:t})=>t.root?.serverError&&e(`div`,{style:{color:`red`},children:t.root.serverError.message});export{t as FormErrorBox};
2
+ //# sourceMappingURL=FormErrorBox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormErrorBox.mjs","names":[],"sources":["../../../src/components/forms/FormErrorBox.tsx"],"sourcesContent":["import type { FieldErrors } from 'react-hook-form';\n\nexport const FormErrorBox = ({ errors }: { errors: FieldErrors }) =>\n errors.root?.serverError && (\n <div style={{ color: 'red' }}>{errors.root.serverError.message}</div>\n );\n"],"mappings":"wCAEA,MAAa,GAAgB,CAAE,YAC7B,EAAO,MAAM,aACX,EAAC,MAAA,CAAI,MAAO,CAAE,MAAO,MAAO,UAAG,EAAO,KAAK,YAAY,SAAc"}