@mythpe/quasar-ui-qui 0.4.103 → 0.5.1

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 (225) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +73 -128
  3. package/package.json +64 -73
  4. package/src/components/MBtn/MBtn.ts +38 -0
  5. package/src/components/MBtn/MBtn.vue +142 -0
  6. package/src/components/grid/MColumn/MColumn.ts +15 -0
  7. package/src/components/grid/MColumn/MColumn.vue +28 -0
  8. package/src/components/grid/MContainer/MContainer.ts +39 -0
  9. package/src/components/grid/MContainer/MContainer.vue +66 -0
  10. package/src/components/grid/MGrid.ts +16 -0
  11. package/src/components/grid/MGrid.vue +47 -0
  12. package/src/components/grid/MRow/MRow.ts +15 -0
  13. package/src/components/grid/{MColumn.vue → MRow/MRow.vue} +12 -10
  14. package/src/components/index.ts +28 -18
  15. package/src/composables/useMyth.ts +93 -0
  16. package/src/composables/useMythMeta.ts +40 -0
  17. package/src/config/config.ts +16 -0
  18. package/src/config/grid.ts +10 -0
  19. package/src/config/index.ts +2 -0
  20. package/src/css/components/m-btn.scss +13 -0
  21. package/src/css/index.scss +9 -0
  22. package/src/env.d.ts +14 -0
  23. package/src/index.common.js +1 -15
  24. package/src/index.ts +4 -0
  25. package/src/index.umd.js +2 -15
  26. package/src/shims-myth.d.ts +6 -0
  27. package/src/shims-vue.d.ts +22 -0
  28. package/src/types/config.ts +136 -0
  29. package/src/types/helpers.ts +21 -0
  30. package/src/types/index.ts +9 -0
  31. package/src/types/vue-prop-types.ts +13 -0
  32. package/src/utils/helpers.ts +446 -0
  33. package/src/{icons/config.ts → utils/icons.ts} +0 -9
  34. package/src/utils/index.ts +74 -11
  35. package/src/utils/str.ts +237 -0
  36. package/src/utils/vee-rules.ts +8 -4
  37. package/src/vue-plugin.ts +76 -0
  38. package/index.d.ts +0 -17
  39. package/jsconfig.json +0 -10
  40. package/src/boot/register.ts +0 -14
  41. package/src/components/datatable/MDatatable.vue +0 -1812
  42. package/src/components/datatable/MDtAvatar.vue +0 -49
  43. package/src/components/datatable/MDtBtn.vue +0 -171
  44. package/src/components/datatable/MDtColorColumn.vue +0 -55
  45. package/src/components/datatable/MDtContextmenuItems.vue +0 -69
  46. package/src/components/datatable/MDtCopyColumn.vue +0 -87
  47. package/src/components/datatable/MDtDescColumn.vue +0 -60
  48. package/src/components/datatable/MDtImageColumn.vue +0 -76
  49. package/src/components/datatable/MDtSarColumn.vue +0 -76
  50. package/src/components/datatable/MDtUrlColumn.vue +0 -70
  51. package/src/components/datatable/index.ts +0 -21
  52. package/src/components/form/MAvatarViewer.vue +0 -408
  53. package/src/components/form/MAxios.vue +0 -219
  54. package/src/components/form/MBtn.vue +0 -240
  55. package/src/components/form/MCheckbox.vue +0 -204
  56. package/src/components/form/MCkeditor.vue +0 -860
  57. package/src/components/form/MColor.vue +0 -118
  58. package/src/components/form/MDate.vue +0 -51
  59. package/src/components/form/MEditor.vue +0 -272
  60. package/src/components/form/MEmail.vue +0 -46
  61. package/src/components/form/MField.vue +0 -149
  62. package/src/components/form/MFile.vue +0 -221
  63. package/src/components/form/MForm.vue +0 -89
  64. package/src/components/form/MHidden.vue +0 -89
  65. package/src/components/form/MHiddenInput.vue +0 -61
  66. package/src/components/form/MInput.vue +0 -289
  67. package/src/components/form/MInputFieldControl.vue +0 -27
  68. package/src/components/form/MInputLabel.vue +0 -42
  69. package/src/components/form/MMobile.vue +0 -67
  70. package/src/components/form/MOptions.vue +0 -402
  71. package/src/components/form/MOtp.vue +0 -296
  72. package/src/components/form/MPassword.vue +0 -77
  73. package/src/components/form/MPhone.vue +0 -184
  74. package/src/components/form/MPicker.vue +0 -378
  75. package/src/components/form/MRadio.vue +0 -188
  76. package/src/components/form/MSelect.vue +0 -461
  77. package/src/components/form/MSignaturePad.vue +0 -301
  78. package/src/components/form/MTime.vue +0 -48
  79. package/src/components/form/MToggle.vue +0 -244
  80. package/src/components/form/MUploader.vue +0 -544
  81. package/src/components/form/__MCkeditor.vue +0 -403
  82. package/src/components/form/__MOptions.vue +0 -289
  83. package/src/components/form/index.ts +0 -71
  84. package/src/components/form/useCkeditor.ts +0 -26
  85. package/src/components/grid/MBlock.vue +0 -69
  86. package/src/components/grid/MCol.vue +0 -60
  87. package/src/components/grid/MContainer.vue +0 -60
  88. package/src/components/grid/MHelpRow.vue +0 -60
  89. package/src/components/grid/MInnerLoading.vue +0 -45
  90. package/src/components/grid/MRow.vue +0 -57
  91. package/src/components/grid/index.ts +0 -19
  92. package/src/components/map/MMap.vue +0 -69
  93. package/src/components/map/index.ts +0 -12
  94. package/src/components/modal/MDialog.vue +0 -59
  95. package/src/components/modal/MDialogFile.vue +0 -111
  96. package/src/components/modal/MFrameDialog.vue +0 -126
  97. package/src/components/modal/MModalMenu.vue +0 -77
  98. package/src/components/modal/MTooltip.vue +0 -39
  99. package/src/components/modal/index.ts +0 -9
  100. package/src/components/parials/MUploaderItem.vue +0 -350
  101. package/src/components/parials/index.ts +0 -5
  102. package/src/components/sar/MSarIcon.vue +0 -24
  103. package/src/components/sar/MSarString.vue +0 -58
  104. package/src/components/sar/index.ts +0 -14
  105. package/src/components/transition/MTransition.vue +0 -28
  106. package/src/components/transition/MTransitionGroup.vue +0 -28
  107. package/src/components/transition/index.ts +0 -14
  108. package/src/components/transition/useTransition.ts +0 -98
  109. package/src/components/typography/MTypingString.vue +0 -86
  110. package/src/components/typography/index.ts +0 -13
  111. package/src/composable/index.ts +0 -13
  112. package/src/composable/useBindInput.ts +0 -273
  113. package/src/composable/useDtHelpers.ts +0 -1105
  114. package/src/composable/useError.ts +0 -12
  115. package/src/composable/useMyth.ts +0 -364
  116. package/src/composable/useValue.ts +0 -13
  117. package/src/fonts/Almarai/Almarai-Bold.ttf +0 -0
  118. package/src/fonts/Almarai/Almarai-ExtraBold.ttf +0 -0
  119. package/src/fonts/Almarai/Almarai-Light.ttf +0 -0
  120. package/src/fonts/Almarai/Almarai-Regular.ttf +0 -0
  121. package/src/fonts/Almarai/index.sass +0 -68
  122. package/src/fonts/Noto_Kufi/NotoKufiArabic-Black.ttf +0 -0
  123. package/src/fonts/Noto_Kufi/NotoKufiArabic-Bold.ttf +0 -0
  124. package/src/fonts/Noto_Kufi/NotoKufiArabic-ExtraBold.ttf +0 -0
  125. package/src/fonts/Noto_Kufi/NotoKufiArabic-ExtraLight.ttf +0 -0
  126. package/src/fonts/Noto_Kufi/NotoKufiArabic-Light.ttf +0 -0
  127. package/src/fonts/Noto_Kufi/NotoKufiArabic-Medium.ttf +0 -0
  128. package/src/fonts/Noto_Kufi/NotoKufiArabic-Regular.ttf +0 -0
  129. package/src/fonts/Noto_Kufi/NotoKufiArabic-SemiBold.ttf +0 -0
  130. package/src/fonts/Noto_Kufi/NotoKufiArabic-Thin.ttf +0 -0
  131. package/src/fonts/Noto_Kufi/NotoKufiArabic-VariableFont_wght.ttf +0 -0
  132. package/src/fonts/Noto_Kufi/index.sass +0 -149
  133. package/src/fonts/Tajawal/Tajawal-Black.ttf +0 -0
  134. package/src/fonts/Tajawal/Tajawal-Bold.ttf +0 -0
  135. package/src/fonts/Tajawal/Tajawal-ExtraBold.ttf +0 -0
  136. package/src/fonts/Tajawal/Tajawal-ExtraLight.ttf +0 -0
  137. package/src/fonts/Tajawal/Tajawal-Light.ttf +0 -0
  138. package/src/fonts/Tajawal/Tajawal-Medium.ttf +0 -0
  139. package/src/fonts/Tajawal/Tajawal-Regular.ttf +0 -0
  140. package/src/fonts/Tajawal/index.sass +0 -79
  141. package/src/fonts/index.sass +0 -10
  142. package/src/global.d.ts +0 -16
  143. package/src/icons/index.ts +0 -10
  144. package/src/index.esm.js +0 -15
  145. package/src/index.js +0 -15
  146. package/src/index.sass +0 -24
  147. package/src/plugin/defineAsyncComponents.ts +0 -75
  148. package/src/plugin/defineComponents.ts +0 -8
  149. package/src/style/brands.sass +0 -47
  150. package/src/style/ckeditor5.sass +0 -20
  151. package/src/style/effect.sass +0 -143
  152. package/src/style/fonts.sass +0 -37
  153. package/src/style/m-container.sass +0 -20
  154. package/src/style/m-datatable.sass +0 -114
  155. package/src/style/m-help-row.sass +0 -12
  156. package/src/style/m-input.sass +0 -74
  157. package/src/style/m-picker.sass +0 -15
  158. package/src/style/m-select.sass +0 -12
  159. package/src/style/m-toggle.sass +0 -11
  160. package/src/style/main.sass +0 -117
  161. package/src/style/print.sass +0 -22
  162. package/src/style/sar-font.sass +0 -27
  163. package/src/style/scrollbar.sass +0 -37
  164. package/src/style/transition.sass +0 -48
  165. package/src/style/typography.sass +0 -39
  166. package/src/types/api/MAvatarViewer.d.ts +0 -110
  167. package/src/types/api/MAxios.d.ts +0 -52
  168. package/src/types/api/MBlock.d.ts +0 -29
  169. package/src/types/api/MBtn.d.ts +0 -25
  170. package/src/types/api/MCheckbox.d.ts +0 -45
  171. package/src/types/api/MCkeditor.d.ts +0 -40
  172. package/src/types/api/MCol.d.ts +0 -55
  173. package/src/types/api/MColumn.d.ts +0 -16
  174. package/src/types/api/MContainer.d.ts +0 -19
  175. package/src/types/api/MDate.d.ts +0 -15
  176. package/src/types/api/MDialog.d.ts +0 -18
  177. package/src/types/api/MDialogFile.d.ts +0 -19
  178. package/src/types/api/MEditor.d.ts +0 -13
  179. package/src/types/api/MField.d.ts +0 -12
  180. package/src/types/api/MFile.d.ts +0 -21
  181. package/src/types/api/MForm.d.ts +0 -55
  182. package/src/types/api/MFrameDialog.d.ts +0 -21
  183. package/src/types/api/MHelpRow.d.ts +0 -19
  184. package/src/types/api/MHidden.d.ts +0 -20
  185. package/src/types/api/MHiddenInput.d.ts +0 -26
  186. package/src/types/api/MInnerLoading.d.ts +0 -17
  187. package/src/types/api/MInput.d.ts +0 -180
  188. package/src/types/api/MInputFieldControl.d.ts +0 -16
  189. package/src/types/api/MInputLabel.d.ts +0 -17
  190. package/src/types/api/MMap.d.ts +0 -24
  191. package/src/types/api/MModalMenu.d.ts +0 -17
  192. package/src/types/api/MOptions.d.ts +0 -72
  193. package/src/types/api/MOtp.d.ts +0 -52
  194. package/src/types/api/MPassword.d.ts +0 -20
  195. package/src/types/api/MPhone.d.ts +0 -21
  196. package/src/types/api/MPicker.d.ts +0 -49
  197. package/src/types/api/MRadio.d.ts +0 -13
  198. package/src/types/api/MRow.d.ts +0 -24
  199. package/src/types/api/MSar.d.ts +0 -28
  200. package/src/types/api/MSelect.d.ts +0 -200
  201. package/src/types/api/MSignaturePad.d.ts +0 -185
  202. package/src/types/api/MTime.d.ts +0 -12
  203. package/src/types/api/MToggle.d.ts +0 -39
  204. package/src/types/api/MTooltip.d.ts +0 -136
  205. package/src/types/api/MTransition.d.ts +0 -143
  206. package/src/types/api/MTypingString.d.ts +0 -24
  207. package/src/types/api/MUploader.d.ts +0 -189
  208. package/src/types/api-helpers.d.ts +0 -66
  209. package/src/types/components.d.ts +0 -150
  210. package/src/types/google.d.ts +0 -19
  211. package/src/types/index.d.ts +0 -110
  212. package/src/types/m-datatable.d.ts +0 -498
  213. package/src/types/m-helpers.d.ts +0 -99
  214. package/src/types/myth-api.d.ts +0 -51
  215. package/src/types/plugin-props-option.d.ts +0 -313
  216. package/src/types/quasar-helpers.d.ts +0 -7
  217. package/src/types/theme.d.ts +0 -162
  218. package/src/utils/Helpers.ts +0 -406
  219. package/src/utils/Str.ts +0 -246
  220. package/src/utils/__pluralize.js +0 -493
  221. package/src/utils/const.ts +0 -1
  222. package/src/utils/createMyth.ts +0 -49
  223. package/src/utils/vue-plugin.ts +0 -66
  224. package/tsconfig.json +0 -35
  225. package/types.d.ts +0 -17
package/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) MyTh <mythpe@gmail.com>
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in
12
+ all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
package/README.md CHANGED
@@ -1,168 +1,113 @@
1
- # Component MyComponent and Directive v-my-directive
1
+ <p align="center">
2
+ <a href="https://4myth.com">
3
+ <img src="https://4myth.com/logo.png" width="120" alt="Ahmed Faiz MyTh">
4
+ </a>
5
+ </p>
2
6
 
3
- [![npm](https://img.shields.io/npm/v/@mythpe/quasar-ui-qui.svg?label=@mythpe/quasar-ui-qui)](https://www.npmjs.com/package/@mythpe/quasar-ui-qui)
4
- [![npm](https://img.shields.io/npm/dt/@mythpe/quasar-ui-qui.svg)](https://www.npmjs.com/package/@mythpe/quasar-ui-qui)
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/@mythpe/quasar-ui-qui">
9
+ <img src="https://img.shields.io/npm/v/@mythpe/quasar-ui-qui.svg?label=quasar-ui-qui" alt="npm version">
10
+ </a>
11
+ <a href="https://www.npmjs.com/package/@mythpe/quasar-ui-qui">
12
+ <img src="https://img.shields.io/npm/dt/@mythpe/quasar-ui-qui.svg" alt="npm downloads">
13
+ </a>
14
+ </p>
5
15
 
6
- **Compatible with Quasar UI v2 and Vue 3**.
16
+ # MyTh Quasar UI Kit Extension
7
17
 
8
- # Component MyComponent
18
+ **QUI** is a premium set of Vue 3 components engineered specifically for the Quasar Framework v2 ecosystem.
9
19
 
10
- > Short description of the component
20
+ **Compatibility:** Fully compatible with **Quasar UI v2** and **Vue 3**.
11
21
 
12
- # Directive v-my-directive
22
+ ---
13
23
 
14
- > Short description of the directive
24
+ ## 🔌 Usage & Integration
15
25
 
16
- # Usage
26
+ ### 1. Quasar CLI Project (Recommended)
17
27
 
18
- ## Quasar CLI project
28
+ The easiest way to integrate is via the [App Extension](https://www.npmjs.com/package/@mythpe/quasar-app-extension-qui):
19
29
 
20
- Install the [App Extension](../app-extension).
21
-
22
- **OR**:
23
-
24
- Create and register a boot file:
25
-
26
- ```js
27
- import Vue from 'vue'
28
- import Plugin from '@mythpe/quasar-ui-qui'
29
- import '@mythpe/quasar-ui-qui/dist/index.css'
30
-
31
- Vue.use(Plugin)
30
+ ```bash
31
+ quasar ext add @mythpe/qui
32
32
  ```
33
33
 
34
- **OR**:
35
-
36
- ```html
37
-
38
- <style src="@mythpe/quasar-ui-qui/dist/index.css"></style>
39
-
40
- <script>
41
- import { Component as MyComponent, Directive } from '@mythpe/quasar-ui-qui'
42
-
43
- export default {
44
-
45
- components: {
46
- MyComponent
47
- },
34
+ #### Alternative: Manual Package Installation
48
35
 
36
+ If you prefer not to use the App Extension, install the package manually:
49
37
 
50
- directives: {
51
- Directive
52
- }
53
-
54
- }
55
- </script>
38
+ ```bash
39
+ yarn add @mythpe/quasar-ui-qui
40
+ # or
41
+ npm install @mythpe/quasar-ui-qui
42
+ # or
43
+ pnpm add @mythpe/quasar-ui-qui
56
44
  ```
57
45
 
58
- ## Vue CLI project
46
+ #### Manual Boot Registration
47
+
48
+ Create and register a boot file (`src/boot/myth.[ts|js]`):
59
49
 
60
50
  ```js
61
- import Vue from 'vue'
62
- import Plugin from '@mythpe/quasar-ui-qui'
51
+ import { defineBoot } from '#q-app/wrappers'
52
+ import { install } from '@mythpe/quasar-ui-qui'
63
53
  import '@mythpe/quasar-ui-qui/dist/index.css'
64
54
 
65
- Vue.use(Plugin)
55
+ export default defineBoot(({ app }) => {
56
+ app.use(install)
57
+ })
66
58
  ```
67
59
 
68
- **OR**:
69
-
70
- ```html
71
-
72
- <style src="@mythpe/quasar-ui-qui/dist/index.css"></style>
73
-
74
- <script>
75
- import { Component as MyComponent, Directive } from '@mythpe/quasar-ui-qui'
60
+ ---
76
61
 
77
- export default {
62
+ ### 2. Vue CLI / Vite Project
78
63
 
79
- components: {
80
- MyComponent
81
- },
82
-
83
-
84
- directives: {
85
- Directive
86
- }
64
+ ```js
65
+ import { createApp } from 'vue'
66
+ import App from './App.vue'
67
+ import { install } from '@mythpe/quasar-ui-qui'
68
+ import '@mythpe/quasar-ui-qui/dist/index.css'
87
69
 
88
- }
89
- </script>
70
+ const app = createApp(App)
71
+ app.use(install)
72
+ app.mount('#app')
90
73
  ```
91
74
 
92
- ## UMD variant
75
+ ---
93
76
 
94
- Exports `window.mythUi`.
77
+ ### 3. UMD Variant (CDN)
95
78
 
96
- Add the following tag(s) after the Quasar ones:
79
+ Global export identifier: `window.Myth`.
97
80
 
98
- ```html
81
+ Add the following tags **after** your Quasar Framework assets:
99
82
 
83
+ ```html
100
84
  <head>
101
- <!-- AFTER the Quasar stylesheet tags: -->
102
- <link href="https://cdn.jsdelivr.net/npm/@mythpe/quasar-ui-qui/dist/index.min.css" rel="stylesheet" type="text/css">
85
+ <!-- AFTER Quasar stylesheet tags: -->
86
+ <link
87
+ href="https://cdn.jsdelivr.net/npm/@mythpe/quasar-ui-qui/dist/index.min.css"
88
+ rel="stylesheet"
89
+ type="text/css"
90
+ />
91
+
92
+ <!-- For RTL support use this instead: -->
93
+ <!-- <link href="https://cdn.jsdelivr.net/npm/@mythpe/quasar-ui-qui/dist/index.rtl.min.css" rel="stylesheet" type="text/css" /> -->
103
94
  </head>
104
95
  <body>
105
- <!-- at end of body, AFTER Quasar script(s): -->
106
- <script src="https://cdn.jsdelivr.net/npm/@mythpe/quasar-ui-qui/dist/index.umd.min.js"></script>
96
+ <!-- At the end of body, AFTER Quasar script tags: -->
97
+ <script src="https://cdn.jsdelivr.net/npm/@mythpe/quasar-ui-qui/dist/index.umd.min.js"></script>
107
98
  </body>
108
99
  ```
109
100
 
110
- If you need the RTL variant of the CSS, then go for the following (instead of the above stylesheet link):
111
-
112
- ```html
113
-
114
- <link href="https://cdn.jsdelivr.net/npm/@mythpe/quasar-ui-qui/dist/index.rtl.min.css" rel="stylesheet" type="text/css">
115
- ```
116
-
117
- # Setup
118
-
119
- ```bash
120
- $ yarn
121
- ```
122
-
123
- # Developing
124
-
125
- ```bash
126
- # start dev in SPA mode
127
- $ yarn dev
128
-
129
- # start dev in UMD mode
130
- $ yarn dev:umd
131
-
132
- # start dev in SSR mode
133
- $ yarn dev:ssr
134
-
135
- # start dev in Cordova iOS mode
136
- $ yarn dev:ios
137
-
138
- # start dev in Cordova Android mode
139
- $ yarn dev:android
140
-
141
- # start dev in Electron mode
142
- $ yarn dev:electron
143
- ```
144
-
145
- # Building package
146
-
147
- ```bash
148
- $ yarn build
149
- ```
150
-
151
- # Adding Testing Components
152
-
153
- in the `ui/dev/src/pages` you can add Vue files to test your component/directive. When using `yarn dev` to build the UI, any pages in that location
154
- will automatically be picked up by dynamic routing and added to the test page.
155
-
156
- # Adding Assets
157
-
158
- If you have a component that has assets, like language or icon-sets, you will need to provide these for UMD. In the `ui/build/script.javascript.js`
159
- file, you will find a couple of commented out commands that call `addAssets`. Uncomment what you need and add your assets to have them be built and
160
- put into the `ui/dist` folder.
101
+ ---
161
102
 
162
- # Donate
103
+ ## 👨‍💻 Author & Developer
163
104
 
164
- If you appreciate the work that went into this, please consider [donating to Quasar](https://donate.quasar.dev).
105
+ | **Developer** | Ahmed Faiz (MyTh) |
106
+ | :-------------- | :-------------------------------- |
107
+ | 🌐 **Website** | [4myth.com](https://4myth.com) |
108
+ | 📧 **Email** | mythpe@gmail.com |
109
+ | 📱 **WhatsApp** | [+966 59 047 0092](https://wa.me) |
165
110
 
166
- # License
111
+ ## 📄 License
167
112
 
168
- MIT (c) MyTh <mythpe@gmail.com>
113
+ MIT (c) 2026 **Ahmed Faiz (MyTh)**. All rights reserved.
package/package.json CHANGED
@@ -1,99 +1,90 @@
1
1
  {
2
2
  "name": "@mythpe/quasar-ui-qui",
3
- "version": "0.4.103",
4
- "description": "MyTh Quasar UI Kit App Extension",
3
+ "version": "0.5.1",
5
4
  "author": {
6
5
  "name": "MyTh Ahmed Faiz",
7
6
  "mobile": "+966590470092",
8
7
  "email": "mythpe@gmail.com",
9
8
  "url": "https://www.4myth.com"
10
9
  },
10
+ "description": "MyTh Quasar Ui Kit Extinction",
11
+ "keywords": [
12
+ "MyTh",
13
+ "Quasar",
14
+ "Vue js",
15
+ "UI",
16
+ "Components",
17
+ "Form Validation",
18
+ "Internationalization",
19
+ "UI Kit",
20
+ "Quasar Extension"
21
+ ],
11
22
  "license": "MIT",
12
23
  "type": "module",
13
- "module": "src/index.esm.js",
14
- "main": "src/index.common.js",
15
- "types": "./types.d.ts",
24
+ "main": "./dist/index.common.js",
25
+ "module": "./dist/index.js",
26
+ "types": "./dist/index.d.ts",
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js",
31
+ "require": "./dist/index.common.js"
32
+ }
33
+ },
16
34
  "scripts": {
17
- "lint": "eslint ./src --ext .js,.ts,.vue ./",
18
- "lint:fix": "eslint --fix --ext .js,.ts,.vue ./src",
19
- "dev": "cd ../dev && yarn dev && cd ..",
20
- "dev:umd": "yarn build && node build/script.open-umd.js",
21
- "dev:ssr": "cd ../dev && yarn 'dev:ssr' && cd ..",
22
- "dev:ios": "cd ../dev && yarn 'dev:ios' && cd ..",
23
- "dev:android": "cd ../dev && yarn 'dev:android' && cd ..",
24
- "dev:electron": "cd ../dev && yarn 'dev:electron' && cd ..",
25
- "build": "node build/index.js",
26
- "build:js": "node build/script.javascript.js",
27
- "build:css": "node build/script.css.js"
35
+ "lint": "eslint \"./src/**/*.{ts,js,vue}\"",
36
+ "lint:fix": "eslint \"./src/**/*.{ts,js,vue}\" --fix",
37
+ "format": "prettier --write \"**/*.{js,ts,vue,css,scss,html,md,json}\" --ignore-path ../.gitignore",
38
+ "clean": "rimraf dist",
39
+ "build": "yarn clean && vite build",
40
+ "release": "yarn version --patch",
41
+ "minor": "yarn version --minor",
42
+ "major": "yarn version --major"
28
43
  },
29
- "dependencies": {
30
- "@ckeditor/ckeditor5-vue": "^7.3.0",
31
- "@vee-validate/i18n": "^4.14.7",
32
- "@vee-validate/rules": "^4.14.7",
33
- "axios": "^1.7.8",
34
- "change-case": "^5.4.4",
35
- "pluralize": "^8.0.0",
36
- "qs": "^6.13.1",
37
- "radash": "^12.1.0",
38
- "typed.js": "^2.1.0",
39
- "vee-validate": "^4.14.7",
40
- "vue-i18n": "^11.1.2",
41
- "vue3-google-map": "^0.22.0",
42
- "vue3-signature": "^0.2.4"
44
+ "peerDependencies": {
45
+ "quasar": "^2.19.3",
46
+ "vee-validate": "^4.15.1",
47
+ "vue": "^3.5.34",
48
+ "vue-i18n": "^11.4.4",
49
+ "vue-router": "^5.0.7",
50
+ "@quasar/app-vite": "^2.6.0",
51
+ "@quasar/extras": "^1.18.0",
52
+ "@quasar/app-webpack": "^4.4.5"
43
53
  },
44
54
  "devDependencies": {
45
- "@quasar/app-webpack": "^3.15.1",
46
- "@quasar/extras": "^1.16.13",
47
- "@rollup/plugin-buble": "^1.0.3",
48
- "@rollup/plugin-json": "^6.1.0",
49
- "@rollup/plugin-node-resolve": "^15.3.0",
50
- "@rollup/plugin-replace": "^6.0.1",
51
- "@types/express": "^5.0.0",
52
- "@types/google.maps": "^3.58.1",
53
- "@types/node": "^22.10.1",
55
+ "@eslint/js": "^10.0.1",
56
+ "@microsoft/api-extractor": "^7.58.7",
57
+ "@types/node": "^25.9.0",
54
58
  "@types/pluralize": "^0.0.33",
55
- "@typescript-eslint/eslint-plugin": "^7.16.0",
56
- "@typescript-eslint/parser": "^7.16.0",
57
- "autoprefixer": "^10.4.20",
58
- "chalk": "^5.3.0",
59
- "ckeditor5": "^45.1.0",
60
- "core-js": "^3.39.0",
61
- "cssnano": "^7.0.6",
62
- "eslint": "^8.57.0",
63
- "@vue/eslint-config-typescript": "^14.4.0",
64
- "eslint-config-standard": "^17.0.0",
65
- "eslint-plugin-import": "^2.19.1",
66
- "eslint-plugin-n": "^15.0.0",
67
- "eslint-plugin-promise": "^6.0.0",
68
- "eslint-plugin-vue": "^9.0.0",
69
- "fs-extra": "^11.2.0",
70
- "open": "^10.1.0",
71
- "postcss": "^8.4.49",
72
- "quasar": "^2.17.4",
73
- "rimraf": "^6.0.1",
74
- "rollup": "^4.27.4",
59
+ "@vitejs/plugin-vue": "^6.0.7",
60
+ "@vue/eslint-config-prettier": "^10.2.0",
61
+ "@vue/eslint-config-typescript": "^14.7.0",
62
+ "autoprefixer": "^10.5.0",
63
+ "axios": "^1.16.1",
64
+ "change-case": "^5.4.4",
65
+ "eslint": "^10.4.0",
66
+ "eslint-plugin-vue": "^10.9.1",
67
+ "globals": "^17.6.0",
68
+ "pluralize": "^8.0.0",
69
+ "postcss": "^8.5.14",
70
+ "prettier": "^3.8.3",
71
+ "rimraf": "^6.1.3",
75
72
  "rtlcss": "^4.3.0",
76
- "sass": "^1.81.0",
77
- "typescript": "^5.9.2",
78
- "uglify-js": "^3.19.3",
79
- "vite-plugin-checker": "^0.10.0",
80
- "vue": "^3.5.13",
81
- "vue-router": "^4.5.0",
82
- "vue-tsc": "^3.0.7",
83
- "zlib": "^1.0.5"
73
+ "sass": "^1.99.0",
74
+ "typescript": "^6.0.3",
75
+ "vite": "^8.0.13",
76
+ "vite-plugin-dts": "^5.0.0",
77
+ "vue-eslint-parser": "^10.4.0",
78
+ "vue-tsc": "^3.3.0"
84
79
  },
85
80
  "browserslist": [
86
81
  "last 4 Chrome versions",
87
82
  "last 4 Firefox versions",
88
83
  "last 2 Edge versions",
89
- "last 4 Safari versions",
90
- "last 4 Android versions",
91
- "last 4 ChromeAndroid versions",
92
- "last 4 FirefoxAndroid versions",
93
- "last 4 iOS versions"
84
+ "last 4 Safari versions"
94
85
  ],
95
86
  "engines": {
96
- "node": "^24 || ^22 || ^20 || ^18",
87
+ "node": "^28 || ^26 || ^24 || ^22.12",
97
88
  "npm": ">= 6.13.4",
98
89
  "yarn": ">= 1.21.1"
99
90
  }
@@ -0,0 +1,38 @@
1
+ import type { QBtnProps } from 'quasar'
2
+ import type { ComponentPublicInstance, VNode } from 'vue'
3
+ import type { SpinnerType } from '../../types/config'
4
+
5
+ export interface MBtnProps extends Omit<QBtnProps, 'label'> {
6
+ /**
7
+ * The text that will be shown on the button
8
+ */
9
+ label?: string | number | undefined | null
10
+ /**
11
+ * Removes the default button styles
12
+ */
13
+ noStyle?: boolean
14
+ nativeLabel?: boolean | undefined
15
+ /**
16
+ * Type of loading indicator
17
+ */
18
+ spinner?: SpinnerType
19
+ }
20
+
21
+ export interface MBtnSlots {
22
+ /**
23
+ * Use for custom content, instead of relying on 'icon' and 'label' props
24
+ */
25
+ default: () => VNode[]
26
+ /**
27
+ * Override the default QSpinner when in 'loading' state
28
+ */
29
+ loading: () => VNode[]
30
+ }
31
+
32
+ export interface MBtn extends ComponentPublicInstance<MBtnProps> {
33
+ /**
34
+ * Emulate click on MBtn
35
+ * @param evt JS event object
36
+ */
37
+ click: (evt?: Event) => void
38
+ }
@@ -0,0 +1,142 @@
1
+ <script lang="ts" setup>
2
+ import {
3
+ QBtn,
4
+ QSpinner,
5
+ QSpinnerAudio,
6
+ QSpinnerBall,
7
+ QSpinnerBars,
8
+ QSpinnerBox,
9
+ QSpinnerClock,
10
+ QSpinnerComment,
11
+ QSpinnerCube,
12
+ QSpinnerDots,
13
+ QSpinnerFacebook,
14
+ QSpinnerGears,
15
+ QSpinnerGrid,
16
+ QSpinnerHearts,
17
+ QSpinnerHourglass,
18
+ QSpinnerInfinity,
19
+ QSpinnerIos,
20
+ QSpinnerOrbit,
21
+ QSpinnerOval,
22
+ QSpinnerPie,
23
+ QSpinnerPuff,
24
+ QSpinnerRadio,
25
+ QSpinnerRings,
26
+ QSpinnerTail
27
+ } from 'quasar'
28
+ import { computed } from 'vue'
29
+ import type { MBtnProps } from './MBtn'
30
+ import { useMyth } from '../../vue-plugin'
31
+ import { pascalCase } from 'change-case'
32
+
33
+ interface Props {
34
+ label?: MBtnProps['label']
35
+ spinner?: MBtnProps['spinner']
36
+ loading?: boolean
37
+ nativeLabel?: boolean
38
+ noStyle?: boolean
39
+ }
40
+
41
+ const spinners = {
42
+ QSpinner,
43
+ QSpinnerAudio,
44
+ QSpinnerBall,
45
+ QSpinnerBars,
46
+ QSpinnerBox,
47
+ QSpinnerClock,
48
+ QSpinnerComment,
49
+ QSpinnerCube,
50
+ QSpinnerDots,
51
+ QSpinnerFacebook,
52
+ QSpinnerGears,
53
+ QSpinnerGrid,
54
+ QSpinnerHearts,
55
+ QSpinnerHourglass,
56
+ QSpinnerInfinity,
57
+ QSpinnerIos,
58
+ QSpinnerOrbit,
59
+ QSpinnerOval,
60
+ QSpinnerPie,
61
+ QSpinnerPuff,
62
+ QSpinnerRadio,
63
+ QSpinnerRings,
64
+ QSpinnerTail
65
+ }
66
+ const {
67
+ noStyle = !1,
68
+ label = undefined,
69
+ loading = false,
70
+ nativeLabel = false,
71
+ spinner = undefined
72
+ } = defineProps<Props>()
73
+ const { __, loadingOptions, componentProps, btnStyle } = useMyth()
74
+ const loadingType = computed(() => {
75
+ if (spinner !== undefined) {
76
+ return spinner
77
+ }
78
+ return loadingOptions.value?.type
79
+ })
80
+ const spinnerComponent = computed(() => {
81
+ if (!loadingType.value) {
82
+ return undefined
83
+ }
84
+ if (loadingType.value === 'spinner') {
85
+ return spinners.QSpinner
86
+ }
87
+ const k = pascalCase(`q-spinner-${loadingType.value}`) as keyof typeof spinners
88
+ return spinners[k]
89
+ })
90
+ const loadingSize = computed(() => loadingOptions.value?.size)
91
+ const loadingColor = computed(() => loadingOptions.value?.color)
92
+ const DEFAULT_LABEL = undefined
93
+ const computedLabel = computed<string | undefined>(() => {
94
+ if (nativeLabel === !0) {
95
+ return label === null || label === undefined ? DEFAULT_LABEL : String(label)
96
+ }
97
+ if (label === undefined || label === null) {
98
+ return DEFAULT_LABEL
99
+ }
100
+ return __(label)
101
+ })
102
+ const computedAttrs = computed(() => ({
103
+ ...(noStyle ? {} : btnStyle.value),
104
+ ...(componentProps.value.btn || {}),
105
+ ariaLabel: computedLabel.value
106
+ }))
107
+ defineOptions({
108
+ name: 'MBtn'
109
+ })
110
+ </script>
111
+
112
+ <template>
113
+ <q-btn
114
+ :loading="loading"
115
+ :label="computedLabel"
116
+ v-bind="computedAttrs"
117
+ >
118
+ <template
119
+ v-if="!!$slots.loading"
120
+ #loading
121
+ >
122
+ <slot name="loading" />
123
+ </template>
124
+ <template
125
+ v-else-if="!!loadingType && spinnerComponent"
126
+ #loading
127
+ >
128
+ <component
129
+ :is="spinnerComponent"
130
+ :color="loadingColor"
131
+ :size="loadingSize"
132
+ />
133
+ </template>
134
+
135
+ <template
136
+ v-if="!!$slots.default"
137
+ #default
138
+ >
139
+ <slot />
140
+ </template>
141
+ </q-btn>
142
+ </template>
@@ -0,0 +1,15 @@
1
+ import type { ComponentPublicInstance, VNode } from 'vue'
2
+ import type { MGridProps } from '../MGrid'
3
+
4
+ export interface MColumnProps {
5
+ size?: MGridProps['size']
6
+ type?: MGridProps['type']
7
+ }
8
+
9
+ export interface MColumnSlots {
10
+ default?: () => VNode[]
11
+ }
12
+
13
+ export interface MColumn extends ComponentPublicInstance<MColumnProps> {
14
+ //
15
+ }
@@ -0,0 +1,28 @@
1
+ <!--
2
+ - MyTh Ahmed Faiz Copyright © 2016-2024 All rights reserved.
3
+ - Email: mythpe@gmail.com
4
+ - Mobile: +966590470092
5
+ - Website: https://www.4myth.com
6
+ - Github: https://github.com/mythpe
7
+ -->
8
+
9
+ <script lang="ts" setup>
10
+ import MGrid from '../MGrid.vue'
11
+ import type { MColumnProps } from './MColumn'
12
+
13
+ const { size = undefined, type = undefined } = defineProps<MColumnProps>()
14
+
15
+ defineOptions({
16
+ name: 'MColumn'
17
+ })
18
+ </script>
19
+
20
+ <template>
21
+ <MGrid
22
+ grid-type="column"
23
+ :size="size"
24
+ :type="type"
25
+ >
26
+ <slot />
27
+ </MGrid>
28
+ </template>