smart-admin-web 10.15.0 → 10.20.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.
Files changed (432) hide show
  1. package/README.md +1 -1
  2. package/dist/api/index.d.ts +4 -2
  3. package/dist/api/index.js +1 -1
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/schema.d.ts +39 -5
  6. package/dist/assets/icons/ph-subset.json.js +5 -5
  7. package/dist/components/AppIcon.vue.js +9 -9
  8. package/dist/components/AppIcon.vue.js.map +1 -1
  9. package/dist/components/AppWatermark.vue.d.ts +14 -0
  10. package/dist/components/AppWatermark.vue.js +38 -0
  11. package/dist/components/AppWatermark.vue.js.map +1 -0
  12. package/dist/components/AppWatermark2.vue.js +5 -0
  13. package/dist/components/AppWatermark2.vue.js.map +1 -0
  14. package/dist/components/Chart/PieChart.vue.d.ts +1 -1
  15. package/dist/components/Chart/echarts.js +15 -20
  16. package/dist/components/Chart/echarts.js.map +1 -1
  17. package/dist/components/CronEditor/index.vue.js +1 -1
  18. package/dist/components/CronEditor/index2.vue.js +2 -1
  19. package/dist/components/CronEditor/index2.vue.js.map +1 -1
  20. package/dist/components/DetailPage/index.vue.js +2 -2
  21. package/dist/components/DetailPage/index2.vue.js.map +1 -1
  22. package/dist/components/DictTag/index.vue.js.map +1 -1
  23. package/dist/components/ErrorBoundary/index.vue.js +2 -2
  24. package/dist/components/ErrorBoundary/index2.vue.js +1 -1
  25. package/dist/components/ErrorBoundary/index2.vue.js.map +1 -1
  26. package/dist/components/FormContainer/index.vue.js +91 -56
  27. package/dist/components/FormContainer/index.vue.js.map +1 -1
  28. package/dist/components/ImportWizard/index.vue.js +1 -1
  29. package/dist/components/ImportWizard/index2.vue.js +44 -41
  30. package/dist/components/ImportWizard/index2.vue.js.map +1 -1
  31. package/dist/components/MenuSearch.vue.js +2 -2
  32. package/dist/components/MenuSearch2.vue.js +19 -18
  33. package/dist/components/MenuSearch2.vue.js.map +1 -1
  34. package/dist/components/PasswordStrength/index.vue.js +2 -2
  35. package/dist/components/PasswordStrength/index2.vue.js +20 -18
  36. package/dist/components/PasswordStrength/index2.vue.js.map +1 -1
  37. package/dist/components/TableTotal/index.vue.d.ts +6 -0
  38. package/dist/components/{SelectTable → TableTotal}/index.vue.js +1 -1
  39. package/dist/components/TableTotal/index2.vue.js +16 -0
  40. package/dist/components/TableTotal/index2.vue.js.map +1 -0
  41. package/dist/components/TableZoomButton/index.vue.js.map +1 -1
  42. package/dist/components/UserPicker/index.vue.js +2 -2
  43. package/dist/components/UserPicker/index2.vue.js +176 -117
  44. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  45. package/dist/composables/useBatchDelete.js.map +1 -1
  46. package/dist/composables/useLayoutMenu.js +17 -16
  47. package/dist/composables/useLayoutMenu.js.map +1 -1
  48. package/dist/composables/useModule.js +39 -29
  49. package/dist/composables/useModule.js.map +1 -1
  50. package/dist/composables/useShellBreakpoint.d.ts +19 -0
  51. package/dist/composables/useShellBreakpoint.js +37 -0
  52. package/dist/composables/useShellBreakpoint.js.map +1 -0
  53. package/dist/composables/useSite.d.ts +15 -0
  54. package/dist/composables/useSite.js +16 -14
  55. package/dist/composables/useSite.js.map +1 -1
  56. package/dist/composables/useTabTitle.js.map +1 -1
  57. package/dist/composables/useTableTitle.d.ts +6 -0
  58. package/dist/composables/useTableTitle.js +11 -0
  59. package/dist/composables/useTableTitle.js.map +1 -0
  60. package/dist/composables/useTableZoom.d.ts +5 -0
  61. package/dist/composables/useTableZoom.js.map +1 -1
  62. package/dist/composables/useTheme.d.ts +2 -2
  63. package/dist/composables/useTheme.js +23 -20
  64. package/dist/composables/useTheme.js.map +1 -1
  65. package/dist/createSmartAdmin.d.ts +12 -2
  66. package/dist/createSmartAdmin.js +72 -60
  67. package/dist/createSmartAdmin.js.map +1 -1
  68. package/dist/index.d.ts +5 -2
  69. package/dist/index.js +219 -205
  70. package/dist/index.js.map +1 -1
  71. package/dist/layouts/AccentPicker.vue.js +8 -0
  72. package/dist/layouts/AccentPicker.vue.js.map +1 -0
  73. package/dist/layouts/AccentPicker2.vue.js +131 -0
  74. package/dist/layouts/AccentPicker2.vue.js.map +1 -0
  75. package/dist/layouts/AppHeader.vue.d.ts +8 -1
  76. package/dist/layouts/AppHeader.vue.js +2 -2
  77. package/dist/layouts/AppHeader2.vue.js +317 -235
  78. package/dist/layouts/AppHeader2.vue.js.map +1 -1
  79. package/dist/layouts/NoticeBell.vue.js +2 -2
  80. package/dist/layouts/NoticeBell2.vue.js +1 -1
  81. package/dist/layouts/NoticeBell2.vue.js.map +1 -1
  82. package/dist/layouts/PersonalLayout.vue.js +2 -2
  83. package/dist/layouts/PersonalLayout2.vue.js +69 -47
  84. package/dist/layouts/PersonalLayout2.vue.js.map +1 -1
  85. package/dist/layouts/SettingsDrawer.vue.js +3 -3
  86. package/dist/layouts/SettingsDrawer2.vue.js +261 -325
  87. package/dist/layouts/SettingsDrawer2.vue.js.map +1 -1
  88. package/dist/layouts/TabsBar.vue.js +2 -2
  89. package/dist/layouts/TabsBar2.vue.js +97 -69
  90. package/dist/layouts/TabsBar2.vue.js.map +1 -1
  91. package/dist/layouts/components/SideNav.vue.d.ts +3 -0
  92. package/dist/layouts/components/SideNav.vue.js +1 -1
  93. package/dist/layouts/components/SideNav2.vue.js +54 -26
  94. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  95. package/dist/layouts/default.vue.js +1 -1
  96. package/dist/layouts/default2.vue.js +170 -140
  97. package/dist/layouts/default2.vue.js.map +1 -1
  98. package/dist/lib/loginHero.d.ts +2 -2
  99. package/dist/lib/loginHero.js.map +1 -1
  100. package/dist/lib/runtime.js +1 -1
  101. package/dist/lib/watermark.d.ts +110 -0
  102. package/dist/lib/watermark.js +151 -0
  103. package/dist/lib/watermark.js.map +1 -0
  104. package/dist/locales/en-US.d.ts +221 -15
  105. package/dist/locales/en-US.js +230 -21
  106. package/dist/locales/en-US.js.map +1 -1
  107. package/dist/locales/kernelMenuTitles.d.ts +1 -0
  108. package/dist/locales/kernelMenuTitles.js +128 -0
  109. package/dist/locales/kernelMenuTitles.js.map +1 -0
  110. package/dist/locales/menuTitle.d.ts +3 -0
  111. package/dist/locales/menuTitle.js +14 -12
  112. package/dist/locales/menuTitle.js.map +1 -1
  113. package/dist/locales/zh-CN.d.ts +221 -15
  114. package/dist/locales/zh-CN.js +238 -28
  115. package/dist/locales/zh-CN.js.map +1 -1
  116. package/dist/router/index.js +41 -32
  117. package/dist/router/index.js.map +1 -1
  118. package/dist/router/namedPage.d.ts +4 -0
  119. package/dist/router/namedPage.js +7 -7
  120. package/dist/router/namedPage.js.map +1 -1
  121. package/dist/router/viewRegistry.js +8 -8
  122. package/dist/router/viewRegistry.js.map +1 -1
  123. package/dist/stores/app.d.ts +0 -12
  124. package/dist/stores/app.js +11 -12
  125. package/dist/stores/app.js.map +1 -1
  126. package/dist/stores/tabs.js.map +1 -1
  127. package/dist/stores/user.d.ts +10 -0
  128. package/dist/stores/user.js.map +1 -1
  129. package/dist/style.css +1 -1
  130. package/dist/theme/accentTokens.d.ts +27 -0
  131. package/dist/theme/accentTokens.js +54 -0
  132. package/dist/theme/accentTokens.js.map +1 -0
  133. package/dist/theme/accents.d.ts +21 -1
  134. package/dist/theme/accents.js +11 -2
  135. package/dist/theme/accents.js.map +1 -1
  136. package/dist/theme/mix.d.ts +58 -7
  137. package/dist/theme/mix.js +115 -30
  138. package/dist/theme/mix.js.map +1 -1
  139. package/dist/theme/naive-theme.d.ts +5 -2
  140. package/dist/theme/naive-theme.js +405 -75
  141. package/dist/theme/naive-theme.js.map +1 -1
  142. package/dist/utils/jwt.d.ts +8 -0
  143. package/dist/utils/jwt.js +14 -0
  144. package/dist/utils/jwt.js.map +1 -0
  145. package/dist/utils/menuIcon.d.ts +2 -0
  146. package/dist/utils/menuIcon.js +8 -0
  147. package/dist/utils/menuIcon.js.map +1 -0
  148. package/dist/utils/oauthBrand.js.map +1 -1
  149. package/dist/utils/tableFilter.d.ts +88 -0
  150. package/dist/utils/tableFilter.js +116 -0
  151. package/dist/utils/tableFilter.js.map +1 -0
  152. package/dist/utils/tableToolbar.d.ts +18 -0
  153. package/dist/utils/tableToolbar.js +11 -0
  154. package/dist/utils/tableToolbar.js.map +1 -0
  155. package/dist/utils/treeFilter.d.ts +20 -0
  156. package/dist/utils/treeFilter.js +24 -0
  157. package/dist/utils/treeFilter.js.map +1 -0
  158. package/dist/views/dashboard/ShortcutPicker.vue.js +1 -1
  159. package/dist/views/dashboard/ShortcutPicker2.vue.js +73 -48
  160. package/dist/views/dashboard/ShortcutPicker2.vue.js.map +1 -1
  161. package/dist/views/dashboard/biz.vue.js +1 -1
  162. package/dist/views/dashboard/biz2.vue.js +310 -257
  163. package/dist/views/dashboard/biz2.vue.js.map +1 -1
  164. package/dist/views/dashboard/workbench.vue.js +2 -2
  165. package/dist/views/dashboard/workbench2.vue.js +141 -155
  166. package/dist/views/dashboard/workbench2.vue.js.map +1 -1
  167. package/dist/views/embed/iframe.vue.js +2 -2
  168. package/dist/views/embed/iframe2.vue.js +22 -15
  169. package/dist/views/embed/iframe2.vue.js.map +1 -1
  170. package/dist/views/error/404.vue.js +2 -2
  171. package/dist/views/error/4042.vue.js +33 -24
  172. package/dist/views/error/4042.vue.js.map +1 -1
  173. package/dist/views/error/BootError.vue.js +1 -1
  174. package/dist/views/error/BootError2.vue.js +59 -48
  175. package/dist/views/error/BootError2.vue.js.map +1 -1
  176. package/dist/views/error/MissingRoute.vue.js +2 -2
  177. package/dist/views/error/MissingRoute2.vue.js +34 -15
  178. package/dist/views/error/MissingRoute2.vue.js.map +1 -1
  179. package/dist/views/login/LoginForm.vue.d.ts +7 -1
  180. package/dist/views/login/LoginForm.vue.js +2 -2
  181. package/dist/views/login/LoginForm2.vue.js +580 -488
  182. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  183. package/dist/views/login/components/LoginDesk.vue.d.ts +36 -0
  184. package/dist/views/login/components/LoginDesk.vue.js +9 -0
  185. package/dist/views/login/components/LoginDesk.vue.js.map +1 -0
  186. package/dist/views/login/components/LoginDesk2.vue.js +100 -0
  187. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -0
  188. package/dist/views/login/components/LoginHeroPanel.vue.js +3 -3
  189. package/dist/views/login/components/LoginHeroPanel2.vue.js +34 -39
  190. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
  191. package/dist/views/login/index.vue.js +1 -1
  192. package/dist/views/login/index2.vue.js +141 -71
  193. package/dist/views/login/index2.vue.js.map +1 -1
  194. package/dist/views/login/layout.d.ts +11 -0
  195. package/dist/views/login/layout.js +27 -0
  196. package/dist/views/login/layout.js.map +1 -0
  197. package/dist/views/mfa/index.vue.js +2 -2
  198. package/dist/views/mfa/index2.vue.js +367 -321
  199. package/dist/views/mfa/index2.vue.js.map +1 -1
  200. package/dist/views/module/index.vue.js +2 -2
  201. package/dist/views/module/index2.vue.js +132 -99
  202. package/dist/views/module/index2.vue.js.map +1 -1
  203. package/dist/views/oauth/callback.vue.js +2 -2
  204. package/dist/views/oauth/callback2.vue.js +65 -51
  205. package/dist/views/oauth/callback2.vue.js.map +1 -1
  206. package/dist/views/personal/bindings.vue.js +2 -2
  207. package/dist/views/personal/bindings2.vue.js +98 -94
  208. package/dist/views/personal/bindings2.vue.js.map +1 -1
  209. package/dist/views/personal/notice2.vue.js +103 -76
  210. package/dist/views/personal/notice2.vue.js.map +1 -1
  211. package/dist/views/personal/password2.vue.js +47 -40
  212. package/dist/views/personal/password2.vue.js.map +1 -1
  213. package/dist/views/personal/profile.vue.js +3 -3
  214. package/dist/views/personal/profile2.vue.js +24 -18
  215. package/dist/views/personal/profile2.vue.js.map +1 -1
  216. package/dist/views/personal/security.vue.js +2 -2
  217. package/dist/views/personal/security2.vue.js +65 -53
  218. package/dist/views/personal/security2.vue.js.map +1 -1
  219. package/dist/views/personal/sessions.vue.js +2 -2
  220. package/dist/views/personal/sessions2.vue.js +67 -62
  221. package/dist/views/personal/sessions2.vue.js.map +1 -1
  222. package/dist/views/system/ai-model/components/ProviderCard.vue.js +2 -2
  223. package/dist/views/system/ai-model/components/ProviderCard2.vue.js +142 -130
  224. package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -1
  225. package/dist/views/system/ai-model/components/ProviderForm.vue.js +2 -2
  226. package/dist/views/system/ai-model/components/ProviderForm2.vue.js +71 -70
  227. package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -1
  228. package/dist/views/system/ai-model/index.vue.js +2 -2
  229. package/dist/views/system/ai-model/index2.vue.js +99 -99
  230. package/dist/views/system/ai-model/index2.vue.js.map +1 -1
  231. package/dist/views/system/ai-model/presets.d.ts +1 -1
  232. package/dist/views/system/ai-model/presets.js +18 -18
  233. package/dist/views/system/ai-model/presets.js.map +1 -1
  234. package/dist/views/system/ai-usage/index.vue.js +2 -2
  235. package/dist/views/system/ai-usage/index2.vue.js +356 -258
  236. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  237. package/dist/views/system/api-docs/index.vue.js +5 -2
  238. package/dist/views/system/api-docs/index.vue.js.map +1 -1
  239. package/dist/views/system/api-docs/index2.vue.js +92 -42
  240. package/dist/views/system/api-docs/index2.vue.js.map +1 -1
  241. package/dist/views/system/cache/index.vue.js +2 -2
  242. package/dist/views/system/cache/index2.vue.js +74 -80
  243. package/dist/views/system/cache/index2.vue.js.map +1 -1
  244. package/dist/views/system/config/components/AdminMock.vue.js +2 -2
  245. package/dist/views/system/config/components/AdminMock2.vue.js +60 -43
  246. package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -1
  247. package/dist/views/system/config/components/AdvancedSection.vue.js +5 -2
  248. package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -1
  249. package/dist/views/system/config/components/AdvancedSection2.vue.js +98 -70
  250. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
  251. package/dist/views/system/config/components/BrandSection.vue.js +2 -2
  252. package/dist/views/system/config/components/BrandSection2.vue.js +121 -119
  253. package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -1
  254. package/dist/views/system/config/components/CfgGroup.vue.js +3 -3
  255. package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -1
  256. package/dist/views/system/config/components/CfgRow.vue.js +1 -1
  257. package/dist/views/system/config/components/CfgRow2.vue.js +24 -23
  258. package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -1
  259. package/dist/views/system/config/components/CfgSegment.vue.js +1 -1
  260. package/dist/views/system/config/components/CfgSegment2.vue.js +16 -15
  261. package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -1
  262. package/dist/views/system/config/components/ConfigFormModal.vue.js +2 -2
  263. package/dist/views/system/config/components/ConfigFormModal2.vue.js +35 -33
  264. package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
  265. package/dist/views/system/config/components/JobSection.vue.js +2 -2
  266. package/dist/views/system/config/components/JobSection2.vue.js +46 -44
  267. package/dist/views/system/config/components/JobSection2.vue.js.map +1 -1
  268. package/dist/views/system/config/components/LoginMock.vue.js +3 -3
  269. package/dist/views/system/config/components/LoginMock2.vue.js +83 -72
  270. package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -1
  271. package/dist/views/system/config/components/LogoCropper.vue.js +1 -1
  272. package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -1
  273. package/dist/views/system/config/components/LogoEditor.vue.js +2 -2
  274. package/dist/views/system/config/components/LogoEditor2.vue.js +11 -13
  275. package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -1
  276. package/dist/views/system/config/components/ProviderSheet.vue.js +3 -3
  277. package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -1
  278. package/dist/views/system/config/components/SectionLayout.vue.d.ts +4 -2
  279. package/dist/views/system/config/components/SectionLayout.vue.js +2 -2
  280. package/dist/views/system/config/components/SectionLayout2.vue.js +51 -27
  281. package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -1
  282. package/dist/views/system/config/components/SecuritySection.vue.js +2 -2
  283. package/dist/views/system/config/components/SecuritySection2.vue.js +207 -206
  284. package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -1
  285. package/dist/views/system/config/components/SensitiveSection.vue.js +2 -2
  286. package/dist/views/system/config/components/SensitiveSection2.vue.js +107 -102
  287. package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -1
  288. package/dist/views/system/config/components/UploadSection.vue.js +2 -2
  289. package/dist/views/system/config/components/UploadSection2.vue.js +86 -77
  290. package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -1
  291. package/dist/views/system/config/components/WatermarkSection.vue.js +8 -0
  292. package/dist/views/system/config/components/WatermarkSection.vue.js.map +1 -0
  293. package/dist/views/system/config/components/WatermarkSection2.vue.js +284 -0
  294. package/dist/views/system/config/components/WatermarkSection2.vue.js.map +1 -0
  295. package/dist/views/system/config/draft.d.ts +2 -2
  296. package/dist/views/system/config/draft.js.map +1 -1
  297. package/dist/views/system/config/groups.d.ts +4 -1
  298. package/dist/views/system/config/groups.js +54 -49
  299. package/dist/views/system/config/groups.js.map +1 -1
  300. package/dist/views/system/config/index.vue.js +3 -2
  301. package/dist/views/system/config/index.vue.js.map +1 -1
  302. package/dist/views/system/config/index2.vue.js +173 -148
  303. package/dist/views/system/config/index2.vue.js.map +1 -1
  304. package/dist/views/system/config/layoutMode.d.ts +23 -0
  305. package/dist/views/system/config/layoutMode.js +28 -0
  306. package/dist/views/system/config/layoutMode.js.map +1 -0
  307. package/dist/views/system/dict/index.vue.js +2 -2
  308. package/dist/views/system/dict/index2.vue.js +471 -366
  309. package/dist/views/system/dict/index2.vue.js.map +1 -1
  310. package/dist/views/system/file/index2.vue.js +91 -76
  311. package/dist/views/system/file/index2.vue.js.map +1 -1
  312. package/dist/views/system/job/index.vue.js +3 -3
  313. package/dist/views/system/job/index2.vue.js +897 -828
  314. package/dist/views/system/job/index2.vue.js.map +1 -1
  315. package/dist/views/system/job-log/components/AttemptTable.vue.d.ts +8 -0
  316. package/dist/views/system/job-log/components/AttemptTable.vue.js +5 -0
  317. package/dist/views/system/job-log/components/AttemptTable.vue.js.map +1 -0
  318. package/dist/views/system/job-log/components/AttemptTable2.vue.js +54 -0
  319. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -0
  320. package/dist/views/system/job-log/index.vue.js +2 -2
  321. package/dist/views/system/job-log/index2.vue.js +193 -207
  322. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  323. package/dist/views/system/job-log/runStatus.d.ts +13 -0
  324. package/dist/views/system/job-log/runStatus.js +26 -0
  325. package/dist/views/system/job-log/runStatus.js.map +1 -0
  326. package/dist/views/system/job-monitor/index.vue.js +2 -2
  327. package/dist/views/system/job-monitor/index2.vue.js +172 -180
  328. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  329. package/dist/views/system/log/exception/index.vue.js +2 -2
  330. package/dist/views/system/log/exception/index2.vue.js +135 -96
  331. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  332. package/dist/views/system/log/login/index2.vue.js +62 -41
  333. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  334. package/dist/views/system/log/op/index.vue.js +2 -2
  335. package/dist/views/system/log/op/index2.vue.js +200 -162
  336. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  337. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  338. package/dist/views/system/menu/components/ButtonManager2.vue.js +206 -190
  339. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  340. package/dist/views/system/menu/components/MenuFormModal.vue.js +2 -2
  341. package/dist/views/system/menu/components/MenuFormModal2.vue.js +127 -118
  342. package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -1
  343. package/dist/views/system/menu/index.vue.js +1 -1
  344. package/dist/views/system/menu/index2.vue.js +216 -183
  345. package/dist/views/system/menu/index2.vue.js.map +1 -1
  346. package/dist/views/system/module/index.vue.js +1 -1
  347. package/dist/views/system/module/index2.vue.js +177 -144
  348. package/dist/views/system/module/index2.vue.js.map +1 -1
  349. package/dist/views/system/monitor/index.vue.js +2 -2
  350. package/dist/views/system/monitor/index2.vue.js +134 -149
  351. package/dist/views/system/monitor/index2.vue.js.map +1 -1
  352. package/dist/views/system/notice/index.vue.js +1 -1
  353. package/dist/views/system/notice/index2.vue.js +209 -181
  354. package/dist/views/system/notice/index2.vue.js.map +1 -1
  355. package/dist/views/system/org/index.vue.js +1 -1
  356. package/dist/views/system/org/index2.vue.js +278 -248
  357. package/dist/views/system/org/index2.vue.js.map +1 -1
  358. package/dist/views/system/position/index.vue.js +5 -2
  359. package/dist/views/system/position/index.vue.js.map +1 -1
  360. package/dist/views/system/position/index2.vue.js +128 -92
  361. package/dist/views/system/position/index2.vue.js.map +1 -1
  362. package/dist/views/system/recycle/index.vue.js +2 -2
  363. package/dist/views/system/recycle/index2.vue.js +90 -67
  364. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  365. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +20 -0
  366. package/dist/views/system/role/components/GrantMenuSheet.vue.js +8 -0
  367. package/dist/views/system/role/components/GrantMenuSheet.vue.js.map +1 -0
  368. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +117 -0
  369. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -0
  370. package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +6 -4
  371. package/dist/views/system/role/components/GrantMenuTable.vue.js +2 -2
  372. package/dist/views/system/role/components/GrantMenuTable2.vue.js +279 -177
  373. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  374. package/dist/views/system/role/components/MatchText.vue.d.ts +7 -0
  375. package/dist/views/system/role/components/MatchText.vue.js +8 -0
  376. package/dist/views/system/role/components/MatchText.vue.js.map +1 -0
  377. package/dist/views/system/role/components/MatchText2.vue.js +29 -0
  378. package/dist/views/system/role/components/MatchText2.vue.js.map +1 -0
  379. package/dist/views/system/role/components/grantMenuGroups.d.ts +36 -0
  380. package/dist/views/system/role/components/grantMenuGroups.js +110 -48
  381. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  382. package/dist/views/system/role/index.vue.js +5 -2
  383. package/dist/views/system/role/index.vue.js.map +1 -1
  384. package/dist/views/system/role/index2.vue.js +181 -165
  385. package/dist/views/system/role/index2.vue.js.map +1 -1
  386. package/dist/views/system/session/index2.vue.js +75 -49
  387. package/dist/views/system/session/index2.vue.js.map +1 -1
  388. package/dist/views/system/user/components/ResetPasswordModal.vue.js +2 -2
  389. package/dist/views/system/user/components/ResetPasswordModal2.vue.js +2 -0
  390. package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -1
  391. package/dist/views/system/user/components/UserFormModal.vue.js +2 -2
  392. package/dist/views/system/user/components/UserFormModal2.vue.js +77 -76
  393. package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -1
  394. package/dist/views/system/user/index.vue.js +2 -2
  395. package/dist/views/system/user/index2.vue.js +362 -275
  396. package/dist/views/system/user/index2.vue.js.map +1 -1
  397. package/package.json +3 -5
  398. package/dist/components/SelectTable/index.vue.d.ts +0 -76
  399. package/dist/components/SelectTable/index2.vue.js +0 -256
  400. package/dist/components/SelectTable/index2.vue.js.map +0 -1
  401. package/dist/composables/useTableRowSort.d.ts +0 -20
  402. package/dist/composables/useTableRowSort.js +0 -59
  403. package/dist/composables/useTableRowSort.js.map +0 -1
  404. package/dist/layouts/LayoutModeCards.vue.js +0 -8
  405. package/dist/layouts/LayoutModeCards.vue.js.map +0 -1
  406. package/dist/layouts/LayoutModeCards2.vue.js +0 -67
  407. package/dist/layouts/LayoutModeCards2.vue.js.map +0 -1
  408. package/dist/layouts/SettingRow.vue.d.ts +0 -16
  409. package/dist/layouts/SettingRow.vue.js +0 -8
  410. package/dist/layouts/SettingRow.vue.js.map +0 -1
  411. package/dist/layouts/SettingRow2.vue.js +0 -23
  412. package/dist/layouts/SettingRow2.vue.js.map +0 -1
  413. package/dist/views/login/skins/AuroraGlass.vue.js +0 -8
  414. package/dist/views/login/skins/AuroraGlass.vue.js.map +0 -1
  415. package/dist/views/login/skins/AuroraGlass2.vue.js +0 -80
  416. package/dist/views/login/skins/AuroraGlass2.vue.js.map +0 -1
  417. package/dist/views/login/skins/SplitPanel.vue.d.ts +0 -3
  418. package/dist/views/login/skins/SplitPanel.vue.js +0 -8
  419. package/dist/views/login/skins/SplitPanel.vue.js.map +0 -1
  420. package/dist/views/login/skins/SplitPanel2.vue.js +0 -65
  421. package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
  422. package/dist/views/login/skins/Spotlight.vue.d.ts +0 -3
  423. package/dist/views/login/skins/Spotlight.vue.js +0 -8
  424. package/dist/views/login/skins/Spotlight.vue.js.map +0 -1
  425. package/dist/views/login/skins/Spotlight2.vue.js +0 -36
  426. package/dist/views/login/skins/Spotlight2.vue.js.map +0 -1
  427. package/dist/views/login/skins.d.ts +0 -8
  428. package/dist/views/login/skins.js +0 -13
  429. package/dist/views/login/skins.js.map +0 -1
  430. /package/dist/components/{SelectTable → TableTotal}/index.vue.js.map +0 -0
  431. /package/dist/layouts/{LayoutModeCards.vue.d.ts → AccentPicker.vue.d.ts} +0 -0
  432. /package/dist/views/{login/skins/AuroraGlass.vue.d.ts → system/config/components/WatermarkSection.vue.d.ts} +0 -0
@@ -79,10 +79,12 @@ const e = {
79
79
  comfortable: "Comfortable",
80
80
  compact: "Compact",
81
81
  language: "Language",
82
- loginStyle: "Login style",
83
82
  collapse: "Collapse",
84
83
  openMenu: "Open menu",
85
84
  switchModule: "Switch app",
85
+ appearance: "Appearance",
86
+ back: "Back",
87
+ forward: "Forward",
86
88
  logout: "Log out",
87
89
  personalCenter: "Account",
88
90
  clearCache: "Clear cache",
@@ -112,6 +114,17 @@ const e = {
112
114
  auto: "Auto",
113
115
  themeColor: "Theme color",
114
116
  custom: "Custom",
117
+ accentName: {
118
+ blue: "Blue",
119
+ indigo: "Indigo",
120
+ purple: "Purple",
121
+ teal: "Teal",
122
+ green: "Green",
123
+ graphite: "Graphite",
124
+ custom: "Custom color"
125
+ },
126
+ accentDemoButton: "Button",
127
+ accentDemoLink: "Link text",
115
128
  layout: "Layout",
116
129
  layoutVertical: "Vertical",
117
130
  layoutVerticalMix: "Vertical Mix",
@@ -120,6 +133,9 @@ const e = {
120
133
  layoutTopHybridSidebarFirst: "Top Hybrid (Sidebar)",
121
134
  layoutTopHybridHeaderFirst: "Top Hybrid (Header)",
122
135
  interface: "Interface",
136
+ formStyle: "Form style",
137
+ formStyleModal: "Dialog",
138
+ formStyleDrawer: "Drawer",
123
139
  showBreadcrumb: "Breadcrumb",
124
140
  showTabs: "Tabs",
125
141
  fixedHeader: "Fixed header",
@@ -127,19 +143,17 @@ const e = {
127
143
  transitionNone: "None",
128
144
  transitionFade: "Fade",
129
145
  transitionFadeSlide: "Fade slide",
130
- grayscale: "Grayscale",
131
- watermark: "Watermark",
132
- watermarkText: "Watermark text",
133
- watermarkPlaceholder: "Enter watermark text",
134
- formStyle: "Form style",
135
- formStyleModal: "Modal",
136
- formStyleDrawer: "Drawer",
137
146
  resetConfirm: "Reset all settings to default?",
138
147
  copyConfig: "Copy config",
139
148
  configCopied: "Current config copied (paste into DEFAULTS in stores/app.ts to make it the new default)",
140
149
  searchPlaceholder: "Search menu…",
141
150
  searchEmpty: "No matching menu",
142
- searchHint: "↑↓ navigate · ↵ open · Esc close"
151
+ searchHint: "↑↓ navigate · ↵ open · Esc close",
152
+ descBreadcrumb: "Show the page path in the header",
153
+ descTabs: "Keep opened pages and switch between them",
154
+ descFixedHeader: "Pin the header with frosted glass",
155
+ descPageTransition: "Animation when switching pages",
156
+ descCollapse: "Hide the sidebar, more room for content"
143
157
  },
144
158
  tabs: {
145
159
  refresh: "Refresh",
@@ -201,9 +215,9 @@ const e = {
201
215
  ssoDingtalk: "DingTalk",
202
216
  sso: "SSO",
203
217
  ssoComingSoon: "Third-party login coming soon",
204
- skinAurora: "Aurora",
205
- skinSplit: "Split",
206
- skinSpotlight: "Spotlight"
218
+ layoutLabel: "Switch sign-in layout",
219
+ layoutToSolo: "Switch to single column",
220
+ layoutToSplit: "Switch to two columns"
207
221
  },
208
222
  module: {
209
223
  choose: "Choose app",
@@ -228,6 +242,7 @@ const e = {
228
242
  editTitle: "Edit app",
229
243
  deleteConfirm: 'Delete app "{title}"?',
230
244
  disableConfirm: 'Disable app "{title}"? It will disappear from the portal',
245
+ builtinNoDisable: "The built-in app cannot be disabled",
231
246
  saved: "Saved",
232
247
  deleted: "Deleted"
233
248
  },
@@ -286,6 +301,139 @@ const e = {
286
301
  saved: "Saved",
287
302
  deleted: "Deleted"
288
303
  },
304
+ // Translations of the kernel seed menu / app titles (DefaultMenuSeed / DefaultModuleSeed); the title -> key table is locales/kernelMenuTitles.ts
305
+ menuTitle: {
306
+ module: {
307
+ system: "System",
308
+ business: "Business Center"
309
+ },
310
+ catalog: {
311
+ org: "Organization",
312
+ ops: "System Operations",
313
+ schedule: "Job Scheduling",
314
+ audit: "Audit Logs",
315
+ ai: "AI Management"
316
+ },
317
+ page: {
318
+ workbench: "Workbench",
319
+ org: "Organizations",
320
+ position: "Positions",
321
+ user: "Users",
322
+ role: "Roles",
323
+ config: "System Settings",
324
+ dict: "Dictionaries",
325
+ menu: "Menus",
326
+ module: "Modules",
327
+ notice: "Notifications",
328
+ recycle: "Recycle Bin",
329
+ monitor: "Server Monitor",
330
+ cache: "Cache",
331
+ apiDocs: "API Docs",
332
+ job: "Scheduled Jobs",
333
+ jobLog: "Job Runs",
334
+ jobMonitor: "Job Monitor",
335
+ loginLog: "Login Logs",
336
+ opLog: "Operation Logs",
337
+ exceptionLog: "Exception Logs",
338
+ session: "Online Sessions",
339
+ file: "Files",
340
+ aiModel: "AI Models",
341
+ aiUsage: "AI Usage"
342
+ },
343
+ button: {
344
+ orgQuery: "Org - Query",
345
+ orgCreate: "Org - Create",
346
+ orgUpdate: "Org - Update",
347
+ orgDelete: "Org - Delete",
348
+ orgCopy: "Org - Copy",
349
+ positionQuery: "Position - Query",
350
+ positionCreate: "Position - Create",
351
+ positionUpdate: "Position - Update",
352
+ positionDelete: "Position - Delete",
353
+ userQuery: "User - Query",
354
+ userCreate: "User - Create",
355
+ userUpdate: "User - Update",
356
+ userDelete: "User - Delete",
357
+ userResetPassword: "User - Reset Password",
358
+ userToggle: "User - Enable / Disable",
359
+ userImport: "User - Import",
360
+ userExport: "User - Export",
361
+ roleQuery: "Role - Query",
362
+ roleCreate: "Role - Create",
363
+ roleUpdate: "Role - Update",
364
+ roleDelete: "Role - Delete",
365
+ roleGrantMenus: "Role - Grant Menus",
366
+ roleDataScope: "Role - Data Scope",
367
+ roleGrantUsers: "Role - Grant Users",
368
+ ping: "Connectivity Probe",
369
+ configQuery: "Config - Query",
370
+ configCreate: "Config - Create",
371
+ configUpdate: "Config - Update",
372
+ configDelete: "Config - Delete",
373
+ configUploadLogo: "Config - Upload Logo",
374
+ sensitiveQuery: "Sensitive Action - Query",
375
+ sensitiveCreate: "Sensitive Action - Create",
376
+ sensitiveDelete: "Sensitive Action - Delete",
377
+ mfaClear: "MFA - Unbind User Authenticator",
378
+ dictTypeQuery: "Dict Type - Query",
379
+ dictTypeCreate: "Dict Type - Create",
380
+ dictTypeUpdate: "Dict Type - Update",
381
+ dictTypeDelete: "Dict Type - Delete",
382
+ dictItemQuery: "Dict Item - Query",
383
+ dictItemCreate: "Dict Item - Create",
384
+ dictItemUpdate: "Dict Item - Update",
385
+ dictItemDelete: "Dict Item - Delete",
386
+ menuQuery: "Menu - Query",
387
+ menuCreate: "Menu - Create",
388
+ menuUpdate: "Menu - Update",
389
+ menuDelete: "Menu - Delete",
390
+ moduleQuery: "Module - Query",
391
+ moduleCreate: "Module - Create",
392
+ moduleUpdate: "Module - Update",
393
+ moduleDelete: "Module - Delete",
394
+ noticeQuery: "Notice - Query",
395
+ noticePublish: "Notice - Publish",
396
+ noticeDelete: "Notice - Delete",
397
+ recycleQuery: "Recycle Bin - Query",
398
+ recyclePurge: "Recycle Bin - Delete Permanently",
399
+ recycleRestore: "Recycle Bin - Restore",
400
+ monitorQuery: "Server Monitor - Query",
401
+ cacheFlushAuth: "Cache - Clear Permissions",
402
+ cacheFlushDict: "Cache - Clear Dictionaries",
403
+ cacheFlushConfig: "Cache - Clear Configs",
404
+ cacheRebuildPortal: "Cache - Rebuild Portal Menus",
405
+ apiDocsView: "API Docs - View Contract",
406
+ jobQuery: "Job - Query",
407
+ jobCreate: "Job - Create",
408
+ jobUpdate: "Job - Update",
409
+ jobDelete: "Job - Delete",
410
+ jobToggle: "Job - Enable / Disable",
411
+ jobRun: "Job - Run Once",
412
+ jobLogQuery: "Job Run - Query",
413
+ jobLogKill: "Job Run - Terminate",
414
+ jobLogClear: "Job Run - Clear",
415
+ jobMonitorQuery: "Job Monitor - Query",
416
+ loginLogQuery: "Login Log - Query",
417
+ loginLogClear: "Login Log - Clear",
418
+ opLogQuery: "Operation Log - Query",
419
+ opLogClear: "Operation Log - Clear",
420
+ opLogExport: "Operation Log - Export",
421
+ exceptionLogQuery: "Exception Log - Query",
422
+ exceptionLogClear: "Exception Log - Clear",
423
+ sessionQuery: "Online Session - Query",
424
+ sessionKick: "Force Logout",
425
+ fileQuery: "File - Query",
426
+ fileUpload: "File - Upload",
427
+ fileDelete: "File - Delete",
428
+ fileDownload: "File - Download",
429
+ aiProviderQuery: "AI Provider - Query",
430
+ aiProviderCreate: "AI Provider - Create",
431
+ aiProviderUpdate: "AI Provider - Update",
432
+ aiProviderDelete: "AI Provider - Delete",
433
+ aiProviderTest: "AI Provider - Test Connection",
434
+ aiUsageQuery: "AI Usage - Query"
435
+ }
436
+ },
289
437
  iconPicker: {
290
438
  placeholder: "Select icon",
291
439
  title: "Select icon",
@@ -308,9 +456,13 @@ const e = {
308
456
  fixedNone: "Unpin",
309
457
  expand: "Expand",
310
458
  collapse: "Collapse",
459
+ total: "Total {n}",
311
460
  // TableZoomButton (blow a wide table up to the full viewport)
312
461
  zoom: "Zoom in",
313
- zoomExit: "Zoom out"
462
+ zoomExit: "Zoom out",
463
+ // Shown when a search condition is beyond what the backend can express (see utils/tableFilter.ts)
464
+ filterFallback: 'Some search conditions are not supported by the server (one condition per field; a date range needs "on or after" plus "on or before" joined by AND). Searching with the recognizable ones.',
465
+ filterTruncated: "More than 10000 rows: search only covers the first 10000. Use a more specific condition."
314
466
  },
315
467
  workbench: {
316
468
  welcome: "Hello, {name}",
@@ -358,6 +510,8 @@ const e = {
358
510
  passwordHint: "Leave blank to auto-generate one (shown once after creation)",
359
511
  org: "Org",
360
512
  allOrgs: "All",
513
+ // Narrow content area: the org tree moves into a drawer (toolbar button + drawer title)
514
+ orgFilter: "Organization",
361
515
  orgPlaceholder: "Select org (optional)",
362
516
  position: "Position",
363
517
  positionPlaceholder: "Select position (optional)",
@@ -536,8 +690,9 @@ const e = {
536
690
  leaveConfirm: "You have unsaved configuration changes. They will be lost if you leave.",
537
691
  tab: {
538
692
  brand: "Branding & login",
539
- security: "Security",
540
693
  signin: "Sign-in methods",
694
+ security: "Security",
695
+ watermark: "Watermark",
541
696
  sensitive: "Sensitive actions",
542
697
  upload: "Uploads",
543
698
  job: "Scheduled jobs",
@@ -553,6 +708,41 @@ const e = {
553
708
  copyrightPh: "Leave empty to show the site name",
554
709
  copyrightUrlHint: "When set, the footer copyright becomes a link"
555
710
  },
711
+ watermark: {
712
+ desc: "Overlaid on every page after sign-in, never on the login page.",
713
+ groupContent: "Content",
714
+ groupStyle: "Style",
715
+ enable: "Enable watermark",
716
+ enableHint: "Overlay faint text on every page so a leaked screenshot can be traced to a person",
717
+ content: "Content",
718
+ contentHint: "Each user sees their own details, in the order below",
719
+ contentEmpty: "Nothing is selected, so no watermark will show",
720
+ field: {
721
+ name: "Name",
722
+ account: "Account",
723
+ org: "Organization",
724
+ phone: "Phone (last 4)",
725
+ time: "Current time",
726
+ text: "Custom text"
727
+ },
728
+ text: "Custom text",
729
+ textHint: 'e.g. "Internal only"; the same for everyone',
730
+ textPlaceholder: "Up to {max} characters",
731
+ timeFormat: "Time format",
732
+ layout: "Layout",
733
+ layoutSingle: "One line",
734
+ layoutMulti: "Multi-line",
735
+ fontSize: "Font size",
736
+ opacity: "Strength",
737
+ opacityHint: "Higher is easier to read the mark, and harder to read the page",
738
+ rotate: "Angle",
739
+ density: "Density",
740
+ sparse: "Loose",
741
+ normal: "Normal",
742
+ dense: "Tight",
743
+ cross: "Staggered",
744
+ crossHint: "Offset alternate rows by half a tile so it is harder to crop out"
745
+ },
556
746
  logo: {
557
747
  title: "Logo",
558
748
  edit: "Change logo",
@@ -580,6 +770,8 @@ const e = {
580
770
  days: "{n} days",
581
771
  off: "(not enabled)",
582
772
  sep: ", ",
773
+ expand: "Expand",
774
+ collapse: "Collapse",
583
775
  req: {
584
776
  upper: "an uppercase letter",
585
777
  lower: "a lowercase letter",
@@ -832,6 +1024,7 @@ const e = {
832
1024
  // Dict management (master-detail: types on the left, items on the right)
833
1025
  dict: {
834
1026
  title: "Dictionaries",
1027
+ typeTitle: "Dictionary types",
835
1028
  code: "Type code",
836
1029
  name: "Type name",
837
1030
  searchName: "Search name",
@@ -845,7 +1038,7 @@ const e = {
845
1038
  typeSaved: "Saved",
846
1039
  typeDeleted: "Deleted",
847
1040
  itemsOf: 'Items of "{name}"',
848
- selectTypeHint: "Select a dict type on the left to manage its items",
1041
+ selectTypeHint: "Select a dict type above to manage its items",
849
1042
  itemLabel: "Label",
850
1043
  itemValue: "Value",
851
1044
  itemLabelRequired: "Enter a label",
@@ -855,7 +1048,10 @@ const e = {
855
1048
  editItemTitle: "Edit dict item",
856
1049
  itemDeleteConfirm: 'Delete dict item "{label}"?',
857
1050
  itemSaved: "Saved",
858
- itemDeleted: "Deleted"
1051
+ itemDeleted: "Deleted",
1052
+ codeImmutable: "The code cannot be changed after creation",
1053
+ itemsSheetTitle: "Dict items",
1054
+ selectItem: "Select"
859
1055
  },
860
1056
  // Org management (tree table + parent-org tree select)
861
1057
  org: {
@@ -870,6 +1066,7 @@ const e = {
870
1066
  parentPlaceholder: "Select parent (blank = top level)",
871
1067
  nameRequired: "Enter a name",
872
1068
  codePlaceholder: "Leave blank to auto-generate",
1069
+ codeImmutableHint: "The code cannot be changed after creation",
873
1070
  addChild: "Add child",
874
1071
  addTitle: "Add org",
875
1072
  editTitle: "Edit org",
@@ -1012,6 +1209,7 @@ const e = {
1012
1209
  name: "Name",
1013
1210
  sort: "Sort",
1014
1211
  codePlaceholder: "Auto-generated if empty",
1212
+ codeImmutableHint: "The code cannot be changed after creation",
1015
1213
  nameRequired: "Enter a name",
1016
1214
  addTitle: "Add position",
1017
1215
  editTitle: "Edit position",
@@ -1041,10 +1239,17 @@ const e = {
1041
1239
  deleted: "Deleted",
1042
1240
  grantMenus: "Grant menus",
1043
1241
  grantSaved: "Grants saved",
1044
- catalog: "Directory",
1045
- menuCol: "Menu",
1046
- buttonsCol: "Buttons",
1047
1242
  apiOnlyRow: "API only (no page)",
1243
+ grantSearch: "Search directories, pages or buttons",
1244
+ grantSearchClear: "Clear search",
1245
+ grantSelectAll: 'Select all in "{name}"',
1246
+ noButtons: "No button permissions",
1247
+ grantNoMatch: "No matching permissions",
1248
+ grantNoMatchElsewhere: "{count} directory(ies) match in other apps. Switch the app above to view them.",
1249
+ grantNoMenus: "No menus in this app",
1250
+ grantSummary: "Granted {on} / {total}",
1251
+ grantSummarySplit: "{pages} pages · {buttons} buttons",
1252
+ grantUnsaved: "Unsaved changes",
1048
1253
  dataScope: "Data scope",
1049
1254
  scopeType: "Scope type",
1050
1255
  customOrgs: "Custom orgs",
@@ -1227,6 +1432,7 @@ const e = {
1227
1432
  killed: "Kill requested",
1228
1433
  clear: "Clear logs",
1229
1434
  clearTitle: "Clear run logs",
1435
+ clearRange: "Range",
1230
1436
  clearAll: "All records",
1231
1437
  beforeDays: "Older than {n} days",
1232
1438
  clearHint: "Running records are always kept; this is a hard delete and cannot be undone.",
@@ -1315,6 +1521,7 @@ const e = {
1315
1521
  enabled: "Enabled",
1316
1522
  disabled: "Disabled",
1317
1523
  pendingConfigTip: "No API key configured yet — fill it in before saving",
1524
+ pendingConfig: "Pending setup",
1318
1525
  provider: {
1319
1526
  code: "Provider code",
1320
1527
  codePlaceholder: "Unique code, immutable after creation",
@@ -1356,7 +1563,8 @@ const e = {
1356
1563
  defaultTag: "Default",
1357
1564
  atLeastOne: "Keep at least one model",
1358
1565
  duplicateName: "Duplicate model name",
1359
- noDefault: "No default model set"
1566
+ noDefault: "No default model set",
1567
+ defaultUniqueHint: "The default model is unique across all providers: saving a new default here clears the default of any other provider."
1360
1568
  },
1361
1569
  test: {
1362
1570
  action: "Test connection",
@@ -1703,7 +1911,8 @@ const e = {
1703
1911
  fallbackLink: "Didn't open automatically? Click here",
1704
1912
  copyToken: "Copy my API token",
1705
1913
  copyTokenHint: "In the new tab, click Authentication → Bearer in the top right and paste the token you just copied",
1706
- tokenCopied: "Copied"
1914
+ tokenCopied: "Copied",
1915
+ tokenWarn: "The token is the credential of your current session and acts as your identity. Do not share it with anyone."
1707
1916
  },
1708
1917
  // User import / export: column titles + file names (mirror UserImportProfile / UserExportProfile columns)
1709
1918
  userExport: {