smart-admin-web 10.14.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 (538) hide show
  1. package/README.md +6 -6
  2. package/dist/api/index.d.ts +41 -2
  3. package/dist/api/index.js +36 -15
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/schema.d.ts +418 -6
  6. package/dist/assets/icons/ph-subset.json.js +7 -7
  7. package/dist/assets/smart-logo.svg.js +5 -0
  8. package/dist/assets/smart-logo.svg.js.map +1 -0
  9. package/dist/components/AppIcon.vue.js +9 -9
  10. package/dist/components/AppIcon.vue.js.map +1 -1
  11. package/dist/components/AppWatermark.vue.d.ts +14 -0
  12. package/dist/components/AppWatermark.vue.js +38 -0
  13. package/dist/components/AppWatermark.vue.js.map +1 -0
  14. package/dist/components/AppWatermark2.vue.js +5 -0
  15. package/dist/components/AppWatermark2.vue.js.map +1 -0
  16. package/dist/components/Chart/PieChart.vue.d.ts +1 -1
  17. package/dist/components/Chart/echarts.js +15 -20
  18. package/dist/components/Chart/echarts.js.map +1 -1
  19. package/dist/components/CronEditor/index.vue.js +1 -1
  20. package/dist/components/CronEditor/index2.vue.js +2 -1
  21. package/dist/components/CronEditor/index2.vue.js.map +1 -1
  22. package/dist/components/DetailPage/index.vue.js +2 -2
  23. package/dist/components/DetailPage/index2.vue.js.map +1 -1
  24. package/dist/components/DictTag/index.vue.js.map +1 -1
  25. package/dist/components/ErrorBoundary/index.vue.js +2 -2
  26. package/dist/components/ErrorBoundary/index2.vue.js +1 -1
  27. package/dist/components/ErrorBoundary/index2.vue.js.map +1 -1
  28. package/dist/components/FormContainer/index.vue.js +91 -56
  29. package/dist/components/FormContainer/index.vue.js.map +1 -1
  30. package/dist/components/ImportWizard/index.vue.js +1 -1
  31. package/dist/components/ImportWizard/index2.vue.js +44 -41
  32. package/dist/components/ImportWizard/index2.vue.js.map +1 -1
  33. package/dist/components/MenuSearch.vue.js +2 -2
  34. package/dist/components/MenuSearch2.vue.js +19 -18
  35. package/dist/components/MenuSearch2.vue.js.map +1 -1
  36. package/dist/components/PasswordStrength/index.vue.js +2 -2
  37. package/dist/components/PasswordStrength/index2.vue.js +20 -18
  38. package/dist/components/PasswordStrength/index2.vue.js.map +1 -1
  39. package/dist/components/SmartLogo.vue.d.ts +3 -0
  40. package/dist/components/SmartLogo.vue.js +1 -1
  41. package/dist/components/SmartLogo2.vue.js +22 -64
  42. package/dist/components/SmartLogo2.vue.js.map +1 -1
  43. package/dist/{views/system/config/components/GroupExtraConfig.vue.d.ts → components/TableTotal/index.vue.d.ts} +1 -4
  44. package/dist/components/{SelectTable → TableTotal}/index.vue.js +1 -1
  45. package/dist/components/TableTotal/index2.vue.js +16 -0
  46. package/dist/components/TableTotal/index2.vue.js.map +1 -0
  47. package/dist/components/TableZoomButton/index.vue.js.map +1 -1
  48. package/dist/components/UserPicker/index.vue.js +2 -2
  49. package/dist/components/UserPicker/index2.vue.js +176 -117
  50. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  51. package/dist/composables/useBatchDelete.js.map +1 -1
  52. package/dist/composables/useLayoutMenu.js +17 -16
  53. package/dist/composables/useLayoutMenu.js.map +1 -1
  54. package/dist/composables/useLoginHero.d.ts +2 -0
  55. package/dist/composables/useLoginHero.js +22 -0
  56. package/dist/composables/useLoginHero.js.map +1 -0
  57. package/dist/composables/useModule.js +39 -29
  58. package/dist/composables/useModule.js.map +1 -1
  59. package/dist/composables/usePageTitle.js +16 -14
  60. package/dist/composables/usePageTitle.js.map +1 -1
  61. package/dist/composables/useShellBreakpoint.d.ts +19 -0
  62. package/dist/composables/useShellBreakpoint.js +37 -0
  63. package/dist/composables/useShellBreakpoint.js.map +1 -0
  64. package/dist/composables/useSite.d.ts +20 -0
  65. package/dist/composables/useSite.js +18 -13
  66. package/dist/composables/useSite.js.map +1 -1
  67. package/dist/composables/useTabTitle.js.map +1 -1
  68. package/dist/composables/useTableTitle.d.ts +6 -0
  69. package/dist/composables/useTableTitle.js +11 -0
  70. package/dist/composables/useTableTitle.js.map +1 -0
  71. package/dist/composables/useTableZoom.d.ts +5 -0
  72. package/dist/composables/useTableZoom.js.map +1 -1
  73. package/dist/composables/useTheme.d.ts +2 -2
  74. package/dist/composables/useTheme.js +23 -20
  75. package/dist/composables/useTheme.js.map +1 -1
  76. package/dist/createSmartAdmin.d.ts +12 -2
  77. package/dist/createSmartAdmin.js +72 -60
  78. package/dist/createSmartAdmin.js.map +1 -1
  79. package/dist/index.d.ts +5 -2
  80. package/dist/index.js +223 -208
  81. package/dist/index.js.map +1 -1
  82. package/dist/layouts/AccentPicker.vue.js +8 -0
  83. package/dist/layouts/AccentPicker.vue.js.map +1 -0
  84. package/dist/layouts/AccentPicker2.vue.js +131 -0
  85. package/dist/layouts/AccentPicker2.vue.js.map +1 -0
  86. package/dist/layouts/AppHeader.vue.d.ts +8 -1
  87. package/dist/layouts/AppHeader.vue.js +2 -2
  88. package/dist/layouts/AppHeader2.vue.js +317 -235
  89. package/dist/layouts/AppHeader2.vue.js.map +1 -1
  90. package/dist/layouts/NoticeBell.vue.js +2 -2
  91. package/dist/layouts/NoticeBell2.vue.js +1 -1
  92. package/dist/layouts/NoticeBell2.vue.js.map +1 -1
  93. package/dist/layouts/PersonalLayout.vue.js +2 -2
  94. package/dist/layouts/PersonalLayout2.vue.js +69 -47
  95. package/dist/layouts/PersonalLayout2.vue.js.map +1 -1
  96. package/dist/layouts/SettingsDrawer.vue.js +3 -3
  97. package/dist/layouts/SettingsDrawer2.vue.js +261 -325
  98. package/dist/layouts/SettingsDrawer2.vue.js.map +1 -1
  99. package/dist/layouts/TabsBar.vue.js +2 -2
  100. package/dist/layouts/TabsBar2.vue.js +97 -69
  101. package/dist/layouts/TabsBar2.vue.js.map +1 -1
  102. package/dist/layouts/components/SideNav.vue.d.ts +3 -0
  103. package/dist/layouts/components/SideNav.vue.js +1 -1
  104. package/dist/layouts/components/SideNav2.vue.js +54 -26
  105. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  106. package/dist/layouts/default.vue.js +1 -1
  107. package/dist/layouts/default2.vue.js +170 -140
  108. package/dist/layouts/default2.vue.js.map +1 -1
  109. package/dist/lib/favicon.d.ts +1 -0
  110. package/dist/lib/favicon.js +12 -0
  111. package/dist/lib/favicon.js.map +1 -0
  112. package/dist/lib/loginHero.d.ts +16 -0
  113. package/dist/lib/loginHero.js +33 -0
  114. package/dist/lib/loginHero.js.map +1 -0
  115. package/dist/lib/logoCrop.d.ts +25 -0
  116. package/dist/lib/logoCrop.js +22 -0
  117. package/dist/lib/logoCrop.js.map +1 -0
  118. package/dist/lib/runtime.d.ts +2 -0
  119. package/dist/lib/runtime.js +1 -1
  120. package/dist/lib/runtime.js.map +1 -1
  121. package/dist/lib/securityRules.d.ts +26 -0
  122. package/dist/lib/securityRules.js +86 -0
  123. package/dist/lib/securityRules.js.map +1 -0
  124. package/dist/lib/watermark.d.ts +110 -0
  125. package/dist/lib/watermark.js +151 -0
  126. package/dist/lib/watermark.js.map +1 -0
  127. package/dist/locales/en-US.d.ts +462 -42
  128. package/dist/locales/en-US.js +491 -78
  129. package/dist/locales/en-US.js.map +1 -1
  130. package/dist/locales/kernelMenuTitles.d.ts +1 -0
  131. package/dist/locales/kernelMenuTitles.js +128 -0
  132. package/dist/locales/kernelMenuTitles.js.map +1 -0
  133. package/dist/locales/menuTitle.d.ts +3 -0
  134. package/dist/locales/menuTitle.js +14 -12
  135. package/dist/locales/menuTitle.js.map +1 -1
  136. package/dist/locales/zh-CN.d.ts +462 -42
  137. package/dist/locales/zh-CN.js +490 -81
  138. package/dist/locales/zh-CN.js.map +1 -1
  139. package/dist/router/index.js +41 -32
  140. package/dist/router/index.js.map +1 -1
  141. package/dist/router/namedPage.d.ts +4 -0
  142. package/dist/router/namedPage.js +7 -7
  143. package/dist/router/namedPage.js.map +1 -1
  144. package/dist/router/viewRegistry.js +12 -12
  145. package/dist/router/viewRegistry.js.map +1 -1
  146. package/dist/stores/app.d.ts +0 -12
  147. package/dist/stores/app.js +11 -12
  148. package/dist/stores/app.js.map +1 -1
  149. package/dist/stores/tabs.js.map +1 -1
  150. package/dist/stores/user.d.ts +10 -0
  151. package/dist/stores/user.js.map +1 -1
  152. package/dist/style.css +1 -1
  153. package/dist/theme/accentTokens.d.ts +27 -0
  154. package/dist/theme/accentTokens.js +54 -0
  155. package/dist/theme/accentTokens.js.map +1 -0
  156. package/dist/theme/accents.d.ts +21 -1
  157. package/dist/theme/accents.js +11 -2
  158. package/dist/theme/accents.js.map +1 -1
  159. package/dist/theme/mix.d.ts +58 -7
  160. package/dist/theme/mix.js +115 -30
  161. package/dist/theme/mix.js.map +1 -1
  162. package/dist/theme/naive-theme.d.ts +5 -2
  163. package/dist/theme/naive-theme.js +405 -75
  164. package/dist/theme/naive-theme.js.map +1 -1
  165. package/dist/utils/jwt.d.ts +8 -0
  166. package/dist/utils/jwt.js +14 -0
  167. package/dist/utils/jwt.js.map +1 -0
  168. package/dist/utils/menuIcon.d.ts +2 -0
  169. package/dist/utils/menuIcon.js +8 -0
  170. package/dist/utils/menuIcon.js.map +1 -0
  171. package/dist/utils/oauthBrand.d.ts +34 -9
  172. package/dist/utils/oauthBrand.js +70 -74
  173. package/dist/utils/oauthBrand.js.map +1 -1
  174. package/dist/utils/tableFilter.d.ts +88 -0
  175. package/dist/utils/tableFilter.js +116 -0
  176. package/dist/utils/tableFilter.js.map +1 -0
  177. package/dist/utils/tableToolbar.d.ts +18 -0
  178. package/dist/utils/tableToolbar.js +11 -0
  179. package/dist/utils/tableToolbar.js.map +1 -0
  180. package/dist/utils/treeFilter.d.ts +20 -0
  181. package/dist/utils/treeFilter.js +24 -0
  182. package/dist/utils/treeFilter.js.map +1 -0
  183. package/dist/views/dashboard/ShortcutPicker.vue.js +1 -1
  184. package/dist/views/dashboard/ShortcutPicker2.vue.js +73 -48
  185. package/dist/views/dashboard/ShortcutPicker2.vue.js.map +1 -1
  186. package/dist/views/dashboard/biz.vue.js +1 -1
  187. package/dist/views/dashboard/biz2.vue.js +310 -257
  188. package/dist/views/dashboard/biz2.vue.js.map +1 -1
  189. package/dist/views/dashboard/workbench.vue.js +2 -2
  190. package/dist/views/dashboard/workbench2.vue.js +141 -155
  191. package/dist/views/dashboard/workbench2.vue.js.map +1 -1
  192. package/dist/views/embed/iframe.vue.js +2 -2
  193. package/dist/views/embed/iframe2.vue.js +22 -15
  194. package/dist/views/embed/iframe2.vue.js.map +1 -1
  195. package/dist/views/error/404.vue.js +2 -2
  196. package/dist/views/error/4042.vue.js +33 -24
  197. package/dist/views/error/4042.vue.js.map +1 -1
  198. package/dist/views/error/BootError.vue.js +1 -1
  199. package/dist/views/error/BootError2.vue.js +59 -48
  200. package/dist/views/error/BootError2.vue.js.map +1 -1
  201. package/dist/views/error/MissingRoute.vue.js +2 -2
  202. package/dist/views/error/MissingRoute2.vue.js +34 -15
  203. package/dist/views/error/MissingRoute2.vue.js.map +1 -1
  204. package/dist/views/login/LoginForm.vue.d.ts +7 -1
  205. package/dist/views/login/LoginForm.vue.js +2 -2
  206. package/dist/views/login/LoginForm2.vue.js +580 -488
  207. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  208. package/dist/views/login/components/LoginDesk.vue.d.ts +36 -0
  209. package/dist/views/login/components/LoginDesk.vue.js +9 -0
  210. package/dist/views/login/components/LoginDesk.vue.js.map +1 -0
  211. package/dist/views/login/components/LoginDesk2.vue.js +100 -0
  212. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -0
  213. package/dist/views/login/components/LoginHeroPanel.vue.d.ts +18 -0
  214. package/dist/views/login/components/LoginHeroPanel.vue.js +8 -0
  215. package/dist/views/login/components/LoginHeroPanel.vue.js.map +1 -0
  216. package/dist/views/login/components/LoginHeroPanel2.vue.js +61 -0
  217. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -0
  218. package/dist/views/login/index.vue.js +1 -1
  219. package/dist/views/login/index2.vue.js +141 -71
  220. package/dist/views/login/index2.vue.js.map +1 -1
  221. package/dist/views/login/layout.d.ts +11 -0
  222. package/dist/views/login/layout.js +27 -0
  223. package/dist/views/login/layout.js.map +1 -0
  224. package/dist/views/mfa/index.vue.js +2 -2
  225. package/dist/views/mfa/index2.vue.js +367 -321
  226. package/dist/views/mfa/index2.vue.js.map +1 -1
  227. package/dist/views/module/index.vue.js +2 -2
  228. package/dist/views/module/index2.vue.js +132 -99
  229. package/dist/views/module/index2.vue.js.map +1 -1
  230. package/dist/views/oauth/callback.vue.js +2 -2
  231. package/dist/views/oauth/callback2.vue.js +65 -51
  232. package/dist/views/oauth/callback2.vue.js.map +1 -1
  233. package/dist/views/personal/bindings.vue.js +2 -2
  234. package/dist/views/personal/bindings2.vue.js +98 -94
  235. package/dist/views/personal/bindings2.vue.js.map +1 -1
  236. package/dist/views/personal/notice2.vue.js +103 -76
  237. package/dist/views/personal/notice2.vue.js.map +1 -1
  238. package/dist/views/personal/password2.vue.js +47 -40
  239. package/dist/views/personal/password2.vue.js.map +1 -1
  240. package/dist/views/personal/profile.vue.js +3 -3
  241. package/dist/views/personal/profile2.vue.js +24 -18
  242. package/dist/views/personal/profile2.vue.js.map +1 -1
  243. package/dist/views/personal/security.vue.js +2 -2
  244. package/dist/views/personal/security2.vue.js +65 -53
  245. package/dist/views/personal/security2.vue.js.map +1 -1
  246. package/dist/views/personal/sessions.vue.js +2 -2
  247. package/dist/views/personal/sessions2.vue.js +67 -62
  248. package/dist/views/personal/sessions2.vue.js.map +1 -1
  249. package/dist/views/system/ai-model/components/ProviderCard.vue.js +2 -2
  250. package/dist/views/system/ai-model/components/ProviderCard2.vue.js +142 -130
  251. package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -1
  252. package/dist/views/system/ai-model/components/ProviderForm.vue.js +2 -2
  253. package/dist/views/system/ai-model/components/ProviderForm2.vue.js +71 -70
  254. package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -1
  255. package/dist/views/system/ai-model/index.vue.js +2 -2
  256. package/dist/views/system/ai-model/index2.vue.js +99 -99
  257. package/dist/views/system/ai-model/index2.vue.js.map +1 -1
  258. package/dist/views/system/ai-model/presets.d.ts +1 -1
  259. package/dist/views/system/ai-model/presets.js +18 -18
  260. package/dist/views/system/ai-model/presets.js.map +1 -1
  261. package/dist/views/system/ai-usage/index.vue.js +2 -2
  262. package/dist/views/system/ai-usage/index2.vue.js +356 -258
  263. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  264. package/dist/views/system/api-docs/index.vue.js +5 -2
  265. package/dist/views/system/api-docs/index.vue.js.map +1 -1
  266. package/dist/views/system/api-docs/index2.vue.js +92 -42
  267. package/dist/views/system/api-docs/index2.vue.js.map +1 -1
  268. package/dist/views/system/cache/index.vue.js +2 -2
  269. package/dist/views/system/cache/index2.vue.js +74 -80
  270. package/dist/views/system/cache/index2.vue.js.map +1 -1
  271. package/dist/views/system/config/components/AdminMock.vue.js +8 -0
  272. package/dist/views/system/config/components/AdminMock.vue.js.map +1 -0
  273. package/dist/views/system/config/components/AdminMock2.vue.js +93 -0
  274. package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -0
  275. package/dist/views/system/config/components/AdvancedSection.vue.js +8 -0
  276. package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -0
  277. package/dist/views/system/config/components/AdvancedSection2.vue.js +163 -0
  278. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -0
  279. package/dist/views/system/config/components/BrandSection.vue.d.ts +7 -0
  280. package/dist/views/system/config/components/BrandSection.vue.js +8 -0
  281. package/dist/views/system/config/components/BrandSection.vue.js.map +1 -0
  282. package/dist/views/system/config/components/BrandSection2.vue.js +266 -0
  283. package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -0
  284. package/dist/views/system/config/components/CfgGroup.vue.d.ts +18 -0
  285. package/dist/views/system/config/components/CfgGroup.vue.js +8 -0
  286. package/dist/views/system/config/components/CfgGroup.vue.js.map +1 -0
  287. package/dist/views/system/config/components/CfgGroup2.vue.js +22 -0
  288. package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -0
  289. package/dist/views/system/config/components/CfgRow.vue.d.ts +26 -0
  290. package/dist/views/system/config/components/CfgRow.vue.js +9 -0
  291. package/dist/views/system/config/components/CfgRow.vue.js.map +1 -0
  292. package/dist/views/system/config/components/CfgRow2.vue.js +54 -0
  293. package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -0
  294. package/dist/views/system/config/components/CfgSegment.vue.d.ts +28 -0
  295. package/dist/views/system/config/components/CfgSegment.vue.js +8 -0
  296. package/dist/views/system/config/components/CfgSegment.vue.js.map +1 -0
  297. package/dist/views/system/config/components/CfgSegment2.vue.js +45 -0
  298. package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -0
  299. package/dist/views/system/config/components/ConfigFormModal.vue.js +4 -1
  300. package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -1
  301. package/dist/views/system/config/components/ConfigFormModal2.vue.js +72 -60
  302. package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
  303. package/dist/views/system/config/components/JobSection.vue.js +8 -0
  304. package/dist/views/system/config/components/JobSection.vue.js.map +1 -0
  305. package/dist/views/system/config/components/JobSection2.vue.js +140 -0
  306. package/dist/views/system/config/components/JobSection2.vue.js.map +1 -0
  307. package/dist/views/system/config/components/LoginMock.vue.d.ts +8 -0
  308. package/dist/views/system/config/components/LoginMock.vue.js +8 -0
  309. package/dist/views/system/config/components/LoginMock.vue.js.map +1 -0
  310. package/dist/views/system/config/components/LoginMock2.vue.js +132 -0
  311. package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -0
  312. package/dist/views/system/config/components/LogoCropper.vue.d.ts +10 -0
  313. package/dist/views/system/config/components/LogoCropper.vue.js +8 -0
  314. package/dist/views/system/config/components/LogoCropper.vue.js.map +1 -0
  315. package/dist/views/system/config/components/LogoCropper2.vue.js +122 -0
  316. package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -0
  317. package/dist/views/system/config/components/LogoEditor.vue.js +8 -0
  318. package/dist/views/system/config/components/LogoEditor.vue.js.map +1 -0
  319. package/dist/views/system/config/components/LogoEditor2.vue.js +161 -0
  320. package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -0
  321. package/dist/views/system/config/components/ProviderSheet.vue.d.ts +17 -0
  322. package/dist/views/system/config/components/ProviderSheet.vue.js +8 -0
  323. package/dist/views/system/config/components/ProviderSheet.vue.js.map +1 -0
  324. package/dist/views/system/config/components/ProviderSheet2.vue.js +343 -0
  325. package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -0
  326. package/dist/{layouts/SettingRow.vue.d.ts → views/system/config/components/ScaleToFit.vue.d.ts} +2 -1
  327. package/dist/views/system/config/components/ScaleToFit.vue.js +8 -0
  328. package/dist/views/system/config/components/ScaleToFit.vue.js.map +1 -0
  329. package/dist/views/system/config/components/ScaleToFit2.vue.js +41 -0
  330. package/dist/views/system/config/components/ScaleToFit2.vue.js.map +1 -0
  331. package/dist/views/system/config/components/SectionLayout.vue.d.ts +30 -0
  332. package/dist/views/system/config/components/SectionLayout.vue.js +8 -0
  333. package/dist/views/system/config/components/SectionLayout.vue.js.map +1 -0
  334. package/dist/views/system/config/components/SectionLayout2.vue.js +69 -0
  335. package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -0
  336. package/dist/views/system/config/components/SecuritySection.vue.js +8 -0
  337. package/dist/views/system/config/components/SecuritySection.vue.js.map +1 -0
  338. package/dist/views/system/config/components/SecuritySection2.vue.js +417 -0
  339. package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -0
  340. package/dist/views/system/config/components/SensitiveSection.vue.js +8 -0
  341. package/dist/views/system/config/components/SensitiveSection.vue.js.map +1 -0
  342. package/dist/views/system/config/components/SensitiveSection2.vue.js +214 -0
  343. package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -0
  344. package/dist/views/system/config/components/SigninSection.vue.js +8 -0
  345. package/dist/views/system/config/components/SigninSection.vue.js.map +1 -0
  346. package/dist/views/system/config/components/SigninSection2.vue.js +201 -0
  347. package/dist/views/system/config/components/SigninSection2.vue.js.map +1 -0
  348. package/dist/views/system/config/components/UploadSection.vue.js +8 -0
  349. package/dist/views/system/config/components/UploadSection.vue.js.map +1 -0
  350. package/dist/views/system/config/components/UploadSection2.vue.js +176 -0
  351. package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -0
  352. package/dist/views/system/config/components/WatermarkSection.vue.js +8 -0
  353. package/dist/views/system/config/components/WatermarkSection.vue.js.map +1 -0
  354. package/dist/views/system/config/components/WatermarkSection2.vue.js +284 -0
  355. package/dist/views/system/config/components/WatermarkSection2.vue.js.map +1 -0
  356. package/dist/views/system/config/draft.d.ts +148 -0
  357. package/dist/views/system/config/draft.js +170 -0
  358. package/dist/views/system/config/draft.js.map +1 -0
  359. package/dist/views/system/config/flash.d.ts +2 -0
  360. package/dist/views/system/config/flash.js +9 -0
  361. package/dist/views/system/config/flash.js.map +1 -0
  362. package/dist/views/system/config/groups.d.ts +38 -7
  363. package/dist/views/system/config/groups.js +104 -14
  364. package/dist/views/system/config/groups.js.map +1 -1
  365. package/dist/views/system/config/index.vue.js +6 -2
  366. package/dist/views/system/config/index.vue.js.map +1 -1
  367. package/dist/views/system/config/index2.vue.js +201 -111
  368. package/dist/views/system/config/index2.vue.js.map +1 -1
  369. package/dist/views/system/config/layoutMode.d.ts +23 -0
  370. package/dist/views/system/config/layoutMode.js +28 -0
  371. package/dist/views/system/config/layoutMode.js.map +1 -0
  372. package/dist/views/system/config/providerForm.d.ts +33 -0
  373. package/dist/views/system/config/providerForm.js +63 -0
  374. package/dist/views/system/config/providerForm.js.map +1 -0
  375. package/dist/views/system/dict/index.vue.js +2 -2
  376. package/dist/views/system/dict/index2.vue.js +471 -366
  377. package/dist/views/system/dict/index2.vue.js.map +1 -1
  378. package/dist/views/system/file/index2.vue.js +91 -76
  379. package/dist/views/system/file/index2.vue.js.map +1 -1
  380. package/dist/views/system/job/index.vue.js +3 -3
  381. package/dist/views/system/job/index2.vue.js +897 -828
  382. package/dist/views/system/job/index2.vue.js.map +1 -1
  383. package/dist/views/system/job-log/components/AttemptTable.vue.d.ts +8 -0
  384. package/dist/views/system/job-log/components/AttemptTable.vue.js +5 -0
  385. package/dist/views/system/job-log/components/AttemptTable.vue.js.map +1 -0
  386. package/dist/views/system/job-log/components/AttemptTable2.vue.js +54 -0
  387. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -0
  388. package/dist/views/system/job-log/index.vue.js +2 -2
  389. package/dist/views/system/job-log/index2.vue.js +193 -207
  390. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  391. package/dist/views/system/job-log/runStatus.d.ts +13 -0
  392. package/dist/views/system/job-log/runStatus.js +26 -0
  393. package/dist/views/system/job-log/runStatus.js.map +1 -0
  394. package/dist/views/system/job-monitor/index.vue.js +2 -2
  395. package/dist/views/system/job-monitor/index2.vue.js +172 -180
  396. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  397. package/dist/views/system/log/exception/index.vue.js +2 -2
  398. package/dist/views/system/log/exception/index2.vue.js +135 -96
  399. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  400. package/dist/views/system/log/login/index2.vue.js +62 -41
  401. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  402. package/dist/views/system/log/op/index.vue.js +2 -2
  403. package/dist/views/system/log/op/index2.vue.js +200 -162
  404. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  405. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  406. package/dist/views/system/menu/components/ButtonManager2.vue.js +206 -190
  407. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  408. package/dist/views/system/menu/components/MenuFormModal.vue.js +2 -2
  409. package/dist/views/system/menu/components/MenuFormModal2.vue.js +127 -118
  410. package/dist/views/system/menu/components/MenuFormModal2.vue.js.map +1 -1
  411. package/dist/views/system/menu/index.vue.js +1 -1
  412. package/dist/views/system/menu/index2.vue.js +216 -183
  413. package/dist/views/system/menu/index2.vue.js.map +1 -1
  414. package/dist/views/system/module/index.vue.js +1 -1
  415. package/dist/views/system/module/index2.vue.js +177 -144
  416. package/dist/views/system/module/index2.vue.js.map +1 -1
  417. package/dist/views/system/monitor/index.vue.js +2 -2
  418. package/dist/views/system/monitor/index2.vue.js +134 -149
  419. package/dist/views/system/monitor/index2.vue.js.map +1 -1
  420. package/dist/views/system/notice/index.vue.js +1 -1
  421. package/dist/views/system/notice/index2.vue.js +209 -181
  422. package/dist/views/system/notice/index2.vue.js.map +1 -1
  423. package/dist/views/system/org/index.vue.js +1 -1
  424. package/dist/views/system/org/index2.vue.js +278 -248
  425. package/dist/views/system/org/index2.vue.js.map +1 -1
  426. package/dist/views/system/position/index.vue.js +5 -2
  427. package/dist/views/system/position/index.vue.js.map +1 -1
  428. package/dist/views/system/position/index2.vue.js +128 -92
  429. package/dist/views/system/position/index2.vue.js.map +1 -1
  430. package/dist/views/system/recycle/index.vue.js +2 -2
  431. package/dist/views/system/recycle/index2.vue.js +90 -67
  432. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  433. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +20 -0
  434. package/dist/views/system/role/components/GrantMenuSheet.vue.js +8 -0
  435. package/dist/views/system/role/components/GrantMenuSheet.vue.js.map +1 -0
  436. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +117 -0
  437. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -0
  438. package/dist/views/system/role/components/GrantMenuTable.vue.d.ts +6 -4
  439. package/dist/views/system/role/components/GrantMenuTable.vue.js +2 -2
  440. package/dist/views/system/role/components/GrantMenuTable2.vue.js +279 -177
  441. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  442. package/dist/views/system/role/components/MatchText.vue.d.ts +7 -0
  443. package/dist/views/system/role/components/MatchText.vue.js +8 -0
  444. package/dist/views/system/role/components/MatchText.vue.js.map +1 -0
  445. package/dist/views/system/role/components/MatchText2.vue.js +29 -0
  446. package/dist/views/system/role/components/MatchText2.vue.js.map +1 -0
  447. package/dist/views/system/role/components/grantMenuGroups.d.ts +36 -0
  448. package/dist/views/system/role/components/grantMenuGroups.js +110 -48
  449. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  450. package/dist/views/system/role/index.vue.js +5 -2
  451. package/dist/views/system/role/index.vue.js.map +1 -1
  452. package/dist/views/system/role/index2.vue.js +181 -165
  453. package/dist/views/system/role/index2.vue.js.map +1 -1
  454. package/dist/views/system/session/index2.vue.js +75 -49
  455. package/dist/views/system/session/index2.vue.js.map +1 -1
  456. package/dist/views/system/user/components/ResetPasswordModal.vue.js +2 -2
  457. package/dist/views/system/user/components/ResetPasswordModal2.vue.js +2 -0
  458. package/dist/views/system/user/components/ResetPasswordModal2.vue.js.map +1 -1
  459. package/dist/views/system/user/components/UserFormModal.vue.js +2 -2
  460. package/dist/views/system/user/components/UserFormModal2.vue.js +77 -76
  461. package/dist/views/system/user/components/UserFormModal2.vue.js.map +1 -1
  462. package/dist/views/system/user/index.vue.js +2 -2
  463. package/dist/views/system/user/index2.vue.js +362 -275
  464. package/dist/views/system/user/index2.vue.js.map +1 -1
  465. package/package.json +6 -8
  466. package/dist/components/SelectTable/index.vue.d.ts +0 -76
  467. package/dist/components/SelectTable/index2.vue.js +0 -256
  468. package/dist/components/SelectTable/index2.vue.js.map +0 -1
  469. package/dist/composables/useTableRowSort.d.ts +0 -20
  470. package/dist/composables/useTableRowSort.js +0 -59
  471. package/dist/composables/useTableRowSort.js.map +0 -1
  472. package/dist/layouts/LayoutModeCards.vue.js +0 -8
  473. package/dist/layouts/LayoutModeCards.vue.js.map +0 -1
  474. package/dist/layouts/LayoutModeCards2.vue.js +0 -67
  475. package/dist/layouts/LayoutModeCards2.vue.js.map +0 -1
  476. package/dist/layouts/SettingRow.vue.js +0 -8
  477. package/dist/layouts/SettingRow.vue.js.map +0 -1
  478. package/dist/layouts/SettingRow2.vue.js +0 -23
  479. package/dist/layouts/SettingRow2.vue.js.map +0 -1
  480. package/dist/views/login/skins/AuroraGlass.vue.js +0 -8
  481. package/dist/views/login/skins/AuroraGlass.vue.js.map +0 -1
  482. package/dist/views/login/skins/AuroraGlass2.vue.js +0 -80
  483. package/dist/views/login/skins/AuroraGlass2.vue.js.map +0 -1
  484. package/dist/views/login/skins/SplitPanel.vue.js +0 -8
  485. package/dist/views/login/skins/SplitPanel.vue.js.map +0 -1
  486. package/dist/views/login/skins/SplitPanel2.vue.js +0 -85
  487. package/dist/views/login/skins/SplitPanel2.vue.js.map +0 -1
  488. package/dist/views/login/skins/Spotlight.vue.js +0 -8
  489. package/dist/views/login/skins/Spotlight.vue.js.map +0 -1
  490. package/dist/views/login/skins/Spotlight2.vue.js +0 -36
  491. package/dist/views/login/skins/Spotlight2.vue.js.map +0 -1
  492. package/dist/views/login/skins.d.ts +0 -8
  493. package/dist/views/login/skins.js +0 -13
  494. package/dist/views/login/skins.js.map +0 -1
  495. package/dist/views/system/config/components/ExternalAuthConfig.vue.js +0 -8
  496. package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +0 -1
  497. package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +0 -218
  498. package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +0 -1
  499. package/dist/views/system/config/components/GroupExtraConfig.vue.js +0 -8
  500. package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +0 -1
  501. package/dist/views/system/config/components/GroupExtraConfig2.vue.js +0 -108
  502. package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +0 -1
  503. package/dist/views/system/config/components/HighSensConfig.vue.js +0 -5
  504. package/dist/views/system/config/components/HighSensConfig.vue.js.map +0 -1
  505. package/dist/views/system/config/components/HighSensConfig2.vue.js +0 -134
  506. package/dist/views/system/config/components/HighSensConfig2.vue.js.map +0 -1
  507. package/dist/views/system/config/components/JobConfig.vue.js +0 -5
  508. package/dist/views/system/config/components/JobConfig.vue.js.map +0 -1
  509. package/dist/views/system/config/components/JobConfig2.vue.js +0 -116
  510. package/dist/views/system/config/components/JobConfig2.vue.js.map +0 -1
  511. package/dist/views/system/config/components/OtherConfig.vue.js +0 -5
  512. package/dist/views/system/config/components/OtherConfig.vue.js.map +0 -1
  513. package/dist/views/system/config/components/OtherConfig2.vue.js +0 -121
  514. package/dist/views/system/config/components/OtherConfig2.vue.js.map +0 -1
  515. package/dist/views/system/config/components/SecurityConfig.vue.js +0 -8
  516. package/dist/views/system/config/components/SecurityConfig.vue.js.map +0 -1
  517. package/dist/views/system/config/components/SecurityConfig2.vue.js +0 -456
  518. package/dist/views/system/config/components/SecurityConfig2.vue.js.map +0 -1
  519. package/dist/views/system/config/components/SysBaseConfig.vue.js +0 -5
  520. package/dist/views/system/config/components/SysBaseConfig.vue.js.map +0 -1
  521. package/dist/views/system/config/components/SysBaseConfig2.vue.js +0 -107
  522. package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +0 -1
  523. package/dist/views/system/config/components/UploadConfig.vue.d.ts +0 -3
  524. package/dist/views/system/config/components/UploadConfig.vue.js +0 -5
  525. package/dist/views/system/config/components/UploadConfig.vue.js.map +0 -1
  526. package/dist/views/system/config/components/UploadConfig2.vue.js +0 -135
  527. package/dist/views/system/config/components/UploadConfig2.vue.js.map +0 -1
  528. /package/dist/components/{SelectTable → TableTotal}/index.vue.js.map +0 -0
  529. /package/dist/layouts/{LayoutModeCards.vue.d.ts → AccentPicker.vue.d.ts} +0 -0
  530. /package/dist/views/{login/skins/AuroraGlass.vue.d.ts → system/config/components/AdminMock.vue.d.ts} +0 -0
  531. /package/dist/views/{login/skins/SplitPanel.vue.d.ts → system/config/components/AdvancedSection.vue.d.ts} +0 -0
  532. /package/dist/views/{login/skins/Spotlight.vue.d.ts → system/config/components/JobSection.vue.d.ts} +0 -0
  533. /package/dist/views/system/config/components/{ExternalAuthConfig.vue.d.ts → LogoEditor.vue.d.ts} +0 -0
  534. /package/dist/views/system/config/components/{HighSensConfig.vue.d.ts → SecuritySection.vue.d.ts} +0 -0
  535. /package/dist/views/system/config/components/{JobConfig.vue.d.ts → SensitiveSection.vue.d.ts} +0 -0
  536. /package/dist/views/system/config/components/{OtherConfig.vue.d.ts → SigninSection.vue.d.ts} +0 -0
  537. /package/dist/views/system/config/components/{SecurityConfig.vue.d.ts → UploadSection.vue.d.ts} +0 -0
  538. /package/dist/views/system/config/components/{SysBaseConfig.vue.d.ts → WatermarkSection.vue.d.ts} +0 -0
@@ -0,0 +1,266 @@
1
+ import { defineComponent as W, ref as x, computed as p, openBlock as X, createBlock as Z, unref as e, withCtx as a, createVNode as i, isRef as g, createElementVNode as R, normalizeClass as _, toDisplayString as M, withDirectives as O, vShow as T } from "vue";
2
+ import { NInput as f, NSwitch as j } from "naive-ui";
3
+ import { useI18n as q } from "vue-i18n";
4
+ import { splitLoginHeroFeatures as J } from "../../../../lib/loginHero.js";
5
+ import { useAppStore as Q } from "../../../../stores/app.js";
6
+ import { SUBTITLE_KEY as K, LOGIN_LOCALES as V, heroKeys as B, SHOW_FEATURES_KEY as C, LOGO_KEY as ee, BRAND_KEYS as le } from "../groups.js";
7
+ import { useConfigDraft as oe, useDraftFields as ie } from "../draft.js";
8
+ import { useConfigLayout as te } from "../layoutMode.js";
9
+ import ae from "./SectionLayout.vue.js";
10
+ import D from "./CfgGroup.vue.js";
11
+ import s from "./CfgRow.vue.js";
12
+ import H from "./CfgSegment.vue.js";
13
+ import I from "./ScaleToFit.vue.js";
14
+ import ne from "./LogoEditor.vue.js";
15
+ import se from "./AdminMock.vue.js";
16
+ import re from "./LoginMock.vue.js";
17
+ const Le = /* @__PURE__ */ W({
18
+ __name: "BrandSection",
19
+ setup(ue, { expose: G }) {
20
+ const { t: l } = q(), P = Q(), { values: c } = oe(), { str: v } = ie(), { ctl: r } = te(), y = v("sys.site.title"), w = v("sys.site.copyright"), k = v("sys.site.copyrightUrl"), S = v(K), u = x("admin"), Y = p(() => [
21
+ { value: "admin", label: l("config.brand.previewAdmin") },
22
+ { value: "login", label: l("config.brand.previewLogin") }
23
+ ]), d = x(P.locale === "en-US" ? "en-US" : "zh-CN"), $ = p(
24
+ () => V.map((n) => ({
25
+ value: n,
26
+ label: l(`config.login.locale${n === "zh-CN" ? "Zh" : "En"}`)
27
+ }))
28
+ );
29
+ function N(n) {
30
+ d.value = n, u.value = "login";
31
+ }
32
+ const A = p(() => B(d.value)), U = (n) => p({
33
+ get: () => c[A.value[n]] ?? "",
34
+ set: (o) => {
35
+ c[A.value[n]] = o;
36
+ }
37
+ }), h = U("headline"), b = U("highlight"), m = U("features"), z = p({
38
+ get: () => c[C] !== "false",
39
+ set: (n) => {
40
+ c[C] = n ? "true" : "false";
41
+ }
42
+ }), E = p(() => {
43
+ const n = h.value.trim(), o = b.value.trim();
44
+ return !!n && !!o && !n.includes(o);
45
+ }), L = p(
46
+ () => J(m.value, Number.MAX_SAFE_INTEGER).length > 5
47
+ ), F = (n) => V.map((o) => B(o)[n]);
48
+ return G({ setLocale: N }), (n, o) => (X(), Z(ae, {
49
+ title: e(l)("config.tab.brand"),
50
+ desc: e(l)("config.brand.desc"),
51
+ "preview-title": e(l)("config.brand.preview")
52
+ }, {
53
+ "preview-extra": a(() => [
54
+ i(H, {
55
+ modelValue: u.value,
56
+ "onUpdate:modelValue": o[10] || (o[10] = (t) => u.value = t),
57
+ options: Y.value,
58
+ label: e(l)("config.brand.preview")
59
+ }, null, 8, ["modelValue", "options", "label"])
60
+ ]),
61
+ preview: a(() => [
62
+ O(i(I, {
63
+ width: 880,
64
+ height: 540
65
+ }, {
66
+ default: a(() => [
67
+ i(se)
68
+ ]),
69
+ _: 1
70
+ }, 512), [
71
+ [T, u.value === "admin"]
72
+ ]),
73
+ O(i(I, {
74
+ width: 880,
75
+ height: 540
76
+ }, {
77
+ default: a(() => [
78
+ i(re, { locale: d.value }, null, 8, ["locale"])
79
+ ]),
80
+ _: 1
81
+ }, 512), [
82
+ [T, u.value === "login"]
83
+ ])
84
+ ]),
85
+ default: a(() => [
86
+ i(D, {
87
+ title: e(l)("config.brand.groupSite"),
88
+ onFocusin: o[3] || (o[3] = (t) => u.value = "admin")
89
+ }, {
90
+ default: a(() => [
91
+ i(s, {
92
+ label: e(l)("config.logo.title"),
93
+ hint: e(l)("config.logo.help"),
94
+ keys: [e(ee)],
95
+ class: "logo-row"
96
+ }, {
97
+ default: a(() => [
98
+ i(ne)
99
+ ]),
100
+ _: 1
101
+ }, 8, ["label", "hint", "keys"]),
102
+ i(s, {
103
+ label: e(l)("config.base.siteTitle"),
104
+ keys: [e(le)[0]]
105
+ }, {
106
+ default: a(() => [
107
+ i(e(f), {
108
+ value: e(y),
109
+ "onUpdate:value": o[0] || (o[0] = (t) => g(y) ? y.value = t : null),
110
+ size: e(r),
111
+ placeholder: "SmartAdmin",
112
+ "input-props": { "aria-label": e(l)("config.base.siteTitle") }
113
+ }, null, 8, ["value", "size", "input-props"])
114
+ ]),
115
+ _: 1
116
+ }, 8, ["label", "keys"]),
117
+ i(s, {
118
+ label: e(l)("config.base.copyright"),
119
+ keys: ["sys.site.copyright"]
120
+ }, {
121
+ default: a(() => [
122
+ i(e(f), {
123
+ value: e(w),
124
+ "onUpdate:value": o[1] || (o[1] = (t) => g(w) ? w.value = t : null),
125
+ size: e(r),
126
+ placeholder: e(l)("config.brand.copyrightPh"),
127
+ "input-props": { "aria-label": e(l)("config.base.copyright") }
128
+ }, null, 8, ["value", "size", "placeholder", "input-props"])
129
+ ]),
130
+ _: 1
131
+ }, 8, ["label"]),
132
+ i(s, {
133
+ label: e(l)("config.base.copyrightUrl"),
134
+ hint: e(l)("config.brand.copyrightUrlHint"),
135
+ keys: ["sys.site.copyrightUrl"]
136
+ }, {
137
+ default: a(() => [
138
+ i(e(f), {
139
+ value: e(k),
140
+ "onUpdate:value": o[2] || (o[2] = (t) => g(k) ? k.value = t : null),
141
+ size: e(r),
142
+ placeholder: "https://",
143
+ "input-props": { "aria-label": e(l)("config.base.copyrightUrl") }
144
+ }, null, 8, ["value", "size", "input-props"])
145
+ ]),
146
+ _: 1
147
+ }, 8, ["label", "hint"])
148
+ ]),
149
+ _: 1
150
+ }, 8, ["title"]),
151
+ i(D, {
152
+ title: e(l)("config.brand.groupLogin"),
153
+ onFocusin: o[9] || (o[9] = (t) => u.value = "login")
154
+ }, {
155
+ extra: a(() => [
156
+ i(H, {
157
+ "model-value": d.value,
158
+ options: $.value,
159
+ label: e(l)("config.login.language"),
160
+ "data-testid": "login-locale",
161
+ "onUpdate:modelValue": N
162
+ }, null, 8, ["model-value", "options", "label"])
163
+ ]),
164
+ default: a(() => [
165
+ i(s, {
166
+ label: e(l)("config.base.siteSubtitle"),
167
+ keys: [e(K)]
168
+ }, {
169
+ default: a(() => [
170
+ i(e(f), {
171
+ value: e(S),
172
+ "onUpdate:value": o[4] || (o[4] = (t) => g(S) ? S.value = t : null),
173
+ size: e(r),
174
+ placeholder: e(l)("login.subtitle", {}, { locale: d.value }),
175
+ "input-props": { "aria-label": e(l)("config.base.siteSubtitle") }
176
+ }, null, 8, ["value", "size", "placeholder", "input-props"])
177
+ ]),
178
+ _: 1
179
+ }, 8, ["label", "keys"]),
180
+ i(s, {
181
+ label: e(l)("config.login.headline"),
182
+ keys: F("headline")
183
+ }, {
184
+ default: a(() => [
185
+ i(e(f), {
186
+ value: e(h),
187
+ "onUpdate:value": o[5] || (o[5] = (t) => g(h) ? h.value = t : null),
188
+ size: e(r),
189
+ placeholder: e(l)("config.login.headlinePlaceholder"),
190
+ "input-props": { "aria-label": e(l)("config.login.headline") }
191
+ }, null, 8, ["value", "size", "placeholder", "input-props"])
192
+ ]),
193
+ _: 1
194
+ }, 8, ["label", "keys"]),
195
+ i(s, {
196
+ label: e(l)("config.login.highlight"),
197
+ keys: F("highlight")
198
+ }, {
199
+ hint: a(() => [
200
+ R("span", {
201
+ class: _({ warn: E.value })
202
+ }, M(E.value ? e(l)("config.login.highlightMissing") : e(l)("config.login.highlightHint")), 3)
203
+ ]),
204
+ default: a(() => [
205
+ i(e(f), {
206
+ value: e(b),
207
+ "onUpdate:value": o[6] || (o[6] = (t) => g(b) ? b.value = t : null),
208
+ size: e(r),
209
+ status: E.value ? "warning" : void 0,
210
+ placeholder: e(l)("config.login.highlightPlaceholder"),
211
+ "input-props": { "aria-label": e(l)("config.login.highlight") }
212
+ }, null, 8, ["value", "size", "status", "placeholder", "input-props"])
213
+ ]),
214
+ _: 1
215
+ }, 8, ["label", "keys"]),
216
+ i(s, {
217
+ label: e(l)("config.login.showFeatures"),
218
+ keys: [e(C)]
219
+ }, {
220
+ default: a(() => [
221
+ i(e(j), {
222
+ value: z.value,
223
+ "onUpdate:value": o[7] || (o[7] = (t) => z.value = t),
224
+ "aria-label": e(l)("config.login.showFeatures")
225
+ }, null, 8, ["value", "aria-label"])
226
+ ]),
227
+ _: 1
228
+ }, 8, ["label", "keys"]),
229
+ i(s, {
230
+ label: e(l)("config.login.features"),
231
+ keys: F("features"),
232
+ disabled: !z.value,
233
+ tall: "",
234
+ class: "feat"
235
+ }, {
236
+ hint: a(() => [
237
+ R("span", {
238
+ class: _({ err: L.value })
239
+ }, M(L.value ? e(l)("config.login.tooManyFeatures") : e(l)("config.login.featuresHint")), 3)
240
+ ]),
241
+ default: a(() => [
242
+ i(e(f), {
243
+ value: e(m),
244
+ "onUpdate:value": o[8] || (o[8] = (t) => g(m) ? m.value = t : null),
245
+ type: "textarea",
246
+ size: e(r),
247
+ status: L.value ? "error" : void 0,
248
+ autosize: { minRows: 2, maxRows: 4 },
249
+ placeholder: e(l)("config.login.featuresPlaceholder"),
250
+ "input-props": { "aria-label": e(l)("config.login.features") }
251
+ }, null, 8, ["value", "size", "status", "placeholder", "input-props"])
252
+ ]),
253
+ _: 1
254
+ }, 8, ["label", "keys", "disabled"])
255
+ ]),
256
+ _: 1
257
+ }, 8, ["title"])
258
+ ]),
259
+ _: 1
260
+ }, 8, ["title", "desc", "preview-title"]));
261
+ }
262
+ });
263
+ export {
264
+ Le as default
265
+ };
266
+ //# sourceMappingURL=BrandSection2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandSection2.vue.js","sources":["../../../../../src/views/system/config/components/BrandSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 品牌与登录页:左边「站点」「登录页」两组设置,右边一块预览,用分段控件切「后台 / 登录页」。\n// 预览跟着焦点走:编辑站点组时看后台,编辑登录页组时看登录页,也可手动切。\n// 登录页文案中英文分开配,组名右侧切语言,预览同步切到该语言。\nimport { computed, ref } from 'vue'\nimport { NInput, NSwitch } from 'naive-ui'\nimport { useI18n } from 'vue-i18n'\nimport { splitLoginHeroFeatures } from '#/lib/loginHero'\nimport { useAppStore } from '#/stores/app'\nimport {\n BRAND_KEYS,\n heroKeys,\n LOGIN_LOCALES,\n LOGO_KEY,\n SHOW_FEATURES_KEY,\n SUBTITLE_KEY,\n type LoginLocale,\n} from '../groups'\nimport { useConfigDraft, useDraftFields } from '../draft'\nimport { useConfigLayout } from '../layoutMode'\nimport SectionLayout from './SectionLayout.vue'\nimport CfgGroup from './CfgGroup.vue'\nimport CfgRow from './CfgRow.vue'\nimport CfgSegment from './CfgSegment.vue'\nimport ScaleToFit from './ScaleToFit.vue'\nimport LogoEditor from './LogoEditor.vue'\nimport AdminMock from './AdminMock.vue'\nimport LoginMock from './LoginMock.vue'\n\nconst { t } = useI18n()\nconst app = useAppStore()\nconst { values } = useConfigDraft()\nconst { str } = useDraftFields()\nconst { ctl } = useConfigLayout()\n\nconst title = str('sys.site.title')\nconst copyright = str('sys.site.copyright')\nconst copyrightUrl = str('sys.site.copyrightUrl')\nconst subtitle = str(SUBTITLE_KEY)\n\nconst view = ref<'admin' | 'login'>('admin')\nconst viewOptions = computed(() => [\n { value: 'admin' as const, label: t('config.brand.previewAdmin') },\n { value: 'login' as const, label: t('config.brand.previewLogin') },\n])\n\nconst locale = ref<LoginLocale>(app.locale === 'en-US' ? 'en-US' : 'zh-CN')\nconst localeOptions = computed(() =>\n LOGIN_LOCALES.map(l => ({\n value: l,\n label: t(`config.login.locale${l === 'zh-CN' ? 'Zh' : 'En'}`),\n })),\n)\nfunction setLocale(l: LoginLocale) {\n locale.value = l\n view.value = 'login'\n}\nconst keys = computed(() => heroKeys(locale.value))\nconst field = (name: 'headline' | 'highlight' | 'features') =>\n computed({\n get: () => values[keys.value[name]] ?? '',\n set: (v: string) => {\n values[keys.value[name]] = v\n },\n })\nconst headline = field('headline')\nconst highlight = field('highlight')\nconst features = field('features')\n// 缺省视为开:库里没有这个键时登录页照常显示亮点\nconst showFeatures = computed({\n get: () => values[SHOW_FEATURES_KEY] !== 'false',\n set: v => {\n values[SHOW_FEATURES_KEY] = v ? 'true' : 'false'\n },\n})\nconst highlightMissing = computed(() => {\n const h = headline.value.trim()\n const k = highlight.value.trim()\n return !!h && !!k && !h.includes(k)\n})\nconst tooManyFeatures = computed(\n () => splitLoginHeroFeatures(features.value, Number.MAX_SAFE_INTEGER).length > 5,\n)\nconst heroRowKeys = (name: 'headline' | 'highlight' | 'features') =>\n LOGIN_LOCALES.map(l => heroKeys(l)[name])\n\ndefineExpose({ setLocale })\n</script>\n\n<template>\n <SectionLayout\n :title=\"t('config.tab.brand')\"\n :desc=\"t('config.brand.desc')\"\n :preview-title=\"t('config.brand.preview')\"\n >\n <CfgGroup :title=\"t('config.brand.groupSite')\" @focusin=\"view = 'admin'\">\n <CfgRow\n :label=\"t('config.logo.title')\"\n :hint=\"t('config.logo.help')\"\n :keys=\"[LOGO_KEY]\"\n class=\"logo-row\"\n >\n <LogoEditor />\n </CfgRow>\n <CfgRow :label=\"t('config.base.siteTitle')\" :keys=\"[BRAND_KEYS[0]]\">\n <n-input\n v-model:value=\"title\"\n :size=\"ctl\"\n placeholder=\"SmartAdmin\"\n :input-props=\"{ 'aria-label': t('config.base.siteTitle') }\"\n />\n </CfgRow>\n <CfgRow :label=\"t('config.base.copyright')\" :keys=\"['sys.site.copyright']\">\n <n-input\n v-model:value=\"copyright\"\n :size=\"ctl\"\n :placeholder=\"t('config.brand.copyrightPh')\"\n :input-props=\"{ 'aria-label': t('config.base.copyright') }\"\n />\n </CfgRow>\n <CfgRow\n :label=\"t('config.base.copyrightUrl')\"\n :hint=\"t('config.brand.copyrightUrlHint')\"\n :keys=\"['sys.site.copyrightUrl']\"\n >\n <n-input\n v-model:value=\"copyrightUrl\"\n :size=\"ctl\"\n placeholder=\"https://\"\n :input-props=\"{ 'aria-label': t('config.base.copyrightUrl') }\"\n />\n </CfgRow>\n </CfgGroup>\n\n <CfgGroup :title=\"t('config.brand.groupLogin')\" @focusin=\"view = 'login'\">\n <template #extra>\n <CfgSegment\n :model-value=\"locale\"\n :options=\"localeOptions\"\n :label=\"t('config.login.language')\"\n data-testid=\"login-locale\"\n @update:model-value=\"setLocale\"\n />\n </template>\n <CfgRow :label=\"t('config.base.siteSubtitle')\" :keys=\"[SUBTITLE_KEY]\">\n <n-input\n v-model:value=\"subtitle\"\n :size=\"ctl\"\n :placeholder=\"t('login.subtitle', {}, { locale })\"\n :input-props=\"{ 'aria-label': t('config.base.siteSubtitle') }\"\n />\n </CfgRow>\n <CfgRow :label=\"t('config.login.headline')\" :keys=\"heroRowKeys('headline')\">\n <n-input\n v-model:value=\"headline\"\n :size=\"ctl\"\n :placeholder=\"t('config.login.headlinePlaceholder')\"\n :input-props=\"{ 'aria-label': t('config.login.headline') }\"\n />\n </CfgRow>\n <CfgRow :label=\"t('config.login.highlight')\" :keys=\"heroRowKeys('highlight')\">\n <template #hint>\n <span :class=\"{ warn: highlightMissing }\">\n {{\n highlightMissing\n ? t('config.login.highlightMissing')\n : t('config.login.highlightHint')\n }}\n </span>\n </template>\n <n-input\n v-model:value=\"highlight\"\n :size=\"ctl\"\n :status=\"highlightMissing ? 'warning' : undefined\"\n :placeholder=\"t('config.login.highlightPlaceholder')\"\n :input-props=\"{ 'aria-label': t('config.login.highlight') }\"\n />\n </CfgRow>\n <CfgRow :label=\"t('config.login.showFeatures')\" :keys=\"[SHOW_FEATURES_KEY]\">\n <n-switch v-model:value=\"showFeatures\" :aria-label=\"t('config.login.showFeatures')\" />\n </CfgRow>\n <CfgRow\n :label=\"t('config.login.features')\"\n :keys=\"heroRowKeys('features')\"\n :disabled=\"!showFeatures\"\n tall\n class=\"feat\"\n >\n <template #hint>\n <span :class=\"{ err: tooManyFeatures }\">\n {{\n tooManyFeatures ? t('config.login.tooManyFeatures') : t('config.login.featuresHint')\n }}\n </span>\n </template>\n <n-input\n v-model:value=\"features\"\n type=\"textarea\"\n :size=\"ctl\"\n :status=\"tooManyFeatures ? 'error' : undefined\"\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\n :placeholder=\"t('config.login.featuresPlaceholder')\"\n :input-props=\"{ 'aria-label': t('config.login.features') }\"\n />\n </CfgRow>\n </CfgGroup>\n\n <template #preview-extra>\n <CfgSegment v-model=\"view\" :options=\"viewOptions\" :label=\"t('config.brand.preview')\" />\n </template>\n <template #preview>\n <ScaleToFit v-show=\"view === 'admin'\" :width=\"880\" :height=\"540\">\n <AdminMock />\n </ScaleToFit>\n <ScaleToFit v-show=\"view === 'login'\" :width=\"880\" :height=\"540\">\n <LoginMock :locale=\"locale\" />\n </ScaleToFit>\n </template>\n </SectionLayout>\n</template>\n\n<style scoped>\n.logo-row {\n min-height: 72px;\n}\n.feat :deep(.ctl) {\n flex: 1.8 1 0;\n}\n.warn {\n color: var(--warn);\n}\n.err {\n color: var(--err);\n}\n</style>\n"],"names":["t","useI18n","app","useAppStore","values","useConfigDraft","str","useDraftFields","ctl","useConfigLayout","title","copyright","copyrightUrl","subtitle","SUBTITLE_KEY","view","ref","viewOptions","computed","locale","localeOptions","LOGIN_LOCALES","l","setLocale","keys","heroKeys","field","name","v","headline","highlight","features","showFeatures","SHOW_FEATURES_KEY","highlightMissing","h","k","tooManyFeatures","splitLoginHeroFeatures","heroRowKeys","__expose","_createBlock","SectionLayout","_unref","_createVNode","CfgSegment","$event","ScaleToFit","AdminMock","LoginMock","CfgGroup","CfgRow","LOGO_KEY","LogoEditor","BRAND_KEYS","NInput","_createElementVNode","NSwitch"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ type __VLS_Props = {
2
+ title?: string;
3
+ };
4
+ declare var __VLS_1: {}, __VLS_3: {};
5
+ type __VLS_Slots = {} & {
6
+ extra?: (props: typeof __VLS_1) => any;
7
+ } & {
8
+ default?: (props: typeof __VLS_3) => any;
9
+ };
10
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
@@ -0,0 +1,8 @@
1
+ import o from "./CfgGroup2.vue.js";
2
+ /* empty css */
3
+ import f from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ f(o, [["__scopeId", "data-v-b7e2ff62"]]);
5
+ export {
6
+ m as default
7
+ };
8
+ //# sourceMappingURL=CfgGroup.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CfgGroup.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,22 @@
1
+ import { defineComponent as n, openBlock as o, createElementBlock as s, createElementVNode as r, toDisplayString as i, renderSlot as l, createCommentVNode as a } from "vue";
2
+ const c = { class: "cfg-group" }, d = { key: 0 }, u = { class: "cfg-list" }, f = /* @__PURE__ */ n({
3
+ __name: "CfgGroup",
4
+ props: {
5
+ title: {}
6
+ },
7
+ setup(t) {
8
+ return (e, m) => (o(), s("div", c, [
9
+ t.title || e.$slots.extra ? (o(), s("h4", d, [
10
+ r("span", null, i(t.title), 1),
11
+ l(e.$slots, "extra", {}, void 0, !0)
12
+ ])) : a("", !0),
13
+ r("div", u, [
14
+ l(e.$slots, "default", {}, void 0, !0)
15
+ ])
16
+ ]));
17
+ }
18
+ });
19
+ export {
20
+ f as default
21
+ };
22
+ //# sourceMappingURL=CfgGroup2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CfgGroup2.vue.js","sources":["../../../../../src/views/system/config/components/CfgGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 圆角分组列表(仿 macOS「系统设置」):组名在卡片外的左上方,#extra 放在组名右侧(如语言切换)。\ndefineProps<{ title?: string }>()\n</script>\n\n<template>\n <div class=\"cfg-group\">\n <h4 v-if=\"title || $slots.extra\">\n <span>{{ title }}</span>\n <slot name=\"extra\" />\n </h4>\n <div class=\"cfg-list\">\n <slot />\n </div>\n </div>\n</template>\n\n<style scoped>\n.cfg-group {\n flex: none;\n min-width: 0;\n}\nh4 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n min-height: 28px;\n margin: 0 0 4px 12px;\n font-size: 13px;\n font-weight: 500;\n color: var(--text-2);\n}\n/* 列表卡:不描边、不投影,靠半透明填充底和卡片拉开层次 */\n.cfg-list {\n border-radius: var(--radius-lg);\n background: var(--fill);\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","__props","$slots","_hoisted_2","_createElementVNode","_renderSlot","_ctx","_hoisted_3"],"mappings":";;;;;;;sBAMEA,EAAA,GAAAC,EAQM,OARNC,GAQM;AAAA,MAPMC,EAAA,SAASC,EAAAA,OAAO,cAA1BH,EAGK,MAAAI,GAAA;AAAA,QAFHC,EAAwB,gBAAfH,EAAA,KAAK,GAAA,CAAA;AAAA,QACdI,EAAqBC,EAAA,QAAA,SAAA,CAAA,GAAA,QAAA,EAAA;AAAA,MAAA;MAEvBF,EAEM,OAFNG,GAEM;AAAA,QADJF,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,MAAA;;;;"}
@@ -0,0 +1,26 @@
1
+ type __VLS_Props = {
2
+ label?: string;
3
+ hint?: string;
4
+ keys?: readonly string[];
5
+ sub?: boolean;
6
+ disabled?: boolean;
7
+ /** 控件比一行高(多行输入、标签组):顶端对齐 */
8
+ tall?: boolean;
9
+ };
10
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
11
+ type __VLS_Slots = {} & {
12
+ label?: (props: typeof __VLS_1) => any;
13
+ } & {
14
+ hint?: (props: typeof __VLS_3) => any;
15
+ } & {
16
+ default?: (props: typeof __VLS_5) => any;
17
+ };
18
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
19
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ type __VLS_WithSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1,9 @@
1
+ import o from "./CfgRow2.vue.js";
2
+ /* empty css */
3
+ /* empty css */
4
+ import t from "../../../../_virtual/_plugin-vue_export-helper.js";
5
+ const _ = /* @__PURE__ */ t(o, [["__scopeId", "data-v-2191e0b7"]]);
6
+ export {
7
+ _ as default
8
+ };
9
+ //# sourceMappingURL=CfgRow.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CfgRow.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,54 @@
1
+ import { defineComponent as y, computed as v, openBlock as s, createElementBlock as o, normalizeClass as g, unref as c, createElementVNode as n, createCommentVNode as l, renderSlot as i, createTextVNode as u, toDisplayString as d } from "vue";
2
+ import { useI18n as k } from "vue-i18n";
3
+ import { useConfigDraft as C } from "../draft.js";
4
+ import { useConfigLayout as p } from "../layoutMode.js";
5
+ const B = ["aria-disabled"], $ = { class: "lb" }, N = { class: "name" }, V = {
6
+ key: 0,
7
+ class: "dot",
8
+ "aria-hidden": "true"
9
+ }, w = {
10
+ key: 1,
11
+ class: "sr-only"
12
+ }, D = { key: 0 }, E = { class: "ctl" }, I = /* @__PURE__ */ y({
13
+ __name: "CfgRow",
14
+ props: {
15
+ label: {},
16
+ hint: {},
17
+ keys: {},
18
+ sub: { type: Boolean },
19
+ disabled: { type: Boolean },
20
+ tall: { type: Boolean }
21
+ },
22
+ setup(e) {
23
+ const m = e, { t: f } = k(), h = C(), { nar: b } = p(), a = v(() => {
24
+ var t;
25
+ return !!((t = m.keys) != null && t.some((r) => h.dirtyKeys.value.includes(r)));
26
+ });
27
+ return (t, r) => (s(), o("div", {
28
+ class: g(["cfg-row", { sub: e.sub, off: e.disabled, tall: e.tall, changed: a.value, nar: c(b) }]),
29
+ "aria-disabled": e.disabled || void 0
30
+ }, [
31
+ n("div", $, [
32
+ n("span", N, [
33
+ a.value ? (s(), o("i", V)) : l("", !0),
34
+ i(t.$slots, "label", {}, () => [
35
+ u(d(e.label), 1)
36
+ ], !0),
37
+ a.value ? (s(), o("span", w, d(c(f)("config.unsavedTab")), 1)) : l("", !0)
38
+ ]),
39
+ e.hint || t.$slots.hint ? (s(), o("small", D, [
40
+ i(t.$slots, "hint", {}, () => [
41
+ u(d(e.hint), 1)
42
+ ], !0)
43
+ ])) : l("", !0)
44
+ ]),
45
+ n("div", E, [
46
+ i(t.$slots, "default", {}, void 0, !0)
47
+ ])
48
+ ], 10, B));
49
+ }
50
+ });
51
+ export {
52
+ I as default
53
+ };
54
+ //# sourceMappingURL=CfgRow2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CfgRow2.vue.js","sources":["../../../../../src/views/system/config/components/CfgRow.vue"],"sourcesContent":["<script setup lang=\"ts\">\n// 分组列表里的一行:左边标签(可带一行灰色说明),右边控件。\n// keys 里任一键有未保存改动,标签前出现橙点——用户一眼看出改了哪几项。\n// sub 是缩进的从属项(如「验证码类型」),disabled 让整行变灰不可操作(从属的总开关关着)。\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useConfigDraft } from '../draft'\nimport { useConfigLayout } from '../layoutMode'\n\nconst props = defineProps<{\n label?: string\n hint?: string\n keys?: readonly string[]\n sub?: boolean\n disabled?: boolean\n /** 控件比一行高(多行输入、标签组):顶端对齐 */\n tall?: boolean\n}>()\n\nconst { t } = useI18n()\nconst draft = useConfigDraft()\nconst { nar } = useConfigLayout()\nconst changed = computed(() => !!props.keys?.some(key => draft.dirtyKeys.value.includes(key)))\n</script>\n\n<template>\n <div\n :class=\"['cfg-row', { sub, off: disabled, tall, changed, nar }]\"\n :aria-disabled=\"disabled || undefined\"\n >\n <div class=\"lb\">\n <span class=\"name\">\n <i v-if=\"changed\" class=\"dot\" aria-hidden=\"true\" />\n <slot name=\"label\">{{ label }}</slot>\n <span v-if=\"changed\" class=\"sr-only\">{{ t('config.unsavedTab') }}</span>\n </span>\n <small v-if=\"hint || $slots.hint\">\n <slot name=\"hint\">{{ hint }}</slot>\n </small>\n </div>\n <div class=\"ctl\">\n <slot />\n </div>\n </div>\n</template>\n\n<style scoped>\n.cfg-row {\n position: relative;\n display: flex;\n align-items: center;\n gap: 12px;\n min-height: 48px;\n padding: 6px 14px;\n font-size: 14px;\n}\n.cfg-row + .cfg-row::before {\n content: '';\n position: absolute;\n top: 0;\n left: 14px;\n right: 0;\n border-top: 1px solid var(--separator);\n}\n.cfg-row.sub {\n padding-left: 34px;\n}\n.cfg-row.sub::before {\n left: 34px;\n}\n.cfg-row.tall {\n align-items: flex-start;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.cfg-row.off .lb,\n.cfg-row.off .ctl {\n opacity: 0.45;\n pointer-events: none;\n}\n.lb {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 130px;\n}\n.name {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n white-space: nowrap;\n color: var(--text-1);\n}\n.dot {\n position: absolute;\n left: -11px;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--warn);\n}\nsmall {\n font-size: 13px;\n line-height: 1.4;\n color: var(--text-3);\n}\n.ctl {\n display: flex;\n flex: 0 1 auto;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n min-width: 0;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n}\n/* 窄档:从属项的缩进收一点 */\n.cfg-row.nar.sub {\n padding-left: 24px;\n}\n.cfg-row.nar.sub::before {\n left: 24px;\n}\n</style>\n\n<style>\n/* 带文本输入框的行:标签与输入按 1:1.8 分(输入框是主角,要宽),输入框铺满自己那一份。\n 放在非 scoped 块里::has() 要看子孙里有没有输入框,scoped 的属性选择器改写会打乱它。 */\n.cfg-row:has(> .ctl > :is(.n-input, .n-select)) > .lb {\n flex: 1 1 0;\n}\n.cfg-row:has(> .ctl > :is(.n-input, .n-select)) > .ctl {\n flex: 1.8 1 0;\n}\n.cfg-row > .ctl > :is(.n-input, .n-select) {\n flex: 1;\n min-width: 0;\n}\n/* 窄档:设置行上下排,标签一行、控件占满一行(带开关的行保持左右一行,开关本来就小) */\n.cfg-row.nar:not(:has(> .ctl > .n-switch)) {\n flex-wrap: wrap;\n row-gap: 8px;\n}\n.cfg-row.nar:not(:has(> .ctl > .n-switch)) > .lb {\n flex: 1 1 100%;\n}\n.cfg-row.nar:not(:has(> .ctl > .n-switch)) > .ctl,\n.cfg-row.nar:has(> .ctl > :is(.n-input, .n-select)) > .ctl {\n flex: 1 1 100%;\n}\n.cfg-row.nar:not(:has(> .ctl > .n-switch)) > .ctl {\n justify-content: flex-start;\n}\n.cfg-row.nar > .ctl > .n-input-number {\n width: 120px;\n}\n.cfg-row.nar > .ctl > .n-slider {\n flex: 1;\n width: auto;\n}\n</style>\n"],"names":["props","__props","t","useI18n","draft","useConfigDraft","nar","useConfigLayout","changed","computed","_a","key","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_hoisted_2","_hoisted_3","_openBlock","_hoisted_4","_renderSlot","_ctx","_hoisted_5","_toDisplayString","$slots","_hoisted_6","_hoisted_7"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAUR,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAQC,EAAA,GACR,EAAE,KAAAC,EAAA,IAAQC,EAAA,GACVC,IAAUC,EAAS,MAAA;;AAAM,cAAC,GAACC,IAAAV,EAAM,SAAN,QAAAU,EAAY,KAAK,CAAAC,MAAOP,EAAM,UAAU,MAAM,SAASO,CAAG;AAAA,KAAE;2BAI3FC,EAiBM,OAAA;AAAA,MAhBH,OAAKC,EAAA,CAAA,WAAA,EAAA,KAAgBZ,OAAG,KAAOA,EAAA,gBAAUA,EAAA,MAAI,SAAEO,EAAA,OAAO,KAAEM,EAAAR,CAAA,EAAA,CAAG,CAAA;AAAA,MAC3D,iBAAeL,EAAA,YAAY;AAAA,IAAA;MAE5Bc,EASM,OATNC,GASM;AAAA,QARJD,EAIO,QAJPE,GAIO;AAAA,UAHIT,EAAA,SAATU,EAAA,GAAAN,EAAmD,KAAnDO,CAAmD;UACnDC,EAAqCC,uBAArC,MAAqC;AAAA,gBAAfpB,EAAA,KAAK,GAAA,CAAA;AAAA,UAAA;UACfO,EAAA,cAAZI,EAAwE,QAAxEU,GAAwEC,EAAhCT,EAAAZ,CAAA,EAAC,mBAAA,CAAA,GAAA,CAAA;;QAE9BD,EAAA,QAAQuB,EAAAA,OAAO,aAA5BZ,EAEQ,SAAAa,GAAA;AAAA,UADNL,EAAmCC,sBAAnC,MAAmC;AAAA,gBAAdpB,EAAA,IAAI,GAAA,CAAA;AAAA,UAAA;;;MAG7Bc,EAEM,OAFNW,GAEM;AAAA,QADJN,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,MAAA;;;;"}
@@ -0,0 +1,28 @@
1
+ declare const __VLS_export: <T extends string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<({
3
+ options: readonly {
4
+ value: T;
5
+ label: string;
6
+ }[];
7
+ label?: string;
8
+ } & {
9
+ modelValue: T;
10
+ }) & {
11
+ "onUpdate:modelValue"?: ((value: T) => any) | undefined;
12
+ }> & (typeof globalThis extends {
13
+ __VLS_PROPS_FALLBACK: infer P;
14
+ } ? P : {});
15
+ expose: (exposed: {}) => void;
16
+ attrs: any;
17
+ slots: {};
18
+ emit: (event: "update:modelValue", value: T) => void;
19
+ }>) => import('vue').VNode & {
20
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
21
+ };
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
24
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
25
+ [K in keyof T]: T[K];
26
+ } : {
27
+ [K in keyof T as K]: T[K];
28
+ }) & {};
@@ -0,0 +1,8 @@
1
+ import o from "./CfgSegment2.vue.js";
2
+ /* empty css */
3
+ import t from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const r = /* @__PURE__ */ t(o, [["__scopeId", "data-v-0e49f97e"]]);
5
+ export {
6
+ r as default
7
+ };
8
+ //# sourceMappingURL=CfgSegment.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CfgSegment.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,45 @@
1
+ import { defineComponent as p, useModel as f, openBlock as u, createElementBlock as i, normalizeClass as c, unref as g, Fragment as k, renderList as y, toDisplayString as b, mergeModels as h } from "vue";
2
+ import { useConfigLayout as w } from "../layoutMode.js";
3
+ const x = ["aria-label"], C = ["aria-checked", "tabindex", "data-value", "onClick"], D = /* @__PURE__ */ p({
4
+ __name: "CfgSegment",
5
+ props: /* @__PURE__ */ h({
6
+ options: {},
7
+ label: {}
8
+ }, {
9
+ modelValue: { required: !0 },
10
+ modelModifiers: {}
11
+ }),
12
+ emits: ["update:modelValue"],
13
+ setup(o) {
14
+ const l = o, t = f(o, "modelValue"), { nar: d } = w();
15
+ function v(a) {
16
+ var s;
17
+ const n = a.key === "ArrowRight" || a.key === "ArrowDown" ? 1 : a.key === "ArrowLeft" || a.key === "ArrowUp" ? -1 : 0;
18
+ if (!n) return;
19
+ a.preventDefault();
20
+ const e = l.options.findIndex((m) => m.value === t.value), r = l.options[(e + n + l.options.length) % l.options.length];
21
+ t.value = r.value, (s = a.currentTarget.querySelector(`[data-value="${r.value}"]`)) == null || s.focus();
22
+ }
23
+ return (a, n) => (u(), i("span", {
24
+ class: c(["seg", { large: g(d) }]),
25
+ role: "radiogroup",
26
+ "aria-label": o.label,
27
+ onKeydown: v
28
+ }, [
29
+ (u(!0), i(k, null, y(o.options, (e) => (u(), i("button", {
30
+ key: e.value,
31
+ type: "button",
32
+ role: "radio",
33
+ "aria-checked": t.value === e.value,
34
+ tabindex: t.value === e.value ? 0 : -1,
35
+ "data-value": e.value,
36
+ class: c({ on: t.value === e.value }),
37
+ onClick: (r) => t.value = e.value
38
+ }, b(e.label), 11, C))), 128))
39
+ ], 42, x));
40
+ }
41
+ });
42
+ export {
43
+ D as default
44
+ };
45
+ //# sourceMappingURL=CfgSegment2.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CfgSegment2.vue.js","sources":["../../../../../src/views/system/config/components/CfgSegment.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"T extends string\">\n// 分段控件(仿 macOS):一组互斥选项,选中的一格浮起。语义上是 radiogroup,方向键切换。\n// 外观是 Radio 按钮款的分段控件(轨道 + 滑块);窄档放大到手指好点的高度。\nimport { useConfigLayout } from '../layoutMode'\n\nconst props = defineProps<{\n options: readonly { value: T; label: string }[]\n label?: string\n}>()\nconst model = defineModel<T>({ required: true })\nconst { nar } = useConfigLayout()\n\nfunction onKey(e: KeyboardEvent) {\n const step =\n e.key === 'ArrowRight' || e.key === 'ArrowDown'\n ? 1\n : e.key === 'ArrowLeft' || e.key === 'ArrowUp'\n ? -1\n : 0\n if (!step) return\n e.preventDefault()\n const i = props.options.findIndex(o => o.value === model.value)\n const next = props.options[(i + step + props.options.length) % props.options.length]\n model.value = next.value\n ;(e.currentTarget as HTMLElement)\n .querySelector<HTMLElement>(`[data-value=\"${next.value}\"]`)\n ?.focus()\n}\n</script>\n\n<template>\n <span :class=\"['seg', { large: nar }]\" role=\"radiogroup\" :aria-label=\"label\" @keydown=\"onKey\">\n <button\n v-for=\"o in options\"\n :key=\"o.value\"\n type=\"button\"\n role=\"radio\"\n :aria-checked=\"model === o.value\"\n :tabindex=\"model === o.value ? 0 : -1\"\n :data-value=\"o.value\"\n :class=\"{ on: model === o.value }\"\n @click=\"model = o.value\"\n >\n {{ o.label }}\n </button>\n </span>\n</template>\n\n<style scoped>\n.seg {\n display: inline-flex;\n flex: none;\n padding: 2px;\n border-radius: var(--radius-md);\n background: var(--cfg-seg-track, var(--fill));\n}\nbutton {\n padding: 0 12px;\n border: 0;\n border-radius: 6px;\n background: none;\n font: inherit;\n font-size: 13px;\n line-height: 24px;\n color: var(--text-2);\n cursor: pointer;\n white-space: nowrap;\n}\nbutton:hover {\n color: var(--text-1);\n}\nbutton.on {\n background: var(--cfg-seg-thumb, var(--color-bg-container-solid));\n color: var(--text-1);\n font-weight: 500;\n}\nbutton:focus-visible {\n outline: 2px solid var(--signal);\n outline-offset: 1px;\n}\n.seg.large button {\n padding: 0 16px;\n font-size: 14px;\n line-height: 36px;\n}\n</style>\n"],"names":["props","__props","model","_useModel","nar","useConfigLayout","onKey","e","step","i","o","next","_a","_createElementBlock","_unref","_Fragment","_renderList","_normalizeClass","$event","_toDisplayString","_hoisted_2"],"mappings":";;;;;;;;;;;;;AAKA,UAAMA,IAAQC,GAIRC,IAAQC,EAAcF,GAAA,YAAmB,GACzC,EAAE,KAAAG,EAAA,IAAQC,EAAA;AAEhB,aAASC,EAAMC,GAAkB;;AAC/B,YAAMC,IACJD,EAAE,QAAQ,gBAAgBA,EAAE,QAAQ,cAChC,IACAA,EAAE,QAAQ,eAAeA,EAAE,QAAQ,YACjC,KACA;AACR,UAAI,CAACC,EAAM;AACX,MAAAD,EAAE,eAAA;AACF,YAAME,IAAIT,EAAM,QAAQ,UAAU,OAAKU,EAAE,UAAUR,EAAM,KAAK,GACxDS,IAAOX,EAAM,SAASS,IAAID,IAAOR,EAAM,QAAQ,UAAUA,EAAM,QAAQ,MAAM;AACnF,MAAAE,EAAM,QAAQS,EAAK,QACjBC,IAAAL,EAAE,cACD,cAA2B,gBAAgBI,EAAK,KAAK,IAAI,MAD1D,QAAAC,EAEE;AAAA,IACN;2BAIEC,EAcO,QAAA;AAAA,MAdA,0BAAwBC,EAAAV,CAAA,EAAA,CAAG,CAAA;AAAA,MAAK,MAAK;AAAA,MAAc,cAAYH,EAAA;AAAA,MAAQ,WAASK;AAAA,IAAA;cACrFO,EAYSE,GAAA,MAAAC,EAXKf,EAAA,SAAO,CAAZS,YADTG,EAYS,UAAA;AAAA,QAVN,KAAKH,EAAE;AAAA,QACR,MAAK;AAAA,QACL,MAAK;AAAA,QACJ,gBAAcR,EAAA,UAAUQ,EAAE;AAAA,QAC1B,UAAUR,EAAA,UAAUQ,EAAE,QAAK,IAAA;AAAA,QAC3B,cAAYA,EAAE;AAAA,QACd,OAAKO,EAAA,EAAA,IAAQf,EAAA,UAAUQ,EAAE,OAAK;AAAA,QAC9B,SAAK,CAAAQ,MAAEhB,EAAA,QAAQQ,EAAE;AAAA,MAAA,GAEfS,EAAAT,EAAE,KAAK,GAAA,IAAAU,CAAA;;;;"}
@@ -1,4 +1,7 @@
1
- import f from "./ConfigFormModal2.vue.js";
1
+ import o from "./ConfigFormModal2.vue.js";
2
+ /* empty css */
3
+ import r from "../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ r(o, [["__scopeId", "data-v-c621e546"]]);
2
5
  export {
3
6
  f as default
4
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigFormModal.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"ConfigFormModal.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}