@lumal/core 0.0.1-beta

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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/LumalThemeSettingsPanel-BFkZzwEW.js +685 -0
  4. package/dist/LumalThemeSettingsPanel-C6aPhgUX.cjs +1 -0
  5. package/dist/_plugin-vue_export-helper-B3ysoDQm.js +8 -0
  6. package/dist/_plugin-vue_export-helper-BTmtiIyf.cjs +1 -0
  7. package/dist/auth.cjs +1 -0
  8. package/dist/auth.js +127 -0
  9. package/dist/components-DJiHYQQB.cjs +2 -0
  10. package/dist/components-DYmKh-eF.js +2206 -0
  11. package/dist/components.cjs +1 -0
  12. package/dist/components.js +3 -0
  13. package/dist/composables-C4twj5Ov.cjs +1 -0
  14. package/dist/composables-C9EuCUjj.js +130 -0
  15. package/dist/composables.cjs +1 -0
  16. package/dist/composables.js +148 -0
  17. package/dist/core.css +2 -0
  18. package/dist/dictionary-B7tsaVqB.js +19 -0
  19. package/dist/dictionary-ClEWtQCU.cjs +1 -0
  20. package/dist/dictionary.cjs +1 -0
  21. package/dist/dictionary.js +3 -0
  22. package/dist/directive-D-fB5qbY.js +16 -0
  23. package/dist/directive-DSVr7QvO.cjs +1 -0
  24. package/dist/directives.cjs +1 -0
  25. package/dist/directives.js +11 -0
  26. package/dist/index.cjs +1 -0
  27. package/dist/index.js +88 -0
  28. package/dist/layout-C8H9wuQa.js +2075 -0
  29. package/dist/layout-ZnyG9X3N.cjs +1 -0
  30. package/dist/layout.cjs +1 -0
  31. package/dist/layout.js +2 -0
  32. package/dist/permission-6sXtjGMS.cjs +1 -0
  33. package/dist/permission-CCkqvnWg.js +104 -0
  34. package/dist/permission.cjs +1 -0
  35. package/dist/permission.js +3 -0
  36. package/dist/request.cjs +1 -0
  37. package/dist/request.js +277 -0
  38. package/dist/router.cjs +1 -0
  39. package/dist/router.js +510 -0
  40. package/dist/src/app/createLumalAdmin.d.ts +4 -0
  41. package/dist/src/app/createLumalAdmin.d.ts.map +1 -0
  42. package/dist/src/app/default-components.d.ts +4 -0
  43. package/dist/src/app/default-components.d.ts.map +1 -0
  44. package/dist/src/app/index.d.ts +3 -0
  45. package/dist/src/app/index.d.ts.map +1 -0
  46. package/dist/src/app/types.d.ts +41 -0
  47. package/dist/src/app/types.d.ts.map +1 -0
  48. package/dist/src/auth/adapter.d.ts +3 -0
  49. package/dist/src/auth/adapter.d.ts.map +1 -0
  50. package/dist/src/auth/createAuthSession.d.ts +8 -0
  51. package/dist/src/auth/createAuthSession.d.ts.map +1 -0
  52. package/dist/src/auth/index.d.ts +8 -0
  53. package/dist/src/auth/index.d.ts.map +1 -0
  54. package/dist/src/auth/redirect.d.ts +8 -0
  55. package/dist/src/auth/redirect.d.ts.map +1 -0
  56. package/dist/src/auth/session-expired.d.ts +5 -0
  57. package/dist/src/auth/session-expired.d.ts.map +1 -0
  58. package/dist/src/auth/session.d.ts +10 -0
  59. package/dist/src/auth/session.d.ts.map +1 -0
  60. package/dist/src/auth/storage.d.ts +7 -0
  61. package/dist/src/auth/storage.d.ts.map +1 -0
  62. package/dist/src/auth/types.d.ts +68 -0
  63. package/dist/src/auth/types.d.ts.map +1 -0
  64. package/dist/src/components/crud-table/LumalCrudEditor.vue.d.ts +41 -0
  65. package/dist/src/components/crud-table/LumalCrudEditor.vue.d.ts.map +1 -0
  66. package/dist/src/components/crud-table/LumalCrudTable.vue.d.ts +151 -0
  67. package/dist/src/components/crud-table/LumalCrudTable.vue.d.ts.map +1 -0
  68. package/dist/src/components/crud-table/index.d.ts +4 -0
  69. package/dist/src/components/crud-table/index.d.ts.map +1 -0
  70. package/dist/src/components/crud-table/schema.d.ts +4 -0
  71. package/dist/src/components/crud-table/schema.d.ts.map +1 -0
  72. package/dist/src/components/crud-table/types.d.ts +165 -0
  73. package/dist/src/components/crud-table/types.d.ts.map +1 -0
  74. package/dist/src/components/crud-table/useCrudData.d.ts +20 -0
  75. package/dist/src/components/crud-table/useCrudData.d.ts.map +1 -0
  76. package/dist/src/components/crud-table/useCrudDialog.d.ts +19 -0
  77. package/dist/src/components/crud-table/useCrudDialog.d.ts.map +1 -0
  78. package/dist/src/components/crud-table/useCrudQuery.d.ts +18 -0
  79. package/dist/src/components/crud-table/useCrudQuery.d.ts.map +1 -0
  80. package/dist/src/components/crud-table/useCrudSelection.d.ts +9 -0
  81. package/dist/src/components/crud-table/useCrudSelection.d.ts.map +1 -0
  82. package/dist/src/components/info-table/LumalInfoTable.vue.d.ts +12 -0
  83. package/dist/src/components/info-table/LumalInfoTable.vue.d.ts.map +1 -0
  84. package/dist/src/components/info-table/index.d.ts +3 -0
  85. package/dist/src/components/info-table/index.d.ts.map +1 -0
  86. package/dist/src/components/info-table/types.d.ts +15 -0
  87. package/dist/src/components/info-table/types.d.ts.map +1 -0
  88. package/dist/src/components/page/LumalPage.vue.d.ts +36 -0
  89. package/dist/src/components/page/LumalPage.vue.d.ts.map +1 -0
  90. package/dist/src/components/page/index.d.ts +2 -0
  91. package/dist/src/components/page/index.d.ts.map +1 -0
  92. package/dist/src/components/page-layout/LumalPageLayout.vue.d.ts +38 -0
  93. package/dist/src/components/page-layout/LumalPageLayout.vue.d.ts.map +1 -0
  94. package/dist/src/components/page-layout/index.d.ts +3 -0
  95. package/dist/src/components/page-layout/index.d.ts.map +1 -0
  96. package/dist/src/components/page-layout/types.d.ts +9 -0
  97. package/dist/src/components/page-layout/types.d.ts.map +1 -0
  98. package/dist/src/components/pagination/LumalPagination.vue.d.ts +31 -0
  99. package/dist/src/components/pagination/LumalPagination.vue.d.ts.map +1 -0
  100. package/dist/src/components/pagination/index.d.ts +3 -0
  101. package/dist/src/components/pagination/index.d.ts.map +1 -0
  102. package/dist/src/components/pagination/types.d.ts +5 -0
  103. package/dist/src/components/pagination/types.d.ts.map +1 -0
  104. package/dist/src/components/schema-form/LumalSchemaForm.vue.d.ts +78 -0
  105. package/dist/src/components/schema-form/LumalSchemaForm.vue.d.ts.map +1 -0
  106. package/dist/src/components/schema-form/index.d.ts +4 -0
  107. package/dist/src/components/schema-form/index.d.ts.map +1 -0
  108. package/dist/src/components/schema-form/normalize.d.ts +11 -0
  109. package/dist/src/components/schema-form/normalize.d.ts.map +1 -0
  110. package/dist/src/components/schema-form/types.d.ts +103 -0
  111. package/dist/src/components/schema-form/types.d.ts.map +1 -0
  112. package/dist/src/components/schema-form/types.type-test.d.ts +2 -0
  113. package/dist/src/components/schema-form/types.type-test.d.ts.map +1 -0
  114. package/dist/src/components/schema-table/LumalSchemaTable.vue.d.ts +108 -0
  115. package/dist/src/components/schema-table/LumalSchemaTable.vue.d.ts.map +1 -0
  116. package/dist/src/components/schema-table/LumalSchemaTableCell.vue.d.ts +8 -0
  117. package/dist/src/components/schema-table/LumalSchemaTableCell.vue.d.ts.map +1 -0
  118. package/dist/src/components/schema-table/cell.d.ts +13 -0
  119. package/dist/src/components/schema-table/cell.d.ts.map +1 -0
  120. package/dist/src/components/schema-table/index.d.ts +6 -0
  121. package/dist/src/components/schema-table/index.d.ts.map +1 -0
  122. package/dist/src/components/schema-table/normalize.d.ts +8 -0
  123. package/dist/src/components/schema-table/normalize.d.ts.map +1 -0
  124. package/dist/src/components/schema-table/types.d.ts +66 -0
  125. package/dist/src/components/schema-table/types.d.ts.map +1 -0
  126. package/dist/src/components/schema-table/types.type-test.d.ts +2 -0
  127. package/dist/src/components/schema-table/types.type-test.d.ts.map +1 -0
  128. package/dist/src/composables/index.d.ts +11 -0
  129. package/dist/src/composables/index.d.ts.map +1 -0
  130. package/dist/src/composables/useConfirmAction.d.ts +21 -0
  131. package/dist/src/composables/useConfirmAction.d.ts.map +1 -0
  132. package/dist/src/composables/useFullscreen.d.ts +14 -0
  133. package/dist/src/composables/useFullscreen.d.ts.map +1 -0
  134. package/dist/src/composables/usePagination.d.ts +36 -0
  135. package/dist/src/composables/usePagination.d.ts.map +1 -0
  136. package/dist/src/composables/usePersistentState.d.ts +9 -0
  137. package/dist/src/composables/usePersistentState.d.ts.map +1 -0
  138. package/dist/src/composables/useSelection.d.ts +20 -0
  139. package/dist/src/composables/useSelection.d.ts.map +1 -0
  140. package/dist/src/dictionary/composables.d.ts +15 -0
  141. package/dist/src/dictionary/composables.d.ts.map +1 -0
  142. package/dist/src/dictionary/context.d.ts +10 -0
  143. package/dist/src/dictionary/context.d.ts.map +1 -0
  144. package/dist/src/dictionary/fetcher.d.ts +4 -0
  145. package/dist/src/dictionary/fetcher.d.ts.map +1 -0
  146. package/dist/src/dictionary/index.d.ts +8 -0
  147. package/dist/src/dictionary/index.d.ts.map +1 -0
  148. package/dist/src/dictionary/normalize.d.ts +5 -0
  149. package/dist/src/dictionary/normalize.d.ts.map +1 -0
  150. package/dist/src/dictionary/store.d.ts +4 -0
  151. package/dist/src/dictionary/store.d.ts.map +1 -0
  152. package/dist/src/dictionary/types.d.ts +53 -0
  153. package/dist/src/dictionary/types.d.ts.map +1 -0
  154. package/dist/src/directives/index.d.ts +16 -0
  155. package/dist/src/directives/index.d.ts.map +1 -0
  156. package/dist/src/exports/components.d.ts +16 -0
  157. package/dist/src/exports/components.d.ts.map +1 -0
  158. package/dist/src/index.d.ts +6 -0
  159. package/dist/src/index.d.ts.map +1 -0
  160. package/dist/src/layout/LumalBreadcrumb.vue.d.ts +28 -0
  161. package/dist/src/layout/LumalBreadcrumb.vue.d.ts.map +1 -0
  162. package/dist/src/layout/LumalContent.vue.d.ts +18 -0
  163. package/dist/src/layout/LumalContent.vue.d.ts.map +1 -0
  164. package/dist/src/layout/LumalGlobalSearch.vue.d.ts +25 -0
  165. package/dist/src/layout/LumalGlobalSearch.vue.d.ts.map +1 -0
  166. package/dist/src/layout/LumalHeader.vue.d.ts +43 -0
  167. package/dist/src/layout/LumalHeader.vue.d.ts.map +1 -0
  168. package/dist/src/layout/LumalLayout.vue.d.ts +98 -0
  169. package/dist/src/layout/LumalLayout.vue.d.ts.map +1 -0
  170. package/dist/src/layout/LumalMenuBadge.vue.d.ts +16 -0
  171. package/dist/src/layout/LumalMenuBadge.vue.d.ts.map +1 -0
  172. package/dist/src/layout/LumalRouterView.vue.d.ts +24 -0
  173. package/dist/src/layout/LumalRouterView.vue.d.ts.map +1 -0
  174. package/dist/src/layout/LumalSidebar.vue.d.ts +29 -0
  175. package/dist/src/layout/LumalSidebar.vue.d.ts.map +1 -0
  176. package/dist/src/layout/LumalSidebarMenuItem.vue.d.ts +16 -0
  177. package/dist/src/layout/LumalSidebarMenuItem.vue.d.ts.map +1 -0
  178. package/dist/src/layout/LumalTabs.vue.d.ts +76 -0
  179. package/dist/src/layout/LumalTabs.vue.d.ts.map +1 -0
  180. package/dist/src/layout/LumalTopNav.vue.d.ts +27 -0
  181. package/dist/src/layout/LumalTopNav.vue.d.ts.map +1 -0
  182. package/dist/src/layout/LumalTopNavMenuItem.vue.d.ts +15 -0
  183. package/dist/src/layout/LumalTopNavMenuItem.vue.d.ts.map +1 -0
  184. package/dist/src/layout/index.d.ts +18 -0
  185. package/dist/src/layout/index.d.ts.map +1 -0
  186. package/dist/src/layout/state/menu-layout.d.ts +35 -0
  187. package/dist/src/layout/state/menu-layout.d.ts.map +1 -0
  188. package/dist/src/layout/state/tab-storage.d.ts +51 -0
  189. package/dist/src/layout/state/tab-storage.d.ts.map +1 -0
  190. package/dist/src/layout/state/tab-strategy.d.ts +73 -0
  191. package/dist/src/layout/state/tab-strategy.d.ts.map +1 -0
  192. package/dist/src/layout/types.d.ts +29 -0
  193. package/dist/src/layout/types.d.ts.map +1 -0
  194. package/dist/src/permission/LumalAccessControl.vue.d.ts +26 -0
  195. package/dist/src/permission/LumalAccessControl.vue.d.ts.map +1 -0
  196. package/dist/src/permission/context.d.ts +6 -0
  197. package/dist/src/permission/context.d.ts.map +1 -0
  198. package/dist/src/permission/directive.d.ts +3 -0
  199. package/dist/src/permission/directive.d.ts.map +1 -0
  200. package/dist/src/permission/guard.d.ts +4 -0
  201. package/dist/src/permission/guard.d.ts.map +1 -0
  202. package/dist/src/permission/helpers.d.ts +4 -0
  203. package/dist/src/permission/helpers.d.ts.map +1 -0
  204. package/dist/src/permission/index.d.ts +8 -0
  205. package/dist/src/permission/index.d.ts.map +1 -0
  206. package/dist/src/permission/store.d.ts +4 -0
  207. package/dist/src/permission/store.d.ts.map +1 -0
  208. package/dist/src/permission/types.d.ts +67 -0
  209. package/dist/src/permission/types.d.ts.map +1 -0
  210. package/dist/src/request/cache.d.ts +8 -0
  211. package/dist/src/request/cache.d.ts.map +1 -0
  212. package/dist/src/request/client.d.ts +4 -0
  213. package/dist/src/request/client.d.ts.map +1 -0
  214. package/dist/src/request/error.d.ts +19 -0
  215. package/dist/src/request/error.d.ts.map +1 -0
  216. package/dist/src/request/index.d.ts +8 -0
  217. package/dist/src/request/index.d.ts.map +1 -0
  218. package/dist/src/request/standard.d.ts +61 -0
  219. package/dist/src/request/standard.d.ts.map +1 -0
  220. package/dist/src/request/types.d.ts +102 -0
  221. package/dist/src/request/types.d.ts.map +1 -0
  222. package/dist/src/router/index.d.ts +36 -0
  223. package/dist/src/router/index.d.ts.map +1 -0
  224. package/dist/src/router/types.d.ts +231 -0
  225. package/dist/src/router/types.d.ts.map +1 -0
  226. package/dist/src/theme/LumalThemeSettingsPanel.vue.d.ts +33 -0
  227. package/dist/src/theme/LumalThemeSettingsPanel.vue.d.ts.map +1 -0
  228. package/dist/src/theme/dom.d.ts +6 -0
  229. package/dist/src/theme/dom.d.ts.map +1 -0
  230. package/dist/src/theme/index.d.ts +11 -0
  231. package/dist/src/theme/index.d.ts.map +1 -0
  232. package/dist/src/theme/preferences-store.d.ts +4 -0
  233. package/dist/src/theme/preferences-store.d.ts.map +1 -0
  234. package/dist/src/theme/preferences.d.ts +18 -0
  235. package/dist/src/theme/preferences.d.ts.map +1 -0
  236. package/dist/src/theme/store.d.ts +3 -0
  237. package/dist/src/theme/store.d.ts.map +1 -0
  238. package/dist/src/theme/theme-color-presets.d.ts +13 -0
  239. package/dist/src/theme/theme-color-presets.d.ts.map +1 -0
  240. package/dist/src/theme/tokens.d.ts +5 -0
  241. package/dist/src/theme/tokens.d.ts.map +1 -0
  242. package/dist/src/theme/types.d.ts +103 -0
  243. package/dist/src/theme/types.d.ts.map +1 -0
  244. package/dist/src/utils/clone.d.ts +12 -0
  245. package/dist/src/utils/clone.d.ts.map +1 -0
  246. package/dist/src/utils/color.d.ts +6 -0
  247. package/dist/src/utils/color.d.ts.map +1 -0
  248. package/dist/src/utils/display.d.ts +10 -0
  249. package/dist/src/utils/display.d.ts.map +1 -0
  250. package/dist/src/utils/download.d.ts +10 -0
  251. package/dist/src/utils/download.d.ts.map +1 -0
  252. package/dist/src/utils/index.d.ts +12 -0
  253. package/dist/src/utils/index.d.ts.map +1 -0
  254. package/dist/src/utils/object.d.ts +6 -0
  255. package/dist/src/utils/object.d.ts.map +1 -0
  256. package/dist/src/utils/path.d.ts +6 -0
  257. package/dist/src/utils/path.d.ts.map +1 -0
  258. package/dist/src/utils/query.d.ts +9 -0
  259. package/dist/src/utils/query.d.ts.map +1 -0
  260. package/dist/src/utils/storage.d.ts +7 -0
  261. package/dist/src/utils/storage.d.ts.map +1 -0
  262. package/dist/src/utils/types.d.ts +13 -0
  263. package/dist/src/utils/types.d.ts.map +1 -0
  264. package/dist/src/utils/with-install.d.ts +11 -0
  265. package/dist/src/utils/with-install.d.ts.map +1 -0
  266. package/dist/theme.cjs +1 -0
  267. package/dist/theme.js +187 -0
  268. package/dist/utils.cjs +1 -0
  269. package/dist/utils.js +130 -0
  270. package/package.json +124 -0
  271. package/theme-chalk/index.scss +70 -0
package/dist/theme.js ADDED
@@ -0,0 +1,187 @@
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./LumalThemeSettingsPanel-BFkZzwEW.js";
2
+ import { shallowRef as s } from "vue";
3
+ //#region src/theme/tokens.ts
4
+ var c = {
5
+ colorPrimary: "#1677ff",
6
+ compact: !1,
7
+ mode: "light"
8
+ };
9
+ function l(e) {
10
+ let t = e.mode === "dark";
11
+ return {
12
+ "--lumal-color-bg": t ? "#0a0a0a" : "#f5f7fa",
13
+ "--lumal-color-bg-elevated": t ? "#1d1e1f" : "#ffffff",
14
+ "--lumal-color-bg-page": t ? "#0a0a0a" : "#f5f7fa",
15
+ "--lumal-color-bg-surface": t ? "#141414" : "#ffffff",
16
+ "--lumal-color-border": t ? "#414243" : "#dcdfe6",
17
+ "--lumal-color-border-light": t ? "#363637" : "#e4e7ed",
18
+ "--lumal-color-danger": "#f56c6c",
19
+ "--lumal-color-primary": e.colorPrimary,
20
+ "--lumal-color-success": "#67c23a",
21
+ "--lumal-color-text": t ? "#e5eaf3" : "#303133",
22
+ "--lumal-color-text-muted": t ? "#8d9095" : "#909399",
23
+ "--lumal-color-text-primary": t ? "#e5eaf3" : "#303133",
24
+ "--lumal-color-text-regular": t ? "#cfd3dc" : "#606266",
25
+ "--lumal-color-warning": "#e6a23c",
26
+ "--lumal-density-padding": e.compact ? "12px" : "16px",
27
+ "--lumal-easing-standard": "cubic-bezier(0.2, 0, 0, 1)",
28
+ "--lumal-motion-duration-base": "220ms",
29
+ "--lumal-motion-duration-fast": "160ms",
30
+ "--lumal-motion-duration-slow": "280ms",
31
+ "--lumal-page-gutter": e.compact ? "16px" : "20px",
32
+ "--lumal-radius-base": "8px",
33
+ "--lumal-radius-large": "12px",
34
+ "--lumal-radius-small": "6px",
35
+ "--lumal-shadow-base": t ? "0 8px 24px rgb(0 0 0 / 32%)" : "0 8px 24px rgb(15 23 42 / 8%)",
36
+ "--lumal-shadow-light": t ? "0 2px 8px rgb(0 0 0 / 24%)" : "0 2px 8px rgb(15 23 42 / 6%)",
37
+ "--lumal-spacing-lg": "24px",
38
+ "--lumal-spacing-md": "16px",
39
+ "--lumal-spacing-sm": "12px",
40
+ "--lumal-spacing-xl": "32px",
41
+ "--lumal-spacing-xs": "8px",
42
+ "--lumal-z-context-menu": "2100",
43
+ "--lumal-z-dialog": "2050",
44
+ "--lumal-z-drawer": "2040",
45
+ "--lumal-z-dropdown": "2000",
46
+ "--lumal-z-header": "100",
47
+ "--lumal-z-scrim": "1800",
48
+ "--lumal-z-sidebar": "90"
49
+ };
50
+ }
51
+ //#endregion
52
+ //#region src/theme/dom.ts
53
+ function u(e, t) {
54
+ let n = l(t);
55
+ e.dataset.lumalTheme = t.mode, e.dataset.lumalCompact = String(t.compact), Object.entries(n).forEach(([t, n]) => {
56
+ e.style.setProperty(t, n);
57
+ });
58
+ }
59
+ function d(t, n = {}) {
60
+ let r = e(t), i = a(r.theme.mode, n), o = n.document?.documentElement;
61
+ return o ? (o.classList.toggle("dark", i === "dark"), u(o, {
62
+ colorPrimary: r.theme.colorPrimary,
63
+ compact: !1,
64
+ mode: i
65
+ }), p(o, r, i), m(o, r), i) : i;
66
+ }
67
+ function f(t, n, r = {}) {
68
+ if (e(t).theme.mode !== "system" || !r.matchMedia) return () => void 0;
69
+ let i = r.matchMedia("(prefers-color-scheme: dark)"), a = () => n(i.matches ? "dark" : "light");
70
+ return i.addEventListener("change", a), () => i.removeEventListener("change", a);
71
+ }
72
+ function p(e, t, n) {
73
+ let r = t.theme.colorPrimary;
74
+ e.style.setProperty("--el-color-primary", r), e.style.setProperty("--el-color-primary-light-3", _(r, n === "dark" ? "#000000" : "#ffffff", .3)), e.style.setProperty("--el-color-primary-light-5", _(r, n === "dark" ? "#000000" : "#ffffff", .5)), e.style.setProperty("--el-color-primary-light-7", _(r, n === "dark" ? "#000000" : "#ffffff", .7)), e.style.setProperty("--el-color-primary-light-9", _(r, n === "dark" ? "#000000" : "#ffffff", .9)), e.style.setProperty("--el-color-primary-dark-2", _(r, n === "dark" ? "#ffffff" : "#000000", .2)), e.style.setProperty("--lumal-radius-scale", String(t.theme.radiusScale)), e.style.setProperty("--el-border-radius-base", `${Math.round(8 * t.theme.radiusScale)}px`), e.style.setProperty("--el-border-radius-small", `${Math.round(6 * t.theme.radiusScale)}px`);
75
+ }
76
+ function m(e, t) {
77
+ let n = `${t.theme.fontSize}px`;
78
+ e.style.setProperty("--lumal-sidebar-width", `${t.sidebar.width}px`), e.style.setProperty("--lumal-header-height", "50px"), e.style.setProperty("--lumal-tabbar-height", "40px"), e.style.setProperty("--lumal-page-gutter", "20px"), e.style.setProperty("--lumal-font-size-base", n), e.style.setProperty("--el-font-size-large", `${t.theme.fontSize + 4}px`), e.style.setProperty("--el-font-size-medium", `${t.theme.fontSize + 2}px`), e.style.setProperty("--el-font-size-base", n), e.style.setProperty("--el-font-size-small", `${Math.max(10, t.theme.fontSize - 1)}px`), e.style.setProperty("--el-font-size-extra-small", `${Math.max(10, t.theme.fontSize - 2)}px`), e.style.fontSize = n;
79
+ }
80
+ function h(e) {
81
+ let t = e.trim().replace("#", "");
82
+ return t.length === 3 ? `#${t.split("").map((e) => `${e}${e}`).join("")}`.toLowerCase() : /^[\da-f]{6}$/i.test(t) ? `#${t}`.toLowerCase() : "#1677ff";
83
+ }
84
+ function g(e) {
85
+ let t = h(e);
86
+ return [
87
+ Number.parseInt(t.slice(1, 3), 16),
88
+ Number.parseInt(t.slice(3, 5), 16),
89
+ Number.parseInt(t.slice(5, 7), 16)
90
+ ];
91
+ }
92
+ function _(e, t, n) {
93
+ let [r, i, a] = g(e), [o, s, c] = g(t), l = (e, t) => Math.round(e * (1 - n) + t * n).toString(16).padStart(2, "0");
94
+ return `#${l(r, o)}${l(i, s)}${l(a, c)}`;
95
+ }
96
+ //#endregion
97
+ //#region src/theme/preferences-store.ts
98
+ function v(e) {
99
+ return e || {
100
+ document: typeof document > "u" ? void 0 : document,
101
+ matchMedia: typeof window > "u" || typeof window.matchMedia != "function" ? void 0 : window.matchMedia.bind(window)
102
+ };
103
+ }
104
+ function y(t) {
105
+ let n = null;
106
+ try {
107
+ return n = t.storage.getItem(t.storageKey), n === null ? void 0 : e(JSON.parse(n), t.defaults);
108
+ } catch {
109
+ try {
110
+ t.storage.removeItem(t.storageKey);
111
+ } catch {}
112
+ return;
113
+ }
114
+ }
115
+ function b(e, t) {
116
+ try {
117
+ e.storage.setItem(e.storageKey, JSON.stringify(t));
118
+ } catch {}
119
+ }
120
+ function x(n) {
121
+ let r = v(n.runtime), o = y(n) ?? i(n.defaults), c = s(o), l = s(a(o.theme.mode, r)), u = n.autoApply ?? !0, p = () => void 0;
122
+ function m() {
123
+ return p(), l.value = d(c.value, r), p = f(c.value, (e) => {
124
+ l.value = e, d(c.value, r);
125
+ }, r), l.value;
126
+ }
127
+ function h(e = {}) {
128
+ c.value = t(c.value, e, n.defaults), b(n, c.value), u ? m() : l.value = a(c.value.theme.mode, r);
129
+ }
130
+ function g() {
131
+ c.value = i(n.defaults), b(n, c.value), u ? m() : l.value = a(c.value.theme.mode, r);
132
+ }
133
+ function _() {
134
+ return e(c.value, n.defaults);
135
+ }
136
+ function x() {
137
+ p();
138
+ }
139
+ return u && m(), {
140
+ apply: m,
141
+ dispose: x,
142
+ exportCurrent: _,
143
+ patch: h,
144
+ reset: g,
145
+ resolvedThemeMode: l,
146
+ state: c
147
+ };
148
+ }
149
+ //#endregion
150
+ //#region src/theme/store.ts
151
+ function S(e = {}) {
152
+ return {
153
+ ...c,
154
+ ...e
155
+ };
156
+ }
157
+ function C(e = {}) {
158
+ let t = S(e);
159
+ return {
160
+ get state() {
161
+ return { ...t };
162
+ },
163
+ reset() {
164
+ t = S(e);
165
+ },
166
+ setColorPrimary(e) {
167
+ t = {
168
+ ...t,
169
+ colorPrimary: e
170
+ };
171
+ },
172
+ setCompact(e) {
173
+ t = {
174
+ ...t,
175
+ compact: e
176
+ };
177
+ },
178
+ setMode(e) {
179
+ t = {
180
+ ...t,
181
+ mode: e
182
+ };
183
+ }
184
+ };
185
+ }
186
+ //#endregion
187
+ export { o as LumalThemeSettingsPanel, d as applyThemePreferences, u as applyThemeToElement, i as createDefaultPreferences, x as createPreferencesStore, C as createThemeStore, c as defaultThemeState, t as mergePreferences, e as normalizePreferences, r as resolvePreferenceAvailability, a as resolveThemeMode, l as resolveThemeTokens, n as themeColorPresets, f as watchSystemTheme };
package/dist/utils.cjs ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("vue");function t(t){return(0,e.isProxy)(t)?(0,e.toRaw)(t):t}function n(e,r=new WeakMap){let i=t(e);if(typeof i!=`object`||!i)return i;if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i);if(r.has(i))return r.get(i);if(Array.isArray(i)){let e=[];return r.set(i,e),i.forEach((t,i)=>{e[i]=n(t,r)}),e}let a={};return r.set(i,a),Object.entries(i).forEach(([e,t])=>{a[e]=n(t,r)}),a}function r(e){let r=t(e);if(typeof structuredClone==`function`)try{return structuredClone(r)}catch(e){if(!(e instanceof DOMException)||e.name!==`DataCloneError`)throw e}return n(r)}function i(e){return e.map(e=>({...e,children:e.children?.length?i(e.children):void 0}))}function a(e,t){let n=e.trim().replace(/^#/,``);return/^[\da-f]{6}$/i.test(n)?`rgba(${Number.parseInt(n.slice(0,2),16)}, ${Number.parseInt(n.slice(2,4),16)}, ${Number.parseInt(n.slice(4,6),16)}, ${Math.min(1,Math.max(0,t))})`:e}async function o(e){try{return JSON.parse(await e.text()),!1}catch{return!0}}function s(e){return!e||e.length<=7?e:`${e.slice(0,3)}${`*`.repeat(Math.min(4,e.length-7))}${e.slice(-4)}`}function c(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function l(e,t,n=`application/octet-stream`){c(new Blob([e],{type:`${n};charset=utf-8`}),t)}function u(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function d(...e){return`/${e.filter(Boolean).map(e=>String(e).replace(/^\/+|\/+$/g,``)).filter(Boolean).join(`/`)}`}function f(e){let t=[];return Object.entries(e).forEach(([e,n])=>{if(n!=null){if(Array.isArray(n)){n.forEach(n=>{n!=null&&t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)});return}if(typeof n==`object`){Object.entries(n).forEach(([n,r])=>{r!=null&&t.push(`${encodeURIComponent(`${e}[${n}]`)}=${encodeURIComponent(String(r))}`)});return}t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)}}),t.join(`&`)}function p(e,t){return e?`${e}:${t}`:t}function m(e,t=``){return{get(n){let r=e.getItem(p(t,n));if(r!==null)try{return JSON.parse(r)}catch{throw Error(`无法解析存储键 "${p(t,n)}" 的值`)}},set(n,r){e.setItem(p(t,n),JSON.stringify(r))},remove(n){e.removeItem(p(t,n))}}}function h(e,t){let n=e;return n.install=function(n){let r=t??e.name??e.__name;r&&n.component(r,e)},n}exports.cloneDeep=r,exports.cloneTree=i,exports.createStorage=m,exports.downloadBlob=c,exports.downloadFile=l,exports.isBlobResponse=o,exports.joinPath=d,exports.maskPhone=s,exports.omitUndefined=u,exports.serializeQuery=f,exports.withAlpha=a,exports.withInstall=h;
package/dist/utils.js ADDED
@@ -0,0 +1,130 @@
1
+ import { isProxy as e, toRaw as t } from "vue";
2
+ //#region src/utils/clone.ts
3
+ function n(n) {
4
+ return e(n) ? t(n) : n;
5
+ }
6
+ function r(e, t = /* @__PURE__ */ new WeakMap()) {
7
+ let i = n(e);
8
+ if (typeof i != "object" || !i) return i;
9
+ if (i instanceof Date) return new Date(i.getTime());
10
+ if (i instanceof RegExp) return new RegExp(i);
11
+ if (t.has(i)) return t.get(i);
12
+ if (Array.isArray(i)) {
13
+ let e = [];
14
+ return t.set(i, e), i.forEach((n, i) => {
15
+ e[i] = r(n, t);
16
+ }), e;
17
+ }
18
+ let a = {};
19
+ return t.set(i, a), Object.entries(i).forEach(([e, n]) => {
20
+ a[e] = r(n, t);
21
+ }), a;
22
+ }
23
+ function i(e) {
24
+ let t = n(e);
25
+ if (typeof structuredClone == "function") try {
26
+ return structuredClone(t);
27
+ } catch (e) {
28
+ if (!(e instanceof DOMException) || e.name !== "DataCloneError") throw e;
29
+ }
30
+ return r(t);
31
+ }
32
+ function a(e) {
33
+ return e.map((e) => ({
34
+ ...e,
35
+ children: e.children?.length ? a(e.children) : void 0
36
+ }));
37
+ }
38
+ //#endregion
39
+ //#region src/utils/color.ts
40
+ function o(e, t) {
41
+ let n = e.trim().replace(/^#/, "");
42
+ return /^[\da-f]{6}$/i.test(n) ? `rgba(${Number.parseInt(n.slice(0, 2), 16)}, ${Number.parseInt(n.slice(2, 4), 16)}, ${Number.parseInt(n.slice(4, 6), 16)}, ${Math.min(1, Math.max(0, t))})` : e;
43
+ }
44
+ //#endregion
45
+ //#region src/utils/display.ts
46
+ async function s(e) {
47
+ try {
48
+ return JSON.parse(await e.text()), !1;
49
+ } catch {
50
+ return !0;
51
+ }
52
+ }
53
+ function c(e) {
54
+ return !e || e.length <= 7 ? e : `${e.slice(0, 3)}${"*".repeat(Math.min(4, e.length - 7))}${e.slice(-4)}`;
55
+ }
56
+ //#endregion
57
+ //#region src/utils/download.ts
58
+ function l(e, t) {
59
+ let n = URL.createObjectURL(e), r = document.createElement("a");
60
+ r.href = n, r.download = t, document.body.appendChild(r), r.click(), document.body.removeChild(r), URL.revokeObjectURL(n);
61
+ }
62
+ function u(e, t, n = "application/octet-stream") {
63
+ l(new Blob([e], { type: `${n};charset=utf-8` }), t);
64
+ }
65
+ //#endregion
66
+ //#region src/utils/object.ts
67
+ function d(e) {
68
+ return Object.fromEntries(Object.entries(e).filter(([, e]) => e !== void 0));
69
+ }
70
+ //#endregion
71
+ //#region src/utils/path.ts
72
+ function f(...e) {
73
+ return `/${e.filter(Boolean).map((e) => String(e).replace(/^\/+|\/+$/g, "")).filter(Boolean).join("/")}`;
74
+ }
75
+ //#endregion
76
+ //#region src/utils/query.ts
77
+ function p(e) {
78
+ let t = [];
79
+ return Object.entries(e).forEach(([e, n]) => {
80
+ if (n != null) {
81
+ if (Array.isArray(n)) {
82
+ n.forEach((n) => {
83
+ n != null && t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`);
84
+ });
85
+ return;
86
+ }
87
+ if (typeof n == "object") {
88
+ Object.entries(n).forEach(([n, r]) => {
89
+ r != null && t.push(`${encodeURIComponent(`${e}[${n}]`)}=${encodeURIComponent(String(r))}`);
90
+ });
91
+ return;
92
+ }
93
+ t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`);
94
+ }
95
+ }), t.join("&");
96
+ }
97
+ //#endregion
98
+ //#region src/utils/storage.ts
99
+ function m(e, t) {
100
+ return e ? `${e}:${t}` : t;
101
+ }
102
+ function h(e, t = "") {
103
+ return {
104
+ get(n) {
105
+ let r = e.getItem(m(t, n));
106
+ if (r !== null) try {
107
+ return JSON.parse(r);
108
+ } catch {
109
+ throw Error(`无法解析存储键 "${m(t, n)}" 的值`);
110
+ }
111
+ },
112
+ set(n, r) {
113
+ e.setItem(m(t, n), JSON.stringify(r));
114
+ },
115
+ remove(n) {
116
+ e.removeItem(m(t, n));
117
+ }
118
+ };
119
+ }
120
+ //#endregion
121
+ //#region src/utils/with-install.ts
122
+ function g(e, t) {
123
+ let n = e;
124
+ return n.install = function(n) {
125
+ let r = t ?? e.name ?? e.__name;
126
+ r && n.component(r, e);
127
+ }, n;
128
+ }
129
+ //#endregion
130
+ export { i as cloneDeep, a as cloneTree, h as createStorage, l as downloadBlob, u as downloadFile, s as isBlobResponse, f as joinPath, c as maskPhone, d as omitUndefined, p as serializeQuery, o as withAlpha, g as withInstall };
package/package.json ADDED
@@ -0,0 +1,124 @@
1
+ {
2
+ "name": "@lumal/core",
3
+ "type": "module",
4
+ "version": "0.0.1-beta",
5
+ "description": "Lumal lightweight Vue admin core components and services.",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "lumal",
9
+ "vue",
10
+ "admin",
11
+ "element-plus",
12
+ "schema-form",
13
+ "crud-table"
14
+ ],
15
+ "sideEffects": [
16
+ "**/*.css",
17
+ "**/*.scss"
18
+ ],
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "exports": {
23
+ ".": {
24
+ "types": "./dist/src/index.d.ts",
25
+ "import": "./dist/index.js",
26
+ "require": "./dist/index.cjs"
27
+ },
28
+ "./components": {
29
+ "types": "./dist/src/exports/components.d.ts",
30
+ "import": "./dist/components.js",
31
+ "require": "./dist/components.cjs"
32
+ },
33
+ "./auth": {
34
+ "types": "./dist/src/auth/index.d.ts",
35
+ "import": "./dist/auth.js",
36
+ "require": "./dist/auth.cjs"
37
+ },
38
+ "./composables": {
39
+ "types": "./dist/src/composables/index.d.ts",
40
+ "import": "./dist/composables.js",
41
+ "require": "./dist/composables.cjs"
42
+ },
43
+ "./dictionary": {
44
+ "types": "./dist/src/dictionary/index.d.ts",
45
+ "import": "./dist/dictionary.js",
46
+ "require": "./dist/dictionary.cjs"
47
+ },
48
+ "./directives": {
49
+ "types": "./dist/src/directives/index.d.ts",
50
+ "import": "./dist/directives.js",
51
+ "require": "./dist/directives.cjs"
52
+ },
53
+ "./layout": {
54
+ "types": "./dist/src/layout/index.d.ts",
55
+ "import": "./dist/layout.js",
56
+ "require": "./dist/layout.cjs"
57
+ },
58
+ "./permission": {
59
+ "types": "./dist/src/permission/index.d.ts",
60
+ "import": "./dist/permission.js",
61
+ "require": "./dist/permission.cjs"
62
+ },
63
+ "./request": {
64
+ "types": "./dist/src/request/index.d.ts",
65
+ "import": "./dist/request.js",
66
+ "require": "./dist/request.cjs"
67
+ },
68
+ "./router": {
69
+ "types": "./dist/src/router/index.d.ts",
70
+ "import": "./dist/router.js",
71
+ "require": "./dist/router.cjs"
72
+ },
73
+ "./theme": {
74
+ "types": "./dist/src/theme/index.d.ts",
75
+ "import": "./dist/theme.js",
76
+ "require": "./dist/theme.cjs"
77
+ },
78
+ "./utils": {
79
+ "types": "./dist/src/utils/index.d.ts",
80
+ "import": "./dist/utils.js",
81
+ "require": "./dist/utils.cjs"
82
+ },
83
+ "./style.css": "./dist/core.css",
84
+ "./theme-chalk/index.scss": "./theme-chalk/index.scss"
85
+ },
86
+ "main": "./dist/index.cjs",
87
+ "module": "./dist/index.js",
88
+ "types": "./dist/src/index.d.ts",
89
+ "files": [
90
+ "README.md",
91
+ "dist",
92
+ "theme-chalk"
93
+ ],
94
+ "peerDependencies": {
95
+ "element-plus": "^2.11.0",
96
+ "pinia": "^3.0.3",
97
+ "vue": "^3.5.0",
98
+ "vue-router": "^4.5.0"
99
+ },
100
+ "peerDependenciesMeta": {
101
+ "element-plus": {
102
+ "optional": true
103
+ },
104
+ "pinia": {
105
+ "optional": true
106
+ },
107
+ "vue-router": {
108
+ "optional": true
109
+ }
110
+ },
111
+ "dependencies": {
112
+ "@lumal/icons": "0.0.1-beta",
113
+ "@lumal/icons-vue": "0.0.1-beta",
114
+ "sortablejs": "^1.15.7"
115
+ },
116
+ "devDependencies": {
117
+ "@types/sortablejs": "^1.15.9"
118
+ },
119
+ "scripts": {
120
+ "build": "vite build --config vite.config.ts && vue-tsc -p tsconfig.json --emitDeclarationOnly --outDir dist && node ../../scripts/clean-package-dist.mjs dist",
121
+ "typecheck": "vue-tsc --noEmit -p tsconfig.json",
122
+ "test": "vitest run --config ../../vitest.config.ts tests"
123
+ }
124
+ }
@@ -0,0 +1,70 @@
1
+ @use "element-plus/theme-chalk/src/base.scss";
2
+ @use "element-plus/theme-chalk/src/aside.scss";
3
+ @use "element-plus/theme-chalk/src/button.scss";
4
+ @use "element-plus/theme-chalk/src/checkbox.scss";
5
+ @use "element-plus/theme-chalk/src/checkbox-group.scss";
6
+ @use "element-plus/theme-chalk/src/col.scss";
7
+ @use "element-plus/theme-chalk/src/container.scss";
8
+ @use "element-plus/theme-chalk/src/date-picker-panel.scss";
9
+ @use "element-plus/theme-chalk/src/dialog.scss";
10
+ @use "element-plus/theme-chalk/src/divider.scss";
11
+ @use "element-plus/theme-chalk/src/drawer.scss";
12
+ @use "element-plus/theme-chalk/src/form.scss";
13
+ @use "element-plus/theme-chalk/src/form-item.scss";
14
+ @use "element-plus/theme-chalk/src/header.scss";
15
+ @use "element-plus/theme-chalk/src/icon.scss";
16
+ @use "element-plus/theme-chalk/src/input.scss";
17
+ @use "element-plus/theme-chalk/src/input-number.scss";
18
+ @use "element-plus/theme-chalk/src/loading.scss";
19
+ @use "element-plus/theme-chalk/src/main.scss";
20
+ @use "element-plus/theme-chalk/src/menu.scss";
21
+ @use "element-plus/theme-chalk/src/menu-item.scss";
22
+ @use "element-plus/theme-chalk/src/message.scss";
23
+ @use "element-plus/theme-chalk/src/message-box.scss";
24
+ @use "element-plus/theme-chalk/src/option.scss";
25
+ @use "element-plus/theme-chalk/src/overlay.scss";
26
+ @use "element-plus/theme-chalk/src/pagination.scss";
27
+ @use "element-plus/theme-chalk/src/popper.scss";
28
+ @use "element-plus/theme-chalk/src/radio.scss";
29
+ @use "element-plus/theme-chalk/src/radio-group.scss";
30
+ @use "element-plus/theme-chalk/src/row.scss";
31
+ @use "element-plus/theme-chalk/src/scrollbar.scss";
32
+ @use "element-plus/theme-chalk/src/select.scss";
33
+ @use "element-plus/theme-chalk/src/select-dropdown.scss";
34
+ @use "element-plus/theme-chalk/src/slider.scss";
35
+ @use "element-plus/theme-chalk/src/sub-menu.scss";
36
+ @use "element-plus/theme-chalk/src/switch.scss";
37
+ @use "element-plus/theme-chalk/src/tab-pane.scss";
38
+ @use "element-plus/theme-chalk/src/table.scss";
39
+ @use "element-plus/theme-chalk/src/table-column.scss";
40
+ @use "element-plus/theme-chalk/src/tabs.scss";
41
+ @use "element-plus/theme-chalk/src/tag.scss";
42
+ @use "element-plus/theme-chalk/src/tooltip.scss";
43
+ @use "element-plus/theme-chalk/src/tree.scss";
44
+ @use "element-plus/theme-chalk/src/tree-select.scss";
45
+ @use "element-plus/theme-chalk/src/upload.scss";
46
+
47
+ html {
48
+ box-sizing: border-box;
49
+ min-width: 320px;
50
+ min-height: 100%;
51
+ background: var(--el-bg-color-page);
52
+ }
53
+
54
+ *,
55
+ *::before,
56
+ *::after {
57
+ box-sizing: inherit;
58
+ }
59
+
60
+ body {
61
+ min-width: 320px;
62
+ min-height: 100vh;
63
+ min-height: 100dvh;
64
+ margin: 0;
65
+ background: var(--el-bg-color-page);
66
+ }
67
+
68
+ .lumal-app {
69
+ min-height: 100vh;
70
+ }