@allbluecn/web-app 0.9.4 → 0.10.0
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.
- package/package.json +12 -10
- package/public/favicon.ico +0 -0
- package/src/__tests__/paraglide.test.ts +43 -0
- package/src/__tests__/setup.ts +27 -9
- package/src/assets/illustrations/empty-states/workspace-empty.svg +5 -0
- package/src/assets/illustrations/knowledge/law-card-illustration.svg +5 -0
- package/src/assets/logo/logo.tsx +53 -36
- package/src/components/agents/agent-card.tsx +7 -7
- package/src/components/agents/agent-form-dialog.tsx +41 -42
- package/src/components/agents/agent-selector.tsx +6 -8
- package/src/components/agents/agents-page.tsx +26 -28
- package/src/components/agents/skill-card.tsx +1 -4
- package/src/components/agents/skill-form-dialog.tsx +19 -21
- package/src/components/agents/slash-skill-menu.tsx +5 -7
- package/src/components/agents/use-agent-handlers.ts +5 -8
- package/src/components/ai/ai-chat-prompt.tsx +26 -33
- package/src/components/ai/global-chat-panel.tsx +10 -11
- package/src/components/ai/use-knowledge-bases.ts +2 -2
- package/src/components/anyhub/anyhub-app-card.tsx +13 -15
- package/src/components/anyhub/anyhub-app-runner.tsx +5 -7
- package/src/components/anyhub/anyhub-install-dialog.tsx +16 -18
- package/src/components/anyhub/anyhub-management-view.tsx +9 -11
- package/src/components/anyhub/anyhub-marketplace-view.tsx +14 -17
- package/src/components/anyhub/anyhub-permission-panel.tsx +8 -11
- package/src/components/anyhub/anyhub-provider.tsx +0 -1
- package/src/components/anyhub/anyhub-top-nav.tsx +5 -8
- package/src/components/auth/auth-header.tsx +2 -2
- package/src/components/auth/icon-input.tsx +0 -1
- package/src/components/auth/oauth-section.tsx +3 -5
- package/src/components/auth/password-input.tsx +2 -4
- package/src/components/auth/session-guard.tsx +0 -1
- package/src/components/auth/sso-section.tsx +3 -4
- package/src/components/billing/__tests__/seats-manager.test.tsx +5 -9
- package/src/components/billing/billing-panel.tsx +5 -6
- package/src/components/billing/checkout-redirect.ts +6 -10
- package/src/components/billing/feature-gate.tsx +2 -3
- package/src/components/billing/invoice-history.tsx +9 -11
- package/src/components/billing/login-prompt-dialog.tsx +10 -11
- package/src/components/billing/pricing-card.tsx +6 -7
- package/src/components/billing/pricing-page.tsx +4 -5
- package/src/components/billing/seats-manager.tsx +19 -20
- package/src/components/billing/subscription-card.tsx +13 -14
- package/src/components/billing/upgrade-prompt.tsx +11 -13
- package/src/components/changelog/changelog-page.tsx +36 -26
- package/src/components/chat/ai-chat-history/components/conversation-header.tsx +4 -5
- package/src/components/chat/ai-chat-history/components/conversation-item.tsx +15 -17
- package/src/components/chat/ai-chat-history/components/conversation-search.tsx +3 -4
- package/src/components/chat/ai-chat-history/components/empty-state.tsx +5 -6
- package/src/components/chat/ai-chat-history/index.tsx +11 -15
- package/src/components/chat/ai-chat-history/utils/group-conversations.ts +9 -2
- package/src/components/chat/ai-citations/components/citation-item.tsx +3 -5
- package/src/components/chat/ai-citations/components/citations-list.tsx +4 -6
- package/src/components/chat/ai-citations/components/inline-citation.tsx +2 -4
- package/src/components/chat/ai-citations/components/source-components.tsx +6 -10
- package/src/components/chat/ai-citations/index.tsx +3 -4
- package/src/components/chat/ai-citations/utils.ts +15 -3
- package/src/components/chat/ai-conversation.tsx +10 -12
- package/src/components/chat/ai-message/components/message-actions.tsx +7 -9
- package/src/components/chat/ai-message/components/streaming-indicator.tsx +3 -4
- package/src/components/chat/ai-message/index.tsx +5 -5
- package/src/components/chat/ai-message/utils/dom-utils.ts +1 -1
- package/src/components/chat/ai-prompt-input/components/action-buttons.tsx +14 -16
- package/src/components/chat/ai-prompt-input/components/agent-mode-select.tsx +10 -5
- package/src/components/chat/ai-prompt-input/components/context-badge.tsx +2 -3
- package/src/components/chat/ai-prompt-input/components/kb-context-selector.tsx +6 -8
- package/src/components/chat/ai-prompt-input/components/model-select.tsx +14 -7
- package/src/components/chat/ai-prompt-input/components/page-user-context-selector.tsx +6 -8
- package/src/components/chat/ai-prompt-input/index.tsx +18 -11
- package/src/components/chat/ai-prompt-input/types.ts +6 -5
- package/src/components/chat/ai-thinking.tsx +6 -9
- package/src/components/chat/chat-thread-page.tsx +4 -5
- package/src/components/chat/interrupt-approval.tsx +6 -8
- package/src/components/command/command-palette.tsx +7 -10
- package/src/components/design/project-card.tsx +2 -3
- package/src/components/design/sketch/code-preview.tsx +3 -4
- package/src/components/design/sketch/export-panel.tsx +3 -4
- package/src/components/design/sketch/property-panel.tsx +16 -17
- package/src/components/error/global-error-boundary.tsx +65 -0
- package/src/components/forms/app-array-field.tsx +3 -4
- package/src/components/forms/app-combobox.tsx +2 -3
- package/src/components/forms/app-date-picker.tsx +2 -3
- package/src/components/forms/app-form-dialog.tsx +3 -4
- package/src/components/forms/app-select.tsx +2 -3
- package/src/components/forms/hooks/use-form-submit.ts +2 -2
- package/src/components/forms/schemas/common.ts +4 -6
- package/src/components/hotkeys/shortcuts-panel.tsx +2 -3
- package/src/components/iteration/auto-schedule-dialog.tsx +12 -13
- package/src/components/iteration/burndown-chart.tsx +6 -8
- package/src/components/iteration/constants.ts +5 -4
- package/src/components/iteration/create-iteration-dialog.tsx +14 -15
- package/src/components/iteration/iteration-card.tsx +3 -4
- package/src/components/iteration/iteration-editor.tsx +7 -8
- package/src/components/iteration/iteration-progress-bar.tsx +3 -5
- package/src/components/iteration/iteration-status-badge.tsx +1 -3
- package/src/components/kibo-ui/contribution-graph/index.tsx +37 -9
- package/src/components/knowledge/dialog/knowledge-form-dialog.tsx +8 -9
- package/src/components/knowledge/doc-properties.tsx +12 -13
- package/src/components/knowledge/editor/doc-header.tsx +7 -8
- package/src/components/knowledge/editor/knowledge-doc-editor.tsx +9 -9
- package/src/components/knowledge/knowledge-homepage.tsx +6 -7
- package/src/components/knowledge/knowledge-tag-input.tsx +3 -4
- package/src/components/knowledge/knowledge-toolbar.tsx +38 -40
- package/src/components/knowledge/knowledge-tree-item.tsx +21 -22
- package/src/components/knowledge/knowledge-tree.tsx +15 -16
- package/src/components/knowledge-public/bookmark-card.tsx +13 -14
- package/src/components/knowledge-public/bookmark-form-dialog.tsx +25 -26
- package/src/components/knowledge-public/knowledge-card-grid.tsx +3 -3
- package/src/components/knowledge-public/knowledge-filters.tsx +9 -10
- package/src/components/knowledge-public/knowledge-form-dialog.tsx +62 -63
- package/src/components/knowledge-public/knowledge-search-bar.tsx +3 -4
- package/src/components/knowledge-public/legal-compliance-editor.tsx +30 -31
- package/src/components/knowledge-public/markdown-editor.tsx +3 -4
- package/src/components/knowledge-public/markdown-view.tsx +2 -3
- package/src/components/knowledge-public/sharers-avatar-group.tsx +3 -4
- package/src/components/knowledge-public/tag-filter.tsx +3 -4
- package/src/components/layout/sidebar-03/__tests__/nav-workspace.test.tsx +42 -79
- package/src/components/layout/sidebar-03/__tests__/user-menu-anonymous.test.tsx +51 -0
- package/src/components/layout/sidebar-03/app-sidebar.tsx +3 -4
- package/src/components/layout/sidebar-03/index.tsx +0 -1
- package/src/components/layout/sidebar-03/nav-anyhub.tsx +4 -5
- package/src/components/layout/sidebar-03/nav-knowledge.tsx +80 -37
- package/src/components/layout/sidebar-03/nav-main.tsx +10 -12
- package/src/components/layout/sidebar-03/nav-notifications.tsx +19 -28
- package/src/components/layout/sidebar-03/nav-search-trigger.tsx +3 -5
- package/src/components/layout/sidebar-03/nav-workspace.tsx +32 -12
- package/src/components/layout/sidebar-03/team-switcher.tsx +0 -1
- package/src/components/layout/sidebar-03/user-menu.tsx +33 -13
- package/src/components/magicui/components/animate/avatar-group.tsx +0 -1
- package/src/components/magicui/primitives/animate/avatar-group.tsx +0 -1
- package/src/components/magicui/primitives/animate/slot.tsx +0 -1
- package/src/components/magicui/primitives/animate/tooltip.tsx +0 -1
- package/src/components/magicui/sparkles-text.tsx +0 -1
- package/src/components/mindmap/mindmap-doc-editor.tsx +15 -15
- package/src/components/notifications/settings-notifications.tsx +22 -23
- package/src/components/notifications/team-notifications.tsx +27 -29
- package/src/components/plugin-slots/__tests__/plugin-settings-tabs.test.tsx +4 -4
- package/src/components/plugin-slots/plugin-settings-tabs.tsx +15 -11
- package/src/components/project/create-project-dialog.tsx +60 -34
- package/src/components/project/invite-member-dialog.tsx +20 -21
- package/src/components/project/project-activity-list.tsx +19 -24
- package/src/components/project/project-member-manager.tsx +27 -28
- package/src/components/project/project-module-card.tsx +5 -6
- package/src/components/project/schemas/create-project.ts +3 -5
- package/src/components/prototype/component/GenericPrototype.tsx +0 -1
- package/src/components/prototype/component-preview.tsx +0 -1
- package/src/components/settings/ai/api-key-field.tsx +8 -10
- package/src/components/settings/ai/create-custom-model-dialog.tsx +28 -21
- package/src/components/settings/ai/create-custom-provider-dialog.tsx +15 -16
- package/src/components/settings/ai/model-card.tsx +25 -10
- package/src/components/settings/ai/model-manager.tsx +24 -16
- package/src/components/settings/ai/provider-card.tsx +9 -11
- package/src/components/settings/ai/provider-detail-form.tsx +24 -26
- package/src/components/settings/ai/provider-grid.tsx +23 -13
- package/src/components/settings/language-selector.tsx +13 -15
- package/src/components/settings/personal-team/account/account-client.tsx +14 -16
- package/src/components/settings/personal-team/account/avatar/notion-avatar-editor.tsx +36 -28
- package/src/components/settings/personal-team/account/settings-profile.tsx +39 -40
- package/src/components/settings/personal-team/team/team-client.tsx +45 -50
- package/src/components/settings/personal-team/team/team-invitations.tsx +89 -95
- package/src/components/settings/personal-team/team/team-member-list.tsx +50 -47
- package/src/components/shadcn-space/blocks/pricing-01/pricing.tsx +170 -172
- package/src/components/shared-kit/data-viz/contribution-graph-tooltip.tsx +128 -15
- package/src/components/shared-kit/dialogs/name-confirm-dialog.tsx +16 -16
- package/src/components/shared-kit/i18n/language-switcher.tsx +6 -9
- package/src/components/shared-kit/i18n/translator-text.tsx +2 -4
- package/src/components/shared-kit/icons/lucide-icon-picker/panel.tsx +7 -8
- package/src/components/shared-kit/logos/logo-icon.tsx +64 -0
- package/src/components/shared-kit/navigation/nav-float-button.tsx +3 -5
- package/src/components/shared-kit/pages/placeholder-page.tsx +2 -4
- package/src/components/shared-kit/theme/animated-theme-toggler.tsx +0 -1
- package/src/components/shared-kit/theme/theme-toggle.tsx +0 -1
- package/src/components/shared-kit/timezone/timezone-select.tsx +6 -7
- package/src/components/story/__tests__/constants.test.ts +7 -7
- package/src/components/story/__tests__/dependency-type-badge.test.ts +5 -5
- package/src/components/story/ai/action-registry.ts +12 -11
- package/src/components/story/ai/handlers/more-popover.tsx +5 -6
- package/src/components/story/ai/prototype-dialog.tsx +9 -10
- package/src/components/story/ai/split-dialog.tsx +22 -23
- package/src/components/story/ai/story-ai-panel.tsx +29 -30
- package/src/components/story/ai/story-ai-preview-list.tsx +16 -9
- package/src/components/story/ai/story-ai-toolbar.tsx +12 -13
- package/src/components/story/columns.tsx +33 -17
- package/src/components/story/constants.ts +73 -69
- package/src/components/story/create-story-dialog.tsx +13 -14
- package/src/components/story/detail/__tests__/categories.test.tsx +8 -10
- package/src/components/story/detail/__tests__/dependencies-button.test.tsx +3 -5
- package/src/components/story/detail/activity-tabs.tsx +6 -7
- package/src/components/story/detail/activity-timeline.tsx +33 -35
- package/src/components/story/detail/comment-input.tsx +7 -8
- package/src/components/story/detail/comment-item.tsx +15 -16
- package/src/components/story/detail/comment-thread.tsx +6 -7
- package/src/components/story/detail/reaction-bar.tsx +2 -3
- package/src/components/story/detail/story-detail-body.tsx +26 -28
- package/src/components/story/detail/story-detail-toolbar/associated-attachments-panel.tsx +42 -45
- package/src/components/story/detail/story-detail-toolbar/categories.tsx +13 -14
- package/src/components/story/detail/story-detail-toolbar/children.tsx +19 -22
- package/src/components/story/detail/story-detail-toolbar/dependencies.tsx +3 -5
- package/src/components/story/detail/story-detail-toolbar/dependency-panel.tsx +30 -20
- package/src/components/story/detail/story-detail-toolbar.tsx +16 -11
- package/src/components/story/detail/story-properties.tsx +7 -8
- package/src/components/story/display/__tests__/display-dropdown.test.tsx +3 -5
- package/src/components/story/display/__tests__/use-paged-story-groups.test.ts +2 -0
- package/src/components/story/display/constants.ts +27 -26
- package/src/components/story/display/display-dropdown.tsx +20 -26
- package/src/components/story/display/group-resolver.tsx +12 -14
- package/src/components/story/display/use-grouped-stories.ts +3 -5
- package/src/components/story/display/use-paged-story-groups.ts +12 -13
- package/src/components/story/filters/add-filter-dropdown.tsx +4 -5
- package/src/components/story/filters/applied-filters.tsx +7 -9
- package/src/components/story/filters/filter-condition.tsx +9 -12
- package/src/components/story/filters/filter-row.tsx +5 -6
- package/src/components/story/filters/filter-toggle.tsx +2 -3
- package/src/components/story/filters/filter-types.ts +24 -23
- package/src/components/story/filters/filter-value-input.tsx +3 -4
- package/src/components/story/infinite-scroll-sentinel.tsx +2 -3
- package/src/components/story/inline-editors/__tests__/dependency-type-select.test.tsx +18 -23
- package/src/components/story/inline-editors/__tests__/labels-editor.test.tsx +9 -11
- package/src/components/story/inline-editors/__tests__/priority-editor.test.tsx +21 -25
- package/src/components/story/inline-editors/__tests__/state-editor.test.tsx +21 -25
- package/src/components/story/inline-editors/assignee-editor.tsx +8 -9
- package/src/components/story/inline-editors/date-editor.tsx +4 -5
- package/src/components/story/inline-editors/dependency-type-select.tsx +15 -12
- package/src/components/story/inline-editors/inline-trigger.tsx +2 -3
- package/src/components/story/inline-editors/labels-editor.tsx +16 -17
- package/src/components/story/inline-editors/parent-story-editor.tsx +3 -4
- package/src/components/story/inline-editors/priority-editor.tsx +6 -8
- package/src/components/story/inline-editors/state-editor.tsx +6 -7
- package/src/components/story/inline-editors/story-select-dialog.tsx +25 -26
- package/src/components/story/inline-editors/title-editor.tsx +2 -3
- package/src/components/story/peek-panel.tsx +6 -7
- package/src/components/story/relations/__tests__/knowledge-select-dialog.test.tsx +2 -0
- package/src/components/story/relations/__tests__/link-manage-dialog.test.tsx +2 -0
- package/src/components/story/relations/attachment-manage-dialog.tsx +23 -24
- package/src/components/story/relations/general-groups.ts +12 -29
- package/src/components/story/relations/knowledge-select-dialog.tsx +21 -22
- package/src/components/story/relations/link-manage-dialog.tsx +12 -13
- package/src/components/story/relations/story-ref-row.tsx +20 -21
- package/src/components/story/schemas/story-create.ts +3 -5
- package/src/components/story/search-popover.tsx +5 -6
- package/src/components/story/story-list-table.tsx +3 -4
- package/src/components/story/story-list-view.tsx +9 -10
- package/src/components/story/story-panel-header.tsx +27 -28
- package/src/components/story/story-toolbar.tsx +11 -12
- package/src/components/story/transfer-story-popover.tsx +15 -16
- package/src/components/story/views/calendar-view.tsx +12 -14
- package/src/components/story/views/create-view-dialog.tsx +19 -52
- package/src/components/story/views/kanban-board.tsx +9 -12
- package/src/components/story/views/kanban-card.tsx +1 -3
- package/src/components/story/views/story-list/__tests__/batch-toolbar.test.tsx +9 -2
- package/src/components/story/views/story-list/__tests__/group-header.test.tsx +15 -17
- package/src/components/story/views/story-list/batch-preview-dialog.tsx +26 -28
- package/src/components/story/views/story-list/batch-toolbar.tsx +12 -13
- package/src/components/story/views/story-list/group.tsx +9 -11
- package/src/components/story/views/story-list/index.tsx +13 -14
- package/src/components/story/views/story-list/inline-story-creator.tsx +6 -7
- package/src/components/story/views/story-list/row.tsx +6 -7
- package/src/components/story/views/timeline-view.tsx +7 -8
- package/src/components/story/views/view-list-section.tsx +14 -16
- package/src/components/story/views/view-selector-button.tsx +6 -7
- package/src/components/story/views/view-switcher.tsx +9 -10
- package/src/components/story/views/view-types.ts +15 -15
- package/src/components/tiptap/extension/code-block-ellipsis-input-extension.ts +0 -1
- package/src/components/tiptap/hooks/use-composed-ref.ts +0 -1
- package/src/components/tiptap/hooks/use-cursor-visibility.ts +0 -1
- package/src/components/tiptap/hooks/use-floating-element.ts +0 -1
- package/src/components/tiptap/hooks/use-is-breakpoint.ts +0 -1
- package/src/components/tiptap/hooks/use-isomorphic-layout-effect.ts +0 -1
- package/src/components/tiptap/hooks/use-menu-navigation.ts +0 -1
- package/src/components/tiptap/hooks/use-on-click-outside.ts +0 -1
- package/src/components/tiptap/hooks/use-tiptap-editor.ts +0 -1
- package/src/components/tiptap/hooks/use-ui-editor-state.ts +0 -1
- package/src/components/tiptap/mindmap/lib/__tests__/default-mindmap-data.test.ts +3 -2
- package/src/components/tiptap/mindmap/lib/default-mindmap-data.ts +2 -2
- package/src/components/tiptap/mindmap/mind-map.tsx +36 -39
- package/src/components/tiptap/mindmap/mindmap-fullscreen-dialog.tsx +2 -3
- package/src/components/tiptap/node/annotation-node/annotation-node-view.tsx +11 -12
- package/src/components/tiptap/node/doc-card-extension.tsx +8 -10
- package/src/components/tiptap/node/image-node/image-node-floating.tsx +2 -3
- package/src/components/tiptap/node/image-upload-node/image-upload-node.tsx +0 -1
- package/src/components/tiptap/node/mention-extension.ts +5 -5
- package/src/components/tiptap/node/table-node/hooks/use-table-handle-state.ts +0 -1
- package/src/components/tiptap/node/table-node/ui/table-add-row-column-button/table-add-row-column-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-add-row-column-button/use-table-add-row-column.ts +5 -6
- package/src/components/tiptap/node/table-node/ui/table-align-cell-button/table-align-cell-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-align-cell-button/use-table-align-cell.ts +8 -9
- package/src/components/tiptap/node/table-node/ui/table-alignment-menu/table-alignment-menu.tsx +2 -4
- package/src/components/tiptap/node/table-node/ui/table-cell-handle-menu/table-cell-handle-menu.tsx +2 -5
- package/src/components/tiptap/node/table-node/ui/table-clear-row-column-content-button/table-clear-row-column-content-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-clear-row-column-content-button/use-table-clear-row-column-content.ts +4 -5
- package/src/components/tiptap/node/table-node/ui/table-delete-row-column-button/table-delete-row-column-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-delete-row-column-button/use-table-delete-row-column.ts +3 -4
- package/src/components/tiptap/node/table-node/ui/table-duplicate-row-column-button/table-duplicate-row-column-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-duplicate-row-column-button/use-table-duplicate-row-column.ts +3 -4
- package/src/components/tiptap/node/table-node/ui/table-extend-row-column-button/table-extend-row-column-button.tsx +2 -4
- package/src/components/tiptap/node/table-node/ui/table-fit-to-width-button/table-fit-to-width-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-fit-to-width-button/use-table-fit-to-width.ts +3 -4
- package/src/components/tiptap/node/table-node/ui/table-handle/table-handle.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-handle-menu/table-handle-menu.tsx +3 -5
- package/src/components/tiptap/node/table-node/ui/table-header-row-column-button/table-header-row-column-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-header-row-column-button/use-table-header-row-column.ts +3 -4
- package/src/components/tiptap/node/table-node/ui/table-merge-split-cell-button/table-merge-split-cell-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-merge-split-cell-button/use-table-merge-split-cell.ts +3 -4
- package/src/components/tiptap/node/table-node/ui/table-move-row-column-button/table-move-row-column-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-move-row-column-button/use-table-move-row-column.ts +9 -10
- package/src/components/tiptap/node/table-node/ui/table-selection-overlay/table-selection-overlay.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-selection-overlay/use-resize-overlay.ts +0 -1
- package/src/components/tiptap/node/table-node/ui/table-sort-row-column-button/table-sort-row-column-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-sort-row-column-button/use-table-sort-row-column.ts +5 -6
- package/src/components/tiptap/node/table-node/ui/table-trigger-button/table-grid-selector.tsx +2 -3
- package/src/components/tiptap/node/table-node/ui/table-trigger-button/table-trigger-button.tsx +0 -1
- package/src/components/tiptap/node/table-node/ui/table-trigger-button/use-table-trigger.ts +3 -4
- package/src/components/tiptap/node/toc-node/toc-node.tsx +2 -4
- package/src/components/tiptap/node/toc-node/ui/toc-show-title-button/toc-show-title-button.tsx +0 -1
- package/src/components/tiptap/node/toc-node/ui/toc-show-title-button/toc-show-title.ts +2 -3
- package/src/components/tiptap/node/toc-node/ui/toc-sidebar/toc-sidebar.tsx +2 -5
- package/src/components/tiptap/notion-like/notion-like-editor-header.tsx +2 -4
- package/src/components/tiptap/notion-like/notion-like-editor-mobile-toolbar.tsx +17 -23
- package/src/components/tiptap/notion-like/notion-like-editor-theme-toggle.tsx +2 -5
- package/src/components/tiptap/notion-like/notion-like-editor-toolbar-floating.tsx +16 -12
- package/src/components/tiptap/notion-like/notion-like-editor.tsx +2 -7
- package/src/components/tiptap/notion-like/setup-error-message/setup-error-message.tsx +0 -1
- package/src/components/tiptap/ui/ai-ask-button/ai-ask-button.tsx +0 -1
- package/src/components/tiptap/ui/ai-ask-button/use-ai-ask.ts +2 -3
- package/src/components/tiptap/ui/ai-menu/ai-menu-actions/ai-menu-actions.tsx +4 -6
- package/src/components/tiptap/ui/ai-menu/ai-menu-input/ai-menu-input.tsx +6 -10
- package/src/components/tiptap/ui/ai-menu/ai-menu-items/ai-menu-items-constants.ts +36 -36
- package/src/components/tiptap/ui/ai-menu/ai-menu-items/ai-menu-items.tsx +13 -16
- package/src/components/tiptap/ui/ai-menu/ai-menu-items/language-selection-submenu.tsx +3 -4
- package/src/components/tiptap/ui/ai-menu/ai-menu-items/tone-selection-submenu.tsx +2 -3
- package/src/components/tiptap/ui/ai-menu/ai-menu-utils.ts +3 -3
- package/src/components/tiptap/ui/ai-menu/ai-menu.tsx +3 -5
- package/src/components/tiptap/ui/blockquote-button/blockquote-button.tsx +2 -6
- package/src/components/tiptap/ui/blockquote-button/use-blockquote.ts +2 -3
- package/src/components/tiptap/ui/code-block-button/code-block-button.tsx +2 -6
- package/src/components/tiptap/ui/code-block-button/use-code-block.ts +2 -3
- package/src/components/tiptap/ui/color-highlight-button/color-highlight-button.tsx +0 -1
- package/src/components/tiptap/ui/color-highlight-button/use-color-highlight.ts +14 -14
- package/src/components/tiptap/ui/color-highlight-popover/color-highlight-popover.tsx +9 -11
- package/src/components/tiptap/ui/color-menu/color-menu.tsx +5 -11
- package/src/components/tiptap/ui/color-text-button/color-text-button.tsx +2 -3
- package/src/components/tiptap/ui/color-text-button/use-color-text.ts +12 -13
- package/src/components/tiptap/ui/color-text-popover/color-text-popover.tsx +6 -10
- package/src/components/tiptap/ui/color-text-popover/use-color-text-popover.ts +2 -3
- package/src/components/tiptap/ui/copy-anchor-link-button/copy-anchor-link-button.tsx +2 -6
- package/src/components/tiptap/ui/copy-anchor-link-button/use-copy-anchor-link.ts +2 -3
- package/src/components/tiptap/ui/copy-anchor-link-button/use-scroll-to-hash.ts +0 -1
- package/src/components/tiptap/ui/copy-to-clipboard-button/copy-to-clipboard-button.tsx +2 -6
- package/src/components/tiptap/ui/copy-to-clipboard-button/use-copy-to-clipboard.ts +2 -3
- package/src/components/tiptap/ui/delete-node-button/delete-node-button.tsx +2 -6
- package/src/components/tiptap/ui/delete-node-button/use-delete-node.ts +2 -3
- package/src/components/tiptap/ui/doc-reference-floating/doc-reference-floating.tsx +10 -11
- package/src/components/tiptap/ui/doc-reference-interaction/doc-reference-interaction.tsx +10 -11
- package/src/components/tiptap/ui/drag-context-menu/drag-context-menu.tsx +7 -9
- package/src/components/tiptap/ui/duplicate-button/duplicate-button.tsx +2 -6
- package/src/components/tiptap/ui/duplicate-button/use-duplicate.ts +2 -3
- package/src/components/tiptap/ui/emoji-dropdown-menu/emoji-dropdown-menu.tsx +0 -1
- package/src/components/tiptap/ui/emoji-menu/emoji-menu.tsx +2 -5
- package/src/components/tiptap/ui/emoji-trigger-button/emoji-trigger-button.tsx +2 -6
- package/src/components/tiptap/ui/emoji-trigger-button/use-emoji-trigger.ts +2 -3
- package/src/components/tiptap/ui/heading-button/heading-button.tsx +0 -1
- package/src/components/tiptap/ui/heading-button/use-heading.ts +7 -8
- package/src/components/tiptap/ui/image-align-button/image-align-button.tsx +0 -1
- package/src/components/tiptap/ui/image-align-button/use-image-align.ts +4 -5
- package/src/components/tiptap/ui/image-caption-button/image-caption-button.tsx +0 -1
- package/src/components/tiptap/ui/image-caption-button/use-image-caption.ts +2 -3
- package/src/components/tiptap/ui/image-download-button/image-download-button.tsx +0 -1
- package/src/components/tiptap/ui/image-download-button/use-image-download.ts +2 -3
- package/src/components/tiptap/ui/image-upload-button/image-upload-button.tsx +0 -1
- package/src/components/tiptap/ui/image-upload-button/use-image-upload.ts +2 -3
- package/src/components/tiptap/ui/improve-dropdown/improve-dropdown.tsx +14 -17
- package/src/components/tiptap/ui/improve-dropdown/use-improve-dropdown.ts +2 -3
- package/src/components/tiptap/ui/indent-button/indent-button.tsx +0 -1
- package/src/components/tiptap/ui/indent-button/use-indent.ts +3 -4
- package/src/components/tiptap/ui/link-popover/link-popover.tsx +7 -12
- package/src/components/tiptap/ui/link-popover/use-link-popover.ts +2 -3
- package/src/components/tiptap/ui/list-button/list-button.tsx +0 -1
- package/src/components/tiptap/ui/list-button/use-list.ts +4 -5
- package/src/components/tiptap/ui/mark-button/mark-button.tsx +0 -1
- package/src/components/tiptap/ui/mark-button/use-mark.ts +8 -9
- package/src/components/tiptap/ui/mention-dropdown-menu/mention-dropdown-menu.tsx +0 -2
- package/src/components/tiptap/ui/mention-trigger-button/mention-trigger-button.tsx +0 -1
- package/src/components/tiptap/ui/mention-trigger-button/use-mention-trigger.ts +2 -3
- package/src/components/tiptap/ui/move-node-button/move-node-button.tsx +2 -6
- package/src/components/tiptap/ui/move-node-button/use-move-node.ts +2 -3
- package/src/components/tiptap/ui/reference-dropdown-menu/reference-dropdown-menu.tsx +6 -10
- package/src/components/tiptap/ui/reset-all-formatting-button/reset-all-formatting-button.tsx +2 -6
- package/src/components/tiptap/ui/reset-all-formatting-button/use-reset-all-formatting.ts +2 -3
- package/src/components/tiptap/ui/slash-command-trigger-button/slash-command-trigger-button.tsx +0 -1
- package/src/components/tiptap/ui/slash-command-trigger-button/use-slash-command-trigger.ts +2 -3
- package/src/components/tiptap/ui/slash-dropdown-menu/slash-dropdown-menu.tsx +2 -5
- package/src/components/tiptap/ui/slash-dropdown-menu/use-slash-dropdown-menu.ts +78 -79
- package/src/components/tiptap/ui/text-align-button/text-align-button.tsx +0 -1
- package/src/components/tiptap/ui/text-align-button/use-text-align.ts +5 -6
- package/src/components/tiptap/ui/text-button/text-button.tsx +2 -6
- package/src/components/tiptap/ui/text-button/use-text.ts +2 -3
- package/src/components/tiptap/ui/turn-into-dropdown/turn-into-dropdown.tsx +4 -7
- package/src/components/tiptap/ui/turn-into-dropdown/use-turn-into-dropdown.ts +11 -12
- package/src/components/tiptap/ui/undo-redo-button/undo-redo-button.tsx +0 -1
- package/src/components/tiptap/ui/undo-redo-button/use-undo-redo.ts +3 -4
- package/src/components/tiptap/ui-primitive/avatar/avatar.tsx +0 -1
- package/src/components/tiptap/ui-primitive/badge/badge.tsx +0 -1
- package/src/components/tiptap/ui-primitive/button/button.tsx +0 -1
- package/src/components/tiptap/ui-primitive/card/card.tsx +0 -1
- package/src/components/tiptap/ui-primitive/combobox/combobox.tsx +0 -1
- package/src/components/tiptap/ui-primitive/dropdown-menu/dropdown-menu.tsx +0 -1
- package/src/components/tiptap/ui-primitive/input/input.tsx +0 -1
- package/src/components/tiptap/ui-primitive/input-group/input-group.tsx +0 -1
- package/src/components/tiptap/ui-primitive/label/label.tsx +0 -1
- package/src/components/tiptap/ui-primitive/menu/menu-context.ts +0 -1
- package/src/components/tiptap/ui-primitive/menu/menu-hooks.ts +0 -1
- package/src/components/tiptap/ui-primitive/menu/menu-types.ts +0 -1
- package/src/components/tiptap/ui-primitive/menu/menu-utils.ts +0 -1
- package/src/components/tiptap/ui-primitive/menu/menu.tsx +0 -1
- package/src/components/tiptap/ui-primitive/popover/popover.tsx +0 -1
- package/src/components/tiptap/ui-primitive/separator/separator.tsx +0 -1
- package/src/components/tiptap/ui-primitive/sidebar/sidebar.tsx +0 -1
- package/src/components/tiptap/ui-primitive/spacer/spacer.tsx +0 -1
- package/src/components/tiptap/ui-primitive/textarea/textarea.tsx +0 -1
- package/src/components/tiptap/ui-primitive/textarea-autosize/textarea-autosize.tsx +0 -1
- package/src/components/tiptap/ui-primitive/toolbar/toolbar.tsx +0 -1
- package/src/components/tiptap/ui-primitive/tooltip/tooltip.tsx +0 -1
- package/src/components/tiptap/ui-utils/floating-element/floating-element.tsx +0 -1
- package/src/components/tiptap/ui-utils/suggestion-menu/suggestion-menu.tsx +0 -1
- package/src/components/ui/field.tsx +1 -1
- package/src/components/ui/radio-group.tsx +2 -3
- package/src/components/ui/spinner.tsx +2 -2
- package/src/components/workspace/create-workspace-dialog.tsx +12 -13
- package/src/components/workspace/delete-workspace-options.tsx +177 -0
- package/src/components/workspace/edit-workspace-dialog.tsx +153 -0
- package/src/components/workspace/schemas/create-workspace.ts +2 -2
- package/src/components/workspace/workspace-activity-card.tsx +60 -0
- package/src/components/workspace/workspace-contribution-card.tsx +37 -0
- package/src/components/workspace/workspace-header.tsx +100 -0
- package/src/components/workspace/workspace-kb-card.tsx +31 -0
- package/src/components/workspace/workspace-member-item.tsx +80 -0
- package/src/components/workspace/workspace-members-manager.tsx +291 -0
- package/src/components/workspace/workspace-project-list.tsx +129 -0
- package/src/config/sidebar-routes.tsx +25 -24
- package/src/config/sidebar-teams.ts +4 -4
- package/src/hooks/__tests__/use-commands.test.tsx +0 -10
- package/src/hooks/use-commands.ts +3 -7
- package/src/hooks/use-entity-subscription.ts +0 -1
- package/src/hooks/use-notifications.ts +5 -6
- package/src/hooks/useTranslator.ts +0 -1
- package/src/lib/__tests__/edition.test.ts +9 -0
- package/src/lib/analytics.ts +0 -1
- package/src/lib/anyhub/anyhub-message-bridge.ts +1 -1
- package/src/lib/auth/__tests__/anonymous-safe.test.ts +89 -0
- package/src/lib/auth/__tests__/page-gate.test.ts +29 -0
- package/src/lib/auth/anonymous-safe.ts +39 -0
- package/src/lib/auth/page-gate.ts +18 -0
- package/src/lib/changelog/sdk-versions.ts +19 -19
- package/src/lib/collections/knowledge/knowledge-bases-collection.ts +1 -1
- package/src/lib/collections/reference/bookmark-categories-collection.ts +1 -1
- package/src/lib/collections/reference/labels-collection.ts +1 -1
- package/src/lib/collections/reference/projects-collection.ts +1 -1
- package/src/lib/collections/reference/users-brief-collection.ts +1 -1
- package/src/lib/collections/reference/workspaces-collection.ts +3 -3
- package/src/lib/commands/__tests__/registry.test.ts +3 -3
- package/src/lib/commands/registry.ts +22 -21
- package/src/lib/commands/types.ts +1 -1
- package/src/lib/edition.ts +7 -0
- package/src/lib/router-context.ts +1 -2
- package/src/plugins/.gen-manifest.json +13 -0
- package/src/plugins/core/inspiration/pages/inspiration-page.tsx +2 -3
- package/src/plugins/core/inspiration/ui.tsx +2 -3
- package/src/plugins/core/prd/components/agent-input.tsx +7 -8
- package/src/plugins/core/prd/components/component-editor/content-section.tsx +3 -3
- package/src/plugins/core/prd/components/component-editor/position-section.tsx +3 -4
- package/src/plugins/core/prd/components/component-editor/style-fields.tsx +13 -16
- package/src/plugins/core/prd/components/dialog/create-prd-dialog.tsx +11 -12
- package/src/plugins/core/prd/components/dialog/prd-detail-client.tsx +7 -9
- package/src/plugins/core/prd/components/page-version-panel/components/create-version-dialog.tsx +7 -8
- package/src/plugins/core/prd/components/page-version-panel/components/delete-version-dialog.tsx +5 -6
- package/src/plugins/core/prd/components/page-version-panel/components/edit-version-dialog.tsx +7 -8
- package/src/plugins/core/prd/components/page-version-panel/constants.tsx +3 -2
- package/src/plugins/core/prd/components/page-version-panel.tsx +43 -45
- package/src/plugins/core/prd/components/page-version-tree.tsx +6 -8
- package/src/plugins/core/prd/components/prd-agent-panel.tsx +29 -23
- package/src/plugins/core/prd/components/prd-comment-review-panel.tsx +21 -23
- package/src/plugins/core/prd/components/prd-component-editor-content.tsx +6 -7
- package/src/plugins/core/prd/components/prd-dashboard.tsx +28 -23
- package/src/plugins/core/prd/components/prd-doc-panel.tsx +6 -9
- package/src/plugins/core/prd/components/prd-editor-layout.tsx +11 -13
- package/src/plugins/core/prd/components/prd-filter-bar.tsx +2 -3
- package/src/plugins/core/prd/components/prd-left-sidebar.tsx +19 -20
- package/src/plugins/core/prd/components/prd-navigation.tsx +12 -14
- package/src/plugins/core/prd/components/prd-outline-tab.tsx +3 -4
- package/src/plugins/core/prd/components/prd-prototype-panel.tsx +8 -10
- package/src/plugins/core/prd/components/prd-right-sidebar.tsx +10 -12
- package/src/plugins/core/prd/components/prd-share-panel/components/single-version-share-card.tsx +13 -14
- package/src/plugins/core/prd/components/prd-share-panel/constants.ts +5 -3
- package/src/plugins/core/prd/components/prd-share-panel.tsx +58 -60
- package/src/plugins/core/prd/components/prd-tree-page-tab.tsx +20 -22
- package/src/plugins/core/prd/components/prototype/PrototypeCanvas.tsx +2 -4
- package/src/plugins/core/prd/components/prototype/PrototypeElement.tsx +3 -5
- package/src/plugins/core/prd/components/prototype/ResizeHandles.tsx +0 -1
- package/src/plugins/core/prd/components/prototype/icon-components.ts +19 -21
- package/src/plugins/core/prd/components/prototype/index.ts +3 -0
- package/src/plugins/core/prd/components/restore-version-dialog.tsx +5 -7
- package/src/plugins/core/prd/components/share/prd-share-client.tsx +7 -9
- package/src/plugins/core/prd/components/share/share-annotation-overlay.tsx +0 -1
- package/src/plugins/core/prd/components/share/share-comment-panel.tsx +15 -16
- package/src/plugins/core/prd/components/share/share-comment-review-panel.tsx +7 -9
- package/src/plugins/core/prd/components/share/share-directory-tree.tsx +3 -5
- package/src/plugins/core/prd/components/share/share-doc-view.tsx +3 -5
- package/src/plugins/core/prd/components/share/share-layout.tsx +3 -5
- package/src/plugins/core/prd/components/share/share-nav-bar.tsx +3 -5
- package/src/plugins/core/prd/components/share/share-password-gate.tsx +8 -9
- package/src/plugins/core/prd/components/share/share-prototype-view.tsx +3 -5
- package/src/plugins/core/prd/components/share/share-review-panel.tsx +9 -11
- package/src/plugins/core/prd/components/share/share-sse-listener.tsx +0 -1
- package/src/plugins/core/prd/components/share/version-share-client.tsx +3 -5
- package/src/plugins/core/prd/pages/prd-detail-page.tsx +9 -21
- package/src/plugins/core/prd/pages/share-prd-page.tsx +6 -16
- package/src/plugins/core/prd/prd-nav.tsx +2 -3
- package/src/plugins/core/tags/nav-tag.tsx +14 -15
- package/src/plugins/core/tags/pages/tag-detail-page.tsx +3 -5
- package/src/plugins/core/tags/pages/tag-settings-page.tsx +3 -5
- package/src/plugins/core/tags/pages/tags-index-page.tsx +3 -5
- package/src/plugins/core/tags/tag-badge.tsx +2 -3
- package/src/plugins/core/tags/tag-color-picker.tsx +2 -4
- package/src/plugins/core/tags/tag-manager.tsx +23 -25
- package/src/plugins/core/tags/tag-selector.tsx +4 -5
- package/src/plugins/modules.gen.ts +21 -0
- package/src/plugins/plugins.gen.ts +20 -0
- package/src/plugins/ui.gen.ts +8 -0
- package/src/providers/index.tsx +3 -14
- package/src/routeTree.gen.ts +27 -0
- package/src/router.tsx +16 -6
- package/src/routes/__desktop/onboarding/route.lazy.tsx +22 -23
- package/src/routes/__root.tsx +13 -36
- package/src/routes/__tests__/-edition-routing.test.tsx +151 -0
- package/src/routes/_login/forgot-password/route.lazy.tsx +14 -15
- package/src/routes/_login/login/route.lazy.tsx +26 -25
- package/src/routes/_login/register/route.lazy.tsx +23 -24
- package/src/routes/_login/reset-password/route.lazy.tsx +16 -17
- package/src/routes/_login/schemas/-auth.ts +11 -13
- package/src/routes/_nav/acceptance-criteria/route.tsx +2 -3
- package/src/routes/_nav/apps/anyhub/$id/route.tsx +2 -3
- package/src/routes/_nav/chat/route.lazy.tsx +9 -10
- package/src/routes/_nav/dashboard/-components/activity-feed.tsx +3 -4
- package/src/routes/_nav/dashboard/-components/quick-actions.tsx +3 -4
- package/src/routes/_nav/dashboard/-components/stats-grid.tsx +5 -6
- package/src/routes/_nav/dashboard/route.lazy.tsx +7 -8
- package/src/routes/_nav/design/$projectId/$artboardId/route.lazy.tsx +7 -9
- package/src/routes/_nav/design/$projectId/route.lazy.tsx +3 -5
- package/src/routes/_nav/design/index.lazy.tsx +26 -27
- package/src/routes/_nav/inspiration/route.tsx +8 -0
- package/src/routes/_nav/knowledge/$kbId/doc/$docId/route.lazy.tsx +4 -5
- package/src/routes/_nav/knowledge/$kbId/route.lazy.tsx +3 -4
- package/src/routes/_nav/knowledge/bookmarks/$id.lazy.tsx +29 -30
- package/src/routes/_nav/knowledge/bookmarks/index.lazy.tsx +12 -13
- package/src/routes/_nav/knowledge/compliance/$id.lazy.tsx +22 -23
- package/src/routes/_nav/knowledge/compliance/index.lazy.tsx +18 -19
- package/src/routes/_nav/knowledge/dictionaries/$id.lazy.tsx +5 -6
- package/src/routes/_nav/knowledge/dictionaries/index.lazy.tsx +17 -18
- package/src/routes/_nav/knowledge/index.lazy.tsx +248 -40
- package/src/routes/_nav/knowledge/laws/$id.lazy.tsx +22 -23
- package/src/routes/_nav/knowledge/laws/index.lazy.tsx +14 -15
- package/src/routes/_nav/knowledge/summary/index.lazy.tsx +31 -32
- package/src/routes/_nav/notifications/route.lazy.tsx +3 -4
- package/src/routes/_nav/notifications/route.tsx +2 -0
- package/src/routes/_nav/notion-like/route.tsx +2 -3
- package/src/routes/_nav/prd/$id/route.tsx +9 -0
- package/src/routes/_nav/prd/index.tsx +9 -0
- package/src/routes/_nav/prd/route.tsx +8 -0
- package/src/routes/_nav/pricing-02/route.tsx +2 -3
- package/src/routes/_nav/projects/$projectId/$storyId/route.lazy.tsx +23 -24
- package/src/routes/_nav/projects/$projectId/index.lazy.tsx +54 -74
- package/src/routes/_nav/projects/$projectId/iterations/$iterationId/route.lazy.tsx +27 -30
- package/src/routes/_nav/projects/$projectId/iterations/index.lazy.tsx +9 -10
- package/src/routes/_nav/projects/$projectId/route.tsx +4 -2
- package/src/routes/_nav/projects/$projectId/settings/route.lazy.tsx +40 -41
- package/src/routes/_nav/route.tsx +13 -16
- package/src/routes/_nav/settings/-settings-tabs.tsx +24 -51
- package/src/routes/_nav/settings/account/route.lazy.tsx +1 -9
- package/src/routes/_nav/settings/ai/index/route.lazy.tsx +5 -6
- package/src/routes/_nav/settings/billing/route.lazy.tsx +4 -5
- package/src/routes/_nav/settings/connection/route.lazy.tsx +14 -10
- package/src/routes/_nav/settings/design/route.lazy.tsx +21 -22
- package/src/routes/_nav/settings/general/route.lazy.tsx +10 -11
- package/src/routes/_nav/settings/notifications/route.lazy.tsx +3 -5
- package/src/routes/_nav/settings/privacy/route.lazy.tsx +15 -16
- package/src/routes/_nav/settings/route.lazy.tsx +2 -3
- package/src/routes/_nav/settings/route.tsx +10 -15
- package/src/routes/_nav/settings/team/route.lazy.tsx +1 -9
- package/src/routes/_nav/tags/$id/route.tsx +8 -0
- package/src/routes/_nav/tags/index.tsx +8 -0
- package/src/routes/_nav/tags/route.tsx +8 -0
- package/src/routes/_nav/tags/settings/route.tsx +9 -0
- package/src/routes/_nav/test-cases/route.tsx +2 -3
- package/src/routes/_nav/workspaces/$workspaceId/activities/route.lazy.tsx +69 -0
- package/src/routes/_nav/workspaces/$workspaceId/activities/route.tsx +28 -0
- package/src/routes/_nav/workspaces/$workspaceId/route.lazy.tsx +194 -99
- package/src/routes/_nav/workspaces/$workspaceId/route.tsx +12 -3
- package/src/routes/_nav/workspaces/$workspaceId/settings/route.lazy.tsx +75 -61
- package/src/routes/_nav/workspaces/index.lazy.tsx +196 -22
- package/src/routes/_nav/workspaces/route.tsx +2 -0
- package/src/routes/_public/index/route.tsx +5 -1
- package/src/routes/invite/$token/route.lazy.tsx +36 -37
- package/src/routes/share/$versionId/route.lazy.tsx +4 -11
- package/src/routes/share/compliance/$id/route.lazy.tsx +6 -8
- package/src/routes/share/law/$id/route.lazy.tsx +6 -8
- package/src/routes/share/prd/$prdId/route.tsx +10 -0
- package/src/server/__tests__/agent-client-graph.test.ts +4 -8
- package/src/server/ai-ports.ts +7 -6
- package/src/server/builtin-project.ts +43 -0
- package/src/server/design/sketch/file-storage.ts +1 -1
- package/src/server/pro-services.ts +1 -1
- package/src/server/serverFns/__tests__/workspace.test.ts +101 -0
- package/src/server/serverFns/activity.ts +15 -9
- package/src/server/serverFns/knowledge-public/bookmarks/list.ts +1 -1
- package/src/server/serverFns/knowledge-public/bookmarks/share.ts +3 -3
- package/src/server/serverFns/knowledge-public/compliance/share.ts +3 -3
- package/src/server/serverFns/knowledge-public/dictionary/share.ts +3 -3
- package/src/server/serverFns/knowledge-public/legal/share.ts +3 -3
- package/src/server/serverFns/knowledge.ts +27 -2
- package/src/server/serverFns/notifications.ts +3 -0
- package/src/server/serverFns/project.ts +48 -35
- package/src/server/serverFns/story/story-crud/bulk.ts +2 -2
- package/src/server/serverFns/story/story-crud.ts +9 -7
- package/src/server/serverFns/story/story-groups.ts +6 -6
- package/src/server/serverFns/workspace.ts +334 -13
- package/src/server-entry.ts +29 -0
- package/vite.shared.ts +4 -1
- package/src/components/layout/sidebar-03/logo.tsx +0 -41
- package/src/i18n/__tests__/detect.test.ts +0 -48
- package/src/i18n/__tests__/integration.test.tsx +0 -32
- package/src/i18n/__tests__/server.test.ts +0 -33
- package/src/i18n/client.ts +0 -32
- package/src/i18n/config.ts +0 -116
- package/src/i18n/detect.ts +0 -43
- package/src/i18n/locales/en/agents.json +0 -134
- package/src/i18n/locales/en/apps.json +0 -6
- package/src/i18n/locales/en/auth.json +0 -90
- package/src/i18n/locales/en/billing.json +0 -78
- package/src/i18n/locales/en/chat.json +0 -194
- package/src/i18n/locales/en/common.json +0 -242
- package/src/i18n/locales/en/dashboard.json +0 -38
- package/src/i18n/locales/en/design.json +0 -70
- package/src/i18n/locales/en/desktop.json +0 -35
- package/src/i18n/locales/en/display.json +0 -37
- package/src/i18n/locales/en/editor.json +0 -304
- package/src/i18n/locales/en/enterprise.json +0 -1
- package/src/i18n/locales/en/invite.json +0 -56
- package/src/i18n/locales/en/iterations.json +0 -92
- package/src/i18n/locales/en/knowledge.json +0 -462
- package/src/i18n/locales/en/mindmap.json +0 -28
- package/src/i18n/locales/en/notifications.json +0 -79
- package/src/i18n/locales/en/prd.json +0 -51
- package/src/i18n/locales/en/projects.json +0 -140
- package/src/i18n/locales/en/settings.json +0 -428
- package/src/i18n/locales/en/share.json +0 -20
- package/src/i18n/locales/en/story.json +0 -923
- package/src/i18n/locales/en/tags.json +0 -42
- package/src/i18n/locales/en/workspace.json +0 -90
- package/src/i18n/locales/zh/agents.json +0 -134
- package/src/i18n/locales/zh/apps.json +0 -6
- package/src/i18n/locales/zh/auth.json +0 -90
- package/src/i18n/locales/zh/billing.json +0 -78
- package/src/i18n/locales/zh/chat.json +0 -194
- package/src/i18n/locales/zh/common.json +0 -242
- package/src/i18n/locales/zh/dashboard.json +0 -38
- package/src/i18n/locales/zh/design.json +0 -70
- package/src/i18n/locales/zh/desktop.json +0 -35
- package/src/i18n/locales/zh/display.json +0 -37
- package/src/i18n/locales/zh/editor.json +0 -304
- package/src/i18n/locales/zh/enterprise.json +0 -1
- package/src/i18n/locales/zh/invite.json +0 -56
- package/src/i18n/locales/zh/iterations.json +0 -92
- package/src/i18n/locales/zh/knowledge.json +0 -462
- package/src/i18n/locales/zh/mindmap.json +0 -28
- package/src/i18n/locales/zh/notifications.json +0 -79
- package/src/i18n/locales/zh/prd.json +0 -51
- package/src/i18n/locales/zh/projects.json +0 -140
- package/src/i18n/locales/zh/settings.json +0 -428
- package/src/i18n/locales/zh/share.json +0 -20
- package/src/i18n/locales/zh/story.json +0 -923
- package/src/i18n/locales/zh/tags.json +0 -42
- package/src/i18n/locales/zh/workspace.json +0 -90
- package/src/i18n/server.ts +0 -18
- package/src/i18n/types.ts +0 -5
- package/src/server/serverFns/locale.ts +0 -20
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Projects",
|
|
3
|
-
"module": {
|
|
4
|
-
"assigneeLabel": "Assignee: ",
|
|
5
|
-
"unassigned": "Unassigned",
|
|
6
|
-
"moduleTitle": "Module",
|
|
7
|
-
"totalItems": "{{count}} items",
|
|
8
|
-
"liveBadge": "Live data",
|
|
9
|
-
"empty": "No content yet"
|
|
10
|
-
},
|
|
11
|
-
"detail": {
|
|
12
|
-
"settings": "Project Settings",
|
|
13
|
-
"noDescription": "No description",
|
|
14
|
-
"activity": "Activity",
|
|
15
|
-
"noContributions": "No contribution records",
|
|
16
|
-
"modulesTitle": "Module Overview",
|
|
17
|
-
"recentActivity": "Recent Activity",
|
|
18
|
-
"iterations": "Iterations"
|
|
19
|
-
},
|
|
20
|
-
"project": {
|
|
21
|
-
"member": {
|
|
22
|
-
"owner": "Owner",
|
|
23
|
-
"admin": "Admin",
|
|
24
|
-
"member": "Member",
|
|
25
|
-
"viewer": "Viewer",
|
|
26
|
-
"self": "You",
|
|
27
|
-
"roleUpdated": "Role updated",
|
|
28
|
-
"removed": "Member removed",
|
|
29
|
-
"removeFailed": "Remove failed",
|
|
30
|
-
"management": "Member Management",
|
|
31
|
-
"totalMembers": "{{count}} members",
|
|
32
|
-
"noTeamMembers": "No team members available to assign. Go to Settings → Team to invite members.",
|
|
33
|
-
"invite": "Invite Member",
|
|
34
|
-
"pending": "Pending",
|
|
35
|
-
"setRole": "Set Role",
|
|
36
|
-
"setAdmin": "Set as Admin",
|
|
37
|
-
"setMember": "Set as Member",
|
|
38
|
-
"setViewer": "Set as Viewer",
|
|
39
|
-
"removeMember": "Remove Member",
|
|
40
|
-
"confirmRemove": "Confirm Remove Member",
|
|
41
|
-
"confirmRemoveDesc": "Are you sure you want to remove \"{{username}}\"? This member will lose project access immediately and can be re-invited.",
|
|
42
|
-
"removing": "Removing...",
|
|
43
|
-
"confirmRemoveAction": "Confirm Remove"
|
|
44
|
-
},
|
|
45
|
-
"create": {
|
|
46
|
-
"nameRequired": "Please enter a project name",
|
|
47
|
-
"failed": "Create failed",
|
|
48
|
-
"title": "Create Project",
|
|
49
|
-
"namePlaceholder": "Enter project name",
|
|
50
|
-
"idUnavailable": "ID is unavailable",
|
|
51
|
-
"idPlaceholder": "Auto-generated from name, editable, max 10 letters/numbers",
|
|
52
|
-
"workspaceLabel": "Workspace",
|
|
53
|
-
"workspaceSelected": "Workspace selected",
|
|
54
|
-
"workspaceRequired": "Please select a workspace",
|
|
55
|
-
"workspacePlaceholder": "Select workspace",
|
|
56
|
-
"introPlaceholder": "Brief description (optional)",
|
|
57
|
-
"creating": "Creating..."
|
|
58
|
-
},
|
|
59
|
-
"invite": {
|
|
60
|
-
"adminLabel": "Admin",
|
|
61
|
-
"adminDesc": "Can manage members and project settings",
|
|
62
|
-
"memberLabel": "Member",
|
|
63
|
-
"memberDesc": "Can edit project content",
|
|
64
|
-
"viewerLabel": "Viewer",
|
|
65
|
-
"viewerDesc": "Can only view the project",
|
|
66
|
-
"emailRequired": "Please enter an email",
|
|
67
|
-
"invited": "Invitation sent",
|
|
68
|
-
"inviteFailed": "Invitation failed",
|
|
69
|
-
"title": "Invite Member",
|
|
70
|
-
"description": "Invite new members to the project via email",
|
|
71
|
-
"emailLabel": "Email Address",
|
|
72
|
-
"roleLabel": "Role",
|
|
73
|
-
"sendInvite": "Send Invite"
|
|
74
|
-
},
|
|
75
|
-
"activity": {
|
|
76
|
-
"created": "created the project",
|
|
77
|
-
"updated": "updated project info",
|
|
78
|
-
"deleted": "deleted the project",
|
|
79
|
-
"memberInvited": "invited a new member",
|
|
80
|
-
"memberJoined": "joined the project",
|
|
81
|
-
"memberRemoved": "removed a member",
|
|
82
|
-
"roleChanged": "changed a member's role",
|
|
83
|
-
"moduleViewed": "viewed a module",
|
|
84
|
-
"justNow": "Just now",
|
|
85
|
-
"minutesAgo": "{{count}} min ago",
|
|
86
|
-
"hoursAgo": "{{count}} hours ago",
|
|
87
|
-
"daysAgo": "{{count}} days ago",
|
|
88
|
-
"noRecords": "No activity records",
|
|
89
|
-
"unknownUser": "Unknown User",
|
|
90
|
-
"dateFormat": "M/d"
|
|
91
|
-
},
|
|
92
|
-
"moduleCard": {
|
|
93
|
-
"lastUpdate": "Last updated: ",
|
|
94
|
-
"today": "Today"
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
"settings": {
|
|
98
|
-
"nameRequired": "Please enter a project name",
|
|
99
|
-
"saved": "Project updated",
|
|
100
|
-
"saveFailed": "Save failed",
|
|
101
|
-
"deleted": "Project and requirements deleted",
|
|
102
|
-
"transferredAndDeleted": "Requirements transferred to standalone project, project deleted",
|
|
103
|
-
"deleteFailed": "Delete failed",
|
|
104
|
-
"backToProject": "Back to Project",
|
|
105
|
-
"title": "Project Settings",
|
|
106
|
-
"basicInfo": "Basic Information",
|
|
107
|
-
"projectIcon": "Project Icon",
|
|
108
|
-
"projectName": "Project Name *",
|
|
109
|
-
"projectId": "Project ID",
|
|
110
|
-
"idUnavailable": "ID is unavailable",
|
|
111
|
-
"idPlaceholder": "Uppercase alphanumeric, max 10 characters",
|
|
112
|
-
"projectDescription": "Project Description",
|
|
113
|
-
"descPlaceholder": "Briefly describe the project goals and scope",
|
|
114
|
-
"saveChanges": "Save Changes",
|
|
115
|
-
"timezone": "Project Timezone",
|
|
116
|
-
"followMyTimezone": "Follow my timezone ({{timezone}})",
|
|
117
|
-
"customTimezone": "Custom Timezone",
|
|
118
|
-
"members": "Members",
|
|
119
|
-
"dangerZone": "Danger Zone",
|
|
120
|
-
"dangerDesc": "Deleting a project will permanently remove it along with all member relationships and activity records. This action cannot be undone.",
|
|
121
|
-
"deleteProject": "Delete Project",
|
|
122
|
-
"confirmDelete": "Confirm Delete",
|
|
123
|
-
"confirmDeleteDesc": "This will permanently delete \"{{projectName}}\" and all its associated data. This cannot be undone.",
|
|
124
|
-
"deleteMethod": "Delete Method",
|
|
125
|
-
"transfer": "Transfer to Standalone Requirements",
|
|
126
|
-
"transferDesc": "Project requirements will be transferred to the \"Standalone Requirements\" project, preserving requirement data.",
|
|
127
|
-
"clear": "Clear Requirements (Irreversible)",
|
|
128
|
-
"clearDesc": "The project and all its requirements will be permanently deleted.",
|
|
129
|
-
"kbSection": {
|
|
130
|
-
"title": "Linked Knowledge Bases",
|
|
131
|
-
"desc": "Stories in this project can link pages from the following team knowledge bases and general knowledge bases. General KBs are globally available and need no linking.",
|
|
132
|
-
"teamOnly": "Only team-visible knowledge bases can be linked",
|
|
133
|
-
"generalDisabled": "General knowledge bases are globally available, no linking needed",
|
|
134
|
-
"save": "Save links",
|
|
135
|
-
"saved": "Knowledge base links updated",
|
|
136
|
-
"saveFailed": "Failed to save",
|
|
137
|
-
"empty": "No linkable knowledge bases"
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
@@ -1,428 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tabs": {
|
|
3
|
-
"general": "General",
|
|
4
|
-
"generalSettings": "General Settings",
|
|
5
|
-
"personalTeam": "Personal & Team",
|
|
6
|
-
"accountProfile": "Account Profile",
|
|
7
|
-
"teamMembers": "Team Management",
|
|
8
|
-
"dataPrivacy": "Data & Privacy",
|
|
9
|
-
"ai": "AI",
|
|
10
|
-
"aiAgents": "Agents",
|
|
11
|
-
"aiProviders": "AI Providers",
|
|
12
|
-
"prdDesign": "PRD Prototype & UI Design",
|
|
13
|
-
"uiDesign": "UI Design",
|
|
14
|
-
"billing": "Subscription & Billing",
|
|
15
|
-
"subscription": "Subscription",
|
|
16
|
-
"desktop": "Desktop",
|
|
17
|
-
"connectionMode": "Connection Mode",
|
|
18
|
-
"plugins": "Plugins",
|
|
19
|
-
"notifications": "Notifications"
|
|
20
|
-
},
|
|
21
|
-
"langZh": "中文",
|
|
22
|
-
"langEn": "English",
|
|
23
|
-
"languageChanged": "Language changed",
|
|
24
|
-
"languageChangeFailed": "Failed to change language",
|
|
25
|
-
"ai": {
|
|
26
|
-
"providers": "AI Providers",
|
|
27
|
-
"providersDescription": "Click a provider card to configure API Key, custom endpoint, and enabled models. Conversations will automatically route to the selected provider.",
|
|
28
|
-
"privacyNotice": "Privacy Notice",
|
|
29
|
-
"privacyNoticeDescription": "API Key is only stored in your account database and read server-side via serverFn. It is never written to client localStorage, cookies, or session JWT.",
|
|
30
|
-
"loadError": "[settings/ai] Failed to load provider list",
|
|
31
|
-
"operationFailed": "Operation failed",
|
|
32
|
-
"providerEnabled": "Enabled",
|
|
33
|
-
"providerConfigured": "Configured",
|
|
34
|
-
"providerLocal": "Local",
|
|
35
|
-
"providerNotConfigured": "Not Configured",
|
|
36
|
-
"platformDepreciated": "Platform deprecated",
|
|
37
|
-
"platformDepreciatedNotice": "Platform deprecated, configured users can continue to use",
|
|
38
|
-
"modelCount": "{{count}} models",
|
|
39
|
-
"enable": "Enable",
|
|
40
|
-
"disable": "Disable",
|
|
41
|
-
"enabledProviders": "Enabled providers ({{count}})",
|
|
42
|
-
"disabledProviders": "Disabled providers ({{count}})",
|
|
43
|
-
"noMatchedProviders": "No matching providers",
|
|
44
|
-
"searchPlaceholder": "Search providers (e.g. OpenAI, Claude)",
|
|
45
|
-
"sortDefault": "Default sort",
|
|
46
|
-
"sortByName": "By name",
|
|
47
|
-
"sortConfiguredFirst": "Configured first",
|
|
48
|
-
"localNoKeyNeeded": "No API Key needed for local deployment",
|
|
49
|
-
"keyStoredEncrypted": "API Key is encrypted and stored in the database.",
|
|
50
|
-
"getKey": "Get API Key",
|
|
51
|
-
"current": "Current:",
|
|
52
|
-
"keepCurrentKey": "Leave empty to keep current key, enter new value to overwrite",
|
|
53
|
-
"hideKey": "Hide API Key",
|
|
54
|
-
"showKey": "Show API Key",
|
|
55
|
-
"deleteSavedKey": "Delete saved API Key",
|
|
56
|
-
"createCustomModel": "Create Custom Model",
|
|
57
|
-
"createCustomModelDescription": "Add a model not provided by the service provider (e.g. fine-tuned model, private deployment model). Visible only to you.",
|
|
58
|
-
"modelId": "Model ID *",
|
|
59
|
-
"displayName": "Display Name",
|
|
60
|
-
"displayNamePlaceholder": "Leave empty to use model ID",
|
|
61
|
-
"contextWindow": "Context Window",
|
|
62
|
-
"releaseDate": "Release Date",
|
|
63
|
-
"inputPrice": "Input Price ($/M tokens)",
|
|
64
|
-
"outputPrice": "Output Price ($/M tokens)",
|
|
65
|
-
"capabilitiesSection": "Capabilities",
|
|
66
|
-
"capabilitiesMap": {
|
|
67
|
-
"text": "Text",
|
|
68
|
-
"vision": "Vision",
|
|
69
|
-
"tools": "Tools",
|
|
70
|
-
"reasoning": "Reasoning",
|
|
71
|
-
"audio": "Audio"
|
|
72
|
-
},
|
|
73
|
-
"iconSlug": "Icon slug (optional)",
|
|
74
|
-
"iconSlugPlaceholder": "@lobehub/icons PascalCase name, leave empty to use provider icon",
|
|
75
|
-
"tags": "Tags (comma-separated)",
|
|
76
|
-
"tagsPlaceholder": "e.g. flagship, fast",
|
|
77
|
-
"creating": "Creating...",
|
|
78
|
-
"createModel": "Create Model",
|
|
79
|
-
"fetchFailed": "Fetch failed",
|
|
80
|
-
"createFailed": "Create failed",
|
|
81
|
-
"totalModels": "{{count}} models",
|
|
82
|
-
"includesCustom": " ({{count}} custom)",
|
|
83
|
-
"searchModels": "Search model name or ID",
|
|
84
|
-
"fetchModels": "Fetch Models",
|
|
85
|
-
"enabled": "Enabled",
|
|
86
|
-
"enableAll": "Enable All",
|
|
87
|
-
"toggleAllFiltered": "Enable or disable all filtered models",
|
|
88
|
-
"disableAll": "Disable All",
|
|
89
|
-
"noEnabledInFilter": "No enabled models under current filter",
|
|
90
|
-
"noEnabledYet": "No models enabled yet, enable from the list below",
|
|
91
|
-
"disabled": "Disabled",
|
|
92
|
-
"tabs": {
|
|
93
|
-
"all": "All",
|
|
94
|
-
"text": "Text",
|
|
95
|
-
"reasoning": "Reasoning",
|
|
96
|
-
"tools": "Tools",
|
|
97
|
-
"vision": "Vision",
|
|
98
|
-
"video": "Video"
|
|
99
|
-
},
|
|
100
|
-
"freePrice": "Free",
|
|
101
|
-
"dragToSort": "Drag to reorder",
|
|
102
|
-
"tagLabels": {
|
|
103
|
-
"custom": "Custom",
|
|
104
|
-
"flagship": "Flagship",
|
|
105
|
-
"fast": "Fast",
|
|
106
|
-
"recommended": "Recommended",
|
|
107
|
-
"apiFetched": "API Fetched"
|
|
108
|
-
},
|
|
109
|
-
"contextWindowK": "{{k}}K context",
|
|
110
|
-
"toggleModel": "Toggle {{name}}",
|
|
111
|
-
"saveFailedReason": "Save failed: {{message}}",
|
|
112
|
-
"configDeleted": "Configuration deleted",
|
|
113
|
-
"deleteFailedReason": "Delete failed: {{message}}",
|
|
114
|
-
"testFailedReason": "Test failed: {{message}}",
|
|
115
|
-
"unknownError": "Unknown error",
|
|
116
|
-
"back": "Back",
|
|
117
|
-
"platformDelistedTitle": "This provider has been removed from the platform",
|
|
118
|
-
"platformDelistedDesc": "New users won't see this provider, but you can keep using your saved configuration.",
|
|
119
|
-
"recommended": "Recommended",
|
|
120
|
-
"docs": "Docs",
|
|
121
|
-
"getApiKey": "Get API Key",
|
|
122
|
-
"enableProvider": "Enable this provider",
|
|
123
|
-
"setupConfig": "Connection settings",
|
|
124
|
-
"baseUrlLabel": "API proxy address (BaseURL)",
|
|
125
|
-
"baseUrlHint": "Leave empty to use default:",
|
|
126
|
-
"modelManagement": "Model management",
|
|
127
|
-
"modelManagementDesc": "Manage available models for this provider. Drag enabled cards to reorder; the order determines the model picker display.",
|
|
128
|
-
"clearConfig": "Clear this provider's configuration",
|
|
129
|
-
"testConnection": "Test connection",
|
|
130
|
-
"saving": "Saving…",
|
|
131
|
-
"saved": "Saved",
|
|
132
|
-
"saveShort": "Save failed",
|
|
133
|
-
"modelIdPlaceholder": "e.g. {{example}}",
|
|
134
|
-
"createCustomProvider": "Create Custom Provider",
|
|
135
|
-
"createCustomProviderDescription": "Add a custom OpenAI-compatible AI provider with your own API Key and BaseURL. Visible only to you.",
|
|
136
|
-
"customProviderName": "Provider Name *",
|
|
137
|
-
"customProviderNamePlaceholder": "e.g. My Private GPT",
|
|
138
|
-
"customApiKey": "API Key *",
|
|
139
|
-
"customBaseUrl": "BaseURL *",
|
|
140
|
-
"customBaseUrlPlaceholder": "e.g. https://api.openai.com/v1",
|
|
141
|
-
"customDefaultModel": "Default Model ID",
|
|
142
|
-
"customDefaultModelPlaceholder": "Optional, e.g. gpt-4o",
|
|
143
|
-
"creatingProvider": "Creating...",
|
|
144
|
-
"createProvider": "Create Provider",
|
|
145
|
-
"providerCreated": "Provider created",
|
|
146
|
-
"providerCreatedToast": "{{name}} has been created and enabled",
|
|
147
|
-
"customProviders": "Custom providers ({{count}})",
|
|
148
|
-
"noCustomProvider": "Click the \"+\" button above to create a custom provider",
|
|
149
|
-
"customBadge": "Custom",
|
|
150
|
-
"deleteCustomProvider": "Delete provider",
|
|
151
|
-
"confirmDeleteProvider": "Delete \"{{name}}\"?",
|
|
152
|
-
"confirmDeleteProviderDescription": "After deletion, this provider will no longer be usable. Saved model configurations will also be lost. This action cannot be undone.",
|
|
153
|
-
"deletingProvider": "Deleting...",
|
|
154
|
-
"providerDeleted": "Provider deleted"
|
|
155
|
-
},
|
|
156
|
-
"billing": {
|
|
157
|
-
"subscriptionSuccess": "Subscription successful!",
|
|
158
|
-
"paymentCancelled": "Payment cancelled"
|
|
159
|
-
},
|
|
160
|
-
"connection": {
|
|
161
|
-
"cloud": "Cloud",
|
|
162
|
-
"selfHosted": "Self-Hosted",
|
|
163
|
-
"local": "Local",
|
|
164
|
-
"mode": "Connection Mode",
|
|
165
|
-
"modeDescription": "Manage the connection method for the desktop client.",
|
|
166
|
-
"currentMode": "Current Mode",
|
|
167
|
-
"cloudDescription": "Connected to AllBlue official cloud service.",
|
|
168
|
-
"localDescription": "Using local SQLite database. Data is stored on this machine.",
|
|
169
|
-
"switchMode": "Switch Connection Mode",
|
|
170
|
-
"selfHostedDescription": "Connected to self-hosted instance: {{label}}"
|
|
171
|
-
},
|
|
172
|
-
"design": {
|
|
173
|
-
"hideToken": "Hide Token",
|
|
174
|
-
"showToken": "Show Token",
|
|
175
|
-
"copyToken": "Copy Token",
|
|
176
|
-
"copyTokenSuccess": "Token copied",
|
|
177
|
-
"tokenNotGenerated": "Token not generated yet",
|
|
178
|
-
"regenerate": "Regenerate",
|
|
179
|
-
"generateToken": "Generate Token",
|
|
180
|
-
"delete": "Delete",
|
|
181
|
-
"confirmDeleteToken": "Confirm deleting Token?",
|
|
182
|
-
"confirmDeleteTokenDescription": "After deletion, Sketch plugins using this Token will lose connection. This action cannot be undone.",
|
|
183
|
-
"cancel": "Cancel",
|
|
184
|
-
"tokenGenerated": "Token generated",
|
|
185
|
-
"generateFailed": "Generation failed",
|
|
186
|
-
"tokenDeleted": "Token deleted",
|
|
187
|
-
"deleteFailed": "Deletion failed",
|
|
188
|
-
"setupStep1": "1. Click \"Generate Token\" to create an access token",
|
|
189
|
-
"setupStep2": "2. Copy the Token and paste it into the Sketch plugin panel",
|
|
190
|
-
"setupStep3": "3. In Sketch, open Plugins → AllBlue → Open Control Panel"
|
|
191
|
-
},
|
|
192
|
-
"general": {
|
|
193
|
-
"title": "General Settings",
|
|
194
|
-
"timezone": "Timezone",
|
|
195
|
-
"timezoneDescription": "Set your preferred timezone. All times (documents, PRDs, activities) will display in this timezone. Projects can override individually.",
|
|
196
|
-
"timezoneRequired": "Please select a timezone",
|
|
197
|
-
"timezoneUpdated": "Timezone updated",
|
|
198
|
-
"saveFailed": "Save failed",
|
|
199
|
-
"language": "Language",
|
|
200
|
-
"languageDescription": "Select the interface display language. Changes take effect immediately."
|
|
201
|
-
},
|
|
202
|
-
"notFound": {
|
|
203
|
-
"title": "Page Not Found",
|
|
204
|
-
"description": "The page you are looking for was not found in settings.",
|
|
205
|
-
"backToSettings": "Back to Settings",
|
|
206
|
-
"backToWorkspace": "Back to Workspace"
|
|
207
|
-
},
|
|
208
|
-
"nav": {
|
|
209
|
-
"settings": "Settings"
|
|
210
|
-
},
|
|
211
|
-
"avatar": {
|
|
212
|
-
"editTitle": "Edit Avatar",
|
|
213
|
-
"editDescription": "Choose a style to customize your avatar",
|
|
214
|
-
"random": "Random",
|
|
215
|
-
"flip": "Flip",
|
|
216
|
-
"bgColor": "Background Color",
|
|
217
|
-
"bgShape": "Background Shape",
|
|
218
|
-
"reset": "Reset",
|
|
219
|
-
"shapeSquare": "Square",
|
|
220
|
-
"shapeCircle": "Circle",
|
|
221
|
-
"shapeRounded": "Rounded",
|
|
222
|
-
"none": "None",
|
|
223
|
-
"part": {
|
|
224
|
-
"face": "Face",
|
|
225
|
-
"eyes": "Eyes",
|
|
226
|
-
"eyebrows": "Eyebrows",
|
|
227
|
-
"mouth": "Mouth",
|
|
228
|
-
"nose": "Nose",
|
|
229
|
-
"glasses": "Glasses",
|
|
230
|
-
"hair": "Hair",
|
|
231
|
-
"accessories": "Accessories",
|
|
232
|
-
"details": "Details",
|
|
233
|
-
"beard": "Beard"
|
|
234
|
-
}
|
|
235
|
-
},
|
|
236
|
-
"profile": {
|
|
237
|
-
"title": "Profile Settings",
|
|
238
|
-
"description": "Manage your profile and avatar",
|
|
239
|
-
"saving": "Saving…",
|
|
240
|
-
"saveChanges": "Save Changes",
|
|
241
|
-
"enterName": "Please enter your name",
|
|
242
|
-
"enterEmail": "Please enter your email",
|
|
243
|
-
"invalidEmail": "Please enter a valid email address",
|
|
244
|
-
"invalidUrl": "Please enter a valid URL",
|
|
245
|
-
"saveFailed": "Failed to save profile",
|
|
246
|
-
"enterNewEmail": "Please enter new email",
|
|
247
|
-
"enterCurrentPassword": "Please enter current password",
|
|
248
|
-
"emailChangeFailed": "Failed to change email",
|
|
249
|
-
"avatar": "Avatar",
|
|
250
|
-
"defaultUser": "User",
|
|
251
|
-
"uploadImage": "Upload Image",
|
|
252
|
-
"avatarDescription": "Click avatar to customize style. Image upload is not yet available.",
|
|
253
|
-
"name": "Name",
|
|
254
|
-
"namePlaceholder": "Please enter your name",
|
|
255
|
-
"email": "Email",
|
|
256
|
-
"changeEmail": "Change Email",
|
|
257
|
-
"newEmail": "New Email",
|
|
258
|
-
"currentPassword": "Current Password",
|
|
259
|
-
"currentPasswordPlaceholder": "Please enter current password",
|
|
260
|
-
"changingEmail": "Changing…",
|
|
261
|
-
"confirmChange": "Confirm Change",
|
|
262
|
-
"bio": "Bio",
|
|
263
|
-
"bioPlaceholder": "Tell us about yourself...",
|
|
264
|
-
"bioDescription": "A short personal introduction (max 500 characters)",
|
|
265
|
-
"location": "Location",
|
|
266
|
-
"locationPlaceholder": "City, Country",
|
|
267
|
-
"website": "Website",
|
|
268
|
-
"socialLinks": "Social Links",
|
|
269
|
-
"socialWebsite": "Personal Website",
|
|
270
|
-
"socialTwitter": "Twitter/X",
|
|
271
|
-
"socialGitHub": "GitHub",
|
|
272
|
-
"socialLinkedIn": "LinkedIn",
|
|
273
|
-
"avatarSaveFailed": "Failed to save avatar",
|
|
274
|
-
"avatarUpdated": "Avatar updated",
|
|
275
|
-
"saved": "Profile saved ({{name}})",
|
|
276
|
-
"notAvailable": "{{label}} is not yet available",
|
|
277
|
-
"accountInfoTitle": "Account",
|
|
278
|
-
"accountInfoDesc": "Manage your account info and avatar",
|
|
279
|
-
"accountMetadata": "Account Info",
|
|
280
|
-
"accountMetadataDesc": "Account metadata",
|
|
281
|
-
"createdAt": "Registered At",
|
|
282
|
-
"createdAtDesc": "Account creation time",
|
|
283
|
-
"unknown": "Unknown"
|
|
284
|
-
},
|
|
285
|
-
"privacy": {
|
|
286
|
-
"title": "Data & Privacy",
|
|
287
|
-
"exportTitle": "Export my data",
|
|
288
|
-
"exportDesc": "Request a copy of all your personal data on AllBlue",
|
|
289
|
-
"exportBtn": "Request export",
|
|
290
|
-
"deleteTitle": "Delete account & data",
|
|
291
|
-
"deleteDesc": "This action is irreversible and will permanently delete your account and data",
|
|
292
|
-
"deleteBtn": "Request deletion",
|
|
293
|
-
"deleteConfirmLabel": "Type your username to confirm",
|
|
294
|
-
"deleteConfirmPlaceholder": "Enter username",
|
|
295
|
-
"submitted": "Request submitted"
|
|
296
|
-
},
|
|
297
|
-
"team": {
|
|
298
|
-
"title": "Team Management",
|
|
299
|
-
"memberCount": "{{count}} members",
|
|
300
|
-
"searchPlaceholder": "Search members…",
|
|
301
|
-
"allRoles": "All Roles",
|
|
302
|
-
"role": {
|
|
303
|
-
"owner": "Owner",
|
|
304
|
-
"admin": "Admin",
|
|
305
|
-
"member": "Member",
|
|
306
|
-
"viewer": "Viewer",
|
|
307
|
-
"guest": "Guest"
|
|
308
|
-
},
|
|
309
|
-
"allStatuses": "All Statuses",
|
|
310
|
-
"status": {
|
|
311
|
-
"active": "Active",
|
|
312
|
-
"invited": "Invited",
|
|
313
|
-
"suspended": "Suspended",
|
|
314
|
-
"pending": "Pending",
|
|
315
|
-
"pendingApproval": "Pending Approval",
|
|
316
|
-
"accepted": "Accepted",
|
|
317
|
-
"expired": "Expired",
|
|
318
|
-
"revoked": "Revoked"
|
|
319
|
-
},
|
|
320
|
-
"noMatch": "No matching members found",
|
|
321
|
-
"noMembers": "No members yet",
|
|
322
|
-
"tryAdjustFilters": "Try adjusting your filters",
|
|
323
|
-
"cancel": "Cancel",
|
|
324
|
-
"emailRequired": "Email is required",
|
|
325
|
-
"invalidEmail": "Please enter a valid email address",
|
|
326
|
-
"inviteMembers": "Invite members to get started",
|
|
327
|
-
"you": "You",
|
|
328
|
-
"joinedAt": "Joined",
|
|
329
|
-
"lastActiveAt": "Last active",
|
|
330
|
-
"sessions": "{{count}} sessions",
|
|
331
|
-
"moreActions": "More actions",
|
|
332
|
-
"promoteToAdmin": "Promote to Admin",
|
|
333
|
-
"demoteToMember": "Demote to Member",
|
|
334
|
-
"resendInvite": "Resend Invitation",
|
|
335
|
-
"removeMember": "Remove Member",
|
|
336
|
-
"removeMemberConfirm": "Confirm removing this member?",
|
|
337
|
-
"never": "Never",
|
|
338
|
-
"justNow": "Just now",
|
|
339
|
-
"minutesAgo": "{{count}}m ago",
|
|
340
|
-
"hoursAgo": "{{count}}h ago",
|
|
341
|
-
"daysAgo": "{{count}}d ago",
|
|
342
|
-
"expired": "Expired",
|
|
343
|
-
"days": "{{count}}d",
|
|
344
|
-
"hours": "{{count}}h",
|
|
345
|
-
"lessThanHour": "Less than an hour",
|
|
346
|
-
"directLink": "Link Invite",
|
|
347
|
-
"resend": "Resend",
|
|
348
|
-
"revoke": "Revoke",
|
|
349
|
-
"copyLink": "Copy Link",
|
|
350
|
-
"inviteSent": "Invitation sent",
|
|
351
|
-
"inviteApproved": "Member approved",
|
|
352
|
-
"linkCreated": "Link created",
|
|
353
|
-
"guestBadge": "Guest",
|
|
354
|
-
"unlimited": "Unlimited",
|
|
355
|
-
"seatMembers": "Member Seats",
|
|
356
|
-
"seatMembersHint": "Team member seat usage",
|
|
357
|
-
"seatGuests": "Guest Seats",
|
|
358
|
-
"seatGuestsHint": "Each additional member seat comes with 3 guest seats",
|
|
359
|
-
"invite": {
|
|
360
|
-
"title": "Invitations",
|
|
361
|
-
"description": "{{pending}} pending, {{approvalPending}} awaiting approval, {{accepted}} joined",
|
|
362
|
-
"linkTitle": "Invite via Link",
|
|
363
|
-
"linkDescription": "Generate an invitation link to share with team members",
|
|
364
|
-
"generateLink": "Generate Link",
|
|
365
|
-
"refreshLink": "Generate Link",
|
|
366
|
-
"linkRefreshing": "Generating…",
|
|
367
|
-
"linkExpiry": "Expires on",
|
|
368
|
-
"noActiveLink": "No active invitation link. Click \"Generate Link\" to create one.",
|
|
369
|
-
"emailTitle": "Invite via Email",
|
|
370
|
-
"emailDescription": "Invite team members by email address",
|
|
371
|
-
"directLink": "Generate direct link (no email needed)",
|
|
372
|
-
"email": "Email",
|
|
373
|
-
"emailPlaceholder": "Enter the invited member's email",
|
|
374
|
-
"role": "Role",
|
|
375
|
-
"roleDescription": "Members can create content, guests can only view",
|
|
376
|
-
"expires": "Expiration",
|
|
377
|
-
"message": "Message (optional)",
|
|
378
|
-
"messagePlaceholder": "Add a note",
|
|
379
|
-
"creating": "Creating…",
|
|
380
|
-
"sendInvite": "Send Invitation",
|
|
381
|
-
"noInvitations": "No invitations yet",
|
|
382
|
-
"createFirst": "Create an invitation to get started.",
|
|
383
|
-
"historyTitle": "Invitation Records",
|
|
384
|
-
"clearExpired": "Clear all expired invitations",
|
|
385
|
-
"approve": "Approve",
|
|
386
|
-
"approveTitle": "Approve Member",
|
|
387
|
-
"approveDescription": "Select a role to approve this member to join the team",
|
|
388
|
-
"linkExpired": "Link expired, needs regeneration",
|
|
389
|
-
"invitedAt": "invited by",
|
|
390
|
-
"acceptedAt": "Accepted on",
|
|
391
|
-
"deleteRecord": "Delete record"
|
|
392
|
-
},
|
|
393
|
-
"joinRequests": {
|
|
394
|
-
"appliedAt": "Applied at",
|
|
395
|
-
"reject": "Reject",
|
|
396
|
-
"requestApproved": "Joined",
|
|
397
|
-
"requestRejected": "Rejected",
|
|
398
|
-
"requestInvalidated": "Invalidated"
|
|
399
|
-
},
|
|
400
|
-
"expiresIn": "{{time}} until expired",
|
|
401
|
-
"inviteCreateFailed": "Failed to create invitation",
|
|
402
|
-
"subtitle": "Invite, manage and leave team members",
|
|
403
|
-
"notImplemented": "{{action}} is not yet available",
|
|
404
|
-
"linkCopied": "Link copied: {{link}}",
|
|
405
|
-
"linkCopiedMessage": "I created a team on AllBlue and would like to invite you to collaborate. Click the link below to join:\n\n`{{inviteLink}}`\n\nYou can manage projects and share data together after joining. This link expires in {{days}} days. Let me know if it expires and I'll generate a new one.",
|
|
406
|
-
"dangerZone": "Danger zone",
|
|
407
|
-
"dangerZoneDesc": "These actions are irreversible, please proceed with caution",
|
|
408
|
-
"leaveTeamTitle": "Leave the current team",
|
|
409
|
-
"leaveTeamDesc": "You will lose all access to this team",
|
|
410
|
-
"leaveTeam": "Leave team",
|
|
411
|
-
"joinedTeam": "Joined {{username}}'s team",
|
|
412
|
-
"memberInfo": "Member Info",
|
|
413
|
-
"noTeam": "No Team Yet",
|
|
414
|
-
"noTeamDesc": "Invite team members to get started",
|
|
415
|
-
"channel": {
|
|
416
|
-
"email": "Email Invite",
|
|
417
|
-
"link": "Link Invite"
|
|
418
|
-
},
|
|
419
|
-
"unregistered": "Unregistered",
|
|
420
|
-
"sampleNames": {
|
|
421
|
-
"zhangsan": "Zhang San",
|
|
422
|
-
"lisi": "Li Si",
|
|
423
|
-
"wangwu": "Wang Wu",
|
|
424
|
-
"zhaoliu": "Zhao Liu",
|
|
425
|
-
"qianqi": "Qian Qi"
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"review": {
|
|
3
|
-
"pending": "Pending",
|
|
4
|
-
"reviewing": "In Review",
|
|
5
|
-
"approved": "Approved",
|
|
6
|
-
"rejected": "Rejected",
|
|
7
|
-
"status-updated": "Review status updated",
|
|
8
|
-
"update-failed": "Update failed",
|
|
9
|
-
"login-required": "Please log in to review",
|
|
10
|
-
"status-label": "Review Status",
|
|
11
|
-
"notes-placeholder": "Review notes...",
|
|
12
|
-
"approve": "Approve",
|
|
13
|
-
"reject": "Reject"
|
|
14
|
-
},
|
|
15
|
-
"comment": {
|
|
16
|
-
"input-placeholder": "Add a comment...",
|
|
17
|
-
"send": "Send",
|
|
18
|
-
"login-required": "Please log in to comment"
|
|
19
|
-
}
|
|
20
|
-
}
|