vuesp-components 0.3.0 → 1.0.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 (246) hide show
  1. package/dist/App.vue.d.ts +3 -0
  2. package/dist/App.vue.d.ts.map +1 -0
  3. package/dist/app-B-BsxziJ.js +47 -0
  4. package/dist/components/app/AppAside.vue.d.ts +25 -0
  5. package/dist/components/app/AppAside.vue.d.ts.map +1 -0
  6. package/dist/components/app/AppDialog.vue.d.ts +32 -0
  7. package/dist/components/app/AppDialog.vue.d.ts.map +1 -0
  8. package/dist/components/app/AppHeader.vue.d.ts +10 -0
  9. package/dist/components/app/AppHeader.vue.d.ts.map +1 -0
  10. package/dist/components/app/AppNav.vue.d.ts +13 -0
  11. package/dist/components/app/AppNav.vue.d.ts.map +1 -0
  12. package/dist/components/app/AppNotification.vue.d.ts +11 -0
  13. package/dist/components/app/AppNotification.vue.d.ts.map +1 -0
  14. package/dist/components/app/AppOverlay.vue.d.ts +18 -0
  15. package/dist/components/app/AppOverlay.vue.d.ts.map +1 -0
  16. package/dist/components/app/index.d.ts +8 -0
  17. package/dist/components/app/index.d.ts.map +1 -0
  18. package/dist/components/dashboard/BlockItemEdit.vue.d.ts +16 -0
  19. package/dist/components/dashboard/BlockItemEdit.vue.d.ts.map +1 -0
  20. package/dist/components/dashboard/cards/CardBase.vue.d.ts +87 -0
  21. package/dist/components/dashboard/cards/CardBase.vue.d.ts.map +1 -0
  22. package/dist/components/dashboard/cards/CardButton.vue.d.ts +10 -0
  23. package/dist/components/dashboard/cards/CardButton.vue.d.ts.map +1 -0
  24. package/dist/components/dashboard/cards/CardDate.vue.d.ts +10 -0
  25. package/dist/components/dashboard/cards/CardDate.vue.d.ts.map +1 -0
  26. package/dist/components/dashboard/cards/CardDimmer.vue.d.ts +10 -0
  27. package/dist/components/dashboard/cards/CardDimmer.vue.d.ts.map +1 -0
  28. package/dist/components/dashboard/cards/CardInfo.vue.d.ts +23 -0
  29. package/dist/components/dashboard/cards/CardInfo.vue.d.ts.map +1 -0
  30. package/dist/components/dashboard/cards/CardInput.vue.d.ts +10 -0
  31. package/dist/components/dashboard/cards/CardInput.vue.d.ts.map +1 -0
  32. package/dist/components/dashboard/cards/CardList.vue.d.ts +10 -0
  33. package/dist/components/dashboard/cards/CardList.vue.d.ts.map +1 -0
  34. package/dist/components/dashboard/cards/CardSwitch.vue.d.ts +10 -0
  35. package/dist/components/dashboard/cards/CardSwitch.vue.d.ts.map +1 -0
  36. package/dist/components/dashboard/index.d.ts +11 -0
  37. package/dist/components/dashboard/index.d.ts.map +1 -0
  38. package/dist/components/general/blocks/BlockBreadcrumb.vue.d.ts +31 -0
  39. package/dist/components/general/blocks/BlockBreadcrumb.vue.d.ts.map +1 -0
  40. package/dist/components/general/blocks/BlockInfo.vue.d.ts +4 -0
  41. package/dist/components/general/blocks/BlockInfo.vue.d.ts.map +1 -0
  42. package/dist/components/general/blocks/BlockStatus.vue.d.ts +19 -0
  43. package/dist/components/general/blocks/BlockStatus.vue.d.ts.map +1 -0
  44. package/dist/components/general/blocks/BlockTable.vue.d.ts +37 -0
  45. package/dist/components/general/blocks/BlockTable.vue.d.ts.map +1 -0
  46. package/dist/components/general/blocks/index.d.ts +6 -0
  47. package/dist/components/general/blocks/index.d.ts.map +1 -0
  48. package/dist/components/general/cards/CardGray.vue.d.ts +23 -0
  49. package/dist/components/general/cards/CardGray.vue.d.ts.map +1 -0
  50. package/dist/components/general/cards/CardNotification.vue.d.ts +17 -0
  51. package/dist/components/general/cards/CardNotification.vue.d.ts.map +1 -0
  52. package/dist/components/general/cards/index.d.ts +4 -0
  53. package/dist/components/general/cards/index.d.ts.map +1 -0
  54. package/dist/components/general/forms/VButton.vue.d.ts +33 -0
  55. package/dist/components/general/forms/VButton.vue.d.ts.map +1 -0
  56. package/dist/components/general/forms/VCheckbox.vue.d.ts +26 -0
  57. package/dist/components/general/forms/VCheckbox.vue.d.ts.map +1 -0
  58. package/dist/components/general/forms/VDropdown.vue.d.ts +46 -0
  59. package/dist/components/general/forms/VDropdown.vue.d.ts.map +1 -0
  60. package/dist/components/general/forms/VExpansion.vue.d.ts +26 -0
  61. package/dist/components/general/forms/VExpansion.vue.d.ts.map +1 -0
  62. package/dist/components/general/forms/VIcons.vue.d.ts +6 -0
  63. package/dist/components/general/forms/VIcons.vue.d.ts.map +1 -0
  64. package/dist/components/general/forms/VList.vue.d.ts +28 -0
  65. package/dist/components/general/forms/VList.vue.d.ts.map +1 -0
  66. package/dist/components/general/forms/VListObject.vue.d.ts +11 -0
  67. package/dist/components/general/forms/VListObject.vue.d.ts.map +1 -0
  68. package/dist/components/general/forms/VLoader.vue.d.ts +3 -0
  69. package/dist/components/general/forms/VLoader.vue.d.ts.map +1 -0
  70. package/dist/components/general/forms/VSelect.vue.d.ts +33 -0
  71. package/dist/components/general/forms/VSelect.vue.d.ts.map +1 -0
  72. package/dist/components/general/forms/VTextField.vue.d.ts +43 -0
  73. package/dist/components/general/forms/VTextField.vue.d.ts.map +1 -0
  74. package/dist/components/general/forms/VTextFieldFile.vue.d.ts +29 -0
  75. package/dist/components/general/forms/VTextFieldFile.vue.d.ts.map +1 -0
  76. package/dist/components/general/forms/VWifiIcon.vue.d.ts +7 -0
  77. package/dist/components/general/forms/VWifiIcon.vue.d.ts.map +1 -0
  78. package/dist/components/general/forms/index.d.ts +15 -0
  79. package/dist/components/general/forms/index.d.ts.map +1 -0
  80. package/dist/components/general/index.d.ts +4 -0
  81. package/dist/components/general/index.d.ts.map +1 -0
  82. package/dist/dashboard/index.d.ts +21 -0
  83. package/dist/dashboard/index.d.ts.map +1 -0
  84. package/dist/dashboard/index.es.js +137 -0
  85. package/dist/dashboard/types.d.ts +38 -0
  86. package/dist/dashboard/types.d.ts.map +1 -0
  87. package/dist/dashboard/utils.d.ts +7 -0
  88. package/dist/dashboard/utils.d.ts.map +1 -0
  89. package/dist/helpers/app.d.ts +15 -0
  90. package/dist/helpers/app.d.ts.map +1 -0
  91. package/dist/helpers/fs.d.ts +9 -0
  92. package/dist/helpers/fs.d.ts.map +1 -0
  93. package/dist/helpers/index.d.ts +3 -0
  94. package/dist/helpers/index.d.ts.map +1 -0
  95. package/dist/helpers/index.es.js +32 -0
  96. package/dist/index.d.ts +7 -0
  97. package/dist/index.d.ts.map +1 -0
  98. package/dist/index.es.js +2444 -0
  99. package/dist/main.d.ts +1 -0
  100. package/dist/main.d.ts.map +1 -0
  101. package/dist/style.css +1 -0
  102. package/dist/types/components.d.ts +33 -0
  103. package/dist/types/components.d.ts.map +1 -0
  104. package/dist/types/store.d.ts +104 -0
  105. package/dist/types/store.d.ts.map +1 -0
  106. package/dist/types/types.d.ts +4 -0
  107. package/dist/types/types.d.ts.map +1 -0
  108. package/dist/utils/directives/index.d.ts +8 -0
  109. package/dist/utils/directives/index.d.ts.map +1 -0
  110. package/dist/utils/directives/outside.d.ts +9 -0
  111. package/dist/utils/directives/outside.d.ts.map +1 -0
  112. package/package.json +48 -26
  113. package/dist/VAutocomplete.vue.d.ts +0 -25
  114. package/dist/VAutocomplete.vue.d.ts.map +0 -1
  115. package/dist/VDropdown.vue.d.ts +0 -31
  116. package/dist/VDropdown.vue.d.ts.map +0 -1
  117. package/dist/VExpansion.vue.d.ts +0 -16
  118. package/dist/VExpansion.vue.d.ts.map +0 -1
  119. package/dist/VLoader.vue.d.ts +0 -3
  120. package/dist/VLoader.vue.d.ts.map +0 -1
  121. package/dist/VNotification.vue.d.ts +0 -47
  122. package/dist/VNotification.vue.d.ts.map +0 -1
  123. package/dist/VTextField.vue.d.ts +0 -43
  124. package/dist/VTextField.vue.d.ts.map +0 -1
  125. package/dist/VTextarea.vue.d.ts +0 -43
  126. package/dist/VTextarea.vue.d.ts.map +0 -1
  127. package/dist/app/AppDialog.vue.d.ts +0 -4
  128. package/dist/app/AppDialog.vue.d.ts.map +0 -1
  129. package/dist/app/AppHeader.vue.d.ts +0 -4
  130. package/dist/app/AppHeader.vue.d.ts.map +0 -1
  131. package/dist/app/AppNotification.vue.d.ts +0 -4
  132. package/dist/app/AppNotification.vue.d.ts.map +0 -1
  133. package/dist/app/AppOverlay.vue.d.ts +0 -3
  134. package/dist/app/AppOverlay.vue.d.ts.map +0 -1
  135. package/dist/cards/VCardGray.vue.d.ts +0 -5
  136. package/dist/cards/VCardGray.vue.d.ts.map +0 -1
  137. package/dist/dashboard/BlockItemEdit.vue.d.ts +0 -4
  138. package/dist/dashboard/BlockItemEdit.vue.d.ts.map +0 -1
  139. package/dist/dashboard/cards/CardBase.vue.d.ts +0 -4
  140. package/dist/dashboard/cards/CardBase.vue.d.ts.map +0 -1
  141. package/dist/dashboard/cards/CardButton.vue.d.ts +0 -4
  142. package/dist/dashboard/cards/CardButton.vue.d.ts.map +0 -1
  143. package/dist/dashboard/cards/CardDate.vue.d.ts +0 -4
  144. package/dist/dashboard/cards/CardDate.vue.d.ts.map +0 -1
  145. package/dist/dashboard/cards/CardDimmer.vue.d.ts +0 -4
  146. package/dist/dashboard/cards/CardDimmer.vue.d.ts.map +0 -1
  147. package/dist/dashboard/cards/CardInfo.vue.d.ts +0 -4
  148. package/dist/dashboard/cards/CardInfo.vue.d.ts.map +0 -1
  149. package/dist/dashboard/cards/CardInput.vue.d.ts +0 -4
  150. package/dist/dashboard/cards/CardInput.vue.d.ts.map +0 -1
  151. package/dist/dashboard/cards/CardList.vue.d.ts +0 -4
  152. package/dist/dashboard/cards/CardList.vue.d.ts.map +0 -1
  153. package/dist/dashboard/cards/CardSwitch.vue.d.ts +0 -4
  154. package/dist/dashboard/cards/CardSwitch.vue.d.ts.map +0 -1
  155. package/dist/general/VBreadcrumb.vue.d.ts +0 -4
  156. package/dist/general/VBreadcrumb.vue.d.ts.map +0 -1
  157. package/dist/general/VButton.vue.d.ts +0 -4
  158. package/dist/general/VButton.vue.d.ts.map +0 -1
  159. package/dist/general/VCheckbox.vue.d.ts +0 -4
  160. package/dist/general/VCheckbox.vue.d.ts.map +0 -1
  161. package/dist/general/VList.vue.d.ts +0 -4
  162. package/dist/general/VList.vue.d.ts.map +0 -1
  163. package/dist/general/VSelect.vue.d.ts +0 -4
  164. package/dist/general/VSelect.vue.d.ts.map +0 -1
  165. package/dist/general/VTable.vue.d.ts +0 -4
  166. package/dist/general/VTable.vue.d.ts.map +0 -1
  167. package/dist/general/VTextFieldFile.vue.d.ts +0 -4
  168. package/dist/general/VTextFieldFile.vue.d.ts.map +0 -1
  169. package/dist/general/WifiIcon.vue.d.ts +0 -4
  170. package/dist/general/WifiIcon.vue.d.ts.map +0 -1
  171. package/dist/icons/IconAir.vue.d.ts +0 -3
  172. package/dist/icons/IconAir.vue.d.ts.map +0 -1
  173. package/dist/icons/IconBulb.vue.d.ts +0 -3
  174. package/dist/icons/IconBulb.vue.d.ts.map +0 -1
  175. package/dist/icons/IconBurger.vue.d.ts +0 -3
  176. package/dist/icons/IconBurger.vue.d.ts.map +0 -1
  177. package/dist/icons/IconCamera.vue.d.ts +0 -3
  178. package/dist/icons/IconCamera.vue.d.ts.map +0 -1
  179. package/dist/icons/IconChevron.vue.d.ts +0 -3
  180. package/dist/icons/IconChevron.vue.d.ts.map +0 -1
  181. package/dist/icons/IconClose.vue.d.ts +0 -3
  182. package/dist/icons/IconClose.vue.d.ts.map +0 -1
  183. package/dist/icons/IconCold.vue.d.ts +0 -3
  184. package/dist/icons/IconCold.vue.d.ts.map +0 -1
  185. package/dist/icons/IconDashboard.vue.d.ts +0 -3
  186. package/dist/icons/IconDashboard.vue.d.ts.map +0 -1
  187. package/dist/icons/IconDevice.vue.d.ts +0 -3
  188. package/dist/icons/IconDevice.vue.d.ts.map +0 -1
  189. package/dist/icons/IconDots.vue.d.ts +0 -3
  190. package/dist/icons/IconDots.vue.d.ts.map +0 -1
  191. package/dist/icons/IconDrop.vue.d.ts +0 -3
  192. package/dist/icons/IconDrop.vue.d.ts.map +0 -1
  193. package/dist/icons/IconEyeClose.vue.d.ts +0 -3
  194. package/dist/icons/IconEyeClose.vue.d.ts.map +0 -1
  195. package/dist/icons/IconEyeOpen.vue.d.ts +0 -3
  196. package/dist/icons/IconEyeOpen.vue.d.ts.map +0 -1
  197. package/dist/icons/IconFile.vue.d.ts +0 -3
  198. package/dist/icons/IconFile.vue.d.ts.map +0 -1
  199. package/dist/icons/IconFolder.vue.d.ts +0 -3
  200. package/dist/icons/IconFolder.vue.d.ts.map +0 -1
  201. package/dist/icons/IconGarage.vue.d.ts +0 -3
  202. package/dist/icons/IconGarage.vue.d.ts.map +0 -1
  203. package/dist/icons/IconGpio.vue.d.ts +0 -3
  204. package/dist/icons/IconGpio.vue.d.ts.map +0 -1
  205. package/dist/icons/IconHeater.vue.d.ts +0 -3
  206. package/dist/icons/IconHeater.vue.d.ts.map +0 -1
  207. package/dist/icons/IconLight.vue.d.ts +0 -3
  208. package/dist/icons/IconLight.vue.d.ts.map +0 -1
  209. package/dist/icons/IconLock.vue.d.ts +0 -3
  210. package/dist/icons/IconLock.vue.d.ts.map +0 -1
  211. package/dist/icons/IconLogo.vue.d.ts +0 -3
  212. package/dist/icons/IconLogo.vue.d.ts.map +0 -1
  213. package/dist/icons/IconLogoMini.vue.d.ts +0 -3
  214. package/dist/icons/IconLogoMini.vue.d.ts.map +0 -1
  215. package/dist/icons/IconLogout.vue.d.ts +0 -3
  216. package/dist/icons/IconLogout.vue.d.ts.map +0 -1
  217. package/dist/icons/IconNoti.vue.d.ts +0 -3
  218. package/dist/icons/IconNoti.vue.d.ts.map +0 -1
  219. package/dist/icons/IconPower.vue.d.ts +0 -3
  220. package/dist/icons/IconPower.vue.d.ts.map +0 -1
  221. package/dist/icons/IconSave.vue.d.ts +0 -3
  222. package/dist/icons/IconSave.vue.d.ts.map +0 -1
  223. package/dist/icons/IconSearch.vue.d.ts +0 -3
  224. package/dist/icons/IconSearch.vue.d.ts.map +0 -1
  225. package/dist/icons/IconSetting.vue.d.ts +0 -3
  226. package/dist/icons/IconSetting.vue.d.ts.map +0 -1
  227. package/dist/icons/IconSocket.vue.d.ts +0 -3
  228. package/dist/icons/IconSocket.vue.d.ts.map +0 -1
  229. package/dist/icons/IconStore.vue.d.ts +0 -3
  230. package/dist/icons/IconStore.vue.d.ts.map +0 -1
  231. package/dist/icons/IconTheme.vue.d.ts +0 -3
  232. package/dist/icons/IconTheme.vue.d.ts.map +0 -1
  233. package/dist/icons/IconTherm.vue.d.ts +0 -3
  234. package/dist/icons/IconTherm.vue.d.ts.map +0 -1
  235. package/dist/icons/IconTv.vue.d.ts +0 -3
  236. package/dist/icons/IconTv.vue.d.ts.map +0 -1
  237. package/dist/icons/IconUpdate.vue.d.ts +0 -3
  238. package/dist/icons/IconUpdate.vue.d.ts.map +0 -1
  239. package/dist/icons/IconVent.vue.d.ts +0 -3
  240. package/dist/icons/IconVent.vue.d.ts.map +0 -1
  241. package/dist/icons/IconVideo.vue.d.ts +0 -3
  242. package/dist/icons/IconVideo.vue.d.ts.map +0 -1
  243. package/dist/types/index.d.ts +0 -4
  244. package/dist/vuesp-components.css +0 -1
  245. package/dist/vuesp-components.es.js +0 -2230
  246. package/dist/vuesp-components.umd.js +0 -7
@@ -0,0 +1,2444 @@
1
+ import { defineComponent as $, ref as S, computed as z, createElementBlock as c, openBlock as n, createElementVNode as l, createCommentVNode as C, normalizeClass as w, createBlock as k, toDisplayString as x, resolveDynamicComponent as E, mergeProps as F, withKeys as me, renderSlot as _, createTextVNode as V, resolveDirective as pe, withDirectives as se, createVNode as v, Transition as ae, withCtx as m, normalizeStyle as G, Fragment as I, renderList as H, unref as M, onMounted as q, normalizeProps as T, guardReactiveProps as D, withModifiers as L, vShow as ge, resolveComponent as P, onUnmounted as ye, Teleport as be, TransitionGroup as xe, watch as ke } from "vue";
2
+ import { t as J, s as _e, f as $e } from "./app-B-BsxziJ.js";
3
+ import { Dashboard as un, createObjectFromPaths as fn, functionToString as hn, safeEval as vn, saveObjectWithFunctions as mn, stringToFunction as pn } from "./dashboard/index.es.js";
4
+ const we = {
5
+ mounted(t, e) {
6
+ t.clickOutsideEvent = function(i) {
7
+ t === i.target || t.contains(i.target) || e.value(i, t);
8
+ }, document.addEventListener("click", t.clickOutsideEvent);
9
+ },
10
+ unmounted(t) {
11
+ document.removeEventListener("click", t.clickOutsideEvent), delete t.clickOutsideEvent;
12
+ }
13
+ }, Ce = [{ name: "outside", directive: we }], Ve = { class: "w-full relative" }, ze = ["disabled"], Me = {
14
+ key: 0,
15
+ class: "text-red-500 h-[24px] px-2 text-xs"
16
+ }, Ie = "after:absolute after:h-1 after:w-full after:left-0 after:translate-y-[6px] after:-z-10 dark:after:bg-gray-800 after:bg-white after:transition-all", A = /* @__PURE__ */ $({
17
+ __name: "VTextField",
18
+ props: {
19
+ modelValue: { default: null },
20
+ label: { default: "" },
21
+ component: { default: "input" },
22
+ type: { default: "text" },
23
+ message: { default: "" },
24
+ readonly: { type: Boolean },
25
+ disabled: { type: Boolean, default: !1 },
26
+ active: { type: Boolean, default: !1 },
27
+ hideMessage: { type: Boolean, default: !1 },
28
+ rules: {}
29
+ },
30
+ emits: ["update:modelValue", "click", "on-icon", "enter", "blur"],
31
+ setup(t, { emit: e }) {
32
+ const i = e, o = {
33
+ input: "w-full h-full px-4 outline-none overflow-ellipsis flex-auto overflow-hidden w-[calc(100% - 20px)] bg-transparent",
34
+ textarea: "h-full w-full px-4 py-2 outline-none flex-auto bg-transparent"
35
+ }, r = S(!1), d = z(() => [
36
+ t.message ? "border-red-500 hover:border-red-400" : "",
37
+ t.disabled ? "border-gray-400 opacity-40" : "border-gray-300 hover:border-gray-400 dark:border-gray-700/50 hover:dark:border-gray-600/50"
38
+ ]), a = z(() => o[t.component]), f = (y) => y || y === 0, u = z(() => [Ie, r.value || f(t.modelValue) || t.active ? "top-0 left-3 text-xs" : "top-1/2"]), s = z(() => t.component === "input"), h = ({ target: y }) => {
39
+ i("update:modelValue", y.value);
40
+ }, p = (y) => {
41
+ r.value = !1, i("blur", y);
42
+ }, g = (y) => i("enter", y), b = () => r.value = !0, N = (y) => i("click", y), j = (y) => {
43
+ t.disabled || i("on-icon", y);
44
+ };
45
+ return (y, ve) => (n(), c("div", Ve, [
46
+ l("label", {
47
+ class: w(["relative w-full min-h-[40px] border border-gray-300 dark:border-gray-700 flex items-center rounded transition dark:bg-gray-800", d.value])
48
+ }, [
49
+ l("span", {
50
+ class: w(["absolute left-4 transition-all rounded -translate-y-1/2 text-gray-600 dark:text-gray-400", u.value])
51
+ }, x(y.label), 3),
52
+ (n(), k(E(y.component), F(y.$attrs, {
53
+ value: y.modelValue,
54
+ disabled: y.disabled,
55
+ type: y.type,
56
+ rows: s.value ? null : "2",
57
+ wrap: s.value ? null : "soft",
58
+ class: a.value,
59
+ onFocus: b,
60
+ onBlur: p,
61
+ onInput: h,
62
+ onClick: N,
63
+ onKeypress: me(g, ["enter"])
64
+ }), null, 16, ["value", "disabled", "type", "rows", "wrap", "class"])),
65
+ y.$slots.icon ? (n(), c("button", {
66
+ key: 0,
67
+ disabled: y.disabled,
68
+ style: { flex: "0 0 50px" },
69
+ class: w([{ "cursor-pointer": !y.disabled }, "h-full flex items-center justify-center text-gray-400 border-l border-gray-300 dark:border-gray-700/50"]),
70
+ onClick: j
71
+ }, [
72
+ _(y.$slots, "icon")
73
+ ], 10, ze)) : C("", !0)
74
+ ], 2),
75
+ y.hideMessage ? C("", !0) : (n(), c("div", Me, [
76
+ _(y.$slots, "message", {}, () => [
77
+ V(x(y.message), 1)
78
+ ])
79
+ ]))
80
+ ]));
81
+ }
82
+ }), Be = { class: "relative" }, Se = { class: "flex items-center cursor-pointer" }, Z = /* @__PURE__ */ $({
83
+ __name: "VDropdown",
84
+ props: {
85
+ top: { default: "calc(100% + 5px)" },
86
+ left: { default: "0" },
87
+ right: { default: "" },
88
+ height: { default: "200px" },
89
+ hideOnClick: { type: Boolean, default: !1 }
90
+ },
91
+ emits: ["click", "show", "close"],
92
+ setup(t, { emit: e }) {
93
+ const i = e, o = S(!1), r = z(() => ({ top: t.top, left: t.left, right: t.right, "max-height": t.height })), d = (h) => {
94
+ o.value && u(h);
95
+ }, a = (h) => {
96
+ o.value ? t.hideOnClick && u(h) : f(h), i("click", o.value);
97
+ }, f = (h) => {
98
+ o.value = !0, i("show", h);
99
+ }, u = (h) => {
100
+ o.value = !1, i("close", h);
101
+ }, s = { click: a };
102
+ return (h, p) => {
103
+ const g = pe("outside");
104
+ return se((n(), c("div", Be, [
105
+ l("div", Se, [
106
+ _(h.$slots, "activator", {
107
+ on: s,
108
+ show: o.value
109
+ })
110
+ ]),
111
+ v(ae, {
112
+ "enter-active-class": "duration-300 ease-out",
113
+ "enter-from-class": "transform opacity-0 -translate-y-2",
114
+ "enter-to-class": "opacity-100 translate-y-0",
115
+ "leave-active-class": "duration-200 ease-in",
116
+ "leave-from-class": "opacity-100 translate-y-0",
117
+ "leave-to-class": "transform opacity-0 -translate-y-2"
118
+ }, {
119
+ default: m(() => [
120
+ o.value ? (n(), c("div", {
121
+ key: 0,
122
+ class: "z-10 min-w-full absolute overflow-auto shadow-lg",
123
+ style: G(r.value),
124
+ onClick: a
125
+ }, [
126
+ _(h.$slots, "default", {
127
+ on: s,
128
+ show: f,
129
+ hide: u,
130
+ isShown: o.value
131
+ })
132
+ ], 4)) : C("", !0)
133
+ ]),
134
+ _: 3
135
+ })
136
+ ])), [
137
+ [g, d]
138
+ ]);
139
+ };
140
+ }
141
+ }), Ae = { class: "bg-white dark:bg-gray-800" }, Fe = ["onClick"], Q = /* @__PURE__ */ $({
142
+ __name: "VList",
143
+ props: {
144
+ list: { default: () => [] }
145
+ },
146
+ emits: ["click"],
147
+ setup(t, { emit: e }) {
148
+ const i = e, o = (r) => i("click", r);
149
+ return (r, d) => (n(), c("ul", Ae, [
150
+ (n(!0), c(I, null, H(r.list, (a) => (n(), c("li", {
151
+ key: a.id,
152
+ class: "whitespace-nowrap cursor-pointer flex items-center min-h-[40px] py-1 px-6 border-b last:border-b-0 dark:border-gray-700 border-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700",
153
+ onClick: (f) => o(a)
154
+ }, [
155
+ _(r.$slots, "default", { item: a }, () => [
156
+ V(x(a.name), 1)
157
+ ])
158
+ ], 8, Fe))), 128))
159
+ ]));
160
+ }
161
+ }), He = {
162
+ width: "24",
163
+ height: "24",
164
+ fill: "currentColor",
165
+ viewBox: "0 0 24 24"
166
+ };
167
+ function Le(t, e) {
168
+ return n(), c("svg", He, [...e[0] || (e[0] = [
169
+ l("path", { d: "m12 13.171 4.95-4.95 1.414 1.415L12 16 5.636 9.636 7.05 8.222z" }, null, -1)
170
+ ])]);
171
+ }
172
+ const U = { render: Le }, je = {
173
+ key: 0,
174
+ class: "p-4 py-2"
175
+ }, Y0 = {
176
+ __name: "VAutocomplete",
177
+ props: {
178
+ value: { type: String, default: "" },
179
+ valueName: { type: String, default: "name" },
180
+ placeholder: { type: String, default: "" },
181
+ list: { type: Array, default: () => [] }
182
+ },
183
+ emits: ["change"],
184
+ setup(t) {
185
+ const e = t, i = S(""), o = z(() => e.value), r = z(() => ((e == null ? void 0 : e.list) || []).filter((h) => i.value ? h[e.valueName].toLowerCase().includes(i.value.toLowerCase()) : !0)), d = z(() => e.placeholder), a = z(() => {
186
+ var s;
187
+ return !((s = r == null ? void 0 : r.value) != null && s.length);
188
+ }), f = (s) => i.value = s.target.value, u = (s) => ({ "rotate-x-180": s });
189
+ return (s, h) => (n(), k(Z, F(s.$attrs, { top: "50px" }), {
190
+ activator: m(({ show: p, on: g }) => [
191
+ v(A, {
192
+ value: p ? i.value : o.value,
193
+ placeholder: p ? "Search" : d.value,
194
+ onClick: g.click,
195
+ onInput: f,
196
+ onOnIcon: g.click,
197
+ onFocus: h[0] || (h[0] = (b) => i.value = "")
198
+ }, {
199
+ icon: m(() => [
200
+ v(M(U), {
201
+ class: w(["transition", u(p)])
202
+ }, null, 8, ["class"])
203
+ ]),
204
+ _: 2
205
+ }, 1032, ["value", "placeholder", "onClick", "onOnIcon"])
206
+ ]),
207
+ default: m(() => [
208
+ l("div", null, [
209
+ v(Q, {
210
+ list: r.value,
211
+ onClick: h[1] || (h[1] = (p) => s.$emit("change", p))
212
+ }, {
213
+ default: m(({ item: p }) => [
214
+ _(s.$slots, "default", { item: p }, () => [
215
+ V(x(p[t.valueName]), 1)
216
+ ])
217
+ ]),
218
+ _: 3
219
+ }, 8, ["list"])
220
+ ]),
221
+ a.value ? (n(), c("div", je, "Not found")) : C("", !0)
222
+ ]),
223
+ _: 3
224
+ }, 16));
225
+ }
226
+ }, re = (t, e) => {
227
+ const i = t.__vccOpts || t;
228
+ for (const [o, r] of e)
229
+ i[o] = r;
230
+ return i;
231
+ }, Te = {}, De = {
232
+ class: "animate-spin h-6 w-6",
233
+ fill: "none",
234
+ viewBox: "0 0 24 24"
235
+ };
236
+ function Oe(t, e) {
237
+ return n(), c("svg", De, [...e[0] || (e[0] = [
238
+ l("circle", {
239
+ class: "opacity-25",
240
+ cx: "12",
241
+ cy: "12",
242
+ r: "10",
243
+ stroke: "currentColor",
244
+ "stroke-width": "2"
245
+ }, null, -1),
246
+ l("path", {
247
+ class: "opacity-75",
248
+ fill: "currentColor",
249
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
250
+ }, null, -1)
251
+ ])]);
252
+ }
253
+ const ie = /* @__PURE__ */ re(Te, [["render", Oe]]), Ne = "relative flex justify-center items-center transition not-disabled:cursor-pointer not-disabled:hover:opacity-90 disabled:opacity-40 rounded", B = /* @__PURE__ */ $({
254
+ __name: "VButton",
255
+ props: {
256
+ block: { type: Boolean },
257
+ outline: { type: Boolean, default: !1 },
258
+ color: { default: "gray" },
259
+ size: { default: "normal" },
260
+ type: { default: "button" },
261
+ href: { default: "" },
262
+ to: { default: "" },
263
+ loading: { type: Boolean, default: !1 },
264
+ disabled: { type: Boolean, default: !1 }
265
+ },
266
+ emits: ["click"],
267
+ setup(t, { emit: e }) {
268
+ const i = e, o = (y) => i("click", y), r = t.outline ? "border border-green-600 text-green-600" : "bg-green-600 dark:bg-green-800", d = t.outline ? "border border-red-600 text-red-600" : "bg-red-600 dark:bg-red-800", a = t.outline ? "border border-gray-600 text-gray-600" : "bg-gray-700 dark:bg-gray-800", f = t.outline ? "border border-blue-600 text-blue-600" : "bg-blue-700 dark:bg-blue-800", u = { green: r, red: d, gray: a, blue: f }, s = {
269
+ button: "px-4",
270
+ icon: "h-10 w-10 rounded-full border border-gray-200 dark:border-gray-800"
271
+ }, h = { normal: "h-10", small: "h-8" }, p = (y) => (h == null ? void 0 : h[y]) || "", g = (y) => (s == null ? void 0 : s[y]) || "", b = (y) => t.type === "icon" ? "" : `${t.outline ? "dark:text-white" : "text-white"} ${(u == null ? void 0 : u[y]) || ""}`, N = z(() => [Ne, b(t.color), g(t.type), p(t.size), { "w-full": t.block }]), j = z(() => t.href || t.to ? "router-link" : "button");
272
+ return (y, ve) => (n(), k(E(j.value), F(y.$attrs, {
273
+ href: y.href,
274
+ to: y.to,
275
+ class: N.value,
276
+ disabled: y.disabled,
277
+ onClick: o
278
+ }), {
279
+ default: m(() => [
280
+ l("span", {
281
+ class: w(y.loading ? "opacity-0" : "")
282
+ }, [
283
+ _(y.$slots, "default")
284
+ ], 2),
285
+ y.loading ? (n(), k(ie, {
286
+ key: 0,
287
+ class: "absolute left-1/2 -translate-x-1/2"
288
+ })) : C("", !0)
289
+ ]),
290
+ _: 3
291
+ }, 16, ["href", "to", "class", "disabled"]));
292
+ }
293
+ }), Ee = ["checked", "disabled"], Pe = { class: "text-sm ms-2 peer-disabled:opacity-40" }, en = /* @__PURE__ */ $({
294
+ __name: "VCheckbox",
295
+ props: {
296
+ modelValue: { type: [Number, Boolean], default: !1 },
297
+ disabled: { type: Boolean, default: !1 }
298
+ },
299
+ emits: ["update:modelValue"],
300
+ setup(t, { emit: e }) {
301
+ const i = e, o = ({ target: r }) => i("update:modelValue", r.checked);
302
+ return (r, d) => (n(), c("label", {
303
+ class: w(["inline-flex items-center relative", { "cursor-pointer": !r.disabled }])
304
+ }, [
305
+ l("input", {
306
+ type: "checkbox",
307
+ checked: !!r.modelValue,
308
+ disabled: r.disabled,
309
+ class: w(["peer h-5 w-5 transition-all appearance-none rounded border border-gray-300 dark:border-gray-700 disabled:opacity-40", { "cursor-pointer": !r.disabled }]),
310
+ onChange: o
311
+ }, null, 42, Ee),
312
+ d[0] || (d[0] = l("span", { class: "absolute opacity-0 peer-checked:opacity-100 peer-disabled:opacity-40 top-1/2 left-[10px] transform -translate-x-1/2 -translate-y-1/2 pointer-events-none" }, [
313
+ l("svg", {
314
+ class: "h-3.5 w-3.5",
315
+ viewBox: "0 0 20 20",
316
+ fill: "currentColor",
317
+ stroke: "currentColor",
318
+ "stroke-width": "1"
319
+ }, [
320
+ l("path", {
321
+ "fill-rule": "evenodd",
322
+ d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
323
+ "clip-rule": "evenodd"
324
+ })
325
+ ])
326
+ ], -1)),
327
+ l("span", Pe, [
328
+ _(r.$slots, "default")
329
+ ])
330
+ ], 2));
331
+ }
332
+ }), Ue = { class: "v-expansion__content max-h-0 overflow-hidden transition-all duration-300" }, Ge = { class: "p-4" }, tn = /* @__PURE__ */ $({
333
+ __name: "VExpansion",
334
+ props: {
335
+ label: { default: "" },
336
+ value: { type: Boolean, default: !1 }
337
+ },
338
+ setup(t) {
339
+ const e = S(null), i = S(t.value), o = () => {
340
+ if (!e.value) return;
341
+ const d = e.value.querySelector(".v-expansion__content");
342
+ d && (d.style.maxHeight = i.value ? `${d.scrollHeight}px` : "0");
343
+ }, r = () => {
344
+ i.value = !i.value, o();
345
+ };
346
+ return q(() => {
347
+ o();
348
+ }), (d, a) => (n(), c("div", {
349
+ ref_key: "root",
350
+ ref: e,
351
+ class: "border-b dark:border-gray-700 border-gray-200"
352
+ }, [
353
+ l("div", {
354
+ class: "cursor-pointer min-h-[60px] px-4 flex items-center justify-between",
355
+ onClick: r
356
+ }, [
357
+ l("h4", null, x(d.label), 1),
358
+ l("div", {
359
+ class: w(["transition text-gray-400", { "rotate-180": i.value }])
360
+ }, [
361
+ v(M(U))
362
+ ], 2)
363
+ ]),
364
+ l("div", Ue, [
365
+ l("div", Ge, [
366
+ _(d.$slots, "default")
367
+ ])
368
+ ])
369
+ ], 512));
370
+ }
371
+ }), K = /* @__PURE__ */ $({
372
+ __name: "VSelect",
373
+ props: {
374
+ value: { default: "" },
375
+ valueName: { default: "name" },
376
+ label: {},
377
+ disabled: { type: Boolean, default: !1 },
378
+ list: { default: () => [] }
379
+ },
380
+ emits: ["update:modelValue", "change"],
381
+ setup(t, { emit: e }) {
382
+ const i = e, o = z(() => {
383
+ var a;
384
+ return ((a = t.list.find((f) => f.value === t.value)) == null ? void 0 : a[t.valueName]) || "";
385
+ }), r = (a) => ({ "rotate-x-180": a }), d = (a, f) => {
386
+ console.log(a), a.click(f), i("change", f);
387
+ };
388
+ return (a, f) => (n(), k(Z, F({ class: "relative w-full" }, a.$attrs, {
389
+ top: "50px",
390
+ hideOnClick: ""
391
+ }), {
392
+ activator: m(({ on: u, show: s }) => [
393
+ v(A, {
394
+ "model-value": o.value,
395
+ readonly: "",
396
+ hideMessage: "",
397
+ disabled: a.disabled,
398
+ active: "",
399
+ label: a.label,
400
+ onClick: u.click,
401
+ onOnIcon: u.click
402
+ }, {
403
+ icon: m(() => [
404
+ v(M(U), {
405
+ class: w(["transition", r(s)])
406
+ }, null, 8, ["class"])
407
+ ]),
408
+ _: 2
409
+ }, 1032, ["model-value", "disabled", "label", "onClick", "onOnIcon"])
410
+ ]),
411
+ default: m(({ on: u }) => [
412
+ v(Q, {
413
+ list: a.list,
414
+ onClick: (s) => d(u, s)
415
+ }, {
416
+ default: m(({ item: s }) => [
417
+ _(a.$slots, "default", { item: s }, () => [
418
+ V(x(s.name), 1)
419
+ ])
420
+ ]),
421
+ _: 3
422
+ }, 8, ["list", "onClick"])
423
+ ]),
424
+ _: 3
425
+ }, 16));
426
+ }
427
+ }), qe = { class: "flex items-center cursor-pointer" }, ln = /* @__PURE__ */ $({
428
+ __name: "VTextFieldFile",
429
+ emits: ["change"],
430
+ setup(t, { emit: e }) {
431
+ const i = e, o = S({ files: [], totalSize: 0 }), r = async (d) => {
432
+ const a = d.target.files, f = { files: [], totalSize: 0 };
433
+ for (let u = 0; u < a.length; u++) {
434
+ const s = a.item(u);
435
+ s && (f.totalSize += s.size, f.files.push({ name: s.name, size: s.size }));
436
+ }
437
+ a.length && (o.value = f, i("change", { files: a, info: f }));
438
+ };
439
+ return (d, a) => (n(), c("label", qe, [
440
+ l("input", F({
441
+ type: "file",
442
+ class: "hidden"
443
+ }, d.$attrs, { onChange: r }), null, 16),
444
+ _(d.$slots, "default", T(D(o.value)))
445
+ ]));
446
+ }
447
+ }), Ke = {
448
+ width: "24",
449
+ height: "24",
450
+ fill: "currentColor",
451
+ viewBox: "0 0 24 24"
452
+ };
453
+ function Re(t, e) {
454
+ return n(), c("svg", Ke, [...e[0] || (e[0] = [
455
+ l("path", { d: "M21 3H3a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m0 9H3V5h18ZM5 10a1 1 0 0 1 1-1h12a1 1 0 0 1 0 2H6a1 1 0 0 1-1-1m11-3a1 1 0 0 1 1-1h1a1 1 0 0 1 0 2h-1a1 1 0 0 1-1-1M9.793 20.293 11.086 19l-.293-.293a1 1 0 0 1 0-1.414l2-2a1 1 0 0 1 1.414 1.414L12.914 18l.293.293a1 1 0 0 1 0 1.414l-2 2a1 1 0 0 1-1.414-1.414m5.5 0L16.586 19l-.293-.293a1 1 0 0 1 0-1.414l2-2a1 1 0 0 1 1.414 1.414L18.414 18l.293.293a1 1 0 0 1 0 1.414l-2 2a1 1 0 0 1-1.414-1.414m-11 0L5.586 19l-.293-.293a1 1 0 0 1 0-1.414l2-2a1 1 0 0 1 1.414 1.414L7.414 18l.293.293a1 1 0 0 1 0 1.414l-2 2a1 1 0 0 1-1.414-1.414" }, null, -1)
456
+ ])]);
457
+ }
458
+ const We = { render: Re }, Ze = {
459
+ width: "24",
460
+ height: "24",
461
+ fill: "currentColor",
462
+ viewBox: "-2 0 15.998 15.998"
463
+ };
464
+ function Qe(t, e) {
465
+ return n(), c("svg", Ze, [...e[0] || (e[0] = [
466
+ l("path", {
467
+ d: "M9.785 1.341A6.04 6.04 0 0 0 4.718.132a5.98 5.98 0 0 0-4.6 4.673 5.97 5.97 0 0 0 1.884 5.665v.028a2.49 2.49 0 0 0 1 1.989v1.011a1.5 1.5 0 0 0 1.5 1.5h.355a1.17 1.17 0 0 0 1.145 1 1.17 1.17 0 0 0 1.145-1h.355a1.5 1.5 0 0 0 1.5-1.5v-1.011a2.49 2.49 0 0 0 1-1.989v-.028a5.98 5.98 0 0 0 2-4.472 5.98 5.98 0 0 0-2.217-4.657M8.002 12.998v.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-.5zm1.182-3.143a.5.5 0 0 0-.182.386v.257a1.5 1.5 0 0 1-1.5 1.5h-3a1.5 1.5 0 0 1-1.5-1.5v-.257a.5.5 0 0 0-.182-.386 4.98 4.98 0 0 1-1.718-4.857 4.97 4.97 0 0 1 3.821-3.884A5.3 5.3 0 0 1 5.99.998a5 5 0 0 1 3.164 1.117 4.98 4.98 0 0 1 1.848 3.883 4.99 4.99 0 0 1-1.818 3.857M6.502 3.498a.5.5 0 0 1-.5.5 2 2 0 0 0-2 2 .5.5 0 0 1-.5.5.5.5 0 0 1-.5-.5 3 3 0 0 1 3-3 .5.5 0 0 1 .5.5",
468
+ "data-name": "Path 81"
469
+ }, null, -1)
470
+ ])]);
471
+ }
472
+ const Je = { render: Qe }, Xe = {
473
+ width: "24",
474
+ height: "24",
475
+ fill: "none",
476
+ viewBox: "0 0 24 24"
477
+ };
478
+ function Ye(t, e) {
479
+ return n(), c("svg", Xe, [...e[0] || (e[0] = [
480
+ l("path", {
481
+ stroke: "currentColor",
482
+ "stroke-linecap": "round",
483
+ "stroke-linejoin": "round",
484
+ "stroke-width": "2",
485
+ d: "M12 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6"
486
+ }, null, -1),
487
+ l("path", {
488
+ stroke: "currentColor",
489
+ "stroke-linecap": "round",
490
+ "stroke-linejoin": "round",
491
+ "stroke-width": "2",
492
+ d: "M3 16.8V9.2c0-1.12 0-1.68.218-2.108a2 2 0 0 1 .874-.874C4.52 6 5.08 6 6.2 6h1.055c.123 0 .184 0 .24-.006a1 1 0 0 0 .725-.448c.03-.048.058-.103.113-.213.11-.22.165-.33.228-.425a2 2 0 0 1 1.447-.895C10.123 4 10.246 4 10.492 4h3.018c.246 0 .37 0 .482.013a2 2 0 0 1 1.448.895c.063.095.118.205.228.425.055.11.082.165.113.213a1 1 0 0 0 .724.447c.057.007.118.007.241.007H17.8c1.12 0 1.68 0 2.108.218a2 2 0 0 1 .874.874C21 7.52 21 8.08 21 9.2v7.6c0 1.12 0 1.68-.218 2.108a2 2 0 0 1-.874.874C19.48 20 18.92 20 17.8 20H6.2c-1.12 0-1.68 0-2.108-.218a2 2 0 0 1-.874-.874C3 18.48 3 17.92 3 16.8"
493
+ }, null, -1)
494
+ ])]);
495
+ }
496
+ const et = { render: Ye }, tt = {
497
+ width: "24",
498
+ height: "24",
499
+ fill: "currentColor",
500
+ viewBox: "0 0 24 24"
501
+ };
502
+ function lt(t, e) {
503
+ return n(), c("svg", tt, [...e[0] || (e[0] = [
504
+ l("path", {
505
+ "fill-rule": "evenodd",
506
+ d: "M5.999 10.495a1.5 1.5 0 0 1 1.5 1.5v.01a1.5 1.5 0 0 1-3 0v-.01a1.5 1.5 0 0 1 1.5-1.5m12 0a1.5 1.5 0 0 1 1.5 1.5v.01a1.5 1.5 0 1 1-3 0v-.01a1.5 1.5 0 0 1 1.5-1.5m-4.5 1.5a1.5 1.5 0 1 0-3 0v.01a1.5 1.5 0 0 0 3 0z",
507
+ "clip-rule": "evenodd"
508
+ }, null, -1)
509
+ ])]);
510
+ }
511
+ const ce = { render: lt }, nt = {
512
+ width: "24",
513
+ height: "24",
514
+ viewBox: "0 0 1024 1024"
515
+ };
516
+ function ot(t, e) {
517
+ return n(), c("svg", nt, [...e[0] || (e[0] = [
518
+ l("path", {
519
+ fill: "currentColor",
520
+ d: "M539.7 463.1V273.5l90.8-91.2c11-11 10.9-28.7 0-39.6-11-11-28.7-10.9-39.6 0L539.7 194V91.3c0-15.1-12.5-27.8-28-27.8-15.6 0-28 12.5-28 27.8V195l-51.2-51.2c-10.9-10.9-28.6-11-39.6 0-10.9 10.9-11 28.6 0 39.6l90.8 91.2v188.6l-164.2-94.8L286 244.1c-4-15-19.4-23.8-34.3-19.8-15 4-23.8 19.4-19.8 34.3l18.7 70-88.9-51.4c-13.1-7.6-30.4-3-38.1 10.4-7.8 13.5-3.2 30.5 10.1 38.2l89.8 51.9-70 18.7c-14.9 4-23.8 19.3-19.8 34.3 4 14.9 19.3 23.8 34.3 19.8l124.4-33.1 163.3 94.3-164.2 94.8-124.4-33.1c-15-4-30.3 4.9-34.3 19.8-4 15 4.9 30.3 19.8 34.3l70 18.7-88.9 51.4c-13.1 7.6-17.8 24.8-10.1 38.2 7.8 13.5 24.8 18 38.1 10.4l89.8-51.9-18.7 70c-4 14.9 4.8 30.3 19.8 34.3 14.9 4 30.3-4.8 34.3-19.8l33.6-124.3 163.3-94.3v190.6l-90.8 93c-11 11-10.9 28.7 0 39.6 11 11 28.7 10.9 39.6 0l51.2-51.2v99.9c0 15.1 12.5 27.8 28 27.8 15.6 0 28-12.5 28-27.8v-101l51.2 51.2c10.9 10.9 28.6 11 39.6 0 10.9-10.9 11-28.6 0-39.6l-90.8-93V560.2l165.1 95.3L740 780.6c4 15 19.4 23.8 34.3 19.8 15-4 23.8-19.4 19.8-34.3l-18.7-70 86.6 50c13.1 7.6 30.4 3 38.1-10.4 7.8-13.5 3.2-30.5-10.1-38.2L802.6 647l70-18.7c14.9-4 23.8-19.3 19.8-34.3-4-14.9-19.3-23.8-34.3-19.8l-125.9 32.2L568 511.6l165.1-95.3L859 448.5c15 4 30.3-4.9 34.3-19.8 4-15-4.9-30.3-19.8-34.3l-70-18.7 86.6-50c13.1-7.6 17.8-24.8 10.1-38.2-7.8-13.5-24.8-18-38.1-10.4l-87.4 50.5 18.7-70c4-14.9-4.8-30.3-19.8-34.3-14.9-4-30.3 4.8-34.3 19.8l-35.1 125.1z"
521
+ }, null, -1)
522
+ ])]);
523
+ }
524
+ const st = { render: ot }, at = {
525
+ width: "24",
526
+ height: "24",
527
+ fill: "currentColor",
528
+ viewBox: "0 0 24 24"
529
+ };
530
+ function rt(t, e) {
531
+ return n(), c("svg", at, [...e[0] || (e[0] = [
532
+ l("path", { d: "M2 4a1 1 0 0 1 1-1h7.414l2 2H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3c-.55 0-1-.45-1-1zm8.586 2-1-1H4v2h5.586zM4 9v10h16V7h-7.586l-2 2z" }, null, -1)
533
+ ])]);
534
+ }
535
+ const de = { render: rt }, it = {
536
+ width: "24",
537
+ height: "24",
538
+ fill: "currentColor",
539
+ viewBox: "0 0 24 24"
540
+ };
541
+ function ct(t, e) {
542
+ return n(), c("svg", it, [...e[0] || (e[0] = [
543
+ l("path", { d: "m12 10.587 4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.415 1.414-4.95-4.95-4.949 4.95-1.414-1.415 4.95-4.95-4.95-4.95L7.05 5.638z" }, null, -1)
544
+ ])]);
545
+ }
546
+ const te = { render: ct }, dt = {
547
+ width: "24",
548
+ height: "24",
549
+ fill: "none",
550
+ viewBox: "0 0 24 24"
551
+ };
552
+ function ut(t, e) {
553
+ return n(), c("svg", dt, [...e[0] || (e[0] = [
554
+ l("path", {
555
+ fill: "currentColor",
556
+ "fill-rule": "evenodd",
557
+ d: "M5.5 3.25A2.25 2.25 0 0 0 3.25 5.5V9a2.25 2.25 0 0 0 2.25 2.25H9A2.25 2.25 0 0 0 11.25 9V5.5A2.25 2.25 0 0 0 9 3.25zM4.75 5.5a.75.75 0 0 1 .75-.75H9a.75.75 0 0 1 .75.75V9a.75.75 0 0 1-.75.75H5.5A.75.75 0 0 1 4.75 9zm.75 7.25A2.25 2.25 0 0 0 3.25 15v3.5a2.25 2.25 0 0 0 2.25 2.25H9a2.25 2.25 0 0 0 2.25-2.25V15A2.25 2.25 0 0 0 9 12.75zM4.75 15a.75.75 0 0 1 .75-.75H9a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-.75.75H5.5a.75.75 0 0 1-.75-.75zm8-9.5A2.25 2.25 0 0 1 15 3.25h3.5a2.25 2.25 0 0 1 2.25 2.25V9a2.25 2.25 0 0 1-2.25 2.25H15A2.25 2.25 0 0 1 12.75 9zM15 4.75a.75.75 0 0 0-.75.75V9c0 .414.336.75.75.75h3.5a.75.75 0 0 0 .75-.75V5.5a.75.75 0 0 0-.75-.75zm0 8A2.25 2.25 0 0 0 12.75 15v3.5A2.25 2.25 0 0 0 15 20.75h3.5a2.25 2.25 0 0 0 2.25-2.25V15a2.25 2.25 0 0 0-2.25-2.25zM14.25 15a.75.75 0 0 1 .75-.75h3.5a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-.75.75H15a.75.75 0 0 1-.75-.75z",
558
+ "clip-rule": "evenodd"
559
+ }, null, -1)
560
+ ])]);
561
+ }
562
+ const ft = { render: ut }, ht = {
563
+ width: "24",
564
+ height: "24",
565
+ fill: "currentColor",
566
+ viewBox: "0 0 24 24"
567
+ };
568
+ function vt(t, e) {
569
+ return n(), c("svg", ht, [...e[0] || (e[0] = [
570
+ l("path", { d: "M11 14v-3h2v3h5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM2.51 8.837C3.835 4.864 7.584 2 12 2c4.418 0 8.166 2.864 9.49 6.837l-1.898.632a8.004 8.004 0 0 0-15.183 0zm3.797 1.265a6.003 6.003 0 0 1 11.387 0l-1.898.633a4.002 4.002 0 0 0-7.592 0zM7 16v4h10v-4z" }, null, -1)
571
+ ])]);
572
+ }
573
+ const mt = { render: vt }, pt = {
574
+ width: "24",
575
+ height: "24",
576
+ viewBox: "0 0 1024 1024"
577
+ };
578
+ function gt(t, e) {
579
+ return n(), c("svg", pt, [...e[0] || (e[0] = [
580
+ l("path", {
581
+ fill: "#5E676F",
582
+ d: "M166.5 608.4c0-180.9 153.4-261.1 317.8-528.9 14.4-19.9 43.2-19.9 58.4 1.5 164.6 268.7 317 346.8 317 527.4 0 191.4-155.2 346.6-346.6 346.6S166.5 799.8 166.5 608.4"
583
+ }, null, -1),
584
+ l("path", {
585
+ fill: "#FFF",
586
+ d: "M483.2 175.5c-65.9 84.8-214.1 292.7-217.5 298.2-28.6 46.5-41.5 86.8-41.5 134.6 0 159.5 129.3 288.8 288.8 288.8s288.8-129.3 288.8-288.8c0-47.8-12.8-87.9-41.3-134.1-2.5-4-151.4-213.3-217.2-298.6-15.9-20.8-43.9-20.8-60.1-.1"
587
+ }, null, -1),
588
+ l("path", {
589
+ fill: "#5E676F",
590
+ d: "M513.1 826.3c0 14.4-21.3 13.8-31 12.6-104.1-13.3-186.5-96-199.6-200.1-.9-7.2-1.8-30.3 12.6-30.3s16.8 32.6 16.8 32.6c13.5 86.6 81.9 155 168.5 168.5.1-.2 32.7 2.2 32.7 16.7"
591
+ }, null, -1)
592
+ ])]);
593
+ }
594
+ const yt = { render: gt }, bt = {
595
+ width: "24",
596
+ height: "24",
597
+ fill: "currentColor",
598
+ viewBox: "0 0 24 24"
599
+ };
600
+ function xt(t, e) {
601
+ return n(), c("svg", bt, [...e[0] || (e[0] = [
602
+ l("path", { d: "M3 4h18v2H3zm0 7h12v2H3zm0 7h18v2H3z" }, null, -1)
603
+ ])]);
604
+ }
605
+ const ue = { render: xt }, kt = {
606
+ width: "24",
607
+ height: "24",
608
+ fill: "currentColor",
609
+ viewBox: "0 0 24 24"
610
+ };
611
+ function _t(t, e) {
612
+ return n(), c("svg", kt, [...e[0] || (e[0] = [
613
+ l("path", { d: "M17.883 19.297A10.95 10.95 0 0 1 12 21c-5.392 0-9.878-3.88-10.818-9A11 11 0 0 1 4.52 5.935L1.394 2.808l1.414-1.414 19.799 19.798-1.414 1.415zM5.936 7.35A8.97 8.97 0 0 0 3.223 12a9.005 9.005 0 0 0 13.201 5.838l-2.028-2.028A4.5 4.5 0 0 1 8.19 9.604zm6.978 6.978-3.242-3.241a2.5 2.5 0 0 0 3.241 3.241m7.893 2.265-1.431-1.431A8.9 8.9 0 0 0 20.778 12 9.005 9.005 0 0 0 9.552 5.338L7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.95 10.95 0 0 1-2.012 4.593m-9.084-9.084Q11.86 7.5 12 7.5a4.5 4.5 0 0 1 4.492 4.778z" }, null, -1)
614
+ ])]);
615
+ }
616
+ const $t = { render: _t }, wt = {
617
+ width: "24",
618
+ height: "24",
619
+ fill: "currentColor",
620
+ viewBox: "0 0 24 24"
621
+ };
622
+ function Ct(t, e) {
623
+ return n(), c("svg", wt, [...e[0] || (e[0] = [
624
+ l("path", { d: "M12 3c5.392 0 9.878 3.88 10.819 9-.94 5.12-5.427 9-10.819 9s-9.878-3.88-10.818-9C2.122 6.88 6.608 3 12 3m0 16a9.005 9.005 0 0 0 8.778-7 9.005 9.005 0 0 0-17.555 0A9.005 9.005 0 0 0 12 19m0-2.5a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9m0-2a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5" }, null, -1)
625
+ ])]);
626
+ }
627
+ const Vt = { render: Ct }, zt = {
628
+ width: "24",
629
+ height: "24",
630
+ fill: "currentColor",
631
+ viewBox: "0 0 24 24"
632
+ };
633
+ function Mt(t, e) {
634
+ return n(), c("svg", zt, [...e[0] || (e[0] = [
635
+ l("path", { d: "M9 2.003V2h10.998C20.55 2 21 2.455 21 2.992v18.016a.993.993 0 0 1-.993.992H3.993A1 1 0 0 1 3 20.993V8zM5.83 8H9V4.83zM11 4v5a1 1 0 0 1-1 1H5v10h14V4z" }, null, -1)
636
+ ])]);
637
+ }
638
+ const It = { render: Mt }, Bt = {
639
+ width: "24",
640
+ height: "24",
641
+ fill: "currentColor",
642
+ viewBox: "0 0 24 24"
643
+ };
644
+ function St(t, e) {
645
+ return n(), c("svg", Bt, [...e[0] || (e[0] = [
646
+ l("path", { d: "M3 7h18v10h-2v-2h-2v2h-2v-2h-2v2h-2v-2H9v2H7v-2H5v2H3zM2 5a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zm9 4H5v3h6zm2 0h6v3h-6z" }, null, -1)
647
+ ])]);
648
+ }
649
+ const At = { render: St }, Ft = {
650
+ width: "24",
651
+ height: "24",
652
+ fill: "currentColor",
653
+ viewBox: "0 0 24 24"
654
+ };
655
+ function Ht(t, e) {
656
+ return n(), c("svg", Ft, [...e[0] || (e[0] = [
657
+ l("path", { d: "M12 4a7.99 7.99 0 0 0-6.616 3.5H8v2H2v-6h2V6a9.98 9.98 0 0 1 8-4c5.523 0 10 4.477 10 10h-2a8 8 0 0 0-8-8m-8 8a8 8 0 0 0 14.616 4.5H16v-2h6v6h-2V18a9.98 9.98 0 0 1-8 4C6.477 22 2 17.523 2 12z" }, null, -1)
658
+ ])]);
659
+ }
660
+ const Lt = { render: Ht }, jt = {
661
+ width: "24",
662
+ height: "24",
663
+ fill: "currentColor",
664
+ viewBox: "0 0 491.7 491.7"
665
+ };
666
+ function Tt(t, e) {
667
+ return n(), c("svg", jt, [...e[0] || (e[0] = [
668
+ l("path", { d: "M471.1 368.65v-245.7c11.3 0 20.5-9.2 20.5-20.5s-9.2-20.5-20.5-20.5h-1c-4.8-23.3-25.4-41-50.2-41-24.7 0-45.4 17.6-50.2 41h-22.6c-4.8-23.3-25.4-41-50.2-41-24.7 0-45.4 17.6-50.2 41h-22.6c-4.8-23.3-25.4-41-50.2-41-24.7 0-45.4 17.6-50.2 41h-21.5v-61.4c0-11.3-9.2-20.5-20.5-20.5H20.5C9.2.05 0 9.25 0 20.55v450.6c0 11.3 9.2 20.5 20.5 20.5h61.4c11.3 0 20.5-9.2 20.5-20.5v-61.4h21.5c4.8 23.3 25.4 41 50.2 41 24.7 0 45.4-17.6 50.2-41h22.5c4.8 23.3 25.4 41 50.2 41 24.7 0 45.4-17.6 50.2-41h22.6c4.8 23.3 25.4 41 50.2 41 24.7 0 45.4-17.6 50.2-41h1c11.3 0 20.5-9.2 20.5-20.5s-9.3-20.6-20.6-20.6m-348.2 0h-20.5v-245.7h20.5zm122.9 0h-20.5v-245.7h20.5zm122.9 0h-20.5v-245.7h20.5z" }, null, -1)
669
+ ])]);
670
+ }
671
+ const Dt = { render: Tt }, Ot = {
672
+ width: "24",
673
+ height: "24",
674
+ fill: "currentColor",
675
+ viewBox: "0 0 24 24"
676
+ };
677
+ function Nt(t, e) {
678
+ return n(), c("svg", Ot, [...e[0] || (e[0] = [
679
+ l("path", { d: "M6.17 18a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2v-2zm6-7a3.001 3.001 0 0 1 5.66 0H22v2h-4.17a3.001 3.001 0 0 1-5.66 0H2v-2zm-6-7a3.001 3.001 0 0 1 5.66 0H22v2H11.83a3.001 3.001 0 0 1-5.66 0H2V4zM9 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2m6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2m-6 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2" }, null, -1)
680
+ ])]);
681
+ }
682
+ const Et = { render: Nt }, Pt = {
683
+ fill: "currentColor",
684
+ viewBox: "0 0 179 40"
685
+ };
686
+ function Ut(t, e) {
687
+ return n(), c("svg", Pt, [...e[0] || (e[0] = [
688
+ l("path", { d: "M24.264 11.217c0 5.347-1.898 11.74-5.138 15.962-1.05 1.368-4.049 4.478-5.816 2.415-1.26-1.471-.47-5.037-.116-6.673 1.218-5.628 2.62-10.76 4.028-16.343-3.656 1.984-9.07-3.295-9.35-.302-1.637 9.446-3.83 27.866 2.174 29.46 10.87 1.45 15.99-11.283 17.198-20.29.29-2.16.548-4.363.32-6.548-.312-2.973-3.296-4.46-5.819-2.946-1.518.911-1.614 4.085-.257 5.187.726.59 1.983.421 2.776.078M40.744 4.761l.002 12.436-3.502 3.412 3.502 3.467v12.438l.536.003s.01-12.404-.007-12.438l3.487-3.38-3.486-3.5V4.762zM133.638 24.706c-.732-.23-2.09-.29-2.649.141-.739.62-.084 3.093-.101 3.953.052 2.697 2.753 4.142 4.786 4.502 0 0 5.988.651 9.036-.742 4.77-2.18 5.416-8.62 1.848-12.205-2.025-2.5-9.668-4.457-10.485-6.835-.87-1.026-.335-3.054.678-3.806 1.39-1.031 3.442-1.004 5.036-.684 1.742.35 1.88 1.86 2.391 3.398.197.594.383 1.686 1.077 1.865.299.077.62-.015.917-.052 2.183-.275 1.5-1.558 1.607-3.303.05-.821.295-2.215-.15-2.967-.796-1.348-2.323-1.36-4.115-2.092-1.594-.398-4.328-.75-6.644-.171-1.85.462-3.787 1.432-4.948 3.037-2.167 2.996-1.276 7.802 1.363 10.191 2.946 2.668 7.76 2.97 10.153 6.317 2.246 3.14-2.486 5.148-4.93 4.933-5.303-.047-3.14-4.191-4.87-5.48M69.501 9.017l2.79 1.228-6.112 16.509c-1.73-6.733-3.409-12.76-4.916-16.645.763-.164 2.385-.561 2.71-1.379.31-.777-.152-1.78-.185-2.578-1.213.102-10.556-.31-10.951.317-.136.714-.511 1.768-.264 2.358.537 1.168 2.501.48 3.156 1.892 3.442 7.402 5.118 14.56 8.09 21.355 4.96 7.37 8.38-12.623 9.603-16.235.543-1.613.958-4.097 2.019-5.426 2.014-2.379 3.85-.734 2.906-3.831-.696-.811-8.386-.374-8.556-.21-.459.588-1 1.064-.29 2.645M80.132 6.152c-.133.66-.653 2.2-.18 2.777.652.799 2.702.514 2.851 1.731.478 3.898-.053 7.953.114 11.864.117 2.75.464 5.712 2.276 7.908 4.83 5.85 15.167 3.5 17.052-3.815 1.214-4.715.4-11.024.41-15.866.004-2.154 2.064-.485 2.985-1.822.444-.644-.16-2.072-.262-2.777-2.718-.035-5.428-.035-8.14.14l-.497 1.634c.113 1.896 1.512 1.37 3.177 1.604.043 1.254.012 6.675.012 9.72 0 2.647.063 5.503-1.181 7.913-2.068 4.005-8.193 4.012-9.95-.273-1.413-3.448-.816-7.672-.828-11.324-.005-1.499-.332-3.457.043-4.906.338-1.309 2.209-.877 2.931-1.731.437-.517-.069-2.144-.183-2.777zM127.818 32.925c-.679-4.31.658-7.155-.196-8.136-.421-.431-2.323-.529-2.71-.039-1.014 1.285-.798 3.762-1.958 4.923-.416.417-1.365.2-1.896.23-1.741.102-3.441-.012-5.182-.012l-.133-9.277c.96.125 2.881-.272 3.683.173.886.492.476 2.324 1.403 2.802.685-.01 1.735.065 2.325-.192.692-1.059.497-8.27-.002-8.546-.733-.033-1.767-.39-2.332-.158-.876.392-.664 2.078-1.41 2.7-.694.582-2.845.284-3.667.083l.002-2.728.13-5.73h4.784c.558 0 1.464-.174 1.957.14 1.26.801.695 3.447 1.82 4.22.62.427 1.889-.277 2.601-.268-.23-1.368.688-6.107-.08-6.817-1.139-.024-16.47.013-18.903.078-.373.446-.561 2.128-.203 2.593.642.835 2.147.596 2.721 1.358.6 3.898 1.049 13.15.08 18.054-.291 1.062-2.151.814-2.745 1.614-.212.714-.099 1.82.204 2.463.685 1.025 14.62.433 19.707.472M154.942 10.245c0 5.923.508 12.11-.008 18.007-.107 1.218-1.978 1.03-2.74 1.65-.558.453-.26 1.97-.023 2.561 2.088.638 11.468 1.266 11.878-.662.076-.417.314-1.307.056-1.677-.767-1.097-3.844-.326-4.094-1.876-.009-7.56-.047-7.539-.02-19.23 2.151 0 4.55-.408 6.242 1.24 2.427 2.36 1.587 7.287-1.193 8.953-1.019.611-2.45.448-3.587.448v3.138c3.081 0 6.756-.03 9.168-2.332 3.776-3.607 2.622-11.45-2.126-13.607-.624-1.135-12.871-2.346-16.036-.605-.358.188-.487.817-.42 1.14-.444 2.346 1.134 2.54 2.903 2.852" }, null, -1)
689
+ ])]);
690
+ }
691
+ const le = { render: Ut }, Gt = {
692
+ width: "40",
693
+ height: "40",
694
+ fill: "currentColor",
695
+ viewBox: "0 0 40 40"
696
+ };
697
+ function qt(t, e) {
698
+ return n(), c("svg", Gt, [...e[0] || (e[0] = [
699
+ l("path", { d: "M24.264 11.217c0 5.347-1.898 11.74-5.138 15.962-1.05 1.368-4.049 4.478-5.816 2.415-1.26-1.471-.47-5.037-.116-6.673 1.218-5.628 2.62-10.76 4.028-16.343-3.656 1.984-9.07-3.295-9.35-.302-1.637 9.446-3.83 27.866 2.174 29.46 10.87 1.45 15.99-11.283 17.198-20.29.29-2.16.548-4.363.32-6.548-.312-2.973-3.296-4.46-5.819-2.946-1.518.911-1.614 4.085-.257 5.187.726.59 1.983.421 2.776.078" }, null, -1)
700
+ ])]);
701
+ }
702
+ const fe = { render: qt }, Kt = {
703
+ width: "24",
704
+ height: "24",
705
+ fill: "none",
706
+ viewBox: "0 0 24 24"
707
+ };
708
+ function Rt(t, e) {
709
+ return n(), c("svg", Kt, [...e[0] || (e[0] = [
710
+ l("path", {
711
+ stroke: "currentColor",
712
+ "stroke-linecap": "round",
713
+ "stroke-width": "2",
714
+ d: "M8 7.528a6 6 0 1 0 8 0"
715
+ }, null, -1),
716
+ l("path", {
717
+ stroke: "currentColor",
718
+ "stroke-linecap": "round",
719
+ "stroke-linejoin": "round",
720
+ "stroke-width": "2",
721
+ d: "M12 6v7"
722
+ }, null, -1)
723
+ ])]);
724
+ }
725
+ const R = { render: Rt };
726
+ function Wt(t, e) {
727
+ return n(), c(I, null, [
728
+ e[0] || (e[0] = l("svg", {
729
+ width: "20",
730
+ height: "20",
731
+ fill: "currentColor",
732
+ class: "flex dark:hidden",
733
+ viewBox: "0 0 24 24"
734
+ }, [
735
+ l("path", { d: "M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.98 6.98 0 0 0 10 7m-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 8 8 0 0 0 4 12" })
736
+ ], -1)),
737
+ e[1] || (e[1] = l("svg", {
738
+ width: "20",
739
+ height: "20",
740
+ fill: "currentColor",
741
+ class: "hidden dark:flex",
742
+ viewBox: "0 0 24 24"
743
+ }, [
744
+ l("path", { d: "M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12m0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8M11 1h2v3h-2zm0 19h2v3h-2zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414zm2.121-14.85 1.414 1.415-2.121 2.121-1.414-1.414zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414zM23 11v2h-3v-2zM4 11v2H1v-2z" })
745
+ ], -1))
746
+ ], 64);
747
+ }
748
+ const X = { render: Wt }, Zt = {
749
+ width: "24",
750
+ height: "24",
751
+ fill: "currentColor",
752
+ viewBox: "0 0 24 24"
753
+ };
754
+ function Qt(t, e) {
755
+ return n(), c("svg", Zt, [...e[0] || (e[0] = [
756
+ l("path", { d: "M12 10h7L8 22l3-9H5l8-11Z" }, null, -1)
757
+ ])]);
758
+ }
759
+ const Jt = { render: Qt }, Xt = {
760
+ width: "24",
761
+ height: "24",
762
+ fill: "none",
763
+ viewBox: "0 0 24 24"
764
+ };
765
+ function Yt(t, e) {
766
+ return n(), c("svg", Xt, [...e[0] || (e[0] = [
767
+ l("path", {
768
+ stroke: "currentColor",
769
+ "stroke-linecap": "round",
770
+ "stroke-linejoin": "round",
771
+ "stroke-width": "2",
772
+ d: "M12 14.5v2m-5-6.471C7.471 10 8.053 10 8.8 10h6.4c.747 0 1.329 0 1.8.029m-10 0c-.588.036-1.006.117-1.362.298a3 3 0 0 0-1.311 1.311C4 12.28 4 13.12 4 14.8v1.4c0 1.68 0 2.52.327 3.162a3 3 0 0 0 1.311 1.311C6.28 21 7.12 21 8.8 21h6.4c1.68 0 2.52 0 3.162-.327a3 3 0 0 0 1.311-1.311C20 18.72 20 17.88 20 16.2v-1.4c0-1.68 0-2.52-.327-3.162a3 3 0 0 0-1.311-1.311c-.356-.181-.774-.262-1.362-.298m-10 0V8a5 5 0 0 1 10 0v2.029"
773
+ }, null, -1)
774
+ ])]);
775
+ }
776
+ const e1 = { render: Yt }, t1 = {
777
+ width: "22",
778
+ height: "22",
779
+ fill: "currentColor",
780
+ viewBox: "0 0 24 24"
781
+ };
782
+ function l1(t, e) {
783
+ return n(), c("svg", t1, [...e[0] || (e[0] = [
784
+ l("path", { d: "M5 22a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v3h-2V4H6v16h12v-2h2v3a1 1 0 0 1-1 1zm13-6v-3h-7v-2h7V8l5 4z" }, null, -1)
785
+ ])]);
786
+ }
787
+ const Y = { render: l1 }, n1 = {
788
+ width: "24",
789
+ height: "24",
790
+ fill: "currentColor",
791
+ viewBox: "0 0 24 24"
792
+ };
793
+ function o1(t, e) {
794
+ return n(), c("svg", n1, [...e[0] || (e[0] = [
795
+ l("path", { d: "M22 20H2v-2h1v-6.969C3 6.043 7.03 2 12 2s9 4.043 9 9.031V18h1zM5 18h14v-6.969C19 7.148 15.866 4 12 4s-7 3.148-7 7.031zm4.5 3h5a2.5 2.5 0 0 1-5 0" }, null, -1)
796
+ ])]);
797
+ }
798
+ const he = { render: o1 }, s1 = {
799
+ width: "24",
800
+ height: "24",
801
+ fill: "currentColor",
802
+ viewBox: "0 0 24 24"
803
+ };
804
+ function a1(t, e) {
805
+ return n(), c("svg", s1, [...e[0] || (e[0] = [
806
+ l("path", { d: "M7 19v-6h10v6h2V7.828L16.172 5H5v14zM4 3h13l4 4v13a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1m5 12v4h6v-4z" }, null, -1)
807
+ ])]);
808
+ }
809
+ const ee = { render: a1 }, r1 = {
810
+ width: "24",
811
+ height: "24",
812
+ fill: "currentColor",
813
+ viewBox: "0 0 30 30"
814
+ };
815
+ function i1(t, e) {
816
+ return n(), c("svg", r1, [...e[0] || (e[0] = [
817
+ l("path", { d: "M13 3C7.489 3 3 7.489 3 13s4.489 10 10 10a9.95 9.95 0 0 0 6.322-2.264l5.971 5.971a1 1 0 1 0 1.414-1.414l-5.97-5.97A9.95 9.95 0 0 0 23 13c0-5.511-4.489-10-10-10m0 2c4.43 0 8 3.57 8 8s-3.57 8-8 8-8-3.57-8-8 3.57-8 8-8" }, null, -1)
818
+ ])]);
819
+ }
820
+ const c1 = { render: i1 }, d1 = {
821
+ width: "24",
822
+ height: "24",
823
+ fill: "none",
824
+ viewBox: "0 0 24 24"
825
+ };
826
+ function u1(t, e) {
827
+ return n(), c("svg", d1, [...e[0] || (e[0] = [
828
+ l("path", {
829
+ stroke: "currentColor",
830
+ "stroke-linecap": "round",
831
+ "stroke-linejoin": "round",
832
+ "stroke-width": "2",
833
+ d: "M7 20H4.6c-.56 0-.84 0-1.054-.109a1 1 0 0 1-.437-.437C3 19.24 3 18.96 3 18.4V9.04c0-.377 0-.565.06-.729a1 1 0 0 1 .248-.383c.126-.121.298-.197.642-.35L12 4l8.05 3.578c.344.153.516.229.642.35a1 1 0 0 1 .249.383c.059.164.059.352.059.729v9.36c0 .56 0 .84-.109 1.054a1 1 0 0 1-.437.437C20.24 20 19.96 20 19.4 20H17M7 20h10M7 20v-6m10 6v-6M7 14v-4h10v4M7 14h10"
834
+ }, null, -1)
835
+ ])]);
836
+ }
837
+ const f1 = { render: u1 }, h1 = {
838
+ width: "24",
839
+ height: "24",
840
+ fill: "currentColor",
841
+ viewBox: "0 0 24 24"
842
+ };
843
+ function v1(t, e) {
844
+ return n(), c("svg", h1, [...e[0] || (e[0] = [
845
+ l("path", {
846
+ "fill-rule": "evenodd",
847
+ d: "M11.943 1.25h.114c2.309 0 4.118 0 5.53.19 1.444.194 2.584.6 3.479 1.494.895.895 1.3 2.035 1.494 3.48.19 1.411.19 3.22.19 5.529v.114c0 2.309 0 4.118-.19 5.53-.194 1.444-.6 2.584-1.494 3.479-.895.895-2.035 1.3-3.48 1.494-1.411.19-3.22.19-5.529.19h-.114c-2.309 0-4.118 0-5.53-.19-1.444-.194-2.584-.6-3.479-1.494-.895-.895-1.3-2.035-1.494-3.48-.19-1.411-.19-3.22-.19-5.529v-.114c0-2.309 0-4.118.19-5.53.194-1.444.6-2.584 1.494-3.479.895-.895 2.035-1.3 3.48-1.494 1.411-.19 3.22-.19 5.529-.19m-5.33 1.676c-1.278.172-2.049.5-2.618 1.069-.57.57-.897 1.34-1.069 2.619-.174 1.3-.176 3.008-.176 5.386s.002 4.086.176 5.386c.172 1.279.5 2.05 1.069 2.62.57.569 1.34.896 2.619 1.068 1.3.174 3.008.176 5.386.176s4.086-.002 5.386-.176c1.279-.172 2.05-.5 2.62-1.069.569-.57.896-1.34 1.068-2.619.174-1.3.176-3.008.176-5.386s-.002-4.086-.176-5.386c-.172-1.279-.5-2.05-1.069-2.62-.57-.569-1.34-.896-2.619-1.068-1.3-.174-3.008-.176-5.386-.176s-4.086.002-5.386.176m4.637 3.877a5.251 5.251 0 0 0 0 10.394V16.5a.75.75 0 0 1 1.5 0v.697a5.251 5.251 0 0 0 0-10.394V7.5a.75.75 0 0 1-1.5 0zM5.25 12a6.75 6.75 0 1 1 13.5 0 6.75 6.75 0 0 1-13.5 0",
848
+ "clip-rule": "evenodd"
849
+ }, null, -1),
850
+ l("path", { d: "M15 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0M11 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0" }, null, -1)
851
+ ])]);
852
+ }
853
+ const m1 = { render: v1 }, p1 = {
854
+ width: "24",
855
+ height: "24",
856
+ fill: "currentColor",
857
+ viewBox: "0 0 24 24"
858
+ };
859
+ function g1(t, e) {
860
+ return n(), c("svg", p1, [...e[0] || (e[0] = [
861
+ l("path", { d: "M5 12.5c0 .313.461.858 1.53 1.393C7.914 14.585 9.877 15 12 15s4.086-.415 5.47-1.107c1.069-.535 1.53-1.08 1.53-1.393v-2.171C17.35 11.349 14.827 12 12 12s-5.35-.652-7-1.671zm14 2.829C17.35 16.349 14.827 17 12 17s-5.35-.652-7-1.671V17.5c0 .313.461.858 1.53 1.393C7.914 19.585 9.877 20 12 20s4.086-.415 5.47-1.107c1.069-.535 1.53-1.08 1.53-1.393zM3 17.5v-10C3 5.015 7.03 3 12 3s9 2.015 9 4.5v10c0 2.485-4.03 4.5-9 4.5s-9-2.015-9-4.5m9-7.5c2.123 0 4.086-.415 5.47-1.107C18.539 8.358 19 7.813 19 7.5s-.461-.858-1.53-1.393C16.086 5.415 14.123 5 12 5s-4.086.415-5.47 1.107C5.461 6.642 5 7.187 5 7.5s.461.858 1.53 1.393C7.914 9.585 9.877 10 12 10" }, null, -1)
862
+ ])]);
863
+ }
864
+ const y1 = { render: g1 }, b1 = {
865
+ width: "24",
866
+ height: "24",
867
+ fill: "currentColor",
868
+ viewBox: "0 0 24 24"
869
+ };
870
+ function x1(t, e) {
871
+ return n(), c("svg", b1, [...e[0] || (e[0] = [
872
+ l("path", { d: "M12 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2" }, null, -1),
873
+ l("path", {
874
+ "fill-rule": "evenodd",
875
+ d: "M15 14a5 5 0 1 1-6 0V4a3 3 0 1 1 6 0zM13 4v11.17A3.001 3.001 0 0 1 12 21a3 3 0 0 1-1-5.83V4a1 1 0 1 1 2 0",
876
+ "clip-rule": "evenodd"
877
+ }, null, -1)
878
+ ])]);
879
+ }
880
+ const ne = { render: x1 }, k1 = {
881
+ width: "24",
882
+ height: "24",
883
+ fill: "none",
884
+ viewBox: "0 0 24 24"
885
+ };
886
+ function _1(t, e) {
887
+ return n(), c("svg", k1, [...e[0] || (e[0] = [
888
+ l("path", {
889
+ stroke: "currentColor",
890
+ "stroke-linecap": "round",
891
+ "stroke-linejoin": "round",
892
+ "stroke-width": "2",
893
+ d: "M15 7v14m3-10h.01M18 14h.01M18 17h.01M17 3l-5 4-5-4m.8 18h8.4c1.68 0 2.52 0 3.162-.327a3 3 0 0 0 1.311-1.311C21 18.72 21 17.88 21 16.2v-4.4c0-1.68 0-2.52-.327-3.162a3 3 0 0 0-1.311-1.311C18.72 7 17.88 7 16.2 7H7.8c-1.68 0-2.52 0-3.162.327a3 3 0 0 0-1.311 1.311C3 9.28 3 10.12 3 11.8v4.4c0 1.68 0 2.52.327 3.162a3 3 0 0 0 1.311 1.311C5.28 21 6.12 21 7.8 21"
894
+ }, null, -1)
895
+ ])]);
896
+ }
897
+ const $1 = { render: _1 }, w1 = {
898
+ width: "24",
899
+ height: "24",
900
+ fill: "currentColor",
901
+ viewBox: "0 0 24 24"
902
+ };
903
+ function C1(t, e) {
904
+ return n(), c("svg", w1, [...e[0] || (e[0] = [
905
+ l("path", {
906
+ "fill-rule": "evenodd",
907
+ d: "M12 3.482a8.519 8.519 0 1 0 0 17.037 8.519 8.519 0 0 0 0-17.037M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12",
908
+ "clip-rule": "evenodd"
909
+ }, null, -1),
910
+ l("path", { d: "M12 11.3a.7.7 0 1 0 0 1.4.7.7 0 0 0 0-1.4m.35-6.3c3.15 0 3.22 2.499 1.561 3.325a2.35 2.35 0 0 0-1.134 1.729c.335.139.63.358.861.637C16.2 9.291 19 9.844 19 12.35c0 3.15-2.506 3.22-3.325 1.561a2.4 2.4 0 0 0-1.75-1.134c-.14.334-.359.629-.637.861 1.4 2.583.84 5.362-1.666 5.362-3.122 0-3.199-2.506-1.54-3.332a2.42 2.42 0 0 0 1.134-1.715 2.1 2.1 0 0 1-.875-.644C7.758 14.695 5 14.149 5 11.65c0-3.15 2.478-3.227 3.304-1.568a2.37 2.37 0 0 0 1.736 1.127c.135-.337.357-.632.644-.854C9.291 7.8 9.844 5 12.336 5z" }, null, -1)
911
+ ])]);
912
+ }
913
+ const V1 = { render: C1 }, z1 = {
914
+ width: "24",
915
+ height: "24",
916
+ fill: "currentColor",
917
+ viewBox: "0 0 24 24"
918
+ };
919
+ function M1(t, e) {
920
+ return n(), c("svg", z1, [...e[0] || (e[0] = [
921
+ l("path", { d: "M16 4a1 1 0 0 1 1 1v4.2l5.213-3.65a.5.5 0 0 1 .787.41v12.08a.5.5 0 0 1-.787.41L17 14.8V19a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zm-1 2H3v12h12zM7.4 8.829a.4.4 0 0 1 .215.062l4.355 2.771a.4.4 0 0 1 0 .675L7.615 15.11A.4.4 0 0 1 7 14.77V9.23c0-.221.18-.4.4-.4M21 8.84l-4 2.8v.718l4 2.8z" }, null, -1)
922
+ ])]);
923
+ }
924
+ const I1 = { render: M1 }, B1 = {
925
+ width: "24",
926
+ height: "24",
927
+ fill: "currentColor",
928
+ viewBox: "0 0 24 24"
929
+ };
930
+ function S1(t, e) {
931
+ return n(), c("svg", B1, [...e[0] || (e[0] = [
932
+ l("path", { d: "M12 2C6.489 2 2 6.489 2 12s4.489 10 10 10 10-4.489 10-10S17.511 2 12 2m0 2c4.43 0 8 3.57 8 8s-3.57 8-8 8-8-3.57-8-8 3.57-8 8-8m-1 3v2h2V7zm0 4v6h2v-6z" }, null, -1)
933
+ ])]);
934
+ }
935
+ const A1 = { render: S1 }, W = /* @__PURE__ */ $({
936
+ __name: "VIcons",
937
+ props: {
938
+ name: {}
939
+ },
940
+ setup(t) {
941
+ const e = {
942
+ IconDots: ce,
943
+ IconAir: We,
944
+ IconBulb: Je,
945
+ IconCold: st,
946
+ IconCamera: et,
947
+ IconVent: V1,
948
+ IconGarage: f1,
949
+ IconVideo: I1,
950
+ IconLight: Jt,
951
+ IconTv: $1,
952
+ IconTherm: ne,
953
+ IconStore: y1,
954
+ IconSocket: m1,
955
+ IconSearch: c1,
956
+ IconSave: ee,
957
+ IconNoti: he,
958
+ IconLogout: Y,
959
+ IconLock: e1,
960
+ IconFolder: de,
961
+ IconChevron: U,
962
+ IconClose: te,
963
+ IconDashboard: ft,
964
+ IconDevice: mt,
965
+ IconDrop: yt,
966
+ IconBurger: ue,
967
+ IconEyeClose: $t,
968
+ IconEyeOpen: Vt,
969
+ IconFile: It,
970
+ IconGpio: At,
971
+ IconUpdate: Lt,
972
+ IconHeater: Dt,
973
+ IconSetting: Et,
974
+ IconLogo: le,
975
+ IconLogoMini: fe,
976
+ IconPower: R,
977
+ IconTheme: X,
978
+ IconInfo: A1
979
+ }, i = z(() => t.name ? e[t.name] : ne);
980
+ return (o, r) => (n(), k(E(i.value)));
981
+ }
982
+ }), F1 = { class: "relative flex items-end gap-0.5 w-10" }, H1 = ["title"], L1 = { class: "absolute -top-1 -left-1 text-xs text-gray-600 dark:text-gray-300" }, j1 = /* @__PURE__ */ $({
983
+ __name: "VWifiIcon",
984
+ props: {
985
+ rssi: { default: 0 },
986
+ channel: { default: 0 }
987
+ },
988
+ setup(t) {
989
+ const e = 2 * (t.rssi + 100), i = (o) => o < e;
990
+ return (o, r) => (n(), c("div", F1, [
991
+ (n(), c(I, null, H([10, 15, 25, 40, 70], (d, a) => l("div", {
992
+ key: d,
993
+ class: w(["w-1 h-5 rounded-lg", [i(d) ? "bg-gray-900 dark:bg-gray-100" : "bg-gray-300 dark:bg-gray-700"]]),
994
+ style: G(`height: ${(a + 1) * 5}px`),
995
+ title: `rssi: ${o.rssi} channel: ${o.channel}`
996
+ }, null, 14, H1)), 64)),
997
+ l("div", L1, x(o.channel), 1)
998
+ ]));
999
+ }
1000
+ }), T1 = ["onClick"], D1 = {
1001
+ key: 0,
1002
+ class: "me-1"
1003
+ }, O1 = { class: "text-gray-400" }, N1 = { class: "flex items-center z-10" }, E1 = ["onClick"], P1 = {
1004
+ key: 0,
1005
+ class: "flex ps-5"
1006
+ }, U1 = { class: "font-medium me-4" }, G1 = ["onClick"], q1 = /* @__PURE__ */ $({
1007
+ __name: "VListObject",
1008
+ props: {
1009
+ items: { default: () => ({}) },
1010
+ path: { default: "" }
1011
+ },
1012
+ emits: ["click"],
1013
+ setup(t, { emit: e }) {
1014
+ const i = e, o = () => "before:absolute before:w-full before:h-8 before:t-0 before:left-0 before:rounded-sm hover:before:bg-gray-400/10", r = S({}), d = (s) => {
1015
+ r.value[s] = !r.value[s];
1016
+ }, a = (s) => typeof s == "object", f = (s) => `${t.path ? t.path + "." : ""}${s}`, u = (s) => {
1017
+ i("click", f(s));
1018
+ };
1019
+ return (s, h) => (n(), c("ul", null, [
1020
+ (n(!0), c(I, null, H(s.items, (p, g) => (n(), c("li", {
1021
+ key: g,
1022
+ class: w(a(p) ? "" : `flex items-center ${o()}`)
1023
+ }, [
1024
+ l("div", {
1025
+ class: w(["flex items-center cursor-pointer ps-2 h-8", a(p) ? `${o()}` : ""]),
1026
+ onClick: (b) => d(g)
1027
+ }, [
1028
+ a(p) ? (n(), c("div", D1, [
1029
+ v(M(de), { class: "size-5 text-gray-400" })
1030
+ ])) : C("", !0),
1031
+ l("div", O1, x(g), 1),
1032
+ a(p) ? (n(), c(I, { key: 1 }, [
1033
+ h[1] || (h[1] = l("div", { class: "flex-auto" }, null, -1)),
1034
+ l("div", N1, [
1035
+ l("button", {
1036
+ class: "px-2 cursor-pointer text-gray-400 hover:text-gray-200",
1037
+ onClick: L((b) => u(g), ["stop"])
1038
+ }, [
1039
+ v(M(ee), { class: "size-5" })
1040
+ ], 8, E1)
1041
+ ])
1042
+ ], 64)) : C("", !0)
1043
+ ], 10, T1),
1044
+ a(p) ? (n(), c("div", P1, [
1045
+ se(v(q1, {
1046
+ class: "flex-auto",
1047
+ path: f(g),
1048
+ items: p,
1049
+ onClick: h[0] || (h[0] = (b) => i("click", b))
1050
+ }, null, 8, ["path", "items"]), [
1051
+ [ge, r.value[g]]
1052
+ ])
1053
+ ])) : (n(), c(I, { key: 1 }, [
1054
+ h[2] || (h[2] = l("div", { class: "flex-auto" }, null, -1)),
1055
+ l("div", U1, x(p), 1),
1056
+ l("button", {
1057
+ class: "px-2 cursor-pointer z-10",
1058
+ onClick: L((b) => u(g), ["stop"])
1059
+ }, [
1060
+ v(M(ee), { class: "size-5" })
1061
+ ], 8, G1)
1062
+ ], 64))
1063
+ ], 2))), 128))
1064
+ ]));
1065
+ }
1066
+ }), K1 = { class: "min-w-full" }, R1 = { class: "border-y border-gray-100 py-3 dark:border-gray-800" }, W1 = { class: "bg-gray-50 dark:bg-gray-800" }, Z1 = { class: "flex items-center" }, Q1 = { class: "divide-y divide-gray-100 dark:divide-gray-800" }, J1 = ["onClick"], X1 = { class: "flex items-center text-gray-700 dark:text-gray-400" }, Y1 = { key: 1 }, el = {
1067
+ class: "py-3 whitespace-nowrap",
1068
+ colspan: "9"
1069
+ }, tl = { class: "flex items-center justify-center text-theme-sm text-gray-700 dark:text-gray-400 px-2" }, nn = /* @__PURE__ */ $({
1070
+ __name: "BlockTable",
1071
+ props: {
1072
+ headers: { default: () => [] },
1073
+ items: { default: () => [] }
1074
+ },
1075
+ emits: ["click"],
1076
+ setup(t, { emit: e }) {
1077
+ const i = e, o = (d, a) => {
1078
+ i("click", { item: d, event: a });
1079
+ }, r = (d) => (d == null ? void 0 : d.className) || "";
1080
+ return (d, a) => (n(), c("table", K1, [
1081
+ l("thead", R1, [
1082
+ l("tr", W1, [
1083
+ (n(!0), c(I, null, H(d.headers, (f, u) => (n(), c("th", {
1084
+ key: u,
1085
+ class: w(["py-2 whitespace-nowrap text-gray-500 dark:text-gray-400 font-normal px-4", r(f)])
1086
+ }, [
1087
+ _(d.$slots, "header", { item: f }, () => [
1088
+ l("div", Z1, x(f.name), 1)
1089
+ ])
1090
+ ], 2))), 128))
1091
+ ])
1092
+ ]),
1093
+ l("tbody", Q1, [
1094
+ d.items.length ? (n(!0), c(I, { key: 0 }, H(d.items, (f, u) => (n(), c("tr", {
1095
+ key: u,
1096
+ class: "hover:bg-gray-50/50 dark:hover:bg-gray-800/50",
1097
+ onClick: (s) => o(f, s)
1098
+ }, [
1099
+ (n(!0), c(I, null, H(d.headers, (s, h) => (n(), c("td", {
1100
+ key: h,
1101
+ class: "py-2 whitespace-nowrap px-4"
1102
+ }, [
1103
+ l("div", X1, [
1104
+ _(d.$slots, s.key, { item: f }, () => [
1105
+ V(x(f[s.key]), 1)
1106
+ ])
1107
+ ])
1108
+ ]))), 128))
1109
+ ], 8, J1))), 128)) : (n(), c("tr", Y1, [
1110
+ l("td", el, [
1111
+ l("div", tl, [
1112
+ _(d.$slots, "empty", {}, () => [
1113
+ a[0] || (a[0] = V("The list is empty", -1))
1114
+ ])
1115
+ ])
1116
+ ])
1117
+ ]))
1118
+ ])
1119
+ ]));
1120
+ }
1121
+ }), ll = { class: "my-4 text-gray-700 dark:text-gray-400" }, nl = { class: "flex flex-col md:flex-row flex-wrap md:gap-4 text-sm" }, ol = { class: "flex gap-2" }, sl = { class: "text-gray-700 dark:text-gray-400" }, al = { class: "flex gap-2" }, rl = { class: "flex gap-2" }, il = { class: "text-gray-700 dark:text-gray-400" }, cl = { class: "flex gap-2" }, dl = { class: "text-gray-700 dark:text-gray-400" }, ul = { class: "flex flex-col gap-4 text-sm" }, fl = { class: "flex gap-4" }, hl = { class: "flex flex-wrap gap-2 text-gray-700 dark:text-gray-400" }, on = /* @__PURE__ */ $({
1122
+ __name: "BlockInfo",
1123
+ props: {
1124
+ id: { default: 0 },
1125
+ firmware: { default: () => [] },
1126
+ totalBytes: {},
1127
+ usedBytes: {},
1128
+ uptime: {},
1129
+ name: {},
1130
+ pkg: {}
1131
+ },
1132
+ setup(t) {
1133
+ const e = z(() => t.firmware.join(".")), i = z(() => {
1134
+ var o, r, d, a, f, u, s;
1135
+ return {
1136
+ homepage: (o = t.pkg) == null ? void 0 : o.homepage,
1137
+ repository: (d = (r = t.pkg) == null ? void 0 : r.repository) == null ? void 0 : d.url,
1138
+ bugs: (f = (a = t.pkg) == null ? void 0 : a.bugs) == null ? void 0 : f.url,
1139
+ author: (u = t.pkg) != null && u.author ? `mailto:${(s = t.pkg) == null ? void 0 : s.author}` : ""
1140
+ };
1141
+ });
1142
+ return (o, r) => {
1143
+ var a, f;
1144
+ const d = P("router-link");
1145
+ return n(), c("div", null, [
1146
+ l("p", ll, x((a = o.pkg) == null ? void 0 : a.description), 1),
1147
+ l("div", nl, [
1148
+ l("div", ol, [
1149
+ r[0] || (r[0] = V(" Firmware (hw): ", -1)),
1150
+ l("span", sl, x(e.value), 1)
1151
+ ]),
1152
+ l("div", al, [
1153
+ l("div", rl, [
1154
+ r[1] || (r[1] = V(" Version (web): ", -1)),
1155
+ l("span", il, x((f = o.pkg) == null ? void 0 : f.version), 1)
1156
+ ])
1157
+ ]),
1158
+ r[3] || (r[3] = l("div", { class: "flex-auto" }, null, -1)),
1159
+ l("div", cl, [
1160
+ r[2] || (r[2] = V(" ID: ", -1)),
1161
+ l("span", dl, x(o.id.toString(16)), 1)
1162
+ ])
1163
+ ]),
1164
+ r[9] || (r[9] = l("hr", { class: "dark:text-gray-700 text-gray-200 my-2" }, null, -1)),
1165
+ l("div", ul, [
1166
+ l("div", fl, [
1167
+ r[8] || (r[8] = V(" Links: ", -1)),
1168
+ l("div", hl, [
1169
+ i.value.homepage ? (n(), k(d, {
1170
+ key: 0,
1171
+ href: i.value.homepage,
1172
+ target: "_blank",
1173
+ class: "me-4"
1174
+ }, {
1175
+ default: m(() => [...r[4] || (r[4] = [
1176
+ V("Homepage", -1)
1177
+ ])]),
1178
+ _: 1
1179
+ }, 8, ["href"])) : C("", !0),
1180
+ i.value.repository ? (n(), k(d, {
1181
+ key: 1,
1182
+ href: i.value.repository,
1183
+ target: "_blank",
1184
+ class: "me-4"
1185
+ }, {
1186
+ default: m(() => [...r[5] || (r[5] = [
1187
+ V("Repository", -1)
1188
+ ])]),
1189
+ _: 1
1190
+ }, 8, ["href"])) : C("", !0),
1191
+ i.value.bugs ? (n(), k(d, {
1192
+ key: 2,
1193
+ href: i.value.bugs,
1194
+ target: "_blank",
1195
+ class: "me-4"
1196
+ }, {
1197
+ default: m(() => [...r[6] || (r[6] = [
1198
+ V("Bugs", -1)
1199
+ ])]),
1200
+ _: 1
1201
+ }, 8, ["href"])) : C("", !0),
1202
+ i.value.author ? (n(), k(d, {
1203
+ key: 3,
1204
+ href: i.value.author,
1205
+ target: "_blank",
1206
+ class: "me-4"
1207
+ }, {
1208
+ default: m(() => [...r[7] || (r[7] = [
1209
+ V("Author", -1)
1210
+ ])]),
1211
+ _: 1
1212
+ }, 8, ["href"])) : C("", !0)
1213
+ ])
1214
+ ])
1215
+ ])
1216
+ ]);
1217
+ };
1218
+ }
1219
+ }), vl = { class: "grid grid-cols-1 gap-4 lg:max-w-[360px] min-w-[250px]" }, ml = { class: "flex flex-col w-full items-center gap-2" }, pl = { class: "relative block h-4 w-full rounded-lg overflow-hidden bg-gray-200 dark:bg-gray-800" }, gl = ["title"], yl = { class: "absolute left-1/2 -translate-x-1/2 top-0 text-xs font-medium text-gray-700 dark:text-gray-400" }, bl = { class: "flex justify-between w-full text-xs" }, xl = { class: "text-gray-500 dark:text-gray-400" }, kl = { class: "text-sm" }, _l = { class: "text-gray-500 dark:text-gray-400 text-left" }, $l = { class: "text-right text-xs" }, wl = { class: "flex gap-2 mt-4" }, sn = /* @__PURE__ */ $({
1220
+ __name: "BlockStatus",
1221
+ props: {
1222
+ id: { default: 0 },
1223
+ firmware: { default: () => [] },
1224
+ totalBytes: { default: 0 },
1225
+ usedBytes: { default: 0 },
1226
+ uptime: { default: 0 },
1227
+ name: {},
1228
+ pkg: {}
1229
+ },
1230
+ setup(t) {
1231
+ const e = S(t.uptime);
1232
+ let i = null;
1233
+ const o = z(() => t.firmware.join(".")), r = z(() => ({
1234
+ Used: J(t.usedBytes),
1235
+ Available: J(t.totalBytes - t.usedBytes),
1236
+ Total: J(t.totalBytes)
1237
+ })), d = z(() => {
1238
+ var u;
1239
+ return {
1240
+ Uptime: _e(e.value),
1241
+ ID: t.id.toString(16),
1242
+ "Firmware (hw)": o.value,
1243
+ "Version (web)": (u = t.pkg) == null ? void 0 : u.version
1244
+ };
1245
+ }), a = z(() => t.usedBytes ? Math.round(t.usedBytes * 100 / t.totalBytes) : 0), f = () => {
1246
+ e.value++, i = setTimeout(f, 1e3);
1247
+ };
1248
+ return q(() => {
1249
+ f();
1250
+ }), ye(() => {
1251
+ e.value = 0, i && clearTimeout(i);
1252
+ }), (u, s) => {
1253
+ var p, g, b;
1254
+ const h = P("v-button");
1255
+ return n(), c("div", vl, [
1256
+ l("div", ml, [
1257
+ l("div", pl, [
1258
+ l("div", {
1259
+ class: "absolute left-0 top-0 flex h-full items-center justify-center bg-blue-600 hover:bg-blue-500",
1260
+ style: G(`width: ${a.value}%;`),
1261
+ title: `${a.value}%`
1262
+ }, null, 12, gl),
1263
+ l("span", yl, x(a.value) + "%", 1)
1264
+ ]),
1265
+ l("div", bl, [
1266
+ (n(!0), c(I, null, H(r.value, (N, j) => (n(), c("div", {
1267
+ key: j,
1268
+ class: "flex-auto"
1269
+ }, [
1270
+ l("div", xl, x(j) + ":", 1),
1271
+ l("div", null, x(N), 1)
1272
+ ]))), 128))
1273
+ ])
1274
+ ]),
1275
+ l("div", kl, [
1276
+ (n(!0), c(I, null, H(d.value, (N, j) => (n(), c("div", {
1277
+ key: j,
1278
+ class: "flex justify-between items-center"
1279
+ }, [
1280
+ l("div", _l, x(j) + ":", 1),
1281
+ l("div", $l, x(N), 1)
1282
+ ]))), 128))
1283
+ ]),
1284
+ l("div", null, [
1285
+ _(u.$slots, "default"),
1286
+ l("div", wl, [
1287
+ v(h, {
1288
+ href: (p = u.pkg) == null ? void 0 : p.repository.url,
1289
+ target: "_blank",
1290
+ class: "w-full text-white",
1291
+ color: "blue"
1292
+ }, {
1293
+ default: m(() => [...s[0] || (s[0] = [
1294
+ V("Github", -1)
1295
+ ])]),
1296
+ _: 1
1297
+ }, 8, ["href"]),
1298
+ (g = u.pkg) != null && g.homepage ? (n(), k(h, {
1299
+ key: 0,
1300
+ href: (b = u.pkg) == null ? void 0 : b.homepage,
1301
+ target: "_blank",
1302
+ class: "w-full",
1303
+ color: "blue",
1304
+ outline: ""
1305
+ }, {
1306
+ default: m(() => [...s[1] || (s[1] = [
1307
+ V("Homepage", -1)
1308
+ ])]),
1309
+ _: 1
1310
+ }, 8, ["href"])) : C("", !0)
1311
+ ])
1312
+ ])
1313
+ ]);
1314
+ };
1315
+ }
1316
+ }), Cl = { class: "flex items-center gap-1.5" }, an = /* @__PURE__ */ $({
1317
+ __name: "BlockBreadcrumb",
1318
+ props: {
1319
+ items: { default: () => [] }
1320
+ },
1321
+ emits: ["click"],
1322
+ setup(t, { emit: e }) {
1323
+ const i = e;
1324
+ return (o, r) => (n(), c("nav", null, [
1325
+ l("ol", Cl, [
1326
+ (n(!0), c(I, null, H(o.items, (d, a) => (n(), c("li", {
1327
+ key: a,
1328
+ class: w(["inline-flex items-center gap-1.5 text-sm text-gray-500 dark:text-gray-400", d.path ? "" : "text-gray-800 dark:text-white/90"])
1329
+ }, [
1330
+ _(o.$slots, "default", { item: d }, () => [
1331
+ (n(), k(E(d.path ? "a" : "span"), {
1332
+ href: d.path,
1333
+ onClick: r[0] || (r[0] = (f) => i("click", f))
1334
+ }, {
1335
+ default: m(() => [
1336
+ V(x(d.name), 1)
1337
+ ]),
1338
+ _: 2
1339
+ }, 1032, ["href"]))
1340
+ ]),
1341
+ d.path ? (n(), k(M(U), {
1342
+ key: 0,
1343
+ class: "rotate-270"
1344
+ })) : C("", !0)
1345
+ ], 2))), 128))
1346
+ ])
1347
+ ]));
1348
+ }
1349
+ }), Vl = {
1350
+ key: 0,
1351
+ class: "loader-line w-full absolute top-0 left-0 h-[3px] bg-gray-100 dark:bg-gray-800 before:bg-blue-600 dark:before:bg-blue-800 before:h-1 rounded-xl z-20 before:absolute before:w-[40%] before:-left-1/2 before:content-[''] before:animate-[lineAnim_1s_linear_infinite]"
1352
+ }, zl = {
1353
+ key: 1,
1354
+ class: "absolute top-0 left-0 w-full h-full bg-gray-50 dark:bg-gray-900 z-10 opacity-50"
1355
+ }, Ml = { class: "mb-6 flex items-center justify-between" }, Il = { class: "text-lg font-semibold text-gray-800 dark:text-white/90" }, Bl = { class: "max-w-full" }, Sl = /* @__PURE__ */ $({
1356
+ __name: "CardGray",
1357
+ props: {
1358
+ title: { default: "Title" },
1359
+ loading: { type: Boolean }
1360
+ },
1361
+ setup(t) {
1362
+ return (e, i) => (n(), c("div", {
1363
+ class: w(["relative rounded-2xl border border-gray-200 bg-white p-5 dark:border-gray-800 dark:bg-white/[0.03] sm:p-6", { "overflow-hidden": e.loading }])
1364
+ }, [
1365
+ e.loading ? (n(), c("div", Vl)) : C("", !0),
1366
+ e.loading ? (n(), c("div", zl)) : C("", !0),
1367
+ l("div", Ml, [
1368
+ l("h3", Il, x(e.title), 1),
1369
+ l("div", null, [
1370
+ _(e.$slots, "header")
1371
+ ])
1372
+ ]),
1373
+ l("div", Bl, [
1374
+ _(e.$slots, "default")
1375
+ ])
1376
+ ], 2));
1377
+ }
1378
+ }), Al = {
1379
+ class: "w-full min-w-[260px] max-w-xs p-4 bg-white rounded-lg shadow-lg dark:bg-gray-800",
1380
+ role: "alert"
1381
+ }, Fl = { class: "flex items-center gap-4 text-sm" }, Hl = { class: "flex-auto" }, Ll = {
1382
+ key: 0,
1383
+ class: "text-green-600"
1384
+ }, jl = {
1385
+ key: 0,
1386
+ class: "w-full bg-gray-200 rounded-full dark:bg-gray-700 mt-2"
1387
+ }, Tl = /* @__PURE__ */ $({
1388
+ __name: "CardNotification",
1389
+ props: {
1390
+ text: { default: "" },
1391
+ empty: { default: 0 },
1392
+ id: { default: 0 },
1393
+ length: { default: 0 },
1394
+ size: { default: 0 },
1395
+ status: { default: 0 },
1396
+ timeout: { default: 0 }
1397
+ },
1398
+ emits: ["close"],
1399
+ setup(t, { emit: e }) {
1400
+ const i = e, o = z(() => t.status ? Math.ceil(t.size * 100 / t.length) : 100), r = z(() => !!t.length), d = z(() => !!(r.value && o.value === 100 && !t.status)), a = () => {
1401
+ i("close", { text: t.text, empty: t.empty, id: t.id, length: t.length, size: t.size, status: t.status, timeout: t.timeout });
1402
+ };
1403
+ return q(() => {
1404
+ t.timeout && setTimeout(() => {
1405
+ a();
1406
+ }, t.timeout * 1e3);
1407
+ }), (f, u) => (n(), c("div", Al, [
1408
+ l("div", Fl, [
1409
+ l("div", Hl, x(f.text), 1),
1410
+ d.value ? (n(), c("span", Ll, "Done")) : C("", !0),
1411
+ l("button", {
1412
+ class: "transition text-gray-400 self-start hover:text-gray-600",
1413
+ onClick: a
1414
+ }, [
1415
+ v(M(te), { class: "h-4 w-4" })
1416
+ ])
1417
+ ]),
1418
+ r.value ? (n(), c("div", jl, [
1419
+ l("div", {
1420
+ class: "bg-blue-600 text-sm font-medium text-blue-100 text-center leading-none rounded-full",
1421
+ style: G(`width: ${o.value}%`)
1422
+ }, x(o.value) + "%", 5)
1423
+ ])) : C("", !0)
1424
+ ]));
1425
+ }
1426
+ }), Dl = { class: "flex-auto flex justify-between" }, Ol = { class: "text-sm text-gray-500 font-medium text-ellipsis overflow-hidden text-nowrap" }, Nl = { class: "text-sm text-ellipsis overflow-hidden text-nowrap" }, El = { class: "flex-auto flex items-center justify-between gap-6 me-2" }, Pl = { class: "min-h-60 relative" }, Ul = { class: "pt-6" }, Gl = { class: "text-center text-3xl text-ellipsis overflow-hidden" }, ql = { class: "text-center text-xl mt-4" }, O = /* @__PURE__ */ $({
1427
+ __name: "CardBase",
1428
+ props: {
1429
+ id: {},
1430
+ name: {},
1431
+ keyValue: {},
1432
+ type: {},
1433
+ icon: {},
1434
+ value: {},
1435
+ min: {},
1436
+ max: {},
1437
+ list: {},
1438
+ get: { type: Function },
1439
+ set: { type: Function },
1440
+ modifyValue: { type: Function },
1441
+ getItem: { type: Function },
1442
+ setItem: { type: Function }
1443
+ },
1444
+ emits: ["edit"],
1445
+ setup(t, { emit: e }) {
1446
+ const i = S(!1), o = e, r = z(() => ["button", "switch"].includes(t.type || "") && t.value ? "text-amber-500" : "text-gray-400"), d = (s) => o("edit", s), a = () => i.value = !0, f = (s) => {
1447
+ var h;
1448
+ return ((h = t.modifyValue) == null ? void 0 : h.call(t, s)) || s;
1449
+ }, u = z(() => ({
1450
+ value: t.value,
1451
+ name: t.name,
1452
+ min: t.min,
1453
+ max: t.max,
1454
+ list: t.list,
1455
+ modify: f(t.value),
1456
+ icon: t.icon
1457
+ }));
1458
+ return (s, h) => {
1459
+ const p = P("AppDialog");
1460
+ return n(), c("div", {
1461
+ class: "flex flex-col border aspect-square rounded-sm bg-white dark:bg-gray-900 border-b border-gray-300 dark:border-gray-700 p-2 hover:border-blue-400 dark:hover:border-blue-700 transition-all cursor-pointer",
1462
+ onClick: a
1463
+ }, [
1464
+ l("div", Dl, [
1465
+ l("div", {
1466
+ class: w(r.value)
1467
+ }, [
1468
+ v(W, {
1469
+ name: s.icon || "",
1470
+ class: "size-8"
1471
+ }, null, 8, ["name"])
1472
+ ], 2),
1473
+ _(s.$slots, "header", T(D(u.value)))
1474
+ ]),
1475
+ l("div", null, [
1476
+ _(s.$slots, "body", T(D(u.value)), () => [
1477
+ l("h6", Ol, [
1478
+ _(s.$slots, "name", T(D(u.value)), () => [
1479
+ V(x(s.name), 1)
1480
+ ])
1481
+ ]),
1482
+ l("div", Nl, [
1483
+ _(s.$slots, "value", T(D(u.value)), () => [
1484
+ V(x(f(s.value)), 1)
1485
+ ])
1486
+ ])
1487
+ ])
1488
+ ]),
1489
+ i.value ? (n(), k(p, {
1490
+ key: 0,
1491
+ size: "sm",
1492
+ title: s.name,
1493
+ onClose: h[0] || (h[0] = (g) => i.value = !1)
1494
+ }, {
1495
+ header: m(() => [
1496
+ l("div", El, [
1497
+ v(B, {
1498
+ type: "icon",
1499
+ size: "",
1500
+ onClick: d
1501
+ }, {
1502
+ default: m(() => [
1503
+ v(W, {
1504
+ name: "IconDots",
1505
+ class: "size-8"
1506
+ })
1507
+ ]),
1508
+ _: 1
1509
+ })
1510
+ ])
1511
+ ]),
1512
+ default: m(() => [
1513
+ l("div", Pl, [
1514
+ l("div", Ul, [
1515
+ l("h3", Gl, [
1516
+ _(s.$slots, "dialog-name", T(D(u.value)), () => [
1517
+ V(x(s.name), 1)
1518
+ ])
1519
+ ]),
1520
+ _(s.$slots, "dialog", T(D(u.value))),
1521
+ l("p", ql, [
1522
+ _(s.$slots, "dialog-value", T(D(u.value)), () => [
1523
+ V(x(f(s.value)), 1)
1524
+ ])
1525
+ ])
1526
+ ])
1527
+ ])
1528
+ ]),
1529
+ _: 3
1530
+ }, 8, ["title"])) : C("", !0)
1531
+ ]);
1532
+ };
1533
+ }
1534
+ }), Kl = { class: "flex justify-end" }, Rl = { class: "flex justify-center py-4" }, Wl = /* @__PURE__ */ $({
1535
+ __name: "CardButton",
1536
+ props: {
1537
+ id: {},
1538
+ name: {},
1539
+ keyValue: {},
1540
+ type: {},
1541
+ icon: {},
1542
+ value: {},
1543
+ min: {},
1544
+ max: {},
1545
+ list: {},
1546
+ get: { type: Function },
1547
+ set: { type: Function },
1548
+ modifyValue: { type: Function },
1549
+ getItem: { type: Function },
1550
+ setItem: { type: Function }
1551
+ },
1552
+ emits: ["click", "setState"],
1553
+ setup(t, { emit: e }) {
1554
+ const i = e, o = t, r = (a) => i("click", a), d = () => i("setState", { ...o, value: !o.value });
1555
+ return (a, f) => (n(), k(O, F(o, { onClick: r }), {
1556
+ header: m(() => [
1557
+ l("div", Kl, [
1558
+ v(B, {
1559
+ type: "icon",
1560
+ size: "sm",
1561
+ class: "text-gray-500",
1562
+ onClick: L(d, ["stop"])
1563
+ }, {
1564
+ default: m(() => [
1565
+ v(M(R), { class: "size-10" })
1566
+ ]),
1567
+ _: 1
1568
+ })
1569
+ ])
1570
+ ]),
1571
+ dialog: m(() => [
1572
+ l("div", Rl, [
1573
+ v(B, {
1574
+ type: "icon",
1575
+ size: "sm",
1576
+ class: w(["h-18 w-18", o.value ? "text-amber-500" : "text-blue-600 dark:text-blue-400"]),
1577
+ onClick: L(d, ["stop"])
1578
+ }, {
1579
+ default: m(() => [
1580
+ v(M(R), { class: "size-16" })
1581
+ ]),
1582
+ _: 1
1583
+ }, 8, ["class"])
1584
+ ])
1585
+ ]),
1586
+ _: 1
1587
+ }, 16));
1588
+ }
1589
+ }), Zl = { class: "flex justify-center relative mx-2 my-6" }, Ql = /* @__PURE__ */ $({
1590
+ __name: "CardDate",
1591
+ props: {
1592
+ id: {},
1593
+ name: {},
1594
+ keyValue: {},
1595
+ type: {},
1596
+ icon: {},
1597
+ value: {},
1598
+ min: {},
1599
+ max: {},
1600
+ list: {},
1601
+ get: { type: Function },
1602
+ set: { type: Function },
1603
+ modifyValue: { type: Function },
1604
+ getItem: { type: Function },
1605
+ setItem: { type: Function }
1606
+ },
1607
+ emits: ["click", "setState"],
1608
+ setup(t, { emit: e }) {
1609
+ const i = e, o = t, r = (f) => new Date(f * 1e3).toISOString().slice(0, 16), d = (f) => {
1610
+ var s;
1611
+ const u = (s = f == null ? void 0 : f.target) == null ? void 0 : s.valueAsNumber;
1612
+ console.log(u), u && i("setState", { ...o, value: u / 1e3 });
1613
+ }, a = (f) => i("click", f);
1614
+ return (f, u) => (n(), k(O, F(o, { onClick: a }), {
1615
+ dialog: m(({ value: s }) => [
1616
+ l("div", Zl, [
1617
+ v(A, {
1618
+ modelValue: r(s),
1619
+ type: "datetime-local",
1620
+ label: "Date",
1621
+ onChange: d
1622
+ }, null, 8, ["modelValue"])
1623
+ ])
1624
+ ]),
1625
+ _: 1
1626
+ }, 16));
1627
+ }
1628
+ }), Jl = { class: "flex justify-end" }, Xl = {
1629
+ class: /* @__PURE__ */ w("text-blue-600 dark:text-blue-400")
1630
+ }, Yl = {
1631
+ width: "32",
1632
+ height: "32",
1633
+ viewBox: "-7.5 -7.5 75 75",
1634
+ version: "1.1",
1635
+ style: { transform: "rotate(-90deg)" }
1636
+ }, e0 = ["stroke-dashoffset"], t0 = { class: "flex justify-center relative mx-2 my-6" }, l0 = { class: "absolute top-1/2 left-1/2 -translate-1/2 text-white z-10 font-bold text-xl" }, n0 = ["min", "max", "value"], o0 = /* @__PURE__ */ $({
1637
+ __name: "CardDimmer",
1638
+ props: {
1639
+ id: {},
1640
+ name: {},
1641
+ keyValue: {},
1642
+ type: {},
1643
+ icon: {},
1644
+ value: {},
1645
+ min: {},
1646
+ max: {},
1647
+ list: {},
1648
+ get: { type: Function },
1649
+ set: { type: Function },
1650
+ modifyValue: { type: Function },
1651
+ getItem: { type: Function },
1652
+ setItem: { type: Function }
1653
+ },
1654
+ emits: ["click", "setState"],
1655
+ setup(t, { emit: e }) {
1656
+ const i = e, o = t, r = (u, s) => Math.round(100 * u / s), d = (u, s) => Math.round(187 - u / s * 187), a = (u) => i("click", u), f = (u) => {
1657
+ var h;
1658
+ const s = +((h = u == null ? void 0 : u.target) == null ? void 0 : h.value) || 0;
1659
+ i("setState", { ...o, value: s });
1660
+ };
1661
+ return (u, s) => (n(), k(O, F(o, { onClick: a }), {
1662
+ header: m(({ value: h, max: p }) => [
1663
+ l("div", Jl, [
1664
+ l("div", Xl, [
1665
+ (n(), c("svg", Yl, [
1666
+ s[0] || (s[0] = l("circle", {
1667
+ class: "stroke-gray-300 dark:stroke-gray-700",
1668
+ r: "30",
1669
+ cx: "30",
1670
+ cy: "30",
1671
+ fill: "transparent",
1672
+ "stroke-width": "10"
1673
+ }, null, -1)),
1674
+ l("circle", {
1675
+ r: "30",
1676
+ cx: "30",
1677
+ cy: "30",
1678
+ stroke: "currentColor",
1679
+ "stroke-width": "8",
1680
+ "stroke-linecap": "butt",
1681
+ "stroke-dashoffset": d(h, p || 0),
1682
+ fill: "transparent",
1683
+ "stroke-dasharray": "187"
1684
+ }, null, 8, e0)
1685
+ ]))
1686
+ ])
1687
+ ])
1688
+ ]),
1689
+ dialog: m(({ min: h = 0, max: p = 255, value: g }) => [
1690
+ l("div", t0, [
1691
+ s[1] || (s[1] = l("div", { class: "absolute h-10 w-full top-0 left-0 bg-gray-400 dark:bg-gray-800 z-0 rounded-md" }, null, -1)),
1692
+ l("div", {
1693
+ class: "absolute h-10 top-0 left-0 bg-blue-600 dark:bg-blue-400 z-0 rounded-md",
1694
+ style: G(`width: ${r(g, p)}%`)
1695
+ }, null, 4),
1696
+ l("div", l0, x(r(g, p)) + " %", 1),
1697
+ l("input", {
1698
+ type: "range",
1699
+ min: h,
1700
+ max: p,
1701
+ value: g,
1702
+ step: "1",
1703
+ class: "w-full h-10 z-10 appearance-none cursor-pointer opacity-0",
1704
+ onChange: f
1705
+ }, null, 40, n0)
1706
+ ])
1707
+ ]),
1708
+ _: 1
1709
+ }, 16));
1710
+ }
1711
+ }), s0 = /* @__PURE__ */ $({
1712
+ __name: "CardInfo",
1713
+ props: {
1714
+ id: {},
1715
+ name: {},
1716
+ keyValue: {},
1717
+ type: {},
1718
+ icon: {},
1719
+ value: {},
1720
+ min: {},
1721
+ max: {},
1722
+ list: {},
1723
+ get: { type: Function },
1724
+ set: { type: Function },
1725
+ modifyValue: { type: Function },
1726
+ getItem: { type: Function },
1727
+ setItem: { type: Function }
1728
+ },
1729
+ emits: ["click"],
1730
+ setup(t, { emit: e }) {
1731
+ const i = e, o = t, r = (d) => i("click", d);
1732
+ return (d, a) => (n(), k(O, F(o, { onClick: r }), {
1733
+ default: m(() => [
1734
+ _(d.$slots, "dialog")
1735
+ ]),
1736
+ _: 3
1737
+ }, 16));
1738
+ }
1739
+ }), a0 = { class: "flex justify-center relative mx-2 my-6" }, r0 = /* @__PURE__ */ $({
1740
+ __name: "CardInput",
1741
+ props: {
1742
+ id: {},
1743
+ name: {},
1744
+ keyValue: {},
1745
+ type: {},
1746
+ icon: {},
1747
+ value: {},
1748
+ min: {},
1749
+ max: {},
1750
+ list: {},
1751
+ get: { type: Function },
1752
+ set: { type: Function },
1753
+ modifyValue: { type: Function },
1754
+ getItem: { type: Function },
1755
+ setItem: { type: Function }
1756
+ },
1757
+ emits: ["click", "setState"],
1758
+ setup(t, { emit: e }) {
1759
+ const i = e, o = t, r = (a) => {
1760
+ var u;
1761
+ const f = (u = a == null ? void 0 : a.target) == null ? void 0 : u.value;
1762
+ i("setState", { ...o, value: f });
1763
+ }, d = (a) => i("click", a);
1764
+ return (a, f) => (n(), k(O, F(o, { onClick: d }), {
1765
+ dialog: m(({ value: u, name: s }) => [
1766
+ l("div", a0, [
1767
+ v(A, {
1768
+ modelValue: u,
1769
+ label: s,
1770
+ onChange: r
1771
+ }, null, 8, ["modelValue", "label"])
1772
+ ])
1773
+ ]),
1774
+ _: 1
1775
+ }, 16));
1776
+ }
1777
+ }), i0 = { class: "flex justify-center py-4" }, c0 = { class: "size-16" }, d0 = /* @__PURE__ */ $({
1778
+ __name: "CardSwitch",
1779
+ props: {
1780
+ id: {},
1781
+ name: {},
1782
+ keyValue: {},
1783
+ type: {},
1784
+ icon: {},
1785
+ value: {},
1786
+ min: {},
1787
+ max: {},
1788
+ list: {},
1789
+ get: { type: Function },
1790
+ set: { type: Function },
1791
+ modifyValue: { type: Function },
1792
+ getItem: { type: Function },
1793
+ setItem: { type: Function }
1794
+ },
1795
+ emits: ["click", "setState"],
1796
+ setup(t, { emit: e }) {
1797
+ const i = e, o = t, r = (a) => i("click", a), d = () => i("setState", o);
1798
+ return (a, f) => (n(), k(O, F(o, { onClick: r }), {
1799
+ header: m(() => [...f[0] || (f[0] = [
1800
+ l("div", { class: "flex justify-end" }, null, -1)
1801
+ ])]),
1802
+ dialog: m(() => [
1803
+ l("div", i0, [
1804
+ v(B, {
1805
+ type: "icon",
1806
+ size: "sm",
1807
+ class: w(["h-18 w-18", o.value ? "text-amber-500" : "text-blue-600 dark:text-blue-400"]),
1808
+ onClick: L(d, ["stop"])
1809
+ }, {
1810
+ default: m(() => [
1811
+ l("div", c0, [
1812
+ v(M(R))
1813
+ ])
1814
+ ]),
1815
+ _: 1
1816
+ }, 8, ["class"])
1817
+ ])
1818
+ ]),
1819
+ _: 1
1820
+ }, 16));
1821
+ }
1822
+ }), u0 = { class: "flex justify-center py-4" }, f0 = /* @__PURE__ */ $({
1823
+ __name: "CardList",
1824
+ props: {
1825
+ id: {},
1826
+ name: {},
1827
+ keyValue: {},
1828
+ type: {},
1829
+ icon: {},
1830
+ value: {},
1831
+ min: {},
1832
+ max: {},
1833
+ list: {},
1834
+ get: { type: Function },
1835
+ set: { type: Function },
1836
+ modifyValue: { type: Function },
1837
+ getItem: { type: Function },
1838
+ setItem: { type: Function }
1839
+ },
1840
+ emits: ["click", "setState"],
1841
+ setup(t, { emit: e }) {
1842
+ const i = e, o = t, r = (f) => i("click", f), d = ({ value: f }) => i("setState", { ...o, value: f }), a = ({ list: f, value: u }) => {
1843
+ var s;
1844
+ return Array.isArray(f) ? (s = f.find((h) => h.value === u)) == null ? void 0 : s.name : u + "12121";
1845
+ };
1846
+ return (f, u) => (n(), k(O, F(o, { onClick: r }), {
1847
+ value: m((s) => [
1848
+ V(x(a(s)), 1)
1849
+ ]),
1850
+ "dialog-value": m((s) => [
1851
+ V(x(a(s)), 1)
1852
+ ]),
1853
+ dialog: m(({ name: s, value: h, list: p }) => [
1854
+ l("div", u0, [
1855
+ v(K, {
1856
+ value: h,
1857
+ label: s,
1858
+ list: p,
1859
+ onChange: d
1860
+ }, null, 8, ["value", "label", "list"])
1861
+ ])
1862
+ ]),
1863
+ _: 1
1864
+ }, 16));
1865
+ }
1866
+ }), h0 = { class: "pt-6" }, v0 = { class: "grid grid-cols-1 gap-x-4" }, m0 = { class: "grid grid-cols-2 gap-x-4" }, p0 = { class: "grid grid-cols-2 gap-x-4" }, g0 = { class: "flex gap-2 items-center" }, y0 = { class: "grid grid-cols-2 gap-x-4" }, b0 = { class: "flex gap-4 justify-end" }, x0 = /* @__PURE__ */ $({
1867
+ __name: "BlockItemEdit",
1868
+ props: {
1869
+ item: {},
1870
+ isNew: { type: Boolean }
1871
+ },
1872
+ emits: ["remove", "save", "select"],
1873
+ setup(t, { emit: e }) {
1874
+ const i = e, o = S({ id: "", name: "", keyValue: "" }), r = [
1875
+ { id: 1, name: "Air", icon: "IconAir" },
1876
+ { id: 2, name: "Bulb", icon: "IconBulb" },
1877
+ { id: 3, name: "Cold", icon: "IconCold" },
1878
+ { id: 4, name: "Camera", icon: "IconCamera" },
1879
+ { id: 5, name: "Vent", icon: "IconVent" },
1880
+ { id: 6, name: "Garage", icon: "IconGarage" },
1881
+ { id: 7, name: "Video", icon: "IconVideo" },
1882
+ { id: 8, name: "Light", icon: "IconLight" },
1883
+ { id: 9, name: "Tv", icon: "IconTv" },
1884
+ { id: 10, name: "Therm", icon: "IconTherm" },
1885
+ { id: 11, name: "Store", icon: "IconStore" },
1886
+ { id: 12, name: "Socket", icon: "IconSocket" },
1887
+ { id: 13, name: "Search", icon: "IconSearch" },
1888
+ { id: 14, name: "Save", icon: "IconSave" },
1889
+ { id: 15, name: "Noti", icon: "IconNoti" },
1890
+ { id: 16, name: "Logout", icon: "IconLogout" },
1891
+ { id: 17, name: "Lock", icon: "IconLock" },
1892
+ { id: 1, name: "Folder", icon: "IconFolder" }
1893
+ ], d = [
1894
+ { id: 1, name: "Button", type: "button" },
1895
+ { id: 2, name: "Info", type: "info" },
1896
+ { id: 3, name: "Dimmer", type: "dimmer" },
1897
+ { id: 4, name: "Switch", type: "switch" },
1898
+ { id: 5, name: "Date", type: "date" },
1899
+ { id: 6, name: "Input", type: "input" }
1900
+ ], a = z(() => o.value.type === "dimmer"), f = ({ icon: p }) => {
1901
+ o.value.icon = p;
1902
+ }, u = ({ type: p }) => {
1903
+ o.value.type = p;
1904
+ }, s = () => {
1905
+ i("save", o.value);
1906
+ }, h = () => {
1907
+ i("remove", o.value);
1908
+ };
1909
+ return q(() => {
1910
+ o.value = { ...t.item };
1911
+ }), (p, g) => (n(), c("div", h0, [
1912
+ l("div", v0, [
1913
+ l("div", m0, [
1914
+ v(A, {
1915
+ modelValue: o.value.id,
1916
+ "onUpdate:modelValue": g[0] || (g[0] = (b) => o.value.id = b),
1917
+ label: "ID",
1918
+ disabled: !p.isNew,
1919
+ onClick: g[1] || (g[1] = (b) => i("select", b))
1920
+ }, null, 8, ["modelValue", "disabled"]),
1921
+ v(A, {
1922
+ modelValue: o.value.keyValue,
1923
+ "onUpdate:modelValue": g[2] || (g[2] = (b) => o.value.keyValue = b),
1924
+ label: "KeyValue"
1925
+ }, null, 8, ["modelValue"])
1926
+ ]),
1927
+ v(A, {
1928
+ modelValue: o.value.name,
1929
+ "onUpdate:modelValue": g[3] || (g[3] = (b) => o.value.name = b),
1930
+ label: "Name"
1931
+ }, null, 8, ["modelValue"]),
1932
+ l("div", p0, [
1933
+ v(K, {
1934
+ value: o.value.icon,
1935
+ label: "Icon",
1936
+ list: r,
1937
+ onChange: f
1938
+ }, {
1939
+ default: m(({ item: b }) => [
1940
+ l("div", g0, [
1941
+ v(W, {
1942
+ name: b.icon,
1943
+ class: "size-5"
1944
+ }, null, 8, ["name"]),
1945
+ l("div", null, x(b.name), 1)
1946
+ ])
1947
+ ]),
1948
+ _: 1
1949
+ }, 8, ["value"]),
1950
+ v(K, {
1951
+ value: o.value.type,
1952
+ label: "Type",
1953
+ list: d,
1954
+ onChange: u
1955
+ }, null, 8, ["value"])
1956
+ ]),
1957
+ l("div", y0, [
1958
+ a.value ? (n(), k(A, {
1959
+ key: 0,
1960
+ modelValue: o.value.min,
1961
+ "onUpdate:modelValue": g[4] || (g[4] = (b) => o.value.min = b),
1962
+ label: "Min"
1963
+ }, null, 8, ["modelValue"])) : C("", !0),
1964
+ a.value ? (n(), k(A, {
1965
+ key: 1,
1966
+ modelValue: o.value.max,
1967
+ "onUpdate:modelValue": g[5] || (g[5] = (b) => o.value.max = b),
1968
+ label: "Max"
1969
+ }, null, 8, ["modelValue"])) : C("", !0)
1970
+ ]),
1971
+ o.value.set ? (n(), k(A, {
1972
+ key: 0,
1973
+ modelValue: o.value.set,
1974
+ "onUpdate:modelValue": g[6] || (g[6] = (b) => o.value.set = b),
1975
+ component: "textarea",
1976
+ label: "Set"
1977
+ }, null, 8, ["modelValue"])) : C("", !0),
1978
+ v(A, {
1979
+ modelValue: o.value.get,
1980
+ "onUpdate:modelValue": g[7] || (g[7] = (b) => o.value.get = b),
1981
+ component: "textarea",
1982
+ label: "Get"
1983
+ }, null, 8, ["modelValue"]),
1984
+ v(A, {
1985
+ modelValue: o.value.modifyValue,
1986
+ "onUpdate:modelValue": g[8] || (g[8] = (b) => o.value.modifyValue = b),
1987
+ component: "textarea",
1988
+ label: "ModifyValue"
1989
+ }, null, 8, ["modelValue"])
1990
+ ]),
1991
+ l("div", b0, [
1992
+ v(B, {
1993
+ class: "px-4",
1994
+ color: "red",
1995
+ outline: "",
1996
+ onClick: h
1997
+ }, {
1998
+ default: m(() => [...g[9] || (g[9] = [
1999
+ V("Remove", -1)
2000
+ ])]),
2001
+ _: 1
2002
+ }),
2003
+ v(B, {
2004
+ class: "px-4",
2005
+ color: "blue",
2006
+ onClick: s
2007
+ }, {
2008
+ default: m(() => [...g[10] || (g[10] = [
2009
+ V("Save", -1)
2010
+ ])]),
2011
+ _: 1
2012
+ })
2013
+ ])
2014
+ ]));
2015
+ }
2016
+ }), k0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2017
+ __proto__: null,
2018
+ BlockItemEdit: x0,
2019
+ CardBase: O,
2020
+ CardButton: Wl,
2021
+ CardDate: Ql,
2022
+ CardDimmer: o0,
2023
+ CardInfo: s0,
2024
+ CardInput: r0,
2025
+ CardList: f0,
2026
+ CardSwitch: d0
2027
+ }, Symbol.toStringTag, { value: "Module" })), _0 = { class: "no-scrollbar flex flex-col overflow-y-auto duration-300 ease-linear h-full" }, $0 = /* @__PURE__ */ $({
2028
+ __name: "AppAside",
2029
+ props: {
2030
+ isSidebar: { type: Boolean, default: !1 }
2031
+ },
2032
+ emits: ["sidebar"],
2033
+ setup(t, { emit: e }) {
2034
+ const i = e, o = () => {
2035
+ t.isSidebar && i("sidebar", !t.isSidebar);
2036
+ };
2037
+ return (r, d) => {
2038
+ const a = P("router-link");
2039
+ return n(), c(I, null, [
2040
+ r.isSidebar ? (n(), c("div", {
2041
+ key: 0,
2042
+ class: "lg:hidden overlay fixed left-0 top-0 h-full w-full bg-black/40 bg-blur z-10",
2043
+ onClick: o
2044
+ })) : C("", !0),
2045
+ l("aside", {
2046
+ class: w([r.isSidebar ? "translate-x-0 lg:w-[90px]" : "-translate-x-full", "overflow-x-hidden fixed top-0 left-0 z-10 flex lg:static h-full w-[290px] flex-col overflow-y-auto border-r border-gray-200 px-5 transition-all lg:translate-x-0 dark:border-gray-800 bg-white dark:bg-gray-900 -translate-x-full"])
2047
+ }, [
2048
+ l("div", {
2049
+ class: w([r.isSidebar ? "justify-center" : "justify-between", "sidebar-header flex items-center gap-2 pt-6 pb-6 justify-between"])
2050
+ }, [
2051
+ v(a, { to: "/" }, {
2052
+ default: m(() => [
2053
+ r.isSidebar ? (n(), k(M(fe), {
2054
+ key: 0,
2055
+ class: "h-[30px] text-primary"
2056
+ })) : (n(), k(M(le), {
2057
+ key: 1,
2058
+ class: "h-[30px] text-primary"
2059
+ }))
2060
+ ]),
2061
+ _: 1
2062
+ })
2063
+ ], 2),
2064
+ l("div", _0, [
2065
+ _(r.$slots, "default")
2066
+ ])
2067
+ ], 2)
2068
+ ], 64);
2069
+ };
2070
+ }
2071
+ }), w0 = { class: "flex-auto flex align-center p-4" }, C0 = { class: "flex items-center justify-between px-4 py-2 border-b dark:border-gray-700 border-gray-200" }, V0 = { class: "px-4 py-2 flex-auto scroll-none" }, z0 = ["innerHTML"], M0 = {
2072
+ key: 0,
2073
+ class: "px-4 py-2 flex justify-end"
2074
+ }, I0 = /* @__PURE__ */ $({
2075
+ __name: "AppDialog",
2076
+ props: {
2077
+ value: { type: Boolean },
2078
+ title: { default: "Attention !" },
2079
+ message: { default: "" },
2080
+ callback: { type: Function },
2081
+ button: { default: "OK" },
2082
+ size: { default: "sm" }
2083
+ },
2084
+ emits: ["close"],
2085
+ setup(t, { emit: e }) {
2086
+ const i = e, o = S(!1), r = { sm: "max-w-[330px]", md: "max-w-[600px]", lg: "max-w-[960px]" }, d = z(() => [`${(r == null ? void 0 : r[t.size]) || ""}`]), a = (u) => {
2087
+ o.value = !1, setTimeout(() => {
2088
+ i("close", u);
2089
+ }, 300);
2090
+ }, f = (u) => {
2091
+ t.callback && t.callback(), a(u);
2092
+ };
2093
+ return q(() => {
2094
+ setTimeout(() => {
2095
+ o.value = !0;
2096
+ }, 300);
2097
+ }), (u, s) => (n(), k(be, { to: "body" }, [
2098
+ v(ae, {
2099
+ "enter-active-class": "duration-300 ease-out",
2100
+ "enter-from-class": "transform opacity-0 -translate-y-2",
2101
+ "enter-to-class": "opacity-100 translate-y-0",
2102
+ "leave-active-class": "duration-200 ease-in",
2103
+ "leave-from-class": "opacity-100 translate-y-0",
2104
+ "leave-to-class": "transform opacity-0 -translate-y-2"
2105
+ }, {
2106
+ default: m(() => [
2107
+ o.value ? (n(), c("div", {
2108
+ key: 0,
2109
+ class: "z-20 fixed top-0 h-[100dvh] w-full left-0 flex flex-col",
2110
+ onWheel: s[0] || (s[0] = L(() => {
2111
+ }, ["stop"]))
2112
+ }, [
2113
+ l("div", {
2114
+ class: "absolute h-full w-full top-0 left-0 bg-black/40 bg-blur",
2115
+ onClick: a
2116
+ }),
2117
+ l("div", w0, [
2118
+ l("div", {
2119
+ class: w(["m-auto w-full bg-white dark:bg-gray-900 shadow-lg flex flex-col rounded-lg z-30", d.value])
2120
+ }, [
2121
+ l("div", C0, [
2122
+ _(u.$slots, "header", {}, () => [
2123
+ l("h4", null, x(u.title), 1)
2124
+ ]),
2125
+ v(B, {
2126
+ type: "icon",
2127
+ size: "",
2128
+ onClick: a
2129
+ }, {
2130
+ default: m(() => [
2131
+ v(M(te), { class: "h-5 w-5" })
2132
+ ]),
2133
+ _: 1
2134
+ })
2135
+ ]),
2136
+ l("div", V0, [
2137
+ _(u.$slots, "default", {}, () => [
2138
+ l("div", { innerHTML: u.message }, null, 8, z0)
2139
+ ])
2140
+ ]),
2141
+ u.$slots.footer || u.callback ? (n(), c("div", M0, [
2142
+ _(u.$slots, "footer", {}, () => [
2143
+ v(B, {
2144
+ color: "blue",
2145
+ size: "small",
2146
+ onClick: f
2147
+ }, {
2148
+ default: m(() => [
2149
+ V(x(u.button), 1)
2150
+ ]),
2151
+ _: 1
2152
+ })
2153
+ ])
2154
+ ])) : C("", !0)
2155
+ ], 2)
2156
+ ])
2157
+ ], 32)) : C("", !0)
2158
+ ]),
2159
+ _: 3
2160
+ })
2161
+ ]));
2162
+ }
2163
+ }), B0 = { class: "bg-white dark:bg-gray-900 border-b border-gray-300 dark:border-gray-700 left-0 w-full z-10 sticky top-0" }, S0 = { class: "px-4 py-4 sm:px-6 lg:px-8" }, A0 = { class: "container mx-auto flex flex-auto items-center" }, F0 = { class: "lg:hidden h-[30px] me-10" }, H0 = { class: "gap-4 hidden lg:flex" }, L0 = { class: "lg:hidden flex gap-4" }, j0 = { class: "ms-2" }, T0 = /* @__PURE__ */ $({
2164
+ __name: "AppHeader",
2165
+ props: {
2166
+ changeTheme: { type: Function }
2167
+ },
2168
+ emits: ["sidebar"],
2169
+ setup(t, { emit: e }) {
2170
+ const i = e, o = S(!1), r = S(!1), d = [
2171
+ { id: 1, name: "Theme", icon: X },
2172
+ { id: 2, name: "Logout", icon: Y }
2173
+ ], a = (h) => i("sidebar", h), f = async () => await fetch("/", {
2174
+ method: "get",
2175
+ headers: { Authorization: "Basic AAAAAAAAAAAAAAAAAAA=" }
2176
+ }), u = () => {
2177
+ t.changeTheme && t.changeTheme();
2178
+ }, s = ({ name: h }) => {
2179
+ h == "Logout" && f(), h == "Theme" && u();
2180
+ };
2181
+ return (h, p) => {
2182
+ const g = P("router-link");
2183
+ return n(), c("header", B0, [
2184
+ l("div", S0, [
2185
+ l("div", A0, [
2186
+ v(B, {
2187
+ type: "icon",
2188
+ color: "gray",
2189
+ class: "me-6",
2190
+ onClick: a
2191
+ }, {
2192
+ default: m(() => [
2193
+ v(M(ue), { class: "h-5 w-5" })
2194
+ ]),
2195
+ _: 1
2196
+ }),
2197
+ p[2] || (p[2] = l("div", { class: "lg:hidden flex-auto" }, null, -1)),
2198
+ l("div", F0, [
2199
+ v(g, { to: "/" }, {
2200
+ default: m(() => [
2201
+ v(M(le), { class: "h-[30px] text-primary" })
2202
+ ]),
2203
+ _: 1
2204
+ })
2205
+ ]),
2206
+ p[3] || (p[3] = l("div", { class: "flex-auto" }, null, -1)),
2207
+ l("div", H0, [
2208
+ v(B, {
2209
+ type: "icon",
2210
+ color: "gray",
2211
+ onClick: u
2212
+ }, {
2213
+ default: m(() => [
2214
+ v(M(X))
2215
+ ]),
2216
+ _: 1
2217
+ }),
2218
+ v(B, {
2219
+ type: "icon",
2220
+ color: "gray",
2221
+ onClick: p[0] || (p[0] = L((b) => {
2222
+ o.value = !o.value, r.value = !1;
2223
+ }, ["prevent"]))
2224
+ }, {
2225
+ default: m(() => [
2226
+ l("span", {
2227
+ class: w([r.value ? "flex" : "hidden", "absolute right-0 top-0.5 z-1 h-2 w-2 rounded-full bg-orange-400 flex"])
2228
+ }, [...p[1] || (p[1] = [
2229
+ l("span", { class: "absolute -z-1 inline-flex h-full w-full animate-ping rounded-full bg-orange-400 opacity-75" }, null, -1)
2230
+ ])], 2),
2231
+ v(M(he), { class: "h-5 w-5" })
2232
+ ]),
2233
+ _: 1
2234
+ }),
2235
+ v(B, {
2236
+ type: "icon",
2237
+ color: "gray",
2238
+ onClick: L(f, ["prevent"])
2239
+ }, {
2240
+ default: m(() => [
2241
+ v(M(Y), { class: "h-5 w-5" })
2242
+ ]),
2243
+ _: 1
2244
+ })
2245
+ ]),
2246
+ l("div", L0, [
2247
+ v(Z, {
2248
+ left: "unset",
2249
+ right: "0",
2250
+ top: "0"
2251
+ }, {
2252
+ activator: m(({ on: b }) => [
2253
+ v(B, {
2254
+ type: "icon",
2255
+ color: "gray",
2256
+ class: "flex",
2257
+ onClick: b.click
2258
+ }, {
2259
+ default: m(() => [
2260
+ v(M(ce))
2261
+ ]),
2262
+ _: 1
2263
+ }, 8, ["onClick"])
2264
+ ]),
2265
+ default: m(() => [
2266
+ v(Q, {
2267
+ list: d,
2268
+ onClick: s
2269
+ }, {
2270
+ default: m(({ item: b }) => [
2271
+ (n(), k(E(b.icon))),
2272
+ l("span", j0, x(b.name), 1)
2273
+ ]),
2274
+ _: 1
2275
+ })
2276
+ ]),
2277
+ _: 1
2278
+ })
2279
+ ])
2280
+ ])
2281
+ ])
2282
+ ]);
2283
+ };
2284
+ }
2285
+ }), D0 = /* @__PURE__ */ $({
2286
+ __name: "AppNotification",
2287
+ props: {
2288
+ notifications: { default: () => [] }
2289
+ },
2290
+ emits: ["close"],
2291
+ setup(t, { emit: e }) {
2292
+ const i = e;
2293
+ return (o, r) => (n(), c("div", null, [
2294
+ v(xe, {
2295
+ name: "list",
2296
+ tag: "ul",
2297
+ class: "flex flex-col gap-2"
2298
+ }, {
2299
+ default: m(() => [
2300
+ (n(!0), c(I, null, H(o.notifications, (d) => (n(), k(Tl, F({
2301
+ key: d.id
2302
+ }, { ref_for: !0 }, d, {
2303
+ onClose: (a) => i("close", d)
2304
+ }), null, 16, ["onClose"]))), 128))
2305
+ ]),
2306
+ _: 1
2307
+ })
2308
+ ]));
2309
+ }
2310
+ }), O0 = {}, N0 = { class: "fixed h-full w-full top-0 left-0 z-20" }, E0 = { class: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2" };
2311
+ function P0(t, e) {
2312
+ return n(), c("div", N0, [
2313
+ e[0] || (e[0] = l("div", { class: "absolute h-full w-full top-0 left-0 bg-black/60 bg-blur" }, null, -1)),
2314
+ l("div", E0, [
2315
+ _(t.$slots, "default")
2316
+ ])
2317
+ ]);
2318
+ }
2319
+ const U0 = /* @__PURE__ */ re(O0, [["render", P0]]), G0 = { class: "mb-4 flex flex-col gap-4" }, q0 = ["onClick"], K0 = { class: "flex flex-col gap-2" }, R0 = { class: "flex gap-2 ms-8" }, W0 = { class: "flex-1 first-letter:uppercase text-sm" }, Z0 = /* @__PURE__ */ $({
2320
+ __name: "AppNav",
2321
+ props: {
2322
+ menu: { default: () => [] },
2323
+ fullPath: { default: "" },
2324
+ isSidebar: { type: Boolean, default: !1 }
2325
+ },
2326
+ emits: ["sidebar"],
2327
+ setup(t, { emit: e }) {
2328
+ const i = e, o = S(""), r = ({ name: a, path: f }) => {
2329
+ t.isSidebar && i("sidebar", !t.isSidebar), o.value !== a && (o.value = o.value === a ? "" : a);
2330
+ }, d = (a) => t.fullPath === a;
2331
+ return ke(
2332
+ () => t.menu,
2333
+ () => {
2334
+ var a;
2335
+ return o.value = ((a = $e(t.menu, t.fullPath)) == null ? void 0 : a.name) || "";
2336
+ }
2337
+ ), (a, f) => {
2338
+ const u = P("v-icons");
2339
+ return n(), c("nav", null, [
2340
+ l("ul", G0, [
2341
+ (n(!0), c(I, null, H(a.menu, (s) => (n(), c("li", {
2342
+ key: s.name
2343
+ }, [
2344
+ (n(), k(E(s.path ? "router-link" : "span"), {
2345
+ to: s.path,
2346
+ class: w(["flex gap-2 items-center px-3 py-2 rounded-lg", d(s.path) ? "bg-blue-500/10" : "hover:bg-gray-500/10"]),
2347
+ onClick: L((h) => r(s), ["prevent", "stop"])
2348
+ }, {
2349
+ default: m(() => [
2350
+ v(u, {
2351
+ name: s.icon,
2352
+ class: "size-5 flex-[0_0_24px]"
2353
+ }, null, 8, ["name"]),
2354
+ l("span", {
2355
+ class: w(["flex-1 first-letter:uppercase text-sm", a.isSidebar ? "lg:hidden" : ""])
2356
+ }, x(s.name), 3),
2357
+ l("button", {
2358
+ class: w(["cursor-pointer", [a.isSidebar ? "lg:hidden" : ""]]),
2359
+ onClick: L((h) => r(s), ["prevent", "stop"])
2360
+ }, [
2361
+ s.children ? (n(), k(M(U), { key: 0 })) : C("", !0)
2362
+ ], 10, q0)
2363
+ ]),
2364
+ _: 2
2365
+ }, 1032, ["to", "class", "onClick"])),
2366
+ s.children ? (n(), c("div", {
2367
+ key: 0,
2368
+ class: w(["translate transform overflow-hidden mt-2", [a.isSidebar ? "lg:hidden" : "", o.value === s.name ? "block" : "hidden"]])
2369
+ }, [
2370
+ l("ul", K0, [
2371
+ (n(!0), c(I, null, H(s.children, ({ name: h, path: p, icon: g }) => (n(), c("li", { key: h }, [
2372
+ (n(), k(E(p ? "router-link" : "span"), {
2373
+ to: p,
2374
+ class: w(["flex gap-2 items-center px-3 py-2 rounded-lg", d(p) ? "bg-blue-500/10" : "hover:bg-gray-500/10"])
2375
+ }, {
2376
+ default: m(() => [
2377
+ l("div", R0, [
2378
+ g ? (n(), k(u, {
2379
+ key: 0,
2380
+ name: g,
2381
+ class: "size-5 flex-[0_0_24px]"
2382
+ }, null, 8, ["name"])) : C("", !0),
2383
+ l("span", W0, x(h), 1)
2384
+ ])
2385
+ ]),
2386
+ _: 2
2387
+ }, 1032, ["to", "class"]))
2388
+ ]))), 128))
2389
+ ])
2390
+ ], 2)) : C("", !0)
2391
+ ]))), 128))
2392
+ ])
2393
+ ]);
2394
+ };
2395
+ }
2396
+ }), Q0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2397
+ __proto__: null,
2398
+ AppAside: $0,
2399
+ AppDialog: I0,
2400
+ AppHeader: T0,
2401
+ AppNav: Z0,
2402
+ AppNotification: D0,
2403
+ AppOverlay: U0
2404
+ }, Symbol.toStringTag, { value: "Module" })), oe = { ...Q0, ...k0, VButton: B, VLoader: ie, VDropdown: Z, VList: Q, VTextField: A, VSelect: K, VWifiIcon: j1, VIcons: W, CardGray: Sl }, rn = {
2405
+ install: (t, e) => {
2406
+ Object.keys(oe).forEach((i) => {
2407
+ t.component(i, oe[i]);
2408
+ }), Ce.forEach(({ name: i, directive: o }) => t.directive(i, o));
2409
+ }
2410
+ };
2411
+ export {
2412
+ $0 as AppAside,
2413
+ I0 as AppDialog,
2414
+ T0 as AppHeader,
2415
+ Z0 as AppNav,
2416
+ D0 as AppNotification,
2417
+ U0 as AppOverlay,
2418
+ an as BlockBreadcrumb,
2419
+ on as BlockInfo,
2420
+ sn as BlockStatus,
2421
+ nn as BlockTable,
2422
+ Sl as CardGray,
2423
+ Tl as CardNotification,
2424
+ un as Dashboard,
2425
+ Y0 as VAutocomplete,
2426
+ B as VButton,
2427
+ en as VCheckbox,
2428
+ Z as VDropdown,
2429
+ tn as VExpansion,
2430
+ W as VIcons,
2431
+ Q as VList,
2432
+ q1 as VListObject,
2433
+ ie as VLoader,
2434
+ K as VSelect,
2435
+ A as VTextField,
2436
+ ln as VTextFieldFile,
2437
+ j1 as VWifiIcon,
2438
+ fn as createObjectFromPaths,
2439
+ rn as default,
2440
+ hn as functionToString,
2441
+ vn as safeEval,
2442
+ mn as saveObjectWithFunctions,
2443
+ pn as stringToFunction
2444
+ };