@allbluecn/web-app 0.9.2 → 0.9.3

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 (223) hide show
  1. package/package.json +32 -34
  2. package/src/__tests__/components/reference-inline.test.tsx +1 -1
  3. package/src/components/agents/agents-page.tsx +1 -1
  4. package/src/components/animated-icons/layout-panel-top.tsx +1 -1
  5. package/src/components/auth/auth-layout.tsx +1 -1
  6. package/src/components/knowledge/dialog/knowledge-form-dialog.tsx +1 -1
  7. package/src/components/knowledge/editor/doc-header.tsx +1 -1
  8. package/src/components/knowledge-public/sharers-avatar-group.tsx +1 -1
  9. package/src/components/layout/sidebar-03/__tests__/nav-workspace.test.tsx +1 -1
  10. package/src/components/layout/sidebar-03/app-sidebar.tsx +1 -1
  11. package/src/components/layout/sidebar-03/nav-workspace.tsx +1 -1
  12. package/src/components/layout/sidebar-03/user-menu.tsx +1 -1
  13. package/src/components/magicui/animated-theme-toggler.tsx +1 -1
  14. package/src/components/magicui/grid-pattern.tsx +1 -1
  15. package/src/components/project/create-project-dialog.tsx +1 -1
  16. package/src/components/project/invite-member-dialog.tsx +1 -1
  17. package/src/components/project/project-activity-list.tsx +1 -1
  18. package/src/components/project/project-member-manager.tsx +1 -1
  19. package/src/components/settings/personal-team/account/avatar/notion-avatar.tsx +2 -2
  20. package/src/components/settings/personal-team/team/team-member-list.tsx +1 -1
  21. package/src/components/shadcn-space/blocks/hero-01/header.tsx +1 -1
  22. package/src/components/{ui-shared → shared-kit/auth}/auth-layout.tsx +1 -1
  23. package/src/components/{ui-shared → shared-kit/decorative}/grid-pattern.tsx +1 -1
  24. package/src/components/{ui-shared → shared-kit/dialogs}/name-confirm-dialog.tsx +6 -5
  25. package/src/components/{shared → shared-kit/icons}/__tests__/lucide-curated-icons.test.ts +2 -2
  26. package/src/components/{shared → shared-kit/icons}/__tests__/lucide-icon-data.test.ts +1 -1
  27. package/src/components/{shared → shared-kit/icons}/__tests__/lucide-icon-picker.test.tsx +5 -5
  28. package/src/components/{ui-shared → shared-kit}/index.ts +9 -6
  29. package/src/components/{ui-shared → shared-kit/layout}/layout-panel-top.tsx +1 -1
  30. package/src/components/{ui-shared → shared-kit/navigation}/nav-float-button.tsx +2 -2
  31. package/src/components/{ui-shared → shared-kit/theme}/animated-theme-toggler.tsx +1 -1
  32. package/src/components/story/columns.tsx +1 -1
  33. package/src/components/story/create-story-dialog.tsx +2 -2
  34. package/src/components/story/detail/__tests__/activity-timeline.test.tsx +1 -1
  35. package/src/components/story/detail/activity-timeline.tsx +2 -2
  36. package/src/components/story/detail/comment-item.tsx +1 -1
  37. package/src/components/story/detail/story-detail-body.tsx +2 -2
  38. package/src/components/story/detail/story-detail-toolbar/associated-attachments-panel.tsx +1 -1
  39. package/src/components/story/display/group-resolver.tsx +2 -2
  40. package/src/components/story/filters/applied-filters.tsx +1 -1
  41. package/src/components/story/inline-editors/assignee-editor.tsx +1 -1
  42. package/src/components/story/inline-editors/story-select-dialog.tsx +1 -1
  43. package/src/components/story/relations/story-ref-row.tsx +2 -2
  44. package/src/components/story/story-panel-header.tsx +1 -1
  45. package/src/components/story/story-toolbar.tsx +1 -1
  46. package/src/components/story/transfer-story-popover.tsx +1 -1
  47. package/src/components/story/views/create-view-dialog.tsx +1 -1
  48. package/src/components/story/views/kanban-card.tsx +1 -1
  49. package/src/components/story/views/story-list/index.tsx +1 -1
  50. package/src/components/story/views/story-list/inline-story-creator.tsx +1 -1
  51. package/src/components/tiptap/mindmap/mind-map.tsx +2 -2
  52. package/src/components/tiptap/mindmap/mindmap-fullscreen-dialog.tsx +1 -1
  53. package/src/components/tiptap/node/annotation-node/annotation-node-view.tsx +1 -1
  54. package/src/components/tiptap/node/doc-card-extension.tsx +2 -2
  55. package/src/components/tiptap/notion-like/notion-like-editor-header.tsx +2 -2
  56. package/src/components/tiptap/ui/doc-reference-interaction/doc-reference-interaction.tsx +2 -2
  57. package/src/components/tiptap/ui/mention-dropdown-menu/mention-dropdown-menu.tsx +2 -2
  58. package/src/components/tiptap/ui/reference-dropdown-menu/reference-dropdown-menu.tsx +1 -1
  59. package/src/components/tiptap/ui/slash-dropdown-menu/slash-dropdown-menu.tsx +1 -1
  60. package/src/components/ui/alert-dialog.tsx +216 -1
  61. package/src/components/ui/badge.tsx +66 -1
  62. package/src/components/ui/button.tsx +84 -1
  63. package/src/components/ui/card.tsx +120 -1
  64. package/src/components/ui/checkbox.tsx +50 -1
  65. package/src/components/ui/context-menu.tsx +280 -1
  66. package/src/components/ui/dialog.tsx +183 -1
  67. package/src/components/ui/dropdown-menu.tsx +286 -1
  68. package/src/components/ui/empty.tsx +121 -1
  69. package/src/components/ui/input.tsx +36 -1
  70. package/src/components/ui/label.tsx +39 -1
  71. package/src/components/ui/popover.tsx +106 -1
  72. package/src/components/ui/resizable.tsx +67 -1
  73. package/src/components/ui/select.tsx +207 -1
  74. package/src/components/ui/sidebar.tsx +708 -1
  75. package/src/components/ui/skeleton.tsx +30 -1
  76. package/src/components/ui/sonner.tsx +37 -1
  77. package/src/components/ui/switch.tsx +48 -1
  78. package/src/components/ui/textarea.tsx +35 -1
  79. package/src/components/ui/tooltip.tsx +72 -1
  80. package/src/components/workspace/create-workspace-dialog.tsx +1 -1
  81. package/src/lib/auth/auth-client.ts +1 -1
  82. package/src/lib/changelog/sdk-versions.ts +16 -2
  83. package/src/lib/utils.ts +6 -1
  84. package/src/plugins/core/inspiration/pages/inspiration-page.tsx +1 -1
  85. package/src/plugins/core/inspiration/ui.tsx +1 -1
  86. package/src/plugins/core/prd/components/agent-input.tsx +3 -3
  87. package/src/plugins/core/prd/components/component-editor/collapsible-section.tsx +1 -1
  88. package/src/plugins/core/prd/components/component-editor/content-section.tsx +3 -3
  89. package/src/plugins/core/prd/components/component-editor/style-fields.tsx +3 -3
  90. package/src/plugins/core/prd/components/component-thumbnail.tsx +1 -1
  91. package/src/plugins/core/prd/components/dialog/create-prd-dialog.tsx +3 -3
  92. package/src/plugins/core/prd/components/dialog/prd-detail-client.tsx +4 -4
  93. package/src/plugins/core/prd/components/page-version-panel/components/create-version-dialog.tsx +2 -2
  94. package/src/plugins/core/prd/components/page-version-panel/components/delete-version-dialog.tsx +2 -2
  95. package/src/plugins/core/prd/components/page-version-panel/components/edit-version-dialog.tsx +2 -2
  96. package/src/plugins/core/prd/components/page-version-panel.tsx +9 -9
  97. package/src/plugins/core/prd/components/page-version-tree.tsx +5 -5
  98. package/src/plugins/core/prd/components/prd-agent-panel.tsx +3 -3
  99. package/src/plugins/core/prd/components/prd-comment-review-panel.tsx +7 -7
  100. package/src/plugins/core/prd/components/prd-component-editor-content.tsx +2 -2
  101. package/src/plugins/core/prd/components/prd-dashboard.tsx +8 -8
  102. package/src/plugins/core/prd/components/prd-doc-panel.tsx +2 -2
  103. package/src/plugins/core/prd/components/prd-editor-layout.tsx +4 -4
  104. package/src/plugins/core/prd/components/prd-filter-bar.tsx +1 -1
  105. package/src/plugins/core/prd/components/prd-left-sidebar.tsx +4 -4
  106. package/src/plugins/core/prd/components/prd-navigation.tsx +6 -6
  107. package/src/plugins/core/prd/components/prd-prototype-panel.tsx +2 -2
  108. package/src/plugins/core/prd/components/prd-right-sidebar.tsx +3 -3
  109. package/src/plugins/core/prd/components/prd-share-panel/components/single-version-share-card.tsx +7 -7
  110. package/src/plugins/core/prd/components/prd-share-panel.tsx +10 -10
  111. package/src/plugins/core/prd/components/prd-tree-page-tab.tsx +5 -5
  112. package/src/plugins/core/prd/components/prototype/PrototypeCanvas.tsx +2 -2
  113. package/src/plugins/core/prd/components/restore-version-dialog.tsx +2 -2
  114. package/src/plugins/core/prd/components/share/prd-share-client.tsx +1 -1
  115. package/src/plugins/core/prd/components/share/share-comment-panel.tsx +6 -6
  116. package/src/plugins/core/prd/components/share/share-comment-review-panel.tsx +2 -2
  117. package/src/plugins/core/prd/components/share/share-layout.tsx +1 -1
  118. package/src/plugins/core/prd/components/share/share-nav-bar.tsx +4 -4
  119. package/src/plugins/core/prd/components/share/share-password-gate.tsx +4 -4
  120. package/src/plugins/core/prd/components/share/share-prototype-view.tsx +1 -1
  121. package/src/plugins/core/prd/components/share/share-review-panel.tsx +5 -5
  122. package/src/plugins/core/prd/components/share/share-theme-toggle.tsx +1 -1
  123. package/src/plugins/core/prd/components/share/version-share-client.tsx +1 -1
  124. package/src/plugins/core/prd/pages/prd-detail-page.tsx +2 -2
  125. package/src/plugins/core/prd/pages/share-prd-page.tsx +1 -1
  126. package/src/plugins/core/prd/prd-nav.tsx +1 -1
  127. package/src/plugins/core/tags/nav-tag.tsx +7 -7
  128. package/src/plugins/core/tags/pages/tag-detail-page.tsx +1 -1
  129. package/src/plugins/core/tags/tag-badge.tsx +2 -2
  130. package/src/plugins/core/tags/tag-color-picker.tsx +1 -1
  131. package/src/plugins/core/tags/tag-manager.tsx +6 -6
  132. package/src/plugins/core/tags/tag-selector.tsx +3 -3
  133. package/src/providers/index.tsx +1 -1
  134. package/src/providers/timezone-provider.tsx +1 -1
  135. package/src/routes/_nav/acceptance-criteria/route.tsx +1 -1
  136. package/src/routes/_nav/apps/anyhub/$id/route.tsx +1 -1
  137. package/src/routes/_nav/apps/anyhub/route.tsx +1 -1
  138. package/src/routes/_nav/bugs/route.tsx +1 -1
  139. package/src/routes/_nav/dashboard/-components/avatar-group.tsx +1 -1
  140. package/src/routes/_nav/dashboard/route.lazy.tsx +1 -1
  141. package/src/routes/_nav/knowledge/$kbId/doc/$docId/route.lazy.tsx +1 -1
  142. package/src/routes/_nav/knowledge/index.lazy.tsx +1 -1
  143. package/src/routes/_nav/notion-like/route.tsx +1 -1
  144. package/src/routes/_nav/pricing-02/route.tsx +1 -1
  145. package/src/routes/_nav/projects/$projectId/$storyId/route.lazy.tsx +1 -1
  146. package/src/routes/_nav/projects/$projectId/index.lazy.tsx +3 -3
  147. package/src/routes/_nav/projects/$projectId/iterations/index.lazy.tsx +1 -1
  148. package/src/routes/_nav/projects/$projectId/settings/route.lazy.tsx +3 -3
  149. package/src/routes/_nav/route.lazy.tsx +1 -1
  150. package/src/routes/_nav/settings/general/route.lazy.tsx +1 -1
  151. package/src/routes/_nav/test-cases/route.tsx +1 -1
  152. package/src/routes/_nav/workspaces/$workspaceId/route.lazy.tsx +1 -1
  153. package/src/routes/_nav/workspaces/$workspaceId/settings/route.lazy.tsx +2 -2
  154. package/src/routes/_nav/workspaces/index.lazy.tsx +1 -1
  155. package/src/routes/invite/$token/route.lazy.tsx +1 -1
  156. package/src/server/__tests__/agent-client-graph.test.ts +1 -1
  157. package/src/components/shared/name-confirm-dialog.tsx +0 -1
  158. package/src/components/shared/nav-float-button.tsx +0 -1
  159. package/src/components/shared/placeholder-page.tsx +0 -1
  160. package/src/components/ui-shared/alert-dialog.tsx +0 -216
  161. package/src/components/ui-shared/avatar.tsx +0 -129
  162. package/src/components/ui-shared/badge.tsx +0 -66
  163. package/src/components/ui-shared/button.tsx +0 -84
  164. package/src/components/ui-shared/card.tsx +0 -120
  165. package/src/components/ui-shared/checkbox.tsx +0 -50
  166. package/src/components/ui-shared/context-menu.tsx +0 -280
  167. package/src/components/ui-shared/dialog.tsx +0 -183
  168. package/src/components/ui-shared/dropdown-menu.tsx +0 -286
  169. package/src/components/ui-shared/empty.tsx +0 -121
  170. package/src/components/ui-shared/input.tsx +0 -36
  171. package/src/components/ui-shared/item.tsx +0 -213
  172. package/src/components/ui-shared/kbd.tsx +0 -33
  173. package/src/components/ui-shared/label.tsx +0 -39
  174. package/src/components/ui-shared/popover.tsx +0 -106
  175. package/src/components/ui-shared/resizable.tsx +0 -67
  176. package/src/components/ui-shared/select.tsx +0 -207
  177. package/src/components/ui-shared/separator.tsx +0 -45
  178. package/src/components/ui-shared/sheet.tsx +0 -164
  179. package/src/components/ui-shared/sidebar.tsx +0 -708
  180. package/src/components/ui-shared/skeleton.tsx +0 -30
  181. package/src/components/ui-shared/sonner.tsx +0 -37
  182. package/src/components/ui-shared/switch.tsx +0 -48
  183. package/src/components/ui-shared/textarea.tsx +0 -35
  184. package/src/components/ui-shared/tooltip.tsx +0 -72
  185. package/src/components/ui-shared/utils.ts +0 -6
  186. package/src/lib/utils.d.ts +0 -1
  187. package/src/plugins/.gen-manifest.json +0 -13
  188. package/src/plugins/modules.gen.ts +0 -20
  189. package/src/plugins/plugins.gen.ts +0 -20
  190. package/src/plugins/ui.gen.ts +0 -8
  191. package/src/routes/_nav/inspiration/route.tsx +0 -8
  192. package/src/routes/_nav/prd/$id/route.tsx +0 -9
  193. package/src/routes/_nav/prd/index.tsx +0 -9
  194. package/src/routes/_nav/prd/route.tsx +0 -8
  195. package/src/routes/_nav/tags/$id/route.tsx +0 -8
  196. package/src/routes/_nav/tags/index.tsx +0 -8
  197. package/src/routes/_nav/tags/route.tsx +0 -8
  198. package/src/routes/_nav/tags/settings/route.tsx +0 -9
  199. package/src/routes/share/prd/$prdId/route.tsx +0 -10
  200. package/src/types/open-file-viewer.d.ts +0 -14
  201. /package/src/components/{ui-shared → shared-kit/ai}/ai-command-button.tsx +0 -0
  202. /package/src/components/{ui-shared → shared-kit/ai}/ai-stream-text.tsx +0 -0
  203. /package/src/components/{ui-shared → shared-kit/auth}/auth-client.ts +0 -0
  204. /package/src/components/{ui-shared → shared-kit/avatars}/notion-avatar.tsx +0 -0
  205. /package/src/components/{ui-shared → shared-kit/avatars}/user-avatar.tsx +0 -0
  206. /package/src/components/{shared → shared-kit/data-viz}/contribution-graph-tooltip.tsx +0 -0
  207. /package/src/components/{shared → shared-kit/dev}/component-preview.tsx +0 -0
  208. /package/src/components/{ui-shared → shared-kit/hooks}/use-mobile.ts +0 -0
  209. /package/src/components/{shared → shared-kit/i18n}/language-switcher.tsx +0 -0
  210. /package/src/components/{shared → shared-kit/i18n}/translator-text.tsx +0 -0
  211. /package/src/components/{shared → shared-kit/icons}/lucide-icon-picker/curated-icons.ts +0 -0
  212. /package/src/components/{shared → shared-kit/icons}/lucide-icon-picker/icon-data.ts +0 -0
  213. /package/src/components/{shared → shared-kit/icons}/lucide-icon-picker/index.tsx +0 -0
  214. /package/src/components/{shared → shared-kit/icons}/lucide-icon-picker/lucide-icon-by-name.tsx +0 -0
  215. /package/src/components/{shared → shared-kit/icons}/lucide-icon-picker/panel.tsx +0 -0
  216. /package/src/components/{shared → shared-kit/loading}/wave-physics-loader.tsx +0 -0
  217. /package/src/components/{ui-shared → shared-kit/pages}/placeholder-page.tsx +0 -0
  218. /package/src/components/{ui-shared → shared-kit/reference}/reference-inline.tsx +0 -0
  219. /package/src/components/{ui-shared → shared-kit/reference}/reference-search.tsx +0 -0
  220. /package/src/components/{shared → shared-kit/theme}/theme-toggle.tsx +0 -0
  221. /package/src/components/{shared → shared-kit/timezone}/timezone-bootstrap.tsx +0 -0
  222. /package/src/components/{ui-shared → shared-kit/timezone}/timezone-provider.tsx +0 -0
  223. /package/src/components/{shared → shared-kit/timezone}/timezone-select.tsx +0 -0
@@ -15,16 +15,16 @@
15
15
  // You should have received a copy of the GNU Affero General Public License
16
16
  // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
 
18
- import { cn } from "@/components/ui-shared/utils"
18
+ import { cn } from "@/lib/utils"
19
19
  import { useEffect, useMemo, useState } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
21
  import { Link } from "@tanstack/react-router";
22
- import { Card } from "@/components/ui-shared/card";
23
- import { Button } from "@/components/ui-shared/button";
24
- import { Input } from "@/components/ui-shared/input";
22
+ import { Card } from "@/components/ui/card";
23
+ import { Button } from "@/components/ui/button";
24
+ import { Input } from "@/components/ui/input";
25
25
  import { TagBadge } from '@/plugins/core/tags/tag-badge'
26
- import { GridPattern } from "@/components/ui-shared/grid-pattern";
27
- import { LayoutPanelTopIcon } from "@/components/ui-shared/layout-panel-top";
26
+ import { GridPattern } from "@/components/shared-kit/decorative/grid-pattern";
27
+ import { LayoutPanelTopIcon } from "@/components/shared-kit/layout/layout-panel-top";
28
28
  import {
29
29
  AlertDialog,
30
30
  AlertDialogAction,
@@ -34,7 +34,7 @@ import {
34
34
  AlertDialogFooter,
35
35
  AlertDialogHeader,
36
36
  AlertDialogTitle,
37
- } from "@/components/ui-shared/alert-dialog";
37
+ } from "@/components/ui/alert-dialog";
38
38
  import { CreatePRDDialog } from "./dialog/create-prd-dialog";
39
39
  import { ICON_MAP, type PRD } from "@allbluecn/kernel";
40
40
  import { listPrdFn, deletePrdFn } from "../serverFns/prd";
@@ -48,7 +48,7 @@ import {
48
48
  Trash2,
49
49
  } from "lucide-react";
50
50
  import { formatDate } from "@/lib/datetime";
51
- import { useTimezone } from "@/components/ui-shared/timezone-provider";
51
+ import { useTimezone } from "@/components/shared-kit/timezone/timezone-provider";
52
52
 
53
53
  const DEFAULT_SQUARES: [number, number][] = []
54
54
 
@@ -19,11 +19,11 @@
19
19
  import React from "react";
20
20
  import { lazy } from "react";
21
21
  import { useTranslation } from "react-i18next";
22
- import { cn } from "@/components/ui-shared/utils";
22
+ import { cn } from "@/lib/utils";
23
23
  import { Maximize2, Minimize2, } from "lucide-react";
24
24
 
25
25
  const NotionDocEditor = lazy(() => import("@/components/tiptap/notion-like").then(m => ({ default: m.NotionDocEditor })));
26
- import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui-shared/tooltip";
26
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
27
27
 
28
28
 
29
29
  interface PRDDocPanelProps {
@@ -19,9 +19,9 @@
19
19
  import React, { useState, useRef, useCallback, useEffect, useMemo } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
21
  import { useStore } from "@tanstack/react-store"
22
- import { cn } from "@/components/ui-shared/utils";
22
+ import { cn } from "@/lib/utils";
23
23
  import { prdCanvasStore, setCanvasElements, setCanvasSelectedElementId, updateCanvasElement, deleteCanvasElement } from "@/lib/stores/prd-canvas-store"
24
- import { NavFloatButton } from "@/components/ui-shared/nav-float-button";
24
+ import { NavFloatButton } from "@/components/shared-kit/navigation/nav-float-button";
25
25
  import { PRDLeftSidebar } from "./prd-left-sidebar";
26
26
  import { PRDPrototypePanel } from "./prd-prototype-panel";
27
27
  import { PRDDocPanel } from "./prd-doc-panel";
@@ -35,11 +35,11 @@ import { htmlToPmContent } from "@/lib/annotation-template";
35
35
  import { AnnotationOverlay } from "./component-annotation-overlay/AnnotationOverlay";
36
36
  import { ElementContext } from "./element-context";
37
37
  import { formatSaveTime } from "@/lib/time-format";
38
- import { useTimezone } from "@/components/ui-shared/timezone-provider";
38
+ import { useTimezone } from "@/components/shared-kit/timezone/timezone-provider";
39
39
  import type { PRD } from "@allbluecn/kernel";
40
40
  import { updatePrdPageFn, getPrdPageFn } from "../serverFns/pages"
41
41
  import { updatePrdFn } from "../serverFns/prd"
42
- import { toast } from '@/components/ui-shared/sonner'
42
+ import { toast } from '@/components/ui/sonner'
43
43
 
44
44
  interface PRDEditorLayoutProps {
45
45
  prd: PRD;
@@ -17,7 +17,7 @@
17
17
 
18
18
  import React, { useState, useEffect, useRef } from "react";
19
19
  import { useTranslation } from "react-i18next";
20
- import { cn } from "@/components/ui-shared/utils";
20
+ import { cn } from "@/lib/utils";
21
21
  import { ChevronLeft, ChevronRight } from "lucide-react";
22
22
 
23
23
  export function FilterBar({
@@ -17,16 +17,16 @@
17
17
 
18
18
  import React, { useState, useEffect, useMemo } from "react";
19
19
  import { useTranslation } from "react-i18next";
20
- import { cn } from "@/components/ui-shared/utils";
21
- import { Input } from "@/components/ui-shared/input";
20
+ import { cn } from "@/lib/utils";
21
+ import { Input } from "@/components/ui/input";
22
22
  import {
23
23
  Tooltip,
24
24
  TooltipContent,
25
25
  TooltipProvider,
26
26
  TooltipTrigger,
27
- } from "@/components/ui-shared/tooltip";
27
+ } from "@/components/ui/tooltip";
28
28
  import { ComponentThumbnail } from "./component-thumbnail";
29
- import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/components/ui-shared/resizable";
29
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/components/ui/resizable";
30
30
  import {
31
31
  ChevronLeft,
32
32
  ChevronRight,
@@ -18,9 +18,9 @@
18
18
 
19
19
  import React, { useState, useRef, useEffect } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { Button } from "@/components/ui-shared/button";
22
- import { Input } from "@/components/ui-shared/input";
23
- import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui-shared/dialog";
21
+ import { Button } from "@/components/ui/button";
22
+ import { Input } from "@/components/ui/input";
23
+ import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog";
24
24
  import { PRDSharePanel } from "./prd-share-panel";
25
25
  import {
26
26
  DropdownMenu,
@@ -28,9 +28,9 @@ import {
28
28
  DropdownMenuItem,
29
29
  DropdownMenuTrigger,
30
30
  DropdownMenuSeparator,
31
- } from "@/components/ui-shared/dropdown-menu";
32
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui-shared/select";
33
- import { NameConfirmDialog } from "@/components/ui-shared/name-confirm-dialog";
31
+ } from "@/components/ui/dropdown-menu";
32
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
33
+ import { NameConfirmDialog } from "@/components/shared-kit/dialogs/name-confirm-dialog";
34
34
  import { useRouter } from "@tanstack/react-router";
35
35
  import { ICON_MAP, type PRD } from "@allbluecn/kernel";
36
36
  import { deletePrdFn } from "../serverFns/prd";
@@ -18,9 +18,9 @@
18
18
 
19
19
  import React, { useState, useEffect } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { cn } from "@/components/ui-shared/utils";
21
+ import { cn } from "@/lib/utils";
22
22
  import { Monitor, Smartphone, Tablet } from "lucide-react";
23
- import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui-shared/tooltip";
23
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
24
24
  import { PrototypeCanvas } from "./prototype/PrototypeCanvas";
25
25
  import { CanvasElement, DeviceType } from "@allbluecn/kernel";
26
26
  import { registerComponent, registerComponents, getComponent, unregisterComponent } from "@/lib/prototype-registry";
@@ -18,10 +18,10 @@
18
18
 
19
19
  import React, { useState, useEffect } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { cn } from "@/components/ui-shared/utils";
22
- import { Button } from "@/components/ui-shared/button";
21
+ import { cn } from "@/lib/utils";
22
+ import { Button } from "@/components/ui/button";
23
23
  import { Pin, PinOff, X } from "lucide-react";
24
- import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui-shared/tooltip";
24
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
25
25
  import { PRDComponentEditorContent } from "./prd-component-editor-content";
26
26
  import { PageVersionPanel } from "./page-version-panel";
27
27
  import { PRDCommentReviewPanel } from "./prd-comment-review-panel";
@@ -15,25 +15,25 @@
15
15
  // You should have received a copy of the GNU Affero General Public License
16
16
  // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
 
18
- import { cn } from "@/components/ui-shared/utils";
18
+ import { cn } from "@/lib/utils";
19
19
  import { useTranslation } from "react-i18next";
20
- import { Button } from "@/components/ui-shared/button";
21
- import { Input } from "@/components/ui-shared/input";
22
- import { Switch } from "@/components/ui-shared/switch";
20
+ import { Button } from "@/components/ui/button";
21
+ import { Input } from "@/components/ui/input";
22
+ import { Switch } from "@/components/ui/switch";
23
23
  import {
24
24
  Select,
25
25
  SelectContent,
26
26
  SelectItem,
27
27
  SelectTrigger,
28
28
  SelectValue,
29
- } from "@/components/ui-shared/select";
29
+ } from "@/components/ui/select";
30
30
  import { Copy, RefreshCw, Trash2 } from "lucide-react";
31
31
  import {
32
32
  Tooltip,
33
33
  TooltipContent,
34
34
  TooltipTrigger,
35
- } from "@/components/ui-shared/tooltip";
36
- import { toast } from '@/components/ui-shared/sonner';
35
+ } from "@/components/ui/tooltip";
36
+ import { toast } from '@/components/ui/sonner';
37
37
  import { EXPIRY_OPTIONS } from "../constants";
38
38
 
39
39
  interface SingleVersionShare {
@@ -18,27 +18,27 @@
18
18
 
19
19
  import React, { useState, useEffect, useCallback, useMemo } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { cn } from "@/components/ui-shared/utils";
22
- import { Button } from "@/components/ui-shared/button";
23
- import { Input } from "@/components/ui-shared/input";
24
- import { Switch } from "@/components/ui-shared/switch";
25
- import { Label } from "@/components/ui-shared/label";
21
+ import { cn } from "@/lib/utils";
22
+ import { Button } from "@/components/ui/button";
23
+ import { Input } from "@/components/ui/input";
24
+ import { Switch } from "@/components/ui/switch";
25
+ import { Label } from "@/components/ui/label";
26
26
  import {
27
27
  Select,
28
28
  SelectContent,
29
29
  SelectItem,
30
30
  SelectTrigger,
31
31
  SelectValue,
32
- } from "@/components/ui-shared/select";
32
+ } from "@/components/ui/select";
33
33
  import { Copy, Check, RefreshCw } from "lucide-react";
34
- import { toast } from '@/components/ui-shared/sonner';
35
- import { Checkbox } from "@/components/ui-shared/checkbox";
36
- import { Badge } from "@/components/ui-shared/badge";
34
+ import { toast } from '@/components/ui/sonner';
35
+ import { Checkbox } from "@/components/ui/checkbox";
36
+ import { Badge } from "@/components/ui/badge";
37
37
  import {
38
38
  Tooltip,
39
39
  TooltipContent,
40
40
  TooltipTrigger,
41
- } from "@/components/ui-shared/tooltip";
41
+ } from "@/components/ui/tooltip";
42
42
  import { listPrdVersionsFn } from "../serverFns/versions";
43
43
  import { listPrdSharesFn, createPrdShareFn, createPrdSingleShareFn, listPrdSingleSharesFn, updatePrdSingleShareFn, deletePrdSingleShareFn } from "../serverFns/shares";
44
44
  import { setPrdSharePasswordFn, togglePrdSharePasswordFn, setPrdSingleSharePasswordFn, togglePrdSingleSharePasswordFn } from "../serverFns/shares-password";
@@ -27,9 +27,9 @@ import {
27
27
  initialCreateState,
28
28
  initialDragState,
29
29
  } from "./prd-tree-reducer";
30
- import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui-shared/tooltip";
31
- import { cn } from "@/components/ui-shared/utils";
32
- import { Input } from "@/components/ui-shared/input";
30
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
31
+ import { cn } from "@/lib/utils";
32
+ import { Input } from "@/components/ui/input";
33
33
  import {
34
34
  ContextMenu,
35
35
  ContextMenuTrigger,
@@ -37,7 +37,7 @@ import {
37
37
  ContextMenuItem,
38
38
  ContextMenuSeparator,
39
39
  ContextMenuShortcut,
40
- } from "@/components/ui-shared/context-menu";
40
+ } from "@/components/ui/context-menu";
41
41
  import {
42
42
  AlertDialog,
43
43
  AlertDialogContent,
@@ -47,7 +47,7 @@ import {
47
47
  AlertDialogFooter,
48
48
  AlertDialogAction,
49
49
  AlertDialogCancel,
50
- } from "@/components/ui-shared/alert-dialog";
50
+ } from "@/components/ui/alert-dialog";
51
51
  import { buildTree, TreeNode, PRDPage } from "@/lib/prd-tree-utils";
52
52
  import { listPrdPagesFn, createPrdPageFn, updatePrdPageFn, deletePrdPageFn } from "../serverFns/pages";
53
53
 
@@ -29,8 +29,8 @@ import {
29
29
  import { CanvasElement, DeviceType, DEVICE_SIZES } from "@allbluecn/kernel";
30
30
  import { getAllComponents } from "@/lib/prototype-registry";
31
31
  import { PrototypeElement } from "./PrototypeElement";
32
- import { Skeleton } from "@/components/ui-shared/skeleton";
33
- import { cn } from "@/components/ui-shared/utils";
32
+ import { Skeleton } from "@/components/ui/skeleton";
33
+ import { cn } from "@/lib/utils";
34
34
 
35
35
  interface PrototypeCanvasProps {
36
36
  elements: CanvasElement[];
@@ -18,7 +18,7 @@
18
18
 
19
19
  import React from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { Button } from "@/components/ui-shared/button";
21
+ import { Button } from "@/components/ui/button";
22
22
  import {
23
23
  Dialog,
24
24
  DialogContent,
@@ -26,7 +26,7 @@ import {
26
26
  DialogTitle,
27
27
  DialogDescription,
28
28
  DialogFooter,
29
- } from "@/components/ui-shared/dialog";
29
+ } from "@/components/ui/dialog";
30
30
 
31
31
  interface RestoreVersionDialogProps {
32
32
  open: boolean;
@@ -22,7 +22,7 @@ import { SharePasswordGate } from "./share-password-gate";
22
22
  import { ShareLayout } from "./share-layout";
23
23
  import { ShareSSEListener } from "./share-sse-listener";
24
24
  import { AlertCircle } from "lucide-react";
25
- import { AuthLayout, AuthLayoutLeft, AuthLayoutRight } from "@/components/ui-shared/auth-layout";
25
+ import { AuthLayout, AuthLayoutLeft, AuthLayoutRight } from "@/components/shared-kit/auth/auth-layout";
26
26
 
27
27
  interface SharePageClientProps {
28
28
  prdId: string;
@@ -18,14 +18,14 @@
18
18
  import { useState, useEffect } from "react";
19
19
  import { useTranslation } from "react-i18next";
20
20
  import { useForm } from "@tanstack/react-form";
21
- import { Button } from "@/components/ui-shared/button";
22
- import { Textarea } from "@/components/ui-shared/textarea";
23
- import { Badge } from "@/components/ui-shared/badge";
21
+ import { Button } from "@/components/ui/button";
22
+ import { Textarea } from "@/components/ui/textarea";
23
+ import { Badge } from "@/components/ui/badge";
24
24
  import { Pencil } from "lucide-react";
25
- import { toast } from "@/components/ui-shared/sonner";
26
- import { useSession } from "@/components/ui-shared/auth-client";
25
+ import { toast } from "@/components/ui/sonner";
26
+ import { useSession } from "@/components/shared-kit/auth/auth-client";
27
27
  import { maskEmail, formatTime, formatEditedTime } from "@/lib/comment-utils";
28
- import { UserAvatar } from "@/components/ui-shared";
28
+ import { UserAvatar } from "@/components/shared-kit";
29
29
  import type { AvatarConfig, ShapeType } from "@allbluecn/kernel";
30
30
  import {
31
31
  listCommentsFn,
@@ -18,10 +18,10 @@
18
18
 
19
19
  import { useState } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { cn } from "@/components/ui-shared/utils";
21
+ import { cn } from "@/lib/utils";
22
22
  import { MessageSquare, ClipboardCheck } from "lucide-react";
23
23
  import { ShareCommentPanel } from "./share-comment-panel";
24
- import { useSession } from "@/components/ui-shared/auth-client";
24
+ import { useSession } from "@/components/shared-kit/auth/auth-client";
25
25
 
26
26
  const SUBTABS = [
27
27
  { key: "comment", labelKey: "comment.subtabComment", icon: <MessageSquare className="size-3.5" /> },
@@ -26,7 +26,7 @@ import { ShareCommentPanel } from "./share-comment-panel";
26
26
  import { ShareDocView } from "./share-doc-view";
27
27
  import { ShareAnnotationOverlay } from "./share-annotation-overlay";
28
28
  import { ElementContext } from "@/plugins/core/prd/components/element-context";
29
- import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/components/ui-shared/resizable";
29
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/components/ui/resizable";
30
30
  import { getShareVersionsFn, getShareVersionDataFn } from "../../serverFns/share/versions";
31
31
 
32
32
  interface ShareLayoutProps {
@@ -18,11 +18,11 @@
18
18
 
19
19
  import { FileText, Spline, SplinePointer } from "lucide-react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { Badge } from "@/components/ui-shared/badge";
22
- import { Button } from "@/components/ui-shared/button";
23
- import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui-shared/tooltip";
21
+ import { Badge } from "@/components/ui/badge";
22
+ import { Button } from "@/components/ui/button";
23
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
24
24
  import { ShareThemeToggle } from './share-theme-toggle'
25
- import { cn } from "@/components/ui-shared/utils";
25
+ import { cn } from "@/lib/utils";
26
26
 
27
27
  const ICON_MAP: Record<string, any> = { file: FileText };
28
28
 
@@ -17,10 +17,10 @@
17
17
 
18
18
  import { useState } from "react";
19
19
  import { useTranslation } from "react-i18next";
20
- import { AuthLayout, AuthLayoutLeft, AuthLayoutRight } from "@/components/ui-shared/auth-layout";
21
- import { Input } from "@/components/ui-shared/input";
22
- import { Button } from "@/components/ui-shared/button";
23
- import { toast } from '@/components/ui-shared/sonner';
20
+ import { AuthLayout, AuthLayoutLeft, AuthLayoutRight } from "@/components/shared-kit/auth/auth-layout";
21
+ import { Input } from "@/components/ui/input";
22
+ import { Button } from "@/components/ui/button";
23
+ import { toast } from '@/components/ui/sonner';
24
24
  import { verifySharePasswordFn } from "../../serverFns/share/verify-password";
25
25
 
26
26
  interface SharePasswordGateProps {
@@ -21,7 +21,7 @@ import { useTranslation } from "react-i18next";
21
21
  import { getComponent } from "@/lib/prototype-registry";
22
22
  import { registerComponents } from "@/lib/prototype-registry";
23
23
  import { BUILTIN_COMPONENTS } from "@/plugins/core/prd/components/prototype";
24
- import { cn } from "@/components/ui-shared/utils";
24
+ import { cn } from "@/lib/utils";
25
25
 
26
26
  interface SharePrototypeViewProps {
27
27
  elements: any[];
@@ -18,11 +18,11 @@
18
18
 
19
19
  import { useState, useCallback } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { Button } from "@/components/ui-shared/button";
22
- import { Badge } from "@/components/ui-shared/badge";
23
- import { toast } from '@/components/ui-shared/sonner';
24
- import { useSession } from "@/components/ui-shared/auth-client";
25
- import { Textarea } from "@/components/ui-shared/textarea";
21
+ import { Button } from "@/components/ui/button";
22
+ import { Badge } from "@/components/ui/badge";
23
+ import { toast } from '@/components/ui/sonner';
24
+ import { useSession } from "@/components/shared-kit/auth/auth-client";
25
+ import { Textarea } from "@/components/ui/textarea";
26
26
  import { upsertReviewFn } from "../../serverFns/reviews";
27
27
 
28
28
  interface ShareReviewPanelProps {
@@ -18,7 +18,7 @@
18
18
  import { useCallback, useEffect, useState } from "react";
19
19
  import { Moon, Sun } from "lucide-react";
20
20
  import { useTheme } from "next-themes";
21
- import { cn } from "@/components/ui-shared/utils";
21
+ import { cn } from "@/lib/utils";
22
22
 
23
23
  const TRANSITION_CLASS = "theme-transitioning";
24
24
  const TRANSITION_MS = 300;
@@ -18,7 +18,7 @@
18
18
 
19
19
  import React, { useState, useEffect } from "react";
20
20
  import { useTranslation } from "react-i18next";
21
- import { cn } from "@/components/ui-shared/utils";
21
+ import { cn } from "@/lib/utils";
22
22
  import { getComponent } from "@/lib/prototype-registry";
23
23
  import { registerComponents } from "@/lib/prototype-registry";
24
24
  import { BUILTIN_COMPONENTS } from "@/plugins/core/prd/components/prototype";
@@ -23,8 +23,8 @@ import { useMemo } from 'react'
23
23
  import type { ComponentType } from 'react'
24
24
  import { createServerI18n } from '@/i18n/server'
25
25
  import { PRDEditorLayout } from '../components'
26
- import { Button } from '@/components/ui-shared/button'
27
- import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from '@/components/ui-shared/empty'
26
+ import { Button } from '@/components/ui/button'
27
+ import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from '@/components/ui/empty'
28
28
 
29
29
  export const PrdNotFoundPage: ComponentType = () => {
30
30
  const i18n = useMemo(() => createServerI18n('zh'), [])
@@ -21,7 +21,7 @@ import { useMemo } from 'react'
21
21
  import { AlertCircle } from 'lucide-react'
22
22
  import { createServerI18n } from '@/i18n/server'
23
23
  import { SharePageClient } from '../components/share/prd-share-client'
24
- import { Button } from '@/components/ui-shared/button'
24
+ import { Button } from '@/components/ui/button'
25
25
  import { Outlet, useRouteContext } from '@tanstack/react-router'
26
26
  import type { ComponentType } from 'react'
27
27
 
@@ -19,7 +19,7 @@ import { useEffect, useState, useCallback } from 'react'
19
19
  import { useTranslation } from 'react-i18next'
20
20
  import { LayoutPanelLeft } from 'lucide-react'
21
21
  import { useLocation, Link } from '@tanstack/react-router'
22
- import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/components/ui-shared/sidebar'
22
+ import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/components/ui/sidebar'
23
23
  import { listPrdFn } from './serverFns/prd'
24
24
  import type { FC } from 'react'
25
25
 
@@ -19,15 +19,15 @@ import { useState } from 'react'
19
19
  import { Link, useLocation } from '@tanstack/react-router'
20
20
  import { useTranslation } from 'react-i18next'
21
21
  import { Tag as TagIcon, Tags, BadgePlus, LibraryBig } from 'lucide-react'
22
- import { SidebarGroup, SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/components/ui-shared/sidebar'
23
- import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui-shared/tooltip'
24
- import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui-shared/dialog'
25
- import { Input } from '@/components/ui-shared/input'
26
- import { Button } from '@/components/ui-shared/button'
27
- import { cn } from '@/components/ui-shared/utils'
22
+ import { SidebarGroup, SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/components/ui/sidebar'
23
+ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
24
+ import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'
25
+ import { Input } from '@/components/ui/input'
26
+ import { Button } from '@/components/ui/button'
27
+ import { cn } from '@/lib/utils'
28
28
  import { isParentActive } from '@/lib/sidebar-utils'
29
29
  import { createTagFn } from "./serverFns"
30
- import { toast } from '@/components/ui-shared/sonner'
30
+ import { toast } from '@/components/ui/sonner'
31
31
 
32
32
  export function NavTag() {
33
33
  const { t } = useTranslation('tags')
@@ -17,7 +17,7 @@
17
17
 
18
18
  import { useTranslation } from 'react-i18next'
19
19
  import { Tag } from 'lucide-react'
20
- import { PlaceholderPage } from '@/components/ui-shared/placeholder-page'
20
+ import { PlaceholderPage } from '@/components/shared-kit/pages/placeholder-page'
21
21
 
22
22
  export function TagDetailPage() {
23
23
  const { t } = useTranslation('tags')
@@ -16,8 +16,8 @@
16
16
  // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
 
18
18
  import * as React from 'react'
19
- import { cn } from '@/components/ui-shared/utils'
20
- import { Badge } from '@/components/ui-shared/badge'
19
+ import { cn } from '@/lib/utils'
20
+ import { Badge } from '@/components/ui/badge'
21
21
  import { Tag, X } from 'lucide-react'
22
22
  import { useTranslation } from 'react-i18next'
23
23
  import { TAG_COLOR_CLASSES, type TagColorIndex } from "./tag-color-classes"
@@ -16,7 +16,7 @@
16
16
  // along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
 
18
18
  import { useTranslation } from 'react-i18next'
19
- import { cn } from '@/components/ui-shared/utils'
19
+ import { cn } from '@/lib/utils'
20
20
  import { TAG_COLOR_CLASSES, type TagColorIndex } from "./tag-color-classes"
21
21
 
22
22
  type TagColorPickerProps = {
@@ -18,18 +18,18 @@
18
18
  import { useEffect, useRef, useState } from 'react'
19
19
  import { useTranslation } from 'react-i18next'
20
20
  import { useLiveQuery } from '@tanstack/react-db'
21
- import { Button } from '@/components/ui-shared/button'
22
- import { Input } from '@/components/ui-shared/input'
23
- import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui-shared/dialog'
24
- import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '@/components/ui-shared/alert-dialog'
25
- import { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent } from '@/components/ui-shared/empty'
21
+ import { Button } from '@/components/ui/button'
22
+ import { Input } from '@/components/ui/input'
23
+ import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'
24
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '@/components/ui/alert-dialog'
25
+ import { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent } from '@/components/ui/empty'
26
26
  import { Plus, Trash2, Edit, GripVertical } from 'lucide-react'
27
27
  import { createTagFn, updateTagFn, deleteTagFn, reorderTagsFn } from "./serverFns"
28
28
  import { getTagsCollection } from "./tags-collection"
29
29
  import { getQueryClient } from '@/lib/query-client-seam'
30
30
  import { TagBadge } from "./tag-badge"
31
31
  import { TagColorPicker } from "./tag-color-picker"
32
- import { toast } from '@/components/ui-shared/sonner'
32
+ import { toast } from '@/components/ui/sonner'
33
33
 
34
34
  type Tag = { id: string; name: string; color: number; sortOrder: number }
35
35
 
@@ -18,13 +18,13 @@
18
18
  import { useEffect, useState } from 'react'
19
19
  import { useTranslation } from 'react-i18next'
20
20
  import { useLiveQuery } from '@tanstack/react-db'
21
- import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui-shared/popover'
22
- import { Input } from '@/components/ui-shared/input'
21
+ import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'
22
+ import { Input } from '@/components/ui/input'
23
23
  import { Plus, Tag, X } from 'lucide-react'
24
24
  import { createTagFn } from "./serverFns"
25
25
  import { getTagsCollection } from "./tags-collection"
26
26
  import { TagBadge } from "./tag-badge"
27
- import { cn } from '@/components/ui-shared/utils'
27
+ import { cn } from '@/lib/utils'
28
28
 
29
29
  type Tag = { id: string; name: string; color: number }
30
30
  type TagSelectorProps = {
@@ -29,7 +29,7 @@ import { exchangeRemoteTokenFn } from "@/server/serverFns/auth/session";
29
29
  import { toast } from "sonner";
30
30
  import { createServerI18n } from "@/i18n/server";
31
31
  import { registerIconPicker } from "@/plugins/core/prd/icon-picker-bridge";
32
- import { LucideIconPicker } from "@/components/shared/lucide-icon-picker";
32
+ import { LucideIconPicker } from "@/components/shared-kit/icons/lucide-icon-picker";
33
33
 
34
34
  // 宿主注入图标选择器实现,供 plugins-core 的 PRD 弹窗等使用(模块级单例)
35
35
  registerIconPicker(LucideIconPicker);
@@ -1 +1 @@
1
- export * from '@/components/ui-shared/timezone-provider'
1
+ export * from '@/components/shared-kit/timezone/timezone-provider'
@@ -17,7 +17,7 @@
17
17
 
18
18
  import { createFileRoute } from '@tanstack/react-router'
19
19
  import { useTranslation } from 'react-i18next'
20
- import { PlaceholderPage } from '@/components/shared/placeholder-page'
20
+ import { PlaceholderPage } from '@/components/shared-kit/pages/placeholder-page'
21
21
  import { CircleCheckBig } from 'lucide-react'
22
22
 
23
23
  function AcceptanceCriteriaPage() {
@@ -17,7 +17,7 @@
17
17
 
18
18
  import { createFileRoute } from '@tanstack/react-router'
19
19
  import { useTranslation } from 'react-i18next'
20
- import { PlaceholderPage } from '@/components/shared/placeholder-page'
20
+ import { PlaceholderPage } from '@/components/shared-kit/pages/placeholder-page'
21
21
  import { PackageOpen } from 'lucide-react'
22
22
 
23
23
  export const Route = createFileRoute('/_nav/apps/anyhub/$id')({