@agent-native/core 0.79.2 → 0.79.5

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 (261) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +24 -0
  3. package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  4. package/corpus/core/docs/content/locales/zh-TW/actions.md +583 -0
  5. package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  6. package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  7. package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +171 -0
  8. package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  9. package/corpus/core/docs/content/locales/zh-TW/audit-log.md +111 -0
  10. package/corpus/core/docs/content/locales/zh-TW/authentication.md +332 -0
  11. package/corpus/core/docs/content/locales/zh-TW/automations.md +268 -0
  12. package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  13. package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  14. package/corpus/core/docs/content/locales/zh-TW/client.md +398 -0
  15. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  16. package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  17. package/corpus/core/docs/content/locales/zh-TW/components.md +368 -0
  18. package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +373 -0
  19. package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +411 -0
  20. package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  21. package/corpus/core/docs/content/locales/zh-TW/database.md +183 -0
  22. package/corpus/core/docs/content/locales/zh-TW/deployment.md +348 -0
  23. package/corpus/core/docs/content/locales/zh-TW/dispatch.md +146 -0
  24. package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  25. package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +65 -0
  26. package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  27. package/corpus/core/docs/content/locales/zh-TW/evals.md +155 -0
  28. package/corpus/core/docs/content/locales/zh-TW/extensions.md +360 -0
  29. package/corpus/core/docs/content/locales/zh-TW/external-agents.md +619 -0
  30. package/corpus/core/docs/content/locales/zh-TW/faq.md +142 -0
  31. package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +122 -0
  32. package/corpus/core/docs/content/locales/zh-TW/frames.md +153 -0
  33. package/corpus/core/docs/content/locales/zh-TW/getting-started.md +199 -0
  34. package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +349 -0
  35. package/corpus/core/docs/content/locales/zh-TW/human-approval.md +86 -0
  36. package/corpus/core/docs/content/locales/zh-TW/internationalization.md +147 -0
  37. package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +312 -0
  38. package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  39. package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  40. package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  41. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  42. package/corpus/core/docs/content/locales/zh-TW/messaging.md +461 -0
  43. package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  44. package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  45. package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  46. package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  47. package/corpus/core/docs/content/locales/zh-TW/notifications.md +231 -0
  48. package/corpus/core/docs/content/locales/zh-TW/observability.md +294 -0
  49. package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +77 -0
  50. package/corpus/core/docs/content/locales/zh-TW/onboarding.md +216 -0
  51. package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  52. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  53. package/corpus/core/docs/content/locales/zh-TW/processors.md +106 -0
  54. package/corpus/core/docs/content/locales/zh-TW/progress.md +199 -0
  55. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  56. package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  57. package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  58. package/corpus/core/docs/content/locales/zh-TW/routing.md +79 -0
  59. package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  60. package/corpus/core/docs/content/locales/zh-TW/security.md +330 -0
  61. package/corpus/core/docs/content/locales/zh-TW/server.md +265 -0
  62. package/corpus/core/docs/content/locales/zh-TW/sharing.md +219 -0
  63. package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +281 -0
  64. package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +259 -0
  65. package/corpus/core/docs/content/locales/zh-TW/template-assets.md +303 -0
  66. package/corpus/core/docs/content/locales/zh-TW/template-brain.md +324 -0
  67. package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +194 -0
  68. package/corpus/core/docs/content/locales/zh-TW/template-chat.md +129 -0
  69. package/corpus/core/docs/content/locales/zh-TW/template-clips.md +368 -0
  70. package/corpus/core/docs/content/locales/zh-TW/template-content.md +402 -0
  71. package/corpus/core/docs/content/locales/zh-TW/template-design.md +173 -0
  72. package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  73. package/corpus/core/docs/content/locales/zh-TW/template-forms.md +178 -0
  74. package/corpus/core/docs/content/locales/zh-TW/template-mail.md +239 -0
  75. package/corpus/core/docs/content/locales/zh-TW/template-plan.md +814 -0
  76. package/corpus/core/docs/content/locales/zh-TW/template-slides.md +293 -0
  77. package/corpus/core/docs/content/locales/zh-TW/template-videos.md +222 -0
  78. package/corpus/core/docs/content/locales/zh-TW/tracking.md +236 -0
  79. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  80. package/corpus/core/docs/content/locales/zh-TW/voice-input.md +81 -0
  81. package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  82. package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  83. package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +175 -0
  84. package/corpus/core/docs/content/locales/zh-TW/workspace.md +323 -0
  85. package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  86. package/corpus/core/package.json +1 -1
  87. package/corpus/core/src/client/ErrorBoundary.tsx +10 -0
  88. package/corpus/core/src/client/FeedbackButton.tsx +12 -0
  89. package/corpus/core/src/client/blocks/library/block-copy.ts +32 -0
  90. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +33 -0
  91. package/corpus/core/src/client/i18n.tsx +5 -0
  92. package/corpus/core/src/localization/actions/set-localization-preference.ts +2 -1
  93. package/corpus/core/src/localization/shared.ts +45 -0
  94. package/corpus/core/src/server/agent-chat-plugin.ts +38 -0
  95. package/corpus/core/src/server/onboarding-html.ts +99 -0
  96. package/corpus/core/src/templates/default/app/i18n/index.ts +2 -0
  97. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +466 -0
  98. package/corpus/core/src/templates/default/app/root.tsx +8 -0
  99. package/corpus/templates/analytics/app/i18n/index.ts +2 -0
  100. package/corpus/templates/analytics/app/i18n/zh-TW.ts +818 -0
  101. package/corpus/templates/analytics/app/i18n-data.ts +9 -0
  102. package/corpus/templates/assets/app/i18n/index.ts +2 -0
  103. package/corpus/templates/assets/app/i18n/zh-TW.ts +860 -0
  104. package/corpus/templates/assets/app/i18n-data.ts +3 -0
  105. package/corpus/templates/brain/app/i18n/index.ts +2 -0
  106. package/corpus/templates/brain/app/i18n/zh-TW.ts +709 -0
  107. package/corpus/templates/brain/app/i18n-data.ts +3 -0
  108. package/corpus/templates/calendar/app/i18n/zh-TW.ts +836 -0
  109. package/corpus/templates/calendar/app/i18n-data.ts +4 -0
  110. package/corpus/templates/chat/app/i18n/index.ts +2 -0
  111. package/corpus/templates/chat/app/i18n/zh-TW.ts +67 -0
  112. package/corpus/templates/chat/app/i18n-data.ts +3 -0
  113. package/corpus/templates/clips/app/i18n/index.ts +2 -0
  114. package/corpus/templates/clips/app/i18n/zh-TW.ts +1280 -0
  115. package/corpus/templates/content/app/i18n/index.ts +2 -0
  116. package/corpus/templates/content/app/i18n/zh-TW.ts +906 -0
  117. package/corpus/templates/content/app/i18n-data.ts +4 -0
  118. package/corpus/templates/design/app/i18n/index.ts +2 -0
  119. package/corpus/templates/design/app/i18n/zh-TW.ts +517 -0
  120. package/corpus/templates/design/app/i18n-data.ts +6 -0
  121. package/corpus/templates/dispatch/app/i18n/index.ts +2 -0
  122. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +195 -0
  123. package/corpus/templates/dispatch/app/i18n-data.ts +3 -0
  124. package/corpus/templates/forms/app/i18n/index.ts +2 -0
  125. package/corpus/templates/forms/app/i18n/zh-TW.ts +349 -0
  126. package/corpus/templates/macros/app/i18n/index.ts +2 -0
  127. package/corpus/templates/macros/app/i18n/zh-TW.ts +224 -0
  128. package/corpus/templates/mail/app/i18n/index.ts +2 -0
  129. package/corpus/templates/mail/app/i18n/zh-TW.ts +562 -0
  130. package/corpus/templates/mail/app/root.tsx +6 -0
  131. package/corpus/templates/plan/app/i18n/index.ts +2 -0
  132. package/corpus/templates/plan/app/i18n/zh-TW.ts +712 -0
  133. package/corpus/templates/slides/app/i18n/index.ts +2 -0
  134. package/corpus/templates/slides/app/i18n/zh-TW.ts +531 -0
  135. package/corpus/templates/videos/app/i18n/index.ts +2 -0
  136. package/corpus/templates/videos/app/i18n/zh-TW.ts +435 -0
  137. package/dist/client/ErrorBoundary.d.ts.map +1 -1
  138. package/dist/client/ErrorBoundary.js +10 -0
  139. package/dist/client/ErrorBoundary.js.map +1 -1
  140. package/dist/client/FeedbackButton.d.ts.map +1 -1
  141. package/dist/client/FeedbackButton.js +12 -0
  142. package/dist/client/FeedbackButton.js.map +1 -1
  143. package/dist/client/blocks/library/block-copy.d.ts.map +1 -1
  144. package/dist/client/blocks/library/block-copy.js +32 -0
  145. package/dist/client/blocks/library/block-copy.js.map +1 -1
  146. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  147. package/dist/client/extensions/ExtensionsSidebarSection.js +32 -0
  148. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  149. package/dist/client/i18n.d.ts.map +1 -1
  150. package/dist/client/i18n.js +5 -0
  151. package/dist/client/i18n.js.map +1 -1
  152. package/dist/collab/awareness.d.ts +2 -2
  153. package/dist/collab/awareness.d.ts.map +1 -1
  154. package/dist/collab/routes.d.ts +1 -1
  155. package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
  156. package/dist/localization/actions/set-localization-preference.js +2 -2
  157. package/dist/localization/actions/set-localization-preference.js.map +1 -1
  158. package/dist/localization/shared.d.ts +1 -1
  159. package/dist/localization/shared.d.ts.map +1 -1
  160. package/dist/localization/shared.js +43 -0
  161. package/dist/localization/shared.js.map +1 -1
  162. package/dist/notifications/routes.d.ts +3 -3
  163. package/dist/observability/routes.d.ts +3 -3
  164. package/dist/resources/handlers.d.ts +2 -2
  165. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  166. package/dist/server/agent-chat-plugin.js +39 -0
  167. package/dist/server/agent-chat-plugin.js.map +1 -1
  168. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  169. package/dist/server/onboarding-html.d.ts.map +1 -1
  170. package/dist/server/onboarding-html.js +96 -0
  171. package/dist/server/onboarding-html.js.map +1 -1
  172. package/dist/templates/default/app/i18n/index.ts +2 -0
  173. package/dist/templates/default/app/i18n/zh-TW.ts +466 -0
  174. package/dist/templates/default/app/root.tsx +8 -0
  175. package/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  176. package/docs/content/locales/zh-TW/actions.md +583 -0
  177. package/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  178. package/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  179. package/docs/content/locales/zh-TW/agent-teams.md +171 -0
  180. package/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  181. package/docs/content/locales/zh-TW/audit-log.md +111 -0
  182. package/docs/content/locales/zh-TW/authentication.md +332 -0
  183. package/docs/content/locales/zh-TW/automations.md +268 -0
  184. package/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  185. package/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  186. package/docs/content/locales/zh-TW/client.md +398 -0
  187. package/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  188. package/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  189. package/docs/content/locales/zh-TW/components.md +368 -0
  190. package/docs/content/locales/zh-TW/context-awareness.md +373 -0
  191. package/docs/content/locales/zh-TW/creating-templates.md +411 -0
  192. package/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  193. package/docs/content/locales/zh-TW/database.md +183 -0
  194. package/docs/content/locales/zh-TW/deployment.md +348 -0
  195. package/docs/content/locales/zh-TW/dispatch.md +146 -0
  196. package/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  197. package/docs/content/locales/zh-TW/durable-resume.md +65 -0
  198. package/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  199. package/docs/content/locales/zh-TW/evals.md +155 -0
  200. package/docs/content/locales/zh-TW/extensions.md +360 -0
  201. package/docs/content/locales/zh-TW/external-agents.md +619 -0
  202. package/docs/content/locales/zh-TW/faq.md +142 -0
  203. package/docs/content/locales/zh-TW/file-uploads.md +122 -0
  204. package/docs/content/locales/zh-TW/frames.md +153 -0
  205. package/docs/content/locales/zh-TW/getting-started.md +199 -0
  206. package/docs/content/locales/zh-TW/harness-agents.md +349 -0
  207. package/docs/content/locales/zh-TW/human-approval.md +86 -0
  208. package/docs/content/locales/zh-TW/internationalization.md +147 -0
  209. package/docs/content/locales/zh-TW/key-concepts.md +312 -0
  210. package/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  211. package/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  212. package/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  213. package/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  214. package/docs/content/locales/zh-TW/messaging.md +461 -0
  215. package/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  216. package/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  217. package/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  218. package/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  219. package/docs/content/locales/zh-TW/notifications.md +231 -0
  220. package/docs/content/locales/zh-TW/observability.md +294 -0
  221. package/docs/content/locales/zh-TW/observational-memory.md +77 -0
  222. package/docs/content/locales/zh-TW/onboarding.md +216 -0
  223. package/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  224. package/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  225. package/docs/content/locales/zh-TW/processors.md +106 -0
  226. package/docs/content/locales/zh-TW/progress.md +199 -0
  227. package/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  228. package/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  229. package/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  230. package/docs/content/locales/zh-TW/routing.md +79 -0
  231. package/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  232. package/docs/content/locales/zh-TW/security.md +330 -0
  233. package/docs/content/locales/zh-TW/server.md +265 -0
  234. package/docs/content/locales/zh-TW/sharing.md +219 -0
  235. package/docs/content/locales/zh-TW/skills-guide.md +281 -0
  236. package/docs/content/locales/zh-TW/template-analytics.md +259 -0
  237. package/docs/content/locales/zh-TW/template-assets.md +303 -0
  238. package/docs/content/locales/zh-TW/template-brain.md +324 -0
  239. package/docs/content/locales/zh-TW/template-calendar.md +194 -0
  240. package/docs/content/locales/zh-TW/template-chat.md +129 -0
  241. package/docs/content/locales/zh-TW/template-clips.md +368 -0
  242. package/docs/content/locales/zh-TW/template-content.md +402 -0
  243. package/docs/content/locales/zh-TW/template-design.md +173 -0
  244. package/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  245. package/docs/content/locales/zh-TW/template-forms.md +178 -0
  246. package/docs/content/locales/zh-TW/template-mail.md +239 -0
  247. package/docs/content/locales/zh-TW/template-plan.md +814 -0
  248. package/docs/content/locales/zh-TW/template-slides.md +293 -0
  249. package/docs/content/locales/zh-TW/template-videos.md +222 -0
  250. package/docs/content/locales/zh-TW/tracking.md +236 -0
  251. package/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  252. package/docs/content/locales/zh-TW/voice-input.md +81 -0
  253. package/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  254. package/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  255. package/docs/content/locales/zh-TW/workspace-management.md +175 -0
  256. package/docs/content/locales/zh-TW/workspace.md +323 -0
  257. package/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  258. package/package.json +1 -1
  259. package/src/templates/default/app/i18n/index.ts +2 -0
  260. package/src/templates/default/app/i18n/zh-TW.ts +466 -0
  261. package/src/templates/default/app/root.tsx +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackButton.js","sourceRoot":"","sources":["../../src/client/FeedbackButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { IconMessage2, IconCheck } from \"@tabler/icons-react\";\nimport {\n useState,\n useEffect,\n useRef,\n useCallback,\n type CSSProperties,\n type FormEvent,\n type ReactNode,\n} from \"react\";\n\nimport { DEFAULT_LOCALE, type LocaleCode } from \"../localization/shared.js\";\nimport { getFeedbackClientContext } from \"./feedback-context.js\";\nimport { useLocale } from \"./i18n.js\";\nimport { useSession } from \"./use-session.js\";\nimport { cn } from \"./utils.js\";\n\nconst DEFAULT_FEEDBACK_URL =\n \"https://forms.agent-native.com/f/agent-native-feedback/_16ewV\";\n\ninterface ParsedTarget {\n endpoint: string;\n slug: string;\n}\n\ninterface FormSchema {\n formId: string;\n fieldId: string;\n}\n\nconst FEEDBACK_COPY: Record<\n LocaleCode,\n {\n label: string;\n placeholder: string;\n submit: string;\n submitting: string;\n success: string;\n loadError: string;\n invalidUrl: string;\n emptyError: string;\n sendError: string;\n keyboardHint: string;\n }\n> = {\n \"en-US\": {\n label: \"Feedback\",\n placeholder: \"What's working, what's broken, or what would you change?\",\n submit: \"Send feedback\",\n submitting: \"Sending...\",\n success: \"Thanks for the feedback!\",\n loadError: \"Couldn't load feedback form\",\n invalidUrl: \"Invalid feedback URL\",\n emptyError: \"Please write something first\",\n sendError: \"Couldn't send feedback\",\n keyboardHint: \"{{shortcut}}+Enter to send\",\n },\n \"zh-CN\": {\n label: \"反馈\",\n placeholder: \"哪些地方好用、哪里坏了,或你想改什么?\",\n submit: \"发送反馈\",\n submitting: \"正在发送...\",\n success: \"感谢你的反馈!\",\n loadError: \"无法加载反馈表单\",\n invalidUrl: \"反馈 URL 无效\",\n emptyError: \"请先写点内容\",\n sendError: \"无法发送反馈\",\n keyboardHint: \"{{shortcut}}+Enter 发送\",\n },\n \"es-ES\": {\n label: \"Comentarios\",\n placeholder: \"¿Qué funciona, qué falla o qué cambiarías?\",\n submit: \"Enviar comentarios\",\n submitting: \"Enviando...\",\n success: \"Gracias por tus comentarios.\",\n loadError: \"No se pudo cargar el formulario\",\n invalidUrl: \"URL de comentarios no válida\",\n emptyError: \"Escribe algo primero\",\n sendError: \"No se pudieron enviar los comentarios\",\n keyboardHint: \"{{shortcut}}+Enter para enviar\",\n },\n \"fr-FR\": {\n label: \"Retour\",\n placeholder: \"Qu'est-ce qui marche, casse ou devrait changer ?\",\n submit: \"Envoyer\",\n submitting: \"Envoi...\",\n success: \"Merci pour votre retour.\",\n loadError: \"Impossible de charger le formulaire\",\n invalidUrl: \"URL de retour invalide\",\n emptyError: \"Écrivez quelque chose d'abord\",\n sendError: \"Impossible d'envoyer le retour\",\n keyboardHint: \"{{shortcut}}+Entrée pour envoyer\",\n },\n \"de-DE\": {\n label: \"Feedback\",\n placeholder: \"Was funktioniert, was ist kaputt, was würdest du ändern?\",\n submit: \"Feedback senden\",\n submitting: \"Wird gesendet...\",\n success: \"Danke für dein Feedback!\",\n loadError: \"Feedback-Formular konnte nicht geladen werden\",\n invalidUrl: \"Ungültige Feedback-URL\",\n emptyError: \"Bitte zuerst etwas schreiben\",\n sendError: \"Feedback konnte nicht gesendet werden\",\n keyboardHint: \"{{shortcut}}+Enter zum Senden\",\n },\n \"ja-JP\": {\n label: \"フィードバック\",\n placeholder: \"良い点、問題点、変更したい点を教えてください。\",\n submit: \"送信\",\n submitting: \"送信中...\",\n success: \"フィードバックありがとうございます。\",\n loadError: \"フォームを読み込めませんでした\",\n invalidUrl: \"フィードバック URL が無効です\",\n emptyError: \"先に内容を入力してください\",\n sendError: \"送信できませんでした\",\n keyboardHint: \"{{shortcut}}+Enter で送信\",\n },\n \"ko-KR\": {\n label: \"피드백\",\n placeholder: \"잘 되는 점, 깨진 점, 바꾸고 싶은 점을 알려주세요.\",\n submit: \"피드백 보내기\",\n submitting: \"보내는 중...\",\n success: \"피드백 감사합니다.\",\n loadError: \"피드백 양식을 불러올 수 없습니다\",\n invalidUrl: \"피드백 URL이 올바르지 않습니다\",\n emptyError: \"먼저 내용을 입력해 주세요\",\n sendError: \"피드백을 보낼 수 없습니다\",\n keyboardHint: \"{{shortcut}}+Enter로 보내기\",\n },\n \"pt-BR\": {\n label: \"Feedback\",\n placeholder: \"O que funciona, quebrou ou você mudaria?\",\n submit: \"Enviar feedback\",\n submitting: \"Enviando...\",\n success: \"Obrigado pelo feedback!\",\n loadError: \"Não foi possível carregar o formulário\",\n invalidUrl: \"URL de feedback inválida\",\n emptyError: \"Escreva algo primeiro\",\n sendError: \"Não foi possível enviar o feedback\",\n keyboardHint: \"{{shortcut}}+Enter para enviar\",\n },\n \"hi-IN\": {\n label: \"फ़ीडबैक\",\n placeholder: \"क्या काम कर रहा है, क्या टूटा है, या आप क्या बदलना चाहेंगे?\",\n submit: \"फ़ीडबैक भेजें\",\n submitting: \"भेजा जा रहा है...\",\n success: \"फ़ीडबैक के लिए धन्यवाद!\",\n loadError: \"फ़ीडबैक फ़ॉर्म लोड नहीं हुआ\",\n invalidUrl: \"फ़ीडबैक URL अमान्य है\",\n emptyError: \"पहले कुछ लिखें\",\n sendError: \"फ़ीडबैक भेजा नहीं जा सका\",\n keyboardHint: \"भेजने के लिए {{shortcut}}+Enter\",\n },\n \"ar-SA\": {\n label: \"ملاحظات\",\n placeholder: \"ما الذي يعمل، وما المعطل، وما الذي تريد تغييره؟\",\n submit: \"إرسال الملاحظات\",\n submitting: \"جار الإرسال...\",\n success: \"شكرا لملاحظاتك!\",\n loadError: \"تعذر تحميل نموذج الملاحظات\",\n invalidUrl: \"رابط الملاحظات غير صالح\",\n emptyError: \"اكتب شيئا أولا\",\n sendError: \"تعذر إرسال الملاحظات\",\n keyboardHint: \"{{shortcut}}+Enter للإرسال\",\n },\n};\n\nfunction parseTarget(url: string): ParsedTarget | null {\n try {\n const u = new URL(url);\n const idx = u.pathname.indexOf(\"/f/\");\n if (idx === -1) return null;\n const slug = u.pathname.slice(idx + 3).replace(/\\/$/, \"\");\n if (!slug) return null;\n return { endpoint: u.origin, slug };\n } catch {\n return null;\n }\n}\n\nconst schemaCache = new Map<string, Promise<FormSchema>>();\n\nasync function loadSchema(target: ParsedTarget): Promise<FormSchema> {\n const key = `${target.endpoint}|${target.slug}`;\n let pending = schemaCache.get(key);\n if (pending) return pending;\n pending = (async () => {\n const res = await fetch(\n `${target.endpoint}/api/forms/public/${encodeURIComponent(target.slug)}`,\n { headers: { Accept: \"application/json\" } },\n );\n if (!res.ok) throw new Error(`form fetch ${res.status}`);\n const body = (await res.json()) as {\n id: string;\n fields: Array<{ id: string; type: string }>;\n };\n const field =\n body.fields.find((f) => f.type === \"textarea\") ??\n body.fields.find((f) => f.type === \"text\") ??\n body.fields[0];\n if (!field) throw new Error(\"form has no fields\");\n return { formId: body.id, fieldId: field.id };\n })();\n pending.catch(() => schemaCache.delete(key));\n schemaCache.set(key, pending);\n return pending;\n}\n\nexport interface FeedbackButtonProps {\n /**\n * \"sidebar\" renders a full-width row with icon + label (for app left sidebars).\n * \"icon\" renders a small icon-only button (for dense toolbars, e.g. the agent panel header).\n * \"outlined\" renders an outlined pill button with icon + label (for top-nav bars, e.g. docs).\n */\n variant?: \"sidebar\" | \"icon\" | \"outlined\";\n label?: string;\n url?: string;\n className?: string;\n /** Which side the popover opens on. Defaults match the variant. */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n /** Placeholder text for the textarea. */\n placeholder?: string;\n /** Current chat session/thread id, when the host already knows it. */\n chatSessionId?: string | null;\n /** Chat localStorage namespace, when the host uses per-app chat storage. */\n chatStorageKey?: string | null;\n /** Controlled popover open state for hosts that trigger feedback from a menu. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Optional custom trigger element. */\n trigger?: ReactNode;\n}\n\nconst surfaceStyle: CSSProperties = {\n width: \"min(380px, calc(100vw - 32px))\",\n};\n\nconst honeypotStyle: CSSProperties = {\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n width: \"1px\",\n height: \"1px\",\n overflow: \"hidden\",\n};\n\nexport function FeedbackButton({\n variant = \"sidebar\",\n label,\n url = DEFAULT_FEEDBACK_URL,\n className,\n side,\n align = \"end\",\n placeholder,\n chatSessionId,\n chatStorageKey,\n open: controlledOpen,\n onOpenChange,\n trigger: customTrigger,\n}: FeedbackButtonProps) {\n const target = parseTarget(url);\n const { session } = useSession();\n const { locale } = useLocale();\n const copy = FEEDBACK_COPY[locale] ?? FEEDBACK_COPY[DEFAULT_LOCALE];\n const resolvedLabel = label ?? copy.label;\n\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = useCallback(\n (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange?.(nextOpen);\n },\n [controlledOpen, onOpenChange],\n );\n const [value, setValue] = useState(\"\");\n const [honeypot, setHoneypot] = useState(\"\");\n const [submitting, setSubmitting] = useState(false);\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [schema, setSchema] = useState<FormSchema | null>(null);\n const openedAtRef = useRef<number>(0);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n\n // Reset transient state and kick off schema load on each open.\n useEffect(() => {\n if (!open) return;\n openedAtRef.current = Date.now();\n setValue(\"\");\n setHoneypot(\"\");\n setSubmitting(false);\n setSubmitted(false);\n setError(null);\n setSchema(null);\n if (target) {\n loadSchema(target)\n .then((s) => setSchema(s))\n .catch((err) => {\n console.error(\"[FeedbackButton] schema load failed\", err);\n setError(copy.loadError);\n });\n } else {\n setError(copy.invalidUrl);\n }\n const t = setTimeout(() => textareaRef.current?.focus(), 30);\n return () => {\n clearTimeout(t);\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n }\n };\n }, [open, url]);\n\n const submit = useCallback(\n async (e?: FormEvent) => {\n e?.preventDefault();\n if (!target || submitting) return;\n const trimmed = value.trim();\n if (!trimmed) {\n setError(copy.emptyError);\n return;\n }\n setSubmitting(true);\n setError(null);\n try {\n const resolvedSchema = schema ?? (await loadSchema(target));\n if (!schema) setSchema(resolvedSchema);\n const submitterEmail = session?.email;\n const feedbackContext = getFeedbackClientContext({\n chatSessionId,\n storageKey: chatStorageKey,\n });\n const res = await fetch(\n `${target.endpoint}/api/submit/${encodeURIComponent(resolvedSchema.formId)}`,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n data: { [resolvedSchema.fieldId]: trimmed },\n _t: openedAtRef.current,\n _hp: honeypot,\n _meta: {\n ...(submitterEmail ? { submitterEmail } : {}),\n ...feedbackContext,\n },\n }),\n },\n );\n if (!res.ok) {\n const body = (await res.json().catch(() => ({}))) as {\n error?: string;\n };\n throw new Error(body.error || `submit failed (${res.status})`);\n }\n setSubmitted(true);\n closeTimerRef.current = setTimeout(() => setOpen(false), 1400);\n } catch (err) {\n setSubmitting(false);\n setError(err instanceof Error ? err.message : copy.sendError);\n }\n },\n [\n target,\n schema,\n value,\n honeypot,\n submitting,\n session?.email,\n chatSessionId,\n chatStorageKey,\n setOpen,\n copy.emptyError,\n copy.sendError,\n ],\n );\n\n let trigger;\n if (customTrigger) {\n trigger = (\n <PopoverPrimitive.Trigger asChild>\n {customTrigger}\n </PopoverPrimitive.Trigger>\n );\n } else if (variant === \"icon\") {\n trigger = (\n <TooltipPrimitive.Provider delayDuration={200}>\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n aria-label={resolvedLabel}\n className={cn(\n \"flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50\",\n className,\n )}\n >\n <IconMessage2 size={14} />\n </button>\n </PopoverPrimitive.Trigger>\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n sideOffset={6}\n className=\"z-[300] overflow-hidden rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-foreground shadow-md animate-in fade-in-0 zoom-in-95\"\n >\n {resolvedLabel}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n );\n } else if (variant === \"outlined\") {\n trigger = (\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n aria-label={resolvedLabel}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-border bg-transparent px-3 text-sm text-muted-foreground transition hover:border-foreground/40 hover:text-foreground\",\n className,\n )}\n >\n <IconMessage2 size={14} stroke={1.5} />\n <span>{resolvedLabel}</span>\n </button>\n </PopoverPrimitive.Trigger>\n );\n } else {\n trigger = (\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground\",\n className,\n )}\n >\n <IconMessage2 className=\"h-4 w-4\" />\n <span>{resolvedLabel}</span>\n </button>\n </PopoverPrimitive.Trigger>\n );\n }\n\n const resolvedSide = side ?? (variant === \"sidebar\" ? \"top\" : \"bottom\");\n const resolvedPlaceholder = placeholder ?? copy.placeholder;\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n {trigger}\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={resolvedSide}\n align={align}\n sideOffset={8}\n collisionPadding={16}\n className=\"z-[300] overflow-hidden rounded-lg border border-border bg-popover shadow-xl outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n style={surfaceStyle}\n >\n {submitted ? (\n <div className=\"flex flex-col items-center justify-center gap-3 px-6 py-10 text-center\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500\">\n <IconCheck size={20} stroke={2.5} />\n </div>\n <div className=\"text-sm font-medium text-foreground\">\n {copy.success}\n </div>\n </div>\n ) : (\n <form onSubmit={submit} className=\"flex flex-col gap-3 p-3\">\n <textarea\n ref={textareaRef}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onKeyDown={(e) => {\n if ((e.metaKey || e.ctrlKey) && e.key === \"Enter\") submit();\n }}\n placeholder={resolvedPlaceholder}\n rows={5}\n maxLength={10000}\n className=\"w-full resize-none rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring\"\n />\n <input\n type=\"text\"\n tabIndex={-1}\n autoComplete=\"off\"\n aria-hidden=\"true\"\n value={honeypot}\n onChange={(e) => setHoneypot(e.target.value)}\n style={honeypotStyle}\n />\n <div className=\"flex items-center justify-between gap-3\">\n <div\n className={cn(\n \"text-[11px]\",\n error ? \"text-destructive\" : \"text-muted-foreground/75\",\n )}\n >\n {error ??\n copy.keyboardHint.replace(\n \"{{shortcut}}\",\n /Mac|iPhone|iPad/.test(navigator.userAgent)\n ? \"⌘\"\n : \"Ctrl\",\n )}\n </div>\n <button\n type=\"submit\"\n disabled={submitting || !value.trim()}\n className=\"inline-flex h-8 items-center justify-center rounded-md bg-primary px-3 text-xs font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50\"\n >\n {submitting ? copy.submitting : copy.submit}\n </button>\n </div>\n </form>\n )}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n );\n}\n"]}
1
+ {"version":3,"file":"FeedbackButton.js","sourceRoot":"","sources":["../../src/client/FeedbackButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { IconMessage2, IconCheck } from \"@tabler/icons-react\";\nimport {\n useState,\n useEffect,\n useRef,\n useCallback,\n type CSSProperties,\n type FormEvent,\n type ReactNode,\n} from \"react\";\n\nimport { DEFAULT_LOCALE, type LocaleCode } from \"../localization/shared.js\";\nimport { getFeedbackClientContext } from \"./feedback-context.js\";\nimport { useLocale } from \"./i18n.js\";\nimport { useSession } from \"./use-session.js\";\nimport { cn } from \"./utils.js\";\n\nconst DEFAULT_FEEDBACK_URL =\n \"https://forms.agent-native.com/f/agent-native-feedback/_16ewV\";\n\ninterface ParsedTarget {\n endpoint: string;\n slug: string;\n}\n\ninterface FormSchema {\n formId: string;\n fieldId: string;\n}\n\nconst FEEDBACK_COPY: Record<\n LocaleCode,\n {\n label: string;\n placeholder: string;\n submit: string;\n submitting: string;\n success: string;\n loadError: string;\n invalidUrl: string;\n emptyError: string;\n sendError: string;\n keyboardHint: string;\n }\n> = {\n \"en-US\": {\n label: \"Feedback\",\n placeholder: \"What's working, what's broken, or what would you change?\",\n submit: \"Send feedback\",\n submitting: \"Sending...\",\n success: \"Thanks for the feedback!\",\n loadError: \"Couldn't load feedback form\",\n invalidUrl: \"Invalid feedback URL\",\n emptyError: \"Please write something first\",\n sendError: \"Couldn't send feedback\",\n keyboardHint: \"{{shortcut}}+Enter to send\",\n },\n \"zh-CN\": {\n label: \"反馈\",\n placeholder: \"哪些地方好用、哪里坏了,或你想改什么?\",\n submit: \"发送反馈\",\n submitting: \"正在发送...\",\n success: \"感谢你的反馈!\",\n loadError: \"无法加载反馈表单\",\n invalidUrl: \"反馈 URL 无效\",\n emptyError: \"请先写点内容\",\n sendError: \"无法发送反馈\",\n keyboardHint: \"{{shortcut}}+Enter 发送\",\n },\n \"zh-TW\": {\n label: \"意見回饋\",\n placeholder: \"哪些地方好用、哪裡壞了,或你想改什麼?\",\n submit: \"送出意見回饋\",\n submitting: \"正在送出...\",\n success: \"感謝你的意見回饋。\",\n loadError: \"無法載入意見回饋表單\",\n invalidUrl: \"意見回饋 URL 無效\",\n emptyError: \"請先輸入內容\",\n sendError: \"無法送出意見回饋\",\n keyboardHint: \"{{shortcut}}+Enter 送出\",\n },\n \"es-ES\": {\n label: \"Comentarios\",\n placeholder: \"¿Qué funciona, qué falla o qué cambiarías?\",\n submit: \"Enviar comentarios\",\n submitting: \"Enviando...\",\n success: \"Gracias por tus comentarios.\",\n loadError: \"No se pudo cargar el formulario\",\n invalidUrl: \"URL de comentarios no válida\",\n emptyError: \"Escribe algo primero\",\n sendError: \"No se pudieron enviar los comentarios\",\n keyboardHint: \"{{shortcut}}+Enter para enviar\",\n },\n \"fr-FR\": {\n label: \"Retour\",\n placeholder: \"Qu'est-ce qui marche, casse ou devrait changer ?\",\n submit: \"Envoyer\",\n submitting: \"Envoi...\",\n success: \"Merci pour votre retour.\",\n loadError: \"Impossible de charger le formulaire\",\n invalidUrl: \"URL de retour invalide\",\n emptyError: \"Écrivez quelque chose d'abord\",\n sendError: \"Impossible d'envoyer le retour\",\n keyboardHint: \"{{shortcut}}+Entrée pour envoyer\",\n },\n \"de-DE\": {\n label: \"Feedback\",\n placeholder: \"Was funktioniert, was ist kaputt, was würdest du ändern?\",\n submit: \"Feedback senden\",\n submitting: \"Wird gesendet...\",\n success: \"Danke für dein Feedback!\",\n loadError: \"Feedback-Formular konnte nicht geladen werden\",\n invalidUrl: \"Ungültige Feedback-URL\",\n emptyError: \"Bitte zuerst etwas schreiben\",\n sendError: \"Feedback konnte nicht gesendet werden\",\n keyboardHint: \"{{shortcut}}+Enter zum Senden\",\n },\n \"ja-JP\": {\n label: \"フィードバック\",\n placeholder: \"良い点、問題点、変更したい点を教えてください。\",\n submit: \"送信\",\n submitting: \"送信中...\",\n success: \"フィードバックありがとうございます。\",\n loadError: \"フォームを読み込めませんでした\",\n invalidUrl: \"フィードバック URL が無効です\",\n emptyError: \"先に内容を入力してください\",\n sendError: \"送信できませんでした\",\n keyboardHint: \"{{shortcut}}+Enter で送信\",\n },\n \"ko-KR\": {\n label: \"피드백\",\n placeholder: \"잘 되는 점, 깨진 점, 바꾸고 싶은 점을 알려주세요.\",\n submit: \"피드백 보내기\",\n submitting: \"보내는 중...\",\n success: \"피드백 감사합니다.\",\n loadError: \"피드백 양식을 불러올 수 없습니다\",\n invalidUrl: \"피드백 URL이 올바르지 않습니다\",\n emptyError: \"먼저 내용을 입력해 주세요\",\n sendError: \"피드백을 보낼 수 없습니다\",\n keyboardHint: \"{{shortcut}}+Enter로 보내기\",\n },\n \"pt-BR\": {\n label: \"Feedback\",\n placeholder: \"O que funciona, quebrou ou você mudaria?\",\n submit: \"Enviar feedback\",\n submitting: \"Enviando...\",\n success: \"Obrigado pelo feedback!\",\n loadError: \"Não foi possível carregar o formulário\",\n invalidUrl: \"URL de feedback inválida\",\n emptyError: \"Escreva algo primeiro\",\n sendError: \"Não foi possível enviar o feedback\",\n keyboardHint: \"{{shortcut}}+Enter para enviar\",\n },\n \"hi-IN\": {\n label: \"फ़ीडबैक\",\n placeholder: \"क्या काम कर रहा है, क्या टूटा है, या आप क्या बदलना चाहेंगे?\",\n submit: \"फ़ीडबैक भेजें\",\n submitting: \"भेजा जा रहा है...\",\n success: \"फ़ीडबैक के लिए धन्यवाद!\",\n loadError: \"फ़ीडबैक फ़ॉर्म लोड नहीं हुआ\",\n invalidUrl: \"फ़ीडबैक URL अमान्य है\",\n emptyError: \"पहले कुछ लिखें\",\n sendError: \"फ़ीडबैक भेजा नहीं जा सका\",\n keyboardHint: \"भेजने के लिए {{shortcut}}+Enter\",\n },\n \"ar-SA\": {\n label: \"ملاحظات\",\n placeholder: \"ما الذي يعمل، وما المعطل، وما الذي تريد تغييره؟\",\n submit: \"إرسال الملاحظات\",\n submitting: \"جار الإرسال...\",\n success: \"شكرا لملاحظاتك!\",\n loadError: \"تعذر تحميل نموذج الملاحظات\",\n invalidUrl: \"رابط الملاحظات غير صالح\",\n emptyError: \"اكتب شيئا أولا\",\n sendError: \"تعذر إرسال الملاحظات\",\n keyboardHint: \"{{shortcut}}+Enter للإرسال\",\n },\n};\n\nfunction parseTarget(url: string): ParsedTarget | null {\n try {\n const u = new URL(url);\n const idx = u.pathname.indexOf(\"/f/\");\n if (idx === -1) return null;\n const slug = u.pathname.slice(idx + 3).replace(/\\/$/, \"\");\n if (!slug) return null;\n return { endpoint: u.origin, slug };\n } catch {\n return null;\n }\n}\n\nconst schemaCache = new Map<string, Promise<FormSchema>>();\n\nasync function loadSchema(target: ParsedTarget): Promise<FormSchema> {\n const key = `${target.endpoint}|${target.slug}`;\n let pending = schemaCache.get(key);\n if (pending) return pending;\n pending = (async () => {\n const res = await fetch(\n `${target.endpoint}/api/forms/public/${encodeURIComponent(target.slug)}`,\n { headers: { Accept: \"application/json\" } },\n );\n if (!res.ok) throw new Error(`form fetch ${res.status}`);\n const body = (await res.json()) as {\n id: string;\n fields: Array<{ id: string; type: string }>;\n };\n const field =\n body.fields.find((f) => f.type === \"textarea\") ??\n body.fields.find((f) => f.type === \"text\") ??\n body.fields[0];\n if (!field) throw new Error(\"form has no fields\");\n return { formId: body.id, fieldId: field.id };\n })();\n pending.catch(() => schemaCache.delete(key));\n schemaCache.set(key, pending);\n return pending;\n}\n\nexport interface FeedbackButtonProps {\n /**\n * \"sidebar\" renders a full-width row with icon + label (for app left sidebars).\n * \"icon\" renders a small icon-only button (for dense toolbars, e.g. the agent panel header).\n * \"outlined\" renders an outlined pill button with icon + label (for top-nav bars, e.g. docs).\n */\n variant?: \"sidebar\" | \"icon\" | \"outlined\";\n label?: string;\n url?: string;\n className?: string;\n /** Which side the popover opens on. Defaults match the variant. */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n /** Placeholder text for the textarea. */\n placeholder?: string;\n /** Current chat session/thread id, when the host already knows it. */\n chatSessionId?: string | null;\n /** Chat localStorage namespace, when the host uses per-app chat storage. */\n chatStorageKey?: string | null;\n /** Controlled popover open state for hosts that trigger feedback from a menu. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Optional custom trigger element. */\n trigger?: ReactNode;\n}\n\nconst surfaceStyle: CSSProperties = {\n width: \"min(380px, calc(100vw - 32px))\",\n};\n\nconst honeypotStyle: CSSProperties = {\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n width: \"1px\",\n height: \"1px\",\n overflow: \"hidden\",\n};\n\nexport function FeedbackButton({\n variant = \"sidebar\",\n label,\n url = DEFAULT_FEEDBACK_URL,\n className,\n side,\n align = \"end\",\n placeholder,\n chatSessionId,\n chatStorageKey,\n open: controlledOpen,\n onOpenChange,\n trigger: customTrigger,\n}: FeedbackButtonProps) {\n const target = parseTarget(url);\n const { session } = useSession();\n const { locale } = useLocale();\n const copy = FEEDBACK_COPY[locale] ?? FEEDBACK_COPY[DEFAULT_LOCALE];\n const resolvedLabel = label ?? copy.label;\n\n const [uncontrolledOpen, setUncontrolledOpen] = useState(false);\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = useCallback(\n (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange?.(nextOpen);\n },\n [controlledOpen, onOpenChange],\n );\n const [value, setValue] = useState(\"\");\n const [honeypot, setHoneypot] = useState(\"\");\n const [submitting, setSubmitting] = useState(false);\n const [submitted, setSubmitted] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [schema, setSchema] = useState<FormSchema | null>(null);\n const openedAtRef = useRef<number>(0);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n\n // Reset transient state and kick off schema load on each open.\n useEffect(() => {\n if (!open) return;\n openedAtRef.current = Date.now();\n setValue(\"\");\n setHoneypot(\"\");\n setSubmitting(false);\n setSubmitted(false);\n setError(null);\n setSchema(null);\n if (target) {\n loadSchema(target)\n .then((s) => setSchema(s))\n .catch((err) => {\n console.error(\"[FeedbackButton] schema load failed\", err);\n setError(copy.loadError);\n });\n } else {\n setError(copy.invalidUrl);\n }\n const t = setTimeout(() => textareaRef.current?.focus(), 30);\n return () => {\n clearTimeout(t);\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n }\n };\n }, [open, url]);\n\n const submit = useCallback(\n async (e?: FormEvent) => {\n e?.preventDefault();\n if (!target || submitting) return;\n const trimmed = value.trim();\n if (!trimmed) {\n setError(copy.emptyError);\n return;\n }\n setSubmitting(true);\n setError(null);\n try {\n const resolvedSchema = schema ?? (await loadSchema(target));\n if (!schema) setSchema(resolvedSchema);\n const submitterEmail = session?.email;\n const feedbackContext = getFeedbackClientContext({\n chatSessionId,\n storageKey: chatStorageKey,\n });\n const res = await fetch(\n `${target.endpoint}/api/submit/${encodeURIComponent(resolvedSchema.formId)}`,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n data: { [resolvedSchema.fieldId]: trimmed },\n _t: openedAtRef.current,\n _hp: honeypot,\n _meta: {\n ...(submitterEmail ? { submitterEmail } : {}),\n ...feedbackContext,\n },\n }),\n },\n );\n if (!res.ok) {\n const body = (await res.json().catch(() => ({}))) as {\n error?: string;\n };\n throw new Error(body.error || `submit failed (${res.status})`);\n }\n setSubmitted(true);\n closeTimerRef.current = setTimeout(() => setOpen(false), 1400);\n } catch (err) {\n setSubmitting(false);\n setError(err instanceof Error ? err.message : copy.sendError);\n }\n },\n [\n target,\n schema,\n value,\n honeypot,\n submitting,\n session?.email,\n chatSessionId,\n chatStorageKey,\n setOpen,\n copy.emptyError,\n copy.sendError,\n ],\n );\n\n let trigger;\n if (customTrigger) {\n trigger = (\n <PopoverPrimitive.Trigger asChild>\n {customTrigger}\n </PopoverPrimitive.Trigger>\n );\n } else if (variant === \"icon\") {\n trigger = (\n <TooltipPrimitive.Provider delayDuration={200}>\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n aria-label={resolvedLabel}\n className={cn(\n \"flex h-6 w-6 items-center justify-center rounded text-muted-foreground hover:text-foreground hover:bg-accent/50\",\n className,\n )}\n >\n <IconMessage2 size={14} />\n </button>\n </PopoverPrimitive.Trigger>\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n sideOffset={6}\n className=\"z-[300] overflow-hidden rounded-md border border-border bg-popover px-2 py-1 text-[11px] text-foreground shadow-md animate-in fade-in-0 zoom-in-95\"\n >\n {resolvedLabel}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n );\n } else if (variant === \"outlined\") {\n trigger = (\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n aria-label={resolvedLabel}\n className={cn(\n \"flex h-8 items-center gap-2 rounded-md border border-border bg-transparent px-3 text-sm text-muted-foreground transition hover:border-foreground/40 hover:text-foreground\",\n className,\n )}\n >\n <IconMessage2 size={14} stroke={1.5} />\n <span>{resolvedLabel}</span>\n </button>\n </PopoverPrimitive.Trigger>\n );\n } else {\n trigger = (\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground\",\n className,\n )}\n >\n <IconMessage2 className=\"h-4 w-4\" />\n <span>{resolvedLabel}</span>\n </button>\n </PopoverPrimitive.Trigger>\n );\n }\n\n const resolvedSide = side ?? (variant === \"sidebar\" ? \"top\" : \"bottom\");\n const resolvedPlaceholder = placeholder ?? copy.placeholder;\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n {trigger}\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={resolvedSide}\n align={align}\n sideOffset={8}\n collisionPadding={16}\n className=\"z-[300] overflow-hidden rounded-lg border border-border bg-popover shadow-xl outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n style={surfaceStyle}\n >\n {submitted ? (\n <div className=\"flex flex-col items-center justify-center gap-3 px-6 py-10 text-center\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500\">\n <IconCheck size={20} stroke={2.5} />\n </div>\n <div className=\"text-sm font-medium text-foreground\">\n {copy.success}\n </div>\n </div>\n ) : (\n <form onSubmit={submit} className=\"flex flex-col gap-3 p-3\">\n <textarea\n ref={textareaRef}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onKeyDown={(e) => {\n if ((e.metaKey || e.ctrlKey) && e.key === \"Enter\") submit();\n }}\n placeholder={resolvedPlaceholder}\n rows={5}\n maxLength={10000}\n className=\"w-full resize-none rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring\"\n />\n <input\n type=\"text\"\n tabIndex={-1}\n autoComplete=\"off\"\n aria-hidden=\"true\"\n value={honeypot}\n onChange={(e) => setHoneypot(e.target.value)}\n style={honeypotStyle}\n />\n <div className=\"flex items-center justify-between gap-3\">\n <div\n className={cn(\n \"text-[11px]\",\n error ? \"text-destructive\" : \"text-muted-foreground/75\",\n )}\n >\n {error ??\n copy.keyboardHint.replace(\n \"{{shortcut}}\",\n /Mac|iPhone|iPad/.test(navigator.userAgent)\n ? \"⌘\"\n : \"Ctrl\",\n )}\n </div>\n <button\n type=\"submit\"\n disabled={submitting || !value.trim()}\n className=\"inline-flex h-8 items-center justify-center rounded-md bg-primary px-3 text-xs font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50\"\n >\n {submitting ? copy.submitting : copy.submit}\n </button>\n </div>\n </form>\n )}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"block-copy.d.ts","sourceRoot":"","sources":["../../../../src/client/blocks/library/block-copy.ts"],"names":[],"mappings":"AA2WA,wBAAgB,YAAY;WAlWjB,MAAM;cACH,MAAM;aACP,MAAM;aACN,MAAM;gBACH,MAAM;4BACM,MAAM;UACxB,MAAM;gBACA,MAAM;UACZ,MAAM;QACR,MAAM;UACJ,MAAM;oBACI,MAAM;iBACT,MAAM;cACT,MAAM;cACN,MAAM;iBACH,MAAM;eACR,MAAM;mBACF,MAAM;oBACL,MAAM;2BACC,MAAM;0BACP,MAAM;2BACL,MAAM;+BACF,MAAM;yBACZ,MAAM;6BACF,MAAM;WACxB,MAAM;aACJ,MAAM;uBACI,MAAM;oBACT,MAAM;uBACH,MAAM;EAwU5B"}
1
+ {"version":3,"file":"block-copy.d.ts","sourceRoot":"","sources":["../../../../src/client/blocks/library/block-copy.ts"],"names":[],"mappings":"AA2YA,wBAAgB,YAAY;WAlYjB,MAAM;cACH,MAAM;aACP,MAAM;aACN,MAAM;gBACH,MAAM;4BACM,MAAM;UACxB,MAAM;gBACA,MAAM;UACZ,MAAM;QACR,MAAM;UACJ,MAAM;oBACI,MAAM;iBACT,MAAM;cACT,MAAM;cACN,MAAM;iBACH,MAAM;eACR,MAAM;mBACF,MAAM;oBACL,MAAM;2BACC,MAAM;0BACP,MAAM;2BACL,MAAM;+BACF,MAAM;yBACZ,MAAM;6BACF,MAAM;WACxB,MAAM;aACJ,MAAM;uBACI,MAAM;oBACT,MAAM;uBACH,MAAM;EAwW5B"}
@@ -65,6 +65,38 @@ const BLOCK_COPY = {
65
65
  lineAnnotation: "第 {{line}} 行注释",
66
66
  hiddenLinesExpand: "{{count}} 行 - 点击展开",
67
67
  },
68
+ "zh-TW": {
69
+ added: "已新增",
70
+ modified: "已修改",
71
+ removed: "已移除",
72
+ renamed: "已重新命名",
73
+ deprecated: "已棄用",
74
+ requiresAuthentication: "需要驗證",
75
+ auth: "驗證",
76
+ parameters: "參數",
77
+ name: "名稱",
78
+ in: "位置",
79
+ type: "型別",
80
+ requiredColumn: "必填",
81
+ description: "描述",
82
+ required: "必填",
83
+ optional: "選填",
84
+ requestBody: "請求本文",
85
+ responses: "回應",
86
+ expandDiagram: "展開圖表",
87
+ loadingDiagram: "正在載入圖表...",
88
+ couldNotRenderDiagram: "無法呈現圖表",
89
+ addDiagramDefinition: "新增圖表定義以呈現。",
90
+ switchToCleanDiagrams: "切換到簡潔圖表",
91
+ switchToHandDrawnDiagrams: "切換到手繪圖表",
92
+ cleanDiagramsSwitch: "簡潔圖表 - 切換到手繪",
93
+ handDrawnDiagramsSwitch: "手繪圖表 - 切換到簡潔",
94
+ clean: "簡潔",
95
+ sketchy: "手繪",
96
+ switchVisualStyle: "切換到 {{style}} 視覺樣式",
97
+ lineAnnotation: "第 {{line}} 行註解",
98
+ hiddenLinesExpand: "{{count}} 行 - 點擊展開",
99
+ },
68
100
  "es-ES": {
69
101
  added: "Añadido",
70
102
  modified: "Modificado",
@@ -1 +1 @@
1
- {"version":3,"file":"block-copy.js","sourceRoot":"","sources":["../../../../src/client/blocks/library/block-copy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DEFAULT_LOCALE,\n type LocaleCode,\n} from \"../../../localization/shared.js\";\nimport { useOptionalLocale } from \"../../i18n.js\";\n\nconst BLOCK_COPY: Record<\n LocaleCode,\n {\n added: string;\n modified: string;\n removed: string;\n renamed: string;\n deprecated: string;\n requiresAuthentication: string;\n auth: string;\n parameters: string;\n name: string;\n in: string;\n type: string;\n requiredColumn: string;\n description: string;\n required: string;\n optional: string;\n requestBody: string;\n responses: string;\n expandDiagram: string;\n loadingDiagram: string;\n couldNotRenderDiagram: string;\n addDiagramDefinition: string;\n switchToCleanDiagrams: string;\n switchToHandDrawnDiagrams: string;\n cleanDiagramsSwitch: string;\n handDrawnDiagramsSwitch: string;\n clean: string;\n sketchy: string;\n switchVisualStyle: string;\n lineAnnotation: string;\n hiddenLinesExpand: string;\n }\n> = {\n \"en-US\": {\n added: \"Added\",\n modified: \"Modified\",\n removed: \"Removed\",\n renamed: \"Renamed\",\n deprecated: \"Deprecated\",\n requiresAuthentication: \"Requires authentication\",\n auth: \"Auth\",\n parameters: \"Parameters\",\n name: \"Name\",\n in: \"In\",\n type: \"Type\",\n requiredColumn: \"Required\",\n description: \"Description\",\n required: \"required\",\n optional: \"optional\",\n requestBody: \"Request body\",\n responses: \"Responses\",\n expandDiagram: \"Expand diagram\",\n loadingDiagram: \"Loading diagram...\",\n couldNotRenderDiagram: \"Could not render diagram\",\n addDiagramDefinition: \"Add a diagram definition to render it.\",\n switchToCleanDiagrams: \"Switch to clean diagrams\",\n switchToHandDrawnDiagrams: \"Switch to hand-drawn diagrams\",\n cleanDiagramsSwitch: \"Clean diagrams - switch to hand-drawn\",\n handDrawnDiagramsSwitch: \"Hand-drawn diagrams - switch to clean\",\n clean: \"Clean\",\n sketchy: \"Sketchy\",\n switchVisualStyle: \"Switch to {{style}} visual style\",\n lineAnnotation: \"Line {{line}} annotation\",\n hiddenLinesExpand: \"{{count}} lines - click to expand\",\n },\n \"zh-CN\": {\n added: \"已添加\",\n modified: \"已修改\",\n removed: \"已移除\",\n renamed: \"已重命名\",\n deprecated: \"已弃用\",\n requiresAuthentication: \"需要身份验证\",\n auth: \"身份验证\",\n parameters: \"参数\",\n name: \"名称\",\n in: \"位置\",\n type: \"类型\",\n requiredColumn: \"必填\",\n description: \"描述\",\n required: \"必填\",\n optional: \"可选\",\n requestBody: \"请求体\",\n responses: \"响应\",\n expandDiagram: \"展开图表\",\n loadingDiagram: \"正在加载图表...\",\n couldNotRenderDiagram: \"无法渲染图表\",\n addDiagramDefinition: \"添加图表定义以渲染。\",\n switchToCleanDiagrams: \"切换到简洁图表\",\n switchToHandDrawnDiagrams: \"切换到手绘图表\",\n cleanDiagramsSwitch: \"简洁图表 - 切换到手绘\",\n handDrawnDiagramsSwitch: \"手绘图表 - 切换到简洁\",\n clean: \"简洁\",\n sketchy: \"手绘\",\n switchVisualStyle: \"切换到{{style}}视觉样式\",\n lineAnnotation: \"第 {{line}} 行注释\",\n hiddenLinesExpand: \"{{count}} 行 - 点击展开\",\n },\n \"es-ES\": {\n added: \"Añadido\",\n modified: \"Modificado\",\n removed: \"Eliminado\",\n renamed: \"Renombrado\",\n deprecated: \"Obsoleto\",\n requiresAuthentication: \"Requiere autenticación\",\n auth: \"Autenticación\",\n parameters: \"Parámetros\",\n name: \"Nombre\",\n in: \"En\",\n type: \"Tipo\",\n requiredColumn: \"Obligatorio\",\n description: \"Descripción\",\n required: \"obligatorio\",\n optional: \"opcional\",\n requestBody: \"Cuerpo de la solicitud\",\n responses: \"Respuestas\",\n expandDiagram: \"Ampliar diagrama\",\n loadingDiagram: \"Cargando diagrama...\",\n couldNotRenderDiagram: \"No se pudo renderizar el diagrama\",\n addDiagramDefinition: \"Añade una definición para renderizarlo.\",\n switchToCleanDiagrams: \"Cambiar a diagramas limpios\",\n switchToHandDrawnDiagrams: \"Cambiar a diagramas dibujados\",\n cleanDiagramsSwitch: \"Diagramas limpios - cambiar a dibujados\",\n handDrawnDiagramsSwitch: \"Diagramas dibujados - cambiar a limpios\",\n clean: \"Limpio\",\n sketchy: \"Boceto\",\n switchVisualStyle: \"Cambiar al estilo visual {{style}}\",\n lineAnnotation: \"Anotación de la línea {{line}}\",\n hiddenLinesExpand: \"{{count}} líneas - clic para expandir\",\n },\n \"fr-FR\": {\n added: \"Ajouté\",\n modified: \"Modifié\",\n removed: \"Supprimé\",\n renamed: \"Renommé\",\n deprecated: \"Obsolète\",\n requiresAuthentication: \"Authentification requise\",\n auth: \"Auth\",\n parameters: \"Paramètres\",\n name: \"Nom\",\n in: \"Dans\",\n type: \"Type\",\n requiredColumn: \"Requis\",\n description: \"Description\",\n required: \"requis\",\n optional: \"facultatif\",\n requestBody: \"Corps de requête\",\n responses: \"Réponses\",\n expandDiagram: \"Agrandir le diagramme\",\n loadingDiagram: \"Chargement du diagramme...\",\n couldNotRenderDiagram: \"Impossible de rendre le diagramme\",\n addDiagramDefinition: \"Ajoutez une définition pour le rendre.\",\n switchToCleanDiagrams: \"Passer aux diagrammes nets\",\n switchToHandDrawnDiagrams: \"Passer aux diagrammes dessinés\",\n cleanDiagramsSwitch: \"Diagrammes nets - passer au dessin\",\n handDrawnDiagramsSwitch: \"Diagrammes dessinés - passer au net\",\n clean: \"Net\",\n sketchy: \"Croquis\",\n switchVisualStyle: \"Passer au style visuel {{style}}\",\n lineAnnotation: \"Annotation de la ligne {{line}}\",\n hiddenLinesExpand: \"{{count}} lignes - cliquer pour développer\",\n },\n \"de-DE\": {\n added: \"Hinzugefügt\",\n modified: \"Geändert\",\n removed: \"Entfernt\",\n renamed: \"Umbenannt\",\n deprecated: \"Veraltet\",\n requiresAuthentication: \"Authentifizierung erforderlich\",\n auth: \"Auth\",\n parameters: \"Parameter\",\n name: \"Name\",\n in: \"In\",\n type: \"Typ\",\n requiredColumn: \"Erforderlich\",\n description: \"Beschreibung\",\n required: \"erforderlich\",\n optional: \"optional\",\n requestBody: \"Anfragetext\",\n responses: \"Antworten\",\n expandDiagram: \"Diagramm vergrößern\",\n loadingDiagram: \"Diagramm wird geladen...\",\n couldNotRenderDiagram: \"Diagramm konnte nicht gerendert werden\",\n addDiagramDefinition: \"Füge eine Diagrammdefinition hinzu.\",\n switchToCleanDiagrams: \"Zu klaren Diagrammen wechseln\",\n switchToHandDrawnDiagrams: \"Zu handgezeichneten Diagrammen wechseln\",\n cleanDiagramsSwitch: \"Klare Diagramme - zu handgezeichnet wechseln\",\n handDrawnDiagramsSwitch: \"Handgezeichnet - zu klar wechseln\",\n clean: \"Klar\",\n sketchy: \"Skizze\",\n switchVisualStyle: \"Zum visuellen Stil {{style}} wechseln\",\n lineAnnotation: \"Annotation für Zeile {{line}}\",\n hiddenLinesExpand: \"{{count}} Zeilen - zum Erweitern klicken\",\n },\n \"ja-JP\": {\n added: \"追加\",\n modified: \"変更\",\n removed: \"削除\",\n renamed: \"名前変更\",\n deprecated: \"非推奨\",\n requiresAuthentication: \"認証が必要です\",\n auth: \"認証\",\n parameters: \"パラメーター\",\n name: \"名前\",\n in: \"場所\",\n type: \"型\",\n requiredColumn: \"必須\",\n description: \"説明\",\n required: \"必須\",\n optional: \"任意\",\n requestBody: \"リクエスト本文\",\n responses: \"レスポンス\",\n expandDiagram: \"図を拡大\",\n loadingDiagram: \"図を読み込み中...\",\n couldNotRenderDiagram: \"図を表示できませんでした\",\n addDiagramDefinition: \"表示する図の定義を追加してください。\",\n switchToCleanDiagrams: \"クリーン表示に切り替え\",\n switchToHandDrawnDiagrams: \"手描き表示に切り替え\",\n cleanDiagramsSwitch: \"クリーン表示 - 手描きに切り替え\",\n handDrawnDiagramsSwitch: \"手描き表示 - クリーンに切り替え\",\n clean: \"クリーン\",\n sketchy: \"手描き\",\n switchVisualStyle: \"{{style}}表示に切り替え\",\n lineAnnotation: \"{{line}} 行目の注釈\",\n hiddenLinesExpand: \"{{count}} 行 - クリックして展開\",\n },\n \"ko-KR\": {\n added: \"추가됨\",\n modified: \"수정됨\",\n removed: \"제거됨\",\n renamed: \"이름 변경됨\",\n deprecated: \"사용 중단됨\",\n requiresAuthentication: \"인증 필요\",\n auth: \"인증\",\n parameters: \"매개변수\",\n name: \"이름\",\n in: \"위치\",\n type: \"유형\",\n requiredColumn: \"필수\",\n description: \"설명\",\n required: \"필수\",\n optional: \"선택\",\n requestBody: \"요청 본문\",\n responses: \"응답\",\n expandDiagram: \"다이어그램 확대\",\n loadingDiagram: \"다이어그램 로드 중...\",\n couldNotRenderDiagram: \"다이어그램을 렌더링할 수 없음\",\n addDiagramDefinition: \"렌더링할 다이어그램 정의를 추가하세요.\",\n switchToCleanDiagrams: \"깔끔한 다이어그램으로 전환\",\n switchToHandDrawnDiagrams: \"손그림 다이어그램으로 전환\",\n cleanDiagramsSwitch: \"깔끔한 다이어그램 - 손그림으로 전환\",\n handDrawnDiagramsSwitch: \"손그림 다이어그램 - 깔끔하게 전환\",\n clean: \"깔끔함\",\n sketchy: \"손그림\",\n switchVisualStyle: \"{{style}} 시각 스타일로 전환\",\n lineAnnotation: \"{{line}}번 줄 주석\",\n hiddenLinesExpand: \"{{count}}줄 - 클릭하여 펼치기\",\n },\n \"pt-BR\": {\n added: \"Adicionado\",\n modified: \"Modificado\",\n removed: \"Removido\",\n renamed: \"Renomeado\",\n deprecated: \"Obsoleto\",\n requiresAuthentication: \"Requer autenticação\",\n auth: \"Autenticação\",\n parameters: \"Parâmetros\",\n name: \"Nome\",\n in: \"Em\",\n type: \"Tipo\",\n requiredColumn: \"Obrigatório\",\n description: \"Descrição\",\n required: \"obrigatório\",\n optional: \"opcional\",\n requestBody: \"Corpo da requisição\",\n responses: \"Respostas\",\n expandDiagram: \"Expandir diagrama\",\n loadingDiagram: \"Carregando diagrama...\",\n couldNotRenderDiagram: \"Não foi possível renderizar o diagrama\",\n addDiagramDefinition: \"Adicione uma definição para renderizar.\",\n switchToCleanDiagrams: \"Alternar para diagramas limpos\",\n switchToHandDrawnDiagrams: \"Alternar para diagramas desenhados\",\n cleanDiagramsSwitch: \"Diagramas limpos - alternar para desenhados\",\n handDrawnDiagramsSwitch: \"Diagramas desenhados - alternar para limpos\",\n clean: \"Limpo\",\n sketchy: \"Esboço\",\n switchVisualStyle: \"Alternar para o estilo visual {{style}}\",\n lineAnnotation: \"Anotação da linha {{line}}\",\n hiddenLinesExpand: \"{{count}} linhas - clique para expandir\",\n },\n \"hi-IN\": {\n added: \"जोड़ा गया\",\n modified: \"बदला गया\",\n removed: \"हटाया गया\",\n renamed: \"नाम बदला गया\",\n deprecated: \"अप्रचलित\",\n requiresAuthentication: \"प्रमाणीकरण आवश्यक\",\n auth: \"प्रमाणीकरण\",\n parameters: \"पैरामीटर\",\n name: \"नाम\",\n in: \"स्थान\",\n type: \"प्रकार\",\n requiredColumn: \"आवश्यक\",\n description: \"विवरण\",\n required: \"आवश्यक\",\n optional: \"वैकल्पिक\",\n requestBody: \"अनुरोध बॉडी\",\n responses: \"प्रतिक्रियाएँ\",\n expandDiagram: \"डायग्राम बड़ा करें\",\n loadingDiagram: \"डायग्राम लोड हो रहा है...\",\n couldNotRenderDiagram: \"डायग्राम रेंडर नहीं हो सका\",\n addDiagramDefinition: \"रेंडर करने के लिए डायग्राम परिभाषा जोड़ें।\",\n switchToCleanDiagrams: \"साफ़ डायग्राम पर स्विच करें\",\n switchToHandDrawnDiagrams: \"हाथ से बने डायग्राम पर स्विच करें\",\n cleanDiagramsSwitch: \"साफ़ डायग्राम - हाथ से बने पर स्विच करें\",\n handDrawnDiagramsSwitch: \"हाथ से बने डायग्राम - साफ़ पर स्विच करें\",\n clean: \"साफ़\",\n sketchy: \"स्केच\",\n switchVisualStyle: \"{{style}} दृश्य शैली पर स्विच करें\",\n lineAnnotation: \"लाइन {{line}} एनोटेशन\",\n hiddenLinesExpand: \"{{count}} लाइनें - विस्तार के लिए क्लिक करें\",\n },\n \"ar-SA\": {\n added: \"مضاف\",\n modified: \"معدل\",\n removed: \"محذوف\",\n renamed: \"أعيدت تسميته\",\n deprecated: \"مهمل\",\n requiresAuthentication: \"يتطلب المصادقة\",\n auth: \"المصادقة\",\n parameters: \"المعاملات\",\n name: \"الاسم\",\n in: \"في\",\n type: \"النوع\",\n requiredColumn: \"مطلوب\",\n description: \"الوصف\",\n required: \"مطلوب\",\n optional: \"اختياري\",\n requestBody: \"نص الطلب\",\n responses: \"الاستجابات\",\n expandDiagram: \"توسيع الرسم\",\n loadingDiagram: \"جار تحميل الرسم...\",\n couldNotRenderDiagram: \"تعذر عرض الرسم\",\n addDiagramDefinition: \"أضف تعريف رسم لعرضه.\",\n switchToCleanDiagrams: \"التبديل إلى رسوم نظيفة\",\n switchToHandDrawnDiagrams: \"التبديل إلى رسوم مرسومة يدويا\",\n cleanDiagramsSwitch: \"رسوم نظيفة - التبديل إلى مرسومة يدويا\",\n handDrawnDiagramsSwitch: \"رسوم مرسومة يدويا - التبديل إلى نظيفة\",\n clean: \"نظيف\",\n sketchy: \"مرسوم\",\n switchVisualStyle: \"التبديل إلى نمط {{style}} المرئي\",\n lineAnnotation: \"تعليق السطر {{line}}\",\n hiddenLinesExpand: \"{{count}} أسطر - انقر للتوسيع\",\n },\n};\n\nexport function useBlockCopy() {\n const locale = useOptionalLocale()?.locale ?? DEFAULT_LOCALE;\n return BLOCK_COPY[locale] ?? BLOCK_COPY[DEFAULT_LOCALE];\n}\n"]}
1
+ {"version":3,"file":"block-copy.js","sourceRoot":"","sources":["../../../../src/client/blocks/library/block-copy.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DEFAULT_LOCALE,\n type LocaleCode,\n} from \"../../../localization/shared.js\";\nimport { useOptionalLocale } from \"../../i18n.js\";\n\nconst BLOCK_COPY: Record<\n LocaleCode,\n {\n added: string;\n modified: string;\n removed: string;\n renamed: string;\n deprecated: string;\n requiresAuthentication: string;\n auth: string;\n parameters: string;\n name: string;\n in: string;\n type: string;\n requiredColumn: string;\n description: string;\n required: string;\n optional: string;\n requestBody: string;\n responses: string;\n expandDiagram: string;\n loadingDiagram: string;\n couldNotRenderDiagram: string;\n addDiagramDefinition: string;\n switchToCleanDiagrams: string;\n switchToHandDrawnDiagrams: string;\n cleanDiagramsSwitch: string;\n handDrawnDiagramsSwitch: string;\n clean: string;\n sketchy: string;\n switchVisualStyle: string;\n lineAnnotation: string;\n hiddenLinesExpand: string;\n }\n> = {\n \"en-US\": {\n added: \"Added\",\n modified: \"Modified\",\n removed: \"Removed\",\n renamed: \"Renamed\",\n deprecated: \"Deprecated\",\n requiresAuthentication: \"Requires authentication\",\n auth: \"Auth\",\n parameters: \"Parameters\",\n name: \"Name\",\n in: \"In\",\n type: \"Type\",\n requiredColumn: \"Required\",\n description: \"Description\",\n required: \"required\",\n optional: \"optional\",\n requestBody: \"Request body\",\n responses: \"Responses\",\n expandDiagram: \"Expand diagram\",\n loadingDiagram: \"Loading diagram...\",\n couldNotRenderDiagram: \"Could not render diagram\",\n addDiagramDefinition: \"Add a diagram definition to render it.\",\n switchToCleanDiagrams: \"Switch to clean diagrams\",\n switchToHandDrawnDiagrams: \"Switch to hand-drawn diagrams\",\n cleanDiagramsSwitch: \"Clean diagrams - switch to hand-drawn\",\n handDrawnDiagramsSwitch: \"Hand-drawn diagrams - switch to clean\",\n clean: \"Clean\",\n sketchy: \"Sketchy\",\n switchVisualStyle: \"Switch to {{style}} visual style\",\n lineAnnotation: \"Line {{line}} annotation\",\n hiddenLinesExpand: \"{{count}} lines - click to expand\",\n },\n \"zh-CN\": {\n added: \"已添加\",\n modified: \"已修改\",\n removed: \"已移除\",\n renamed: \"已重命名\",\n deprecated: \"已弃用\",\n requiresAuthentication: \"需要身份验证\",\n auth: \"身份验证\",\n parameters: \"参数\",\n name: \"名称\",\n in: \"位置\",\n type: \"类型\",\n requiredColumn: \"必填\",\n description: \"描述\",\n required: \"必填\",\n optional: \"可选\",\n requestBody: \"请求体\",\n responses: \"响应\",\n expandDiagram: \"展开图表\",\n loadingDiagram: \"正在加载图表...\",\n couldNotRenderDiagram: \"无法渲染图表\",\n addDiagramDefinition: \"添加图表定义以渲染。\",\n switchToCleanDiagrams: \"切换到简洁图表\",\n switchToHandDrawnDiagrams: \"切换到手绘图表\",\n cleanDiagramsSwitch: \"简洁图表 - 切换到手绘\",\n handDrawnDiagramsSwitch: \"手绘图表 - 切换到简洁\",\n clean: \"简洁\",\n sketchy: \"手绘\",\n switchVisualStyle: \"切换到{{style}}视觉样式\",\n lineAnnotation: \"第 {{line}} 行注释\",\n hiddenLinesExpand: \"{{count}} 行 - 点击展开\",\n },\n \"zh-TW\": {\n added: \"已新增\",\n modified: \"已修改\",\n removed: \"已移除\",\n renamed: \"已重新命名\",\n deprecated: \"已棄用\",\n requiresAuthentication: \"需要驗證\",\n auth: \"驗證\",\n parameters: \"參數\",\n name: \"名稱\",\n in: \"位置\",\n type: \"型別\",\n requiredColumn: \"必填\",\n description: \"描述\",\n required: \"必填\",\n optional: \"選填\",\n requestBody: \"請求本文\",\n responses: \"回應\",\n expandDiagram: \"展開圖表\",\n loadingDiagram: \"正在載入圖表...\",\n couldNotRenderDiagram: \"無法呈現圖表\",\n addDiagramDefinition: \"新增圖表定義以呈現。\",\n switchToCleanDiagrams: \"切換到簡潔圖表\",\n switchToHandDrawnDiagrams: \"切換到手繪圖表\",\n cleanDiagramsSwitch: \"簡潔圖表 - 切換到手繪\",\n handDrawnDiagramsSwitch: \"手繪圖表 - 切換到簡潔\",\n clean: \"簡潔\",\n sketchy: \"手繪\",\n switchVisualStyle: \"切換到 {{style}} 視覺樣式\",\n lineAnnotation: \"第 {{line}} 行註解\",\n hiddenLinesExpand: \"{{count}} 行 - 點擊展開\",\n },\n \"es-ES\": {\n added: \"Añadido\",\n modified: \"Modificado\",\n removed: \"Eliminado\",\n renamed: \"Renombrado\",\n deprecated: \"Obsoleto\",\n requiresAuthentication: \"Requiere autenticación\",\n auth: \"Autenticación\",\n parameters: \"Parámetros\",\n name: \"Nombre\",\n in: \"En\",\n type: \"Tipo\",\n requiredColumn: \"Obligatorio\",\n description: \"Descripción\",\n required: \"obligatorio\",\n optional: \"opcional\",\n requestBody: \"Cuerpo de la solicitud\",\n responses: \"Respuestas\",\n expandDiagram: \"Ampliar diagrama\",\n loadingDiagram: \"Cargando diagrama...\",\n couldNotRenderDiagram: \"No se pudo renderizar el diagrama\",\n addDiagramDefinition: \"Añade una definición para renderizarlo.\",\n switchToCleanDiagrams: \"Cambiar a diagramas limpios\",\n switchToHandDrawnDiagrams: \"Cambiar a diagramas dibujados\",\n cleanDiagramsSwitch: \"Diagramas limpios - cambiar a dibujados\",\n handDrawnDiagramsSwitch: \"Diagramas dibujados - cambiar a limpios\",\n clean: \"Limpio\",\n sketchy: \"Boceto\",\n switchVisualStyle: \"Cambiar al estilo visual {{style}}\",\n lineAnnotation: \"Anotación de la línea {{line}}\",\n hiddenLinesExpand: \"{{count}} líneas - clic para expandir\",\n },\n \"fr-FR\": {\n added: \"Ajouté\",\n modified: \"Modifié\",\n removed: \"Supprimé\",\n renamed: \"Renommé\",\n deprecated: \"Obsolète\",\n requiresAuthentication: \"Authentification requise\",\n auth: \"Auth\",\n parameters: \"Paramètres\",\n name: \"Nom\",\n in: \"Dans\",\n type: \"Type\",\n requiredColumn: \"Requis\",\n description: \"Description\",\n required: \"requis\",\n optional: \"facultatif\",\n requestBody: \"Corps de requête\",\n responses: \"Réponses\",\n expandDiagram: \"Agrandir le diagramme\",\n loadingDiagram: \"Chargement du diagramme...\",\n couldNotRenderDiagram: \"Impossible de rendre le diagramme\",\n addDiagramDefinition: \"Ajoutez une définition pour le rendre.\",\n switchToCleanDiagrams: \"Passer aux diagrammes nets\",\n switchToHandDrawnDiagrams: \"Passer aux diagrammes dessinés\",\n cleanDiagramsSwitch: \"Diagrammes nets - passer au dessin\",\n handDrawnDiagramsSwitch: \"Diagrammes dessinés - passer au net\",\n clean: \"Net\",\n sketchy: \"Croquis\",\n switchVisualStyle: \"Passer au style visuel {{style}}\",\n lineAnnotation: \"Annotation de la ligne {{line}}\",\n hiddenLinesExpand: \"{{count}} lignes - cliquer pour développer\",\n },\n \"de-DE\": {\n added: \"Hinzugefügt\",\n modified: \"Geändert\",\n removed: \"Entfernt\",\n renamed: \"Umbenannt\",\n deprecated: \"Veraltet\",\n requiresAuthentication: \"Authentifizierung erforderlich\",\n auth: \"Auth\",\n parameters: \"Parameter\",\n name: \"Name\",\n in: \"In\",\n type: \"Typ\",\n requiredColumn: \"Erforderlich\",\n description: \"Beschreibung\",\n required: \"erforderlich\",\n optional: \"optional\",\n requestBody: \"Anfragetext\",\n responses: \"Antworten\",\n expandDiagram: \"Diagramm vergrößern\",\n loadingDiagram: \"Diagramm wird geladen...\",\n couldNotRenderDiagram: \"Diagramm konnte nicht gerendert werden\",\n addDiagramDefinition: \"Füge eine Diagrammdefinition hinzu.\",\n switchToCleanDiagrams: \"Zu klaren Diagrammen wechseln\",\n switchToHandDrawnDiagrams: \"Zu handgezeichneten Diagrammen wechseln\",\n cleanDiagramsSwitch: \"Klare Diagramme - zu handgezeichnet wechseln\",\n handDrawnDiagramsSwitch: \"Handgezeichnet - zu klar wechseln\",\n clean: \"Klar\",\n sketchy: \"Skizze\",\n switchVisualStyle: \"Zum visuellen Stil {{style}} wechseln\",\n lineAnnotation: \"Annotation für Zeile {{line}}\",\n hiddenLinesExpand: \"{{count}} Zeilen - zum Erweitern klicken\",\n },\n \"ja-JP\": {\n added: \"追加\",\n modified: \"変更\",\n removed: \"削除\",\n renamed: \"名前変更\",\n deprecated: \"非推奨\",\n requiresAuthentication: \"認証が必要です\",\n auth: \"認証\",\n parameters: \"パラメーター\",\n name: \"名前\",\n in: \"場所\",\n type: \"型\",\n requiredColumn: \"必須\",\n description: \"説明\",\n required: \"必須\",\n optional: \"任意\",\n requestBody: \"リクエスト本文\",\n responses: \"レスポンス\",\n expandDiagram: \"図を拡大\",\n loadingDiagram: \"図を読み込み中...\",\n couldNotRenderDiagram: \"図を表示できませんでした\",\n addDiagramDefinition: \"表示する図の定義を追加してください。\",\n switchToCleanDiagrams: \"クリーン表示に切り替え\",\n switchToHandDrawnDiagrams: \"手描き表示に切り替え\",\n cleanDiagramsSwitch: \"クリーン表示 - 手描きに切り替え\",\n handDrawnDiagramsSwitch: \"手描き表示 - クリーンに切り替え\",\n clean: \"クリーン\",\n sketchy: \"手描き\",\n switchVisualStyle: \"{{style}}表示に切り替え\",\n lineAnnotation: \"{{line}} 行目の注釈\",\n hiddenLinesExpand: \"{{count}} 行 - クリックして展開\",\n },\n \"ko-KR\": {\n added: \"추가됨\",\n modified: \"수정됨\",\n removed: \"제거됨\",\n renamed: \"이름 변경됨\",\n deprecated: \"사용 중단됨\",\n requiresAuthentication: \"인증 필요\",\n auth: \"인증\",\n parameters: \"매개변수\",\n name: \"이름\",\n in: \"위치\",\n type: \"유형\",\n requiredColumn: \"필수\",\n description: \"설명\",\n required: \"필수\",\n optional: \"선택\",\n requestBody: \"요청 본문\",\n responses: \"응답\",\n expandDiagram: \"다이어그램 확대\",\n loadingDiagram: \"다이어그램 로드 중...\",\n couldNotRenderDiagram: \"다이어그램을 렌더링할 수 없음\",\n addDiagramDefinition: \"렌더링할 다이어그램 정의를 추가하세요.\",\n switchToCleanDiagrams: \"깔끔한 다이어그램으로 전환\",\n switchToHandDrawnDiagrams: \"손그림 다이어그램으로 전환\",\n cleanDiagramsSwitch: \"깔끔한 다이어그램 - 손그림으로 전환\",\n handDrawnDiagramsSwitch: \"손그림 다이어그램 - 깔끔하게 전환\",\n clean: \"깔끔함\",\n sketchy: \"손그림\",\n switchVisualStyle: \"{{style}} 시각 스타일로 전환\",\n lineAnnotation: \"{{line}}번 줄 주석\",\n hiddenLinesExpand: \"{{count}}줄 - 클릭하여 펼치기\",\n },\n \"pt-BR\": {\n added: \"Adicionado\",\n modified: \"Modificado\",\n removed: \"Removido\",\n renamed: \"Renomeado\",\n deprecated: \"Obsoleto\",\n requiresAuthentication: \"Requer autenticação\",\n auth: \"Autenticação\",\n parameters: \"Parâmetros\",\n name: \"Nome\",\n in: \"Em\",\n type: \"Tipo\",\n requiredColumn: \"Obrigatório\",\n description: \"Descrição\",\n required: \"obrigatório\",\n optional: \"opcional\",\n requestBody: \"Corpo da requisição\",\n responses: \"Respostas\",\n expandDiagram: \"Expandir diagrama\",\n loadingDiagram: \"Carregando diagrama...\",\n couldNotRenderDiagram: \"Não foi possível renderizar o diagrama\",\n addDiagramDefinition: \"Adicione uma definição para renderizar.\",\n switchToCleanDiagrams: \"Alternar para diagramas limpos\",\n switchToHandDrawnDiagrams: \"Alternar para diagramas desenhados\",\n cleanDiagramsSwitch: \"Diagramas limpos - alternar para desenhados\",\n handDrawnDiagramsSwitch: \"Diagramas desenhados - alternar para limpos\",\n clean: \"Limpo\",\n sketchy: \"Esboço\",\n switchVisualStyle: \"Alternar para o estilo visual {{style}}\",\n lineAnnotation: \"Anotação da linha {{line}}\",\n hiddenLinesExpand: \"{{count}} linhas - clique para expandir\",\n },\n \"hi-IN\": {\n added: \"जोड़ा गया\",\n modified: \"बदला गया\",\n removed: \"हटाया गया\",\n renamed: \"नाम बदला गया\",\n deprecated: \"अप्रचलित\",\n requiresAuthentication: \"प्रमाणीकरण आवश्यक\",\n auth: \"प्रमाणीकरण\",\n parameters: \"पैरामीटर\",\n name: \"नाम\",\n in: \"स्थान\",\n type: \"प्रकार\",\n requiredColumn: \"आवश्यक\",\n description: \"विवरण\",\n required: \"आवश्यक\",\n optional: \"वैकल्पिक\",\n requestBody: \"अनुरोध बॉडी\",\n responses: \"प्रतिक्रियाएँ\",\n expandDiagram: \"डायग्राम बड़ा करें\",\n loadingDiagram: \"डायग्राम लोड हो रहा है...\",\n couldNotRenderDiagram: \"डायग्राम रेंडर नहीं हो सका\",\n addDiagramDefinition: \"रेंडर करने के लिए डायग्राम परिभाषा जोड़ें।\",\n switchToCleanDiagrams: \"साफ़ डायग्राम पर स्विच करें\",\n switchToHandDrawnDiagrams: \"हाथ से बने डायग्राम पर स्विच करें\",\n cleanDiagramsSwitch: \"साफ़ डायग्राम - हाथ से बने पर स्विच करें\",\n handDrawnDiagramsSwitch: \"हाथ से बने डायग्राम - साफ़ पर स्विच करें\",\n clean: \"साफ़\",\n sketchy: \"स्केच\",\n switchVisualStyle: \"{{style}} दृश्य शैली पर स्विच करें\",\n lineAnnotation: \"लाइन {{line}} एनोटेशन\",\n hiddenLinesExpand: \"{{count}} लाइनें - विस्तार के लिए क्लिक करें\",\n },\n \"ar-SA\": {\n added: \"مضاف\",\n modified: \"معدل\",\n removed: \"محذوف\",\n renamed: \"أعيدت تسميته\",\n deprecated: \"مهمل\",\n requiresAuthentication: \"يتطلب المصادقة\",\n auth: \"المصادقة\",\n parameters: \"المعاملات\",\n name: \"الاسم\",\n in: \"في\",\n type: \"النوع\",\n requiredColumn: \"مطلوب\",\n description: \"الوصف\",\n required: \"مطلوب\",\n optional: \"اختياري\",\n requestBody: \"نص الطلب\",\n responses: \"الاستجابات\",\n expandDiagram: \"توسيع الرسم\",\n loadingDiagram: \"جار تحميل الرسم...\",\n couldNotRenderDiagram: \"تعذر عرض الرسم\",\n addDiagramDefinition: \"أضف تعريف رسم لعرضه.\",\n switchToCleanDiagrams: \"التبديل إلى رسوم نظيفة\",\n switchToHandDrawnDiagrams: \"التبديل إلى رسوم مرسومة يدويا\",\n cleanDiagramsSwitch: \"رسوم نظيفة - التبديل إلى مرسومة يدويا\",\n handDrawnDiagramsSwitch: \"رسوم مرسومة يدويا - التبديل إلى نظيفة\",\n clean: \"نظيف\",\n sketchy: \"مرسوم\",\n switchVisualStyle: \"التبديل إلى نمط {{style}} المرئي\",\n lineAnnotation: \"تعليق السطر {{line}}\",\n hiddenLinesExpand: \"{{count}} أسطر - انقر للتوسيع\",\n },\n};\n\nexport function useBlockCopy() {\n const locale = useOptionalLocale()?.locale ?? DEFAULT_LOCALE;\n return BLOCK_COPY[locale] ?? BLOCK_COPY[DEFAULT_LOCALE];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionsSidebarSection.d.ts","sourceRoot":"","sources":["../../../src/client/extensions/ExtensionsSidebarSection.tsx"],"names":[],"mappings":"AAskBA,wBAAgB,wBAAwB,gCA6lBvC"}
1
+ {"version":3,"file":"ExtensionsSidebarSection.d.ts","sourceRoot":"","sources":["../../../src/client/extensions/ExtensionsSidebarSection.tsx"],"names":[],"mappings":"AAumBA,wBAAgB,wBAAwB,gCA6lBvC"}
@@ -85,6 +85,38 @@ const EXTENSIONS_COPY = {
85
85
  showLess: "收起",
86
86
  showMore: "显示更多",
87
87
  },
88
+ "zh-TW": {
89
+ title: "擴充功能",
90
+ description: "建立可讀取應用程式資料、呼叫動作並儲存自身狀態的小型沙盒應用程式。",
91
+ open: "開啟擴充功能",
92
+ learnMore: "了解更多",
93
+ sortOptions: "擴充功能排序選項",
94
+ sortTooltip: "擴充功能排序",
95
+ sortBy: "排序方式",
96
+ mostUsed: "最常用",
97
+ alphabetical: "依字母排序",
98
+ manualOrder: "手動排序",
99
+ showHidden: "顯示隱藏項目",
100
+ newExtension: "新增擴充功能",
101
+ createPlaceholder: "描述你想建立的內容...",
102
+ collapse: "收合擴充功能",
103
+ expand: "展開擴充功能",
104
+ reorder: (name) => `重新排序 ${name}`,
105
+ dragToReorder: "拖曳以重新排序",
106
+ hiddenFromEveryone: "已對所有人隱藏",
107
+ file: "檔案",
108
+ unfavorite: "取消最愛",
109
+ favorite: "加入最愛",
110
+ actions: "擴充功能動作",
111
+ editInFiles: "在檔案中編輯",
112
+ rename: "重新命名",
113
+ unhideForEveryone: "對所有人取消隱藏",
114
+ hideFromEveryone: "對所有人隱藏",
115
+ removeFromMyList: "從我的清單移除",
116
+ delete: "刪除",
117
+ showLess: "顯示較少",
118
+ showMore: "顯示更多",
119
+ },
88
120
  "es-ES": {
89
121
  title: "Extensiones",
90
122
  description: "Crea pequeñas apps aisladas que pueden leer datos de la app, llamar acciones y guardar su propio estado.",