@layers-app/shared 0.4.6 → 0.4.8

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 (232) hide show
  1. package/dist/assets/default-workspace-avatar.jpg.js +1 -1
  2. package/dist/components/AliasTextInput/AliasTextInput.d.ts.map +1 -1
  3. package/dist/components/AliasTextInput/AliasTextInput.js +32 -32
  4. package/dist/components/AppContainer/AppContainer.d.ts +1 -1
  5. package/dist/components/AppContainer/AppContainer.d.ts.map +1 -1
  6. package/dist/components/AppContainer/AppContainer.js +82 -70
  7. package/dist/components/AppContainer/AppContainer.module.css.js +20 -10
  8. package/dist/components/AppContainer/components/AppsSidebar/DesktopUpdateButton.d.ts +6 -0
  9. package/dist/components/AppContainer/components/AppsSidebar/DesktopUpdateButton.d.ts.map +1 -0
  10. package/dist/components/AppContainer/components/AppsSidebar/DesktopUpdateButton.js +161 -0
  11. package/dist/components/AppContainer/components/AppsSidebar/TopSection.d.ts.map +1 -1
  12. package/dist/components/AppContainer/components/AppsSidebar/TopSection.js +77 -49
  13. package/dist/components/AppContainer/components/AppsSidebar/UserSection.d.ts.map +1 -1
  14. package/dist/components/AppContainer/components/AppsSidebar/UserSection.js +238 -105
  15. package/dist/components/AppContainer/components/Main.js +4 -4
  16. package/dist/components/AppContainer/components/NavbarContent.d.ts.map +1 -1
  17. package/dist/components/AppContainer/components/NavbarContent.js +16 -2
  18. package/dist/components/AppContainer/components/SlideAnimation.js +4 -4
  19. package/dist/components/AppContainer/components/ToolSidebar.d.ts +5 -0
  20. package/dist/components/AppContainer/components/ToolSidebar.d.ts.map +1 -1
  21. package/dist/components/AppContainer/components/ToolSidebar.js +51 -39
  22. package/dist/components/AppContainer/components/menus/HelpMenu/HelpMenu.d.ts +62 -1
  23. package/dist/components/AppContainer/components/menus/HelpMenu/HelpMenu.d.ts.map +1 -1
  24. package/dist/components/AppContainer/components/menus/HelpMenu/HelpMenu.js +1107 -137
  25. package/dist/components/AppContainer/components/menus/HelpMenu/HelpMenu.module.css.js +158 -6
  26. package/dist/components/AppContainer/types.d.ts +12 -0
  27. package/dist/components/AppContainer/types.d.ts.map +1 -1
  28. package/dist/components/AttachmentsPreview/AttachmentsPreview.d.ts +3 -1
  29. package/dist/components/AttachmentsPreview/AttachmentsPreview.d.ts.map +1 -1
  30. package/dist/components/AttachmentsPreview/AttachmentsPreview.js +237 -93
  31. package/dist/components/AttachmentsPreview/AttachmentsPreview.module.css.js +18 -16
  32. package/dist/components/Chat/ChatInput/index.d.ts +13 -1
  33. package/dist/components/Chat/ChatInput/index.d.ts.map +1 -1
  34. package/dist/components/Chat/ChatInput/index.js +264 -164
  35. package/dist/components/Chat/ChatInput/useVoiceRecorder.d.ts +16 -0
  36. package/dist/components/Chat/ChatInput/useVoiceRecorder.d.ts.map +1 -0
  37. package/dist/components/Chat/ChatInput/useVoiceRecorder.js +83 -0
  38. package/dist/components/Chat/ChatMessage/ChatMessage.module.css.js +20 -16
  39. package/dist/components/Chat/ChatMessage/index.d.ts +16 -0
  40. package/dist/components/Chat/ChatMessage/index.d.ts.map +1 -1
  41. package/dist/components/Chat/ChatMessage/index.js +153 -118
  42. package/dist/components/Chat/MessageActions/index.d.ts +2 -0
  43. package/dist/components/Chat/MessageActions/index.d.ts.map +1 -1
  44. package/dist/components/Chat/MessageActions/index.js +189 -50
  45. package/dist/components/Chat/MessageAuthor/index.d.ts +7 -1
  46. package/dist/components/Chat/MessageAuthor/index.d.ts.map +1 -1
  47. package/dist/components/Chat/MessageAuthor/index.js +39 -25
  48. package/dist/components/Chat/MessageList/MessageList.module.css.js +14 -12
  49. package/dist/components/Chat/MessageList/index.d.ts +17 -25
  50. package/dist/components/Chat/MessageList/index.d.ts.map +1 -1
  51. package/dist/components/Chat/MessageList/index.js +201 -149
  52. package/dist/components/Chat/MessageMeta/index.d.ts.map +1 -1
  53. package/dist/components/Chat/MessageMeta/index.js +21 -19
  54. package/dist/components/ColorPicker/ColorPicker.d.ts +3 -0
  55. package/dist/components/ColorPicker/ColorPicker.d.ts.map +1 -1
  56. package/dist/components/ColorPicker/ColorPicker.js +81 -76
  57. package/dist/components/ColorPicker/ColorPickerToolbar.d.ts +1 -0
  58. package/dist/components/ColorPicker/ColorPickerToolbar.d.ts.map +1 -1
  59. package/dist/components/ColorPicker/ColorPickerToolbar.js +97 -91
  60. package/dist/components/CommentComposer/CommentEditorHotkeys.d.ts +2 -1
  61. package/dist/components/CommentComposer/CommentEditorHotkeys.d.ts.map +1 -1
  62. package/dist/components/CommentComposer/CommentEditorHotkeys.js +29 -26
  63. package/dist/components/CommentComposer/index.d.ts +1 -1
  64. package/dist/components/CommentComposer/index.d.ts.map +1 -1
  65. package/dist/components/CommentComposer/index.js +70 -68
  66. package/dist/components/CommentComposer/types.d.ts +6 -0
  67. package/dist/components/CommentComposer/types.d.ts.map +1 -1
  68. package/dist/components/CustomKBD/index.js +21 -22
  69. package/dist/components/EmojiPicker/EmojiPicker.d.ts +1 -0
  70. package/dist/components/EmojiPicker/EmojiPicker.d.ts.map +1 -1
  71. package/dist/components/EmojiPicker/EmojiPicker.js +129 -121
  72. package/dist/components/EntityTitle/EntityTitle.d.ts +3 -4
  73. package/dist/components/EntityTitle/EntityTitle.d.ts.map +1 -1
  74. package/dist/components/EntityTitle/EntityTitle.js +81 -80
  75. package/dist/components/FormViewer/helpers/conditions.d.ts.map +1 -1
  76. package/dist/components/FormViewer/helpers/conditions.js +33 -17
  77. package/dist/components/IntegrationFlowAnimation/IntegrationFlowAnimation.d.ts +3 -1
  78. package/dist/components/IntegrationFlowAnimation/IntegrationFlowAnimation.d.ts.map +1 -1
  79. package/dist/components/IntegrationFlowAnimation/IntegrationFlowAnimation.js +26 -25
  80. package/dist/components/NewToolbar/utils.d.ts +12 -0
  81. package/dist/components/NewToolbar/utils.d.ts.map +1 -0
  82. package/dist/components/Notification/InfiniteScroll.d.ts +12 -0
  83. package/dist/components/Notification/InfiniteScroll.d.ts.map +1 -0
  84. package/dist/components/Notification/InfiniteScroll.js +42 -0
  85. package/dist/components/Notification/Notification.d.ts +4 -1
  86. package/dist/components/Notification/Notification.d.ts.map +1 -1
  87. package/dist/components/Notification/Notification.module.css.js +28 -4
  88. package/dist/components/Notification/atoms/ActionBadge.d.ts +11 -0
  89. package/dist/components/Notification/atoms/ActionBadge.d.ts.map +1 -0
  90. package/dist/components/Notification/atoms/ActionBadge.js +53 -0
  91. package/dist/components/Notification/atoms/ArchiveIcon.d.ts +7 -0
  92. package/dist/components/Notification/atoms/ArchiveIcon.d.ts.map +1 -0
  93. package/dist/components/Notification/atoms/ArchiveIcon.js +40 -0
  94. package/dist/components/Notification/atoms/InboxIcon.d.ts +7 -0
  95. package/dist/components/Notification/atoms/InboxIcon.d.ts.map +1 -0
  96. package/dist/components/Notification/atoms/InboxIcon.js +33 -0
  97. package/dist/components/Notification/atoms/MarkReadIcon.d.ts +7 -0
  98. package/dist/components/Notification/atoms/MarkReadIcon.d.ts.map +1 -0
  99. package/dist/components/Notification/atoms/MarkReadIcon.js +33 -0
  100. package/dist/components/Notification/atoms/ResourceIcon.d.ts +7 -0
  101. package/dist/components/Notification/atoms/ResourceIcon.d.ts.map +1 -0
  102. package/dist/components/Notification/atoms/TabBadge.d.ts +7 -0
  103. package/dist/components/Notification/atoms/TabBadge.d.ts.map +1 -0
  104. package/dist/components/Notification/atoms/TabBadge.js +32 -0
  105. package/dist/components/Notification/atoms/UnreadDot.d.ts +6 -0
  106. package/dist/components/Notification/atoms/UnreadDot.d.ts.map +1 -0
  107. package/dist/components/Notification/atoms/UnreadDot.js +23 -0
  108. package/dist/components/Notification/atoms/index.d.ts +5 -0
  109. package/dist/components/Notification/atoms/index.d.ts.map +1 -0
  110. package/dist/components/Notification/hooks/index.d.ts +8 -0
  111. package/dist/components/Notification/hooks/index.d.ts.map +1 -0
  112. package/dist/components/Notification/hooks/useInboxActions.d.ts +12 -0
  113. package/dist/components/Notification/hooks/useInboxActions.d.ts.map +1 -0
  114. package/dist/components/Notification/hooks/useInboxActions.js +58 -0
  115. package/dist/components/Notification/hooks/useInboxLoader.d.ts +8 -0
  116. package/dist/components/Notification/hooks/useInboxLoader.d.ts.map +1 -0
  117. package/dist/components/Notification/hooks/useInboxLoader.js +49 -0
  118. package/dist/components/Notification/hooks/useNotificationItem.d.ts +26 -0
  119. package/dist/components/Notification/hooks/useNotificationItem.d.ts.map +1 -0
  120. package/dist/components/Notification/hooks/useNotificationItem.js +51 -0
  121. package/dist/components/Notification/hooks/useNotificationStore.d.ts +49 -0
  122. package/dist/components/Notification/hooks/useNotificationStore.d.ts.map +1 -0
  123. package/dist/components/Notification/hooks/useNotificationStore.js +139 -0
  124. package/dist/components/Notification/hooks/useNotificationStream.d.ts +2 -0
  125. package/dist/components/Notification/hooks/useNotificationStream.d.ts.map +1 -0
  126. package/dist/components/Notification/hooks/useNotificationStream.js +86 -0
  127. package/dist/components/Notification/hooks/useNotificationTime.d.ts +2 -0
  128. package/dist/components/Notification/hooks/useNotificationTime.d.ts.map +1 -0
  129. package/dist/components/Notification/hooks/useNotificationTime.js +23 -0
  130. package/dist/components/Notification/hooks/useNotificationsApi.d.ts +25 -0
  131. package/dist/components/Notification/hooks/useNotificationsApi.d.ts.map +1 -0
  132. package/dist/components/Notification/hooks/useNotificationsApi.js +64 -0
  133. package/dist/components/Notification/lib/api.d.ts +4 -0
  134. package/dist/components/Notification/lib/api.d.ts.map +1 -0
  135. package/dist/components/Notification/lib/api.js +19 -0
  136. package/dist/components/Notification/lib/index.d.ts +5 -0
  137. package/dist/components/Notification/lib/index.d.ts.map +1 -0
  138. package/dist/components/Notification/lib/notificationText.d.ts +10 -0
  139. package/dist/components/Notification/lib/notificationText.d.ts.map +1 -0
  140. package/dist/components/Notification/lib/notificationText.js +131 -0
  141. package/dist/components/Notification/lib/stripHtml.d.ts +2 -0
  142. package/dist/components/Notification/lib/stripHtml.d.ts.map +1 -0
  143. package/dist/components/Notification/lib/stripHtml.js +6 -0
  144. package/dist/components/Notification/lib/types.d.ts +45 -0
  145. package/dist/components/Notification/lib/types.d.ts.map +1 -0
  146. package/dist/components/Notification/lib/types.js +9 -0
  147. package/dist/components/Notification/molecules/InboxEmpty.d.ts +8 -0
  148. package/dist/components/Notification/molecules/InboxEmpty.d.ts.map +1 -0
  149. package/dist/components/Notification/molecules/InboxEmpty.js +21 -0
  150. package/dist/components/Notification/molecules/InboxHeader.d.ts +17 -0
  151. package/dist/components/Notification/molecules/InboxHeader.d.ts.map +1 -0
  152. package/dist/components/Notification/molecules/InboxHeader.js +73 -0
  153. package/dist/components/Notification/molecules/InboxTabs.d.ts +15 -0
  154. package/dist/components/Notification/molecules/InboxTabs.d.ts.map +1 -0
  155. package/dist/components/Notification/molecules/InboxTabs.js +60 -0
  156. package/dist/components/Notification/molecules/NotificationActions.d.ts +9 -0
  157. package/dist/components/Notification/molecules/NotificationActions.d.ts.map +1 -0
  158. package/dist/components/Notification/molecules/NotificationActions.js +64 -0
  159. package/dist/components/Notification/molecules/NotificationAvatar.d.ts +17 -0
  160. package/dist/components/Notification/molecules/NotificationAvatar.d.ts.map +1 -0
  161. package/dist/components/Notification/molecules/NotificationAvatar.js +38 -0
  162. package/dist/components/Notification/molecules/NotificationContent.d.ts +22 -0
  163. package/dist/components/Notification/molecules/NotificationContent.d.ts.map +1 -0
  164. package/dist/components/Notification/molecules/NotificationContent.js +183 -0
  165. package/dist/components/Notification/molecules/index.d.ts +7 -0
  166. package/dist/components/Notification/molecules/index.d.ts.map +1 -0
  167. package/dist/components/Notification/organisms/InboxItem.d.ts +14 -0
  168. package/dist/components/Notification/organisms/InboxItem.d.ts.map +1 -0
  169. package/dist/components/Notification/organisms/InboxItem.js +100 -0
  170. package/dist/components/Notification/organisms/InboxPanel.d.ts +4 -0
  171. package/dist/components/Notification/organisms/InboxPanel.d.ts.map +1 -0
  172. package/dist/components/Notification/organisms/InboxPanel.js +99 -0
  173. package/dist/components/Notification/organisms/index.d.ts +3 -0
  174. package/dist/components/Notification/organisms/index.d.ts.map +1 -0
  175. package/dist/components/OnboardingTour/index.d.ts +1 -1
  176. package/dist/components/OnboardingTour/index.d.ts.map +1 -1
  177. package/dist/components/OnboardingTour/useOnboardingTour.d.ts +2 -0
  178. package/dist/components/OnboardingTour/useOnboardingTour.d.ts.map +1 -1
  179. package/dist/components/OnboardingTour/useOnboardingTour.js +63 -51
  180. package/dist/components/modals/RemoveConfirmModal.d.ts.map +1 -1
  181. package/dist/components/modals/RemoveConfirmModal.js +27 -26
  182. package/dist/config/brand.d.ts.map +1 -1
  183. package/dist/config/brand.js +29 -29
  184. package/dist/config/envConfig.d.ts +4 -0
  185. package/dist/config/envConfig.d.ts.map +1 -1
  186. package/dist/config/envConfig.js +29 -28
  187. package/dist/helpers/getFileIcons.js +5 -5
  188. package/dist/helpers/getFileType.d.ts.map +1 -1
  189. package/dist/helpers/getFileType.js +11 -2
  190. package/dist/helpers/platform.d.ts +1 -1
  191. package/dist/helpers/platform.d.ts.map +1 -1
  192. package/dist/helpers/platform.js +1 -0
  193. package/dist/helpers/showNotifications.d.ts +8 -14
  194. package/dist/helpers/showNotifications.d.ts.map +1 -1
  195. package/dist/helpers/showNotifications.js +107 -111
  196. package/dist/helpers/showNotifications.module.css.js +4 -16
  197. package/dist/hooks/useDateUtils.d.ts.map +1 -1
  198. package/dist/hooks/useDateUtils.js +19 -23
  199. package/dist/index.css +1 -1
  200. package/dist/index.js +576 -573
  201. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/Audio.context.js +15 -0
  202. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/Audio.js +228 -0
  203. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/Audio.module.css.js +4 -0
  204. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioControls.js +19 -0
  205. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioMuteButton.js +30 -0
  206. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioPlayButton.js +40 -0
  207. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioSkipButton.js +28 -0
  208. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioSpectrum.js +137 -0
  209. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioSpeedControl.js +31 -0
  210. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioTimeDisplay.js +44 -0
  211. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioTimeline.js +71 -0
  212. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioVolumeSlider.js +43 -0
  213. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/components/AudioWaveform.js +166 -0
  214. package/dist/node_modules/@gfazioli/mantine-audio/dist/esm/use-audio.js +201 -0
  215. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/Video.context.js +15 -0
  216. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/Video.js +272 -0
  217. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/Video.module.css.js +4 -0
  218. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoCaptionsButton.js +55 -0
  219. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoControls.js +30 -0
  220. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoFullscreenButton.js +31 -0
  221. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoMuteButton.js +29 -0
  222. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoPiPButton.js +29 -0
  223. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoPlayButton.js +28 -0
  224. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoSkipButton.js +27 -0
  225. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoTimeDisplay.js +44 -0
  226. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/components/VideoTimeline.js +70 -0
  227. package/dist/node_modules/@gfazioli/mantine-video/dist/esm/use-video.js +170 -0
  228. package/package.json +5 -3
  229. package/dist/components/Notification/Notification.js +0 -119
  230. package/dist/components/Notification/NotificationCard.d.ts +0 -10
  231. package/dist/components/Notification/NotificationCard.d.ts.map +0 -1
  232. package/dist/components/Notification/NotificationCard.js +0 -93
@@ -1,80 +1,108 @@
1
- import { jsxs as s, jsx as i } from "react/jsx-runtime";
2
- import { useTranslation as u } from "react-i18next";
3
- import { Search01Icon as b, Notification02Icon as g } from "@hugeicons/core-free-icons";
4
- import { HugeiconsIcon as p } from "@hugeicons/react";
5
- import { Stack as w, ActionIcon as k, Tooltip as a, Menu as n } from "@mantine/core";
6
- import { isFeature as v } from "../../../../helpers/feature.js";
7
- import { openSearchModal as y } from "../../../../store/searchModal.js";
8
- import { Notification as A } from "../../../Notification/Notification.js";
9
- import { WorkspaceAvatar as l } from "../../../WorkspaceAvatar/WorkspaceAvatar.js";
10
- import { WorkspaceMenu as S } from "../../../WorkspaceMenu/WorkspaceMenu.js";
11
- import { useAppContainerDataStore as z } from "../../hooks/useAppContainerDataStore.js";
12
- import { AppSidebarButton as m } from "../AppSidebarButton.js";
13
- const H = ({
14
- showSearch: d = !0,
15
- showLogo: h = !1
1
+ import { jsxs as l, jsx as o } from "react/jsx-runtime";
2
+ import { useState as v } from "react";
3
+ import { useTranslation as k } from "react-i18next";
4
+ import { Search01Icon as I } from "@hugeicons/core-free-icons";
5
+ import { HugeiconsIcon as S } from "@hugeicons/react";
6
+ import { Stack as x, ActionIcon as A, Tooltip as a, Menu as s, Indicator as y } from "@mantine/core";
7
+ import { openSearchModal as z } from "../../../../store/searchModal.js";
8
+ import { InboxIcon as C } from "../../../Notification/atoms/InboxIcon.js";
9
+ import { useNotificationStore as M } from "../../../Notification/hooks/useNotificationStore.js";
10
+ import { useNotificationStream as N } from "../../../Notification/hooks/useNotificationStream.js";
11
+ import { WorkspaceAvatar as p } from "../../../WorkspaceAvatar/WorkspaceAvatar.js";
12
+ import { WorkspaceMenu as D } from "../../../WorkspaceMenu/WorkspaceMenu.js";
13
+ import { useAppContainerDataStore as T } from "../../hooks/useAppContainerDataStore.js";
14
+ import { AppSidebarButton as d } from "../AppSidebarButton.js";
15
+ import { InboxPanel as W } from "../../../Notification/organisms/InboxPanel.js";
16
+ const X = ({
17
+ showSearch: m = !0,
18
+ showLogo: f = !1
16
19
  }) => {
17
- const { t: o } = u("appContainer"), { workspaceMenu: r, isAnonym: t, publicMode: c, navbarDisplayFormat: f } = z(), e = f === "iconsAndLabels";
18
- return /* @__PURE__ */ s(w, { gap: 8, align: "center", pb: 8, children: [
19
- h ? /* @__PURE__ */ i(l, { size: 36 }) : /* @__PURE__ */ i(
20
- S,
20
+ const { t: i } = k("appContainer"), { workspaceMenu: e, isAnonym: t, publicMode: r, navbarDisplayFormat: h } = T(), u = M((g) => g.unreadCounts.all), b = e?.active?.workspaceId;
21
+ N(!t && !r, b);
22
+ const [w, c] = v(!1), n = h === "iconsAndLabels";
23
+ return /* @__PURE__ */ l(x, { gap: 8, align: "center", pb: 8, children: [
24
+ f ? /* @__PURE__ */ o(p, { size: 36 }) : /* @__PURE__ */ o(
25
+ D,
21
26
  {
22
- ...r,
27
+ ...e,
23
28
  isAnonym: t,
24
- publicMode: c,
25
- children: /* @__PURE__ */ i(
26
- k,
29
+ publicMode: r,
30
+ children: /* @__PURE__ */ o(
31
+ A,
27
32
  {
28
33
  "data-cy": "workspace-menu-trigger",
29
34
  "data-testid": "workspace-menu-trigger",
30
35
  size: "lg",
31
36
  variant: "transparent",
32
37
  style: { overflow: "visible" },
33
- children: /* @__PURE__ */ i(
38
+ children: /* @__PURE__ */ o(
34
39
  a,
35
40
  {
36
- label: r.active?.workspaceName,
37
- disabled: !r.active?.workspaceName,
41
+ label: e.active?.workspaceName,
42
+ disabled: !e.active?.workspaceName,
38
43
  openDelay: 400,
39
44
  position: "right",
40
45
  withArrow: !0,
41
- children: /* @__PURE__ */ i(l, { workspace: r.active, size: 36 })
46
+ children: /* @__PURE__ */ o(p, { workspace: e.active, size: 36 })
42
47
  }
43
48
  )
44
49
  }
45
50
  )
46
51
  }
47
52
  ),
48
- d && !t && !c && /* @__PURE__ */ i(a, { label: o("search"), position: "right", disabled: e, children: /* @__PURE__ */ i(
49
- m,
53
+ m && !t && !r && /* @__PURE__ */ o(a, { label: i("search"), position: "right", disabled: n, children: /* @__PURE__ */ o(
54
+ d,
50
55
  {
51
- title: e ? o("search") : null,
52
- icon: /* @__PURE__ */ i(p, { icon: b, size: 20 }),
56
+ title: n ? i("search") : null,
57
+ icon: /* @__PURE__ */ o(S, { icon: I, size: 20 }),
53
58
  onClick: () => {
54
- y();
59
+ z();
55
60
  }
56
61
  }
57
62
  ) }),
58
- v() && !t && /* @__PURE__ */ s(n, { position: "right-start", children: [
59
- /* @__PURE__ */ i(n.Target, { children: /* @__PURE__ */ i(
60
- a,
61
- {
62
- label: o("activity"),
63
- position: "right",
64
- disabled: e,
65
- children: /* @__PURE__ */ i(
66
- m,
63
+ !t && !r && /* @__PURE__ */ l(
64
+ s,
65
+ {
66
+ position: "right",
67
+ shadow: "md",
68
+ radius: "md",
69
+ offset: 6,
70
+ middlewares: { shift: !0, flip: !1 },
71
+ opened: w,
72
+ onChange: c,
73
+ children: [
74
+ /* @__PURE__ */ o(s.Target, { children: /* @__PURE__ */ o(
75
+ a,
67
76
  {
68
- title: e ? o("activity") : null,
69
- icon: /* @__PURE__ */ i(p, { icon: g, size: 20 })
77
+ label: i("activity"),
78
+ position: "right",
79
+ disabled: n,
80
+ children: /* @__PURE__ */ o(
81
+ d,
82
+ {
83
+ title: n ? i("activity") : null,
84
+ icon: /* @__PURE__ */ o(
85
+ y,
86
+ {
87
+ size: 8,
88
+ offset: 1,
89
+ position: "top-end",
90
+ zIndex: 1,
91
+ withBorder: !0,
92
+ disabled: u === 0,
93
+ children: /* @__PURE__ */ o(C, { size: 20 })
94
+ }
95
+ )
96
+ }
97
+ )
70
98
  }
71
- )
72
- }
73
- ) }),
74
- /* @__PURE__ */ i(n.Dropdown, { px: 4, py: 0, w: 440, children: /* @__PURE__ */ i(A, {}) })
75
- ] })
99
+ ) }),
100
+ /* @__PURE__ */ o(s.Dropdown, { w: 440, h: 565, p: 0, children: /* @__PURE__ */ o(W, { onNavigate: () => c(!1) }) })
101
+ ]
102
+ }
103
+ )
76
104
  ] });
77
105
  };
78
106
  export {
79
- H as TopSection
107
+ X as TopSection
80
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UserSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/AppContainer/components/AppsSidebar/UserSection.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,WAAW,GAAI,4CAIzB;IACD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,4CAoHA,CAAC"}
1
+ {"version":3,"file":"UserSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/AppContainer/components/AppsSidebar/UserSection.tsx"],"names":[],"mappings":"AA4CA,eAAO,MAAM,WAAW,GAAI,4CAIzB;IACD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,4CAmPA,CAAC"}
@@ -1,114 +1,247 @@
1
- import { jsxs as n, jsx as o } from "react/jsx-runtime";
2
- import { useTranslation as M } from "react-i18next";
3
- import { Link as x } from "react-router-dom";
4
- import { Delete03Icon as A, UserAdd02Icon as D, HelpCircleIcon as z } from "@hugeicons/core-free-icons";
5
- import { HugeiconsIcon as a } from "@hugeicons/react";
6
- import { Stack as c, Menu as r, Tooltip as s, ActionIcon as C } from "@mantine/core";
7
- import { IconUserCircle as U } from "@tabler/icons-react";
8
- import { usePlatform as L } from "../../../../hooks/usePlatform.js";
9
- import { useTrashModalStore as j, openTrashModal as H, closeTrashModal as k } from "../../../../store/trashModal.js";
10
- import { useAppContainerDataStore as B } from "../../hooks/useAppContainerDataStore.js";
11
- import F from "../../AppContainer.module.css.js";
12
- import { AppSidebarButton as p } from "../AppSidebarButton.js";
13
- import { HelpMenu as G } from "../menus/HelpMenu/HelpMenu.js";
14
- import { MenuUserDropdown as N } from "../menus/UserMenu/MenuUserDropdown.js";
15
- const $ = ({
16
- trashMenu: d,
17
- onInviteClick: h,
18
- showBorders: S = !0
1
+ import { jsx as e, jsxs as n, Fragment as v } from "react/jsx-runtime";
2
+ import { useState as i, useMemo as q, useCallback as H } from "react";
3
+ import { useTranslation as J } from "react-i18next";
4
+ import { Link as Q } from "react-router-dom";
5
+ import { HelpCircleIcon as V, Delete03Icon as X, UserAdd02Icon as Z } from "@hugeicons/core-free-icons";
6
+ import { HugeiconsIcon as g } from "@hugeicons/react";
7
+ import { Tooltip as a, Stack as C, Menu as o, ActionIcon as $ } from "@mantine/core";
8
+ import { IconUserCircle as ee } from "@tabler/icons-react";
9
+ import { usePlatform as oe } from "../../../../hooks/usePlatform.js";
10
+ import { useTrashModalStore as te, openTrashModal as ne, closeTrashModal as re } from "../../../../store/trashModal.js";
11
+ import { useAppContainerDataStore as se } from "../../hooks/useAppContainerDataStore.js";
12
+ import { AppSidebarButton as T } from "../AppSidebarButton.js";
13
+ import { HelpMenu as y, DesktopSupportReportModal as ie, DesktopDiagnosticsConsentModal as le, DesktopUpdateFlowModal as pe } from "../menus/HelpMenu/HelpMenu.js";
14
+ import { MenuUserDropdown as de } from "../menus/UserMenu/MenuUserDropdown.js";
15
+ import { DesktopUpdateButton as ae } from "./DesktopUpdateButton.js";
16
+ import ce from "../../AppContainer.module.css.js";
17
+ import I from "../menus/HelpMenu/HelpMenu.module.css.js";
18
+ import { isOnboardingCompleted as he } from "../../../OnboardingTour/useOnboardingTour.js";
19
+ import { OnboardingTourWrapper as ue } from "../../../OnboardingTour/OnboardingTourWrapper.js";
20
+ const me = [
21
+ "desktop-help-report-tour-v2-1",
22
+ "desktop-help-report-tour-v2-2"
23
+ ], k = "desktop-help-report-entry", Ee = ({
24
+ trashMenu: D,
25
+ onInviteClick: b,
26
+ showBorders: x = !0
19
27
  }) => {
20
- const { t: e } = M("appContainer"), w = L(), {
21
- user: m,
22
- isAnonym: t,
23
- userMenuItems: T,
24
- publicMode: f,
25
- navbarDisplayFormat: v,
26
- syncStatusSlot: u
27
- } = B(), y = j((l) => l.opened), g = !t && !f && m.role !== "mG" && d, b = !t && w.has("inviteUsers") && h, i = v === "iconsAndLabels", I = !t && !f && u;
28
- return /* @__PURE__ */ n(
29
- c,
28
+ const { t } = J("appContainer"), p = oe(), [E, c] = i(!1), [_, h] = i(!1), [u, A] = i(!1), [K, R] = i(!1), [L, m] = i(!1), [z, j] = i(!1), {
29
+ user: f,
30
+ isAnonym: s,
31
+ userMenuItems: B,
32
+ publicMode: d,
33
+ navbarDisplayFormat: F,
34
+ syncStatusSlot: w
35
+ } = se(), N = te((l) => l.opened), M = !s && !d && f.role !== "mG" && D, O = !s && p.has("inviteUsers") && b, r = F === "iconsAndLabels", G = !s && !d && w, W = q(() => !p.isDesktop || s || d ? null : me.find(
36
+ (l) => !he(l)
37
+ ) ?? null, [s, p.isDesktop, d, f.id]), S = z ? null : W, U = /* @__PURE__ */ e(a, { label: t("help"), position: "right", disabled: r, children: /* @__PURE__ */ e(
38
+ T,
30
39
  {
31
- style: {
32
- borderTop: S ? "1px solid var(--app-shell-border)" : void 0
33
- },
34
- flex: 1,
35
- pt: 8,
36
- gap: 16,
37
- align: "center",
38
- children: [
39
- /* @__PURE__ */ n(
40
- c,
41
- {
42
- justify: !g && !b ? "end" : "space-between",
43
- gap: 8,
44
- flex: 1,
45
- children: [
46
- g && /* @__PURE__ */ n(
47
- r,
48
- {
49
- position: "right",
50
- offset: 6,
51
- width: 360,
52
- opened: y,
53
- onChange: (l) => {
54
- l ? H() : k();
55
- },
56
- children: [
57
- /* @__PURE__ */ o(r.Target, { children: /* @__PURE__ */ o(
58
- s,
59
- {
60
- label: e("trash"),
61
- position: "right",
62
- disabled: i,
63
- children: /* @__PURE__ */ o(
64
- p,
65
- {
66
- title: i ? e("trash") : null,
67
- icon: /* @__PURE__ */ o(a, { icon: A, size: 20 })
68
- }
69
- )
70
- }
71
- ) }),
72
- /* @__PURE__ */ o(r.Dropdown, { children: d })
73
- ]
74
- }
75
- ),
76
- /* @__PURE__ */ n(c, { gap: 8, children: [
77
- b && /* @__PURE__ */ o(s, { label: e("invite"), position: "right", disabled: i, children: /* @__PURE__ */ o(
78
- p,
40
+ title: r ? t("help") : null,
41
+ icon: /* @__PURE__ */ e(g, { icon: V, size: 20 })
42
+ }
43
+ ) }), P = H(() => {
44
+ R(!0);
45
+ }, []), Y = H(() => {
46
+ j(!0), m(!0);
47
+ }, []);
48
+ return /* @__PURE__ */ n(v, { children: [
49
+ /* @__PURE__ */ n(
50
+ C,
51
+ {
52
+ style: {
53
+ borderTop: x ? "1px solid var(--app-shell-border)" : void 0
54
+ },
55
+ flex: 1,
56
+ pt: 8,
57
+ gap: 16,
58
+ align: "center",
59
+ children: [
60
+ /* @__PURE__ */ n(
61
+ C,
62
+ {
63
+ justify: !M && !O ? "end" : "space-between",
64
+ gap: 8,
65
+ flex: 1,
66
+ children: [
67
+ M && /* @__PURE__ */ n(
68
+ o,
79
69
  {
80
- title: i ? e("invite") : null,
81
- icon: /* @__PURE__ */ o(a, { icon: D, size: 20 }),
82
- onClick: h
70
+ position: "right",
71
+ offset: 6,
72
+ width: 360,
73
+ opened: N,
74
+ onChange: (l) => {
75
+ l ? ne() : re();
76
+ },
77
+ children: [
78
+ /* @__PURE__ */ e(o.Target, { children: /* @__PURE__ */ e(
79
+ a,
80
+ {
81
+ label: t("trash"),
82
+ position: "right",
83
+ disabled: r,
84
+ children: /* @__PURE__ */ e(
85
+ T,
86
+ {
87
+ title: r ? t("trash") : null,
88
+ icon: /* @__PURE__ */ e(g, { icon: X, size: 20 })
89
+ }
90
+ )
91
+ }
92
+ ) }),
93
+ /* @__PURE__ */ e(o.Dropdown, { children: D })
94
+ ]
83
95
  }
84
- ) }),
85
- /* @__PURE__ */ n(r, { position: "right-end", offset: 6, width: 260, children: [
86
- /* @__PURE__ */ o(r.Target, { children: /* @__PURE__ */ o(s, { label: e("help"), position: "right", disabled: i, children: /* @__PURE__ */ o(
87
- p,
96
+ ),
97
+ /* @__PURE__ */ n(C, { gap: 8, children: [
98
+ O && /* @__PURE__ */ e(
99
+ a,
88
100
  {
89
- title: i ? e("help") : null,
90
- icon: /* @__PURE__ */ o(a, { icon: z, size: 20 })
101
+ label: t("invite"),
102
+ position: "right",
103
+ disabled: r,
104
+ children: /* @__PURE__ */ e(
105
+ T,
106
+ {
107
+ title: r ? t("invite") : null,
108
+ icon: /* @__PURE__ */ e(g, { icon: Z, size: 20 }),
109
+ onClick: b
110
+ }
111
+ )
91
112
  }
92
- ) }) }),
93
- /* @__PURE__ */ o(r.Dropdown, { children: /* @__PURE__ */ o(G, {}) })
94
- ] }),
95
- I && /* @__PURE__ */ o("div", { className: F.sidebarSyncStatus, children: u })
96
- ] })
97
- ]
98
- }
99
- ),
100
- t ? /* @__PURE__ */ o(x, { to: "/login", children: /* @__PURE__ */ o(s, { label: "Log in", position: "right", children: /* @__PURE__ */ o(C, { size: "lg", variant: "light", children: /* @__PURE__ */ o(U, { size: 20 }) }) }) }) : /* @__PURE__ */ o(
101
- N,
102
- {
103
- user: m,
104
- menuItems: T,
105
- position: "right-end"
106
- }
107
- )
108
- ]
109
- }
110
- );
113
+ ),
114
+ S ? /* @__PURE__ */ e(
115
+ ue,
116
+ {
117
+ featureKey: S,
118
+ onComplete: Y,
119
+ tour: [
120
+ {
121
+ id: k,
122
+ title: t("desktopHelpReportTour.title"),
123
+ content: t("desktopHelpReportTour.content"),
124
+ focusRevealProps: {
125
+ popoverProps: {
126
+ position: "right",
127
+ offset: 10,
128
+ middlewares: {
129
+ flip: !1,
130
+ shift: !0
131
+ }
132
+ }
133
+ }
134
+ }
135
+ ],
136
+ children: /* @__PURE__ */ n(
137
+ o,
138
+ {
139
+ position: "right-end",
140
+ offset: 6,
141
+ width: 264,
142
+ shadow: "xl",
143
+ radius: 12,
144
+ opened: !0,
145
+ onChange: m,
146
+ children: [
147
+ /* @__PURE__ */ e(o.Target, { children: U }),
148
+ /* @__PURE__ */ e(
149
+ o.Dropdown,
150
+ {
151
+ className: I.helpMenuDropdown,
152
+ p: 0,
153
+ children: /* @__PURE__ */ e(
154
+ y,
155
+ {
156
+ onReportProblemClick: () => c(!0),
157
+ onCheckUpdatesClick: P,
158
+ onCollectDiagnosticsClick: () => h(!0),
159
+ diagnosticsCollecting: u,
160
+ reportProblemTourTargetId: k
161
+ }
162
+ )
163
+ }
164
+ )
165
+ ]
166
+ }
167
+ )
168
+ }
169
+ ) : /* @__PURE__ */ n(
170
+ o,
171
+ {
172
+ position: "right-end",
173
+ offset: 6,
174
+ width: 264,
175
+ shadow: "xl",
176
+ radius: 12,
177
+ opened: L,
178
+ onChange: m,
179
+ children: [
180
+ /* @__PURE__ */ e(o.Target, { children: U }),
181
+ /* @__PURE__ */ e(
182
+ o.Dropdown,
183
+ {
184
+ className: I.helpMenuDropdown,
185
+ p: 0,
186
+ children: /* @__PURE__ */ e(
187
+ y,
188
+ {
189
+ onReportProblemClick: () => c(!0),
190
+ onCheckUpdatesClick: P,
191
+ onCollectDiagnosticsClick: () => h(!0),
192
+ diagnosticsCollecting: u,
193
+ reportProblemTourTargetId: k
194
+ }
195
+ )
196
+ }
197
+ )
198
+ ]
199
+ }
200
+ ),
201
+ G && /* @__PURE__ */ e("div", { className: ce.sidebarSyncStatus, children: w })
202
+ ] })
203
+ ]
204
+ }
205
+ ),
206
+ /* @__PURE__ */ e(ae, { showLabels: r }),
207
+ s ? /* @__PURE__ */ e(Q, { to: "/login", children: /* @__PURE__ */ e(a, { label: "Log in", position: "right", children: /* @__PURE__ */ e($, { size: "lg", variant: "light", children: /* @__PURE__ */ e(ee, { size: 20 }) }) }) }) : /* @__PURE__ */ e(
208
+ de,
209
+ {
210
+ user: f,
211
+ menuItems: B,
212
+ position: "right-end"
213
+ }
214
+ )
215
+ ]
216
+ }
217
+ ),
218
+ p.isDesktop && /* @__PURE__ */ n(v, { children: [
219
+ /* @__PURE__ */ e(
220
+ ie,
221
+ {
222
+ opened: E,
223
+ onClose: () => c(!1)
224
+ }
225
+ ),
226
+ /* @__PURE__ */ e(
227
+ le,
228
+ {
229
+ opened: _,
230
+ onClose: () => h(!1),
231
+ collecting: u,
232
+ onCollectingChange: A
233
+ }
234
+ ),
235
+ /* @__PURE__ */ e(
236
+ pe,
237
+ {
238
+ opened: K,
239
+ onClose: () => R(!1)
240
+ }
241
+ )
242
+ ] })
243
+ ] });
111
244
  };
112
245
  export {
113
- $ as UserSection
246
+ Ee as UserSection
114
247
  };
@@ -1,16 +1,16 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
2
  import { appContainerStore as n } from "../hooks/useAppContainerStore.js";
3
3
  import s from "../AppContainer.module.css.js";
4
- const p = ({ children: o, withBg: r = !1 }) => {
5
- const a = n.useStore((t) => t.showToolbar);
4
+ const p = ({ children: o, withBg: a = !1 }) => {
5
+ const r = n.useStore((t) => t.showToolbar);
6
6
  return /* @__PURE__ */ e(
7
7
  "main",
8
8
  {
9
9
  className: s.main,
10
- "data-tool-sidebar-opened": a,
10
+ "data-tool-sidebar-opened": r,
11
11
  "data-app-container": !0,
12
12
  style: {
13
- backgroundColor: r ? "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-5))" : "unset"
13
+ backgroundColor: a ? "light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-5))" : "unset"
14
14
  },
15
15
  children: o
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NavbarContent.d.ts","sourceRoot":"","sources":["../../../../src/components/AppContainer/components/NavbarContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI1C,QAAA,MAAM,aAAa,GAAI,cAAc,iBAAiB,4CAMrD,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"NavbarContent.d.ts","sourceRoot":"","sources":["../../../../src/components/AppContainer/components/NavbarContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI1C,QAAA,MAAM,aAAa,GAAI,cAAc,iBAAiB,4CAkBrD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,6 +1,20 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { ScrollArea as t, Box as l } from "@mantine/core";
3
- const s = ({ children: o }) => /* @__PURE__ */ r(t, { flex: 1, scrollbars: "y", mih: 0, type: "scroll", children: /* @__PURE__ */ r(l, { w: "var(--toolbar-width)", children: o }) });
2
+ import { ScrollArea as o, Box as e } from "@mantine/core";
3
+ const s = ({ children: t }) => /* @__PURE__ */ r(
4
+ o,
5
+ {
6
+ styles: {
7
+ content: {
8
+ height: "100%"
9
+ }
10
+ },
11
+ flex: 1,
12
+ scrollbars: "y",
13
+ mih: 0,
14
+ type: "scroll",
15
+ children: /* @__PURE__ */ r(e, { w: "var(--toolbar-width)", h: "100%", children: t })
16
+ }
17
+ );
4
18
  export {
5
19
  s as default
6
20
  };
@@ -3,13 +3,13 @@ import { useIsFirstRender as a } from "@mantine/hooks";
3
3
  import { AnimatePresence as m, motion as d } from "framer-motion";
4
4
  import t from "../AppContainer.module.css.js";
5
5
  const u = ({
6
- children: n,
7
- show: s,
6
+ children: s,
7
+ show: n,
8
8
  width: e,
9
9
  position: r
10
10
  }) => {
11
11
  const o = a();
12
- return /* @__PURE__ */ i(m, { children: s && /* @__PURE__ */ i(
12
+ return /* @__PURE__ */ i(m, { children: n && /* @__PURE__ */ i(
13
13
  d.div,
14
14
  {
15
15
  className: t.slideContainer,
@@ -32,7 +32,7 @@ const u = ({
32
32
  className: t.slideContent,
33
33
  style: { width: e },
34
34
  "data-position": r,
35
- children: n
35
+ children: s
36
36
  }
37
37
  )
38
38
  }
@@ -4,6 +4,11 @@ interface ToolSidebarProps extends PropsWithChildren {
4
4
  onTitleChange?: (title?: string) => void;
5
5
  isBeta?: boolean;
6
6
  bottomSlot?: React.ReactNode;
7
+ /** When set, the resizer drives this controlled width instead of the store. */
8
+ widthOverride?: number;
9
+ onWidthChange?: (width: number) => void;
10
+ minWidth?: number;
11
+ maxWidth?: number;
7
12
  }
8
13
  export declare const ToolSidebar: (props: ToolSidebarProps) => import("react/jsx-runtime").JSX.Element;
9
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ToolSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/AppContainer/components/ToolSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,OAAO,CAAC;AAgCtE,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAyLlD,CAAC"}
1
+ {"version":3,"file":"ToolSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/AppContainer/components/ToolSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,OAAO,CAAC;AAgCtE,UAAU,gBAAiB,SAAQ,iBAAiB;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAqMlD,CAAC"}