@liorian/sdk 0.28.0-alpha.56010ca

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 (362) hide show
  1. package/README.md +483 -0
  2. package/package.json +94 -0
  3. package/schemas/module.schema.json +818 -0
  4. package/src/application/index.ts +3 -0
  5. package/src/application/module-instance.ts +36 -0
  6. package/src/application/service/auth-api-service.ts +291 -0
  7. package/src/application/service/auth-user.service.ts +108 -0
  8. package/src/application/service/index.ts +12 -0
  9. package/src/application/service/module-activation-api.service.ts +105 -0
  10. package/src/application/service/notifications-api-service.ts +38 -0
  11. package/src/application/service/notifications-push.service.ts +299 -0
  12. package/src/application/service/notifications-socket-service.ts +76 -0
  13. package/src/application/service/organizations-api-service.ts +104 -0
  14. package/src/application/service/otp-api-service.ts +11 -0
  15. package/src/application/service/storage-api-service.ts +77 -0
  16. package/src/application/service/storefront-api.service.ts +72 -0
  17. package/src/application/service/user-preferences-api.service.ts +57 -0
  18. package/src/domain/config/app.config.ts +35 -0
  19. package/src/domain/config/auth.config.ts +30 -0
  20. package/src/domain/config/index.ts +4 -0
  21. package/src/domain/config/logo.config.ts +17 -0
  22. package/src/domain/entities/activities.interface.ts +18 -0
  23. package/src/domain/entities/catalog.interface.ts +96 -0
  24. package/src/domain/entities/index.ts +13 -0
  25. package/src/domain/entities/media.ts +22 -0
  26. package/src/domain/entities/module-activation.interface.ts +173 -0
  27. package/src/domain/entities/module.interface.ts +101 -0
  28. package/src/domain/entities/notification.interface.ts +23 -0
  29. package/src/domain/entities/objectable.type.ts +3 -0
  30. package/src/domain/entities/organization.interface.ts +81 -0
  31. package/src/domain/entities/user-auth.interface.ts +17 -0
  32. package/src/domain/entities/user-phone.interface.ts +11 -0
  33. package/src/domain/entities/user-profile.interface.ts +23 -0
  34. package/src/domain/entities/user.interface.ts +79 -0
  35. package/src/domain/enums/coloring.enum.ts +6 -0
  36. package/src/domain/enums/domains.enum.ts +282 -0
  37. package/src/domain/enums/index.ts +8 -0
  38. package/src/domain/enums/module-category.enum.ts +57 -0
  39. package/src/domain/enums/module.enum.ts +97 -0
  40. package/src/domain/enums/routine.enum.ts +12 -0
  41. package/src/domain/enums/user-profile.enum.ts +25 -0
  42. package/src/domain/enums/user-status.enum.ts +7 -0
  43. package/src/domain/index.ts +6 -0
  44. package/src/domain/typing/auth-caches.ts +12 -0
  45. package/src/domain/typing/auth-oauth.types.ts +172 -0
  46. package/src/domain/typing/devise.ts +2 -0
  47. package/src/domain/typing/index.ts +10 -0
  48. package/src/domain/typing/response.ts +30 -0
  49. package/src/domain/typing/routine.types.ts +113 -0
  50. package/src/domain/typing/session.interface.ts +28 -0
  51. package/src/domain/typing/statisticals.ts +11 -0
  52. package/src/domain/typing/user-media-upload.ts +9 -0
  53. package/src/domain/typing/values.ts +6 -0
  54. package/src/index.tsx +168 -0
  55. package/src/infrastructure/capabilities/cache-storage/capability.ts +129 -0
  56. package/src/infrastructure/capabilities/cache-storage/enum.ts +5 -0
  57. package/src/infrastructure/capabilities/cache-storage/index.ts +4 -0
  58. package/src/infrastructure/capabilities/cache-storage/types.ts +13 -0
  59. package/src/infrastructure/capabilities/index.ts +3 -0
  60. package/src/infrastructure/capabilities/stackable/capability.ts +55 -0
  61. package/src/infrastructure/capabilities/stackable/index.ts +3 -0
  62. package/src/infrastructure/capabilities/stackable/types.ts +24 -0
  63. package/src/infrastructure/common-classname.constant.ts +4 -0
  64. package/src/infrastructure/data/countries.ts +208 -0
  65. package/src/infrastructure/data/gender.ts +5 -0
  66. package/src/infrastructure/data/index.ts +3 -0
  67. package/src/infrastructure/dataset/index.ts +3 -0
  68. package/src/infrastructure/dataset/sign-in.dataset.ts +21 -0
  69. package/src/infrastructure/dataset/sign-up.dataset.ts +64 -0
  70. package/src/infrastructure/hooks/index.ts +10 -0
  71. package/src/infrastructure/hooks/use-activity-lock-draft.ts +69 -0
  72. package/src/infrastructure/hooks/use-auth.ts +24 -0
  73. package/src/infrastructure/hooks/use-elastic-interaction.ts +180 -0
  74. package/src/infrastructure/hooks/use-is-desktop.ts +25 -0
  75. package/src/infrastructure/hooks/use-is-tauri.ts +17 -0
  76. package/src/infrastructure/hooks/use-mobile.ts +19 -0
  77. package/src/infrastructure/hooks/use-notifications.ts +128 -0
  78. package/src/infrastructure/hooks/use-recent-colors.ts +113 -0
  79. package/src/infrastructure/hooks/use-recent-modules.ts +76 -0
  80. package/src/infrastructure/index.tsx +11 -0
  81. package/src/infrastructure/library/design-system.ts +95 -0
  82. package/src/infrastructure/library/index.tsx +5 -0
  83. package/src/infrastructure/library/motion-utils.ts +77 -0
  84. package/src/infrastructure/library/motion.tsx +31 -0
  85. package/src/infrastructure/library/scroll-progress.tsx +93 -0
  86. package/src/infrastructure/providers/auth-guard.provider.tsx +47 -0
  87. package/src/infrastructure/providers/auth.provider.tsx +168 -0
  88. package/src/infrastructure/providers/index.tsx +8 -0
  89. package/src/infrastructure/providers/module-usage.provider.tsx +95 -0
  90. package/src/infrastructure/providers/modules-guard.provider.tsx +64 -0
  91. package/src/infrastructure/providers/modules-routines.provider.tsx +33 -0
  92. package/src/infrastructure/providers/modules-switcher.provider.tsx +25 -0
  93. package/src/infrastructure/providers/query.provider.tsx +27 -0
  94. package/src/infrastructure/routines/__tests__/routine.test.ts +368 -0
  95. package/src/infrastructure/routines/index.tsx +3 -0
  96. package/src/infrastructure/routines/routine.hook.ts +121 -0
  97. package/src/infrastructure/routines/routine.ts +283 -0
  98. package/src/infrastructure/routines/routine.tsx +283 -0
  99. package/src/infrastructure/stores/activity-lock.store.ts +22 -0
  100. package/src/infrastructure/stores/auth-user-connected.store.ts +24 -0
  101. package/src/infrastructure/stores/dataset.store.ts +106 -0
  102. package/src/infrastructure/stores/index.ts +6 -0
  103. package/src/infrastructure/stores/module.store.ts +266 -0
  104. package/src/infrastructure/stores/upload.store.ts +198 -0
  105. package/src/infrastructure/utilities/access-label.util.ts +158 -0
  106. package/src/infrastructure/utilities/activities.util.tsx +54 -0
  107. package/src/infrastructure/utilities/activity-lock.service.ts +263 -0
  108. package/src/infrastructure/utilities/activity-tracker.service.ts +205 -0
  109. package/src/infrastructure/utilities/api-service.ts +237 -0
  110. package/src/infrastructure/utilities/auth-logout.util.ts +23 -0
  111. package/src/infrastructure/utilities/classname.util.ts +7 -0
  112. package/src/infrastructure/utilities/encryption.service.ts +125 -0
  113. package/src/infrastructure/utilities/form-snapshot.service.ts +304 -0
  114. package/src/infrastructure/utilities/format.util.ts +40 -0
  115. package/src/infrastructure/utilities/index.tsx +23 -0
  116. package/src/infrastructure/utilities/media-label.service.ts +47 -0
  117. package/src/infrastructure/utilities/modules.ts +11 -0
  118. package/src/infrastructure/utilities/permission.util.ts +22 -0
  119. package/src/infrastructure/utilities/push-permission.util.ts +43 -0
  120. package/src/infrastructure/utilities/route-access.ts +38 -0
  121. package/src/infrastructure/utilities/socket-service.ts +123 -0
  122. package/src/infrastructure/utilities/sso-auth.util.ts +188 -0
  123. package/src/infrastructure/utilities/stringable.util.ts +16 -0
  124. package/src/infrastructure/utilities/strings.util.ts +18 -0
  125. package/src/infrastructure/utilities/tauri.util.ts +15 -0
  126. package/src/infrastructure/utilities/utils.ts +6 -0
  127. package/src/infrastructure/utilities/values.ts +5 -0
  128. package/src/presentation/8starlabs-ui/button.tsx +94 -0
  129. package/src/presentation/8starlabs-ui/flip-clock.tsx +368 -0
  130. package/src/presentation/8starlabs-ui/heatmap.tsx +430 -0
  131. package/src/presentation/8starlabs-ui/hooks/index.tsx +2 -0
  132. package/src/presentation/8starlabs-ui/hooks/use-mobile.ts +21 -0
  133. package/src/presentation/8starlabs-ui/index.tsx +20 -0
  134. package/src/presentation/8starlabs-ui/json-viewer.tsx +972 -0
  135. package/src/presentation/8starlabs-ui/marquee.tsx +134 -0
  136. package/src/presentation/8starlabs-ui/partition-bar.tsx +198 -0
  137. package/src/presentation/8starlabs-ui/scroll-fade.tsx +158 -0
  138. package/src/presentation/8starlabs-ui/status-indicator.tsx +86 -0
  139. package/src/presentation/8starlabs-ui/system-banner.tsx +50 -0
  140. package/src/presentation/8starlabs-ui/timeline.tsx +576 -0
  141. package/src/presentation/8starlabs-ui/transport-badge.tsx +249 -0
  142. package/src/presentation/8starlabs-ui/ui/copy-button.tsx +60 -0
  143. package/src/presentation/8starlabs-ui/ui/index.tsx +2 -0
  144. package/src/presentation/analytics-section.tsx +85 -0
  145. package/src/presentation/app-sidebar.tsx +234 -0
  146. package/src/presentation/charts/area-widget.chart-skeleton.tsx +61 -0
  147. package/src/presentation/charts/area-widget.chart.tsx +128 -0
  148. package/src/presentation/charts/chart-widgets.types.ts +81 -0
  149. package/src/presentation/charts/index.tsx +16 -0
  150. package/src/presentation/charts/line-widget.chart-skeleton.tsx +64 -0
  151. package/src/presentation/charts/line-widget.chart.tsx +105 -0
  152. package/src/presentation/charts/pie-widget.chart-skeleton.tsx +56 -0
  153. package/src/presentation/charts/pie-widget.chart.tsx +168 -0
  154. package/src/presentation/charts/radar-widget.chart-skeleton.tsx +67 -0
  155. package/src/presentation/charts/radar-widget.chart.tsx +80 -0
  156. package/src/presentation/charts/radial-stacked-widget.chart-skeleton.tsx +66 -0
  157. package/src/presentation/charts/radial-stacked-widget.chart.tsx +120 -0
  158. package/src/presentation/charts/radial-widget.chart-skeleton.tsx +61 -0
  159. package/src/presentation/charts/radial-widget.chart.tsx +87 -0
  160. package/src/presentation/charts/tooltip-widget.chart-skeleton.tsx +64 -0
  161. package/src/presentation/charts/tooltip-widget.chart.tsx +89 -0
  162. package/src/presentation/components/activity-actions.tsx +20 -0
  163. package/src/presentation/components/activity-container.tsx +55 -0
  164. package/src/presentation/components/activity-content.tsx +20 -0
  165. package/src/presentation/components/activity-descriptor-parser.tsx +37 -0
  166. package/src/presentation/components/activity-header.tsx +20 -0
  167. package/src/presentation/components/activity-loader.tsx +19 -0
  168. package/src/presentation/components/activity-title.tsx +32 -0
  169. package/src/presentation/components/activity.tsx +22 -0
  170. package/src/presentation/components/auth/index.tsx +4 -0
  171. package/src/presentation/components/auth/sso-callback.view.tsx +44 -0
  172. package/src/presentation/components/auth/sso-disconnect.view.tsx +41 -0
  173. package/src/presentation/components/auth/sso-sign-in.view.tsx +29 -0
  174. package/src/presentation/components/auth-lock-screen.tsx +309 -0
  175. package/src/presentation/components/auth-session.view.tsx +17 -0
  176. package/src/presentation/components/data-table.tsx +814 -0
  177. package/src/presentation/components/dynamic-icon.tsx +16 -0
  178. package/src/presentation/components/floating-upload.tsx +291 -0
  179. package/src/presentation/components/index.tsx +40 -0
  180. package/src/presentation/components/local-time.tsx +170 -0
  181. package/src/presentation/components/markdown-parser.tsx +201 -0
  182. package/src/presentation/components/message-scroller.tsx +131 -0
  183. package/src/presentation/components/module-first-access-config.view.tsx +181 -0
  184. package/src/presentation/components/module-first-access-pending.view.tsx +38 -0
  185. package/src/presentation/components/module-guard.tsx +34 -0
  186. package/src/presentation/components/modules-first-access.guard.tsx +88 -0
  187. package/src/presentation/components/modules-guard-forbidden.tsx +46 -0
  188. package/src/presentation/components/notification-details.modal.tsx +145 -0
  189. package/src/presentation/components/notification-item.tsx +127 -0
  190. package/src/presentation/components/notifications-popover.tsx +128 -0
  191. package/src/presentation/components/push-notifications.provider.tsx +65 -0
  192. package/src/presentation/components/upload-progress-dialog.tsx +140 -0
  193. package/src/presentation/components/waiting-bar.tsx +22 -0
  194. package/src/presentation/components/waiting-section.tsx +15 -0
  195. package/src/presentation/components/waiting.tsx +14 -0
  196. package/src/presentation/data-grid/data-grid-empty.tsx +24 -0
  197. package/src/presentation/data-grid/data-grid-search-engine.tsx +32 -0
  198. package/src/presentation/data-grid/data-grid.tsx +892 -0
  199. package/src/presentation/data-grid/index.tsx +4 -0
  200. package/src/presentation/form-screen.tsx +95 -0
  201. package/src/presentation/icons/custom.tsx +20 -0
  202. package/src/presentation/icons/glyphIcons.tsx +53 -0
  203. package/src/presentation/icons/icons.enum.ts +4 -0
  204. package/src/presentation/icons/icons.util.ts +6 -0
  205. package/src/presentation/icons/index.tsx +8 -0
  206. package/src/presentation/icons/lucide.tsx +17 -0
  207. package/src/presentation/icons/remix.tsx +33 -0
  208. package/src/presentation/icons/types.ts +27 -0
  209. package/src/presentation/index.tsx +45 -0
  210. package/src/presentation/modals/components/ModalBox.tsx +74 -0
  211. package/src/presentation/modals/components/ModalPortal.tsx +31 -0
  212. package/src/presentation/modals/components/ModalStepper.tsx +319 -0
  213. package/src/presentation/modals/components/ModalWrapper.tsx +65 -0
  214. package/src/presentation/modals/components/index.tsx +5 -0
  215. package/src/presentation/modals/hooks/index.ts +2 -0
  216. package/src/presentation/modals/hooks/useModal.ts +38 -0
  217. package/src/presentation/modals/index.tsx +5 -0
  218. package/src/presentation/modals/stores/index.ts +2 -0
  219. package/src/presentation/modals/stores/useModalStore.ts +90 -0
  220. package/src/presentation/modals/types/index.ts +2 -0
  221. package/src/presentation/modals/types/modal.type.ts +33 -0
  222. package/src/presentation/module-menubar.tsx +300 -0
  223. package/src/presentation/module-widget.tsx +233 -0
  224. package/src/presentation/nav-documents.tsx +89 -0
  225. package/src/presentation/nav-main.tsx +62 -0
  226. package/src/presentation/nav-secondary.tsx +41 -0
  227. package/src/presentation/nav-user.tsx +109 -0
  228. package/src/presentation/permission-action-badge.tsx +35 -0
  229. package/src/presentation/reui/index.tsx +3 -0
  230. package/src/presentation/reui/stepper.tsx +508 -0
  231. package/src/presentation/reui/timeline.tsx +226 -0
  232. package/src/presentation/sheets/index.tsx +2 -0
  233. package/src/presentation/sheets/legacy-sheet-header.tsx +0 -0
  234. package/src/presentation/sheets/legacy-sheet.tsx +37 -0
  235. package/src/presentation/size.enum.ts +19 -0
  236. package/src/presentation/system/index.tsx +3 -0
  237. package/src/presentation/system/logo.theme.tsx +21 -0
  238. package/src/presentation/system/types.ts +10 -0
  239. package/src/presentation/theme/index.tsx +6 -0
  240. package/src/presentation/theme/prefer-color-scheme.tsx +50 -0
  241. package/src/presentation/theme/switch-color-scheme.tsx +16 -0
  242. package/src/presentation/theme/theme-switcher-button.tsx +20 -0
  243. package/src/presentation/theme/theme.enum.ts +4 -0
  244. package/src/presentation/theme/theme.store.ts +87 -0
  245. package/src/presentation/themes/index.tsx +2 -0
  246. package/src/presentation/themes/katon/dashboard-layout.tsx +1080 -0
  247. package/src/presentation/themes/katon/edge-section.tsx +19 -0
  248. package/src/presentation/themes/katon/header-menubar.tsx +270 -0
  249. package/src/presentation/themes/katon/header-modules-available.tsx +44 -0
  250. package/src/presentation/themes/katon/header-modules-recents.tsx +52 -0
  251. package/src/presentation/themes/katon/header-modules-store.tsx +25 -0
  252. package/src/presentation/themes/katon/header-options.tsx +13 -0
  253. package/src/presentation/themes/katon/header-organization-select.tsx +146 -0
  254. package/src/presentation/themes/katon/header-routines.tsx +74 -0
  255. package/src/presentation/themes/katon/header-tasks-connected-user.tsx +150 -0
  256. package/src/presentation/themes/katon/index.tsx +16 -0
  257. package/src/presentation/themes/katon/main-wrapper.tsx +34 -0
  258. package/src/presentation/themes/katon/module-item-link.tsx +32 -0
  259. package/src/presentation/themes/katon/view-frame.tsx +25 -0
  260. package/src/presentation/themes/katon/view-helmet.tsx +53 -0
  261. package/src/presentation/themes/katon/view-status.tsx +32 -0
  262. package/src/presentation/themes/katon/view-wrapper.tsx +15 -0
  263. package/src/presentation/themes/katon/view.tsx +42 -0
  264. package/src/presentation/ui/accordion-multiselect.tsx +206 -0
  265. package/src/presentation/ui/accordion.tsx +81 -0
  266. package/src/presentation/ui/alert-dialog.tsx +199 -0
  267. package/src/presentation/ui/alert.tsx +76 -0
  268. package/src/presentation/ui/aspect-ratio.tsx +11 -0
  269. package/src/presentation/ui/attachment.tsx +204 -0
  270. package/src/presentation/ui/avatar.tsx +112 -0
  271. package/src/presentation/ui/badge.tsx +49 -0
  272. package/src/presentation/ui/breadcrumb.tsx +122 -0
  273. package/src/presentation/ui/bubble.tsx +125 -0
  274. package/src/presentation/ui/button-group.tsx +83 -0
  275. package/src/presentation/ui/button.tsx +87 -0
  276. package/src/presentation/ui/calendar.tsx +222 -0
  277. package/src/presentation/ui/card.tsx +106 -0
  278. package/src/presentation/ui/carousel.tsx +242 -0
  279. package/src/presentation/ui/chart.tsx +373 -0
  280. package/src/presentation/ui/checkbox.tsx +33 -0
  281. package/src/presentation/ui/clickable.tsx +58 -0
  282. package/src/presentation/ui/collapsible.tsx +33 -0
  283. package/src/presentation/ui/color-swatch-selector.tsx +81 -0
  284. package/src/presentation/ui/combobox.tsx +299 -0
  285. package/src/presentation/ui/command.tsx +195 -0
  286. package/src/presentation/ui/context-menu.tsx +263 -0
  287. package/src/presentation/ui/dialog.tsx +168 -0
  288. package/src/presentation/ui/direction.tsx +22 -0
  289. package/src/presentation/ui/drawer.tsx +134 -0
  290. package/src/presentation/ui/dropdown-menu.tsx +269 -0
  291. package/src/presentation/ui/empty.tsx +104 -0
  292. package/src/presentation/ui/field.tsx +238 -0
  293. package/src/presentation/ui/granularity-selector.tsx +58 -0
  294. package/src/presentation/ui/hover-card.tsx +44 -0
  295. package/src/presentation/ui/index.tsx +74 -0
  296. package/src/presentation/ui/input-group.tsx +156 -0
  297. package/src/presentation/ui/input-otp.tsx +87 -0
  298. package/src/presentation/ui/input.tsx +19 -0
  299. package/src/presentation/ui/item.tsx +196 -0
  300. package/src/presentation/ui/kpi-card.tsx +203 -0
  301. package/src/presentation/ui/label-selector.tsx +100 -0
  302. package/src/presentation/ui/label.tsx +24 -0
  303. package/src/presentation/ui/legacy-birth-date-input.tsx +43 -0
  304. package/src/presentation/ui/legacy-color-picker/index.tsx +42 -0
  305. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.content.tsx +37 -0
  306. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.context.tsx +42 -0
  307. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.hex-input.tsx +97 -0
  308. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.picker.tsx +266 -0
  309. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.presets.ts +22 -0
  310. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.quick-list.tsx +49 -0
  311. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.recent.tsx +43 -0
  312. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.swatches.tsx +111 -0
  313. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.trigger.tsx +128 -0
  314. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.tsx +110 -0
  315. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.types.ts +1 -0
  316. package/src/presentation/ui/legacy-color-picker/legacy-color-picker.utils.ts +114 -0
  317. package/src/presentation/ui/legacy-country-input.tsx +171 -0
  318. package/src/presentation/ui/legacy-gender-input.tsx +22 -0
  319. package/src/presentation/ui/legacy-input.tsx +106 -0
  320. package/src/presentation/ui/legacy-phone-input.tsx +213 -0
  321. package/src/presentation/ui/legacy-select-input.tsx +114 -0
  322. package/src/presentation/ui/legacy-text-area.tsx +111 -0
  323. package/src/presentation/ui/list-items.tsx +59 -0
  324. package/src/presentation/ui/marker.tsx +69 -0
  325. package/src/presentation/ui/media-player/index.tsx +12 -0
  326. package/src/presentation/ui/media-player/media-player.context.tsx +36 -0
  327. package/src/presentation/ui/media-player/media-player.tsx +167 -0
  328. package/src/presentation/ui/media-player/player-controls.tsx +207 -0
  329. package/src/presentation/ui/media-player/players/audio-player.tsx +78 -0
  330. package/src/presentation/ui/media-player/players/index.tsx +4 -0
  331. package/src/presentation/ui/media-player/players/video-player.tsx +193 -0
  332. package/src/presentation/ui/media-player/players/voice-note-player.tsx +108 -0
  333. package/src/presentation/ui/media-player/use-media-player.hook.ts +263 -0
  334. package/src/presentation/ui/menubar.tsx +281 -0
  335. package/src/presentation/ui/message.tsx +92 -0
  336. package/src/presentation/ui/navigation-menu.tsx +172 -0
  337. package/src/presentation/ui/pagination.tsx +129 -0
  338. package/src/presentation/ui/popover.tsx +89 -0
  339. package/src/presentation/ui/progress.tsx +31 -0
  340. package/src/presentation/ui/resizable.tsx +50 -0
  341. package/src/presentation/ui/select.tsx +192 -0
  342. package/src/presentation/ui/separator.tsx +28 -0
  343. package/src/presentation/ui/sheet.tsx +147 -0
  344. package/src/presentation/ui/sidebar.tsx +702 -0
  345. package/src/presentation/ui/skeleton.tsx +13 -0
  346. package/src/presentation/ui/slide-to-confirm.tsx +129 -0
  347. package/src/presentation/ui/slider.tsx +59 -0
  348. package/src/presentation/ui/sonner.tsx +58 -0
  349. package/src/presentation/ui/switch.tsx +33 -0
  350. package/src/presentation/ui/table.tsx +116 -0
  351. package/src/presentation/ui/tabs.tsx +90 -0
  352. package/src/presentation/ui/text-gradient.tsx +84 -0
  353. package/src/presentation/ui/textarea.tsx +18 -0
  354. package/src/presentation/ui/timeline-steps.tsx +235 -0
  355. package/src/presentation/ui/toggle-group.tsx +89 -0
  356. package/src/presentation/ui/toggle.tsx +47 -0
  357. package/src/presentation/ui/tooltip.tsx +57 -0
  358. package/src/presentation/uploading/index.tsx +3 -0
  359. package/src/presentation/uploading/media-upload-field.tsx +152 -0
  360. package/src/presentation/uploading/storage-media.tsx +210 -0
  361. package/src/styles.css +403 -0
  362. package/src/themes.css +1038 -0
@@ -0,0 +1,80 @@
1
+ "use client"
2
+
3
+ import { TrendingUp } from "lucide-react"
4
+ import { PolarAngleAxis, PolarGrid, Radar, RadarChart as OriginalRadarChart } from "recharts"
5
+ import {ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent} from "../ui/chart";
6
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
7
+ import {cn} from "../../infrastructure/utilities/utils";
8
+ import { RadarChartWidgetProps } from "./chart-widgets.types";
9
+
10
+ export function RadarWidgetChart({
11
+ data,
12
+ config,
13
+ title,
14
+ description,
15
+ footerTitle,
16
+ footerDescription,
17
+ radars,
18
+ polarAngleDataKey = "month",
19
+ gridShape,
20
+ className,
21
+ hideCard = false,
22
+ }: RadarChartWidgetProps) {
23
+ const content = (
24
+ <>
25
+ {(title || description) && !hideCard && (
26
+ <CardHeader className="items-center pb-4">
27
+ <CardTitle>{title}</CardTitle>
28
+ {description && <CardDescription>{description}</CardDescription>}
29
+ </CardHeader>
30
+ )}
31
+ <CardContent className={cn("pb-0", hideCard ? "p-0" : "")}>
32
+ <ChartContainer
33
+ config={config}
34
+ className="mx-auto aspect-square max-h-[250px]"
35
+ >
36
+ <OriginalRadarChart data={data}>
37
+ <ChartTooltip
38
+ cursor={false}
39
+ content={<ChartTooltipContent indicator="line" />}
40
+ />
41
+ <PolarAngleAxis dataKey={polarAngleDataKey} />
42
+ <PolarGrid gridType={gridShape} />
43
+ {radars.map((radar) => (
44
+ <Radar
45
+ key={radar.dataKey}
46
+ dataKey={radar.dataKey}
47
+ fill={radar.fill || `var(--color-${radar.dataKey})`}
48
+ fillOpacity={radar.fillOpacity ?? 0.6}
49
+ />
50
+ ))}
51
+ </OriginalRadarChart>
52
+ </ChartContainer>
53
+ </CardContent>
54
+ {(footerTitle || footerDescription) && !hideCard && (
55
+ <CardFooter className="flex-col gap-2 text-sm">
56
+ {footerTitle && (
57
+ <div className="flex items-center gap-2 leading-none font-medium">
58
+ {footerTitle} <TrendingUp className="h-4 w-4" />
59
+ </div>
60
+ )}
61
+ {footerDescription && (
62
+ <div className="flex items-center gap-2 leading-none text-muted-foreground">
63
+ {footerDescription}
64
+ </div>
65
+ )}
66
+ </CardFooter>
67
+ )}
68
+ </>
69
+ )
70
+
71
+ if (hideCard) {
72
+ return content
73
+ }
74
+
75
+ return (
76
+ <Card className={className}>
77
+ {content}
78
+ </Card>
79
+ )
80
+ }
@@ -0,0 +1,66 @@
1
+ "use client"
2
+
3
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
4
+ import {Skeleton} from "../ui/skeleton";
5
+ import {cn} from "../../infrastructure/utilities/utils";
6
+
7
+ export interface RadialStackedWidgetChartSkeletonProps {
8
+ title?: string
9
+ description?: string
10
+ footerTitle?: string
11
+ footerDescription?: string
12
+ className?: string
13
+ hideCard?: boolean
14
+ }
15
+
16
+ export function RadialStackedWidgetChartSkeleton(
17
+ {
18
+ title,
19
+ description,
20
+ footerTitle,
21
+ footerDescription,
22
+ className,
23
+ hideCard = false,
24
+ }: RadialStackedWidgetChartSkeletonProps
25
+ ) {
26
+ const content = (
27
+ <>
28
+ {(title || description) && !hideCard && (
29
+ <CardHeader className="items-center pb-0">
30
+ <CardTitle>
31
+ <Skeleton className="h-5 w-48"/>
32
+ </CardTitle>
33
+ {description && (
34
+ <CardDescription>
35
+ <Skeleton className="h-4 w-64"/>
36
+ </CardDescription>
37
+ )}
38
+ </CardHeader>
39
+ )}
40
+ <CardContent className={cn("flex flex-1 items-center justify-center pb-0", hideCard ? "p-0" : "")}>
41
+ <div className="relative mx-auto aspect-square w-full max-w-[250px]">
42
+ <Skeleton className="h-full w-full rounded-full"/>
43
+ <div className="absolute inset-0 flex items-center justify-center">
44
+ <Skeleton className="h-16 w-24"/>
45
+ </div>
46
+ </div>
47
+ </CardContent>
48
+ {(footerTitle || footerDescription) && !hideCard && (
49
+ <CardFooter className="flex-col items-center gap-2 text-sm">
50
+ {footerTitle && <Skeleton className="h-4 w-40"/>}
51
+ {footerDescription && <Skeleton className="h-4 w-56"/>}
52
+ </CardFooter>
53
+ )}
54
+ </>
55
+ )
56
+
57
+ if (hideCard) {
58
+ return content
59
+ }
60
+
61
+ return (
62
+ <Card className={cn("flex flex-col", className)}>
63
+ {content}
64
+ </Card>
65
+ )
66
+ }
@@ -0,0 +1,120 @@
1
+ "use client"
2
+
3
+ import {TrendingUp} from "lucide-react"
4
+ import {
5
+ Label,
6
+ PolarRadiusAxis,
7
+ RadialBar,
8
+ RadialBarChart,
9
+ } from "recharts"
10
+ import {ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent} from "../ui/chart";
11
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
12
+ import {cn} from "../../infrastructure/utilities/utils";
13
+ import { RadialStackedChartWidgetProps } from "./chart-widgets.types";
14
+
15
+ export function RadialStackedWidgetChart({
16
+ data,
17
+ config,
18
+ title,
19
+ description,
20
+ footerTitle,
21
+ footerDescription,
22
+ bars,
23
+ innerRadius = 80,
24
+ outerRadius = 110,
25
+ endAngle = 180,
26
+ innerLabel = "Visitors",
27
+ className,
28
+ hideCard = false,
29
+ }: RadialStackedChartWidgetProps) {
30
+ const totalValue = bars.reduce((acc, bar) => acc + (data[0]?.[bar.dataKey] || 0), 0)
31
+
32
+ const content = (
33
+ <>
34
+ {(title || description) && !hideCard && (
35
+ <CardHeader className="items-center pb-0">
36
+ <CardTitle>{title}</CardTitle>
37
+ {description && <CardDescription>{description}</CardDescription>}
38
+ </CardHeader>
39
+ )}
40
+ <CardContent className={cn("flex flex-1 items-center pb-0", hideCard ? "p-0" : "")}>
41
+ <ChartContainer
42
+ config={config}
43
+ className="mx-auto aspect-square w-full max-w-[250px]"
44
+ >
45
+ <RadialBarChart
46
+ data={data}
47
+ endAngle={endAngle}
48
+ innerRadius={innerRadius}
49
+ outerRadius={outerRadius}
50
+ >
51
+ {bars.map((bar) => (
52
+ <RadialBar
53
+ key={bar.dataKey}
54
+ dataKey={bar.dataKey}
55
+ fill={bar.fill || `var(--color-${bar.dataKey})`}
56
+ stackId={bar.stackId || "a"}
57
+ cornerRadius={bar.cornerRadius ?? 5}
58
+ className="stroke-transparent stroke-2"
59
+ />
60
+ ))}
61
+ <ChartTooltip
62
+ cursor={false}
63
+ content={<ChartTooltipContent hideLabel/>}
64
+ />
65
+ <PolarRadiusAxis tick={false} tickLine={false} axisLine={false}>
66
+ <Label
67
+ content={({viewBox}) => {
68
+ if (viewBox && "cx" in viewBox && "cy" in viewBox) {
69
+ return (
70
+ <text x={viewBox.cx} y={viewBox.cy} textAnchor="middle">
71
+ <tspan
72
+ x={viewBox.cx}
73
+ y={(viewBox.cy || 0) - 16}
74
+ className="fill-foreground text-2xl font-bold"
75
+ >
76
+ {totalValue.toLocaleString()}
77
+ </tspan>
78
+ <tspan
79
+ x={viewBox.cx}
80
+ y={(viewBox.cy || 0) + 4}
81
+ className="fill-muted-foreground"
82
+ >
83
+ {innerLabel}
84
+ </tspan>
85
+ </text>
86
+ )
87
+ }
88
+ }}
89
+ />
90
+ </PolarRadiusAxis>
91
+ </RadialBarChart>
92
+ </ChartContainer>
93
+ </CardContent>
94
+ {(footerTitle || footerDescription) && !hideCard && (
95
+ <CardFooter className="flex-col gap-2 text-sm">
96
+ {footerTitle && (
97
+ <div className="flex items-center gap-2 leading-none font-medium">
98
+ {footerTitle} <TrendingUp className="h-4 w-4"/>
99
+ </div>
100
+ )}
101
+ {footerDescription && (
102
+ <div className="leading-none text-muted-foreground">
103
+ {footerDescription}
104
+ </div>
105
+ )}
106
+ </CardFooter>
107
+ )}
108
+ </>
109
+ )
110
+
111
+ if (hideCard) {
112
+ return content
113
+ }
114
+
115
+ return (
116
+ <Card className={cn("flex flex-col", className)}>
117
+ {content}
118
+ </Card>
119
+ )
120
+ }
@@ -0,0 +1,61 @@
1
+ "use client"
2
+
3
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
4
+ import {Skeleton} from "../ui/skeleton";
5
+ import {cn} from "../../infrastructure/utilities/utils";
6
+
7
+ export interface RadialWidgetChartSkeletonProps {
8
+ title?: string
9
+ description?: string
10
+ footerTitle?: string
11
+ footerDescription?: string
12
+ className?: string
13
+ hideCard?: boolean
14
+ }
15
+
16
+ export function RadialWidgetChartSkeleton(
17
+ {
18
+ title,
19
+ description,
20
+ footerTitle,
21
+ footerDescription,
22
+ className,
23
+ hideCard = false,
24
+ }: RadialWidgetChartSkeletonProps
25
+ ) {
26
+ const content = (
27
+ <>
28
+ {(title || description) && !hideCard && (
29
+ <CardHeader className="items-center pb-0">
30
+ <CardTitle>
31
+ <Skeleton className="h-5 w-48"/>
32
+ </CardTitle>
33
+ {description && (
34
+ <CardDescription>
35
+ <Skeleton className="h-4 w-64"/>
36
+ </CardDescription>
37
+ )}
38
+ </CardHeader>
39
+ )}
40
+ <CardContent className={cn("flex flex-1 items-center justify-center pb-0", hideCard ? "p-0" : "")}>
41
+ <Skeleton className="mx-auto aspect-square max-h-[250px] w-full rounded-full"/>
42
+ </CardContent>
43
+ {(footerTitle || footerDescription) && !hideCard && (
44
+ <CardFooter className="flex-col items-center gap-2 text-sm">
45
+ {footerTitle && <Skeleton className="h-4 w-40"/>}
46
+ {footerDescription && <Skeleton className="h-4 w-56"/>}
47
+ </CardFooter>
48
+ )}
49
+ </>
50
+ )
51
+
52
+ if (hideCard) {
53
+ return content
54
+ }
55
+
56
+ return (
57
+ <Card className={cn("flex flex-col", className)}>
58
+ {content}
59
+ </Card>
60
+ )
61
+ }
@@ -0,0 +1,87 @@
1
+ "use client"
2
+
3
+ import { TrendingUp } from "lucide-react"
4
+ import { LabelList, RadialBar, RadialBarChart } from "recharts"
5
+ import {ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent} from "../ui/chart";
6
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
7
+ import {cn} from "../../infrastructure/utilities/utils";
8
+ import { RadialChartWidgetProps } from "./chart-widgets.types";
9
+
10
+ export function RadialWidgetChart({
11
+ data,
12
+ config,
13
+ title,
14
+ description,
15
+ footerTitle,
16
+ footerDescription,
17
+ dataKey,
18
+ nameKey,
19
+ startAngle = -90,
20
+ endAngle = 380,
21
+ innerRadius = 30,
22
+ outerRadius = 110,
23
+ className,
24
+ hideCard = false,
25
+ }: RadialChartWidgetProps) {
26
+ const content = (
27
+ <>
28
+ {(title || description) && !hideCard && (
29
+ <CardHeader className="items-center pb-0">
30
+ <CardTitle>{title}</CardTitle>
31
+ {description && <CardDescription>{description}</CardDescription>}
32
+ </CardHeader>
33
+ )}
34
+ <CardContent className={cn("flex-1 pb-0", hideCard ? "p-0" : "")}>
35
+ <ChartContainer
36
+ config={config}
37
+ className="mx-auto aspect-square max-h-[250px]"
38
+ >
39
+ <RadialBarChart
40
+ data={data}
41
+ startAngle={startAngle}
42
+ endAngle={endAngle}
43
+ innerRadius={innerRadius}
44
+ outerRadius={outerRadius}
45
+ >
46
+ <ChartTooltip
47
+ cursor={false}
48
+ content={<ChartTooltipContent hideLabel nameKey={nameKey} />}
49
+ />
50
+ <RadialBar dataKey={dataKey} background>
51
+ <LabelList
52
+ position="insideStart"
53
+ dataKey={nameKey}
54
+ className="fill-white capitalize mix-blend-luminosity"
55
+ fontSize={11}
56
+ />
57
+ </RadialBar>
58
+ </RadialBarChart>
59
+ </ChartContainer>
60
+ </CardContent>
61
+ {(footerTitle || footerDescription) && !hideCard && (
62
+ <CardFooter className="flex-col gap-2 text-sm">
63
+ {footerTitle && (
64
+ <div className="flex items-center gap-2 leading-none font-medium">
65
+ {footerTitle} <TrendingUp className="h-4 w-4" />
66
+ </div>
67
+ )}
68
+ {footerDescription && (
69
+ <div className="leading-none text-muted-foreground">
70
+ {footerDescription}
71
+ </div>
72
+ )}
73
+ </CardFooter>
74
+ )}
75
+ </>
76
+ )
77
+
78
+ if (hideCard) {
79
+ return content
80
+ }
81
+
82
+ return (
83
+ <Card className={cn("flex flex-col", className)}>
84
+ {content}
85
+ </Card>
86
+ )
87
+ }
@@ -0,0 +1,64 @@
1
+ "use client"
2
+
3
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
4
+ import {Skeleton} from "../ui/skeleton";
5
+
6
+ export interface TooltipWidgetChartSkeletonProps {
7
+ title?: string
8
+ description?: string
9
+ footerTitle?: string
10
+ footerDescription?: string
11
+ className?: string
12
+ hideCard?: boolean
13
+ }
14
+
15
+ export function TooltipWidgetChartSkeleton(
16
+ {
17
+ title,
18
+ description,
19
+ footerTitle,
20
+ footerDescription,
21
+ className,
22
+ hideCard = false,
23
+ }: TooltipWidgetChartSkeletonProps
24
+ ) {
25
+ const content = (
26
+ <>
27
+ {(title || description) && !hideCard && (
28
+ <CardHeader>
29
+ <CardTitle>
30
+ <Skeleton className="h-5 w-48"/>
31
+ </CardTitle>
32
+ {description && (
33
+ <CardDescription>
34
+ <Skeleton className="h-4 w-64"/>
35
+ </CardDescription>
36
+ )}
37
+ </CardHeader>
38
+ )}
39
+ <CardContent className={hideCard ? "p-0" : ""}>
40
+ <div className={hideCard ? "w-full" : "flex flex-col gap-2"}>
41
+ <Skeleton className="h-64 w-full"/>
42
+ <Skeleton className="h-4 w-full"/>
43
+ <Skeleton className="h-4 w-2/3"/>
44
+ </div>
45
+ </CardContent>
46
+ {(footerTitle || footerDescription) && !hideCard && (
47
+ <CardFooter className="flex-col items-start gap-2 text-sm">
48
+ {footerTitle && <Skeleton className="h-4 w-40"/>}
49
+ {footerDescription && <Skeleton className="h-4 w-56"/>}
50
+ </CardFooter>
51
+ )}
52
+ </>
53
+ )
54
+
55
+ if (hideCard) {
56
+ return content
57
+ }
58
+
59
+ return (
60
+ <Card className={className}>
61
+ {content}
62
+ </Card>
63
+ )
64
+ }
@@ -0,0 +1,89 @@
1
+ "use client"
2
+
3
+ import { TrendingUp } from "lucide-react"
4
+ import { Bar, BarChart, XAxis } from "recharts"
5
+ import {ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent} from "../ui/chart";
6
+ import {Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle} from "../ui/card";
7
+ import {cn} from "../../infrastructure/utilities/utils";
8
+ import { TooltipChartWidgetProps } from "./chart-widgets.types";
9
+
10
+ export function TooltipWidgetChart({
11
+ data,
12
+ config,
13
+ title,
14
+ description,
15
+ footerTitle,
16
+ footerDescription,
17
+ bars,
18
+ xAxisDataKey = "date",
19
+ className,
20
+ hideCard = false,
21
+ }: TooltipChartWidgetProps) {
22
+ const content = (
23
+ <>
24
+ {(title || description) && !hideCard && (
25
+ <CardHeader>
26
+ <CardTitle>{title}</CardTitle>
27
+ {description && <CardDescription>{description}</CardDescription>}
28
+ </CardHeader>
29
+ )}
30
+ <CardContent className={hideCard ? "p-0" : ""}>
31
+ <ChartContainer config={config}>
32
+ <BarChart accessibilityLayer data={data}>
33
+ <XAxis
34
+ dataKey={xAxisDataKey}
35
+ tickLine={false}
36
+ tickMargin={10}
37
+ axisLine={false}
38
+ tickFormatter={(value) => {
39
+ const date = new Date(value)
40
+ if (isNaN(date.getTime())) return String(value)
41
+ return date.toLocaleDateString("en-US", {
42
+ weekday: "short",
43
+ })
44
+ }}
45
+ />
46
+ {bars.map((bar) => (
47
+ <Bar
48
+ key={bar.dataKey}
49
+ dataKey={bar.dataKey}
50
+ stackId={bar.stackId || "a"}
51
+ fill={bar.fill || `var(--color-${bar.dataKey})`}
52
+ radius={bar.radius}
53
+ />
54
+ ))}
55
+ <ChartTooltip
56
+ content={<ChartTooltipContent indicator="line" />}
57
+ cursor={false}
58
+ defaultIndex={1}
59
+ />
60
+ </BarChart>
61
+ </ChartContainer>
62
+ </CardContent>
63
+ {(footerTitle || footerDescription) && !hideCard && (
64
+ <CardFooter className="flex-col items-start gap-2 text-sm">
65
+ {footerTitle && (
66
+ <div className="flex gap-2 leading-none font-medium">
67
+ {footerTitle} <TrendingUp className="h-4 w-4" />
68
+ </div>
69
+ )}
70
+ {footerDescription && (
71
+ <div className="leading-none text-muted-foreground">
72
+ {footerDescription}
73
+ </div>
74
+ )}
75
+ </CardFooter>
76
+ )}
77
+ </>
78
+ )
79
+
80
+ if (hideCard) {
81
+ return content
82
+ }
83
+
84
+ return (
85
+ <Card className={className}>
86
+ {content}
87
+ </Card>
88
+ )
89
+ }
@@ -0,0 +1,20 @@
1
+ "use client"
2
+
3
+ import { ReactNode } from "react"
4
+ import { cn } from "../../infrastructure/utilities/utils"
5
+
6
+ export interface ActivityActionsProps {
7
+ children: ReactNode
8
+ className?: string
9
+ }
10
+
11
+ export function ActivityActions({ children, className }: ActivityActionsProps) {
12
+ return (
13
+ <div
14
+ data-slot="activity-actions"
15
+ className={cn("flex flex-row items-center gap-2 shrink-0", className)}
16
+ >
17
+ {children}
18
+ </div>
19
+ )
20
+ }
@@ -0,0 +1,55 @@
1
+ "use client"
2
+
3
+ import { Children, ReactNode } from "react"
4
+ import { Motion } from "../../infrastructure/library/motion"
5
+ import { elasticContainer, elasticEnter, elasticScaleEnter } from "../../infrastructure/library/motion-utils"
6
+ import { cn } from "../../infrastructure/utilities/utils"
7
+
8
+ export interface ActivityContainerProps {
9
+ children: ReactNode
10
+ className?: string
11
+ variant?: "enter" | "scale" | "container" | "none"
12
+ stagger?: number
13
+ delay?: number
14
+ animateChildren?: boolean
15
+ }
16
+
17
+ export function ActivityContainer({
18
+ children,
19
+ className,
20
+ variant = "enter",
21
+ stagger = 0.08,
22
+ delay = 0,
23
+ animateChildren = false,
24
+ }: ActivityContainerProps) {
25
+ if (variant === "none") {
26
+ return <>{children}</>
27
+ }
28
+
29
+ if (animateChildren && variant === "container") {
30
+ const childrenArray = Children.toArray(children)
31
+ return (
32
+ <Motion
33
+ className={cn('flex flex-col w-full gap-4', className, '')}
34
+ animation={elasticContainer(delay, stagger)}
35
+ >
36
+ {childrenArray.map((child) => child)}
37
+ </Motion>
38
+ )
39
+ }
40
+
41
+ const animation = variant === "enter"
42
+ ? elasticEnter(delay)
43
+ : variant === "scale"
44
+ ? elasticScaleEnter()
45
+ : elasticContainer(delay, stagger)
46
+
47
+ return (
48
+ <Motion
49
+ className={cn("w-full flex flex-col gap-4", className)}
50
+ animation={animation}
51
+ >
52
+ {children}
53
+ </Motion>
54
+ )
55
+ }
@@ -0,0 +1,20 @@
1
+ "use client"
2
+
3
+ import { ReactNode } from "react"
4
+ import { cn } from "../../infrastructure/utilities/utils"
5
+
6
+ export interface ActivityContentProps {
7
+ children: ReactNode
8
+ className?: string
9
+ }
10
+
11
+ export function ActivityContent({ children, className }: ActivityContentProps) {
12
+ return (
13
+ <div
14
+ data-slot="activity-content"
15
+ className={cn("flex-auto flex flex-col gap-6", className)}
16
+ >
17
+ {children}
18
+ </div>
19
+ )
20
+ }