@edifice.io/react 2.0.0-develop-rc.12 → 2.0.0-develop-rc.13

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 (879) hide show
  1. package/README.md +88 -17
  2. package/dist/common/OnboardingModal/OnboardingModal.js +59 -0
  3. package/dist/common/OnboardingModal/useOnboardingModal.js +30 -0
  4. package/dist/{modules/modals → common}/PublishModal/PublishModal.d.ts +1 -1
  5. package/dist/common/PublishModal/PublishModal.js +120 -0
  6. package/dist/common/PublishModal/components/ActivitiesDropdown.js +29 -0
  7. package/dist/common/PublishModal/components/AgeSelect.js +20 -0
  8. package/dist/common/PublishModal/components/LangSelect.js +19 -0
  9. package/dist/common/PublishModal/components/PublishModalFooter.js +23 -0
  10. package/dist/common/PublishModal/components/SubjectsDropdown.js +29 -0
  11. package/dist/common/PublishModal/components/ToastError.js +24 -0
  12. package/dist/{modules/modals → common}/PublishModal/components/ToastSuccess.d.ts +1 -1
  13. package/dist/common/PublishModal/components/ToastSuccess.js +18 -0
  14. package/dist/common/PublishModal/constants/ageOptions.js +4 -0
  15. package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.js +4 -5
  16. package/dist/common/PublishModal/hooks/useLanguageOptions.js +43 -0
  17. package/dist/{modules/modals → common}/PublishModal/hooks/usePublishModal.d.ts +1 -1
  18. package/dist/common/PublishModal/hooks/usePublishModal.js +106 -0
  19. package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.js +41 -42
  20. package/dist/{modules/modals → common}/ResourceModal/ResourceModal.d.ts +3 -3
  21. package/dist/common/ResourceModal/ResourceModal.js +156 -0
  22. package/dist/{modules/modals → common}/ResourceModal/apps/BlogPublic.d.ts +2 -2
  23. package/dist/common/ResourceModal/apps/BlogPublic.js +62 -0
  24. package/dist/{modules/modals → common}/ResourceModal/hooks/useSlug.d.ts +1 -1
  25. package/dist/common/ResourceModal/hooks/useSlug.js +41 -0
  26. package/dist/{modules/modals → common}/ResourceModal/hooks/useThumb.d.ts +1 -1
  27. package/dist/common/ResourceModal/hooks/useThumb.js +17 -0
  28. package/dist/{modules/modals → common}/ResourceModal/hooks/useUpdateMutation.d.ts +3 -3
  29. package/dist/common/ResourceModal/hooks/useUpdateMutation.js +12 -0
  30. package/dist/common/ResourceModal/index.d.ts +3 -0
  31. package/dist/common/ShareModal/ShareBookmark.js +22 -0
  32. package/dist/{modules/modals → common}/ShareModal/ShareBookmarkLine.d.ts +1 -1
  33. package/dist/common/ShareModal/ShareBookmarkLine.js +42 -0
  34. package/dist/{modules/modals → common}/ShareModal/ShareModal.d.ts +2 -2
  35. package/dist/common/ShareModal/ShareModal.js +128 -0
  36. package/dist/common/ShareModal/apps/ShareBlog.d.ts +8 -0
  37. package/dist/common/ShareModal/apps/ShareBlog.js +43 -0
  38. package/dist/{modules/modals → common}/ShareModal/hooks/useSearch.d.ts +2 -2
  39. package/dist/common/ShareModal/hooks/useSearch.js +178 -0
  40. package/dist/{modules/modals → common}/ShareModal/hooks/useShare.d.ts +1 -1
  41. package/dist/common/ShareModal/hooks/useShare.js +192 -0
  42. package/dist/{modules/modals → common}/ShareModal/hooks/useShareBookmark.d.ts +1 -1
  43. package/dist/common/ShareModal/hooks/useShareBookmark.js +67 -0
  44. package/dist/{modules/modals → common}/ShareModal/hooks/useShareMutation.d.ts +3 -3
  45. package/dist/common/ShareModal/hooks/useShareMutation.js +15 -0
  46. package/dist/common/ShareModal/index.d.ts +3 -0
  47. package/dist/{modules/modals → common}/ShareModal/utils/hasRight.d.ts +1 -1
  48. package/dist/common/ShareModal/utils/hasRight.js +4 -0
  49. package/dist/{modules/modals → common}/ShareModal/utils/showShareRightLine.d.ts +1 -1
  50. package/dist/common/ShareModal/utils/showShareRightLine.js +4 -0
  51. package/dist/components/ActionBar/ActionBar.d.ts +1 -1
  52. package/dist/components/ActionBar/ActionBar.js +6 -8
  53. package/dist/components/ActionBar/index.d.ts +1 -0
  54. package/dist/components/Alert/Alert.d.ts +1 -1
  55. package/dist/components/Alert/Alert.js +60 -62
  56. package/dist/components/Alert/index.d.ts +1 -0
  57. package/dist/components/AppHeader/AppHeader.d.ts +1 -1
  58. package/dist/components/AppHeader/AppHeader.js +18 -20
  59. package/dist/components/AppHeader/index.d.ts +1 -0
  60. package/dist/components/AppIcon/AppIcon.d.ts +1 -1
  61. package/dist/components/AppIcon/AppIcon.js +44 -45
  62. package/dist/components/Attachment/Attachment.d.ts +1 -1
  63. package/dist/components/Attachment/Attachment.js +13 -15
  64. package/dist/components/Attachment/index.d.ts +1 -0
  65. package/dist/{modules/audience → components/Audience}/ReactionChoice.d.ts +1 -1
  66. package/dist/components/Audience/ReactionChoice.js +33 -0
  67. package/dist/{modules/audience → components/Audience}/ReactionModal.Card.d.ts +1 -1
  68. package/dist/components/Audience/ReactionModal.Card.js +33 -0
  69. package/dist/{modules/audience → components/Audience}/ReactionModal.d.ts +1 -1
  70. package/dist/components/Audience/ReactionModal.js +73 -0
  71. package/dist/{modules/audience → components/Audience}/ReactionSummary.d.ts +1 -1
  72. package/dist/components/Audience/ReactionSummary.js +27 -0
  73. package/dist/{modules/audience → components/Audience}/ViewsByProfileCard.d.ts +1 -1
  74. package/dist/components/Audience/ViewsByProfileCard.js +36 -0
  75. package/dist/components/Audience/ViewsCounter.js +18 -0
  76. package/dist/{modules/audience → components/Audience}/ViewsModal.d.ts +1 -1
  77. package/dist/components/Audience/ViewsModal.js +40 -0
  78. package/dist/{modules/audience → components/Audience}/hooks/useReactionIcons.d.ts +1 -1
  79. package/dist/components/Audience/hooks/useReactionIcons.js +38 -0
  80. package/dist/{modules/audience → components/Audience}/hooks/useReactions.d.ts +3 -3
  81. package/dist/components/Audience/hooks/useReactions.js +35 -0
  82. package/dist/{modules/audience → components/Audience}/hooks/useViews.d.ts +2 -2
  83. package/dist/components/Avatar/Avatar.d.ts +1 -1
  84. package/dist/components/Avatar/Avatar.js +27 -29
  85. package/dist/components/Avatar/index.d.ts +1 -0
  86. package/dist/components/Badge/Badge.d.ts +1 -1
  87. package/dist/components/Badge/Badge.js +20 -22
  88. package/dist/components/Badge/index.d.ts +1 -0
  89. package/dist/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  90. package/dist/components/Breadcrumb/Breadcrumb.js +23 -24
  91. package/dist/components/Breadcrumb/BreadcrumbItem.js +11 -12
  92. package/dist/components/Breadcrumb/BreadcrumbList.js +10 -11
  93. package/dist/components/Breadcrumb/BreadcrumbNav.d.ts +1 -1
  94. package/dist/components/Breadcrumb/BreadcrumbNav.js +15 -16
  95. package/dist/components/Button/Button.d.ts +1 -1
  96. package/dist/components/Button/Button.js +32 -34
  97. package/dist/components/Button/IconButton.d.ts +1 -1
  98. package/dist/components/Button/IconButton.js +15 -17
  99. package/dist/components/Button/SearchButton.d.ts +1 -1
  100. package/dist/components/Button/SearchButton.js +15 -17
  101. package/dist/components/Button/index.d.ts +3 -0
  102. package/dist/components/Card/Card.d.ts +4 -4
  103. package/dist/components/Card/Card.js +47 -49
  104. package/dist/components/Card/CardBody.d.ts +1 -1
  105. package/dist/components/Card/CardBody.js +13 -14
  106. package/dist/components/Card/CardContext.d.ts +1 -1
  107. package/dist/components/Card/CardContext.js +7 -8
  108. package/dist/components/Card/CardFooter.js +5 -6
  109. package/dist/components/Card/CardHeader.js +14 -15
  110. package/dist/components/Card/CardImage.d.ts +1 -1
  111. package/dist/components/Card/CardImage.js +13 -14
  112. package/dist/components/Card/CardText.js +8 -9
  113. package/dist/components/Card/CardTitle.js +8 -9
  114. package/dist/components/Card/CardUser.js +8 -9
  115. package/dist/components/Card/index.d.ts +1 -0
  116. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  117. package/dist/components/Checkbox/Checkbox.js +30 -32
  118. package/dist/components/Checkbox/index.d.ts +1 -0
  119. package/dist/components/ColorPicker/ColorPalette.js +4 -5
  120. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -1
  121. package/dist/components/ColorPicker/ColorPicker.js +28 -30
  122. package/dist/components/ColorPicker/ColorPickerItem.d.ts +1 -1
  123. package/dist/components/ColorPicker/ColorPickerItem.js +11 -13
  124. package/dist/components/ColorPicker/index.d.ts +3 -1
  125. package/dist/components/Combobox/Combobox.d.ts +1 -1
  126. package/dist/components/Combobox/Combobox.js +35 -36
  127. package/dist/components/Combobox/ComboboxTrigger.js +21 -22
  128. package/dist/components/Combobox/index.d.ts +1 -0
  129. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  130. package/dist/components/Dropdown/Dropdown.js +55 -57
  131. package/dist/components/Dropdown/DropdownCheckboxItem.js +26 -27
  132. package/dist/components/Dropdown/DropdownContext.js +7 -8
  133. package/dist/components/Dropdown/DropdownItem.js +27 -28
  134. package/dist/components/Dropdown/DropdownMenu.js +21 -22
  135. package/dist/components/Dropdown/DropdownMenuGroup.js +9 -10
  136. package/dist/components/Dropdown/DropdownRadioItem.js +26 -27
  137. package/dist/components/Dropdown/DropdownSeparator.js +3 -4
  138. package/dist/components/Dropdown/DropdownTrigger.js +28 -29
  139. package/dist/components/Dropdown/index.d.ts +1 -0
  140. package/dist/components/Dropzone/Dropzone.d.ts +1 -1
  141. package/dist/components/Dropzone/Dropzone.js +47 -48
  142. package/dist/components/Dropzone/DropzoneContext.js +8 -9
  143. package/dist/components/Dropzone/DropzoneDrag.js +7 -8
  144. package/dist/components/Dropzone/DropzoneFile.js +25 -26
  145. package/dist/components/Dropzone/DropzoneImport.js +20 -21
  146. package/dist/components/Dropzone/index.d.ts +1 -0
  147. package/dist/components/EmptyScreen/EmptyScreen.d.ts +1 -1
  148. package/dist/components/EmptyScreen/EmptyScreen.js +16 -18
  149. package/dist/components/EmptyScreen/index.d.ts +1 -0
  150. package/dist/components/FileCard/FileCard.d.ts +2 -2
  151. package/dist/components/FileCard/FileCard.js +37 -39
  152. package/dist/components/FileCard/FileIcon.d.ts +1 -1
  153. package/dist/components/FileCard/FileIcon.js +11 -12
  154. package/dist/components/FileCard/index.d.ts +1 -0
  155. package/dist/components/Form/FormContext.js +7 -8
  156. package/dist/components/Form/FormControl.d.ts +1 -1
  157. package/dist/components/Form/FormControl.js +30 -32
  158. package/dist/components/Form/FormText.d.ts +1 -1
  159. package/dist/components/Form/FormText.js +12 -14
  160. package/dist/components/Form/index.d.ts +2 -1
  161. package/dist/components/Grid/Grid.js +27 -28
  162. package/dist/components/Heading/Heading.d.ts +1 -1
  163. package/dist/components/Heading/Heading.js +14 -16
  164. package/dist/components/Heading/index.d.ts +1 -0
  165. package/dist/components/Image/Image.d.ts +1 -1
  166. package/dist/components/Image/Image.js +39 -41
  167. package/dist/components/Image/index.d.ts +1 -0
  168. package/dist/components/ImagePicker/ImagePicker.d.ts +1 -1
  169. package/dist/components/ImagePicker/ImagePicker.js +51 -52
  170. package/dist/components/Input/Input.d.ts +1 -1
  171. package/dist/components/Input/Input.js +28 -30
  172. package/dist/components/Input/index.d.ts +1 -0
  173. package/dist/components/Label/Label.d.ts +1 -1
  174. package/dist/components/Label/Label.js +30 -32
  175. package/dist/components/Label/index.d.ts +1 -0
  176. package/dist/components/Loading/Loading.d.ts +1 -1
  177. package/dist/components/Loading/Loading.js +23 -25
  178. package/dist/components/Loading/index.d.ts +1 -0
  179. package/dist/components/LoadingScreen/LoadingScreen.d.ts +1 -1
  180. package/dist/components/LoadingScreen/LoadingScreen.js +20 -22
  181. package/dist/components/LoadingScreen/index.d.ts +1 -1
  182. package/dist/components/Logo/Logo.d.ts +1 -1
  183. package/dist/components/Logo/Logo.js +12 -14
  184. package/dist/components/Logo/index.d.ts +1 -0
  185. package/dist/components/Menu/Menu.js +39 -40
  186. package/dist/components/Menu/MenuButton.js +17 -18
  187. package/dist/components/Menu/MenuContext.js +8 -9
  188. package/dist/components/Menu/MenuItem.js +14 -15
  189. package/dist/components/Modal/Modal.d.ts +4 -1
  190. package/dist/components/Modal/Modal.js +49 -51
  191. package/dist/components/Modal/ModalBody.js +11 -12
  192. package/dist/components/Modal/ModalContext.js +8 -9
  193. package/dist/components/Modal/ModalFooter.js +3 -4
  194. package/dist/components/Modal/ModalHeader.js +22 -23
  195. package/dist/components/Modal/ModalSubtitle.js +3 -4
  196. package/dist/components/Modal/index.d.ts +1 -0
  197. package/dist/components/Popover/Popover.js +33 -34
  198. package/dist/components/Radio/Radio.d.ts +1 -1
  199. package/dist/components/Radio/Radio.js +26 -28
  200. package/dist/components/Radio/index.d.ts +1 -0
  201. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  202. package/dist/components/SearchBar/SearchBar.js +29 -31
  203. package/dist/components/SearchBar/index.d.ts +1 -0
  204. package/dist/components/Select/Select.d.ts +1 -1
  205. package/dist/components/Select/Select.js +31 -33
  206. package/dist/components/Select/SelectTrigger.js +4 -5
  207. package/dist/components/Select/index.d.ts +1 -0
  208. package/dist/components/Table/Table.components.d.ts +20 -0
  209. package/dist/components/Table/Table.components.js +39 -0
  210. package/dist/components/Table/Table.d.ts +33 -0
  211. package/dist/components/Table/Table.js +16 -0
  212. package/dist/components/Table/TableExplorer.d.ts +1 -1
  213. package/dist/components/Table/index.d.ts +2 -1
  214. package/dist/components/Tabs/Tabs.d.ts +1 -1
  215. package/dist/components/Tabs/Tabs.js +58 -59
  216. package/dist/components/Tabs/TabsContext.js +8 -9
  217. package/dist/components/Tabs/TabsItem.js +20 -21
  218. package/dist/components/Tabs/TabsList.js +18 -19
  219. package/dist/components/Tabs/TabsPanel.js +9 -10
  220. package/dist/components/Tabs/index.d.ts +1 -0
  221. package/dist/components/TextArea/TextArea.d.ts +1 -1
  222. package/dist/components/TextArea/TextArea.js +31 -33
  223. package/dist/components/TextArea/TextareaCounter.js +6 -7
  224. package/dist/components/TextArea/index.d.ts +1 -0
  225. package/dist/components/Toolbar/Toolbar.d.ts +1 -1
  226. package/dist/components/Toolbar/Toolbar.js +60 -62
  227. package/dist/components/Toolbar/index.d.ts +1 -0
  228. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  229. package/dist/components/Tooltip/Tooltip.js +28 -30
  230. package/dist/components/Tooltip/index.d.ts +1 -0
  231. package/dist/components/TreeView/TreeItem.js +46 -47
  232. package/dist/components/TreeView/TreeView.d.ts +1 -1
  233. package/dist/components/TreeView/TreeView.js +33 -35
  234. package/dist/components/TreeView/hooks/useTreeItemEvents.js +18 -19
  235. package/dist/components/TreeView/index.d.ts +1 -0
  236. package/dist/components/UploadCard/UploadCard.js +52 -53
  237. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +1 -1
  238. package/dist/components/VisuallyHidden/VisuallyHidden.js +6 -8
  239. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  240. package/dist/components/index.d.ts +1 -1
  241. package/dist/core/OdeClientProvider/OdeClientProvider.d.ts +1 -1
  242. package/dist/core/OdeClientProvider/OdeClientProvider.js +44 -45
  243. package/dist/core/ThemeProvider/ThemeProvider.d.ts +1 -1
  244. package/dist/core/ThemeProvider/ThemeProvider.js +36 -36
  245. package/dist/core/index.d.ts +1 -0
  246. package/dist/core/useAvatar/useAvatar.d.ts +1 -1
  247. package/dist/core/useAvatar/useAvatar.js +21 -22
  248. package/dist/core/useBookmark/useBookmark.d.ts +1 -1
  249. package/dist/core/useBookmark/useBookmark.js +9 -10
  250. package/dist/core/useCantoo/index.d.ts +1 -0
  251. package/dist/core/useCantoo/useCantoo.d.ts +1 -0
  252. package/dist/core/useCantoo/useCantoo.js +18 -0
  253. package/dist/core/useConf/useConf.d.ts +1 -1
  254. package/dist/core/useConf/useConf.js +7 -8
  255. package/dist/core/useConversation/useConversation.js +29 -30
  256. package/dist/core/useCookiesConsent/useCookiesConsent.js +16 -17
  257. package/dist/core/useDate/useDate.js +35 -36
  258. package/dist/core/useHasWorkflow/useHasWorkflow.js +15 -16
  259. package/dist/core/useHeader/useHeader.d.ts +1 -1
  260. package/dist/core/useHeader/useHeader.js +45 -42
  261. package/dist/core/useHttpErrorToast/useHttpErrorToast.js +17 -18
  262. package/dist/core/useIsAdml/useIsAdml.js +11 -12
  263. package/dist/core/useLibraryUrl/useLibraryUrl.js +16 -17
  264. package/dist/core/useMediaLibrary/useMediaLibrary.d.ts +2 -2
  265. package/dist/core/useMediaLibrary/useMediaLibrary.js +32 -33
  266. package/dist/core/useOdeIcons/useOdeIcons.d.ts +1 -1
  267. package/dist/core/useOdeIcons/useOdeIcons.js +37 -38
  268. package/dist/core/usePaths/usePaths.js +2 -3
  269. package/dist/core/usePreferences/usePreferences.js +5 -6
  270. package/dist/core/useResource/useResource.d.ts +1 -1
  271. package/dist/core/useResource/useResource.js +14 -15
  272. package/dist/core/useResourceSearch/useResourceSearch.d.ts +1 -1
  273. package/dist/core/useResourceSearch/useResourceSearch.js +22 -23
  274. package/dist/core/useSession/useSession.js +6 -7
  275. package/dist/core/useTrashedResource/useTrashedResource.js +18 -19
  276. package/dist/core/useUpload/useUpload.d.ts +1 -1
  277. package/dist/core/useUpload/useUpload.js +68 -69
  278. package/dist/core/useUploadFiles/useUploadFiles.d.ts +1 -1
  279. package/dist/core/useUploadFiles/useUploadFiles.js +82 -83
  280. package/dist/core/useUser/useUser.d.ts +1 -1
  281. package/dist/core/useUser/useUser.js +15 -16
  282. package/dist/core/useWorkspaceFile/useWorkspaceFile.d.ts +1 -1
  283. package/dist/core/useWorkspaceFile/useWorkspaceFile.js +31 -32
  284. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.d.ts +1 -1
  285. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js +41 -42
  286. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js +17 -18
  287. package/dist/core/useZendeskGuide/useZendeskGuide.js +46 -47
  288. package/dist/hooks/useBrowserInfo/useBrowserInfo.js +11 -12
  289. package/dist/hooks/useClickOutside/useClickOutside.js +18 -19
  290. package/dist/hooks/useDebounce/useDebounce.js +10 -11
  291. package/dist/hooks/useDropdown/useDropdown.d.ts +1 -1
  292. package/dist/hooks/useDropdown/useDropdown.js +96 -97
  293. package/dist/hooks/useDropzone/useDropzone.js +53 -54
  294. package/dist/hooks/useHover/useHover.js +14 -15
  295. package/dist/hooks/useImage/useImage.js +13 -14
  296. package/dist/hooks/useImageResizer/useImageResizer.js +31 -32
  297. package/dist/hooks/useKeyPress/useKeyPress.js +10 -11
  298. package/dist/hooks/useScrollToTop/useScrollToTop.js +4 -5
  299. package/dist/hooks/useThumbnail/useThumbnail.js +21 -22
  300. package/dist/hooks/useTitle/useTitle.js +7 -8
  301. package/dist/hooks/useToast/useToast.js +25 -26
  302. package/dist/hooks/useToggle/useToggle.js +6 -7
  303. package/dist/hooks/useTrapFocus/useTrapFocus.js +11 -12
  304. package/dist/index.d.ts +3 -1
  305. package/dist/index.js +274 -226
  306. package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorder.d.ts +1 -1
  307. package/dist/multimedia/AudioRecorder/AudioRecorder.js +49 -0
  308. package/dist/multimedia/AudioRecorder/AudioRecorderTimer.js +24 -0
  309. package/dist/{modules/multimedia → multimedia}/AudioRecorder/useAudioRecorder.d.ts +2 -2
  310. package/dist/multimedia/AudioRecorder/useAudioRecorder.js +307 -0
  311. package/dist/multimedia/Embed/Embed.js +32 -0
  312. package/dist/multimedia/ImageEditor/components/ImageEditor.js +116 -0
  313. package/dist/multimedia/ImageEditor/components/ImageEditorToolbar.js +69 -0
  314. package/dist/multimedia/ImageEditor/effects/blur.js +72 -0
  315. package/dist/multimedia/ImageEditor/effects/crop.js +155 -0
  316. package/dist/multimedia/ImageEditor/effects/misc.js +162 -0
  317. package/dist/multimedia/ImageEditor/effects/resize.js +157 -0
  318. package/dist/multimedia/ImageEditor/effects/rotate.js +33 -0
  319. package/dist/multimedia/ImageEditor/hooks/useHistoryTool.js +66 -0
  320. package/dist/multimedia/ImageEditor/hooks/useImageEditor.js +76 -0
  321. package/dist/multimedia/ImageEditor/hooks/useImageEffects.js +52 -0
  322. package/dist/multimedia/ImageEditor/utils/aggregate.js +13 -0
  323. package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/ImagePickerWorkspace.d.ts +1 -1
  324. package/dist/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +39 -0
  325. package/dist/multimedia/Linker/ExternalLinker.js +45 -0
  326. package/dist/{modules/multimedia → multimedia}/Linker/InternalLinker.d.ts +1 -1
  327. package/dist/multimedia/Linker/InternalLinker.js +114 -0
  328. package/dist/{modules/multimedia → multimedia}/LinkerCard/LinkerCard.d.ts +3 -3
  329. package/dist/multimedia/LinkerCard/LinkerCard.js +38 -0
  330. package/dist/multimedia/LinkerCard/index.d.ts +2 -0
  331. package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibrary.d.ts +2 -2
  332. package/dist/multimedia/MediaLibrary/MediaLibrary.js +211 -0
  333. package/dist/{modules/multimedia → multimedia}/MediaLibrary/MediaLibraryContext.d.ts +2 -2
  334. package/dist/multimedia/MediaLibrary/MediaLibraryContext.js +12 -0
  335. package/dist/multimedia/MediaLibrary/innertabs/Audio.js +19 -0
  336. package/dist/multimedia/MediaLibrary/innertabs/ExternalLink.js +17 -0
  337. package/dist/multimedia/MediaLibrary/innertabs/Iframe.js +14 -0
  338. package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/InternalLink.d.ts +1 -1
  339. package/dist/multimedia/MediaLibrary/innertabs/InternalLink.js +35 -0
  340. package/dist/multimedia/MediaLibrary/innertabs/Upload.js +34 -0
  341. package/dist/multimedia/MediaLibrary/innertabs/Video.js +22 -0
  342. package/dist/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +14 -0
  343. package/dist/multimedia/MediaLibrary/innertabs/Workspace.js +31 -0
  344. package/dist/multimedia/MediaLibrary/innertabs/index.js +21 -0
  345. package/dist/{modules/multimedia → multimedia}/UploadFiles/UploadFiles.d.ts +1 -1
  346. package/dist/multimedia/UploadFiles/UploadFiles.js +56 -0
  347. package/dist/multimedia/VideoEmbed/VideoEmbed.js +77 -0
  348. package/dist/{modules/multimedia → multimedia}/VideoRecorder/VideoRecorder.d.ts +1 -1
  349. package/dist/multimedia/VideoRecorder/VideoRecorder.js +259 -0
  350. package/dist/{modules/multimedia → multimedia}/Workspace/Workspace.d.ts +1 -1
  351. package/dist/multimedia/Workspace/Workspace.js +169 -0
  352. package/dist/portal/Header/Badge.js +5 -6
  353. package/dist/portal/Header/Header.js +138 -138
  354. package/dist/portal/Header/NavItem.js +11 -12
  355. package/dist/portal/Header/NavLink.js +14 -15
  356. package/dist/portal/Header/Navbar.js +9 -10
  357. package/dist/portal/Header/NavbarNav.js +9 -10
  358. package/dist/portal/Header/WidgetApps.d.ts +1 -1
  359. package/dist/portal/Header/WidgetApps.js +16 -17
  360. package/dist/portal/Help/Help.js +18 -19
  361. package/dist/portal/Help/hooks/useHelp.js +63 -64
  362. package/dist/portal/Layout/Layout.js +36 -36
  363. package/dist/portal/SearchEngine/SearchEngine.js +25 -26
  364. package/dist/utils/MockedDataProvider/MockedDataProvider.d.ts +1 -1
  365. package/dist/utils/MockedDataProvider/MockedDataProvider.js +21 -22
  366. package/dist/utils/StringUtils.js +8 -9
  367. package/dist/utils/addTimestampToUrl.js +4 -5
  368. package/dist/utils/blob.js +9 -10
  369. package/dist/utils/checkUserRight.d.ts +1 -1
  370. package/dist/utils/checkUserRight.js +27 -28
  371. package/dist/utils/fileSize.js +5 -6
  372. package/dist/utils/findTreeNode.js +7 -8
  373. package/dist/utils/isActionAvailable.d.ts +1 -1
  374. package/dist/utils/isActionAvailable.js +4 -5
  375. package/dist/utils/libraryMaps.js +2 -3
  376. package/dist/utils/noop.js +2 -3
  377. package/dist/utils/ref.js +8 -9
  378. package/dist/utils/thumbnail.js +3 -4
  379. package/dist/utils/time.js +7 -8
  380. package/dist/utils/treeview.d.ts +1 -1
  381. package/dist/utils/treeview.js +96 -97
  382. package/dist/utils/video.js +2 -3
  383. package/dist/widgets/BookmarkedApps/BookmarkedApps.d.ts +1 -1
  384. package/dist/widgets/BookmarkedApps/BookmarkedApps.js +6 -7
  385. package/dist/widgets/Widget/Widget.js +18 -19
  386. package/package.json +27 -58
  387. package/dist/audience.js +0 -17
  388. package/dist/audience.js.map +0 -1
  389. package/dist/components/ActionBar/ActionBar.js.map +0 -1
  390. package/dist/components/Alert/Alert.js.map +0 -1
  391. package/dist/components/AppHeader/AppHeader.js.map +0 -1
  392. package/dist/components/AppIcon/AppIcon.js.map +0 -1
  393. package/dist/components/Attachment/Attachment.js.map +0 -1
  394. package/dist/components/Avatar/Avatar.js.map +0 -1
  395. package/dist/components/Badge/Badge.js.map +0 -1
  396. package/dist/components/Breadcrumb/Breadcrumb.js.map +0 -1
  397. package/dist/components/Breadcrumb/BreadcrumbItem.js.map +0 -1
  398. package/dist/components/Breadcrumb/BreadcrumbList.js.map +0 -1
  399. package/dist/components/Breadcrumb/BreadcrumbNav.js.map +0 -1
  400. package/dist/components/Button/Button.js.map +0 -1
  401. package/dist/components/Button/IconButton.js.map +0 -1
  402. package/dist/components/Button/SearchButton.js.map +0 -1
  403. package/dist/components/Card/Card.js.map +0 -1
  404. package/dist/components/Card/CardBody.js.map +0 -1
  405. package/dist/components/Card/CardContext.js.map +0 -1
  406. package/dist/components/Card/CardFooter.js.map +0 -1
  407. package/dist/components/Card/CardHeader.js.map +0 -1
  408. package/dist/components/Card/CardImage.js.map +0 -1
  409. package/dist/components/Card/CardText.js.map +0 -1
  410. package/dist/components/Card/CardTitle.js.map +0 -1
  411. package/dist/components/Card/CardUser.js.map +0 -1
  412. package/dist/components/Checkbox/Checkbox.js.map +0 -1
  413. package/dist/components/ColorPicker/ColorPalette.js.map +0 -1
  414. package/dist/components/ColorPicker/ColorPicker.js.map +0 -1
  415. package/dist/components/ColorPicker/ColorPickerItem.js.map +0 -1
  416. package/dist/components/Combobox/Combobox.js.map +0 -1
  417. package/dist/components/Combobox/ComboboxTrigger.js.map +0 -1
  418. package/dist/components/Dropdown/Dropdown.js.map +0 -1
  419. package/dist/components/Dropdown/DropdownCheckboxItem.js.map +0 -1
  420. package/dist/components/Dropdown/DropdownContext.js.map +0 -1
  421. package/dist/components/Dropdown/DropdownItem.js.map +0 -1
  422. package/dist/components/Dropdown/DropdownMenu.js.map +0 -1
  423. package/dist/components/Dropdown/DropdownMenuGroup.js.map +0 -1
  424. package/dist/components/Dropdown/DropdownRadioItem.js.map +0 -1
  425. package/dist/components/Dropdown/DropdownSeparator.js.map +0 -1
  426. package/dist/components/Dropdown/DropdownTrigger.js.map +0 -1
  427. package/dist/components/Dropzone/Dropzone.js.map +0 -1
  428. package/dist/components/Dropzone/DropzoneContext.js.map +0 -1
  429. package/dist/components/Dropzone/DropzoneDrag.js.map +0 -1
  430. package/dist/components/Dropzone/DropzoneFile.js.map +0 -1
  431. package/dist/components/Dropzone/DropzoneImport.js.map +0 -1
  432. package/dist/components/EmptyScreen/EmptyScreen.js.map +0 -1
  433. package/dist/components/FileCard/FileCard.js.map +0 -1
  434. package/dist/components/FileCard/FileIcon.js.map +0 -1
  435. package/dist/components/Form/FormContext.js.map +0 -1
  436. package/dist/components/Form/FormControl.js.map +0 -1
  437. package/dist/components/Form/FormText.js.map +0 -1
  438. package/dist/components/Grid/Grid.js.map +0 -1
  439. package/dist/components/Heading/Heading.js.map +0 -1
  440. package/dist/components/Icon/Icon.d.ts +0 -17
  441. package/dist/components/Icon/Icon.js +0 -11
  442. package/dist/components/Icon/Icon.js.map +0 -1
  443. package/dist/components/Icon/index.d.ts +0 -1
  444. package/dist/components/Image/Image.js.map +0 -1
  445. package/dist/components/ImagePicker/ImagePicker.js.map +0 -1
  446. package/dist/components/Input/Input.js.map +0 -1
  447. package/dist/components/Label/Label.js.map +0 -1
  448. package/dist/components/Loading/Loading.js.map +0 -1
  449. package/dist/components/LoadingScreen/LoadingScreen.js.map +0 -1
  450. package/dist/components/Logo/Logo.js.map +0 -1
  451. package/dist/components/Menu/Menu.js.map +0 -1
  452. package/dist/components/Menu/MenuButton.js.map +0 -1
  453. package/dist/components/Menu/MenuContext.js.map +0 -1
  454. package/dist/components/Menu/MenuItem.js.map +0 -1
  455. package/dist/components/Modal/Modal.js.map +0 -1
  456. package/dist/components/Modal/ModalBody.js.map +0 -1
  457. package/dist/components/Modal/ModalContext.js.map +0 -1
  458. package/dist/components/Modal/ModalFooter.js.map +0 -1
  459. package/dist/components/Modal/ModalHeader.js.map +0 -1
  460. package/dist/components/Modal/ModalSubtitle.js.map +0 -1
  461. package/dist/components/Popover/Popover.js.map +0 -1
  462. package/dist/components/Radio/Radio.js.map +0 -1
  463. package/dist/components/SearchBar/SearchBar.js.map +0 -1
  464. package/dist/components/Select/Select.js.map +0 -1
  465. package/dist/components/Select/SelectTrigger.js.map +0 -1
  466. package/dist/components/Table/TableExplorer.js +0 -10
  467. package/dist/components/Table/TableExplorer.js.map +0 -1
  468. package/dist/components/Tabs/Tabs.js.map +0 -1
  469. package/dist/components/Tabs/TabsContext.js.map +0 -1
  470. package/dist/components/Tabs/TabsItem.js.map +0 -1
  471. package/dist/components/Tabs/TabsList.js.map +0 -1
  472. package/dist/components/Tabs/TabsPanel.js.map +0 -1
  473. package/dist/components/TextArea/TextArea.js.map +0 -1
  474. package/dist/components/TextArea/TextareaCounter.js.map +0 -1
  475. package/dist/components/Toolbar/Toolbar.js.map +0 -1
  476. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  477. package/dist/components/TreeView/TreeItem.js.map +0 -1
  478. package/dist/components/TreeView/TreeView.js.map +0 -1
  479. package/dist/components/TreeView/hooks/useTreeItemEvents.js.map +0 -1
  480. package/dist/components/UploadCard/UploadCard.js.map +0 -1
  481. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +0 -1
  482. package/dist/core/OdeClientProvider/OdeClientProvider.js.map +0 -1
  483. package/dist/core/ThemeProvider/ThemeProvider.js.map +0 -1
  484. package/dist/core/useAvatar/useAvatar.js.map +0 -1
  485. package/dist/core/useBookmark/useBookmark.js.map +0 -1
  486. package/dist/core/useConf/useConf.js.map +0 -1
  487. package/dist/core/useConversation/useConversation.js.map +0 -1
  488. package/dist/core/useCookiesConsent/useCookiesConsent.js.map +0 -1
  489. package/dist/core/useDate/useDate.js.map +0 -1
  490. package/dist/core/useHasWorkflow/useHasWorkflow.js.map +0 -1
  491. package/dist/core/useHeader/useHeader.js.map +0 -1
  492. package/dist/core/useHttpErrorToast/useHttpErrorToast.js.map +0 -1
  493. package/dist/core/useIsAdml/useIsAdml.js.map +0 -1
  494. package/dist/core/useLibraryUrl/useLibraryUrl.js.map +0 -1
  495. package/dist/core/useMediaLibrary/useMediaLibrary.js.map +0 -1
  496. package/dist/core/useOdeIcons/useOdeIcons.js.map +0 -1
  497. package/dist/core/usePaths/usePaths.js.map +0 -1
  498. package/dist/core/usePreferences/usePreferences.js.map +0 -1
  499. package/dist/core/useResource/useResource.js.map +0 -1
  500. package/dist/core/useResourceSearch/useResourceSearch.js.map +0 -1
  501. package/dist/core/useSession/useSession.js.map +0 -1
  502. package/dist/core/useTrashedResource/useTrashedResource.js.map +0 -1
  503. package/dist/core/useUpload/useUpload.js.map +0 -1
  504. package/dist/core/useUploadFiles/useUploadFiles.js.map +0 -1
  505. package/dist/core/useUser/useUser.js.map +0 -1
  506. package/dist/core/useWorkspaceFile/useWorkspaceFile.js.map +0 -1
  507. package/dist/core/useWorkspaceSearch/useWorkspaceSearch.js.map +0 -1
  508. package/dist/core/useXitiTrackPageLoad/useXitiTrackPageLoad.js.map +0 -1
  509. package/dist/core/useZendeskGuide/useZendeskGuide.js.map +0 -1
  510. package/dist/editor.js +0 -59
  511. package/dist/editor.js.map +0 -1
  512. package/dist/hooks/useBrowserInfo/useBrowserInfo.js.map +0 -1
  513. package/dist/hooks/useClickOutside/useClickOutside.js.map +0 -1
  514. package/dist/hooks/useDebounce/useDebounce.js.map +0 -1
  515. package/dist/hooks/useDropdown/useDropdown.js.map +0 -1
  516. package/dist/hooks/useDropzone/useDropzone.js.map +0 -1
  517. package/dist/hooks/useHover/useHover.js.map +0 -1
  518. package/dist/hooks/useImage/useImage.js.map +0 -1
  519. package/dist/hooks/useImageResizer/useImageResizer.js.map +0 -1
  520. package/dist/hooks/useKeyPress/useKeyPress.js.map +0 -1
  521. package/dist/hooks/useScrollToTop/useScrollToTop.js.map +0 -1
  522. package/dist/hooks/useThumbnail/useThumbnail.js.map +0 -1
  523. package/dist/hooks/useTitle/useTitle.js.map +0 -1
  524. package/dist/hooks/useToast/useToast.js.map +0 -1
  525. package/dist/hooks/useToggle/useToggle.js.map +0 -1
  526. package/dist/hooks/useTrapFocus/useTrapFocus.js.map +0 -1
  527. package/dist/index.js.map +0 -1
  528. package/dist/modals.js +0 -17
  529. package/dist/modals.js.map +0 -1
  530. package/dist/modules/audience/ReactionChoice.js +0 -34
  531. package/dist/modules/audience/ReactionChoice.js.map +0 -1
  532. package/dist/modules/audience/ReactionModal.Card.js +0 -35
  533. package/dist/modules/audience/ReactionModal.Card.js.map +0 -1
  534. package/dist/modules/audience/ReactionModal.js +0 -73
  535. package/dist/modules/audience/ReactionModal.js.map +0 -1
  536. package/dist/modules/audience/ReactionSummary.js +0 -28
  537. package/dist/modules/audience/ReactionSummary.js.map +0 -1
  538. package/dist/modules/audience/ViewsByProfileCard.js +0 -36
  539. package/dist/modules/audience/ViewsByProfileCard.js.map +0 -1
  540. package/dist/modules/audience/ViewsCounter.js +0 -19
  541. package/dist/modules/audience/ViewsCounter.js.map +0 -1
  542. package/dist/modules/audience/ViewsModal.js +0 -41
  543. package/dist/modules/audience/ViewsModal.js.map +0 -1
  544. package/dist/modules/audience/hooks/useReactionIcons.js +0 -38
  545. package/dist/modules/audience/hooks/useReactionIcons.js.map +0 -1
  546. package/dist/modules/audience/hooks/useReactions.js +0 -36
  547. package/dist/modules/audience/hooks/useReactions.js.map +0 -1
  548. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.d.ts +0 -8
  549. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +0 -133
  550. package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js.map +0 -1
  551. package/dist/modules/editor/components/BubbleMenuEditImage/index.d.ts +0 -1
  552. package/dist/modules/editor/components/Editor/Editor.d.ts +0 -45
  553. package/dist/modules/editor/components/Editor/Editor.js +0 -84
  554. package/dist/modules/editor/components/Editor/Editor.js.map +0 -1
  555. package/dist/modules/editor/components/Editor/MathsModal.d.ts +0 -7
  556. package/dist/modules/editor/components/Editor/MathsModal.js +0 -51
  557. package/dist/modules/editor/components/Editor/MathsModal.js.map +0 -1
  558. package/dist/modules/editor/components/Editor/index.d.ts +0 -2
  559. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.d.ts +0 -22
  560. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js +0 -18
  561. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.DropdownMenu.js.map +0 -1
  562. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.d.ts +0 -14
  563. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js +0 -55
  564. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Emoji.js.map +0 -1
  565. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.d.ts +0 -14
  566. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js +0 -48
  567. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.HighlightColor.js.map +0 -1
  568. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.d.ts +0 -9
  569. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js +0 -19
  570. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.PlusMenu.js.map +0 -1
  571. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.d.ts +0 -14
  572. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js +0 -51
  573. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextColor.js.map +0 -1
  574. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.d.ts +0 -10
  575. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js +0 -63
  576. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.TextSize.js.map +0 -1
  577. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.d.ts +0 -10
  578. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js +0 -53
  579. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Typography.js.map +0 -1
  580. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +0 -10
  581. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +0 -320
  582. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js.map +0 -1
  583. package/dist/modules/editor/components/EditorToolbar/index.d.ts +0 -1
  584. package/dist/modules/editor/components/NodeView/AttachmentNodeView.d.ts +0 -2
  585. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js +0 -11
  586. package/dist/modules/editor/components/NodeView/AttachmentNodeView.js.map +0 -1
  587. package/dist/modules/editor/components/NodeView/AudioNodeView.d.ts +0 -2
  588. package/dist/modules/editor/components/NodeView/AudioNodeView.js +0 -11
  589. package/dist/modules/editor/components/NodeView/AudioNodeView.js.map +0 -1
  590. package/dist/modules/editor/components/NodeView/ImageNodeView.d.ts +0 -2
  591. package/dist/modules/editor/components/NodeView/ImageNodeView.js +0 -11
  592. package/dist/modules/editor/components/NodeView/ImageNodeView.js.map +0 -1
  593. package/dist/modules/editor/components/NodeView/LinkerNodeView.d.ts +0 -2
  594. package/dist/modules/editor/components/NodeView/LinkerNodeView.js +0 -11
  595. package/dist/modules/editor/components/NodeView/LinkerNodeView.js.map +0 -1
  596. package/dist/modules/editor/components/NodeView/VideoNodeView.d.ts +0 -2
  597. package/dist/modules/editor/components/NodeView/VideoNodeView.js +0 -11
  598. package/dist/modules/editor/components/NodeView/VideoNodeView.js.map +0 -1
  599. package/dist/modules/editor/components/NodeView/index.d.ts +0 -5
  600. package/dist/modules/editor/components/Renderer/AttachmentRenderer.d.ts +0 -7
  601. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js +0 -35
  602. package/dist/modules/editor/components/Renderer/AttachmentRenderer.js.map +0 -1
  603. package/dist/modules/editor/components/Renderer/AudioRenderer.d.ts +0 -7
  604. package/dist/modules/editor/components/Renderer/AudioRenderer.js +0 -12
  605. package/dist/modules/editor/components/Renderer/AudioRenderer.js.map +0 -1
  606. package/dist/modules/editor/components/Renderer/LinkerRenderer.d.ts +0 -9
  607. package/dist/modules/editor/components/Renderer/LinkerRenderer.js +0 -35
  608. package/dist/modules/editor/components/Renderer/LinkerRenderer.js.map +0 -1
  609. package/dist/modules/editor/components/Renderer/MediaRenderer.d.ts +0 -2
  610. package/dist/modules/editor/components/Renderer/MediaRenderer.js +0 -70
  611. package/dist/modules/editor/components/Renderer/MediaRenderer.js.map +0 -1
  612. package/dist/modules/editor/components/Renderer/index.d.ts +0 -4
  613. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.d.ts +0 -2
  614. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +0 -9
  615. package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js.map +0 -1
  616. package/dist/modules/editor/components/Toolbar/LinkToolbar.d.ts +0 -15
  617. package/dist/modules/editor/components/Toolbar/LinkToolbar.js +0 -60
  618. package/dist/modules/editor/components/Toolbar/LinkToolbar.js.map +0 -1
  619. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.d.ts +0 -9
  620. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js +0 -29
  621. package/dist/modules/editor/components/Toolbar/TableToolbar.AddMenu.js.map +0 -1
  622. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.d.ts +0 -13
  623. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js +0 -46
  624. package/dist/modules/editor/components/Toolbar/TableToolbar.CellColor.js.map +0 -1
  625. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.d.ts +0 -9
  626. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js +0 -28
  627. package/dist/modules/editor/components/Toolbar/TableToolbar.DelMenu.js.map +0 -1
  628. package/dist/modules/editor/components/Toolbar/TableToolbar.d.ts +0 -9
  629. package/dist/modules/editor/components/Toolbar/TableToolbar.js +0 -89
  630. package/dist/modules/editor/components/Toolbar/TableToolbar.js.map +0 -1
  631. package/dist/modules/editor/components/Toolbar/index.d.ts +0 -2
  632. package/dist/modules/editor/components/index.d.ts +0 -6
  633. package/dist/modules/editor/hooks/index.d.ts +0 -12
  634. package/dist/modules/editor/hooks/useActionOptions.d.ts +0 -5
  635. package/dist/modules/editor/hooks/useActionOptions.js +0 -76
  636. package/dist/modules/editor/hooks/useActionOptions.js.map +0 -1
  637. package/dist/modules/editor/hooks/useCommentEditor.d.ts +0 -13
  638. package/dist/modules/editor/hooks/useCommentEditor.js +0 -38
  639. package/dist/modules/editor/hooks/useCommentEditor.js.map +0 -1
  640. package/dist/modules/editor/hooks/useEditorContext.d.ts +0 -37
  641. package/dist/modules/editor/hooks/useEditorContext.js +0 -13
  642. package/dist/modules/editor/hooks/useEditorContext.js.map +0 -1
  643. package/dist/modules/editor/hooks/useImageModal.d.ts +0 -31
  644. package/dist/modules/editor/hooks/useImageModal.js +0 -47
  645. package/dist/modules/editor/hooks/useImageModal.js.map +0 -1
  646. package/dist/modules/editor/hooks/useImageSelection.d.ts +0 -21
  647. package/dist/modules/editor/hooks/useImageSelection.js +0 -47
  648. package/dist/modules/editor/hooks/useImageSelection.js.map +0 -1
  649. package/dist/modules/editor/hooks/useLinkToolbar.d.ts +0 -17
  650. package/dist/modules/editor/hooks/useLinkToolbar.js +0 -38
  651. package/dist/modules/editor/hooks/useLinkToolbar.js.map +0 -1
  652. package/dist/modules/editor/hooks/useMathsModal.d.ts +0 -17
  653. package/dist/modules/editor/hooks/useMathsModal.js +0 -18
  654. package/dist/modules/editor/hooks/useMathsModal.js.map +0 -1
  655. package/dist/modules/editor/hooks/useMathsStyles.d.ts +0 -1
  656. package/dist/modules/editor/hooks/useMathsStyles.js +0 -21
  657. package/dist/modules/editor/hooks/useMathsStyles.js.map +0 -1
  658. package/dist/modules/editor/hooks/useMediaLibraryEditor.d.ts +0 -19
  659. package/dist/modules/editor/hooks/useMediaLibraryEditor.js +0 -153
  660. package/dist/modules/editor/hooks/useMediaLibraryEditor.js.map +0 -1
  661. package/dist/modules/editor/hooks/useResizeMedia.d.ts +0 -10
  662. package/dist/modules/editor/hooks/useResizeMedia.js +0 -48
  663. package/dist/modules/editor/hooks/useResizeMedia.js.map +0 -1
  664. package/dist/modules/editor/hooks/useSpeechRecognition.d.ts +0 -6
  665. package/dist/modules/editor/hooks/useSpeechRecognition.js +0 -22
  666. package/dist/modules/editor/hooks/useSpeechRecognition.js.map +0 -1
  667. package/dist/modules/editor/hooks/useSpeechSynthetisis.d.ts +0 -12
  668. package/dist/modules/editor/hooks/useSpeechSynthetisis.js +0 -21
  669. package/dist/modules/editor/hooks/useSpeechSynthetisis.js.map +0 -1
  670. package/dist/modules/editor/hooks/useTipTapEditor.d.ts +0 -15
  671. package/dist/modules/editor/hooks/useTipTapEditor.js +0 -76
  672. package/dist/modules/editor/hooks/useTipTapEditor.js.map +0 -1
  673. package/dist/modules/editor/index.d.ts +0 -3
  674. package/dist/modules/editor/utils/has-extension.d.ts +0 -2
  675. package/dist/modules/editor/utils/has-extension.js +0 -5
  676. package/dist/modules/editor/utils/has-extension.js.map +0 -1
  677. package/dist/modules/editor/utils/has-mark.d.ts +0 -2
  678. package/dist/modules/editor/utils/has-mark.js +0 -5
  679. package/dist/modules/editor/utils/has-mark.js.map +0 -1
  680. package/dist/modules/editor/utils/has-text-style.d.ts +0 -2
  681. package/dist/modules/editor/utils/has-text-style.js +0 -6
  682. package/dist/modules/editor/utils/has-text-style.js.map +0 -1
  683. package/dist/modules/modals/OnboardingModal/OnboardingModal.js +0 -60
  684. package/dist/modules/modals/OnboardingModal/OnboardingModal.js.map +0 -1
  685. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js +0 -31
  686. package/dist/modules/modals/OnboardingModal/useOnboardingModal.js.map +0 -1
  687. package/dist/modules/modals/PublishModal/PublishModal.js +0 -121
  688. package/dist/modules/modals/PublishModal/PublishModal.js.map +0 -1
  689. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js +0 -30
  690. package/dist/modules/modals/PublishModal/components/ActivitiesDropdown.js.map +0 -1
  691. package/dist/modules/modals/PublishModal/components/AgeSelect.js +0 -21
  692. package/dist/modules/modals/PublishModal/components/AgeSelect.js.map +0 -1
  693. package/dist/modules/modals/PublishModal/components/LangSelect.js +0 -20
  694. package/dist/modules/modals/PublishModal/components/LangSelect.js.map +0 -1
  695. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js +0 -24
  696. package/dist/modules/modals/PublishModal/components/PublishModalFooter.js.map +0 -1
  697. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js +0 -30
  698. package/dist/modules/modals/PublishModal/components/SubjectsDropdown.js.map +0 -1
  699. package/dist/modules/modals/PublishModal/components/ToastError.js +0 -25
  700. package/dist/modules/modals/PublishModal/components/ToastError.js.map +0 -1
  701. package/dist/modules/modals/PublishModal/components/ToastSuccess.js +0 -19
  702. package/dist/modules/modals/PublishModal/components/ToastSuccess.js.map +0 -1
  703. package/dist/modules/modals/PublishModal/constants/ageOptions.js +0 -5
  704. package/dist/modules/modals/PublishModal/constants/ageOptions.js.map +0 -1
  705. package/dist/modules/modals/PublishModal/hooks/useActivitiesOptions.js.map +0 -1
  706. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js +0 -44
  707. package/dist/modules/modals/PublishModal/hooks/useLanguageOptions.js.map +0 -1
  708. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js +0 -107
  709. package/dist/modules/modals/PublishModal/hooks/usePublishModal.js.map +0 -1
  710. package/dist/modules/modals/PublishModal/hooks/useSubjectsOptions.js.map +0 -1
  711. package/dist/modules/modals/ResourceModal/ResourceModal.js +0 -158
  712. package/dist/modules/modals/ResourceModal/ResourceModal.js.map +0 -1
  713. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js +0 -64
  714. package/dist/modules/modals/ResourceModal/apps/BlogPublic.js.map +0 -1
  715. package/dist/modules/modals/ResourceModal/hooks/useSlug.js +0 -42
  716. package/dist/modules/modals/ResourceModal/hooks/useSlug.js.map +0 -1
  717. package/dist/modules/modals/ResourceModal/hooks/useThumb.js +0 -18
  718. package/dist/modules/modals/ResourceModal/hooks/useThumb.js.map +0 -1
  719. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js +0 -14
  720. package/dist/modules/modals/ResourceModal/hooks/useUpdateMutation.js.map +0 -1
  721. package/dist/modules/modals/ResourceModal/index.d.ts +0 -3
  722. package/dist/modules/modals/ShareModal/apps/ShareBlog.d.ts +0 -9
  723. package/dist/modules/modals/ShareModal/apps/ShareBlog.js +0 -44
  724. package/dist/modules/modals/ShareModal/apps/ShareBlog.js.map +0 -1
  725. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js +0 -17
  726. package/dist/modules/modals/ShareModal/hooks/useShareMutation.js.map +0 -1
  727. package/dist/modules/modals/ShareModal/index.d.ts +0 -3
  728. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js +0 -50
  729. package/dist/modules/multimedia/AudioRecorder/AudioRecorder.js.map +0 -1
  730. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js +0 -25
  731. package/dist/modules/multimedia/AudioRecorder/AudioRecorderTimer.js.map +0 -1
  732. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js +0 -308
  733. package/dist/modules/multimedia/AudioRecorder/useAudioRecorder.js.map +0 -1
  734. package/dist/modules/multimedia/Embed/Embed.js +0 -33
  735. package/dist/modules/multimedia/Embed/Embed.js.map +0 -1
  736. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js +0 -117
  737. package/dist/modules/multimedia/ImageEditor/components/ImageEditor.js.map +0 -1
  738. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js +0 -70
  739. package/dist/modules/multimedia/ImageEditor/components/ImageEditorToolbar.js.map +0 -1
  740. package/dist/modules/multimedia/ImageEditor/effects/blur.js +0 -73
  741. package/dist/modules/multimedia/ImageEditor/effects/blur.js.map +0 -1
  742. package/dist/modules/multimedia/ImageEditor/effects/crop.js +0 -156
  743. package/dist/modules/multimedia/ImageEditor/effects/crop.js.map +0 -1
  744. package/dist/modules/multimedia/ImageEditor/effects/misc.js +0 -163
  745. package/dist/modules/multimedia/ImageEditor/effects/misc.js.map +0 -1
  746. package/dist/modules/multimedia/ImageEditor/effects/resize.js +0 -158
  747. package/dist/modules/multimedia/ImageEditor/effects/resize.js.map +0 -1
  748. package/dist/modules/multimedia/ImageEditor/effects/rotate.js +0 -34
  749. package/dist/modules/multimedia/ImageEditor/effects/rotate.js.map +0 -1
  750. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js +0 -65
  751. package/dist/modules/multimedia/ImageEditor/hooks/useHistoryTool.js.map +0 -1
  752. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js +0 -77
  753. package/dist/modules/multimedia/ImageEditor/hooks/useImageEditor.js.map +0 -1
  754. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js +0 -53
  755. package/dist/modules/multimedia/ImageEditor/hooks/useImageEffects.js.map +0 -1
  756. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js +0 -14
  757. package/dist/modules/multimedia/ImageEditor/utils/aggregate.js.map +0 -1
  758. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js +0 -40
  759. package/dist/modules/multimedia/ImagePickerWorkspace/ImagePickerWorkspace.js.map +0 -1
  760. package/dist/modules/multimedia/Linker/ExternalLinker.js +0 -46
  761. package/dist/modules/multimedia/Linker/ExternalLinker.js.map +0 -1
  762. package/dist/modules/multimedia/Linker/InternalLinker.js +0 -115
  763. package/dist/modules/multimedia/Linker/InternalLinker.js.map +0 -1
  764. package/dist/modules/multimedia/LinkerCard/LinkerCard.js +0 -40
  765. package/dist/modules/multimedia/LinkerCard/LinkerCard.js.map +0 -1
  766. package/dist/modules/multimedia/LinkerCard/index.d.ts +0 -1
  767. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +0 -212
  768. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js.map +0 -1
  769. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js +0 -13
  770. package/dist/modules/multimedia/MediaLibrary/MediaLibraryContext.js.map +0 -1
  771. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js +0 -20
  772. package/dist/modules/multimedia/MediaLibrary/innertabs/Audio.js.map +0 -1
  773. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js +0 -18
  774. package/dist/modules/multimedia/MediaLibrary/innertabs/ExternalLink.js.map +0 -1
  775. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js +0 -15
  776. package/dist/modules/multimedia/MediaLibrary/innertabs/Iframe.js.map +0 -1
  777. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js +0 -36
  778. package/dist/modules/multimedia/MediaLibrary/innertabs/InternalLink.js.map +0 -1
  779. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +0 -35
  780. package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js.map +0 -1
  781. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js +0 -23
  782. package/dist/modules/multimedia/MediaLibrary/innertabs/Video.js.map +0 -1
  783. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js +0 -15
  784. package/dist/modules/multimedia/MediaLibrary/innertabs/VideoEmbedder.js.map +0 -1
  785. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js +0 -32
  786. package/dist/modules/multimedia/MediaLibrary/innertabs/Workspace.js.map +0 -1
  787. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +0 -22
  788. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js.map +0 -1
  789. package/dist/modules/multimedia/UploadFiles/UploadFiles.js +0 -57
  790. package/dist/modules/multimedia/UploadFiles/UploadFiles.js.map +0 -1
  791. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js +0 -78
  792. package/dist/modules/multimedia/VideoEmbed/VideoEmbed.js.map +0 -1
  793. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js +0 -260
  794. package/dist/modules/multimedia/VideoRecorder/VideoRecorder.js.map +0 -1
  795. package/dist/modules/multimedia/Workspace/Workspace.js +0 -170
  796. package/dist/modules/multimedia/Workspace/Workspace.js.map +0 -1
  797. package/dist/multimedia.js +0 -21
  798. package/dist/multimedia.js.map +0 -1
  799. package/dist/portal/Header/Badge.js.map +0 -1
  800. package/dist/portal/Header/Header.js.map +0 -1
  801. package/dist/portal/Header/NavItem.js.map +0 -1
  802. package/dist/portal/Header/NavLink.js.map +0 -1
  803. package/dist/portal/Header/Navbar.js.map +0 -1
  804. package/dist/portal/Header/NavbarNav.js.map +0 -1
  805. package/dist/portal/Header/WidgetApps.js.map +0 -1
  806. package/dist/portal/Help/Help.js.map +0 -1
  807. package/dist/portal/Help/hooks/useHelp.js.map +0 -1
  808. package/dist/portal/Layout/Layout.js.map +0 -1
  809. package/dist/portal/SearchEngine/SearchEngine.js.map +0 -1
  810. package/dist/utils/MockedDataProvider/MockedDataProvider.js.map +0 -1
  811. package/dist/utils/StringUtils.js.map +0 -1
  812. package/dist/utils/addTimestampToUrl.js.map +0 -1
  813. package/dist/utils/blob.js.map +0 -1
  814. package/dist/utils/checkUserRight.js.map +0 -1
  815. package/dist/utils/fileSize.js.map +0 -1
  816. package/dist/utils/findTreeNode.js.map +0 -1
  817. package/dist/utils/isActionAvailable.js.map +0 -1
  818. package/dist/utils/libraryMaps.js.map +0 -1
  819. package/dist/utils/noop.js.map +0 -1
  820. package/dist/utils/ref.js.map +0 -1
  821. package/dist/utils/thumbnail.js.map +0 -1
  822. package/dist/utils/time.js.map +0 -1
  823. package/dist/utils/treeview.js.map +0 -1
  824. package/dist/utils/video.js.map +0 -1
  825. package/dist/widgets/BookmarkedApps/BookmarkedApps.js.map +0 -1
  826. package/dist/widgets/Widget/Widget.js.map +0 -1
  827. /package/dist/{modules/modals → common}/OnboardingModal/OnboardingModal.d.ts +0 -0
  828. /package/dist/{modules/modals → common}/OnboardingModal/index.d.ts +0 -0
  829. /package/dist/{modules/modals → common}/OnboardingModal/useOnboardingModal.d.ts +0 -0
  830. /package/dist/{modules/modals → common}/PublishModal/components/ActivitiesDropdown.d.ts +0 -0
  831. /package/dist/{modules/modals → common}/PublishModal/components/AgeSelect.d.ts +0 -0
  832. /package/dist/{modules/modals → common}/PublishModal/components/LangSelect.d.ts +0 -0
  833. /package/dist/{modules/modals → common}/PublishModal/components/PublishModalFooter.d.ts +0 -0
  834. /package/dist/{modules/modals → common}/PublishModal/components/SubjectsDropdown.d.ts +0 -0
  835. /package/dist/{modules/modals → common}/PublishModal/components/ToastError.d.ts +0 -0
  836. /package/dist/{modules/modals → common}/PublishModal/constants/ageOptions.d.ts +0 -0
  837. /package/dist/{modules/modals → common}/PublishModal/hooks/useActivitiesOptions.d.ts +0 -0
  838. /package/dist/{modules/modals → common}/PublishModal/hooks/useLanguageOptions.d.ts +0 -0
  839. /package/dist/{modules/modals → common}/PublishModal/hooks/useSubjectsOptions.d.ts +0 -0
  840. /package/dist/{modules/modals → common}/PublishModal/index.d.ts +0 -0
  841. /package/dist/{modules/modals → common}/ShareModal/ShareBookmark.d.ts +0 -0
  842. /package/dist/{modules/modals → common}/index.d.ts +0 -0
  843. /package/dist/{modules/audience → components/Audience}/ViewsCounter.d.ts +0 -0
  844. /package/dist/{modules/audience → components/Audience}/index.d.ts +0 -0
  845. /package/dist/{modules/multimedia → multimedia}/AudioRecorder/AudioRecorderTimer.d.ts +0 -0
  846. /package/dist/{modules/multimedia → multimedia}/AudioRecorder/index.d.ts +0 -0
  847. /package/dist/{modules/multimedia → multimedia}/Embed/Embed.d.ts +0 -0
  848. /package/dist/{modules/multimedia → multimedia}/Embed/index.d.ts +0 -0
  849. /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditor.d.ts +0 -0
  850. /package/dist/{modules/multimedia → multimedia}/ImageEditor/components/ImageEditorToolbar.d.ts +0 -0
  851. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/blur.d.ts +0 -0
  852. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/crop.d.ts +0 -0
  853. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/misc.d.ts +0 -0
  854. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/resize.d.ts +0 -0
  855. /package/dist/{modules/multimedia → multimedia}/ImageEditor/effects/rotate.d.ts +0 -0
  856. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useHistoryTool.d.ts +0 -0
  857. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEditor.d.ts +0 -0
  858. /package/dist/{modules/multimedia → multimedia}/ImageEditor/hooks/useImageEffects.d.ts +0 -0
  859. /package/dist/{modules/multimedia → multimedia}/ImageEditor/index.d.ts +0 -0
  860. /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/aggregate.d.ts +0 -0
  861. /package/dist/{modules/multimedia → multimedia}/ImageEditor/utils/debounceAggregate.d.ts +0 -0
  862. /package/dist/{modules/multimedia → multimedia}/ImagePickerWorkspace/index.d.ts +0 -0
  863. /package/dist/{modules/multimedia → multimedia}/Linker/ExternalLinker.d.ts +0 -0
  864. /package/dist/{modules/multimedia → multimedia}/Linker/index.d.ts +0 -0
  865. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/index.d.ts +0 -0
  866. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Audio.d.ts +0 -0
  867. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/ExternalLink.d.ts +0 -0
  868. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Iframe.d.ts +0 -0
  869. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Upload.d.ts +0 -0
  870. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Video.d.ts +0 -0
  871. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/VideoEmbedder.d.ts +0 -0
  872. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/Workspace.d.ts +0 -0
  873. /package/dist/{modules/multimedia → multimedia}/MediaLibrary/innertabs/index.d.ts +0 -0
  874. /package/dist/{modules/multimedia → multimedia}/UploadFiles/index.d.ts +0 -0
  875. /package/dist/{modules/multimedia → multimedia}/VideoEmbed/VideoEmbed.d.ts +0 -0
  876. /package/dist/{modules/multimedia → multimedia}/VideoEmbed/index.d.ts +0 -0
  877. /package/dist/{modules/multimedia → multimedia}/VideoRecorder/index.d.ts +0 -0
  878. /package/dist/{modules/multimedia → multimedia}/Workspace/index.d.ts +0 -0
  879. /package/dist/{modules/multimedia → multimedia}/index.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileCard.js","sources":["../../../src/components/FileCard/FileCard.tsx"],"sourcesContent":["import { useRef } from 'react';\n\nimport {\n DocumentHelper,\n Role,\n WorkspaceElement,\n odeServices,\n} from '@edifice.io/ts-client';\nimport clsx from 'clsx';\n\nimport { Icon } from '..';\nimport { useThumbnail } from '../../hooks/useThumbnail';\nimport Card, { CardProps } from '../Card/Card';\nimport FileIcon from './FileIcon';\n\nexport interface FileCardProps extends CardProps {\n /**\n * WorkspaceElement\n * */\n doc: WorkspaceElement;\n}\n\nexport const FileCard = ({\n doc,\n isClickable = true,\n isSelectable = false,\n isSelected = false,\n onClick,\n className,\n}: FileCardProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const type = DocumentHelper.getRole(doc);\n\n function getRoleMap(type: Role | 'unknown') {\n const roleMappings = {\n csv: {\n icon: '.CSV',\n color: 'bg-orange-200',\n },\n xls: {\n icon: '.XLS',\n color: 'bg-green-200',\n },\n doc: {\n icon: '.DOC',\n color: 'bg-blue-200',\n },\n txt: {\n icon: '.TXT',\n color: 'bg-blue-200',\n },\n pdf: {\n icon: '.PDF',\n color: 'bg-red-200',\n },\n audio: {\n icon: <Icon name=\"mic\" size=\"22\" />,\n color: 'bg-red-200',\n },\n ppt: {\n icon: '.PPT',\n color: 'bg-yellow-200',\n },\n img: {\n icon: <Icon name=\"landscape\" size=\"22\" />,\n color: 'bg-green-200',\n },\n video: {\n icon: <Icon name=\"video\" size=\"22\" />,\n color: 'bg-purple-200',\n },\n zip: {\n icon: '.ZIP',\n color: 'bg-gray-300',\n },\n md: {\n icon: '.MD',\n color: 'bg-blue-200',\n },\n unknown: {\n icon: <Icon name=\"text-page\" size=\"22\" />,\n color: 'bg-gray-300',\n },\n };\n\n return roleMappings[type] || roleMappings.unknown;\n }\n\n const file = clsx(\n 'file position-relative rounded',\n getRoleMap(type ?? 'default')?.color ?? 'bg-yellow-200',\n );\n\n const mediaSrc =\n type === 'img' || type === 'video'\n ? odeServices.workspace().getThumbnailUrl(doc)\n : null;\n\n const hasThumbnail = useThumbnail(mediaSrc!, { ref });\n\n const imageStyles = hasThumbnail && {\n backgroundImage: `url(${mediaSrc})`,\n backgroundSize: 'cover',\n };\n\n return (\n <Card\n className={clsx('card-file', className)}\n isClickable={isClickable}\n isSelectable={isSelectable}\n isSelected={isSelected}\n onClick={onClick}\n >\n <Card.Body space=\"8\">\n <div\n ref={ref}\n className={file}\n style={{\n aspectRatio: '16/10',\n ...imageStyles,\n }}\n >\n {type !== 'img' || (type === 'img' && !hasThumbnail) ? (\n <FileIcon type={type} roleMap={getRoleMap(type)} />\n ) : null}\n </div>\n <div className=\"mt-4\">\n <Card.Text>{doc.name}</Card.Text>\n <Card.Text className=\"text-black-50\">{doc?.ownerName}</Card.Text>\n </div>\n </Card.Body>\n </Card>\n );\n};\n\nFileCard.displayName = 'FileCard';\n\nexport default FileCard;\n"],"names":["FileCard","doc","isClickable","isSelectable","isSelected","onClick","className","ref","useRef","type","DocumentHelper","getRole","getRoleMap","roleMappings","csv","icon","color","xls","txt","pdf","audio","jsx","Icon","ppt","img","video","zip","md","unknown","file","clsx","mediaSrc","odeServices","workspace","getThumbnailUrl","hasThumbnail","useThumbnail","imageStyles","backgroundImage","backgroundSize","Card","jsxs","aspectRatio","FileIcon","name","ownerName"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileIcon.js","sources":["../../../src/components/FileCard/FileIcon.tsx"],"sourcesContent":["import { Role } from '@edifice.io/ts-client';\nimport clsx from 'clsx';\nimport { Icon } from '..';\n\nconst FileIcon = ({\n type,\n roleMap,\n}: {\n type: Role | 'unknown';\n roleMap?: Record<string, string | JSX.Element>;\n}) => {\n const hasNoShadow = typeof roleMap?.icon !== 'string' && type !== 'unknown';\n const fileicon = clsx(\n 'position-absolute top-50 start-50 translate-middle',\n {\n 'p-12 rounded-circle shadow': hasNoShadow,\n },\n roleMap?.color,\n );\n\n return (\n <div className={fileicon}>{roleMap?.icon ?? <Icon name=\"paperclip\" />}</div>\n );\n};\n\nexport default FileIcon;\n"],"names":["FileIcon","type","roleMap","hasNoShadow","icon","fileicon","clsx","color","jsx","Icon"],"mappings":";;;AAIA,MAAMA,IAAWA,CAAC;AAAA,EAChBC,MAAAA;AAAAA,EACAC,SAAAA;AAIF,MAAM;AACJ,QAAMC,IAAc,QAAOD,KAAAA,gBAAAA,EAASE,SAAS,YAAYH,MAAS,WAC5DI,IAAWC,EACf,sDACA;AAAA,IACE,8BAA8BH;AAAAA,EAAAA,GAEhCD,KAAAA,gBAAAA,EAASK,KACX;AAGE,SAAA,gBAAAC,EAAC,OAAI,EAAA,WAAWH,GAAWH,WAAAA,KAAAA,gBAAAA,EAASE,SAAS,gBAAAI,EAAAC,GAAA,EAAK,MAAK,YAAc,CAAA,EAAC,CAAA;AAE1E;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormContext.js","sources":["../../../src/components/Form/FormContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport { FormControlProps } from './FormControl';\n\ntype Props = Omit<FormControlProps, 'className' | 'children'>;\n\nexport type FormContextProps = Props;\n\nexport const Context = createContext<FormContextProps | null>(null!);\n\nexport const useFormControl = () => {\n const context = useContext(Context);\n if (!context) {\n throw new Error(`Cannot be rendered outside the FormControl component`);\n }\n return context;\n};\n"],"names":["Context","useFormControl","context","useContext","Error"],"mappings":";AAQaA,MAAAA,sBAAiD,IAAK,GAEtDC,IAAiBA,MAAM;AAC5BC,QAAAA,IAAUC,EAAWH,CAAO;AAClC,MAAI,CAACE;AACG,UAAA,IAAIE,MAAM,sDAAsD;AAEjEF,SAAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormControl.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormText.js","sources":["../../../src/components/Form/FormText.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport clsx from 'clsx';\n\nimport { useFormControl } from './FormContext';\n\nexport const FormText = ({ children }: { children: ReactNode }) => {\n const { status } = useFormControl();\n const classes = clsx('form-text', {\n 'is-invalid': status === 'invalid',\n valid: status === 'valid',\n });\n\n return (\n <p className={classes}>\n <em>{children}</em>\n </p>\n );\n};\n\nFormText.displayName = 'Text';\n\nexport default FormText;\n"],"names":["FormText","children","status","useFormControl","classes","clsx","valid","jsx"],"mappings":";;;AAMO,MAAMA,IAAWA,CAAC;AAAA,EAAEC,UAAAA;AAAkC,MAAM;AAC3D,QAAA;AAAA,IAAEC,QAAAA;AAAAA,MAAWC,EAAe,GAC5BC,IAAUC,EAAK,aAAa;AAAA,IAChC,cAAcH,MAAW;AAAA,IACzBI,OAAOJ,MAAW;AAAA,EAAA,CACnB;AAED,2BACG,KAAE,EAAA,WAAWE,GACZ,UAAC,gBAAAG,EAAA,MAAA,EAAIN,UAAAA,EAAS,CAAA,EAChB,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Grid.js","sources":["../../../src/components/Grid/Grid.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport clsx from 'clsx';\n\nexport interface GridProps {\n /**\n * Content inside the Grid component. Usually GridCol components\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\nexport interface GridColProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Size on Mobile\n */\n sm: string;\n /**\n * Size on Tablet\n */\n md?: string;\n /**\n * Size on Small Desktop\n */\n lg?: string;\n /**\n * Size on Large Desktop\n */\n xl?: string;\n /**\n * Accept content as children\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n /**\n * As Prop\n */\n as?: React.ElementType;\n}\n\n/**\n * Grid of 12 columns on Desktop, 8 on Tablet and 4 on Mobile\n */\n\nexport const Grid = ({ children, className, ...restProps }: GridProps) => {\n const classes = clsx('grid', className);\n return (\n <div className={classes} {...restProps}>\n {children}\n </div>\n );\n};\n\nexport const Column = ({\n sm,\n md,\n lg,\n xl,\n children,\n className,\n as,\n ...restProps\n}: GridColProps) => {\n const Component = as || 'div';\n const classes = clsx(\n {\n [`g-col-${sm}`]: sm,\n [md ? `g-col-md-${md}` : '']: md,\n [lg ? `g-col-lg-${lg}` : '']: lg,\n [xl ? `g-col-xl-${xl}` : '']: xl,\n },\n className,\n );\n return (\n <Component className={classes} {...restProps}>\n {children}\n </Component>\n );\n};\n\nGrid.displayName = 'Grid';\nColumn.displayName = 'Grid.Col';\n\nGrid.Col = Column;\n"],"names":["Grid","children","className","restProps","classes","clsx","Column","sm","md","lg","xl","as","Component","Col"],"mappings":";;AAkDO,MAAMA,IAAOA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,WAAAA;AAAAA,EAAW,GAAGC;AAAqB,MAAM;AAClEC,QAAAA,IAAUC,EAAK,QAAQH,CAAS;AACtC,2BACG,OAAI,EAAA,WAAWE,GAAaD,GAAAA,GAC1BF,UAAAA,EACH,CAAA;AAEJ,GAEaK,IAASA,CAAC;AAAA,EACrBC,IAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAT,UAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAS,IAAAA;AAAAA,EACA,GAAGR;AACS,MAAM;AAClB,QAAMS,IAAYD,KAAM,OAClBP,IAAUC,EACd;AAAA,IACE,CAAC,SAASE,CAAE,EAAE,GAAGA;AAAAA,IACjB,CAACC,IAAK,YAAYA,CAAE,KAAK,EAAE,GAAGA;AAAAA,IAC9B,CAACC,IAAK,YAAYA,CAAE,KAAK,EAAE,GAAGA;AAAAA,IAC9B,CAACC,IAAK,YAAYA,CAAE,KAAK,EAAE,GAAGA;AAAAA,KAEhCR,CACF;AACA,2BACGU,GAAU,EAAA,WAAWR,GAAaD,GAAAA,GAChCF,UAAAA,EACH,CAAA;AAEJ;AAKAD,EAAKa,MAAMP;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Heading.js","sources":["../../../src/components/Heading/Heading.tsx"],"sourcesContent":["import { ReactNode, forwardRef } from 'react';\n\nimport clsx from 'clsx';\n\nexport type HeadingElement = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /**\n * Level of Heading\n * `\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"`\n */\n level?: HeadingElement;\n /**\n * Apply Bootstrap utility Class\n * `\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"`\n */\n headingStyle?: HeadingElement;\n /**\n * Text to render\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\n/**\n * Heading component to display heading elements\n */\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n (\n {\n level: Component = 'h1',\n headingStyle = 'h1',\n children,\n className,\n ...restProps\n }: HeadingProps,\n ref,\n ) => {\n const classes = clsx(headingStyle, className);\n return (\n <Component ref={ref} className={classes} {...restProps}>\n {children}\n </Component>\n );\n },\n);\n\nHeading.displayName = 'Heading';\n\nexport default Heading;\n"],"names":["Heading","level","Component","headingStyle","children","className","restProps","ref","classes","clsx"],"mappings":";;;AA8BaA,MAAAA,sBACX,CACE;AAAA,EACEC,OAAOC,IAAY;AAAA,EACnBC,cAAAA,IAAe;AAAA,EACfC,UAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACA,GAAGC;AACS,GACdC,MACG;AACGC,QAAAA,IAAUC,EAAKN,GAAcE,CAAS;AAC5C,2BACGH,GAAU,EAAA,KAAAK,GAAU,WAAWC,GAAS,GAAIF,GAC1CF,UAAAA,EACH,CAAA;AAEJ,CACF;"}
@@ -1,17 +0,0 @@
1
- import { IconName } from '@edifice.io/icons';
2
- import { SVGProps } from 'react';
3
- /**
4
- * IconSize (default to 24x24)
5
- */
6
- type IconSize = '16' | '18' | '20' | '22' | '24' | '40' | '36' | '48' | (string & {});
7
- /**
8
- * Icon component displays any icon from `@edifice.io/icons`
9
- */
10
- export declare const Icon: {
11
- ({ name, size, ...props }: SVGProps<SVGSVGElement> & {
12
- name: IconName;
13
- size?: IconSize | undefined;
14
- }): import("react/jsx-runtime").JSX.Element;
15
- displayName: string;
16
- };
17
- export {};
@@ -1,11 +0,0 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import h from "@edifice.io/icons/icons.svg";
3
- const m = ({
4
- name: e,
5
- size: r = "24",
6
- ...o
7
- }) => /* @__PURE__ */ t("svg", { ...o, width: r, height: r, children: /* @__PURE__ */ t("use", { href: `${h}#${e}` }) });
8
- export {
9
- m as Icon
10
- };
11
- //# sourceMappingURL=Icon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Icon.js","sources":["../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import type { IconName } from '@edifice.io/icons';\nimport spriteHref from '@edifice.io/icons/icons.svg';\nimport type { SVGProps } from 'react';\n\n/**\n * IconSize (default to 24x24)\n */\ntype IconSize =\n | '16'\n | '18'\n | '20'\n | '22'\n | '24'\n | '40'\n | '36'\n | '48'\n | (string & {});\n\n/**\n * Icon component displays any icon from `@edifice.io/icons`\n */\nexport const Icon = ({\n name,\n size = '24',\n ...props\n}: SVGProps<SVGSVGElement> & {\n name: IconName;\n size?: IconSize;\n}) => {\n return (\n <svg {...props} width={size} height={size}>\n <use href={`${spriteHref}#${name}`} />\n </svg>\n );\n};\n\nIcon.displayName = 'Icon';\n"],"names":["Icon","name","size","props","jsx","spriteHref"],"mappings":";;AAqBO,MAAMA,IAAOA,CAAC;AAAA,EACnBC,MAAAA;AAAAA,EACAC,MAAAA,IAAO;AAAA,EACP,GAAGC;AAIL,wBAEK,OAAQA,EAAAA,GAAAA,GAAO,OAAOD,GAAM,QAAQA,GACnC,UAAC,gBAAAE,EAAA,OAAA,EAAI,MAAM,GAAGC,CAAU,IAAIJ,CAAI,IAAG,EACrC,CAAA;"}
@@ -1 +0,0 @@
1
- export * from './Icon';
@@ -1 +0,0 @@
1
- {"version":3,"file":"Image.js","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react';\n\nimport clsx from 'clsx';\n\nimport usePaths from '../../core/usePaths/usePaths';\nimport useImage from '../../hooks/useImage/useImage';\n\nexport interface ImageProps extends React.ComponentPropsWithRef<'img'> {\n /**\n * Image URL\n */\n src: string;\n /**\n * Alternative text for a11y\n */\n alt: string;\n /**\n * Image ratio\n */\n ratio?: '1' | '4' | '16' | '21';\n /**\n * Object fit property\n */\n objectFit?: 'contain' | 'cover' | 'fill' | 'scale' | 'none';\n /**\n * Placeholder image as fallback\n */\n imgPlaceholder?: string;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\nexport const Image = forwardRef(\n (\n {\n src,\n alt,\n imgPlaceholder,\n ratio,\n objectFit,\n className,\n ...restProps\n }: ImageProps,\n ref: Ref<HTMLImageElement>,\n ) => {\n const [imagePath] = usePaths();\n const placeholder =\n imgPlaceholder ?? `${imagePath}/common/image-placeholder.png`;\n\n const { imgSrc, onError } = useImage({ src, placeholder });\n\n const ratioImage = {\n 'ratio ratio-1x1': ratio === '1',\n 'ratio ratio-4x3': ratio === '4',\n 'ratio ratio-16x9': ratio === '16',\n 'ratio ratio-21x9': ratio === '21',\n };\n\n const objectImage = {\n 'object-fit-contain': objectFit === 'contain',\n 'object-fit-cover': objectFit === 'cover',\n 'object-fit-fill': objectFit === 'fill',\n 'object-fit-scale': objectFit === 'scale',\n 'object-fit-none': objectFit === 'none',\n };\n\n const ratioClasses = clsx({\n ...ratioImage,\n });\n\n const classes = clsx(\n {\n ...objectImage,\n },\n className,\n );\n\n const renderImage = (\n <img\n alt={alt}\n onError={onError}\n ref={ref}\n src={imgSrc}\n className={classes}\n {...restProps}\n />\n );\n\n if (ratio) {\n return <div className={ratioClasses}>{renderImage}</div>;\n }\n\n return renderImage;\n },\n);\n\nImage.displayName = 'Image';\n\nexport default Image;\n"],"names":["Image","src","alt","imgPlaceholder","ratio","objectFit","className","restProps","ref","imagePath","usePaths","placeholder","imgSrc","onError","useImage","ratioImage","objectImage","ratioClasses","clsx","classes","renderImage","jsx"],"mappings":";;;;;AAkCaA,MAAAA,sBACX,CACE;AAAA,EACEC,KAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACA,GAAGC;AACO,GACZC,MACG;AACG,QAAA,CAACC,CAAS,IAAIC,KACdC,IACJR,KAAkB,GAAGM,CAAS,iCAE1B;AAAA,IAAEG,QAAAA;AAAAA,IAAQC,SAAAA;AAAAA,MAAYC,EAAS;AAAA,IAAEb,KAAAA;AAAAA,IAAKU,aAAAA;AAAAA,EAAAA,CAAa,GAEnDI,IAAa;AAAA,IACjB,mBAAmBX,MAAU;AAAA,IAC7B,mBAAmBA,MAAU;AAAA,IAC7B,oBAAoBA,MAAU;AAAA,IAC9B,oBAAoBA,MAAU;AAAA,EAAA,GAG1BY,IAAc;AAAA,IAClB,sBAAsBX,MAAc;AAAA,IACpC,oBAAoBA,MAAc;AAAA,IAClC,mBAAmBA,MAAc;AAAA,IACjC,oBAAoBA,MAAc;AAAA,IAClC,mBAAmBA,MAAc;AAAA,EAAA,GAG7BY,IAAeC,EAAK;AAAA,IACxB,GAAGH;AAAAA,EAAAA,CACJ,GAEKI,IAAUD,EACd;AAAA,IACE,GAAGF;AAAAA,KAELV,CACF,GAEMc,IACH,gBAAAC,EAAA,OAAA,EACC,KAAAnB,GACA,SAAAW,GACA,KAAAL,GACA,KAAKI,GACL,WAAWO,GACPZ,GAAAA,EAEP,CAAA;AAED,SAAIH,IACM,gBAAAiB,EAAA,OAAA,EAAI,WAAWJ,GAAeG,UAAYA,EAAA,CAAA,IAG7CA;AACT,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImagePicker.js","sources":["../../../src/components/ImagePicker/ImagePicker.tsx"],"sourcesContent":["import {\n ComponentPropsWithRef,\n forwardRef,\n Ref,\n useEffect,\n useState,\n} from 'react';\n\nimport { IWebApp } from '@edifice.io/ts-client';\nimport clsx from 'clsx';\n\nimport { Icon } from '..';\nimport { useDropzone } from '../../hooks';\nimport { AppIcon } from '../AppIcon';\nimport { Avatar } from '../Avatar';\nimport { IconButton } from '../Button';\nimport { FormControl } from '../Form';\nimport { Input } from '../Input';\n\nexport interface ImagePickerProps extends ComponentPropsWithRef<'input'> {\n /**\n * Description of the ImagePicker label.\n */\n label: string;\n /**\n * Accessible description of the add button\n */\n addButtonLabel: string;\n /**\n * Accessible description of the delete button\n */\n deleteButtonLabel: string;\n /**\n * Provide a default image as placeholder\n */\n src?: string;\n /**\n * To show the icon of an application\n */\n app?: IWebApp | undefined;\n\n appCode?: string;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n /**\n * Callback when uploading image\n */\n onUploadImage: (file: File) => void;\n /**\n * Callback when deleting image\n */\n onDeleteImage: () => void;\n}\n\nexport const ImagePicker = forwardRef(\n (\n {\n label,\n addButtonLabel = 'Add image',\n deleteButtonLabel = 'Delete image',\n src,\n className,\n app,\n onUploadImage,\n onDeleteImage,\n }: ImagePickerProps,\n ref: Ref<HTMLInputElement>,\n ) => {\n const [preview, setPreview] = useState<string>(src || '');\n\n const {\n inputRef,\n files,\n deleteFile,\n handleOnChange,\n handleDragging,\n handleDragLeave,\n handleDrop,\n } = useDropzone();\n\n useEffect(() => {\n if (files.length > 0) {\n deleteFile(files[0]);\n setPreview('');\n\n const file = files?.[0];\n if (!file) return;\n\n setPreview(URL.createObjectURL(file));\n onUploadImage(file);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [files]);\n\n const handleClick = () => {\n inputRef.current?.click();\n };\n\n const handleClean = () => {\n if (inputRef.current) {\n inputRef.current.value = '';\n }\n\n deleteFile(files[0]);\n setPreview('');\n onDeleteImage();\n };\n\n const classes = clsx('image-input', className);\n\n return (\n <FormControl\n id=\"image-input\"\n className={classes}\n onDragEnter={handleDragging}\n onDragOver={handleDragging}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n ref={ref}\n >\n <div className=\"image-input-actions gap-8\">\n <IconButton\n aria-label={addButtonLabel}\n color=\"tertiary\"\n icon={<Icon name=\"edit\" />}\n onClick={handleClick}\n type=\"button\"\n variant=\"ghost\"\n />\n <IconButton\n aria-label={deleteButtonLabel}\n color=\"danger\"\n disabled={!preview}\n icon={<Icon name=\"delete\" size=\"20\" />}\n onClick={handleClean}\n type=\"button\"\n variant=\"ghost\"\n />\n </div>\n <FormControl.Label>\n <span className=\"visually-hidden\">{label}</span>\n <Input\n accept=\"image/jpeg, image/png\"\n hidden\n onChange={handleOnChange}\n ref={inputRef}\n size=\"sm\"\n type=\"file\"\n />\n {preview ? (\n <Avatar alt=\"\" src={preview} size=\"xl\" />\n ) : (\n <AppIcon app={app} iconFit=\"ratio\" size=\"160\" variant=\"rounded\" />\n )}\n </FormControl.Label>\n </FormControl>\n );\n },\n);\n\nImagePicker.displayName = 'ImagePicker';\n"],"names":["ImagePicker","label","addButtonLabel","deleteButtonLabel","src","className","app","onUploadImage","onDeleteImage","ref","preview","setPreview","useState","inputRef","files","deleteFile","handleOnChange","handleDragging","handleDragLeave","handleDrop","useDropzone","useEffect","length","file","URL","createObjectURL","handleClick","current","click","handleClean","value","classes","clsx","jsxs","FormControl","jsx","IconButton","Icon","Input","Avatar","AppIcon"],"mappings":";;;;;;;;;;AAwDaA,MAAAA,sBACX,CACE;AAAA,EACEC,OAAAA;AAAAA,EACAC,gBAAAA,IAAiB;AAAA,EACjBC,mBAAAA,IAAoB;AAAA,EACpBC,KAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,eAAAA;AACgB,GAClBC,MACG;AACH,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAiBR,KAAO,EAAE,GAElD;AAAA,IACJS,UAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,YAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,YAAAA;AAAAA,MACEC,EAAY;AAEhBC,EAAAA,EAAU,MAAM;AACVP,QAAAA,EAAMQ,SAAS,GAAG;AACTR,MAAAA,EAAAA,EAAM,CAAC,CAAC,GACnBH,EAAW,EAAE;AAEPY,YAAAA,IAAOT,KAAAA,gBAAAA,EAAQ;AACrB,UAAI,CAACS,EAAM;AAEAC,MAAAA,EAAAA,IAAIC,gBAAgBF,CAAI,CAAC,GACpChB,EAAcgB,CAAI;AAAA,IACpB;AAAA,EAAA,GAEC,CAACT,CAAK,CAAC;AAEV,QAAMY,IAAcA,MAAM;;AACxBb,KAAAA,IAAAA,EAASc,YAATd,QAAAA,EAAkBe;AAAAA,EAAM,GAGpBC,IAAcA,MAAM;AACxB,IAAIhB,EAASc,YACXd,EAASc,QAAQG,QAAQ,KAGhBhB,EAAAA,EAAM,CAAC,CAAC,GACnBH,EAAW,EAAE,GACCH;EAAA,GAGVuB,IAAUC,EAAK,eAAe3B,CAAS;AAE7C,SACG,gBAAA4B,EAAAC,GAAA,EACC,IAAG,eACH,WAAWH,GACX,aAAad,GACb,YAAYA,GACZ,aAAaC,GACb,QAAQC,GACR,KAAAV,GAEA,UAAA;AAAA,IAAC,gBAAAwB,EAAA,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,MAAA,gBAAAE,EAACC,KACC,cAAYlC,GACZ,OAAM,YACN,MAAO,gBAAAiC,EAAAE,GAAA,EAAK,MAAK,OAAA,CAAM,GACvB,SAASX,GACT,MAAK,UACL,SAAQ,SAAO;AAAA,MAEjB,gBAAAS,EAACC,KACC,cAAYjC,GACZ,OAAM,UACN,UAAU,CAACO,GACX,MAAM,gBAAAyB,EAACE,KAAK,MAAK,UAAS,MAAK,KAAO,CAAA,GACtC,SAASR,GACT,MAAK,UACL,SAAQ,QAAO,CAAA;AAAA,IAAA,GAEnB;AAAA,IACA,gBAAAI,EAACC,EAAY,OAAZ,EACC,UAAA;AAAA,MAAC,gBAAAC,EAAA,QAAA,EAAK,WAAU,mBAAmBlC,UAAMA,GAAA;AAAA,MACxC,gBAAAkC,EAAAG,GAAA,EACC,QAAO,yBACP,QAAM,IACN,UAAUtB,GACV,KAAKH,GACL,MAAK,MACL,MAAK,QAAM;AAAA,MAEZH,IACE,gBAAAyB,EAAAI,GAAA,EAAO,KAAI,IAAG,KAAK7B,GAAS,MAAK,KAAI,CAAA,IAEtC,gBAAAyB,EAACK,KAAQ,KAAAlC,GAAU,SAAQ,SAAQ,MAAK,OAAM,SAAQ,WACvD;AAAA,IAAA,GACH;AAAA,EACF,EAAA,CAAA;AAEJ,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react';\n\nimport clsx from 'clsx';\n\nimport { Size } from '../../types';\nimport { useFormControl } from '../Form/FormContext';\n\nexport type OmitInputProps =\n | 'disabled'\n | 'required'\n | 'size'\n | 'id'\n | 'readOnly';\n\nexport interface InputProps\n extends Omit<React.ComponentPropsWithRef<'input'>, OmitInputProps> {\n /**\n * Control size of input\n */\n size: Size;\n /**\n * Type of input (text, password, ..)\n */\n type: string;\n /**\n * Change text of placeholder\n */\n placeholder?: string;\n /**\n * Disabled status\n */\n disabled?: boolean;\n /**\n * Remove validation icon\n */\n noValidationIcon?: boolean;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\n/**\n * Input Form Component\n */\n\nexport const Input = forwardRef(\n (\n {\n noValidationIcon,\n placeholder,\n size = 'md',\n type = 'text',\n className,\n ...restProps\n }: InputProps,\n ref: Ref<HTMLInputElement>,\n ) => {\n const { id, isRequired, isReadOnly, status } = useFormControl();\n\n const classes = clsx(\n {\n 'form-control': !isReadOnly,\n 'form-control-lg': size === 'lg',\n 'form-control-sm': size === 'sm',\n 'is-invalid': status === 'invalid',\n 'is-valid': status === 'valid',\n 'form-control-plaintext': isReadOnly,\n 'no-validation-icon': noValidationIcon,\n },\n className,\n );\n\n return (\n <input\n ref={ref}\n id={id}\n className={classes}\n type={type}\n placeholder={placeholder}\n required={isRequired}\n readOnly={isReadOnly}\n {...restProps}\n />\n );\n },\n);\n\nInput.displayName = 'Input';\n\nexport default Input;\n"],"names":["Input","noValidationIcon","placeholder","size","type","className","restProps","ref","id","isRequired","isReadOnly","status","useFormControl","classes","clsx","jsx"],"mappings":";;;;AA8CaA,MAAAA,sBACX,CACE;AAAA,EACEC,kBAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,MAAAA,IAAO;AAAA,EACPC,MAAAA,IAAO;AAAA,EACPC,WAAAA;AAAAA,EACA,GAAGC;AACO,GACZC,MACG;AACG,QAAA;AAAA,IAAEC,IAAAA;AAAAA,IAAIC,YAAAA;AAAAA,IAAYC,YAAAA;AAAAA,IAAYC,QAAAA;AAAAA,MAAWC,EAAe,GAExDC,IAAUC,EACd;AAAA,IACE,gBAAgB,CAACJ;AAAAA,IACjB,mBAAmBP,MAAS;AAAA,IAC5B,mBAAmBA,MAAS;AAAA,IAC5B,cAAcQ,MAAW;AAAA,IACzB,YAAYA,MAAW;AAAA,IACvB,0BAA0BD;AAAAA,IAC1B,sBAAsBT;AAAAA,KAExBI,CACF;AAEA,SACG,gBAAAU,EAAA,SAAA,EACC,KAAAR,GACA,IAAAC,GACA,WAAWK,GACX,MAAAT,GACA,aAAAF,GACA,UAAUO,GACV,UAAUC,GACV,GAAIJ,EACJ,CAAA;AAEN,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Label.js","sources":["../../../src/components/Label/Label.tsx"],"sourcesContent":["import { forwardRef, ReactNode, Ref, useEffect } from 'react';\n\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\n\nimport { useFormControl } from '../Form/FormContext';\n\nexport type OmitLabelProps = 'htmlFor';\n\nexport interface LabelProps\n extends Omit<React.ComponentPropsWithRef<'label'>, OmitLabelProps> {\n /**\n * Display Icon to the left\n */\n leftIcon?: ReactNode;\n /**\n * Translated Optional Text\n */\n optionalText?: string;\n /**\n * Required Indicator or Text\n */\n requiredText?: string;\n /**\n * Label Text\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\nexport const Label = forwardRef(\n (\n {\n leftIcon,\n optionalText,\n requiredText = '*',\n children,\n className,\n }: LabelProps,\n ref?: Ref<HTMLLabelElement>,\n ) => {\n const { id, isOptional, isRequired } = useFormControl();\n\n const { t } = useTranslation();\n\n const classes = clsx(\n 'form-label',\n {\n 'has-icon': leftIcon,\n },\n className,\n );\n\n const optionalState = isOptional && !isRequired;\n const requiredState = isRequired && !isOptional;\n\n useEffect(() => {\n if (isOptional && isRequired) {\n throw new Error('Cannot be optional and required at the same time');\n }\n }, [isOptional, isRequired]);\n\n return (\n <label ref={ref} htmlFor={id} className={classes}>\n {leftIcon}\n {children}\n {optionalState && (\n <em className=\"optional\">\n - {optionalText ?? t('explorer.optional')}\n </em>\n )}\n {requiredState && <em className=\"required\">{requiredText}</em>}\n </label>\n );\n },\n);\n\nLabel.displayName = 'Label';\n\nexport default Label;\n"],"names":["Label","leftIcon","optionalText","requiredText","children","className","ref","id","isOptional","isRequired","useFormControl","t","useTranslation","classes","clsx","optionalState","requiredState","useEffect","Error","jsxs","jsx"],"mappings":";;;;;AAiCaA,MAAAA,sBACX,CACE;AAAA,EACEC,UAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfC,UAAAA;AAAAA,EACAC,WAAAA;AACU,GACZC,MACG;AACG,QAAA;AAAA,IAAEC,IAAAA;AAAAA,IAAIC,YAAAA;AAAAA,IAAYC,YAAAA;AAAAA,MAAeC,EAAe,GAEhD;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GAEvBC,IAAUC,EACd,cACA;AAAA,IACE,YAAYb;AAAAA,KAEdI,CACF,GAEMU,IAAgBP,KAAc,CAACC,GAC/BO,IAAgBP,KAAc,CAACD;AAErCS,SAAAA,EAAU,MAAM;AACd,QAAIT,KAAcC;AACV,YAAA,IAAIS,MAAM,kDAAkD;AAAA,EACpE,GACC,CAACV,GAAYC,CAAU,CAAC,qBAGxB,SAAM,EAAA,KAAAH,GAAU,SAASC,GAAI,WAAWM,GACtCZ,UAAAA;AAAAA,IAAAA;AAAAA,IACAG;AAAAA,IACAW,KACC,gBAAAI,EAAC,MAAG,EAAA,WAAU,YAAU,UAAA;AAAA,MAAA;AAAA,MACnBjB,KAAgBS,EAAE,mBAAmB;AAAA,IAAA,GAC1C;AAAA,IAEDK,KAAiB,gBAAAI,EAAC,MAAG,EAAA,WAAU,YAAYjB,UAAaA,GAAA;AAAA,EAC3D,EAAA,CAAA;AAEJ,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Loading.js","sources":["../../../src/components/Loading/Loading.tsx"],"sourcesContent":["import { forwardRef, ReactNode, Ref } from 'react';\n\nimport clsx from 'clsx';\nimport { Icon } from '..';\n\nexport type LoadingPosition = 'left' | 'right' | undefined;\nexport type LoadingIcon = JSX.Element | undefined;\n\nexport interface LoadingProps {\n /**\n * Is it loading ?\n */\n isLoading: boolean;\n /**\n * Override default loading icon\n */\n loadingIcon?: LoadingIcon;\n /**\n * Default position to left. When using with another component, position can be switched\n */\n loadingPosition?: LoadingPosition;\n /** When using with another component, we can pass a children */\n children?: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n\n color?: string;\n}\n\n/**\n * Inform user about loading status\n */\n\nexport const Loading = forwardRef(\n (props: LoadingProps, ref: Ref<HTMLDivElement>): JSX.Element => {\n const {\n isLoading,\n loadingIcon,\n loadingPosition = 'left',\n children,\n className,\n ...restProps\n } = props;\n\n const getLoadingIcon = () => {\n let icon;\n if (loadingIcon) {\n icon = loadingIcon;\n } else {\n icon = <Icon name=\"loader\" {...restProps} aria-label=\"Loading\" />;\n }\n\n return icon;\n };\n\n const classes = clsx(\n 'loading d-flex align-items-center gap-8',\n {\n 'is-loading': isLoading,\n },\n className,\n );\n\n return (\n <div className={classes} role=\"status\" ref={ref}>\n {(!loadingPosition || loadingPosition === 'left') && getLoadingIcon()}\n {children}\n {loadingPosition === 'right' && getLoadingIcon()}\n </div>\n );\n },\n);\n\nLoading.displayName = 'Loading';\n\nexport default Loading;\n"],"names":["Loading","forwardRef","props","ref","isLoading","loadingIcon","loadingPosition","children","className","restProps","getLoadingIcon","icon","Icon","classes","clsx"],"mappings":";;;;AAmCO,MAAMA,IAAUC,gBAAAA,EACrB,CAACC,GAAqBC,MAA0C;AACxD,QAAA;AAAA,IACJC,WAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,iBAAAA,IAAkB;AAAA,IAClBC,UAAAA;AAAAA,IACAC,WAAAA;AAAAA,IACA,GAAGC;AAAAA,EACDP,IAAAA,GAEEQ,IAAiBA,MAAM;AACvBC,QAAAA;AACJ,WAAIN,IACKA,IAAAA,IAEPM,sBAAQC,GAAK,EAAA,MAAK,UAAS,GAAIH,GAAW,cAAW,UAAY,CAAA,GAG5DE;AAAAA,EAAAA,GAGHE,IAAUC,EACd,2CACA;AAAA,IACE,cAAcV;AAAAA,KAEhBI,CACF;AAEA,2BACG,OAAI,EAAA,WAAWK,GAAS,MAAK,UAAS,KAAAV,GACnC,UAAA;AAAA,KAACG,CAAAA,KAAmBA,MAAoB,WAAWI,EAAe;AAAA,IACnEH;AAAAA,IACAD,MAAoB,WAAWI,EAAe;AAAA,EACjD,EAAA,CAAA;AAEJ,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingScreen.js","sources":["../../../src/components/LoadingScreen/LoadingScreen.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react';\n\nimport clsx from 'clsx';\n\nimport usePaths from '../../core/usePaths/usePaths';\n\nexport interface LoadingScreenProps {\n position?: boolean;\n caption?: string;\n}\n\nexport const LoadingScreen = forwardRef(\n (\n { position = true, caption }: LoadingScreenProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const [imagePath] = usePaths();\n const image = `${imagePath}/loading/screen-loading.gif`;\n\n const containerClasses = clsx(\n 'top-0 end-0 start-0 bottom-0 d-grid justify-content-center align-content-center align-items-center z-2000',\n {\n 'position-fixed': !position,\n 'position-static': position,\n },\n );\n\n const captionClasses = clsx('text-center pt-12', {\n 'text-white': !position,\n });\n\n return (\n <>\n <div ref={ref} className={containerClasses}>\n <div className=\"bg-white rounded-circle mx-auto w-25\">\n <img src={image} alt=\"loading\" />\n </div>\n {caption && <div className={captionClasses}>{caption}</div>}\n </div>\n {!position && <div className=\"modal-backdrop fade show\"></div>}\n </>\n );\n },\n);\n\nLoadingScreen.displayName = 'LoadingScreen';\n\nexport default LoadingScreen;\n"],"names":["LoadingScreen","position","caption","ref","imagePath","usePaths","image","containerClasses","clsx","captionClasses","jsxs","Fragment","jsx"],"mappings":";;;;AAWaA,MAAAA,sBACX,CACE;AAAA,EAAEC,UAAAA,IAAW;AAAA,EAAMC,SAAAA;AAA4B,GAC/CC,MACG;AACG,QAAA,CAACC,CAAS,IAAIC,KACdC,IAAQ,GAAGF,CAAS,+BAEpBG,IAAmBC,EACvB,6GACA;AAAA,IACE,kBAAkB,CAACP;AAAAA,IACnB,mBAAmBA;AAAAA,EAAAA,CAEvB,GAEMQ,IAAiBD,EAAK,qBAAqB;AAAA,IAC/C,cAAc,CAACP;AAAAA,EAAAA,CAChB;AAED,SAEI,gBAAAS,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAC,gBAAAD,EAAA,OAAA,EAAI,KAAAP,GAAU,WAAWI,GACxB,UAAA;AAAA,MAAC,gBAAAK,EAAA,OAAA,EAAI,WAAU,wCACb,UAAA,gBAAAA,EAAC,SAAI,KAAKN,GAAO,KAAI,UAAA,CAAS,EAChC,CAAA;AAAA,MACCJ,KAAW,gBAAAU,EAAC,OAAI,EAAA,WAAWH,GAAiBP,UAAQA,GAAA;AAAA,IAAA,GACvD;AAAA,IACC,CAACD,KAAa,gBAAAW,EAAA,OAAA,EAAI,WAAU,2BAA2B,CAAA;AAAA,EAC1D,EAAA,CAAA;AAEJ,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logo.js","sources":["../../../src/components/Logo/Logo.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react';\n\nimport clsx from 'clsx';\n\nexport interface LogoProps {\n src: string;\n is1d?: boolean;\n translate?: string;\n}\n\nexport const Logo = forwardRef(\n (\n { src, is1d, translate = 'Retour accueil' }: LogoProps,\n ref: Ref<HTMLAnchorElement>,\n ) => {\n const classes = clsx('navbar-brand d-none d-md-block');\n const logo = `logo ${is1d ? 'ONE' : 'NEO'}`;\n return (\n <a\n ref={ref}\n className={classes}\n href=\"/timeline/timeline\"\n aria-label={translate}\n >\n <img className=\"logo\" src={src} alt={logo} width=\"300\" height=\"52\" />\n </a>\n );\n },\n);\n\nLogo.displayName = 'Logo';\n\nexport default Logo;\n"],"names":["Logo","src","is1d","translate","ref","classes","clsx","jsx"],"mappings":";;;AAUaA,MAAAA,sBACX,CACE;AAAA,EAAEC,KAAAA;AAAAA,EAAKC,MAAAA;AAAAA,EAAMC,WAAAA,IAAY;AAA4B,GACrDC,MACG;AACGC,QAAAA,IAAUC,EAAK,gCAAgC;AAGnD,SAAA,gBAAAC,EAAC,OACC,KAAAH,GACA,WAAWC,GACX,MAAK,sBACL,cAAYF,GAEZ,UAAA,gBAAAI,EAAC,SAAI,WAAU,QAAO,KAAAN,GAAU,KARvB,QAAQC,IAAO,QAAQ,KAAK,IAQM,OAAM,OAAM,QAAO,KAAI,CAAA,EACpE,CAAA;AAEJ,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import { usePrevious } from '@uidotdev/usehooks';\nimport { ReactNode, useEffect, useMemo, useRef, useState } from 'react';\nimport { MenuButton } from './MenuButton';\nimport { MenuContext } from './MenuContext';\nimport { MenuItem } from './MenuItem';\n\n/**\n * Menu Component to navigate between routes with react-router-dom\n */\nexport const Menu = ({\n label,\n children,\n}: {\n label: string;\n children: ReactNode;\n}) => {\n const menuRef = useRef<HTMLUListElement | null>(null);\n const menuItems = useRef<Set<HTMLLIElement>>(new Set()).current;\n const [currentIndex, setCurrentIndex] = useState(0);\n const previousIndex = usePrevious(currentIndex) ?? 0;\n\n useEffect(() => {\n if (currentIndex !== previousIndex) {\n const items = Array.from(menuItems);\n const currentNode = items[currentIndex]?.firstChild;\n const previousNode = items[previousIndex]?.firstChild;\n\n // https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex\n // @ts-ignore\n previousNode?.setAttribute('tabindex', '-1');\n // @ts-ignore\n currentNode?.setAttribute('tabindex', '0');\n // @ts-ignore\n currentNode?.focus({ preventScroll: true });\n }\n }, [currentIndex, previousIndex, menuItems]);\n\n const first = () => setCurrentIndex(0);\n const last = () => setCurrentIndex(menuItems.size - 1);\n\n const next = () => {\n const index = currentIndex === menuItems.size - 1 ? 0 : currentIndex + 1;\n setCurrentIndex(index);\n };\n\n const previous = () => {\n const index = currentIndex === 0 ? menuItems.size - 1 : currentIndex - 1;\n setCurrentIndex(index);\n };\n\n const onKeyDown = (event: React.KeyboardEvent<HTMLUListElement>) => {\n event.stopPropagation();\n\n switch (event.code) {\n case 'ArrowUp':\n event.preventDefault();\n previous();\n break;\n case 'ArrowDown':\n event.preventDefault();\n next();\n break;\n default:\n break;\n }\n switch (event.code) {\n case 'End':\n event.preventDefault();\n last();\n break;\n case 'Home':\n event.preventDefault();\n first();\n break;\n default:\n break;\n }\n };\n\n const childProps = useMemo(\n () => ({\n 'data-menubar-menuitem': '',\n role: 'menuitem',\n }),\n [],\n );\n\n const values = useMemo(\n () => ({\n menuRef,\n menuItems,\n childProps,\n }),\n [childProps, menuItems],\n );\n\n return (\n <MenuContext.Provider value={values}>\n <nav aria-label={label} className=\"menu\">\n <ul\n ref={menuRef}\n role=\"menubar\"\n aria-label={label}\n onKeyDown={onKeyDown}\n data-menubar-list\n className=\"list-unstyled d-flex flex-column gap-4\"\n >\n {children}\n </ul>\n </nav>\n </MenuContext.Provider>\n );\n};\n\nMenu.Item = MenuItem;\nMenu.Button = MenuButton;\n"],"names":["Menu","label","children","menuRef","useRef","menuItems","Set","current","currentIndex","setCurrentIndex","useState","previousIndex","usePrevious","useEffect","items","Array","from","currentNode","firstChild","previousNode","setAttribute","focus","preventScroll","first","last","size","next","index","previous","onKeyDown","event","stopPropagation","code","preventDefault","childProps","useMemo","role","values","jsx","MenuContext","Item","MenuItem","Button","MenuButton"],"mappings":";;;;;;AASO,MAAMA,IAAOA,CAAC;AAAA,EACnBC,OAAAA;AAAAA,EACAC,UAAAA;AAIF,MAAM;AACEC,QAAAA,IAAUC,EAAgC,IAAI,GAC9CC,IAAYD,EAA+BE,oBAAAA,IAAK,CAAA,EAAEC,SAClD,CAACC,GAAcC,CAAe,IAAIC,EAAS,CAAC,GAC5CC,IAAgBC,EAAYJ,CAAY,KAAK;AAEnDK,EAAAA,EAAU,MAAM;;AACd,QAAIL,MAAiBG,GAAe;AAC5BG,YAAAA,IAAQC,MAAMC,KAAKX,CAAS,GAC5BY,KAAcH,IAAAA,EAAMN,CAAY,MAAlBM,gBAAAA,EAAqBI,YACnCC,KAAeL,IAAAA,EAAMH,CAAa,MAAnBG,gBAAAA,EAAsBI;AAI7BE,MAAAA,KAAAA,QAAAA,EAAAA,aAAa,YAAY,OAE1BA,KAAAA,QAAAA,EAAAA,aAAa,YAAY,MAEtCH,KAAAA,QAAAA,EAAaI,MAAM;AAAA,QAAEC,eAAe;AAAA,MAAA;AAAA,IACtC;AAAA,EACC,GAAA,CAACd,GAAcG,GAAeN,CAAS,CAAC;AAErCkB,QAAAA,IAAQA,MAAMd,EAAgB,CAAC,GAC/Be,IAAOA,MAAMf,EAAgBJ,EAAUoB,OAAO,CAAC,GAE/CC,IAAOA,MAAM;AACjB,UAAMC,IAAQnB,MAAiBH,EAAUoB,OAAO,IAAI,IAAIjB,IAAe;AACvEC,IAAAA,EAAgBkB,CAAK;AAAA,EAAA,GAGjBC,IAAWA,MAAM;AACrB,UAAMD,IAAQnB,MAAiB,IAAIH,EAAUoB,OAAO,IAAIjB,IAAe;AACvEC,IAAAA,EAAgBkB,CAAK;AAAA,EAAA,GAGjBE,IAAYA,CAACC,MAAiD;AAGlE,YAFAA,EAAMC,gBAAgB,GAEdD,EAAME,MAAI;AAAA,MAChB,KAAK;AACHF,QAAAA,EAAMG,eAAe,GACZL;AACT;AAAA,MACF,KAAK;AACHE,QAAAA,EAAMG,eAAe,GAChBP;AACL;AAAA,IAGJ;AACA,YAAQI,EAAME,MAAI;AAAA,MAChB,KAAK;AACHF,QAAAA,EAAMG,eAAe,GAChBT;AACL;AAAA,MACF,KAAK;AACHM,QAAAA,EAAMG,eAAe,GACfV;AACN;AAAA,IAGJ;AAAA,EAAA,GAGIW,IAAaC,EACjB,OAAO;AAAA,IACL,yBAAyB;AAAA,IACzBC,MAAM;AAAA,EAAA,IAER,CACF,CAAA,GAEMC,IAASF,EACb,OAAO;AAAA,IACLhC,SAAAA;AAAAA,IACAE,WAAAA;AAAAA,IACA6B,YAAAA;AAAAA,EAEF,IAAA,CAACA,GAAY7B,CAAS,CACxB;AAGE,SAAA,gBAAAiC,EAACC,EAAY,UAAZ,EAAqB,OAAOF,GAC3B,UAAA,gBAAAC,EAAC,OAAI,EAAA,cAAYrC,GAAO,WAAU,QAChC,UAAA,gBAAAqC,EAAC,MACC,EAAA,KAAKnC,GACL,MAAK,WACL,cAAYF,GACZ,WAAA4B,GACA,qBAAiB,IACjB,WAAU,0CAET3B,UAAAA,EACH,CAAA,EAAA,CACF,EACF,CAAA;AAEJ;AAEAF,EAAKwC,OAAOC;AACZzC,EAAK0C,SAASC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuButton.js","sources":["../../../src/components/Menu/MenuButton.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { Button, ButtonProps } from '../Button';\nimport { useMenuContext } from './MenuContext';\n\nexport type MenuButtonProps = Pick<\n ButtonProps,\n 'children' | 'leftIcon' | 'rightIcon' | 'onClick'\n> & {\n selected: boolean;\n};\n\nexport const MenuButton = (props: Partial<MenuButtonProps>) => {\n const { selected, leftIcon, rightIcon, onClick, children } = props;\n\n const { childProps } = useMenuContext();\n\n return (\n <Button\n variant=\"ghost\"\n color=\"tertiary\"\n className={clsx('stack w-100', {\n selected: selected,\n })}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n onClick={onClick}\n {...childProps}\n >\n {children}\n </Button>\n );\n};\n"],"names":["MenuButton","props","selected","leftIcon","rightIcon","onClick","children","childProps","useMenuContext","jsx","Button","clsx"],"mappings":";;;;AAWaA,MAAAA,IAAaA,CAACC,MAAoC;AACvD,QAAA;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,UAAAA;AAAAA,IAAUC,WAAAA;AAAAA,IAAWC,SAAAA;AAAAA,IAASC,UAAAA;AAAAA,EAAaL,IAAAA,GAEvD;AAAA,IAAEM,YAAAA;AAAAA,MAAeC,EAAe;AAGpC,SAAA,gBAAAC,EAACC,KACC,SAAQ,SACR,OAAM,YACN,WAAWC,EAAK,eAAe;AAAA,IAC7BT,UAAAA;AAAAA,EAAAA,CACD,GACD,UAAAC,GACA,WAAAC,GACA,SAAAC,GACIE,GAAAA,GAEHD,UAAAA,EACH,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuContext.js","sources":["../../../src/components/Menu/MenuContext.tsx"],"sourcesContent":["import { createContext, Ref, useContext } from 'react';\n\nexport interface MenuContextProps {\n menuRef: Ref<HTMLUListElement | null>;\n menuItems: Set<HTMLLIElement>;\n childProps: {\n [key: string]: string;\n };\n}\n\nexport const MenuContext = createContext<MenuContextProps | null>(null!);\n\nexport function useMenuContext() {\n const context = useContext(MenuContext);\n if (!context) {\n throw new Error(`Cannot be rendered outside the Menu component`);\n }\n return context;\n}\n"],"names":["MenuContext","useMenuContext","context","useContext","Error"],"mappings":";AAUaA,MAAAA,sBAAqD,IAAK;AAEhE,SAASC,IAAiB;AACzBC,QAAAA,IAAUC,EAAWH,CAAW;AACtC,MAAI,CAACE;AACG,UAAA,IAAIE,MAAM,+CAA+C;AAE1DF,SAAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { ReactNode, useEffect, useId, useRef } from 'react';\nimport { useMenuContext } from './MenuContext';\n\nexport const MenuItem = ({ children }: { children: ReactNode }) => {\n const itemRef = useRef<HTMLLIElement | null>(null);\n const id = useId();\n\n const { menuItems } = useMenuContext();\n\n useEffect(() => {\n const itemNode = itemRef.current;\n\n if (itemNode) {\n menuItems.add(itemNode);\n }\n\n return () => {\n if (itemNode) {\n menuItems.delete(itemNode);\n }\n };\n }, [menuItems]);\n\n return (\n <li ref={itemRef} id={id} role=\"none\" data-menubar-listitem>\n {children}\n </li>\n );\n};\n"],"names":["MenuItem","children","itemRef","useRef","id","useId","menuItems","useMenuContext","useEffect","itemNode","current","add","delete","jsx"],"mappings":";;;AAGO,MAAMA,IAAWA,CAAC;AAAA,EAAEC,UAAAA;AAAkC,MAAM;AAC3DC,QAAAA,IAAUC,EAA6B,IAAI,GAC3CC,IAAKC,KAEL;AAAA,IAAEC,WAAAA;AAAAA,MAAcC,EAAe;AAErCC,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAWP,EAAQQ;AAEzB,WAAID,KACFH,EAAUK,IAAIF,CAAQ,GAGjB,MAAM;AACX,MAAIA,KACFH,EAAUM,OAAOH,CAAQ;AAAA,IAC3B;AAAA,EACF,GACC,CAACH,CAAS,CAAC,GAGZ,gBAAAO,EAAC,QAAG,KAAKX,GAAS,IAAAE,GAAQ,MAAK,QAAO,yBAAqB,IACxDH,UAAAA,EACH,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalBody.js","sources":["../../../src/components/Modal/ModalBody.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport clsx from 'clsx';\n\nimport { useModalContext } from './ModalContext';\n\nexport interface ModalBodyProps {\n /**\n *Children\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string | null;\n}\n\n/**\n * Modal Body\n */\nconst ModalBody = (props: ModalBodyProps) => {\n const { ariaDescriptionId } = useModalContext();\n const { children, className } = props;\n\n const classes = clsx('modal-body', className);\n\n return (\n <div id={ariaDescriptionId} className={classes}>\n {children}\n </div>\n );\n};\n\nModalBody.displayName = 'Modal.Body';\n\nexport default ModalBody;\n"],"names":["ModalBody","props","ariaDescriptionId","useModalContext","children","className","classes","clsx"],"mappings":";;;AAoBMA,MAAAA,IAAYA,CAACC,MAA0B;AACrC,QAAA;AAAA,IAAEC,mBAAAA;AAAAA,MAAsBC,EAAgB,GACxC;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,WAAAA;AAAAA,EAAcJ,IAAAA,GAE1BK,IAAUC,EAAK,cAAcF,CAAS;AAE5C,2BACG,OAAI,EAAA,IAAIH,GAAmB,WAAWI,GACpCF,UAAAA,EACH,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalContext.js","sources":["../../../src/components/Modal/ModalContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface ModalContextProps {\n ariaLabelId: string;\n ariaDescriptionId: string;\n focusId: string | undefined;\n}\n\nexport const ModalContext = createContext<ModalContextProps>({\n ariaLabelId: '',\n ariaDescriptionId: '',\n focusId: '',\n});\n\nModalContext.displayName = 'ModalContext';\n\nexport const useModalContext = () => {\n const context = useContext(ModalContext);\n if (!context) {\n throw new Error(`Cannot be rendered outside the Modal component`);\n }\n return context;\n};\n"],"names":["ModalContext","createContext","ariaLabelId","ariaDescriptionId","focusId","useModalContext","context","useContext","Error"],"mappings":";AAQO,MAAMA,IAAgD,gBAAAC,EAAA;AAAA,EAC3DC,aAAa;AAAA,EACbC,mBAAmB;AAAA,EACnBC,SAAS;AACX,CAAC,GAIYC,IAAkBA,MAAM;AAC7BC,QAAAA,IAAUC,EAAWP,CAAY;AACvC,MAAI,CAACM;AACG,UAAA,IAAIE,MAAM,gDAAgD;AAE3DF,SAAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalFooter.js","sources":["../../../src/components/Modal/ModalFooter.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport interface ModalFooterProps {\n children: ReactNode;\n}\n/**\n * Modal Footer\n */\nconst ModalFooter = (props: ModalFooterProps) => (\n <div className=\"modal-footer\">{props.children}</div>\n);\n\nModalFooter.displayName = 'Modal.Footer';\n\nexport default ModalFooter;\n"],"names":["ModalFooter","props","jsx","children"],"mappings":";AAQMA,MAAAA,IAAcA,CAACC,MACnB,gBAAAC,EAAC,SAAI,WAAU,gBAAgBD,YAAME,SAAS,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalHeader.js","sources":["../../../src/components/Modal/ModalHeader.tsx"],"sourcesContent":["import { ReactNode, useEffect, useRef } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { Icon } from '..';\nimport IconButton from '../Button/IconButton';\nimport { useModalContext } from './ModalContext';\n\nexport interface ModalHeaderProps {\n /**\n * Method called on modal close\n */\n onModalClose: () => void;\n /**\n * ReactNode\n */\n children: ReactNode;\n}\n\n/**\n * Modal Header\n */\nconst ModalHeader = (props: ModalHeaderProps) => {\n const { onModalClose, children } = props;\n const { ariaLabelId, focusId } = useModalContext();\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!focusId) {\n closeButtonRef.current?.focus();\n }\n }, [focusId]);\n\n return (\n <div className=\"modal-header\">\n <h2 id={ariaLabelId} className=\"modal-title\" tabIndex={-1}>\n {children}\n </h2>\n <IconButton\n ref={closeButtonRef}\n aria-label={t('close')}\n color=\"tertiary\"\n icon={<Icon name=\"close\" />}\n type=\"button\"\n variant=\"ghost\"\n title={t('close')}\n onClick={onModalClose}\n className=\"btn-close\"\n />\n </div>\n );\n};\n\nModalHeader.displayName = 'Modal.Header';\n\nexport default ModalHeader;\n"],"names":["ModalHeader","props","onModalClose","children","ariaLabelId","focusId","useModalContext","closeButtonRef","useRef","t","useTranslation","useEffect","current","focus","jsxs","jsx","IconButton","Icon"],"mappings":";;;;;;AAsBMA,MAAAA,IAAcA,CAACC,MAA4B;AACzC,QAAA;AAAA,IAAEC,cAAAA;AAAAA,IAAcC,UAAAA;AAAAA,EAAaF,IAAAA,GAC7B;AAAA,IAAEG,aAAAA;AAAAA,IAAaC,SAAAA;AAAAA,MAAYC,EAAgB,GAC3CC,IAAiBC,EAA0B,IAAI,GAC/C;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe;AAE7BC,SAAAA,EAAU,MAAM;;AACd,IAAKN,MACHE,IAAAA,EAAeK,YAAfL,QAAAA,EAAwBM;AAAAA,EAC1B,GACC,CAACR,CAAO,CAAC,GAGV,gBAAAS,EAAC,OAAI,EAAA,WAAU,gBACb,UAAA;AAAA,IAAA,gBAAAC,EAAC,QAAG,IAAIX,GAAa,WAAU,eAAc,UAAU,IACpDD,UAAAA,GACH;AAAA,IACA,gBAAAY,EAACC,GACC,EAAA,KAAKT,GACL,cAAYE,EAAE,OAAO,GACrB,OAAM,YACN,MAAO,gBAAAM,EAAAE,GAAA,EAAK,MAAK,QAAA,CAAU,GAC3B,MAAK,UACL,SAAQ,SACR,OAAOR,EAAE,OAAO,GAChB,SAASP,GACT,WAAU,YAAW,CAAA;AAAA,EAEzB,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModalSubtitle.js","sources":["../../../src/components/Modal/ModalSubtitle.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nexport interface ModalSubtitleProps {\n children: ReactNode;\n}\n/**\n * Modal Subtitle\n */\nconst ModalSubtitle = (props: ModalSubtitleProps) => (\n <p className=\"modal-subtitle\">{props.children}</p>\n);\n\nModalSubtitle.displayName = 'Modal.Subtitle';\n\nexport default ModalSubtitle;\n"],"names":["ModalSubtitle","props","jsx","children"],"mappings":";AAQMA,MAAAA,IAAgBA,CAACC,MACrB,gBAAAC,EAAC,OAAE,WAAU,kBAAkBD,YAAME,SAAS,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import { ReactNode, forwardRef } from 'react';\n\nimport { animated, useTransition } from '@react-spring/web';\nimport clsx from 'clsx';\n\nexport interface PopoverProps {\n /**\n * Popover id for a11y\n */\n id?: string;\n /**\n * When Popover is visible\n */\n isVisible?: boolean;\n /**\n * React Node\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\nexport interface PopoverElementProps {\n /**\n * React Node\n */\n children: ReactNode;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\nexport const PopoverHeader = ({ children, className }: PopoverProps) => {\n const classes = clsx('popover-header', className);\n return <div className={classes}>{children}</div>;\n};\n\nexport const PopoverBody = ({ children, className }: PopoverProps) => {\n const classes = clsx('popover-body', className);\n return <div className={classes}>{children}</div>;\n};\n\nexport const PopoverFooter = ({ children, className }: PopoverProps) => {\n const classes = clsx('popover-footer p-8', className);\n return <div className={classes}>{children}</div>;\n};\n\nexport const Popover = forwardRef<HTMLDivElement, PopoverProps>(\n ({ children, className, id, isVisible, ...restProps }, ref) => {\n const classes = clsx(\n 'popover d-block position-absolute top-100 start-50 translate-middle-x',\n className,\n );\n\n const transition = useTransition(isVisible, {\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n config: { duration: 0 },\n });\n\n return transition(\n (style, isVisible) =>\n isVisible && (\n <animated.div\n ref={ref}\n aria-labelledby={id}\n className={classes}\n role=\"tooltip\"\n style={style}\n {...restProps}\n >\n {children}\n </animated.div>\n ),\n );\n },\n);\n\nPopover.displayName = 'Popover';\n"],"names":["PopoverHeader","children","className","classes","clsx","jsx","PopoverBody","PopoverFooter","Popover","id","isVisible","restProps","ref","transition","useTransition","from","opacity","enter","leave","config","duration","style","animated"],"mappings":";;;;AAmCO,MAAMA,IAAgBA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,WAAAA;AAAwB,MAAM;AAChEC,QAAAA,IAAUC,EAAK,kBAAkBF,CAAS;AAChD,SAAQ,gBAAAG,EAAA,OAAA,EAAI,WAAWF,GAAUF,UAAAA,EAAS,CAAA;AAC5C,GAEaK,IAAcA,CAAC;AAAA,EAAEL,UAAAA;AAAAA,EAAUC,WAAAA;AAAwB,MAAM;AAC9DC,QAAAA,IAAUC,EAAK,gBAAgBF,CAAS;AAC9C,SAAQ,gBAAAG,EAAA,OAAA,EAAI,WAAWF,GAAUF,UAAAA,EAAS,CAAA;AAC5C,GAEaM,IAAgBA,CAAC;AAAA,EAAEN,UAAAA;AAAAA,EAAUC,WAAAA;AAAwB,MAAM;AAChEC,QAAAA,IAAUC,EAAK,sBAAsBF,CAAS;AACpD,SAAQ,gBAAAG,EAAA,OAAA,EAAI,WAAWF,GAAUF,UAAAA,EAAS,CAAA;AAC5C,GAEaO,sBACX,CAAC;AAAA,EAAEP,UAAAA;AAAAA,EAAUC,WAAAA;AAAAA,EAAWO,IAAAA;AAAAA,EAAIC,WAAAA;AAAAA,EAAW,GAAGC;AAAU,GAAGC,MAAQ;AACvDT,QAAAA,IAAUC,EACd,yEACAF,CACF;AASOW,SAPYC,EAAcJ,GAAW;AAAA,IAC1CK,MAAM;AAAA,MAAEC,SAAS;AAAA,IAAE;AAAA,IACnBC,OAAO;AAAA,MAAED,SAAS;AAAA,IAAE;AAAA,IACpBE,OAAO;AAAA,MAAEF,SAAS;AAAA,IAAE;AAAA,IACpBG,QAAQ;AAAA,MAAEC,UAAU;AAAA,IAAE;AAAA,EAAA,CACvB,EAGC,CAACC,GAAOX,MACNA,KACG,gBAAAL,EAAAiB,EAAS,KAAT,EACC,KAAAV,GACA,mBAAiBH,GACjB,WAAWN,GACX,MAAK,WACL,OAAAkB,GACA,GAAIV,GAEHV,UAAAA,EACH,CAAA,CAEN;AACF,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Radio.js","sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import { ChangeEvent, forwardRef, ReactNode, Ref, useId } from 'react';\n\nimport clsx from 'clsx';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * State controlling activated radio group\n */\n model: string | boolean | number;\n /**\n * Use onChange event Handler to set new value of model\n */\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n /**\n * If checked\n */\n checked?: boolean;\n /**\n * Label of the radio checkbox\n */\n label?: string | false;\n /**\n * Replace with an icon\n */\n icon?: ReactNode;\n}\n\nexport const Radio = forwardRef(\n (\n {\n model,\n icon,\n label = false,\n disabled = false,\n checked,\n ...restProps\n }: RadioProps,\n ref: Ref<HTMLInputElement>,\n ) => {\n const id = useId();\n\n const radioProps = {\n type: 'radio',\n checked,\n disabled,\n ref,\n className: clsx(\n restProps.className,\n 'form-check-input c-pointer',\n icon && 'd-none',\n ),\n id,\n };\n\n const inputProps = {\n ...restProps,\n ...radioProps,\n };\n\n return (\n <div\n className={clsx(\n 'form-check d-flex align-items-center gap-8',\n icon && 'ps-0',\n )}\n >\n <input {...inputProps} />\n {icon && (\n <label\n htmlFor={inputProps.id}\n className={clsx(\n 'c-pointer',\n model !== restProps.value && 'text-muted',\n )}\n >\n {icon}\n </label>\n )}\n {!icon && label && (\n <label className=\"form-check-label\" htmlFor={inputProps.id}>\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nRadio.displayName = 'Radio';\n\nexport default Radio;\n"],"names":["Radio","model","icon","label","disabled","checked","restProps","ref","id","useId","radioProps","type","className","clsx","inputProps","jsx","value"],"mappings":";;;AA4BaA,MAAAA,sBACX,CACE;AAAA,EACEC,OAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,OAAAA,IAAQ;AAAA,EACRC,UAAAA,IAAW;AAAA,EACXC,SAAAA;AAAAA,EACA,GAAGC;AACO,GACZC,MACG;AACH,QAAMC,IAAKC,KAELC,IAAa;AAAA,IACjBC,MAAM;AAAA,IACNN,SAAAA;AAAAA,IACAD,UAAAA;AAAAA,IACAG,KAAAA;AAAAA,IACAK,WAAWC,EACTP,EAAUM,WACV,8BACAV,KAAQ,QACV;AAAA,IACAM,IAAAA;AAAAA,EAAAA,GAGIM,IAAa;AAAA,IACjB,GAAGR;AAAAA,IACH,GAAGI;AAAAA,EAAAA;AAGL,2BACG,OACC,EAAA,WAAWG,EACT,8CACAX,KAAQ,MACV,GAEA,UAAA;AAAA,IAAC,gBAAAa,EAAA,SAAA,EAAM,GAAID,GAAW;AAAA,IACrBZ,KACC,gBAAAa,EAAC,SACC,EAAA,SAASD,EAAWN,IACpB,WAAWK,EACT,aACAZ,MAAUK,EAAUU,SAAS,YAC/B,GAECd,UACHA,GAAA;AAAA,IAED,CAACA,KAAQC,KACP,gBAAAY,EAAA,SAAA,EAAM,WAAU,oBAAmB,SAASD,EAAWN,IACrDL,UACHA,EAAA,CAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchBar.js","sources":["../../../src/components/SearchBar/SearchBar.tsx"],"sourcesContent":["import { ChangeEvent } from 'react';\n\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\n\nimport { Size } from '../../types';\nimport { SearchButton } from '../Button';\nimport FormControl from '../Form/FormControl';\nimport { Icon } from '../Icon';\n\nexport interface BaseProps {\n /**\n * String or Template literal with React i18next namespace\n */\n placeholder?: string;\n /**\n * Control SearchBar size\n */\n size?: Exclude<Size, 'sm'>;\n /**\n * Disabled status\n */\n disabled?: boolean;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n /**\n * ChangeEvent Handler\n */\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n}\n\ntype DefaultSearchBar = {\n /**\n * Switch between button or dynamic search bar\n */\n isVariant: false;\n /**\n * Handle Search with Default SearchBar\n */\n onClick: () => void;\n};\n\ntype DynamicSearchBar = {\n /**\n * Switch between button or dynamic search bar\n */\n isVariant: true;\n /**\n * Handle Search with Default SearchBar\n */\n onClick?: undefined;\n};\n\nexport type Props = DefaultSearchBar | DynamicSearchBar;\n\nexport type SearchBarProps = BaseProps & Props;\n\nexport const SearchBar = ({\n isVariant = false,\n size = 'md',\n placeholder = 'search',\n className,\n disabled,\n onChange,\n onClick,\n ...restProps\n}: SearchBarProps) => {\n const { t } = useTranslation();\n\n const searchbar = clsx(className, {\n 'input-group': !isVariant,\n 'position-relative': isVariant,\n });\n\n const input = clsx({\n 'border-end-0': !isVariant,\n 'ps-48': isVariant,\n });\n\n const handleClick = () => {\n onClick?.();\n };\n\n return (\n <FormControl id=\"search-bar\" className={searchbar}>\n {isVariant && (\n <div className=\"position-absolute z-1 top-50 start-0 translate-middle-y border-0 ps-12 bg-transparent\">\n <Icon name=\"search\" />\n </div>\n )}\n <FormControl.Input\n type=\"search\"\n placeholder={t(placeholder)}\n size={size}\n noValidationIcon\n className={input}\n onChange={onChange}\n disabled={disabled}\n {...restProps}\n />\n {!isVariant && (\n <SearchButton\n type=\"submit\"\n aria-label={t('search')}\n icon={<Icon name=\"search\" />}\n className=\"border-start-0\"\n onClick={handleClick}\n />\n )}\n </FormControl>\n );\n};\n\nSearchBar.displayName = 'SearchBar';\nexport default SearchBar;\n"],"names":["SearchBar","isVariant","size","placeholder","className","disabled","onChange","onClick","restProps","t","useTranslation","searchbar","clsx","input","handleClick","jsxs","FormControl","jsx","Icon","SearchButton"],"mappings":";;;;;;AA2DO,MAAMA,IAAYA,CAAC;AAAA,EACxBC,WAAAA,IAAY;AAAA,EACZC,MAAAA,IAAO;AAAA,EACPC,aAAAA,IAAc;AAAA,EACdC,WAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AACW,MAAM;AACd,QAAA;AAAA,IAAEC;AAAAA,MAAMC,EAAe,GAEvBC,IAAYC,EAAKR,GAAW;AAAA,IAChC,eAAe,CAACH;AAAAA,IAChB,qBAAqBA;AAAAA,EAAAA,CACtB,GAEKY,IAAQD,EAAK;AAAA,IACjB,gBAAgB,CAACX;AAAAA,IACjB,SAASA;AAAAA,EAAAA,CACV,GAEKa,IAAcA,MAAM;AACd,IAAAP,KAAA,QAAAA;AAAA,EAAA;AAGZ,SACG,gBAAAQ,EAAAC,GAAA,EAAY,IAAG,cAAa,WAAWL,GACrCV,UAAAA;AAAAA,IACCA,KAAA,gBAAAgB,EAAC,SAAI,WAAU,yFACb,4BAACC,GAAK,EAAA,MAAK,UAAQ,EACrB,CAAA;AAAA,sBAEDF,EAAY,OAAZ,EACC,MAAK,UACL,aAAaP,EAAEN,CAAW,GAC1B,MAAAD,GACA,kBAAgB,IAChB,WAAWW,GACX,UAAAP,GACA,UAAAD,GACIG,GAAAA,GAAU;AAAA,IAEf,CAACP,KACA,gBAAAgB,EAACE,KACC,MAAK,UACL,cAAYV,EAAE,QAAQ,GACtB,MAAM,gBAAAQ,EAACC,KAAK,MAAK,SAAW,CAAA,GAC5B,WAAU,kBACV,SAASJ,GAEZ;AAAA,EACH,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport Dropdown, { DropdownProps } from '../Dropdown/Dropdown';\nimport { DropdownTriggerProps } from '../Dropdown/DropdownTrigger';\nimport SelectTrigger from './SelectTrigger';\n\nexport interface OptionsType {\n /**\n * Select Option Value\n */\n value: string;\n /**\n * Option Option Label\n */\n label: string;\n /**\n * Icon Left Options\n */\n icon?: JSX.Element;\n}\n\nexport interface SelectProps\n extends Omit<DropdownProps, 'children'>,\n Omit<DropdownTriggerProps, 'badgeContent'> {\n /**\n * Default select label\n */\n placeholderOption: string;\n /**\n * Select options\n * */\n options: OptionsType[] | string[];\n /**\n * Callback to get value\n */\n onValueChange?: (option: OptionsType | string) => void;\n}\n\n/**\n *\n * Select component is based on Dropdown Component. It extends `Dropdown` and `Dropdown.Trigger` props `block`, `overflow`, `icon`, `variant`, `size`, `disabled`\n */\n\nexport const Select = ({\n icon,\n options,\n overflow,\n block,\n variant,\n size,\n disabled,\n placeholderOption,\n onValueChange,\n}: SelectProps) => {\n const [localValue, setLocalValue] = useState<OptionsType | string>();\n\n const { t } = useTranslation();\n\n useEffect(() => {\n if (localValue) {\n const value =\n typeof localValue === 'object' ? localValue.value : localValue;\n onValueChange?.(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [localValue]);\n\n const label = typeof localValue === 'object' ? localValue.label : localValue;\n const iconChange =\n typeof localValue === 'object' ? localValue.icon : undefined;\n\n return (\n <Dropdown overflow={overflow} block={block}>\n <SelectTrigger\n icon={iconChange || icon}\n label={t(label || placeholderOption)}\n variant={variant}\n size={size}\n disabled={disabled}\n />\n <Dropdown.Menu role=\"listbox\">\n {options?.map((option) => {\n const value = typeof option === 'object' ? option.value : option;\n const label = typeof option === 'object' ? option.label : option;\n const icon = typeof option === 'object' ? option.icon : undefined;\n return (\n <Dropdown.Item\n type=\"action\"\n key={value}\n onClick={() => setLocalValue(option)}\n icon={icon}\n >\n {label}\n </Dropdown.Item>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n );\n};\n\nSelect.displayName = 'Select';\n\nexport default Select;\n"],"names":["Select","icon","options","overflow","block","variant","size","disabled","placeholderOption","onValueChange","localValue","setLocalValue","useState","t","useTranslation","useEffect","value","label","iconChange","undefined","jsxs","Dropdown","jsx","SelectTrigger","map","option"],"mappings":";;;;;AA6CO,MAAMA,IAASA,CAAC;AAAA,EACrBC,MAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,mBAAAA;AAAAA,EACAC,eAAAA;AACW,MAAM;AACjB,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAA+B,GAE7D;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe;AAE7BC,EAAAA,EAAU,MAAM;AACd,QAAIL,GAAY;AACd,YAAMM,IACJ,OAAON,KAAe,WAAWA,EAAWM,QAAQN;AACtDD,MAAAA,KAAAA,QAAAA,EAAgBO;AAAAA,IAClB;AAAA,EAAA,GAEC,CAACN,CAAU,CAAC;AAEf,QAAMO,IAAQ,OAAOP,KAAe,WAAWA,EAAWO,QAAQP,GAC5DQ,IACJ,OAAOR,KAAe,WAAWA,EAAWT,OAAOkB;AAGnD,SAAA,gBAAAC,EAACC,GAAS,EAAA,UAAAlB,GAAoB,OAAAC,GAC5B,UAAA;AAAA,IAAC,gBAAAkB,EAAAC,GAAA,EACC,MAAML,KAAcjB,GACpB,OAAOY,EAAEI,KAAST,CAAiB,GACnC,SAAAH,GACA,MAAAC,GACA,UAAAC,EAAmB,CAAA;AAAA,IAErB,gBAAAe,EAACD,EAAS,MAAT,EAAc,MAAK,WACjBnB,UAAAA,KAAAA,gBAAAA,EAASsB,IAAKC,CAAWA,MAAA;AACxB,YAAMT,IAAQ,OAAOS,KAAW,WAAWA,EAAOT,QAAQS,GACpDR,IAAQ,OAAOQ,KAAW,WAAWA,EAAOR,QAAQQ,GACpDxB,IAAO,OAAOwB,KAAW,WAAWA,EAAOxB,OAAOkB;AACxD,aACG,gBAAAG,EAAAD,EAAS,MAAT,EACC,MAAK,UAEL,SAAS,MAAMV,EAAcc,CAAM,GACnC,MAAMxB,GAELgB,UAAAA,KAJID,CAKP;AAAA,IAEH,IACH;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectTrigger.js","sources":["../../../src/components/Select/SelectTrigger.tsx"],"sourcesContent":["import { RefAttributes } from 'react';\n\nimport { JSX } from 'react/jsx-runtime';\n\nimport Dropdown from '../Dropdown/Dropdown';\nimport { DropdownTriggerProps } from '../Dropdown/DropdownTrigger';\n\nconst SelectTrigger = (\n props: JSX.IntrinsicAttributes &\n Omit<DropdownTriggerProps, 'ref'> &\n RefAttributes<HTMLButtonElement>,\n) => {\n return (\n <Dropdown.Trigger {...props} aria-haspopup=\"listbox\" role=\"combobox\" />\n );\n};\n\nSelectTrigger.displayName = 'SelectTrigger';\nexport default SelectTrigger;\n"],"names":["SelectTrigger","props","jsx","Dropdown"],"mappings":";;AAOMA,MAAAA,IAAgBA,CACpBC,MAKE,gBAAAC,EAACC,EAAS,SAAT,KAAqBF,GAAO,iBAAc,WAAU,MAAK,WAAa,CAAA;"}
@@ -1,10 +0,0 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { forwardRef as a } from "react";
3
- const f = /* @__PURE__ */ a(({
4
- children: r
5
- }, e) => /* @__PURE__ */ o("table", { ref: e, className: "table-explorer", children: r }));
6
- export {
7
- f as TableExplorer,
8
- f as default
9
- };
10
- //# sourceMappingURL=TableExplorer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableExplorer.js","sources":["../../../src/components/Table/TableExplorer.tsx"],"sourcesContent":["/**\n * TableExplorer Component\n *\n * @see Docs https://edifice-ui.vercel.app/?path=/docs/components-core-table--base\n * @see Source https://github.com/opendigitaleducation/edifice-ui/blob/main/packages/core/src/Table/Table.tsx\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/table/\n */\n\nimport { forwardRef, Ref } from 'react';\n\nexport type TableExplorerRef = HTMLTableElement;\n\nexport interface TableExplorerProps {\n children?: Array<React.ReactElement<HTMLTableSectionElement>>;\n}\n\nexport const TableExplorer = forwardRef(\n ({ children }: TableExplorerProps, ref: Ref<TableExplorerRef>) => {\n return (\n <table ref={ref} className=\"table-explorer\">\n {children}\n </table>\n );\n },\n);\n\nTableExplorer.displayName = 'TableExplorer';\n\nexport default TableExplorer;\n"],"names":["TableExplorer","children","ref","jsx"],"mappings":";;AAgBaA,MAAAA,sBACX,CAAC;AAAA,EAAEC,UAAAA;AAA6B,GAAGC,MAE9B,gBAAAC,EAAA,SAAA,EAAM,KAAAD,GAAU,WAAU,kBACxBD,UAAAA,EACH,CAAA,CAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["/**\n * Tabs Component\n */\nimport {\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { TabsContext } from './TabsContext';\nimport TabsItem, { TabsItemProps } from './TabsItem';\nimport TabsList from './TabsList';\nimport TabsPanel from './TabsPanel';\n\nexport interface TabsProps {\n /**\n * Selected tab, by default.\n */\n defaultId?: string;\n /**\n * Items to be displayed\n */\n items: TabsItemProps[];\n /**\n * Get notified when a tab is selected\n */\n onChange?: (tab: TabsItemProps) => void;\n /**\n * Children Props\n */\n children?: (...props: any) => ReactNode;\n}\n\n/**\n * Tab Content displayed one at a time when a Tab Item is selected\n */\nexport const Tabs = ({ defaultId, items, onChange, children }: TabsProps) => {\n const [activeTab, setActiveTab] = useState<string>(defaultId || '');\n const [tabUnderlineWidth, setTabUnderlineWidth] = useState(0);\n const [tabUnderlineLeft, setTabUnderlineLeft] = useState(0);\n\n const tabsRef = useRef<(HTMLButtonElement | null)[]>([]);\n\n const setSelectedTab = useCallback((id: string) => {\n setActiveTab(id);\n }, []);\n\n useEffect(() => {\n const currentItem = items.find((item) => item.id === activeTab);\n currentItem && onChange?.(currentItem);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTab]); // only updating the activeTab value should trigger this effect.\n\n useEffect(() => {\n function setTabPosition() {\n /**\n * If the active element is not an input, then focus on the current tab.\n * The focus on input element with a reponse device will cause the keyboard to be displayed and trigger the resize event.\n * Which will cause the tab to be focused again and the keyboard to be closed. #WB-2841\n */\n if (document?.activeElement?.tagName !== 'INPUT') {\n const currentTabIndex = items.findIndex(\n (item) => item.id === activeTab,\n );\n if (currentTabIndex === -1 && defaultId) {\n setActiveTab(defaultId);\n }\n const currentTabRef = tabsRef.current[currentTabIndex];\n if (currentTabRef) {\n currentTabRef.focus();\n setTabUnderlineLeft(currentTabRef?.offsetLeft ?? 0);\n setTabUnderlineWidth(currentTabRef?.clientWidth ?? 0);\n }\n }\n }\n\n setTabPosition();\n window.addEventListener('resize', setTabPosition);\n\n return () => window.removeEventListener('resize', setTabPosition);\n }, [activeTab, items, defaultId]);\n\n const moveFocusToPreviousTab = useCallback(\n (activeTab: string) => {\n const index = items.findIndex((item) => item.id === activeTab);\n\n if (activeTab === items[0]?.id) {\n setActiveTab(items[items.length - 1]?.id);\n } else {\n setActiveTab(items[index - 1]?.id);\n }\n },\n [items],\n );\n\n const moveFocusToNextTab = useCallback(\n (activeTab: string | number) => {\n const index = items.findIndex((item) => item.id === activeTab);\n\n if (activeTab === items[items.length - 1]?.id) {\n setActiveTab(items[0]?.id);\n } else {\n setActiveTab(items[index + 1]?.id);\n }\n },\n [items],\n );\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (event.code) {\n case 'ArrowLeft':\n moveFocusToPreviousTab(activeTab);\n break;\n\n case 'ArrowRight':\n moveFocusToNextTab(activeTab);\n break;\n\n case 'Home':\n setActiveTab(items[0]?.id);\n break;\n\n case 'End':\n setActiveTab(items[items.length - 1]?.id);\n break;\n\n default:\n break;\n }\n },\n [activeTab, items, moveFocusToNextTab, moveFocusToPreviousTab],\n );\n\n const value = useMemo(\n () => ({\n activeTab,\n items,\n setSelectedTab,\n tabsRef,\n tabUnderlineLeft,\n tabUnderlineWidth,\n onKeyDown,\n }),\n [\n activeTab,\n items,\n onKeyDown,\n setSelectedTab,\n tabUnderlineLeft,\n tabUnderlineWidth,\n ],\n );\n\n const currentItem = items.find((item) => item.id === activeTab);\n\n return (\n <TabsContext.Provider value={value}>\n {typeof children === 'function' ? (\n children(currentItem)\n ) : (\n <>\n <Tabs.List />\n <Tabs.Panel currentItem={currentItem}>\n {currentItem?.content}\n </Tabs.Panel>\n </>\n )}\n </TabsContext.Provider>\n );\n};\n\nTabs.Item = TabsItem;\nTabs.Panel = TabsPanel;\nTabs.List = TabsList;\n\nTabs.displayName = 'Tabs';\n\nexport default Tabs;\n"],"names":["Tabs","defaultId","items","onChange","children","activeTab","setActiveTab","useState","tabUnderlineWidth","setTabUnderlineWidth","tabUnderlineLeft","setTabUnderlineLeft","tabsRef","useRef","setSelectedTab","useCallback","id","useEffect","currentItem","find","item","setTabPosition","document","activeElement","tagName","currentTabIndex","findIndex","currentTabRef","current","focus","offsetLeft","clientWidth","addEventListener","window","removeEventListener","moveFocusToPreviousTab","index","length","moveFocusToNextTab","onKeyDown","event","code","value","useMemo","jsx","TabsContext","jsxs","Fragment","content","Item","TabsItem","Panel","TabsPanel","List","TabsList"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsContext.js","sources":["../../../src/components/Tabs/TabsContext.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport { TabsItemProps } from './TabsItem';\n\nexport interface TabsContextProps {\n activeTab?: string;\n items: TabsItemProps[];\n setSelectedTab: (key: string) => void;\n tabsRef: React.MutableRefObject<(HTMLButtonElement | null)[]>;\n tabUnderlineLeft: number;\n tabUnderlineWidth: number;\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\n\nexport const TabsContext = createContext<TabsContextProps | null>(null!);\n\nexport function useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error(\n `Tabs compound components cannot be rendered outside the Tabs component`,\n );\n }\n return context;\n}\n"],"names":["TabsContext","useTabsContext","context","useContext","Error"],"mappings":";AAcaA,MAAAA,sBAAqD,IAAK;AAEhE,SAASC,IAAiB;AACzBC,QAAAA,IAAUC,EAAWH,CAAW;AACtC,MAAI,CAACE;AACG,UAAA,IAAIE,MACR,wEACF;AAEKF,SAAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsItem.js","sources":["../../../src/components/Tabs/TabsItem.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport clsx from 'clsx';\nimport { useTranslation } from 'react-i18next';\n\nimport { useTabsContext } from './TabsContext';\n\nexport interface TabsItemProps {\n /**\n * Item identifier\n */\n id: string;\n /**\n * Item icon\n */\n icon: ReactNode;\n /**\n * Item label\n */\n label: string;\n /**\n * Item content, to be displayed in the panel when selected.\n */\n content: ReactNode;\n}\n\nconst TabsItem = ({\n icon,\n label,\n id,\n order,\n}: TabsItemProps & { order: number }) => {\n const { activeTab, setSelectedTab, onKeyDown, tabsRef } = useTabsContext();\n const { t } = useTranslation();\n\n const classes = clsx(\n 'nav-link d-inline-flex gap-8 border-0',\n activeTab === id ? 'selected' : '',\n );\n\n return (\n <li className=\"nav-item flex-shrink-0\" role=\"presentation\">\n <button\n ref={(el) => (tabsRef.current[order] = el)}\n type=\"button\"\n id={`tab-${id}`}\n className={classes}\n onClick={() => setSelectedTab(id)}\n onKeyDown={(event) => onKeyDown(event)}\n role=\"tab\"\n aria-controls={`tabpanel-${id}`}\n aria-selected={activeTab === id}\n tabIndex={activeTab === id ? 0 : -1}\n >\n {icon}\n <small>{t(label)}</small>\n </button>\n </li>\n );\n};\n\nTabsItem.displayName = 'Tabs.Item';\n\nexport default TabsItem;\n"],"names":["TabsItem","icon","label","id","order","activeTab","setSelectedTab","onKeyDown","tabsRef","useTabsContext","t","useTranslation","classes","clsx","jsx","jsxs","el","current","event"],"mappings":";;;;AA0BA,MAAMA,IAAWA,CAAC;AAAA,EAChBC,MAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,OAAAA;AACiC,MAAM;AACjC,QAAA;AAAA,IAAEC,WAAAA;AAAAA,IAAWC,gBAAAA;AAAAA,IAAgBC,WAAAA;AAAAA,IAAWC,SAAAA;AAAAA,MAAYC,EAAe,GACnE;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GAEvBC,IAAUC,EACd,yCACAR,MAAcF,IAAK,aAAa,EAClC;AAGE,SAAA,gBAAAW,EAAC,QAAG,WAAU,0BAAyB,MAAK,gBAC1C,UAAA,gBAAAC,EAAC,YACC,KAAMC,CAAAA,MAAQR,EAAQS,QAAQb,CAAK,IAAIY,GACvC,MAAK,UACL,IAAI,OAAOb,CAAE,IACb,WAAWS,GACX,SAAS,MAAMN,EAAeH,CAAE,GAChC,WAAYe,OAAUX,EAAUW,CAAK,GACrC,MAAK,OACL,iBAAe,YAAYf,CAAE,IAC7B,iBAAeE,MAAcF,GAC7B,UAAUE,MAAcF,IAAK,IAAI,IAEhCF,UAAAA;AAAAA,IAAAA;AAAAA,IACA,gBAAAa,EAAA,SAAA,EAAOJ,UAAER,EAAAA,CAAK,EAAE,CAAA;AAAA,EAAA,EACnB,CAAA,EACF,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsList.js","sources":["../../../src/components/Tabs/TabsList.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef } from 'react';\n\nimport clsx from 'clsx';\n\nimport Tabs from './Tabs';\nimport { useTabsContext } from './TabsContext';\n\nconst TabsList = (props: ComponentPropsWithoutRef<'div'>) => {\n const { items, tabUnderlineLeft, tabUnderlineWidth } = useTabsContext();\n const { className, ...restProps } = props;\n\n const tabslist = clsx(\n 'position-relative flex-shrink-0 overflow-x-auto',\n className,\n );\n return (\n <div className={tabslist} {...restProps}>\n <ul className=\"nav nav-tabs flex-nowrap\" role=\"tablist\">\n {items.map((item, order) => {\n return <Tabs.Item key={item.id} order={order} {...item}></Tabs.Item>;\n })}\n </ul>\n <span\n className=\"nav-slide\"\n style={{ left: tabUnderlineLeft, width: tabUnderlineWidth }}\n />\n </div>\n );\n};\n\nTabsList.displayName = 'Tabs.List';\n\nexport default TabsList;\n"],"names":["TabsList","props","items","tabUnderlineLeft","tabUnderlineWidth","useTabsContext","className","restProps","tabslist","clsx","jsxs","jsx","map","item","order","Tabs","id","left","width"],"mappings":";;;;AAOMA,MAAAA,IAAWA,CAACC,MAA2C;AACrD,QAAA;AAAA,IAAEC,OAAAA;AAAAA,IAAOC,kBAAAA;AAAAA,IAAkBC,mBAAAA;AAAAA,MAAsBC,EAAe,GAChE;AAAA,IAAEC,WAAAA;AAAAA,IAAW,GAAGC;AAAAA,EAAcN,IAAAA,GAE9BO,IAAWC,EACf,mDACAH,CACF;AACA,SACG,gBAAAI,EAAA,OAAA,EAAI,WAAWF,GAAcD,GAAAA,GAC5B,UAAA;AAAA,IAAC,gBAAAI,EAAA,MAAA,EAAG,WAAU,4BAA2B,MAAK,WAC3CT,UAAMU,EAAAA,IAAI,CAACC,GAAMC,MACT,gBAAAH,EAACI,EAAK,MAAL,EAAwB,OAAAD,GAAkBD,GAAAA,EAAAA,GAA3BA,EAAKG,EAA4B,CACzD,GACH;AAAA,IACC,gBAAAL,EAAA,QAAA,EACC,WAAU,aACV,OAAO;AAAA,MAAEM,MAAMd;AAAAA,MAAkBe,OAAOd;AAAAA,IAAAA,GAAoB;AAAA,EAEhE,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TabsPanel.js","sources":["../../../src/components/Tabs/TabsPanel.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport { useTabsContext } from './TabsContext';\nimport { TabsItemProps } from './TabsItem';\n\nexport interface TabsPanelProps {\n /**\n * Content of the item\n */\n children: ReactNode;\n /**\n * Current Item\n */\n currentItem: TabsItemProps | undefined;\n}\n\nconst TabsPanel = ({ children, currentItem }: TabsPanelProps) => {\n const { activeTab } = useTabsContext();\n\n return (\n <div className=\"tab-content d-flex flex-fill w-100\">\n <div\n className={`tab-pane flex-fill w-100 fade ${\n activeTab === currentItem?.id ? 'show active' : ''\n }`}\n id={`tabpanel-${currentItem?.id}`}\n role=\"tabpanel\"\n aria-labelledby={`tab-${currentItem?.id}`}\n tabIndex={0}\n >\n {children}\n </div>\n </div>\n );\n};\n\nTabsPanel.displayName = 'Tabs.Panel';\n\nexport default TabsPanel;\n"],"names":["TabsPanel","children","currentItem","activeTab","useTabsContext","jsx","id"],"mappings":";;AAgBA,MAAMA,IAAYA,CAAC;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,aAAAA;AAA4B,MAAM;AACzD,QAAA;AAAA,IAAEC,WAAAA;AAAAA,MAAcC,EAAe;AAErC,SACG,gBAAAC,EAAA,OAAA,EAAI,WAAU,sCACb,UAAC,gBAAAA,EAAA,OAAA,EACC,WAAW,iCACTF,OAAcD,KAAAA,gBAAAA,EAAaI,MAAK,gBAAgB,EAAE,IAEpD,IAAI,YAAYJ,KAAAA,gBAAAA,EAAaI,EAAE,IAC/B,MAAK,YACL,mBAAiB,OAAOJ,KAAAA,gBAAAA,EAAaI,EAAE,IACvC,UAAU,GAETL,UAAAA,GACH,EACF,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextArea.js","sources":["../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react';\n\nimport clsx from 'clsx';\n\nimport { Size } from '../../types';\nimport { useFormControl } from '../Form/FormContext';\n\nexport type OmitTextAreaProps =\n | 'disabled'\n | 'required'\n | 'size'\n | 'id'\n | 'readOnly';\n\nexport interface TextAreaProps\n extends Omit<React.ComponentPropsWithRef<'textarea'>, OmitTextAreaProps> {\n /**\n * Control size of TextArea\n */\n size: Size;\n /**\n * Control maxHeight of TextArea\n */\n height?: Size;\n /**\n * Change text of placeholder\n */\n placeholder?: string;\n /**\n * Disabled status\n */\n disabled?: boolean;\n /**\n * Remove validation icon\n */\n noValidationIcon?: boolean;\n /**\n * Optional class for styling purpose\n */\n className?: string;\n}\n\n/**\n * TextArea Form Component\n */\n\nexport const TextArea = forwardRef(\n (\n {\n noValidationIcon,\n placeholder,\n size = 'md',\n height = 'md',\n className,\n ...restProps\n }: TextAreaProps,\n ref: Ref<HTMLTextAreaElement>,\n ) => {\n const { id, isRequired, isReadOnly, status } = useFormControl();\n\n const classes = clsx(\n {\n 'form-control': !isReadOnly,\n 'form-control-lg': size === 'lg',\n 'form-control-sm': size === 'sm',\n 'textarea-height-lg': height === 'lg',\n 'textarea-height-md': height === 'md',\n 'textarea-height-sm': height === 'sm',\n 'is-invalid': status === 'invalid',\n 'is-valid': status === 'valid',\n 'form-control-plaintext': isReadOnly,\n 'no-validation-icon': noValidationIcon,\n },\n className,\n );\n\n return (\n <textarea\n ref={ref}\n id={id}\n className={classes}\n placeholder={placeholder}\n required={isRequired}\n readOnly={isReadOnly}\n {...restProps}\n />\n );\n },\n);\n\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n"],"names":["TextArea","noValidationIcon","placeholder","size","height","className","restProps","ref","id","isRequired","isReadOnly","status","useFormControl","classes","clsx","jsx"],"mappings":";;;;AA8CaA,MAAAA,sBACX,CACE;AAAA,EACEC,kBAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,MAAAA,IAAO;AAAA,EACPC,QAAAA,IAAS;AAAA,EACTC,WAAAA;AAAAA,EACA,GAAGC;AACU,GACfC,MACG;AACG,QAAA;AAAA,IAAEC,IAAAA;AAAAA,IAAIC,YAAAA;AAAAA,IAAYC,YAAAA;AAAAA,IAAYC,QAAAA;AAAAA,MAAWC,EAAe,GAExDC,IAAUC,EACd;AAAA,IACE,gBAAgB,CAACJ;AAAAA,IACjB,mBAAmBP,MAAS;AAAA,IAC5B,mBAAmBA,MAAS;AAAA,IAC5B,sBAAsBC,MAAW;AAAA,IACjC,sBAAsBA,MAAW;AAAA,IACjC,sBAAsBA,MAAW;AAAA,IACjC,cAAcO,MAAW;AAAA,IACzB,YAAYA,MAAW;AAAA,IACvB,0BAA0BD;AAAAA,IAC1B,sBAAsBT;AAAAA,KAExBI,CACF;AAEA,SACG,gBAAAU,EAAA,YAAA,EACC,KAAAR,GACA,IAAAC,GACA,WAAWK,GACX,aAAAX,GACA,UAAUO,GACV,UAAUC,GACNJ,GAAAA,EACJ,CAAA;AAEN,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextareaCounter.js","sources":["../../../src/components/TextArea/TextareaCounter.tsx"],"sourcesContent":["export const TextareaCounter = ({\n content,\n maxLength,\n}: {\n content: string;\n maxLength: number;\n}) => {\n return (\n <p className=\"small text-gray-700 p-2 text-end\">\n {content ? `${content.length} / ${maxLength}` : ''}\n </p>\n );\n};\n"],"names":["TextareaCounter","content","maxLength","jsx","length"],"mappings":";AAAO,MAAMA,IAAkBA,CAAC;AAAA,EAC9BC,SAAAA;AAAAA,EACAC,WAAAA;AAIF,MAEI,gBAAAC,EAAC,KAAE,EAAA,WAAU,oCACVF,UAAAA,IAAU,GAAGA,EAAQG,MAAM,MAAMF,CAAS,KAAK,GAClD,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toolbar.js","sources":["../../../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n FocusEvent,\n ReactNode,\n Ref,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport clsx from 'clsx';\n\nimport { mergeRefs } from '../../utils';\nimport { Button, ButtonProps, IconButton, IconButtonProps } from '../Button';\nimport { Dropdown, DropdownProps } from '../Dropdown';\nimport { Placement, Tooltip } from '../Tooltip';\n\ninterface Item {\n /** Object type */\n type: string;\n /** Items should be named, except for dividers */\n name?: string;\n /** Set to \"hide\" to hide this item. Defaults to \"show\" when undefined. */\n visibility?: 'show' | 'hide';\n}\n\ninterface ToolbarTooltip {\n tooltip?:\n | string\n | {\n message: string;\n position?: Placement;\n };\n}\n\ninterface ButtonItem extends Item, ToolbarTooltip {\n type: 'button';\n name: string;\n props: ButtonProps;\n}\ninterface IconButtonItem extends Item, ToolbarTooltip {\n type: 'icon';\n name: string;\n props: IconButtonProps;\n}\ninterface DropdownItem extends Item {\n type: 'dropdown';\n props: DropdownProps;\n overflow?: boolean;\n}\ninterface PrimaryItem extends Item, ToolbarTooltip {\n type: 'primary';\n props: ButtonProps;\n}\ninterface DividerItem extends Item {\n type: 'divider';\n}\n\nexport type ToolbarRef = HTMLDivElement;\nexport type ToolbarVariant = 'default' | 'no-shadow';\nexport type ToolbarAlign = 'left' | 'center' | 'space' | 'right';\nexport type ToolbarItem =\n | ButtonItem\n | IconButtonItem\n | DropdownItem\n | PrimaryItem\n | DividerItem;\n\nexport interface ToolbarProps extends React.ComponentPropsWithRef<'div'> {\n /**\n * Toolbar data items\n */\n items: ToolbarItem[];\n /**\n * Toolbar variant\n */\n variant?: ToolbarVariant;\n /**\n * Buttons alignement when isBlock is true\n */\n align?: ToolbarAlign;\n /**\n * Toolbar has width 100%\n */\n isBlock?: boolean;\n /**\n * Editor container ID for a11y purpose\n */\n ariaControls?: string;\n /**\n * Additional CSS classes.\n */\n className?: string;\n /**\n * Accept optional children\n */\n children?: ReactNode;\n}\n\nexport const Toolbar = forwardRef(\n (\n {\n items,\n variant = 'default',\n align = 'space',\n isBlock = false,\n ariaControls,\n className,\n }: ToolbarProps,\n ref: Ref<ToolbarRef>,\n ) => {\n const [firstFocusableItemIndex, setFirstFocusableItemIndex] =\n useState<number>(0);\n const [a11yNavigationItems, setA11yNavigationItems] = useState<\n Array<HTMLElement>\n >([]);\n const [firstA11yNavigationItem, setFirstA11yNavigationItem] =\n useState<HTMLElement>();\n const [lastA11yNavigationItem, setA11yNavigationLastItem] =\n useState<HTMLElement>();\n\n const divToolbarRef = useRef<HTMLDivElement>();\n\n const classes = clsx('toolbar z-1000 bg-white', className, {\n default: variant === 'default',\n 'no-shadow': variant === 'no-shadow',\n 'd-flex': isBlock,\n 'd-inline-flex': !isBlock,\n 'overflow-x-auto': isBlock,\n 'justify-content-start': align === 'left',\n 'justify-content-between': align === 'space',\n 'justify-content-center': align === 'center',\n 'justify-content-end': align === 'right',\n });\n\n useEffect(() => {\n // a11y: set first and last item for keyboard arrow navigation\n const buttons: NodeListOf<HTMLButtonElement> | undefined =\n divToolbarRef.current?.querySelectorAll('button');\n const enabledItems: Array<HTMLElement> = [];\n let isfirstItemSet = false;\n\n buttons?.forEach((item) => {\n if (!item.disabled) {\n if (!isfirstItemSet) {\n setFirstA11yNavigationItem(item);\n isfirstItemSet = true;\n }\n setA11yNavigationLastItem(item);\n enabledItems.push(item);\n }\n });\n\n setA11yNavigationItems(enabledItems);\n\n // a11y: set first element to focus with tab keyboard\n setFirstFocusableItemIndex(\n items.findIndex(\n (item) =>\n (item.type === 'button' || item.type === 'icon') &&\n !item.props.disabled,\n ),\n );\n }, [items]);\n\n const handleFocus = (event: FocusEvent<HTMLDivElement>) => {\n // focused button\n event.target.classList.add('focus');\n };\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => {\n // focused button\n event.target.classList.remove('focus');\n };\n\n /**\n * Handle a11y toolbar navigation with Arrow keys.\n */\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const index = a11yNavigationItems.indexOf(event.currentTarget);\n switch (event.code) {\n case 'ArrowLeft':\n // switch to previous item\n if (event.currentTarget === firstA11yNavigationItem) {\n lastA11yNavigationItem?.focus();\n } else {\n a11yNavigationItems[index - 1]?.focus();\n }\n break;\n case 'ArrowRight':\n // switch to next item\n if (event.currentTarget === lastA11yNavigationItem) {\n firstA11yNavigationItem?.focus();\n } else {\n a11yNavigationItems[index + 1]?.focus();\n }\n break;\n default:\n break;\n }\n };\n\n const renderTooltipMessage = (\n item: Exclude<ToolbarItem, DropdownItem | DividerItem>,\n ) => {\n return typeof item.tooltip === 'string'\n ? item.tooltip\n : item.tooltip?.message;\n };\n\n const renderTooltipPosition = (\n item: Exclude<ToolbarItem, DropdownItem | DividerItem>,\n ) => {\n return typeof item.tooltip !== 'string' ? item.tooltip?.position : 'top';\n };\n\n return (\n <div\n ref={mergeRefs(ref, divToolbarRef)}\n className={classes}\n role=\"toolbar\"\n aria-label=\"Text Formatting\"\n aria-controls={ariaControls}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n {items.map((item, index) => {\n if (item.visibility === 'hide') return null;\n\n switch (item.type) {\n case 'divider':\n return (\n <div key={item.name ?? index} className=\"toolbar-divider\"></div>\n );\n\n case 'button':\n return (\n <Tooltip\n key={item.name ?? index}\n message={renderTooltipMessage(item)}\n placement={renderTooltipPosition(item)}\n >\n <Button\n {...item.props}\n key={item.name ?? index}\n color={item.props.color ? item.props.color : 'tertiary'}\n variant=\"ghost\"\n tabIndex={index === firstFocusableItemIndex ? 0 : -1}\n onKeyDown={handleKeyDown}\n />\n </Tooltip>\n );\n\n case 'icon':\n return (\n <Tooltip\n key={item.name ?? index}\n message={renderTooltipMessage(item)}\n placement={renderTooltipPosition(item)}\n >\n <IconButton\n {...item.props}\n key={item.name ?? index}\n color={item.props.color ? item.props.color : 'tertiary'}\n variant={item.props.variant ? item.props.variant : 'ghost'}\n tabIndex={index === firstFocusableItemIndex ? 0 : -1}\n onKeyDown={handleKeyDown}\n />\n </Tooltip>\n );\n\n case 'dropdown':\n return (\n <Dropdown\n {...item.props}\n key={item.name ?? index}\n extraTriggerKeyDownHandler={handleKeyDown}\n overflow={item.overflow}\n >\n {/* Set the children through props */}\n </Dropdown>\n );\n\n case 'primary':\n return (\n <Tooltip\n key={item.name ?? index}\n message={renderTooltipMessage(item)}\n placement={renderTooltipPosition(item)}\n >\n <Button\n {...item.props}\n variant=\"filled\"\n color=\"primary\"\n tabIndex={index === firstFocusableItemIndex ? 0 : -1}\n onKeyDown={handleKeyDown}\n />\n </Tooltip>\n );\n\n default:\n break;\n }\n return null;\n })}\n </div>\n );\n },\n);\n\nToolbar.displayName = 'Toolbar';\n\nexport default Toolbar;\n"],"names":["Toolbar","items","variant","align","isBlock","ariaControls","className","ref","firstFocusableItemIndex","setFirstFocusableItemIndex","useState","a11yNavigationItems","setA11yNavigationItems","firstA11yNavigationItem","setFirstA11yNavigationItem","lastA11yNavigationItem","setA11yNavigationLastItem","divToolbarRef","useRef","classes","clsx","default","useEffect","buttons","current","querySelectorAll","enabledItems","isfirstItemSet","forEach","item","disabled","push","findIndex","type","props","handleFocus","event","target","classList","add","handleBlur","remove","handleKeyDown","index","indexOf","currentTarget","code","focus","renderTooltipMessage","tooltip","message","renderTooltipPosition","position","jsx","mergeRefs","map","visibility","name","Tooltip","Button","color","IconButton","createElement","Dropdown","overflow"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { ReactNode, useState } from 'react';\n\nimport clsx from 'clsx';\nimport { usePopper } from 'react-popper';\n\nexport type Placement =\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end';\n\nexport interface TooltipProps {\n /**\n * Text to display inside tooltip\n */\n message: string | undefined;\n /**\n * Element to be wrapped as Tooltip trigger\n */\n children: React.ReactNode;\n /**\n * Tooltip position\n */\n placement?: Placement;\n /**\n * Tooltip left icon\n */\n icon?: ReactNode;\n}\n\nexport const Tooltip = ({\n children,\n message,\n icon = null,\n placement = 'auto',\n}: TooltipProps) => {\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(\n null,\n );\n const [popperElement, setPopperElement] = useState<HTMLDivElement | null>(\n null,\n );\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n ],\n });\n\n const [visible, setVisible] = useState<boolean>(false);\n\n return (\n <>\n <div\n className=\"d-inline-block position-relative z-2\"\n ref={setReferenceElement}\n onMouseEnter={() => {\n setVisible(true);\n }}\n onMouseLeave={() => {\n setVisible(false);\n }}\n >\n {children}\n </div>\n {visible && message && (\n <div\n className={clsx('tooltip d-block show mb-12', `bs-tooltip-auto`)}\n ref={setPopperElement}\n style={styles.popper}\n {...attributes.popper}\n >\n <div className=\"tooltip-inner shadow-hover d-flex gap-8 align-items-center\">\n {icon && icon}\n <div>{message}</div>\n </div>\n <div\n className=\"tooltip-arrow\"\n ref={setArrowElement}\n style={styles.arrow}\n ></div>\n </div>\n )}\n </>\n );\n};\n\nexport default Tooltip;\n"],"names":["Tooltip","children","message","icon","placement","referenceElement","setReferenceElement","useState","popperElement","setPopperElement","arrowElement","setArrowElement","styles","attributes","usePopper","modifiers","name","options","element","visible","setVisible","jsxs","Fragment","jsx","clsx","popper","arrow"],"mappings":";;;;AAyCO,MAAMA,IAAUA,CAAC;AAAA,EACtBC,UAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,MAAAA,IAAO;AAAA,EACPC,WAAAA,IAAY;AACA,MAAM;AAClB,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAC9C,IACF,GACM,CAACC,GAAeC,CAAgB,IAAIF,EACxC,IACF,GACM,CAACG,GAAcC,CAAe,IAAIJ,EAAgC,IAAI,GAEtE;AAAA,IAAEK,QAAAA;AAAAA,IAAQC,YAAAA;AAAAA,EAAAA,IAAeC,EAAUT,GAAkBG,GAAe;AAAA,IACxEJ,WAAAA;AAAAA,IACAW,WAAW,CACT;AAAA,MACEC,MAAM;AAAA,MACNC,SAAS;AAAA,QACPC,SAASR;AAAAA,MACX;AAAA,IAAA,CACD;AAAA,EAAA,CAEJ,GAEK,CAACS,GAASC,CAAU,IAAIb,EAAkB,EAAK;AAErD,SAEI,gBAAAc,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAA,gBAAAC,EAAC,SACC,WAAU,wCACV,KAAKjB,GACL,cAAc,MAAM;AAClBc,MAAAA,EAAW,EAAI;AAAA,IACjB,GACA,cAAc,MAAM;AAClBA,MAAAA,EAAW,EAAK;AAAA,OAGjBnB,UAAAA,EACH,CAAA;AAAA,IACCkB,KAAWjB,KACV,gBAAAmB,EAAC,OACC,EAAA,WAAWG,EAAK,8BAA8B,iBAAiB,GAC/D,KAAKf,GACL,OAAOG,EAAOa,WACVZ,EAAWY,QAEf,UAAA;AAAA,MAAC,gBAAAJ,EAAA,OAAA,EAAI,WAAU,8DACZlB,UAAAA;AAAAA,QAAQA,KAAAA;AAAAA,QACT,gBAAAoB,EAAC,SAAKrB,UAAQA,EAAA,CAAA;AAAA,MAAA,GAChB;AAAA,MACA,gBAAAqB,EAAC,SACC,WAAU,iBACV,KAAKZ,GACL,OAAOC,EAAOc,OACf;AAAA,IAAA,GACH;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeItem.js","sources":["../../../src/components/TreeView/TreeItem.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { Icon } from '..';\nimport useTreeItemEvents from './hooks/useTreeItemEvents';\n\nexport interface TreeItemProps {\n /**\n * Node's id\n */\n nodeId: string;\n\n /**\n * Node's label\n */\n label: string;\n\n /**\n * ReactNode children\n */\n children: React.ReactNode;\n\n /**\n * Is current node a section (root element)\n */\n section?: boolean;\n\n /**\n * Is node selected\n */\n selected: boolean;\n\n /**\n * Node ID used for navigation folders\n */\n selectedNodesIds?: string[];\n\n /**\n * Callback function to provide selected item to parent component (TreeView)\n */\n onItemSelect?: Function;\n\n /**\n * Callback function to provide folded item to parent component (TreeView)\n */\n onItemFold?: Function;\n\n /**\n * Callback function to provide unfolded item to parent component (TreeView)\n */\n onItemUnfold?: Function;\n\n /**\n * Callback function to provide focused item to parent component (TreeView)\n */\n onItemFocus?: Function;\n\n /**\n * Callback function to provide blured item to parent component (TreeView)\n */\n onItemBlur?: Function;\n}\n\nconst TreeItem = (props: TreeItemProps) => {\n const {\n nodeId,\n label,\n children,\n section,\n selected,\n onItemSelect,\n onItemFold,\n onItemUnfold,\n onItemFocus,\n onItemBlur,\n selectedNodesIds,\n } = props;\n\n const { t } = useTranslation();\n const [expanded, setExpanded] = useState<boolean>(false);\n\n const {\n handleItemClick,\n handleItemKeyDown,\n handleItemFoldUnfoldClick,\n handleItemFoldUnfoldKeyDown,\n handleItemFocus,\n handleItemBlur,\n } = useTreeItemEvents(\n nodeId,\n label,\n expanded,\n setExpanded,\n onItemSelect,\n onItemFold,\n onItemUnfold,\n onItemFocus,\n onItemBlur,\n );\n\n useEffect(() => {\n if (selectedNodesIds?.length && selectedNodesIds?.length >= 1) {\n const lastNodeId = selectedNodesIds[\n selectedNodesIds.length - 1\n ] as string;\n selectedNodesIds.some((node: string) => {\n if (node === nodeId && nodeId !== lastNodeId) {\n setExpanded(true);\n return node === nodeId;\n }\n setExpanded(false);\n return false;\n });\n } else {\n setExpanded(false);\n }\n }, [nodeId, selectedNodesIds]);\n\n const rafterSize = section ? '16' : '12';\n\n const renderItem = () => (\n <li\n id={`listitem_${nodeId}`}\n key={nodeId}\n role=\"treeitem\"\n aria-selected={selected}\n aria-expanded={expanded}\n >\n <div>\n <div className=\"action-container d-flex align-items-center gap-8 px-2\">\n <div\n className={`py-8 ${!Array.isArray(children) ? 'invisible' : null}`}\n tabIndex={0}\n role=\"button\"\n onClick={handleItemFoldUnfoldClick}\n onKeyDown={handleItemFoldUnfoldKeyDown}\n aria-label={t('foldUnfold')}\n >\n {Array.isArray(children) && !!children.length && !expanded && (\n <Icon name=\"rafter-right\" size={rafterSize} />\n )}\n\n {Array.isArray(children) && !!children.length && expanded && (\n <Icon name=\"rafter-down\" size={rafterSize} />\n )}\n\n {/* Hide rafter when no children to keep alignment */}\n {!Array.isArray(children) && (\n <Icon name=\"rafter-right\" size={rafterSize} aria-hidden=\"true\" />\n )}\n </div>\n <div\n tabIndex={0}\n role=\"button\"\n className=\"flex-fill d-flex align-items-center text-truncate gap-8 py-8\"\n onClick={handleItemClick}\n onKeyDown={handleItemKeyDown}\n onFocus={handleItemFocus}\n onBlur={handleItemBlur}\n >\n {section && <Icon name=\"folder\" size=\"20\" />}\n <span className=\"text-truncate\">{label}</span>\n </div>\n </div>\n\n {Array.isArray(children) && <ul role=\"group\">{children}</ul>}\n </div>\n </li>\n );\n\n return section ? (\n <ul role=\"tree\" className=\"m-0 p-0\">\n {renderItem()}\n </ul>\n ) : (\n renderItem()\n );\n};\n\nTreeItem.displayName = 'TreeItem';\n\nexport default TreeItem;\n"],"names":["TreeItem","props","nodeId","label","children","section","selected","onItemSelect","onItemFold","onItemUnfold","onItemFocus","onItemBlur","selectedNodesIds","t","useTranslation","expanded","setExpanded","useState","handleItemClick","handleItemKeyDown","handleItemFoldUnfoldClick","handleItemFoldUnfoldKeyDown","handleItemFocus","handleItemBlur","useTreeItemEvents","useEffect","length","lastNodeId","some","node","rafterSize","renderItem","jsx","jsxs","Array","isArray","Icon"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeView.js","sources":["../../../src/components/TreeView/TreeView.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\n\nimport TreeItem from './TreeItem';\nimport { TreeNode } from './TreeNode';\n\nexport interface TreeViewHandlers {\n unselectAll: () => void;\n select: (nodeId: string) => void;\n}\n\nexport interface TreeViewProps {\n /**\n * TreeNode data\n */\n data: TreeNode;\n\n /**\n * Node ID used for navigation folders\n */\n selectedNodesIds?: string[];\n\n /**\n * Callback function to provide selected item to parent component\n */\n onTreeItemSelect?: (nodeId: string) => void;\n\n /**\n * Callback function to provide folded item to parent component\n */\n onTreeItemFold?: (nodeId: string) => void;\n\n /**\n * Callback function to provide unfolded item to parent component\n */\n onTreeItemUnfold?: (nodeId: string) => void;\n\n /**\n * Callback function to provide focused item to parent component\n */\n onTreeItemFocus?: (nodeId: string) => void;\n\n /**\n * Callback function to provide blured item to parent component\n */\n onTreeItemBlur?: (nodeId: string) => void;\n}\n\n/**\n * UI TreeView Component\n */\n\nexport const TreeView = forwardRef<TreeViewHandlers, TreeViewProps>(\n (props: TreeViewProps, ref) => {\n const {\n data,\n onTreeItemSelect,\n onTreeItemFold,\n onTreeItemUnfold,\n onTreeItemFocus,\n onTreeItemBlur,\n selectedNodesIds,\n } = props;\n\n const [selectedItem, setSelectedItem] = useState<string | null>(null);\n\n useEffect(() => {\n if (selectedNodesIds?.length && selectedNodesIds?.length >= 1) {\n setSelectedItem(selectedNodesIds[selectedNodesIds.length - 1]);\n } else {\n setSelectedItem(null);\n }\n }, [selectedNodesIds]);\n\n const handlers: TreeViewHandlers = useMemo(\n () => ({\n unselectAll() {\n setSelectedItem(null);\n },\n select(nodeId: string) {\n setSelectedItem(nodeId);\n onTreeItemSelect?.(nodeId);\n },\n }),\n [onTreeItemSelect],\n );\n\n useImperativeHandle(ref, () => handlers, [handlers]);\n\n const handleItemFold = (nodeId: string) => {\n onTreeItemFold?.(nodeId);\n };\n\n const handleItemUnfold = (nodeId: string) => {\n onTreeItemUnfold?.(nodeId);\n };\n\n const handleItemFocus = (nodeId: string) => {\n onTreeItemFocus?.(nodeId);\n };\n\n const handleItemBlur = (nodeId: string) => {\n onTreeItemBlur?.(nodeId);\n };\n\n const renderTree = (node: TreeNode) => (\n <TreeItem\n key={node.id}\n nodeId={node.id}\n label={node.name}\n section={node.section}\n selectedNodesIds={selectedNodesIds}\n selected={selectedItem === node.id}\n onItemSelect={handlers.select}\n onItemFold={handleItemFold}\n onItemUnfold={handleItemUnfold}\n onItemFocus={handleItemFocus}\n onItemBlur={handleItemBlur}\n >\n {Array.isArray(node.children)\n ? node.children.map((item) => renderTree(item))\n : null}\n </TreeItem>\n );\n\n return <div className=\"treeview\">{renderTree(data)}</div>;\n },\n);\n\nTreeView.displayName = 'TreeView';\n\nexport default TreeView;\n"],"names":["TreeView","forwardRef","props","ref","data","onTreeItemSelect","onTreeItemFold","onTreeItemUnfold","onTreeItemFocus","onTreeItemBlur","selectedNodesIds","selectedItem","setSelectedItem","useState","useEffect","length","handlers","useMemo","unselectAll","select","nodeId","useImperativeHandle","handleItemFold","handleItemUnfold","handleItemFocus","handleItemBlur","renderTree","node","jsx","TreeItem","id","name","section","Array","isArray","children","map","item"],"mappings":";;;AAyDO,MAAMA,IAAWC,gBAAAA,EACtB,CAACC,GAAsBC,MAAQ;AACvB,QAAA;AAAA,IACJC,MAAAA;AAAAA,IACAC,kBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,kBAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,kBAAAA;AAAAA,EACER,IAAAA,GAEE,CAACS,GAAcC,CAAe,IAAIC,EAAwB,IAAI;AAEpEC,EAAAA,EAAU,MAAM;AACd,IAAIJ,KAAAA,QAAAA,EAAkBK,WAAUL,KAAAA,gBAAAA,EAAkBK,WAAU,IAC1DH,EAAgBF,EAAiBA,EAAiBK,SAAS,CAAC,CAAC,IAE7DH,EAAgB,IAAI;AAAA,EACtB,GACC,CAACF,CAAgB,CAAC;AAEfM,QAAAA,IAA6BC,EACjC,OAAO;AAAA,IACLC,cAAc;AACZN,MAAAA,EAAgB,IAAI;AAAA,IACtB;AAAA,IACAO,OAAOC,GAAgB;AACrBR,MAAAA,EAAgBQ,CAAM,GACtBf,KAAAA,QAAAA,EAAmBe;AAAAA,IACrB;AAAA,EAAA,IAEF,CAACf,CAAgB,CACnB;AAEAgB,EAAAA,EAAoBlB,GAAK,MAAMa,GAAU,CAACA,CAAQ,CAAC;AAE7CM,QAAAA,IAAiBA,CAACF,MAAmB;AACzCd,IAAAA,KAAAA,QAAAA,EAAiBc;AAAAA,EAAM,GAGnBG,IAAmBA,CAACH,MAAmB;AAC3Cb,IAAAA,KAAAA,QAAAA,EAAmBa;AAAAA,EAAM,GAGrBI,IAAkBA,CAACJ,MAAmB;AAC1CZ,IAAAA,KAAAA,QAAAA,EAAkBY;AAAAA,EAAM,GAGpBK,IAAiBA,CAACL,MAAmB;AACzCX,IAAAA,KAAAA,QAAAA,EAAiBW;AAAAA,EAAM,GAGnBM,IAAaA,CAACC,MAClB,gBAAAC,EAACC,KAEC,QAAQF,EAAKG,IACb,OAAOH,EAAKI,MACZ,SAASJ,EAAKK,SACd,kBAAAtB,GACA,UAAUC,MAAiBgB,EAAKG,IAChC,cAAcd,EAASG,QACvB,YAAYG,GACZ,cAAcC,GACd,aAAaC,GACb,YAAYC,GAEXQ,UAAAA,MAAMC,QAAQP,EAAKQ,QAAQ,IACxBR,EAAKQ,SAASC,IAAKC,CAASX,MAAAA,EAAWW,CAAI,CAAC,IAC5C,KAdCV,GAAAA,EAAKG,EAeZ;AAGF,2BAAQ,OAAI,EAAA,WAAU,YAAYJ,UAAAA,EAAWtB,CAAI,EAAE,CAAA;AACrD,CACF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTreeItemEvents.js","sources":["../../../../src/components/TreeView/hooks/useTreeItemEvents.tsx"],"sourcesContent":["export default function useTreeItemEvents(\n nodeId: string,\n label: string,\n expanded: boolean,\n setExpanded: Function,\n onItemSelect: Function | undefined,\n onItemFold: Function | undefined,\n onItemUnfold: Function | undefined,\n onItemFocus: Function | undefined,\n onItemBlur: Function | undefined,\n) {\n const handleItemClick = (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n onItemSelect?.(nodeId);\n itemFoldUnfold();\n event.stopPropagation();\n };\n\n const handleItemKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n onItemSelect?.(nodeId);\n itemFoldUnfold();\n event.stopPropagation();\n }\n };\n\n const itemFoldUnfold = () => {\n setExpanded(!expanded);\n expanded ? onItemFold?.(nodeId) : onItemUnfold?.(nodeId);\n };\n\n const handleItemFoldUnfoldClick = (\n event: React.MouseEvent<HTMLDivElement>,\n ) => {\n event.preventDefault();\n itemFoldUnfold();\n event.stopPropagation();\n };\n\n const handleItemFoldUnfoldKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n itemFoldUnfold();\n event.stopPropagation();\n }\n };\n\n const handleItemFocus = (event: React.FocusEvent<HTMLDivElement>) => {\n event.preventDefault();\n onItemFocus?.(nodeId);\n // no need to stop propagation because focus event does not bubble\n };\n\n const handleItemBlur = (event: React.FocusEvent<HTMLDivElement>) => {\n event.preventDefault();\n onItemBlur?.(nodeId);\n // no need to stop propagation because blur event does not bubble\n };\n\n return {\n handleItemClick,\n handleItemKeyDown,\n handleItemFoldUnfoldClick,\n handleItemFoldUnfoldKeyDown,\n handleItemFocus,\n handleItemBlur,\n };\n}\n"],"names":["useTreeItemEvents","nodeId","label","expanded","setExpanded","onItemSelect","onItemFold","onItemUnfold","onItemFocus","onItemBlur","handleItemClick","event","preventDefault","itemFoldUnfold","stopPropagation","handleItemKeyDown","code","handleItemFoldUnfoldClick","handleItemFoldUnfoldKeyDown","handleItemFocus","handleItemBlur"],"mappings":"AAAwBA,SAAAA,EACtBC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA;AACMC,QAAAA,IAAkBA,CAACC,MAA4C;AACnEA,IAAAA,EAAMC,eAAe,GACrBP,KAAAA,QAAAA,EAAeJ,IACAY,KACfF,EAAMG,gBAAgB;AAAA,EAAA,GAGlBC,IAAoBA,CAACJ,MAA+C;AACxE,KAAIA,EAAMK,SAAS,WAAWL,EAAMK,SAAS,aAC3CL,EAAMC,eAAe,GACrBP,KAAAA,QAAAA,EAAeJ,IACAY,KACfF,EAAMG,gBAAgB;AAAA,EACxB,GAGID,IAAiBA,MAAM;AAC3BT,IAAAA,EAAY,CAACD,CAAQ,GACrBA,IAAWG,KAAAA,QAAAA,EAAaL,KAAUM,KAAAA,QAAAA,EAAeN;AAAAA,EAAM;AAiClD,SAAA;AAAA,IACLS,iBAAAA;AAAAA,IACAK,mBAAAA;AAAAA,IACAE,2BAjCgCA,CAChCN,MACG;AACHA,MAAAA,EAAMC,eAAe,GACNC,KACfF,EAAMG,gBAAgB;AAAA,IAAA;AAAA,IA6BtBI,6BA1BkCA,CAClCP,MACG;AACH,OAAIA,EAAMK,SAAS,WAAWL,EAAMK,SAAS,aAC3CL,EAAMC,eAAe,GACNC,KACfF,EAAMG,gBAAgB;AAAA,IACxB;AAAA,IAoBAK,iBAjBsBA,CAACR,MAA4C;AACnEA,MAAAA,EAAMC,eAAe,GACrBJ,KAAAA,QAAAA,EAAcP;AAAAA,IAAM;AAAA,IAgBpBmB,gBAZqBA,CAACT,MAA4C;AAClEA,MAAAA,EAAMC,eAAe,GACrBH,KAAAA,QAAAA,EAAaR;AAAAA,IAAM;AAAA,EAUnBmB;AAEJ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UploadCard.js","sources":["../../../src/components/UploadCard/UploadCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\n\nimport { Icon, Tooltip } from '..';\nimport { usePaths } from '../../core';\nimport { Status } from '../../types';\nimport { Button, IconButton } from '../Button';\nimport { Card, CardProps } from '../Card';\nimport { Image } from '../Image';\nimport { Loading } from '../Loading';\n\nexport interface UploadItemProps {\n /**\n * File's image\n * */\n src: string;\n /**\n * File's name\n * */\n name: string;\n /**\n * File's info\n * */\n info?: { type: string; weight: string };\n}\n\nexport interface UploadCardProps extends CardProps {\n /**\n * UploadItemProps\n * */\n item: UploadItemProps;\n /**\n * idle, loading, success, warning, error\n * */\n status?: Status;\n /**\n * Delete callback\n * */\n onDelete?: () => void;\n /**\n * Edit callback\n * */\n onEdit?: () => void;\n /**\n * Retry callback\n * */\n onRetry?: () => void;\n}\n\nexport const UploadCard = ({\n item,\n status = 'idle',\n isClickable = false,\n isSelectable = false,\n onDelete,\n onEdit,\n onRetry,\n}: UploadCardProps) => {\n const [imagePath] = usePaths();\n\n const { t } = useTranslation();\n\n const { src, name, info } = item;\n\n const isIdle = status === 'idle';\n const isLoading = status === 'loading';\n const isSuccess = status === 'success';\n\n const isTypeImage = info?.type.startsWith('image');\n\n /**\n * WB-3053: add mapping object to store information\n * <Image/> component is not used for placeholder because of re-render intempestive image download\n */\n const imgPlaceholder = `${imagePath}/common/image-placeholder.png`;\n const defaultMapping = {\n text: '',\n context: null,\n image: <img src={imgPlaceholder} alt=\"\" width=\"48\" height=\"48\" />,\n };\n\n const mapping = {\n error: {\n text: (\n <strong>\n <small className=\"text-danger caption\">\n {t('tiptap.upload.error')}\n </small>\n </strong>\n ),\n context: (\n <Button\n leftIcon={<Icon name=\"reset\" />}\n variant=\"ghost\"\n color=\"tertiary\"\n onClick={onRetry}\n >\n {t('tiptap.upload.retry')}\n </Button>\n ),\n image: (\n <Image\n alt=\"\"\n src={`${imagePath}/common/image-status-error.svg`}\n objectFit=\"cover\"\n />\n ),\n },\n idle: defaultMapping,\n loading: {\n text: '',\n context: (\n <Tooltip message={t('tiptap.tooltip.upload.loading')} placement=\"top\">\n <Loading\n isLoading\n loadingPosition=\"left\"\n className=\"text-secondary\"\n />\n </Tooltip>\n ),\n image: defaultMapping.image,\n },\n warning: defaultMapping,\n success: {\n text: (\n <em>\n {info?.type} {info?.weight && `- ${info.weight}`}\n </em>\n ),\n context: (\n <Tooltip message={t('tiptap.tooltip.upload.loaded')} placement=\"top\">\n <Icon name=\"success-outline\" className=\"text-success\" />\n </Tooltip>\n ),\n image: (\n <Image\n alt=\"\"\n src={src ?? ''}\n width=\"48\"\n objectFit=\"cover\"\n className=\"rounded\"\n style={{ aspectRatio: 1 / 1 }}\n />\n ),\n },\n unknown: defaultMapping,\n };\n\n const canEditItem = () =>\n isTypeImage && (\n <Tooltip message={t('tiptap.tooltip.upload.edit')} placement=\"top\">\n <IconButton\n icon={<Icon name=\"wand\" />}\n variant=\"ghost\"\n aria-label={t('tiptap.tooltip.upload.loading')}\n disabled={isLoading || !isSuccess}\n onClick={onEdit}\n color=\"secondary\"\n />\n </Tooltip>\n );\n\n return (\n <Card\n isClickable={isClickable}\n isSelectable={isSelectable}\n className=\"card-upload\"\n >\n <Card.Body>\n <div className=\"card-image\">{mapping[status].image}</div>\n <div className=\"text-truncate\">\n <Card.Text>{name}</Card.Text>\n <Card.Text className=\"caption\">{mapping[status].text}</Card.Text>\n </div>\n {!isIdle && (\n <div className=\"ms-auto\">\n <div className=\"d-flex align-items-center gap-12\">\n {mapping[status].context}\n {!isIdle && <div className=\"vr\"></div>}\n {canEditItem()}\n <Tooltip\n message={t('tiptap.tooltip.upload.delete')}\n placement=\"top\"\n >\n <IconButton\n icon={<Icon name=\"close\" />}\n variant=\"ghost\"\n aria-label={t('tiptap.tooltip.upload.delete')}\n color=\"tertiary\"\n onClick={onDelete}\n />\n </Tooltip>\n </div>\n </div>\n )}\n </Card.Body>\n </Card>\n );\n};\n"],"names":["UploadCard","item","status","isClickable","isSelectable","onDelete","onEdit","onRetry","imagePath","usePaths","t","useTranslation","src","name","info","isIdle","isLoading","isSuccess","isTypeImage","type","startsWith","imgPlaceholder","defaultMapping","text","context","image","jsx","mapping","error","Button","Icon","Image","idle","loading","Tooltip","Loading","warning","success","weight","aspectRatio","unknown","canEditItem","IconButton","Card","jsxs"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"VisuallyHidden.js","sources":["../../../src/components/VisuallyHidden/VisuallyHidden.tsx"],"sourcesContent":["import { forwardRef, ReactNode, Ref } from 'react';\n\nexport interface VisuallyHiddenProps {\n children: ReactNode;\n}\n\nexport const VisuallyHidden = forwardRef(\n ({ children }: VisuallyHiddenProps, ref: Ref<HTMLSpanElement>) => {\n return (\n <span className=\"visually-hidden\" ref={ref}>\n {children}\n </span>\n );\n },\n);\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n\nexport default VisuallyHidden;\n"],"names":["VisuallyHidden","children","ref","jsx"],"mappings":";;AAMaA,MAAAA,sBACX,CAAC;AAAA,EAAEC,UAAAA;AAA8B,GAAGC,MAE/B,gBAAAC,EAAA,QAAA,EAAK,WAAU,mBAAkB,KAAAD,GAC/BD,UAAAA,EACH,CAAA,CAGN;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OdeClientProvider.js","sources":["../../../src/core/OdeClientProvider/OdeClientProvider.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useEffect,\n useMemo,\n type ReactNode,\n} from 'react';\n\nimport {\n App,\n IGetConf,\n IGetSession,\n IUserDescription,\n IUserInfo,\n IWebApp,\n UserProfile,\n} from '@edifice.io/ts-client';\nimport { UseQueryResult } from '@tanstack/react-query';\nimport { useTranslation } from 'react-i18next';\n\nimport { useConf } from '../useConf';\nimport { useSession } from '../useSession';\n\nexport interface OdeProviderParams {\n alternativeApp?: boolean;\n app: App;\n cdnDomain?: string | null;\n version?: string | null;\n}\n\nexport interface OdeClientProps {\n children: ReactNode;\n params: OdeProviderParams;\n}\n\nexport interface OdeContextProps {\n appCode: App;\n applications: IWebApp[] | undefined;\n confQuery: UseQueryResult<IGetConf>;\n currentApp: IWebApp | undefined;\n currentLanguage: string | undefined;\n init: boolean;\n sessionQuery: UseQueryResult<IGetSession>;\n user: IUserInfo | undefined;\n userDescription: Partial<IUserDescription> | undefined;\n userProfile: UserProfile | undefined;\n}\n\nexport const OdeClientContext = createContext<OdeContextProps | null>(null!);\n\nexport function OdeClientProvider({ children, params }: OdeClientProps) {\n const appCode = params.app;\n\n const { t } = useTranslation();\n const translatedAppCode = t(appCode);\n\n const sessionQuery = useSession();\n const confQuery = useConf({ appCode });\n\n const init = confQuery?.isSuccess && sessionQuery?.isSuccess;\n\n useEffect(() => {\n const attributes = [\n {\n data: 'html',\n value: sessionQuery?.data?.currentLanguage || 'fr',\n },\n // #WB-3137 Disable the translation of the content of the page which provoced issues\n {\n data: 'translate',\n value: 'no',\n },\n ];\n\n attributes.forEach((attribute) => {\n return document\n .querySelector('html')\n ?.setAttribute(attribute.data, attribute.value as string);\n });\n }, [sessionQuery?.data]);\n\n useEffect(() => {\n document.title = `${translatedAppCode}`;\n }, [appCode, sessionQuery.data, translatedAppCode]);\n\n const values = useMemo(\n () => ({\n appCode,\n applications: confQuery?.data?.applications,\n confQuery,\n currentApp: confQuery?.data?.currentApp,\n currentLanguage: sessionQuery?.data?.currentLanguage,\n init,\n sessionQuery,\n user: sessionQuery?.data?.user,\n userDescription: sessionQuery?.data?.userDescription,\n userProfile: sessionQuery?.data?.userProfile,\n }),\n [appCode, confQuery, init, sessionQuery],\n );\n\n return (\n <OdeClientContext.Provider value={values}>\n {children}\n </OdeClientContext.Provider>\n );\n}\n\nexport function useOdeClient() {\n const context = useContext(OdeClientContext);\n\n if (!context) {\n throw new Error(`Cannot be used outside of OdeClientProvider`);\n }\n return context;\n}\n"],"names":["OdeClientContext","OdeClientProvider","children","params","appCode","app","t","useTranslation","translatedAppCode","sessionQuery","useSession","confQuery","useConf","init","isSuccess","useEffect","attributes","data","value","currentLanguage","forEach","attribute","document","querySelector","setAttribute","title","values","useMemo","applications","currentApp","user","userDescription","userProfile","useOdeClient","context","useContext","Error"],"mappings":";;;;;AAgDaA,MAAAA,sBAAyD,IAAK;AAEpE,SAASC,EAAkB;AAAA,EAAEC,UAAAA;AAAAA,EAAUC,QAAAA;AAAuB,GAAG;AACtE,QAAMC,IAAUD,EAAOE,KAEjB;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GACvBC,IAAoBF,EAAEF,CAAO,GAE7BK,IAAeC,KACfC,IAAYC,EAAQ;AAAA,IAAER,SAAAA;AAAAA,EAAAA,CAAS,GAE/BS,KAAOF,KAAAA,gBAAAA,EAAWG,eAAaL,KAAAA,gBAAAA,EAAcK;AAEnDC,EAAAA,EAAU,MAAM;;AAadC,IAZmB;AAAA,MACjB;AAAA,QACEC,MAAM;AAAA,QACNC,SAAOT,IAAAA,KAAAA,gBAAAA,EAAcQ,SAAdR,gBAAAA,EAAoBU,oBAAmB;AAAA,MAChD;AAAA;AAAA,MAEA;AAAA,QACEF,MAAM;AAAA,QACNC,OAAO;AAAA,MACT;AAAA,IAAA,EAGSE,QAASC,CAAcA,MAAA;;AACzBC,cAAAA,IAAAA,SACJC,cAAc,MAAM,MADhBD,gBAAAA,EAEHE,aAAaH,EAAUJ,MAAMI,EAAUH;AAAAA,IAAe,CAC3D;AAAA,EAAA,GACA,CAACT,KAAAA,gBAAAA,EAAcQ,IAAI,CAAC,GAEvBF,EAAU,MAAM;AACLU,aAAAA,QAAQ,GAAGjB,CAAiB;AAAA,KACpC,CAACJ,GAASK,EAAaQ,MAAMT,CAAiB,CAAC;AAE5CkB,QAAAA,IAASC,EACb,MAAO;;AAAA;AAAA,MACLvB,SAAAA;AAAAA,MACAwB,eAAcjB,IAAAA,KAAAA,gBAAAA,EAAWM,SAAXN,gBAAAA,EAAiBiB;AAAAA,MAC/BjB,WAAAA;AAAAA,MACAkB,aAAYlB,IAAAA,KAAAA,gBAAAA,EAAWM,SAAXN,gBAAAA,EAAiBkB;AAAAA,MAC7BV,kBAAiBV,IAAAA,KAAAA,gBAAAA,EAAcQ,SAAdR,gBAAAA,EAAoBU;AAAAA,MACrCN,MAAAA;AAAAA,MACAJ,cAAAA;AAAAA,MACAqB,OAAMrB,IAAAA,KAAAA,gBAAAA,EAAcQ,SAAdR,gBAAAA,EAAoBqB;AAAAA,MAC1BC,kBAAiBtB,IAAAA,KAAAA,gBAAAA,EAAcQ,SAAdR,gBAAAA,EAAoBsB;AAAAA,MACrCC,cAAavB,IAAAA,KAAAA,gBAAAA,EAAcQ,SAAdR,gBAAAA,EAAoBuB;AAAAA,IAAAA;AAAAA,KAEnC,CAAC5B,GAASO,GAAWE,GAAMJ,CAAY,CACzC;AAEA,2BACGT,EAAiB,UAAjB,EAA0B,OAAO0B,GAC/BxB,UAAAA,EACH,CAAA;AAEJ;AAEO,SAAS+B,IAAe;AACvBC,QAAAA,IAAUC,EAAWnC,CAAgB;AAE3C,MAAI,CAACkC;AACG,UAAA,IAAIE,MAAM,6CAA6C;AAExDF,SAAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeProvider.js","sources":["../../../src/core/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useEffect,\n useMemo,\n type ReactNode,\n} from 'react';\n\nimport { IOdeTheme } from '@edifice.io/ts-client';\n\nimport { useOdeClient } from '../OdeClientProvider';\nimport { useConf } from '../useConf';\n\nexport interface ThemeProps {\n children: ReactNode;\n}\n\nexport interface ThemeContextProps {\n theme: IOdeTheme | undefined;\n}\n\nexport const ThemeContext = createContext<ThemeContextProps | null>(null!);\n\nexport function ThemeProvider({ children }: ThemeProps) {\n const { appCode } = useOdeClient();\n\n const confQuery = useConf({ appCode });\n\n useEffect(() => {\n const favicon = document.getElementById('favicon') as HTMLAnchorElement;\n favicon.href =\n `${confQuery?.data?.theme?.basePath}/img/illustrations/favicon.ico` as string;\n const bootstrapVersion =\n confQuery?.data?.theme?.bootstrapVersion?.split('-');\n const dataProduct = bootstrapVersion\n ? bootstrapVersion[bootstrapVersion.length - 1]\n : undefined;\n\n const attributes = [\n {\n data: 'data-skin',\n value: confQuery?.data?.theme?.skinName,\n },\n {\n data: 'data-theme',\n value: confQuery?.data?.theme?.themeName,\n },\n {\n data: 'data-product',\n value: dataProduct,\n },\n ];\n\n attributes.forEach((attribute) => {\n return document\n .querySelector('html')\n ?.setAttribute(attribute.data, attribute.value as string);\n });\n }, [confQuery?.data]);\n\n const values = useMemo(\n () => ({\n theme: confQuery?.data?.theme,\n }),\n [confQuery?.data?.theme],\n );\n\n return (\n <ThemeContext.Provider value={values}>{children}</ThemeContext.Provider>\n );\n}\n\nexport function useOdeTheme() {\n const context = useContext(ThemeContext);\n\n if (!context) {\n throw new Error(`Cannot be used outside of OdeClientProvider`);\n }\n return context;\n}\n"],"names":["ThemeContext","ThemeProvider","children","appCode","useOdeClient","confQuery","useConf","useEffect","favicon","document","getElementById","href","data","theme","basePath","bootstrapVersion","split","dataProduct","length","undefined","attributes","value","skinName","themeName","forEach","attribute","querySelector","setAttribute","values","useMemo","useOdeTheme","context","useContext","Error"],"mappings":";;;;AAqBaA,MAAAA,sBAAuD,IAAK;AAElE,SAASC,EAAc;AAAA,EAAEC,UAAAA;AAAqB,GAAG;;AAChD,QAAA;AAAA,IAAEC,SAAAA;AAAAA,MAAYC,EAAa,GAE3BC,IAAYC,EAAQ;AAAA,IAAEH,SAAAA;AAAAA,EAAAA,CAAS;AAErCI,EAAAA,EAAU,MAAM;;AACRC,UAAAA,IAAUC,SAASC,eAAe,SAAS;AACjDF,IAAAA,EAAQG,OACN,IAAGN,KAAAA,IAAAA,KAAAA,gBAAAA,EAAWO,SAAXP,gBAAAA,EAAiBQ,UAAjBR,gBAAAA,EAAwBS,QAAQ;AACrC,UAAMC,KACJV,KAAAA,KAAAA,IAAAA,KAAAA,gBAAAA,EAAWO,SAAXP,gBAAAA,EAAiBQ,UAAjBR,gBAAAA,EAAwBU,qBAAxBV,gBAAAA,EAA0CW,MAAM,MAC5CC,IAAcF,IAChBA,EAAiBA,EAAiBG,SAAS,CAAC,IAC5CC;AAiBJC,IAfmB,CACjB;AAAA,MACER,MAAM;AAAA,MACNS,QAAOhB,KAAAA,IAAAA,KAAAA,gBAAAA,EAAWO,SAAXP,gBAAAA,EAAiBQ,UAAjBR,gBAAAA,EAAwBiB;AAAAA,IAAAA,GAEjC;AAAA,MACEV,MAAM;AAAA,MACNS,QAAOhB,KAAAA,IAAAA,KAAAA,gBAAAA,EAAWO,SAAXP,gBAAAA,EAAiBQ,UAAjBR,gBAAAA,EAAwBkB;AAAAA,IAAAA,GAEjC;AAAA,MACEX,MAAM;AAAA,MACNS,OAAOJ;AAAAA,IAAAA,CACR,EAGQO,QAASC,CAAcA,MAAA;;AACzBhB,cAAAA,IAAAA,SACJiB,cAAc,MAAM,MADhBjB,gBAAAA,EAEHkB,aAAaF,EAAUb,MAAMa,EAAUJ;AAAAA,IAAe,CAC3D;AAAA,EAAA,GACA,CAAChB,KAAAA,gBAAAA,EAAWO,IAAI,CAAC;AAEdgB,QAAAA,IAASC,EACb,MAAO;;AAAA;AAAA,MACLhB,QAAOR,IAAAA,KAAAA,gBAAAA,EAAWO,SAAXP,gBAAAA,EAAiBQ;AAAAA,IAE1B;AAAA,KAAA,EAACR,IAAAA,KAAAA,gBAAAA,EAAWO,SAAXP,gBAAAA,EAAiBQ,KAAK,CACzB;AAEA,2BACGb,EAAa,UAAb,EAAsB,OAAO4B,GAAS1B,UAAAA,EAAS,CAAA;AAEpD;AAEO,SAAS4B,IAAc;AACtBC,QAAAA,IAAUC,EAAWhC,CAAY;AAEvC,MAAI,CAAC+B;AACG,UAAA,IAAIE,MAAM,6CAA6C;AAExDF,SAAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAvatar.js","sources":["../../../src/core/useAvatar/useAvatar.tsx"],"sourcesContent":["import { ID, UserProfile, odeServices } from '@edifice.io/ts-client';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Badge } from '../../components';\n\nexport default function useAvatar(\n userId: ID,\n userProfile?: UserProfile[number],\n) {\n const { t } = useTranslation();\n\n const badge = useMemo((): JSX.Element | null => {\n const profile = userProfile?.toLowerCase() ?? 'guest';\n return ['teacher', 'student', 'relative', 'personnel'].includes(profile) ? (\n <Badge\n variant={{\n type: 'profile',\n profile: profile as 'teacher' | 'student' | 'relative' | 'personnel',\n }}\n >\n {t(profile)}\n </Badge>\n ) : null;\n }, [userProfile, t]);\n\n function getAvatarURL(userId: ID): string {\n return odeServices.directory().getAvatarUrl(userId, 'user');\n }\n function getUserbookURL(userId: ID): string {\n return odeServices.directory().getDirectoryUrl(userId, 'user');\n }\n\n return {\n badge,\n avatarURL: getAvatarURL(userId),\n userbookURL: getUserbookURL(userId),\n };\n}\n"],"names":["useAvatar","userId","userProfile","t","useTranslation","badge","useMemo","profile","toLowerCase","includes","jsx","Badge","type","getAvatarURL","odeServices","directory","getAvatarUrl","getUserbookURL","getDirectoryUrl","avatarURL","userbookURL"],"mappings":";;;;;AAKwBA,SAAAA,EACtBC,GACAC,GACA;AACM,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAe,GAEvBC,IAAQC,EAAQ,MAA0B;AACxCC,UAAAA,KAAUL,KAAAA,gBAAAA,EAAaM,kBAAiB;AACvC,WAAA,CAAC,WAAW,WAAW,YAAY,WAAW,EAAEC,SAASF,CAAO,IACpE,gBAAAG,EAAAC,GAAA,EACC,SAAS;AAAA,MACPC,MAAM;AAAA,MACNL,SAAAA;AAAAA,IAGDJ,GAAAA,UAAAA,EAAEI,CAAO,EACZ,CAAA,IACE;AAAA,EAAA,GACH,CAACL,GAAaC,CAAC,CAAC;AAEnB,WAASU,EAAaZ,GAAoB;AACxC,WAAOa,EAAYC,UAAYC,EAAAA,aAAaf,GAAQ,MAAM;AAAA,EAC5D;AACA,WAASgB,EAAehB,GAAoB;AAC1C,WAAOa,EAAYC,UAAYG,EAAAA,gBAAgBjB,GAAQ,MAAM;AAAA,EAC/D;AAEO,SAAA;AAAA,IACLI,OAAAA;AAAAA,IACAc,WAAWN,EAAaZ,CAAM;AAAA,IAC9BmB,aAAaH,EAAehB,CAAM;AAAA,EAAA;AAEtC;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useBookmark.js","sources":["../../../src/core/useBookmark/useBookmark.ts"],"sourcesContent":["import { IWebApp } from '@edifice.io/ts-client';\n\nimport { useOdeClient } from '../OdeClientProvider';\n\nexport default function useBookmark(): IWebApp[] | undefined {\n const { sessionQuery } = useOdeClient();\n\n const set = new Set();\n const bookmarkedApps = sessionQuery?.data?.bookmarkedApps.filter(\n (el: { displayName: unknown }) => {\n const duplicate = set.has(el.displayName);\n set.add(el.displayName);\n return !duplicate;\n },\n );\n\n return bookmarkedApps;\n}\n"],"names":["useBookmark","sessionQuery","useOdeClient","set","Set","bookmarkedApps","data","filter","el","duplicate","has","displayName","add"],"mappings":";AAIA,SAAwBA,IAAqC;;AACrD,QAAA;AAAA,IAAEC,cAAAA;AAAAA,MAAiBC,EAAa,GAEhCC,wBAAUC;AASTC,UARgBJ,IAAAA,KAAAA,gBAAAA,EAAcK,SAAdL,gBAAAA,EAAoBI,eAAeE,OACxD,CAACC,MAAiC;AAChC,UAAMC,IAAYN,EAAIO,IAAIF,EAAGG,WAAW;AACpCC,WAAAA,EAAAA,IAAIJ,EAAGG,WAAW,GACf,CAACF;AAAAA,EAAAA;AAKd;"}