Explorar o código

cleanup 2: objects&molecules

romanlesnikov hai 2 meses
pai
achega
dadaecdf2c
Modificáronse 100 ficheiros con 204 adicións e 200 borrados
  1. 1 1
      apps/expo/app/(tabs)/_layout.js
  2. 1 1
      apps/next/app/providers.js
  3. 1 1
      packages/app/components/block-wrapper.js
  4. 2 2
      packages/app/components/elements/browse.js
  5. 1 1
      packages/app/components/elements/browse_simple.tsx
  6. 2 2
      packages/app/components/elements/bundles.js
  7. 2 2
      packages/app/components/elements/comment_content.js
  8. 1 1
      packages/app/components/elements/contacts.js
  9. 3 3
      packages/app/components/elements/course_structure.js
  10. 2 2
      packages/app/components/elements/cover.js
  11. 3 3
      packages/app/components/elements/dashboard_stat.js
  12. 2 2
      packages/app/components/elements/dashboard_stat_old.js
  13. 2 2
      packages/app/components/elements/deploy.js
  14. 2 2
      packages/app/components/elements/edit_course_content.js
  15. 2 2
      packages/app/components/elements/entity_author.js
  16. 1 1
      packages/app/components/elements/entity_info.js
  17. 1 1
      packages/app/components/elements/entity_poll.js
  18. 3 3
      packages/app/components/elements/entity_text.js
  19. 1 1
      packages/app/components/elements/feed_item.js
  20. 4 4
      packages/app/components/elements/grid.js
  21. 2 2
      packages/app/components/elements/invite_in_context.js
  22. 1 1
      packages/app/components/elements/lesson_structure.js
  23. 2 2
      packages/app/components/elements/membership.js
  24. 3 3
      packages/app/components/elements/messenger/parts/common.js
  25. 1 1
      packages/app/components/elements/messenger/parts/item-convo.js
  26. 4 3
      packages/app/components/elements/messenger/parts/item-jot.js
  27. 3 3
      packages/app/components/elements/module_structure.js
  28. 3 3
      packages/app/components/elements/multi_post_form.js
  29. 2 2
      packages/app/components/elements/pricing.js
  30. 1 1
      packages/app/components/elements/profile_switcher.js
  31. 1 1
      packages/app/components/elements/profiles_list.js
  32. 4 4
      packages/app/components/elements/reputation.js
  33. 1 1
      packages/app/components/elements/tasks_list.js
  34. 1 1
      packages/app/components/elements/wiki/document.js
  35. 1 1
      packages/app/components/elements/wiki_history.js
  36. 1 1
      packages/app/components/form-fields/embed.js
  37. 1 1
      packages/app/components/form-fields/files.js
  38. 1 1
      packages/app/components/form-fields/initial_members.js
  39. 1 1
      packages/app/components/form-fields/phone.js
  40. 1 1
      packages/app/components/form-fields/stripe_connect.js
  41. 3 3
      packages/app/components/form-fields/visibility.js
  42. 1 1
      packages/app/components/forms/comments.js
  43. 1 1
      packages/app/components/forms/confirm_email.js
  44. 1 1
      packages/app/components/forms/feed.js
  45. 1 1
      packages/app/components/forms/messenger.js
  46. 1 1
      packages/app/components/forms/post.js
  47. 1 1
      packages/app/components/layout.js
  48. 5 5
      packages/app/components/layout.web.js
  49. 6 6
      packages/app/components/layouts.js
  50. 1 1
      packages/app/components/menu-items/button.js
  51. 5 5
      packages/app/components/menu-items/callback.js
  52. 1 1
      packages/app/components/menu-items/link.js
  53. 1 1
      packages/app/components/menu-items/submenu-share.js
  54. 1 1
      packages/app/components/menu.js
  55. 1 1
      packages/app/components/nav/footer.web.js
  56. 1 1
      packages/app/components/nav/menu-account.js
  57. 1 1
      packages/app/components/nav/menu-add.js
  58. 1 1
      packages/app/components/nav/menu-dynamic.js
  59. 1 1
      packages/app/components/nav/navbar-mixed.web.js
  60. 2 2
      packages/app/components/nav/navbar-ver.web.js
  61. 5 5
      packages/app/components/nav/tabs.js
  62. 2 2
      packages/app/components/page-layout/create-account.js
  63. 1 1
      packages/app/components/page-layout/default.js
  64. 4 4
      packages/app/components/page-layout/home.js
  65. 2 2
      packages/app/components/page-layout/login.js
  66. 1 1
      packages/app/components/page-layout/messenger.js
  67. 1 1
      packages/app/components/page-layout/navigator.js
  68. 2 2
      packages/app/components/page-layout/navigator_search.js
  69. 1 1
      packages/app/components/page-layout/playground.js
  70. 1 1
      packages/app/components/page-layout/post-without-comments.js
  71. 2 2
      packages/app/components/page-layout/post.js
  72. 1 1
      packages/app/components/page-layout/profile.js
  73. 2 2
      packages/app/components/page-layout/universal.js
  74. 2 2
      packages/app/components/page-layout/wiki.js
  75. 1 1
      packages/app/components/skeletons/_map.js
  76. 6 6
      packages/app/components/units/comments.js
  77. 3 3
      packages/app/components/units/content-list/bx_ads.js
  78. 3 3
      packages/app/components/units/content-list/bx_albums.js
  79. 2 2
      packages/app/components/units/content-list/bx_channels.js
  80. 2 2
      packages/app/components/units/content-list/bx_courses.js
  81. 2 2
      packages/app/components/units/content-list/bx_events.js
  82. 3 3
      packages/app/components/units/content-list/bx_forum.js
  83. 2 2
      packages/app/components/units/content-list/bx_groups.js
  84. 3 2
      packages/app/components/units/content-list/bx_jobs.js
  85. 5 4
      packages/app/components/units/content-list/bx_market.js
  86. 2 2
      packages/app/components/units/content-list/bx_organizations.js
  87. 2 2
      packages/app/components/units/content-list/bx_persons.js
  88. 3 3
      packages/app/components/units/content-list/bx_polls.js
  89. 2 2
      packages/app/components/units/content-list/bx_posts.js
  90. 1 1
      packages/app/components/units/content-list/bx_projects.js
  91. 2 2
      packages/app/components/units/content-list/bx_resources.js
  92. 4 4
      packages/app/components/units/content-list/bx_spaces.js
  93. 2 2
      packages/app/components/units/content-list/bx_tasks.js
  94. 2 2
      packages/app/components/units/content-list/bx_tasks_timer.js
  95. 3 3
      packages/app/components/units/content-list/bx_videos.js
  96. 2 2
      packages/app/components/units/content-list/default.js
  97. 4 3
      packages/app/components/units/convos-feeds.js
  98. 2 2
      packages/app/components/units/feed.js
  99. 3 3
      packages/app/components/units/invitations.js
  100. 3 3
      packages/app/components/units/notifications.js

+ 1 - 1
apps/expo/app/(tabs)/_layout.js

@@ -10,7 +10,7 @@ import { PortalHost } from '@rn-primitives/portal';
 import { QueryClientProvider } from '@tanstack/react-query'
 import { queryClient } from 'app/lib/query-client'
 import { Provider as JotaiProvider } from 'jotai'
-import { NetworkStatus } from 'app/ui/molecules/net-info';
+import { NetworkStatus } from 'app/ui/molecules/system/net-info';
 
 //import RNScreenshotPrevent, { addListener } from 'react-native-screenshot-prevent';
 import i18n from 'i18next';

+ 1 - 1
apps/next/app/providers.js

@@ -9,7 +9,7 @@ import i18n from 'i18next'
 import { initReactI18next } from 'react-i18next'
 import { resources } from 'app/customization/translation'
 import { useEffect } from 'react'
-import Subscriber from 'app/ui/molecules/subscriber'
+import Subscriber from 'app/ui/molecules/system/subscriber'
 import { useLayoutSettings } from 'app/context/layout-settings'
 
 function ensureI18n(lang) {

+ 1 - 1
packages/app/components/block-wrapper.js

@@ -2,7 +2,7 @@ import { View } from 'app/design/view'
 import Html from 'app/ui/atoms/html'
 import { stripTags, appSetting, isUrl } from 'app/lib/util';
 import { useState } from 'react';
-import { Block as PageBlock, BlockContent, BlockName, BlockActions, BlockHeader, BlockTitle, BlockDescription, BlockIcon } from 'app/ui/molecules/page-block'
+import { Block as PageBlock, BlockContent, BlockName, BlockActions, BlockHeader, BlockTitle, BlockDescription, BlockIcon } from 'app/ui/molecules/page/page-block'
 import { useTranslation } from 'react-i18next'
 import { Button, ButtonLink, Modal, NeoButtonLink } from 'app/design/controls'
 import { Icon } from 'app/ui/atoms/icon'

+ 2 - 2
packages/app/components/elements/browse.js

@@ -20,7 +20,7 @@ import { subscribe } from 'app/ui/atoms/socket'
 import { useCurrentUser } from 'app/context/user'
 import { layoutForList } from 'app/customization/functions'
 import Link from 'app/ui/atoms/link'
-import Galery from 'app/ui/molecules/gallery'
+import Galery from 'app/ui/molecules/content/gallery'
 import { Button } from 'app/design/controls'
 import { useWindowHeight } from 'app/context/measure';
 import emitter from 'app/context/emitter'
@@ -40,7 +40,7 @@ import {
 import { getComponent } from 'app/components/registry';
 import { BrowseItem } from 'app/lib/common-helpers'
 import { useIsDesktop } from 'app/context/measure';
-import { BlockTitle } from 'app/ui/molecules/page-block'
+import { BlockTitle } from 'app/ui/molecules/page/page-block'
 const blockTheme = appSetting('theme', 'blocks');
 const AT_TOP_SCROLL_THRESHOLD = 50;
 

+ 1 - 1
packages/app/components/elements/browse_simple.tsx

@@ -1,6 +1,6 @@
 // @ts-nocheck
 import Unit from 'app/components/unit'
-import Galery from 'app/ui/molecules/gallery'
+import Galery from 'app/ui/molecules/content/gallery'
 import { View, Row } from 'app/design/view'
 import { layoutForList } from 'app/customization/functions'
 import { BlockWrapper } from 'app/components/block-wrapper'

+ 2 - 2
packages/app/components/elements/bundles.js

@@ -5,10 +5,10 @@ import Form from 'app/components/elements/form';
 import { useState, useEffect } from 'react';
 import { Row, View } from 'app/design/view';
 import { Text } from 'app/design/typography';
-import Confirm from 'app/ui/molecules/confirm';
+import Confirm from 'app/ui/molecules/dialogs/confirm';
 import emitter from 'app/context/emitter';
 import Link from 'app/ui/atoms/link';
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import { useTranslation } from 'react-i18next'
 import { useRouter, redirectTo } from 'app/lib/hooks/router'
 

+ 2 - 2
packages/app/components/elements/comment_content.js

@@ -3,9 +3,9 @@ import Image from 'app/ui/atoms/image';
 import Html from 'app/ui/atoms/html';
 import { Text, H2 } from 'app/design/typography';
 import { appSetting, clearLinks } from 'app/lib/util'
-import { ContentMore } from 'app/ui/molecules/contentmore';
+import { ContentMore } from 'app/ui/molecules/content/contentmore';
 import EntityAttachments from './entity_attachments';
-import TextMore from 'app/ui/molecules/textmore';
+import TextMore from 'app/ui/molecules/content/textmore';
 import Link from 'app/ui/atoms/link'
 import { Button } from 'app/design/controls';
 import { BlockWrapper } from 'app/components/block-wrapper'

+ 1 - 1
packages/app/components/elements/contacts.js

@@ -1,6 +1,6 @@
 import { View } from 'app/design/view';
 import Link from 'app/ui/atoms/link';
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import { BlockWrapper } from 'app/components/block-wrapper'
 
 export default function ElementContacts({ data, blockWrapperProps }) {

+ 3 - 3
packages/app/components/elements/course_structure.js

@@ -3,15 +3,15 @@ import { Text } from 'app/design/typography'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
 import { Button } from 'app/design/controls'
 import Link from 'app/ui/atoms/link'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import Progress from 'app/ui/atoms/progress'
-import Scroll from 'app/ui/molecules/scroll'
+import Scroll from 'app/ui/molecules/page/scroll'
 import { memo } from 'react'
 import { useReducer, useCallback } from 'react'
 import { fetcher } from 'app/lib/fetcher'
 import { BlockByDataInt as BlockByData } from 'app/components/block';
 import { useBottomSheetData } from 'app/context/bottomsheet';
-import { DragContext, DragItem, DragControl } from 'app/ui/molecules/dropable'
+import { DragContext, DragItem, DragControl } from 'app/ui/molecules/form-controls/droppable'
 
 function CourseStructure({ data }) {
     const { setBottomSheetData } = useBottomSheetData();

+ 2 - 2
packages/app/components/elements/cover.js

@@ -12,7 +12,7 @@ import {
     LAYOUT_BREAKPOINTS,
     prepareImageForUpload,
 } from 'app/lib/util'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import * as ImagePicker from 'expo-image-picker'
 import { NeoButton } from 'app/design/controls/neo-button'
 import { genRnd } from 'app/lib/util'
@@ -31,7 +31,7 @@ import { Platform } from 'react-native'
 import { usePathname, useRouter } from 'app/lib/hooks/router'
 import { getComponent } from 'app/components/registry'
 import { useIsDesktop } from 'app/context/measure'
-import { PageHeaderSmall } from 'app/ui/molecules/page_header'
+import { PageHeaderSmall } from 'app/ui/molecules/header/page_header'
 import { canGoBackInTab, getTabKeyFromPathname, navigateBackInTab } from 'app/lib/tab-history'
 import { FeedbackHaptics } from 'app/lib/util'
 const conductorTheme = appSetting('theme', 'conductor')

+ 3 - 3
packages/app/components/elements/dashboard_stat.js

@@ -1,5 +1,5 @@
 import { Icon } from 'app/ui/atoms/icon'
-import Badge from 'app/ui/molecules/badge'
+import Badge from 'app/ui/molecules/profile/badge'
 import {
     Block,
     BlockHeader,
@@ -10,7 +10,7 @@ import {
     BlockIcon,
     BlockName,
     BlockActions,
-} from 'app/ui/molecules/page-block'
+} from 'app/ui/molecules/page/page-block'
 import { useEffect, useState } from 'react'
 import { useTranslation } from 'react-i18next'
 import { View, Row, ScrollView } from 'app/design/view'
@@ -18,7 +18,7 @@ import { Text } from 'app/design/typography'
 import { Button, NeoButton, NeoButtonLink } from 'app/design/controls'
 import Link from 'app/ui/atoms/link'
 import { useCurrentUser } from 'app/context/user'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import ProfileSwitcher from 'app/components/elements/profile_switcher'
 import { appSetting } from 'app/lib/util'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu'

+ 2 - 2
packages/app/components/elements/dashboard_stat_old.js

@@ -1,5 +1,5 @@
 import { Icon } from 'app/ui/atoms/icon'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import { useEffect, useState } from 'react';
 import { useTranslation } from 'react-i18next';
 import { View, Row, Pressable, ScrollView } from 'app/design/view'
@@ -7,7 +7,7 @@ import { Text } from 'app/design/typography'
 import { Button } from 'app/design/controls'
 import Link from 'app/ui/atoms/link'
 import { useCurrentUser } from 'app/context/user'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import ProfileSwitcher from 'app/components/elements/profile_switcher';
 import { Modal } from 'app/design/controls'
 import { appSetting } from 'app/lib/util'

+ 2 - 2
packages/app/components/elements/deploy.js

@@ -6,8 +6,8 @@ import { useState, useEffect, useCallback, useRef, useMemo } from 'react';
 import Html from 'app/ui/atoms/html'
 import { Row, View } from 'app/design/view';
 import { Text } from 'app/design/typography';
-import Confirm from 'app/ui/molecules/confirm';
-import Badge from 'app/ui/molecules/badge';
+import Confirm from 'app/ui/molecules/dialogs/confirm';
+import Badge from 'app/ui/molecules/profile/badge';
 import emitter from 'app/context/emitter';
 import Link from 'app/ui/atoms/link';
 import { isFormResponseComplete } from 'app/lib/form-helpers';

+ 2 - 2
packages/app/components/elements/edit_course_content.js

@@ -2,9 +2,9 @@ import { View, Row } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import { Button } from 'app/design/controls'
 import Link from 'app/ui/atoms/link'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import Progress from 'app/ui/atoms/progress'
-import Scroll from 'app/ui/molecules/scroll'
+import Scroll from 'app/ui/molecules/page/scroll'
 import { memo } from 'react'
 
 

+ 2 - 2
packages/app/components/elements/entity_author.js

@@ -2,7 +2,7 @@ import { getAlert } from 'app/lib/util';
 import { useCurrentUser } from 'app/context/user';
 import { View, Row } from 'app/design/view';
 import Time from 'app/ui/atoms/time';
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
 import Link from 'app/ui/atoms/link'
 import { Text } from 'app/design/typography'
@@ -13,7 +13,7 @@ import useFetchForm from 'app/lib/hooks/fetch'
 import { Modal } from 'app/design/controls'
 import Form from 'app/components/elements/form'
 import { useLayoutData } from 'app/context/layout';
-import FormModal, { handleFormModal } from 'app/ui/molecules/form_modal';
+import FormModal, { handleFormModal } from 'app/ui/molecules/dialogs/form_modal';
 import { useIsDesktop } from 'app/context/measure';
 import { BlockWrapper } from 'app/components/block-wrapper'
 

+ 1 - 1
packages/app/components/elements/entity_info.js

@@ -6,7 +6,7 @@ import Html from 'app/ui/atoms/html'
 import { Icon } from 'app/ui/atoms/icon'
 import { appSetting, cn } from 'app/lib/util'
 import { useEditableRequest } from 'app/lib/form-helpers'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import Link from 'app/ui/atoms/link'
 import { BlockWrapper } from 'app/components/block-wrapper'
 import DropdownPopup from 'app/ui/atoms/dropdown-popup'

+ 1 - 1
packages/app/components/elements/entity_poll.js

@@ -3,7 +3,7 @@ import Image, { POST_ENTRY_COVER_SIZES, POST_ENTRY_COVER_WIDTH_CAP } from 'app/u
 import { Text, H1 } from 'app/design/typography';
 import { appSetting, getYouTubeVideoId } from 'app/lib/util'
 import Video from 'app/ui/atoms/video';
-import Youtube from 'app/ui/molecules/youtube'
+import Youtube from 'app/ui/molecules/content/youtube'
 import { fetcher } from 'app/lib/fetcher';
 import { useReducer } from 'react'
 import RadioButton from 'app/ui/atoms/radiobutton';

+ 3 - 3
packages/app/components/elements/entity_text.js

@@ -8,11 +8,11 @@ import { Text, H1C } from 'app/design/typography';
 import { Input } from 'app/design/controls';
 import { appSetting, clearLinks, getYouTubeVideoId, cn } from 'app/lib/util'
 import { useEditableRequest } from 'app/lib/form-helpers'
-import { ContentMore } from 'app/ui/molecules/contentmore';
+import { ContentMore } from 'app/ui/molecules/content/contentmore';
 import EntityAttachments from './entity_attachments';
-import TextMore from 'app/ui/molecules/textmore';
+import TextMore from 'app/ui/molecules/content/textmore';
 import Video from 'app/ui/atoms/video';
-import Youtube from 'app/ui/molecules/youtube'
+import Youtube from 'app/ui/molecules/content/youtube'
 import { BlockWrapper } from 'app/components/block-wrapper'
 import RftText from 'app/components/form-fields/editor-rft-text'
 

+ 1 - 1
packages/app/components/elements/feed_item.js

@@ -2,7 +2,7 @@ import { View, Row } from 'app/design/view';
 import Html from 'app/ui/atoms/html';
 import { useState, useEffect } from 'react'
 import { useLayoutData } from 'app/context/layout';
-import Embed from 'app/ui/molecules/embed'
+import Embed from 'app/ui/molecules/content/embed'
 import { storageSet, getDataFromCache, cloneObject } from 'app/lib/util';
 import { Platform } from 'react-native'
 import { appSetting } from 'app/lib/util'

+ 4 - 4
packages/app/components/elements/grid.js

@@ -3,9 +3,9 @@ import { View, Row, ScrollView } from 'app/design/view'
 import UniList from 'app/ui/atoms/unilist'
 import Link from 'app/ui/atoms/link';
 import Time from 'app/ui/atoms/time';
-import Profile from 'app/ui/molecules/profile';
-import Confirm from 'app/ui/molecules/confirm';
-import Msg from 'app/ui/molecules/msg';
+import Profile from 'app/ui/molecules/profile/profile';
+import Confirm from 'app/ui/molecules/dialogs/confirm';
+import Msg from 'app/ui/molecules/dialogs/msg';
 import { NeoButton, NeoButtonLink } from 'app/design/controls'
 import { fetcher } from 'app/lib/fetcher';
 import React, { useEffect, useState, useMemo, useCallback, useRef, useReducer } from 'react';
@@ -20,7 +20,7 @@ import { BlockByDataInt as BlockByData } from 'app/components/block';
 import { useBottomSheetData } from 'app/context/bottomsheet';
 import { Icon } from 'app/ui/atoms/icon'
 import Redirect from 'app/ui/atoms/redirect';
-import Stripe from 'app/ui/molecules/stripe';
+import Stripe from 'app/ui/molecules/integrations/stripe';
 import { BlockWrapper } from 'app/components/block-wrapper'
 import { useInfiniteQuery } from '@tanstack/react-query'
 import Loading from 'app/ui/atoms/loading'

+ 2 - 2
packages/app/components/elements/invite_in_context.js

@@ -2,9 +2,9 @@ import { View, Row } from 'app/design/view';
 import { ButtonLink, Input } from 'app/design/controls';
 import { fetcher } from 'app/lib/fetcher';
 import { useState, useEffect } from 'react'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Text } from 'app/design/typography'
-import Card, { CardTitle } from 'app/ui/molecules/card'
+import Card, { CardTitle } from 'app/ui/molecules/page/card'
 
 import { BlockWrapper } from 'app/components/block-wrapper'
 

+ 1 - 1
packages/app/components/elements/lesson_structure.js

@@ -1,7 +1,7 @@
 import { View } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import Link from 'app/ui/atoms/link'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import { BlockWrapper } from 'app/components/block-wrapper'
 
 export default function CourseStructure({ blockWrapperProps, data }) {

+ 2 - 2
packages/app/components/elements/membership.js

@@ -1,6 +1,6 @@
 
-import ChkList from 'app/ui/molecules/checkbox_list';
-import RbList from 'app/ui/molecules/radio_list';
+import ChkList from 'app/ui/molecules/form-controls/checkbox_list';
+import RbList from 'app/ui/molecules/form-controls/radio_list';
 import { fetcher } from 'app/lib/fetcher';
 import { BlockWrapper } from 'app/components/block-wrapper'
 

+ 3 - 3
packages/app/components/elements/messenger/parts/common.js

@@ -17,9 +17,9 @@ import ItemConvo from 'app/components/elements/messenger/parts/item-convo';
 import ItemJot from 'app/components/elements/messenger/parts/item-jot';
 import { linkedText } from 'app/lib/text-helpers';
 import CreateConvo, { CreateConvoButton } from 'app/components/elements/messenger/parts/new-convo';
-import Msg from 'app/ui/molecules/msg';
+import Msg from 'app/ui/molecules/dialogs/msg';
 import { useBottomSheetData } from 'app/context/bottomsheet';
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import ElementMsg from 'app/components/elements/msg';
 import { getBackButtonWeb } from 'app/lib/common-helpers'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
@@ -31,7 +31,7 @@ import {
     Panel,
     PanelGroup,
     PanelHandler,
-} from 'app/ui/molecules/resizable-panels'
+} from 'app/ui/molecules/page/resizable-panels'
 import { useIsDesktop } from 'app/context/measure';
 import { useSetHeader, defaultHeader } from 'app/context/jotai/layout';
 import { getComponent } from 'app/components/registry';

+ 1 - 1
packages/app/components/elements/messenger/parts/item-convo.js

@@ -1,6 +1,6 @@
 import { Text } from 'app/design/typography'
 import { View, Row, Pressable } from 'app/design/view'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import Time from 'app/ui/atoms/time'
 import { useCurrentUser } from 'app/context/user';
 

+ 4 - 3
packages/app/components/elements/messenger/parts/item-jot.js

@@ -2,24 +2,25 @@ import { Text } from 'app/design/typography'
 import { View, Row, Pressable } from 'app/design/view'
 import { fetcher } from 'app/lib/fetcher';
 import React, { useState, useMemo, useCallback, memo } from 'react';
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import Time from 'app/ui/atoms/time'
 import { Button } from 'app/design/controls'
 import Form from 'app/components/elements/form';
 //import use-SWR from "swr";
 import useFetchForm from 'app/lib/hooks/fetch'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
-import Reactions from 'app/ui/molecules/reactions';
+import { getComponent } from 'app/components/registry';
 import { useTranslation } from 'react-i18next';
 import { FeedbackHaptics } from 'app/lib/util';
 import { linkedText } from 'app/lib/text-helpers';
 import { Platform } from 'react-native'
-import Carousel from 'app/ui/molecules/carousel'
+import Carousel from 'app/ui/molecules/content/carousel'
 import { Modal } from 'app/design/controls'
 import emitter from 'app/context/emitter';
 import { TouchableWithoutFeedback } from 'react-native';
 
 export default function JotItem({ item, index, handleReply }) {
+    const Reactions = getComponent('molecule', 'reactions');
     const isWeb = Platform.OS == 'web'
     const { t } = useTranslation();
     const [postData, setPostData] = useState(null)

+ 3 - 3
packages/app/components/elements/module_structure.js

@@ -2,19 +2,19 @@ import { View, Row, Pressable, ScrollView  } from 'app/design/view'
 import { useState, useReducer, useCallback } from 'react'
 import { Text } from 'app/design/typography'
 import Link from 'app/ui/atoms/link'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import CircularProgress from 'app/ui/atoms/circular_progress'
 import { Button, Modal } from 'app/design/controls'
 import { Icon } from 'app/ui/atoms/icon'
 import { fetcher } from 'app/lib/fetcher'
-import { ContentMore } from 'app/ui/molecules/contentmore';
+import { ContentMore } from 'app/ui/molecules/content/contentmore';
 import Image from 'app/ui/atoms/image';
 import Svg, { Circle } from 'react-native-svg';
 import Video from 'app/ui/atoms/video';
 import { useBottomSheetData } from 'app/context/bottomsheet';
 import { BlockByDataInt as BlockByData } from 'app/components/block';
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
-import { DragContext, DragItem, DragControl } from 'app/ui/molecules/dropable'
+import { DragContext, DragItem, DragControl } from 'app/ui/molecules/form-controls/droppable'
 
 export default function ModuleStructure({ data }) {
     const { setBottomSheetData } = useBottomSheetData();

+ 3 - 3
packages/app/components/elements/multi_post_form.js

@@ -3,10 +3,10 @@ import { NeoButton } from 'app/design/controls'
 import { useState, useEffect, useMemo } from 'react'
 import { menuItemsByNameNew, cloneObject } from 'app/lib/util'
 import { useCurrentUser } from 'app/context/user'
-import Profile from 'app/ui/molecules/profile'
-import { CardList } from 'app/ui/molecules/card'
+import Profile from 'app/ui/molecules/profile/profile'
+import { CardList } from 'app/ui/molecules/page/card'
 import { useTranslation } from 'react-i18next'
-import FormModal, { handleFormModal, getFormModal } from 'app/ui/molecules/form_modal';
+import FormModal, { handleFormModal, getFormModal } from 'app/ui/molecules/dialogs/form_modal';
 import { BlockWrapper } from 'app/components/block-wrapper'
 
 export default function MultiPostForm({ data, blockWrapperProps }) {

+ 2 - 2
packages/app/components/elements/pricing.js

@@ -1,7 +1,7 @@
 import { ScrollView, View } from 'app/design/view'
-import Tabs from 'app/ui/molecules/tabs'
+import Tabs from 'app/ui/molecules/tabs/tabs'
 import { Modal } from 'app/design/controls';
-import Stripe from 'app/ui/molecules/stripe';
+import Stripe from 'app/ui/molecules/integrations/stripe';
 import { useState, useRef } from 'react';
 import { getComponent } from 'app/components/registry';
 import { appStatic } from 'app/lib/app-static'

+ 1 - 1
packages/app/components/elements/profile_switcher.js

@@ -3,7 +3,7 @@ import Link from 'app/ui/atoms/link'
 import { useState, useRef, useEffect } from 'react'
 import { Button } from 'app/design/controls'
 import { Text } from 'app/design/typography'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { useCurrentUser } from 'app/context/user'
 import { fetcher } from 'app/lib/fetcher';
 import Redirect from 'app/ui/atoms/redirect';

+ 1 - 1
packages/app/components/elements/profiles_list.js

@@ -1,4 +1,4 @@
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { BlockWrapper } from 'app/components/block-wrapper'
 
 export default function ElementProfilesList({ data, blockWrapperProps }) {

+ 4 - 4
packages/app/components/elements/reputation.js

@@ -1,13 +1,13 @@
 import { View, Row } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import Time from 'app/ui/atoms/time'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Icon } from 'app/ui/atoms/icon'
 import { Svg, Path } from 'react-native-svg'
 import { Button, Modal } from 'app/design/controls'
 import { useState, useEffect, useCallback, useMemo } from 'react'
 import { fetcher } from 'app/lib/fetcher'
-import Tabs from 'app/ui/molecules/tabs'
+import Tabs from 'app/ui/molecules/tabs/tabs'
 import {
     Table,
     TableHeader,
@@ -17,8 +17,8 @@ import {
     TableCell,
     TableHeaderText,
     TableCellText,
-} from 'app/ui/molecules/table'
-import Badge from 'app/ui/molecules/badge'
+} from 'app/ui/molecules/page/table'
+import Badge from 'app/ui/molecules/profile/badge'
 import { useLayoutSettings } from 'app/context/layout-settings'
 import { Loading } from 'app/customization/loading'
 import { renderForm } from 'app/components/elements/form'

+ 1 - 1
packages/app/components/elements/tasks_list.js

@@ -15,7 +15,7 @@ import { fetcher } from 'app/lib/fetcher';
 import { appSetting, cn, getLayoutName, getPageData } from 'app/lib/util';
 import { useTranslation } from 'react-i18next';
 import emitter from 'app/context/emitter';
-import Confirm from 'app/ui/molecules/confirm';
+import Confirm from 'app/ui/molecules/dialogs/confirm';
 import { isFormResponseComplete } from 'app/lib/form-helpers';
 import { Loading } from 'app/customization/loading';
 

+ 1 - 1
packages/app/components/elements/wiki/document.js

@@ -5,7 +5,7 @@ import { H1C, Text } from 'app/design/typography'
 import { appSetting, openExternalLink, setClipboard } from 'app/lib/util'
 import Image from 'app/ui/atoms/image'
 import { NeoButtonLink } from 'app/design/controls'
-import Badge from 'app/ui/molecules/badge'
+import Badge from 'app/ui/molecules/profile/badge'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu'
 import { Icon } from 'app/ui/atoms/icon'
 import { Skeleton } from 'app/ui/atoms/skeleton'

+ 1 - 1
packages/app/components/elements/wiki_history.js

@@ -4,7 +4,7 @@ import { View, Row, Pressable } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import Time from 'app/ui/atoms/time'
 import Link from 'app/ui/atoms/link'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import CheckBox from 'app/ui/atoms/checkbox'
 import { Button } from 'app/design/controls'
 import { fetcher } from 'app/lib/fetcher'

+ 1 - 1
packages/app/components/form-fields/embed.js

@@ -5,7 +5,7 @@ import React, { useEffect, useState } from 'react';
 import { fetcher } from 'app/lib/fetcher';
 import { appSetting } from 'app/lib/util';
 import { ScrollView, View } from 'app/design/view'
-import Embed from 'app/ui/molecules/embed'
+import Embed from 'app/ui/molecules/content/embed'
 
 function InnerEmbed({ url }) {
     const [state, setState] = useState({

+ 1 - 1
packages/app/components/form-fields/files.js

@@ -15,7 +15,7 @@ import { Image as ImageNative, Alert, Linking, Platform } from 'react-native';
 import { useFilesData } from 'app/context/files';
 import { Image as ImageRN } from 'react-native';
 import Video from 'app/ui/atoms/video';
-import Msg from 'app/ui/molecules/msg';
+import Msg from 'app/ui/molecules/dialogs/msg';
 import { useTranslation } from 'react-i18next'
 import emitter from 'app/context/emitter';
 import { CaptionForFileInput } from 'app/customization/functions';

+ 1 - 1
packages/app/components/form-fields/initial_members.js

@@ -4,7 +4,7 @@ import { View, Row, Pressable, ScrollView } from 'app/design/view'
 import { useState, useEffect, useCallback, useReducer } from 'react';
 import { useController, useFormContext } from 'react-hook-form';
 import { fetcher } from 'app/lib/fetcher';
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Button, NeoButton, Input, Modal } from 'app/design/controls'
 import Loading from 'app/ui/atoms/loading'
 import { Icon } from 'app/ui/atoms/icon'

+ 1 - 1
packages/app/components/form-fields/phone.js

@@ -5,7 +5,7 @@ import { countries } from 'country-codes-flags-phone-codes';
 import { useTranslation } from 'react-i18next'
 import { Button, Input, Modal } from 'app/design/controls'
 //import { AsYouType } from 'libphonenumber-js' // for future
-import RbList from 'app/ui/molecules/radio_list';
+import RbList from 'app/ui/molecules/form-controls/radio_list';
 
 export default function PhoneInput({ value, placeholderTextColor, autoFocus, field, name, ariaLabel, readOnly }) {
     const { t } = useTranslation();

+ 1 - 1
packages/app/components/form-fields/stripe_connect.js

@@ -4,7 +4,7 @@ import { fetcher } from 'app/lib/fetcher';
 import { Row } from 'app/design/view'
 import { useRouter, redirectTo } from 'app/lib/hooks/router'
 import { useState } from 'react';
-import Msg from 'app/ui/molecules/msg';
+import Msg from 'app/ui/molecules/dialogs/msg';
 
 export default function FormFieldText(props) {
     const router = useRouter();

+ 3 - 3
packages/app/components/form-fields/visibility.js

@@ -4,12 +4,12 @@ import { useFormContext, useController } from 'react-hook-form';
 import { Button, Modal, Hidden } from 'app/design/controls'
 import { getVisibilityValues } from './select';
 import { visibilityById, appSetting } from 'app/lib/util';
-import RbList from 'app/ui/molecules/radio_list';
-import ChkList from 'app/ui/molecules/checkbox_list';
+import RbList from 'app/ui/molecules/form-controls/radio_list';
+import ChkList from 'app/ui/molecules/form-controls/checkbox_list';
 import { View, Row, Pressable } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import { Icon } from 'app/ui/atoms/icon'
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import { useTheme } from 'app/design/theme';
 import { useTranslation } from 'react-i18next'
 

+ 1 - 1
packages/app/components/forms/comments.js

@@ -5,7 +5,7 @@ import { Keyboard, Platform } from 'react-native'
 import { useFormContext } from 'react-hook-form'
 import { editorHtmlHasContent, removeEmptyTags } from 'app/lib/util'
 import { useCurrentUser } from 'app/context/user'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { FileButton } from 'app/lib/form-helpers'
 import { useWindowHeight, useIsDesktop } from 'app/context/measure';
 import emitter from 'app/context/emitter';

+ 1 - 1
packages/app/components/forms/confirm_email.js

@@ -1,4 +1,4 @@
-import ConfirmEmail from 'app/ui/molecules/confirm_email'
+import ConfirmEmail from 'app/ui/molecules/auth/confirm_email'
 
 
 export default function ElementConfirmEmail(props) {

+ 1 - 1
packages/app/components/forms/feed.js

@@ -6,7 +6,7 @@ import KbAvoidingView from 'app/ui/atoms/kb-avoiding-view'
 import { Platform } from 'react-native'
 import { useSafeAreaInsets } from 'app/lib/hooks/router'
 import { useCurrentUser } from 'app/context/user'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { stripTags } from 'app/lib/util'
 import { Keyboard } from 'react-native'
 import { useFormContext } from 'react-hook-form'

+ 1 - 1
packages/app/components/forms/messenger.js

@@ -5,7 +5,7 @@ import { Keyboard, Platform } from 'react-native'
 import { useFormContext } from 'react-hook-form'
 import { editorHtmlHasContent, removeEmptyTags } from 'app/lib/util'
 import { useCurrentUser } from 'app/context/user'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { FileButton } from 'app/lib/form-helpers'
 import { useWindowHeight, useIsDesktop } from 'app/context/measure'
 import { useSound } from 'app/lib/hooks/useSound'

+ 1 - 1
packages/app/components/forms/post.js

@@ -1,7 +1,7 @@
 import { View, Row } from 'app/design/view'
 import { useState } from 'react'
 import { getFormFieldByData, getHiddenFields } from 'app/lib/form-helpers'
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 
 import { useCurrentUser } from 'app/context/user';
 import { Text } from 'app/design/typography'

+ 1 - 1
packages/app/components/layout.js

@@ -1,7 +1,7 @@
 import { View } from 'app/design/view'
 import { appStatic } from 'app/lib/app-static'
 import { useCurrentUser } from 'app/context/user'
-import { PageHeader } from 'app/ui/molecules/page_header';
+import { PageHeader } from 'app/ui/molecules/header/page_header';
 
 export default function Layout({ data, children, layout }) {
 

+ 5 - 5
packages/app/components/layout.web.js

@@ -2,11 +2,11 @@ import React, { useEffect, useCallback, useState } from 'react';
 import Footer from 'app/customization/nav/footer';
 import { Modal } from 'app/design/controls'
 import Informer from 'app/components/elements/informer';
-import Suggestions from 'app/ui/molecules/suggestions';
-import AsyncWorker from 'app/ui/molecules/async_worker';
+import Suggestions from 'app/ui/molecules/misc/suggestions';
+import AsyncWorker from 'app/ui/molecules/system/async_worker';
 import { View } from 'app/design/view';
 import { useCurrentUser } from 'app/context/user'
-import BottomSheet from 'app/ui/molecules/bottomsheet_content';
+import BottomSheet from 'app/ui/molecules/dialogs/bottomsheet_content';
 import { appSetting, storageClear, storageGet, decodeText } from 'app/lib/util'
 import { appStatic } from 'app/lib/app-static'
 import { scheduleOneSignalSubscription } from 'app/lib/one-signal';
@@ -14,8 +14,8 @@ import { useThemeName } from 'app/design/theme';
 import { useTranslation } from 'react-i18next'
 import { useLayoutSettings } from 'app/context/layout-settings';
 import { useIsDesktop } from 'app/context/measure';
-import PopupModal from 'app/ui/molecules/popup_modal'
-import { PageHeader } from 'app/ui/molecules/page_header';
+import PopupModal from 'app/ui/molecules/dialogs/popup_modal'
+import { PageHeader } from 'app/ui/molecules/header/page_header';
 import { useFooter } from 'app/context/jotai/layout';
 import Script from 'next/script';
 

+ 6 - 6
packages/app/components/layouts.js

@@ -9,18 +9,18 @@ import { Row } from 'app/design/view'
 import { appStatic } from 'app/lib/app-static'
 import Redirect from 'app/ui/atoms/redirect'
 import { useRef, useEffect, useMemo } from 'react';
-import ConfirmEmail from 'app/ui/molecules/confirm_email'
-import PageByUrl from 'app/ui/molecules/page-by-url'
+import ConfirmEmail from 'app/ui/molecules/auth/confirm_email'
+import PageByUrl from 'app/ui/molecules/page/page-by-url'
 import { registerAll } from 'app/components/registry-init';
 import { Text } from 'app/design/typography'
 import { ButtonLink } from 'app/design/controls'
 import { useWindowDimensions, Platform } from 'react-native';
 import { useSetWindowSize } from 'app/context/measure';
 import semver from 'semver';
-import { Card } from 'app/ui/molecules/card'
-import { FormModalHost } from 'app/ui/molecules/form_modal';
-import { UnsavedFormConfirmHost } from 'app/ui/molecules/unsaved-form-confirm-host';
-import { VersionIncompatible, VersionWarning } from 'app/ui/molecules/version-notice';
+import { Card } from 'app/ui/molecules/page/card'
+import { FormModalHost } from 'app/ui/molecules/dialogs/form_modal';
+import { UnsavedFormConfirmHost } from 'app/ui/molecules/dialogs/unsaved-form-confirm-host';
+import { VersionIncompatible, VersionWarning } from 'app/ui/molecules/system/version-notice';
 import { useTranslation } from 'react-i18next';
 
 function WindowSizeSync() {

+ 1 - 1
packages/app/components/menu-items/button.js

@@ -4,7 +4,7 @@ import { View, Row, Pressable } from 'app/design/view';
 import React from 'react';
 import Submenu from './submenu'
 import SubmenuShare from './submenu-share'
-import ProfilesList from "app/ui/molecules/profile_list";
+import ProfilesList from "app/ui/molecules/profile/profile_list";
 import { Text } from 'app/design/typography'
 import { getIconByNameFromIconset } from 'app/lib/util';
 import { getComponent } from 'app/components/registry'

+ 5 - 5
packages/app/components/menu-items/callback.js

@@ -7,14 +7,14 @@ import SubmenuShare from './submenu-share'
 import Redirect from 'app/ui/atoms/redirect';
 import { useBottomSheetData } from 'app/context/bottomsheet';
 import { Platform } from 'react-native';
-import RbList from 'app/ui/molecules/radio_list';
-import ChkList from 'app/ui/molecules/checkbox_list';
+import RbList from 'app/ui/molecules/form-controls/radio_list';
+import ChkList from 'app/ui/molecules/form-controls/checkbox_list';
 import { storageClear, getAlert } from 'app/lib/util';
 import { useLayoutData } from 'app/context/layout';
 import { getComponent } from 'app/components/registry'
-import Badge from 'app/ui/molecules/badge'
-import Msg from 'app/ui/molecules/msg'
-import Stripe from 'app/ui/molecules/stripe';
+import Badge from 'app/ui/molecules/profile/badge'
+import Msg from 'app/ui/molecules/dialogs/msg'
+import Stripe from 'app/ui/molecules/integrations/stripe';
 import emitter from 'app/context/emitter'
 
 const handleClick = async (event, oProps, setBottomSheetData, setLayoutData, redirectdRef, buttonProps, setButtonProps, setShowMsg, setShowModal) => {

+ 1 - 1
packages/app/components/menu-items/link.js

@@ -2,7 +2,7 @@ import { Text } from 'app/design/typography'
 import { View } from 'app/design/view'
 import Link from 'app/ui/atoms/link';
 import Time from 'app/ui/atoms/time';
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import { Icon } from 'app/ui/atoms/icon'
 import { getIconByNameFromIconset } from 'app/lib/util';
 

+ 1 - 1
packages/app/components/menu-items/submenu-share.js

@@ -4,7 +4,7 @@ import { ButtonMenuActionDefault, ButtonMenuActionText, NeoButton } from 'app/de
 import { Pressable } from 'app/design/view'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
 import { setClipboard } from 'app/lib/util'
-import Msg from 'app/ui/molecules/msg';
+import Msg from 'app/ui/molecules/dialogs/msg';
 import { useState } from 'react';
 import { appSetting } from 'app/lib/util'
 import { Platform } from 'react-native'

+ 1 - 1
packages/app/components/menu.js

@@ -7,7 +7,7 @@ import { Button, NeoButton } from 'app/design/controls';
 import DynamicMenu from 'app/components/nav/menu-dynamic';
 import { DropdownMenuOpenContext } from 'app/ui/atoms/dropdown-menu';
 import { Platform } from 'react-native'
-import FormModal, { handleFormModal } from 'app/ui/molecules/form_modal';
+import FormModal, { handleFormModal } from 'app/ui/molecules/dialogs/form_modal';
 
 const ButtonEx = memo(({ visibleItemsCount, params }) => {
     const isOpen = useContext(DropdownMenuOpenContext) ?? false;

+ 1 - 1
packages/app/components/nav/footer.web.js

@@ -3,7 +3,7 @@ import { View, Row, Pressable } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import { appSetting } from 'app/lib/util'
 import { useCurrentUser } from 'app/context/user';
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import { usePathname } from 'app/lib/hooks/router';
 import { getFriendsCounter } from 'app/customization/functions';
 import { Icon } from 'app/ui/atoms/icon'

+ 1 - 1
packages/app/components/nav/menu-account.js

@@ -9,7 +9,7 @@ import {
 } from 'app/lib/util'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu'
 import { useTranslation } from 'react-i18next'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import ProfileSwitcher from 'app/components/elements/profile_switcher'
 import { useState, useRef } from 'react'
 import { Text } from 'app/design/typography'

+ 1 - 1
packages/app/components/nav/menu-add.js

@@ -2,7 +2,7 @@ import { useCurrentUser } from 'app/context/user'
 import { menuItemsByName, appSetting, menuItemsByNameNew, getHeaderToolbarNeoButtonDefaults } from 'app/lib/util'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
 import { useState } from 'react';
-import FormModal, { handleFormModal } from 'app/ui/molecules/form_modal';
+import FormModal, { handleFormModal } from 'app/ui/molecules/dialogs/form_modal';
 import { useIsDesktop } from 'app/context/measure';
 import { useMenuData } from 'app/context/menu-data';
 

+ 1 - 1
packages/app/components/nav/menu-dynamic.js

@@ -2,7 +2,7 @@ import { View, ScrollView, ViewRef, Row } from 'app/design/view'
 import { useState, useEffect, useRef, useCallback } from "react";
 import { Platform } from 'react-native'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu';
-import FormModal, { handleFormModal } from 'app/ui/molecules/form_modal';
+import FormModal, { handleFormModal } from 'app/ui/molecules/dialogs/form_modal';
 import { useIsDesktop } from 'app/context/measure';
 import { useBottomSheetData } from 'app/context/bottomsheet';
 import { cn } from 'app/lib/util'

+ 1 - 1
packages/app/components/nav/navbar-mixed.web.js

@@ -8,7 +8,7 @@ import { appSetting, LAYOUT_BREAKPOINTS } from 'app/lib/util'
 import { getBackButtonWeb } from 'app/lib/common-helpers';
 import { appStatic } from 'app/lib/app-static'
 import { menuItemsByName } from 'app/lib/util'
-import Search from 'app/ui/molecules/search'
+import Search from 'app/ui/molecules/sections/search'
 import { useTranslation } from 'react-i18next';
 import MenuDrawer from 'app/components/nav/menu-drawer'
 import ProfileSwitcher from 'app/components/elements/profile_switcher';

+ 2 - 2
packages/app/components/nav/navbar-ver.web.js

@@ -7,10 +7,10 @@ import { appSetting } from 'app/lib/util'
 import { appStatic } from 'app/lib/app-static'
 import { menuItemsByName } from 'app/lib/util'
 import Redirect from 'app/ui/atoms/redirect'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { useTranslation } from 'react-i18next';
 import MenuAdd from 'app/components/nav/menu-add'
-import BlockByUrl from 'app/ui/molecules/block'
+import BlockByUrl from 'app/ui/molecules/page/block'
 import MenuAccount from 'app/components/nav/menu-account'
 import { getComponent } from 'app/components/registry'
 import { useIsDesktop } from 'app/context/measure';

+ 5 - 5
packages/app/components/nav/tabs.js

@@ -5,7 +5,7 @@ import { useCurrentUser } from 'app/context/user';
 import { appSetting } from 'app/lib/util'
 import { Appearance, BackHandler, Platform, useColorScheme } from 'react-native';
 import { DarkTheme, DefaultTheme } from "@react-navigation/native";
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import { useEffect, useMemo, useState } from 'react'
 import { useTranslation } from 'react-i18next';
 //import BottomSheetDataContext from 'app/context/bottomsheet';
@@ -14,9 +14,9 @@ import { scheduleOneSignalSubscription } from 'app/lib/one-signal';
 import * as Linking from 'expo-linking';
 import { parseUrl } from 'app/lib/util'
 import { clearNotif } from 'app/lib/util'
-import Suggestions from 'app/ui/molecules/suggestions';
-import AsyncWorker from 'app/ui/molecules/async_worker';
-import Subscriber from 'app/ui/molecules/subscriber';
+import Suggestions from 'app/ui/molecules/misc/suggestions';
+import AsyncWorker from 'app/ui/molecules/system/async_worker';
+import Subscriber from 'app/ui/molecules/system/subscriber';
 import { useFonts } from 'expo-font';
 //import PushNotificationIOS from "@react-native-community/push-notification-ios";
 import { enableScreens } from 'react-native-screens';
@@ -43,7 +43,7 @@ import {
 import { clearAllPageCache } from 'app/lib/tab-page-cache';
 import emitter from 'app/context/emitter';
 import { useBottomSheetData } from 'app/context/bottomsheet';
-import BottomSheet from 'app/ui/molecules/bottomsheet_content';
+import BottomSheet from 'app/ui/molecules/dialogs/bottomsheet_content';
 
 enableScreens(appSetting('native', 'enable_screens'));
 

+ 2 - 2
packages/app/components/page-layout/create-account.js

@@ -5,9 +5,9 @@ import Link from 'app/ui/atoms/link'
 import { Platform } from 'react-native'
 import { appStatic } from 'app/lib/app-static'
 import { useTranslation } from 'react-i18next'
-import AuthPanel from 'app/ui/molecules/auth'
+import AuthPanel from 'app/ui/molecules/auth/auth'
 import MenuFooter from 'app/components/nav/menu-footer'
-import Page from 'app/ui/molecules/page'
+import Page from 'app/ui/molecules/page/page'
 import Html from 'app/ui/atoms/html'
 
 const isWeb = Platform.OS === 'web'

+ 1 - 1
packages/app/components/page-layout/default.js

@@ -1,6 +1,6 @@
 import { View } from 'app/design/view';
 import { appStatic } from 'app/lib/app-static';
-import Page from 'app/ui/molecules/page';
+import Page from 'app/ui/molecules/page/page';
 
 export default function PageLayout({ children, data, pageClasses }) {
     const { width, contentWidth, padding, gap } = pageClasses ?? {};

+ 4 - 4
packages/app/components/page-layout/home.js

@@ -9,7 +9,7 @@ import {
 } from 'app/lib/util'
 import { useCurrentUser } from 'app/context/user'
 import { useTranslation } from 'react-i18next'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Text } from 'app/design/typography'
 import { Platform } from 'react-native'
 import { getComponent } from 'app/components/registry'
@@ -18,10 +18,10 @@ import {
     PanelGroup,
     PanelHandler,
     resolvePanelProps
-} from 'app/ui/molecules/resizable-panels'
+} from 'app/ui/molecules/page/resizable-panels'
 import { useLayoutSettings } from 'app/context/layout-settings'
-import Badge from 'app/ui/molecules/badge'
-import Badges from 'app/ui/molecules/badges'
+import Badge from 'app/ui/molecules/profile/badge'
+import Badges from 'app/ui/molecules/profile/badges'
 import { useBreakpoint, useWindowSize, useIsDesktop, useWindowHeight, useWindowWidth, useBreakpointName } from 'app/context/measure';
 import { useSetHeader, useHeaderHeight, defaultHeader } from 'app/context/jotai/layout';
 import { useFocusEffect }  from 'app/lib/hooks/router'

+ 2 - 2
packages/app/components/page-layout/login.js

@@ -2,8 +2,8 @@ import { View, Row } from 'app/design/view'
 import { Text } from 'app/design/typography'
 import { Platform } from 'react-native'
 import { appStatic } from 'app/lib/app-static'
-import AuthPanel from 'app/ui/molecules/auth'
-import Page from 'app/ui/molecules/page'
+import AuthPanel from 'app/ui/molecules/auth/auth'
+import Page from 'app/ui/molecules/page/page'
 import MenuFooter from 'app/components/nav/menu-footer'
 import { useTranslation } from 'react-i18next'
 import Link from 'app/ui/atoms/link'

+ 1 - 1
packages/app/components/page-layout/messenger.js

@@ -3,7 +3,7 @@ import Messenger from 'app/components/elements/messenger';
 import { View } from 'app/design/view';
 import MenuFooter from 'app/components/nav/menu-footer';
 import Cell from 'app/components/cell';
-import Page from 'app/ui/molecules/page'
+import Page from 'app/ui/molecules/page/page'
 import { useSetFooter } from 'app/context/jotai/layout';
 import { useEffect } from 'react';
 

+ 1 - 1
packages/app/components/page-layout/navigator.js

@@ -1,5 +1,5 @@
 import { DataByName } from 'app/components/block'
-import { Conductor } from 'app/ui/molecules/conductor';
+import { Conductor } from 'app/ui/molecules/sections/conductor';
 import { useMemo } from 'react';
 import { useLayoutSettings } from 'app/context/layout-settings';
 import { useEffect } from 'react';

+ 2 - 2
packages/app/components/page-layout/navigator_search.js

@@ -1,7 +1,7 @@
-import { Conductor } from 'app/ui/molecules/conductor';
+import { Conductor } from 'app/ui/molecules/sections/conductor';
 import { useState, useRef } from 'react';
 import { BlockByName, DataByName } from 'app/components/block';
-import { SearchPanel } from 'app/ui/molecules/search';
+import { SearchPanel } from 'app/ui/molecules/sections/search';
 import { parseUrl, parseQueryString} from 'app/lib/util';
 import { useCurrentUser } from 'app/context/user'
 import { useLayoutSettings } from 'app/context/layout-settings';

+ 1 - 1
packages/app/components/page-layout/playground.js

@@ -16,7 +16,7 @@
 import React from 'react';
 import { ScrollView, View, Row } from 'app/design/view';
 import { Text } from 'app/design/typography';
-import Page from 'app/ui/molecules/page';
+import Page from 'app/ui/molecules/page/page';
 import {
     NeoButton, NeoButtonRef,
     NeoButtonStyleProvider, NeoControlSizeProvider,

+ 1 - 1
packages/app/components/page-layout/post-without-comments.js

@@ -3,7 +3,7 @@ import {BlockByName, DataByName} from 'app/components/block';
 import { useState, useRef } from 'react';
 import { stripTags } from 'app/lib/util';
 import { Dimensions } from 'react-native';
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import { useIsDesktop } from 'app/context/measure';
 import { Text } from 'app/design/typography';
 export default function PageLayout(props) {

+ 2 - 2
packages/app/components/page-layout/post.js

@@ -9,13 +9,13 @@ import { useLocalSearchParams } from 'app/lib/hooks/router'
 import emitter from 'app/context/emitter';
 import { useIsDesktop, useWindowHeight, useBreakpoint, useBreakpointName } from 'app/context/measure';
 import { appSetting } from 'app/lib/util';
-import { Block } from 'app/ui/molecules/page-block';
+import { Block } from 'app/ui/molecules/page/page-block';
 import {
     Panel,
     PanelGroup,
     PanelHandler,
     resolvePanelProps,
-} from 'app/ui/molecules/resizable-panels'
+} from 'app/ui/molecules/page/resizable-panels'
 import { useSetHeader, defaultHeader, useSetFooter, useHeaderHeight } from 'app/context/jotai/layout';
 import { useSafeAreaInsets } from 'app/lib/hooks/router'
 import { useStickyHeaderOffset, stickySidebarStyle } from 'app/lib/hooks/use-sticky-header-offset'

+ 1 - 1
packages/app/components/page-layout/profile.js

@@ -1,4 +1,4 @@
-import { Conductor } from 'app/ui/molecules/conductor';
+import { Conductor } from 'app/ui/molecules/sections/conductor';
 import { useState, useEffect, useMemo, memo, useCallback } from 'react';
 import { appSetting, getBlocksFromData, cloneObject, getPageData } from 'app/lib/util';
 import { useLayoutData } from 'app/context/layout';

+ 2 - 2
packages/app/components/page-layout/universal.js

@@ -2,9 +2,9 @@ import { View } from 'app/design/view';
 import { appSetting, LAYOUT_BREAKPOINTS } from 'app/lib/util'
 import { memo, useMemo } from 'react';
 import MenuFooter from 'app/components/nav/menu-footer';
-import { Panel, PanelGroup, PanelHandler } from "app/ui/molecules/resizable-panels";
+import { Panel, PanelGroup, PanelHandler } from "app/ui/molecules/page/resizable-panels";
 import { useBreakpoint } from 'app/context/measure';
-import Page from 'app/ui/molecules/page'
+import Page from 'app/ui/molecules/page/page'
 
 const isRowLayout = (cell, currentBreakpoint) => !cell.defaultSize || (cell.breakpoint && currentBreakpoint <= LAYOUT_BREAKPOINTS[cell.breakpoint]);
 const hasData = (cellData) => Array.isArray(cellData) && cellData.length > 0;

+ 2 - 2
packages/app/components/page-layout/wiki.js

@@ -1,7 +1,7 @@
 import { View } from 'app/design/view'
 import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
 import { appSetting, LAYOUT_BREAKPOINTS, stripTags } from 'app/lib/util'
-import Page from 'app/ui/molecules/page'
+import Page from 'app/ui/molecules/page/page'
 import MenuFooter from 'app/components/nav/menu-footer'
 import { useTranslation } from 'react-i18next'
 import {
@@ -9,7 +9,7 @@ import {
   PanelGroup,
   PanelHandler,
   resolvePanelProps,
-} from 'app/ui/molecules/resizable-panels'
+} from 'app/ui/molecules/page/resizable-panels'
 import { useBreakpoint, useBreakpointName, useIsDesktop } from 'app/context/measure'
 import { BlockWrapper } from 'app/components/block-wrapper'
 import { BlockByData } from 'app/components/block'

+ 1 - 1
packages/app/components/skeletons/_map.js

@@ -1,5 +1,5 @@
 import { View, ScrollView, Row } from 'app/design/view'
-import Card, {CardList} from 'app/ui/molecules/card'
+import Card, {CardList} from 'app/ui/molecules/page/card'
 import { memo } from 'react'
 const items = Array(5).fill('');
 

+ 6 - 6
packages/app/components/units/comments.js

@@ -5,9 +5,9 @@ import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
 import { Button, Modal } from 'app/design/controls'
 import Time from 'app/ui/atoms/time'
-import Profile from 'app/ui/molecules/profile'
-import { ContentMore } from 'app/ui/molecules/contentmore'
-import Embed from 'app/ui/molecules/embed'
+import Profile from 'app/ui/molecules/profile/profile'
+import { ContentMore } from 'app/ui/molecules/content/contentmore'
+import Embed from 'app/ui/molecules/content/embed'
 import Menu from 'app/components/menu'
 import { useCurrentUser } from 'app/context/user'
 import DropdownMenu from 'app/ui/atoms/dropdown-menu'
@@ -16,16 +16,16 @@ import Form from 'app/components/elements/form'
 import useFetchForm from 'app/lib/hooks/fetch'
 import { useTranslation } from 'react-i18next'
 import Link from 'app/ui/atoms/link'
-import Carousel from 'app/ui/molecules/carousel'
+import Carousel from 'app/ui/molecules/content/carousel'
 import { getComponent } from 'app/components/registry'
 import { StarsView } from 'app/ui/atoms/stars'
 import Loading from 'app/ui/atoms/loading'
 import { Icon } from 'app/ui/atoms/icon'
 import { usePulseOne } from 'app/lib/hooks/usePulseOnce'
 import emitter from 'app/context/emitter';
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import { getPageData } from 'app/lib/util';
-import FormModal from 'app/ui/molecules/form_modal';
+import FormModal from 'app/ui/molecules/dialogs/form_modal';
 
 export default function UnitComments(props) {
     const UnitView = props.mode == 'search' ? UnitCommentsSearch : UnitCommentsDefault

+ 3 - 3
packages/app/components/units/content-list/bx_ads.js

@@ -2,9 +2,9 @@ import Image from "app/ui/atoms/image";
 import { appSetting } from "app/lib/util";
 import { Text } from "app/design/typography";
 import { View } from "app/design/view";
-import Profile from "app/ui/molecules/profile";
-import { CardList } from 'app/ui/molecules/card'
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import Profile from "app/ui/molecules/profile/profile";
+import { CardList } from 'app/ui/molecules/page/card'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 
 export default function Unit(props) {
     const data = props.data;

+ 3 - 3
packages/app/components/units/content-list/bx_albums.js

@@ -1,14 +1,14 @@
 import { useState, useCallback } from 'react'
 import Image from 'app/ui/atoms/image'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { appSetting } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { Card } from 'app/ui/molecules/card'
+import { Card } from 'app/ui/molecules/page/card'
 import Link from 'app/ui/atoms/link'
 import { Skeleton } from 'app/ui/atoms/skeleton'
 import Time from 'app/ui/atoms/time'
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 
 export default function defaultUnit({ data }) {
 

+ 2 - 2
packages/app/components/units/content-list/bx_channels.js

@@ -4,9 +4,9 @@ import Image from 'app/ui/atoms/image'
 import Link from 'app/ui/atoms/link'
 import { tp } from 'app/lib/util'
 import { Text } from 'app/design/typography'
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next';
 import { getUnitMenuItems } from 'app/customization/functions';
 import { View, Row } from 'app/design/view'

+ 2 - 2
packages/app/components/units/content-list/bx_courses.js

@@ -5,9 +5,9 @@ import Link from 'app/ui/atoms/link'
 import { tp } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next';
 import { getUnitMenuItems } from 'app/customization/functions';
 

+ 2 - 2
packages/app/components/units/content-list/bx_events.js

@@ -4,9 +4,9 @@ import Link from 'app/ui/atoms/link'
 import { FeedbackHaptics, tp, formatDateInterval } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next';
 import { getUnitMenuItems } from 'app/customization/functions';
 import { Skeleton } from 'app/ui/atoms/skeleton';

+ 3 - 3
packages/app/components/units/content-list/bx_forum.js

@@ -2,12 +2,12 @@ import Image from "app/ui/atoms/image";
 import { Text } from "app/design/typography";
 import { View } from "app/design/view";
 import Menu from "app/components/menu";
-import { Card, CardList } from 'app/ui/molecules/card'
+import { Card, CardList } from 'app/ui/molecules/page/card'
 import Time from "app/ui/atoms/time";
 import { AuthorData } from 'app/lib/common-helpers'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { appSetting } from 'app/lib/util'
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 import { Skeleton } from 'app/ui/atoms/skeleton'
 
 const Units = {};

+ 2 - 2
packages/app/components/units/content-list/bx_groups.js

@@ -4,9 +4,9 @@ import Link from 'app/ui/atoms/link'
 import { tp } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { Card, CardList } from 'app/ui/molecules/card'
+import { Card, CardList } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next';
 import { getUnitMenuItems } from 'app/customization/functions';
 import { Skeleton } from 'app/ui/atoms/skeleton';

+ 3 - 2
packages/app/components/units/content-list/bx_jobs.js

@@ -2,10 +2,11 @@ import Image from "app/ui/atoms/image";
 import Link from "app/ui/atoms/link";
 import { Text } from "app/design/typography";
 import { View, Row } from "app/design/view";
-import { CardList } from 'app/ui/molecules/card'
-import Stars from 'app/ui/molecules/stars';
+import { CardList } from 'app/ui/molecules/page/card'
+import { getComponent } from 'app/components/registry';
 
 export default function Unit(props) {
+    const Stars = getComponent('molecule', 'stars');
     const data = props.data;
 
 

+ 5 - 4
packages/app/components/units/content-list/bx_market.js

@@ -2,13 +2,14 @@ import Image from "app/ui/atoms/image";
 import { appSetting } from "app/lib/util";
 import { Text } from "app/design/typography";
 import { View, Row } from "app/design/view";
-import { CardList } from 'app/ui/molecules/card'
-import Profile from 'app/ui/molecules/profile';
-import Stars from 'app/ui/molecules/stars';
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import { CardList } from 'app/ui/molecules/page/card'
+import Profile from 'app/ui/molecules/profile/profile';
+import { getComponent } from 'app/components/registry';
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 import { Skeleton } from 'app/ui/atoms/skeleton';
 
 export default function Unit(props) {
+    const Stars = getComponent('molecule', 'stars');
     const data = props.data;
     let sMeta = (
         <Profile

+ 2 - 2
packages/app/components/units/content-list/bx_organizations.js

@@ -5,9 +5,9 @@ import Link from 'app/ui/atoms/link'
 import { tp } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next'
 import Letter from 'app/ui/atoms/letter'
 import { getUnitMenuItems } from 'app/customization/functions'

+ 2 - 2
packages/app/components/units/content-list/bx_persons.js

@@ -5,9 +5,9 @@ import Link from 'app/ui/atoms/link'
 import { tp } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next'
 import Letter from 'app/ui/atoms/letter'
 import { getUnitMenuItems } from 'app/customization/functions'

+ 3 - 3
packages/app/components/units/content-list/bx_polls.js

@@ -1,10 +1,10 @@
 import Image from 'app/ui/atoms/image'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { appSetting } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View } from 'app/design/view'
-import { CardList } from 'app/ui/molecules/card'
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import { CardList } from 'app/ui/molecules/page/card'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 
 export default function defaultUnit(props) {
     const data = props.data;

+ 2 - 2
packages/app/components/units/content-list/bx_posts.js

@@ -2,9 +2,9 @@ import Image from 'app/ui/atoms/image'
 import { appSetting } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View } from 'app/design/view'
-import { CardList, Card } from 'app/ui/molecules/card'
+import { CardList, Card } from 'app/ui/molecules/page/card'
 import { AuthorData } from 'app/lib/common-helpers'
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 import { Skeleton } from 'app/ui/atoms/skeleton';
 const Units = {};
 

+ 1 - 1
packages/app/components/units/content-list/bx_projects.js

@@ -3,7 +3,7 @@ import Image from 'app/ui/atoms/image'
 import Link from 'app/ui/atoms/link'
 import { Text } from 'app/design/typography'
 import { View } from 'app/design/view'
-import { Card } from 'app/ui/molecules/card'
+import { Card } from 'app/ui/molecules/page/card'
 import { getUnitMenuItems } from 'app/customization/functions';
 import { Skeleton } from 'app/ui/atoms/skeleton';
 import { Platform } from 'react-native'

+ 2 - 2
packages/app/components/units/content-list/bx_resources.js

@@ -1,9 +1,9 @@
 import Image from 'app/ui/atoms/image'
 import Link from 'app/ui/atoms/link'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Text } from 'app/design/typography'
 import { View } from 'app/design/view'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 
 export default function defaultUnit(props) {
     const data = props.data;

+ 4 - 4
packages/app/components/units/content-list/bx_spaces.js

@@ -4,13 +4,13 @@ import Link from 'app/ui/atoms/link'
 import { tp, appSetting } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { Card } from 'app/ui/molecules/card'
+import { Card } from 'app/ui/molecules/page/card'
 import Redirect from 'app/ui/atoms/redirect'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next';
 import { getUnitMenuItems } from 'app/customization/functions';
-import Profile from 'app/ui/molecules/profile'
-import Badge from 'app/ui/molecules/badge'
+import Profile from 'app/ui/molecules/profile/profile'
+import Badge from 'app/ui/molecules/profile/badge'
 
 export default function Unit(props) {
     const { t } = useTranslation();

+ 2 - 2
packages/app/components/units/content-list/bx_tasks.js

@@ -1,8 +1,8 @@
 import { useMemo, useState, useCallback } from 'react';
 import { View, Row, Pressable } from 'app/design/view';
 import { Text } from 'app/design/typography';
-import ProfilesList from 'app/ui/molecules/profile_list';
-import { Card } from 'app/ui/molecules/card';
+import ProfilesList from 'app/ui/molecules/profile/profile_list';
+import { Card } from 'app/ui/molecules/page/card';
 import { Modal } from 'app/design/controls';
 import { Icon } from 'app/ui/atoms/icon';
 import Menu from 'app/components/menu';

+ 2 - 2
packages/app/components/units/content-list/bx_tasks_timer.js

@@ -1,8 +1,8 @@
 import { View, Row } from 'app/design/view';
 import { Text } from 'app/design/typography';
 import Link from 'app/ui/atoms/link';
-import Profile from 'app/ui/molecules/profile';
-import { Card } from 'app/ui/molecules/card';
+import Profile from 'app/ui/molecules/profile/profile';
+import { Card } from 'app/ui/molecules/page/card';
 import { getComponent } from 'app/components/registry';
 
 export default function Unit({ data: timerData }) {

+ 3 - 3
packages/app/components/units/content-list/bx_videos.js

@@ -1,14 +1,14 @@
 import { useState, useCallback } from 'react'
 import Image from 'app/ui/atoms/image'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { appSetting } from 'app/lib/util'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
-import { Card } from 'app/ui/molecules/card'
+import { Card } from 'app/ui/molecules/page/card'
 import Link from 'app/ui/atoms/link'
 import { Skeleton } from 'app/ui/atoms/skeleton'
 import Time from 'app/ui/atoms/time'
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 
 export default function defaultUnit({ data }) {
 

+ 2 - 2
packages/app/components/units/content-list/default.js

@@ -1,9 +1,9 @@
 import Image from 'app/ui/atoms/image'
 import Link from 'app/ui/atoms/link'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Text } from 'app/design/typography'
 import { View } from 'app/design/view'
-import Card from 'app/ui/molecules/card'
+import Card from 'app/ui/molecules/page/card'
 import { Skeleton } from 'app/ui/atoms/skeleton'
 
 export default function defaultUnit(props) {

+ 4 - 3
packages/app/components/units/convos-feeds.js

@@ -1,5 +1,5 @@
 import Time from 'app/ui/atoms/time';
-import Profile from 'app/ui/molecules/profile';
+import Profile from 'app/ui/molecules/profile/profile';
 import { Text } from 'app/design/typography';
 import { Pressable, View } from 'app/design/view';
 import React, { memo, useEffect, useMemo, useState, useCallback } from 'react';
@@ -10,7 +10,7 @@ import Html from "app/ui/atoms/html";
 import { Button } from "app/design/controls";
 import { HistoryServices as Services } from "app/components/elements/messenger/services";
 import DropdownMenu from "app/ui/atoms/dropdown-menu";
-import Reactions from 'app/ui/molecules/reactions';
+import { getComponent } from 'app/components/registry';
 import Form from "../elements/form";
 import { useSendData, updateHistoryPageCache } from "../elements/messenger/hooks/useHistory";
 
@@ -57,7 +57,7 @@ const ListFeed = memo((data) => {
 
 function CarouselMemo({ aImg, b }) {
     const computedData = useMemo(() => {
-        const Carousel = memo(dynamic(() => import('app/ui/molecules/carousel')));
+        const Carousel = memo(dynamic(() => import('app/ui/molecules/content/carousel')));
         return <Carousel data={aImg} />
     }, [b]);
 
@@ -77,6 +77,7 @@ const ImagesComponent = ({ files }) => {
 }
 
 const MsgFeed = memo(({ item, handlerMenuSelect }) => {
+    const Reactions = getComponent('molecule', 'reactions');
     const { currentUser } = useCurrentUser(),
         { author_data, created, count, files, message, menu, id, reactions } = item,
         sCommentClass = "bg-muted-foreground/10 rounded-tl-none rounded-2xl px-4 u-vanilla-html-small",

+ 2 - 2
packages/app/components/units/feed.js

@@ -22,10 +22,10 @@ import {
     CardHeader,
     CardTitle,
     CardContent,
-} from 'app/ui/molecules/card'
+} from 'app/ui/molecules/page/card'
 import AnimatedBlock from 'app/ui/atoms/animated-block'
 import { getComponent } from 'app/components/registry'
-import Scroll from 'app/ui/molecules/scroll'
+import Scroll from 'app/ui/molecules/page/scroll'
 import Link from 'app/ui/atoms/link'
 import { useOpenModalByUrl } from 'app/context/jotai/modal';
 import { Skeleton } from 'app/ui/atoms/skeleton';

+ 3 - 3
packages/app/components/units/invitations.js

@@ -1,14 +1,14 @@
 import Link from 'app/ui/atoms/link'
-import Profile from 'app/ui/molecules/profile'
+import Profile from 'app/ui/molecules/profile/profile'
 import { Text } from 'app/design/typography'
 import { View, Row } from 'app/design/view'
 import { fetcher } from 'app/lib/fetcher';
 import { useState } from 'react';
 import { ButtonLink, Button } from 'app/design/controls'
 import Image from 'app/ui/atoms/image'
-import ProfilesList from 'app/ui/molecules/profile_list'
+import ProfilesList from 'app/ui/molecules/profile/profile_list'
 import { useTranslation } from 'react-i18next';
-import { CardList } from 'app/ui/molecules/card'
+import { CardList } from 'app/ui/molecules/page/card'
 import { tp } from 'app/lib/util'
 
 export default function Unit(props) {

+ 3 - 3
packages/app/components/units/notifications.js

@@ -1,11 +1,11 @@
 import { memo } from 'react';
 import { View } from 'app/design/view'
 import Time from 'app/ui/atoms/time';
-import { CardList } from 'app/ui/molecules/card'
-import Profile from 'app/ui/molecules/profile';
+import { CardList } from 'app/ui/molecules/page/card'
+import Profile from 'app/ui/molecules/profile/profile';
 import Html from 'app/ui/atoms/html';
 import { Skeleton } from 'app/ui/atoms/skeleton';
-import LinkOrModal from 'app/ui/molecules/link-or-modal'
+import LinkOrModal from 'app/ui/molecules/dialogs/link-or-modal'
 import { appSetting, stripTags } from 'app/lib/util'
 import { Text } from 'app/design/typography';
 

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio