@winchsa/ui 0.1.30 → 0.1.33

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 (300) hide show
  1. package/package.json +1 -1
  2. package/dist/components/Breadcrumbs.d.vue.ts +0 -7
  3. package/dist/components/Breadcrumbs.vue +0 -46
  4. package/dist/components/Breadcrumbs.vue.d.ts +0 -7
  5. package/dist/components/CustomizerSection.d.vue.ts +0 -17
  6. package/dist/components/CustomizerSection.vue +0 -19
  7. package/dist/components/CustomizerSection.vue.d.ts +0 -17
  8. package/dist/components/DialogCloseBtn.d.vue.ts +0 -7
  9. package/dist/components/DialogCloseBtn.vue +0 -20
  10. package/dist/components/DialogCloseBtn.vue.d.ts +0 -7
  11. package/dist/components/Drawer.d.vue.ts +0 -28
  12. package/dist/components/Drawer.vue +0 -60
  13. package/dist/components/Drawer.vue.d.ts +0 -28
  14. package/dist/components/IconBtn.d.vue.ts +0 -18
  15. package/dist/components/IconBtn.vue +0 -24
  16. package/dist/components/IconBtn.vue.d.ts +0 -18
  17. package/dist/components/LoadingBar.d.vue.ts +0 -6
  18. package/dist/components/LoadingBar.vue +0 -31
  19. package/dist/components/LoadingBar.vue.d.ts +0 -6
  20. package/dist/components/LoadingDialog.d.vue.ts +0 -12
  21. package/dist/components/LoadingDialog.vue +0 -41
  22. package/dist/components/LoadingDialog.vue.d.ts +0 -12
  23. package/dist/components/LoadingItem.d.vue.ts +0 -25
  24. package/dist/components/LoadingItem.vue +0 -66
  25. package/dist/components/LoadingItem.vue.d.ts +0 -25
  26. package/dist/components/Modal.d.vue.ts +0 -50
  27. package/dist/components/Modal.vue +0 -155
  28. package/dist/components/Modal.vue.d.ts +0 -50
  29. package/dist/components/MoreBtn.d.vue.ts +0 -17
  30. package/dist/components/MoreBtn.vue +0 -28
  31. package/dist/components/MoreBtn.vue.d.ts +0 -17
  32. package/dist/components/ScrollToTop.d.vue.ts +0 -3
  33. package/dist/components/ScrollToTop.vue +0 -39
  34. package/dist/components/ScrollToTop.vue.d.ts +0 -3
  35. package/dist/components/SiteTitle.d.vue.ts +0 -3
  36. package/dist/components/SiteTitle.vue +0 -14
  37. package/dist/components/SiteTitle.vue.d.ts +0 -3
  38. package/dist/components/Toaster.d.vue.ts +0 -6
  39. package/dist/components/Toaster.vue +0 -19
  40. package/dist/components/Toaster.vue.d.ts +0 -6
  41. package/dist/components/cards/AppCard.d.vue.ts +0 -18
  42. package/dist/components/cards/AppCard.vue +0 -45
  43. package/dist/components/cards/AppCard.vue.d.ts +0 -18
  44. package/dist/components/cards/AppCardActions.d.vue.ts +0 -33
  45. package/dist/components/cards/AppCardActions.vue +0 -126
  46. package/dist/components/cards/AppCardActions.vue.d.ts +0 -33
  47. package/dist/components/cards/CardStatisticsHorizontal.d.vue.ts +0 -9
  48. package/dist/components/cards/CardStatisticsHorizontal.vue +0 -29
  49. package/dist/components/cards/CardStatisticsHorizontal.vue.d.ts +0 -9
  50. package/dist/components/cards/CheckboxesCard.d.vue.ts +0 -18
  51. package/dist/components/cards/CheckboxesCard.vue +0 -108
  52. package/dist/components/cards/CheckboxesCard.vue.d.ts +0 -18
  53. package/dist/components/cards/HeaderCard.d.vue.ts +0 -9
  54. package/dist/components/cards/HeaderCard.vue +0 -31
  55. package/dist/components/cards/HeaderCard.vue.d.ts +0 -9
  56. package/dist/components/cards/ImageCard.d.vue.ts +0 -33
  57. package/dist/components/cards/ImageCard.vue +0 -73
  58. package/dist/components/cards/ImageCard.vue.d.ts +0 -33
  59. package/dist/components/cards/InputCard.d.vue.ts +0 -21
  60. package/dist/components/cards/InputCard.vue +0 -60
  61. package/dist/components/cards/InputCard.vue.d.ts +0 -21
  62. package/dist/components/cards/StaticCard.d.vue.ts +0 -21
  63. package/dist/components/cards/StaticCard.vue +0 -37
  64. package/dist/components/cards/StaticCard.vue.d.ts +0 -21
  65. package/dist/components/forms/Accordion.d.vue.ts +0 -19
  66. package/dist/components/forms/Accordion.vue +0 -43
  67. package/dist/components/forms/Accordion.vue.d.ts +0 -19
  68. package/dist/components/forms/AppBarSearch.d.vue.ts +0 -43
  69. package/dist/components/forms/AppBarSearch.vue +0 -345
  70. package/dist/components/forms/AppBarSearch.vue.d.ts +0 -43
  71. package/dist/components/forms/AppCombobox.d.vue.ts +0 -13
  72. package/dist/components/forms/AppCombobox.vue +0 -67
  73. package/dist/components/forms/AppCombobox.vue.d.ts +0 -13
  74. package/dist/components/forms/AppDrawerHeaderSection.d.vue.ts +0 -20
  75. package/dist/components/forms/AppDrawerHeaderSection.vue +0 -21
  76. package/dist/components/forms/AppDrawerHeaderSection.vue.d.ts +0 -20
  77. package/dist/components/forms/AppLabel.d.vue.ts +0 -24
  78. package/dist/components/forms/AppLabel.vue +0 -47
  79. package/dist/components/forms/AppLabel.vue.d.ts +0 -24
  80. package/dist/components/forms/AppLink.d.vue.ts +0 -19
  81. package/dist/components/forms/AppLink.vue +0 -50
  82. package/dist/components/forms/AppLink.vue.d.ts +0 -19
  83. package/dist/components/forms/AppNumberField.d.vue.ts +0 -20
  84. package/dist/components/forms/AppNumberField.vue +0 -85
  85. package/dist/components/forms/AppNumberField.vue.d.ts +0 -20
  86. package/dist/components/forms/AppOtpInput.d.vue.ts +0 -13
  87. package/dist/components/forms/AppOtpInput.vue +0 -84
  88. package/dist/components/forms/AppOtpInput.vue.d.ts +0 -13
  89. package/dist/components/forms/AppSearchHeader.d.vue.ts +0 -8
  90. package/dist/components/forms/AppSearchHeader.vue +0 -72
  91. package/dist/components/forms/AppSearchHeader.vue.d.ts +0 -8
  92. package/dist/components/forms/AppSelect.d.vue.ts +0 -17
  93. package/dist/components/forms/AppSelect.vue +0 -98
  94. package/dist/components/forms/AppSelect.vue.d.ts +0 -17
  95. package/dist/components/forms/AppStepper.d.vue.ts +0 -21
  96. package/dist/components/forms/AppStepper.vue +0 -232
  97. package/dist/components/forms/AppStepper.vue.d.ts +0 -21
  98. package/dist/components/forms/AppSwitch.d.vue.ts +0 -16
  99. package/dist/components/forms/AppSwitch.vue +0 -59
  100. package/dist/components/forms/AppSwitch.vue.d.ts +0 -16
  101. package/dist/components/forms/AppTextField.d.vue.ts +0 -13
  102. package/dist/components/forms/AppTextField.vue +0 -66
  103. package/dist/components/forms/AppTextField.vue.d.ts +0 -13
  104. package/dist/components/forms/AppTextarea.d.vue.ts +0 -13
  105. package/dist/components/forms/AppTextarea.vue +0 -69
  106. package/dist/components/forms/AppTextarea.vue.d.ts +0 -13
  107. package/dist/components/forms/AttachmentCropperInput.d.vue.ts +0 -18
  108. package/dist/components/forms/AttachmentCropperInput.vue +0 -227
  109. package/dist/components/forms/AttachmentCropperInput.vue.d.ts +0 -18
  110. package/dist/components/forms/AttachmentInput.d.vue.ts +0 -16
  111. package/dist/components/forms/AttachmentInput.vue +0 -116
  112. package/dist/components/forms/AttachmentInput.vue.d.ts +0 -16
  113. package/dist/components/forms/AutocompleteInput.d.vue.ts +0 -84
  114. package/dist/components/forms/AutocompleteInput.vue +0 -760
  115. package/dist/components/forms/AutocompleteInput.vue.d.ts +0 -84
  116. package/dist/components/forms/BankSelect.d.vue.ts +0 -21
  117. package/dist/components/forms/BankSelect.vue +0 -43
  118. package/dist/components/forms/BankSelect.vue.d.ts +0 -21
  119. package/dist/components/forms/BaseButton.d.vue.ts +0 -20
  120. package/dist/components/forms/BaseButton.vue +0 -42
  121. package/dist/components/forms/BaseButton.vue.d.ts +0 -20
  122. package/dist/components/forms/CounterInput.d.vue.ts +0 -13
  123. package/dist/components/forms/CounterInput.vue +0 -71
  124. package/dist/components/forms/CounterInput.vue.d.ts +0 -13
  125. package/dist/components/forms/CustomCheckboxes.d.vue.ts +0 -25
  126. package/dist/components/forms/CustomCheckboxes.vue +0 -69
  127. package/dist/components/forms/CustomCheckboxes.vue.d.ts +0 -25
  128. package/dist/components/forms/CustomCheckboxesWithIcon.d.vue.ts +0 -25
  129. package/dist/components/forms/CustomCheckboxesWithIcon.vue +0 -80
  130. package/dist/components/forms/CustomCheckboxesWithIcon.vue.d.ts +0 -25
  131. package/dist/components/forms/CustomCheckboxesWithImage.d.vue.ts +0 -16
  132. package/dist/components/forms/CustomCheckboxesWithImage.vue +0 -67
  133. package/dist/components/forms/CustomCheckboxesWithImage.vue.d.ts +0 -16
  134. package/dist/components/forms/CustomRadios.d.vue.ts +0 -25
  135. package/dist/components/forms/CustomRadios.vue +0 -69
  136. package/dist/components/forms/CustomRadios.vue.d.ts +0 -25
  137. package/dist/components/forms/CustomRadiosWithIcon.d.vue.ts +0 -28
  138. package/dist/components/forms/CustomRadiosWithIcon.vue +0 -98
  139. package/dist/components/forms/CustomRadiosWithIcon.vue.d.ts +0 -28
  140. package/dist/components/forms/CustomRadiosWithImage.d.vue.ts +0 -35
  141. package/dist/components/forms/CustomRadiosWithImage.vue +0 -69
  142. package/dist/components/forms/CustomRadiosWithImage.vue.d.ts +0 -35
  143. package/dist/components/forms/DatePicker.d.vue.ts +0 -29
  144. package/dist/components/forms/DatePicker.vue +0 -400
  145. package/dist/components/forms/DatePicker.vue.d.ts +0 -29
  146. package/dist/components/forms/DatePickerRange.d.vue.ts +0 -24
  147. package/dist/components/forms/DatePickerRange.vue +0 -127
  148. package/dist/components/forms/DatePickerRange.vue.d.ts +0 -24
  149. package/dist/components/forms/DraggedUploadFile.d.vue.ts +0 -11
  150. package/dist/components/forms/DraggedUploadFile.vue +0 -120
  151. package/dist/components/forms/DraggedUploadFile.vue.d.ts +0 -11
  152. package/dist/components/forms/ImageCardInput.d.vue.ts +0 -35
  153. package/dist/components/forms/ImageCardInput.vue +0 -234
  154. package/dist/components/forms/ImageCardInput.vue.d.ts +0 -35
  155. package/dist/components/forms/InputValidationWrapper.d.vue.ts +0 -26
  156. package/dist/components/forms/InputValidationWrapper.vue +0 -24
  157. package/dist/components/forms/InputValidationWrapper.vue.d.ts +0 -26
  158. package/dist/components/forms/LicensePlateInput.d.vue.ts +0 -21
  159. package/dist/components/forms/LicensePlateInput.vue +0 -175
  160. package/dist/components/forms/LicensePlateInput.vue.d.ts +0 -21
  161. package/dist/components/forms/ManualDate.d.vue.ts +0 -20
  162. package/dist/components/forms/ManualDate.vue +0 -264
  163. package/dist/components/forms/ManualDate.vue.d.ts +0 -20
  164. package/dist/components/forms/MobileInput.d.vue.ts +0 -25
  165. package/dist/components/forms/MobileInput.vue +0 -118
  166. package/dist/components/forms/MobileInput.vue.d.ts +0 -25
  167. package/dist/components/forms/PasswordInput.d.vue.ts +0 -11
  168. package/dist/components/forms/PasswordInput.vue +0 -29
  169. package/dist/components/forms/PasswordInput.vue.d.ts +0 -11
  170. package/dist/components/forms/RangeInput.d.vue.ts +0 -10
  171. package/dist/components/forms/RangeInput.vue +0 -48
  172. package/dist/components/forms/RangeInput.vue.d.ts +0 -10
  173. package/dist/components/forms/Tabs.d.vue.ts +0 -23
  174. package/dist/components/forms/Tabs.vue +0 -35
  175. package/dist/components/forms/Tabs.vue.d.ts +0 -23
  176. package/dist/components/forms/TimePicker.d.vue.ts +0 -18
  177. package/dist/components/forms/TimePicker.vue +0 -370
  178. package/dist/components/forms/TimePicker.vue.d.ts +0 -18
  179. package/dist/components/table/DataTable.d.vue.ts +0 -70
  180. package/dist/components/table/DataTable.vue +0 -361
  181. package/dist/components/table/DataTable.vue.d.ts +0 -70
  182. package/dist/components/table/EditableDataTable.d.vue.ts +0 -21
  183. package/dist/components/table/EditableDataTable.vue +0 -328
  184. package/dist/components/table/EditableDataTable.vue.d.ts +0 -21
  185. package/dist/components/table/EditableDataTableRow.d.vue.ts +0 -20
  186. package/dist/components/table/EditableDataTableRow.vue +0 -253
  187. package/dist/components/table/EditableDataTableRow.vue.d.ts +0 -20
  188. package/dist/components/table/FilterGenerator.d.vue.ts +0 -13
  189. package/dist/components/table/FilterGenerator.vue +0 -231
  190. package/dist/components/table/FilterGenerator.vue.d.ts +0 -13
  191. package/dist/components/table/StaticTable.d.vue.ts +0 -34
  192. package/dist/components/table/StaticTable.vue +0 -152
  193. package/dist/components/table/StaticTable.vue.d.ts +0 -34
  194. package/dist/components/table/TablePagination.d.vue.ts +0 -15
  195. package/dist/components/table/TablePagination.vue +0 -73
  196. package/dist/components/table/TablePagination.vue.d.ts +0 -15
  197. package/dist/composables/useIsMobile.d.ts +0 -1
  198. package/dist/composables/useIsMobile.js +0 -10
  199. package/dist/composables/useIsMobile.mjs +0 -4
  200. package/dist/composables/useTableFilters.d.ts +0 -23
  201. package/dist/composables/useTableFilters.js +0 -197
  202. package/dist/composables/useTableFilters.mjs +0 -184
  203. package/dist/images/avatar.png +0 -0
  204. package/dist/images/sa.svg +0 -1
  205. package/dist/index.d.ts +0 -65
  206. package/dist/index.js +0 -454
  207. package/dist/index.mjs +0 -130
  208. package/dist/lang/ar.json +0 -54
  209. package/dist/lang/en.json +0 -54
  210. package/dist/styles/assets/scss/variables/_template.scss +0 -1
  211. package/dist/styles/assets/scss/variables/_vuetify.scss +0 -1
  212. package/dist/styles/core/base/_components.scss +0 -164
  213. package/dist/styles/core/base/_dark.scss +0 -16
  214. package/dist/styles/core/base/_default-layout-w-vertical-nav.scss +0 -106
  215. package/dist/styles/core/base/_default-layout.scss +0 -16
  216. package/dist/styles/core/base/_index.scss +0 -47
  217. package/dist/styles/core/base/_layouts.scss +0 -63
  218. package/dist/styles/core/base/_misc.scss +0 -20
  219. package/dist/styles/core/base/_mixins.scss +0 -84
  220. package/dist/styles/core/base/_route-transitions.scss +0 -70
  221. package/dist/styles/core/base/_utilities.scss +0 -418
  222. package/dist/styles/core/base/_utils.scss +0 -100
  223. package/dist/styles/core/base/_variables.scss +0 -190
  224. package/dist/styles/core/base/_vertical-nav.scss +0 -264
  225. package/dist/styles/core/base/libs/_perfect-scrollbar.scss +0 -35
  226. package/dist/styles/core/base/libs/vuetify/_index.scss +0 -1
  227. package/dist/styles/core/base/libs/vuetify/_overrides.scss +0 -380
  228. package/dist/styles/core/base/libs/vuetify/_variables.scss +0 -48
  229. package/dist/styles/core/base/placeholders/_default-layout-vertical-nav.scss +0 -48
  230. package/dist/styles/core/base/placeholders/_default-layout.scss +0 -3
  231. package/dist/styles/core/base/placeholders/_index.scss +0 -5
  232. package/dist/styles/core/base/placeholders/_misc.scss +0 -7
  233. package/dist/styles/core/base/placeholders/_nav.scss +0 -26
  234. package/dist/styles/core/base/placeholders/_vertical-nav.scss +0 -84
  235. package/dist/styles/core/base/skins/_bordered.scss +0 -60
  236. package/dist/styles/core/base/skins/_index.scss +0 -1
  237. package/dist/styles/core/template/_components.scss +0 -1035
  238. package/dist/styles/core/template/_default-layout-w-vertical-nav.scss +0 -20
  239. package/dist/styles/core/template/_utilities.scss +0 -20
  240. package/dist/styles/core/template/_variables.scss +0 -67
  241. package/dist/styles/core/template/_vertical-nav.scss +0 -41
  242. package/dist/styles/core/template/index.css +0 -18779
  243. package/dist/styles/core/template/index.scss +0 -15
  244. package/dist/styles/core/template/libs/vuetify/_variables.scss +0 -464
  245. package/dist/styles/core/template/libs/vuetify/index.css +0 -739
  246. package/dist/styles/core/template/libs/vuetify/index.scss +0 -1
  247. package/dist/styles/core/template/pages/misc.css +0 -16
  248. package/dist/styles/core/template/pages/misc.scss +0 -20
  249. package/dist/styles/core/template/placeholders/_default-layout-vertical-nav.scss +0 -9
  250. package/dist/styles/core/template/placeholders/_index.scss +0 -3
  251. package/dist/styles/core/template/placeholders/_nav.scss +0 -15
  252. package/dist/styles/core/template/placeholders/_vertical-nav.scss +0 -18
  253. package/dist/styles/core/template/skins/_bordered.scss +0 -36
  254. package/dist/styles/core/template/skins/_index.scss +0 -1
  255. package/dist/styles/layouts/_classes.scss +0 -3
  256. package/dist/styles/layouts/_dashboard-layout.scss +0 -43
  257. package/dist/styles/layouts/_global.scss +0 -10
  258. package/dist/styles/layouts/_mixins.scss +0 -28
  259. package/dist/styles/layouts/_placeholders.scss +0 -53
  260. package/dist/styles/layouts/_rtl.scss +0 -7
  261. package/dist/styles/layouts/_variables.scss +0 -22
  262. package/dist/styles/layouts/index.css +0 -14
  263. package/dist/styles/layouts/index.scss +0 -2
  264. package/dist/types.d.ts +0 -218
  265. package/dist/utils/apiUrl.d.ts +0 -1
  266. package/dist/utils/apiUrl.js +0 -15
  267. package/dist/utils/apiUrl.mjs +0 -8
  268. package/dist/utils/client.d.ts +0 -9
  269. package/dist/utils/client.js +0 -53
  270. package/dist/utils/client.mjs +0 -39
  271. package/dist/utils/files.d.ts +0 -2
  272. package/dist/utils/files.js +0 -35
  273. package/dist/utils/files.mjs +0 -22
  274. package/dist/utils/formValidation.d.ts +0 -7
  275. package/dist/utils/formValidation.js +0 -20
  276. package/dist/utils/formValidation.mjs +0 -13
  277. package/dist/utils/formatters.d.ts +0 -12
  278. package/dist/utils/formatters.js +0 -84
  279. package/dist/utils/formatters.mjs +0 -56
  280. package/dist/utils/hijriDate.d.ts +0 -58
  281. package/dist/utils/hijriDate.js +0 -168
  282. package/dist/utils/hijriDate.mjs +0 -1951
  283. package/dist/utils/i18n.d.ts +0 -8
  284. package/dist/utils/i18n.js +0 -36
  285. package/dist/utils/i18n.mjs +0 -27
  286. package/dist/utils/index.d.ts +0 -10
  287. package/dist/utils/index.js +0 -115
  288. package/dist/utils/index.mjs +0 -10
  289. package/dist/utils/queryParams.d.ts +0 -4
  290. package/dist/utils/queryParams.js +0 -26
  291. package/dist/utils/queryParams.mjs +0 -18
  292. package/dist/utils/ruleValidator.d.ts +0 -41
  293. package/dist/utils/ruleValidator.js +0 -210
  294. package/dist/utils/ruleValidator.mjs +0 -195
  295. package/dist/utils/toaster.d.ts +0 -12
  296. package/dist/utils/toaster.js +0 -68
  297. package/dist/utils/toaster.mjs +0 -58
  298. package/dist/utils/utils.d.ts +0 -9
  299. package/dist/utils/utils.js +0 -84
  300. package/dist/utils/utils.mjs +0 -67
@@ -1,43 +0,0 @@
1
- type Suggestion = {
2
- icon: string;
3
- title: string;
4
- url: object;
5
- };
6
- type Suggestions = {
7
- title: string;
8
- content: Suggestion[];
9
- };
10
- type __VLS_Props = {
11
- isDialogVisible: boolean;
12
- searchQuery: string;
13
- searchResults: any[];
14
- suggestions?: Suggestions[];
15
- noDataSuggestion?: Suggestion[];
16
- };
17
- declare var __VLS_75: {
18
- item: any;
19
- }, __VLS_105: {}, __VLS_146: {};
20
- type __VLS_Slots = {} & {
21
- searchResult?: (props: typeof __VLS_75) => any;
22
- } & {
23
- suggestions?: (props: typeof __VLS_105) => any;
24
- } & {
25
- noData?: (props: typeof __VLS_146) => any;
26
- };
27
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
28
- "update:isDialogVisible": (value: boolean) => any;
29
- "update:searchQuery": (value: string) => any;
30
- itemSelected: (value: any) => any;
31
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
32
- "onUpdate:isDialogVisible"?: ((value: boolean) => any) | undefined;
33
- "onUpdate:searchQuery"?: ((value: string) => any) | undefined;
34
- onItemSelected?: ((value: any) => any) | undefined;
35
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
37
- declare const _default: typeof __VLS_export;
38
- export default _default;
39
- type __VLS_WithSlots<T, S> = T & {
40
- new (): {
41
- $slots: S;
42
- };
43
- };
@@ -1,345 +0,0 @@
1
- <script setup>
2
- import { PerfectScrollbar } from "vue3-perfect-scrollbar";
3
- import { useMagicKeys } from "@vueuse/core";
4
- import { ref, toRaw, watch, watchEffect } from "vue";
5
- import { VList, VListItem, VListSubheader, VListItemTitle, VCardText, VDialog, VIcon, VDivider, VCol, VRow, VTextField } from "vuetify/components";
6
- import IconBtn from "../IconBtn.vue";
7
- import AppCard from "../cards/AppCard.vue";
8
- const props = defineProps({
9
- isDialogVisible: { type: Boolean, required: true },
10
- searchQuery: { type: String, required: true },
11
- searchResults: { type: Array, required: true },
12
- suggestions: { type: Array, required: false },
13
- noDataSuggestion: { type: Array, required: false }
14
- });
15
- const emit = defineEmits(["update:isDialogVisible", "update:searchQuery", "itemSelected"]);
16
- const { ctrl_k, meta_k } = useMagicKeys({
17
- passive: false,
18
- onEventFired(e) {
19
- if (e.ctrlKey && e.key === "k" && e.type === "keydown") {
20
- e.preventDefault();
21
- }
22
- }
23
- });
24
- const refSearchList = ref();
25
- const searchQuery = ref(structuredClone(toRaw(props.searchQuery)));
26
- const refSearchInput = ref();
27
- const isLocalDialogVisible = ref(structuredClone(toRaw(props.isDialogVisible)));
28
- const searchResults = ref(structuredClone(toRaw(props.searchResults)));
29
- watch(props, () => {
30
- isLocalDialogVisible.value = structuredClone(toRaw(props.isDialogVisible));
31
- searchResults.value = structuredClone(toRaw(props.searchResults));
32
- searchQuery.value = structuredClone(toRaw(props.searchQuery));
33
- });
34
- watch([ctrl_k, meta_k], () => {
35
- isLocalDialogVisible.value = true;
36
- emit("update:isDialogVisible", true);
37
- });
38
- const clearSearchAndCloseDialog = () => {
39
- emit("update:isDialogVisible", false);
40
- emit("update:searchQuery", "");
41
- };
42
- watchEffect(() => {
43
- if (!searchQuery.value.length) {
44
- searchResults.value = [];
45
- }
46
- });
47
- const getFocusOnSearchList = (e) => {
48
- if (e.key === "ArrowDown") {
49
- e.preventDefault();
50
- refSearchList.value?.focus("next");
51
- } else if (e.key === "ArrowUp") {
52
- e.preventDefault();
53
- refSearchList.value?.focus("prev");
54
- }
55
- };
56
- const dialogModelValueUpdate = (val) => {
57
- emit("update:isDialogVisible", val);
58
- emit("update:searchQuery", "");
59
- };
60
- const resolveCategories = (val) => {
61
- if (val === "dashboards") {
62
- return "Dashboards";
63
- }
64
- if (val === "appsPages") {
65
- return "Apps & Pages";
66
- }
67
- if (val === "userInterface") {
68
- return "User Interface";
69
- }
70
- if (val === "formsTables") {
71
- return "Forms Tables";
72
- }
73
- if (val === "chartsMisc") {
74
- return "Charts Misc";
75
- }
76
- return "Misc";
77
- };
78
- </script>
79
-
80
- <template>
81
- <VDialog
82
- max-width="600"
83
- :model-value="isLocalDialogVisible"
84
- :height="$vuetify.display.smAndUp ? '550' : '100%'"
85
- :fullscreen="$vuetify.display.width < 600"
86
- class="app-bar-search-dialog"
87
- @update:model-value="dialogModelValueUpdate"
88
- @keyup.esc="clearSearchAndCloseDialog"
89
- >
90
- <AppCard
91
- height="100%"
92
- width="100%"
93
- class="position-relative"
94
- >
95
- <VCardText
96
- class="pt-1"
97
- style="min-block-size: 65px"
98
- >
99
- <!-- Search Input -->
100
- <VTextField
101
- ref="refSearchInput"
102
- v-model="searchQuery"
103
- autofocus
104
- density="comfortable"
105
- variant="plain"
106
- class="app-bar-autocomplete-box"
107
- @keyup.esc="clearSearchAndCloseDialog"
108
- @keydown="getFocusOnSearchList"
109
- @update:model-value="$emit('update:searchQuery', searchQuery)"
110
- >
111
- <!-- Prepend Inner -->
112
- <template #prepend-inner>
113
- <div class="d-flex align-center text-high-emphasis me-1">
114
- <VIcon
115
- size="22"
116
- icon="tabler-search"
117
- class="mt-1"
118
- style="opacity: 1"
119
- />
120
- </div>
121
- </template>
122
-
123
- <!-- Append Inner -->
124
- <template #append-inner>
125
- <div class="d-flex align-center">
126
- <div
127
- class="text-base text-disabled cursor-pointer me-1"
128
- @click="clearSearchAndCloseDialog"
129
- >
130
- [esc]
131
- </div>
132
-
133
- <IconBtn
134
- size="small"
135
- icon="tabler-x"
136
- @click="clearSearchAndCloseDialog"
137
- />
138
- </div>
139
- </template>
140
- </VTextField>
141
- </VCardText>
142
-
143
- <!-- Divider -->
144
- <VDivider />
145
-
146
- <!-- Perfect Scrollbar -->
147
- <PerfectScrollbar
148
- :options="{
149
- wheelPropagation: false,
150
- suppressScrollX: true
151
- }"
152
- class="h-100"
153
- >
154
- <!-- Search List -->
155
- <VList
156
- v-show="searchQuery.length && !!searchResults.length"
157
- ref="refSearchList"
158
- density="compact"
159
- class="app-bar-search-list"
160
- >
161
- <!-- list Item /List Sub header -->
162
- <template
163
- v-for="item in searchResults"
164
- :key="item.title"
165
- >
166
- <VListSubheader
167
- v-if="'header' in item"
168
- class="text-disabled"
169
- >
170
- {{ resolveCategories(item.title) }}
171
- </VListSubheader>
172
-
173
- <template v-else>
174
- <slot
175
- name="searchResult"
176
- :item="item"
177
- >
178
- <VListItem
179
- link
180
- @click="$emit('itemSelected', item)"
181
- >
182
- <template #prepend>
183
- <VIcon
184
- size="20"
185
- :icon="item.icon"
186
- class="me-3"
187
- />
188
- </template>
189
-
190
- <template #append>
191
- <VIcon
192
- size="20"
193
- icon="tabler-corner-down-left"
194
- class="enter-icon text-disabled"
195
- />
196
- </template>
197
-
198
- <VListItemTitle>
199
- {{ item.title }}
200
- </VListItemTitle>
201
- </VListItem>
202
- </slot>
203
- </template>
204
- </template>
205
- </VList>
206
-
207
- <!-- Suggestions -->
208
- <div
209
- v-show="!!searchResults && !searchQuery"
210
- class="h-100"
211
- >
212
- <slot name="suggestions">
213
- <VCardText class="app-bar-search-suggestions h-100 pa-10">
214
- <VRow
215
- v-if="props.suggestions"
216
- class="gap-y-4"
217
- >
218
- <VCol
219
- v-for="suggestion in props.suggestions"
220
- :key="suggestion.title"
221
- cols="12"
222
- sm="6"
223
- class="ps-6"
224
- >
225
- <p class="text-xs text-disabled text-uppercase">
226
- {{ suggestion.title }}
227
- </p>
228
-
229
- <VList class="card-list">
230
- <VListItem
231
- v-for="item in suggestion.content"
232
- :key="item.title"
233
- link
234
- :title="item.title"
235
- class="app-bar-search-suggestion"
236
- @click="$emit('itemSelected', item)"
237
- >
238
- <template #prepend>
239
- <VIcon
240
- :icon="item.icon"
241
- size="20"
242
- class="me-2"
243
- />
244
- </template>
245
- </VListItem>
246
- </VList>
247
- </VCol>
248
- </VRow>
249
- </VCardText>
250
- </slot>
251
- </div>
252
-
253
- <!-- No Data found -->
254
- <div
255
- v-show="!searchResults.length && searchQuery.length"
256
- class="h-100"
257
- >
258
- <slot name="noData">
259
- <VCardText class="h-100">
260
- <div
261
- class="app-bar-search-suggestions d-flex flex-column align-center justify-center text-high-emphasis h-100"
262
- >
263
- <VIcon
264
- size="75"
265
- icon="tabler-file-x"
266
- />
267
- <div class="d-flex align-center flex-wrap justify-center gap-2 text-h6 my-3">
268
- <span>No Result For </span>
269
- <span>"{{ searchQuery }}"</span>
270
- </div>
271
- <div
272
- v-if="props.noDataSuggestion"
273
- class="mt-8"
274
- >
275
- <span class="d-flex justify-center text-disabled">Try searching for</span>
276
- <h6
277
- v-for="suggestion in props.noDataSuggestion"
278
- :key="suggestion.title"
279
- class="app-bar-search-suggestion text-sm font-weight-regular cursor-pointer mt-3"
280
- @click="$emit('itemSelected', suggestion)"
281
- >
282
- <VIcon
283
- size="20"
284
- :icon="suggestion.icon"
285
- class="me-3"
286
- />
287
- <span class="text-sm">{{ suggestion.title }}</span>
288
- </h6>
289
- </div>
290
- </div>
291
- </VCardText>
292
- </slot>
293
- </div>
294
- </PerfectScrollbar>
295
- </AppCard>
296
- </VDialog>
297
- </template>
298
-
299
- <style scoped>
300
- .app-bar-search-suggestions .app-bar-search-suggestion:hover {
301
- color: rgb(var(--v-theme-primary));
302
- }
303
-
304
- .app-bar-autocomplete-box .v-field__input {
305
- padding-block-end: 0.425rem;
306
- padding-block-start: 1.16rem;
307
- }
308
- .app-bar-autocomplete-box .v-field__append-inner,
309
- .app-bar-autocomplete-box .v-field__prepend-inner {
310
- padding-block-start: 0.95rem;
311
- }
312
- .app-bar-autocomplete-box .v-field__field input {
313
- text-align: start !important;
314
- }
315
-
316
- .app-bar-search-dialog .v-overlay__scrim {
317
- backdrop-filter: blur(4px);
318
- }
319
- .app-bar-search-dialog .v-list-item-title {
320
- font-size: 0.875rem !important;
321
- }
322
- .app-bar-search-dialog .app-bar-search-list .v-list-item,
323
- .app-bar-search-dialog .app-bar-search-list .v-list-subheader {
324
- font-size: 0.75rem;
325
- padding-inline: 1.5rem !important;
326
- }
327
- .app-bar-search-dialog .app-bar-search-list .v-list-item .v-list-item__append .enter-icon {
328
- visibility: hidden;
329
- }
330
- .app-bar-search-dialog .app-bar-search-list .v-list-item:hover .v-list-item__append .enter-icon, .app-bar-search-dialog .app-bar-search-list .v-list-item:active .v-list-item__append .enter-icon, .app-bar-search-dialog .app-bar-search-list .v-list-item:focus .v-list-item__append .enter-icon {
331
- visibility: visible;
332
- }
333
- .app-bar-search-dialog .app-bar-search-list .v-list-subheader {
334
- line-height: 1;
335
- min-block-size: auto;
336
- padding-block: 0.6875rem 0.3125rem;
337
- text-transform: uppercase;
338
- }
339
- </style>
340
-
341
- <style scoped>
342
- .card-list {
343
- --v-card-list-gap: 16px;
344
- }
345
- </style>
@@ -1,43 +0,0 @@
1
- type Suggestion = {
2
- icon: string;
3
- title: string;
4
- url: object;
5
- };
6
- type Suggestions = {
7
- title: string;
8
- content: Suggestion[];
9
- };
10
- type __VLS_Props = {
11
- isDialogVisible: boolean;
12
- searchQuery: string;
13
- searchResults: any[];
14
- suggestions?: Suggestions[];
15
- noDataSuggestion?: Suggestion[];
16
- };
17
- declare var __VLS_75: {
18
- item: any;
19
- }, __VLS_105: {}, __VLS_146: {};
20
- type __VLS_Slots = {} & {
21
- searchResult?: (props: typeof __VLS_75) => any;
22
- } & {
23
- suggestions?: (props: typeof __VLS_105) => any;
24
- } & {
25
- noData?: (props: typeof __VLS_146) => any;
26
- };
27
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
28
- "update:isDialogVisible": (value: boolean) => any;
29
- "update:searchQuery": (value: string) => any;
30
- itemSelected: (value: any) => any;
31
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
32
- "onUpdate:isDialogVisible"?: ((value: boolean) => any) | undefined;
33
- "onUpdate:searchQuery"?: ((value: string) => any) | undefined;
34
- onItemSelected?: ((value: any) => any) | undefined;
35
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
36
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
37
- declare const _default: typeof __VLS_export;
38
- export default _default;
39
- type __VLS_WithSlots<T, S> = T & {
40
- new (): {
41
- $slots: S;
42
- };
43
- };
@@ -1,13 +0,0 @@
1
- declare var __VLS_15: string | number, __VLS_16: any;
2
- type __VLS_Slots = {} & {
3
- [K in NonNullable<typeof __VLS_15>]?: (props: typeof __VLS_16) => any;
4
- };
5
- declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
7
- declare const _default: typeof __VLS_export;
8
- export default _default;
9
- type __VLS_WithSlots<T, S> = T & {
10
- new (): {
11
- $slots: S;
12
- };
13
- };
@@ -1,67 +0,0 @@
1
- <script setup>
2
- import { computed, useAttrs } from "vue";
3
- import { VCombobox, VLabel } from "vuetify/components";
4
- import { useI18n } from "vue-i18n";
5
- defineOptions({
6
- name: "AppCombobox",
7
- inheritAttrs: false
8
- });
9
- const { t } = useI18n();
10
- const elementId = computed(() => {
11
- const attrs = useAttrs();
12
- const _elementIdToken = attrs.id || attrs.label;
13
- return _elementIdToken ? `app-combobox-${_elementIdToken}-${Math.random().toString(36).slice(2, 7)}` : void 0;
14
- });
15
- const label = computed(() => useAttrs()?.label);
16
- const LangLabel = computed(() => label.value ? t(label.value) : "");
17
- const placeholder = computed(() => {
18
- if (useAttrs()?.placeholder) {
19
- return useAttrs()?.placeholder;
20
- }
21
- if (label.value) {
22
- return t("inputs.placeholder", {
23
- name: LangLabel.value
24
- });
25
- }
26
- return "";
27
- });
28
- </script>
29
-
30
- <template>
31
- <div
32
- class="app-combobox flex-grow-1"
33
- :class="$attrs.class"
34
- >
35
- <VLabel
36
- v-if="label"
37
- :for="elementId"
38
- class="mb-2 text-body-2 text-high-emphasis"
39
- :text="LangLabel"
40
- />
41
-
42
- <VCombobox
43
- v-bind="{
44
- ...$attrs,
45
- class: null,
46
- label: void 0,
47
- variant: 'outlined',
48
- id: elementId,
49
- menuProps: {
50
- contentClass: ['app-inner-list', 'app-combobox__content', 'v-combobox__content', $attrs.multiple !== void 0 ? 'v-list-select-multiple' : '']
51
- }
52
- }"
53
- :no-data-text="t('no_data')"
54
- :placeholder="placeholder"
55
- >
56
- <template
57
- v-for="(_, name) in $slots"
58
- #[name]="slotProps"
59
- >
60
- <slot
61
- :name="name"
62
- v-bind="slotProps || {}"
63
- />
64
- </template>
65
- </VCombobox>
66
- </div>
67
- </template>
@@ -1,13 +0,0 @@
1
- declare var __VLS_15: string | number, __VLS_16: any;
2
- type __VLS_Slots = {} & {
3
- [K in NonNullable<typeof __VLS_15>]?: (props: typeof __VLS_16) => any;
4
- };
5
- declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
7
- declare const _default: typeof __VLS_export;
8
- export default _default;
9
- type __VLS_WithSlots<T, S> = T & {
10
- new (): {
11
- $slots: S;
12
- };
13
- };
@@ -1,20 +0,0 @@
1
- type __VLS_Props = {
2
- title: string;
3
- };
4
- declare var __VLS_7: {};
5
- type __VLS_Slots = {} & {
6
- beforeClose?: (props: typeof __VLS_7) => any;
7
- };
8
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
- cancel: (el: MouseEvent) => any;
10
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
- onCancel?: ((el: MouseEvent) => any) | undefined;
12
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
- declare const _default: typeof __VLS_export;
15
- export default _default;
16
- type __VLS_WithSlots<T, S> = T & {
17
- new (): {
18
- $slots: S;
19
- };
20
- };
@@ -1,21 +0,0 @@
1
- <script setup>
2
- import { VSpacer } from "vuetify/components";
3
- import IconBtn from "../IconBtn.vue";
4
- defineProps({
5
- title: { type: String, required: true }
6
- });
7
- defineEmits(["cancel"]);
8
- </script>
9
-
10
- <template>
11
- <div class="px-5 py-3 d-flex align-center">
12
- <h3 class="font-weight-medium text-xl">
13
- {{ title }}
14
- </h3>
15
- <VSpacer />
16
-
17
- <slot name="beforeClose" />
18
-
19
- <IconBtn icon="tabler-x" @click="$emit('cancel', $event)" />
20
- </div>
21
- </template>
@@ -1,20 +0,0 @@
1
- type __VLS_Props = {
2
- title: string;
3
- };
4
- declare var __VLS_7: {};
5
- type __VLS_Slots = {} & {
6
- beforeClose?: (props: typeof __VLS_7) => any;
7
- };
8
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
9
- cancel: (el: MouseEvent) => any;
10
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
- onCancel?: ((el: MouseEvent) => any) | undefined;
12
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
- declare const _default: typeof __VLS_export;
15
- export default _default;
16
- type __VLS_WithSlots<T, S> = T & {
17
- new (): {
18
- $slots: S;
19
- };
20
- };
@@ -1,24 +0,0 @@
1
- type __VLS_Props = {
2
- class?: string;
3
- label?: string;
4
- rules?: ((value: unknown) => string)[];
5
- errorMessages?: string;
6
- modelValue?: string | number | undefined | null;
7
- };
8
- declare var __VLS_15: {};
9
- type __VLS_Slots = {} & {
10
- default?: (props: typeof __VLS_15) => any;
11
- };
12
- declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
13
- "update:modelValue": (value: string | number | null | undefined) => any;
14
- }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
- "onUpdate:modelValue"?: ((value: string | number | null | undefined) => any) | undefined;
16
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
- declare const _default: typeof __VLS_export;
19
- export default _default;
20
- type __VLS_WithSlots<T, S> = T & {
21
- new (): {
22
- $slots: S;
23
- };
24
- };
@@ -1,47 +0,0 @@
1
- <script setup>
2
- import { VValidation, VLabel, VMessages } from "vuetify/components";
3
- import { computed } from "vue";
4
- import { useI18n } from "vue-i18n";
5
- defineEmits(["update:modelValue"]);
6
- const props = defineProps({
7
- class: { type: String, required: false },
8
- label: { type: String, required: false },
9
- rules: { type: Array, required: false },
10
- errorMessages: { type: String, required: false },
11
- modelValue: { type: null, required: false }
12
- });
13
- const { t } = useI18n();
14
- const LangLabel = computed(() => props.label ? t(props.label) : "");
15
- </script>
16
-
17
- <template>
18
- <div>
19
- <VValidation
20
- v-slot="{ errorMessages: validationErrors, isValid }"
21
- :model-value="modelValue"
22
- :rules="rules"
23
- validate-on="input lazy"
24
- @update:model-value="val => $emit('update:modelValue', val)"
25
- >
26
- <div
27
- class="d-flex flex-column w-100"
28
- :class="props.class"
29
- >
30
- <VLabel
31
- v-if="label"
32
- class="mb-2 text-body-2 text-high-emphasis app-font-size-13"
33
- :text="LangLabel"
34
- />
35
-
36
- <slot />
37
-
38
- <VMessages
39
- v-if="isValid.value === false || errorMessages?.length !== 0"
40
- class="text-start"
41
- :messages="[validationErrors.value, errorMessages]"
42
- :active="isValid.value === false || errorMessages?.length !== 0"
43
- />
44
- </div>
45
- </VValidation>
46
- </div>
47
- </template>