@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.
- package/LICENSE +20 -0
- package/README.md +73 -128
- package/package.json +64 -73
- package/src/components/MBtn/MBtn.ts +38 -0
- package/src/components/MBtn/MBtn.vue +142 -0
- package/src/components/grid/MColumn/MColumn.ts +15 -0
- package/src/components/grid/MColumn/MColumn.vue +28 -0
- package/src/components/grid/MContainer/MContainer.ts +39 -0
- package/src/components/grid/MContainer/MContainer.vue +66 -0
- package/src/components/grid/MGrid.ts +16 -0
- package/src/components/grid/MGrid.vue +47 -0
- package/src/components/grid/MRow/MRow.ts +15 -0
- package/src/components/grid/{MColumn.vue → MRow/MRow.vue} +12 -10
- package/src/components/index.ts +28 -18
- package/src/composables/useMyth.ts +93 -0
- package/src/composables/useMythMeta.ts +40 -0
- package/src/config/config.ts +16 -0
- package/src/config/grid.ts +10 -0
- package/src/config/index.ts +2 -0
- package/src/css/components/m-btn.scss +13 -0
- package/src/css/index.scss +9 -0
- package/src/env.d.ts +14 -0
- package/src/index.common.js +1 -15
- package/src/index.ts +4 -0
- package/src/index.umd.js +2 -15
- package/src/shims-myth.d.ts +6 -0
- package/src/shims-vue.d.ts +22 -0
- package/src/types/config.ts +136 -0
- package/src/types/helpers.ts +21 -0
- package/src/types/index.ts +9 -0
- package/src/types/vue-prop-types.ts +13 -0
- package/src/utils/helpers.ts +446 -0
- package/src/{icons/config.ts → utils/icons.ts} +0 -9
- package/src/utils/index.ts +74 -11
- package/src/utils/str.ts +237 -0
- package/src/utils/vee-rules.ts +8 -4
- package/src/vue-plugin.ts +76 -0
- package/index.d.ts +0 -17
- package/jsconfig.json +0 -10
- package/src/boot/register.ts +0 -14
- package/src/components/datatable/MDatatable.vue +0 -1812
- package/src/components/datatable/MDtAvatar.vue +0 -49
- package/src/components/datatable/MDtBtn.vue +0 -171
- package/src/components/datatable/MDtColorColumn.vue +0 -55
- package/src/components/datatable/MDtContextmenuItems.vue +0 -69
- package/src/components/datatable/MDtCopyColumn.vue +0 -87
- package/src/components/datatable/MDtDescColumn.vue +0 -60
- package/src/components/datatable/MDtImageColumn.vue +0 -76
- package/src/components/datatable/MDtSarColumn.vue +0 -76
- package/src/components/datatable/MDtUrlColumn.vue +0 -70
- package/src/components/datatable/index.ts +0 -21
- package/src/components/form/MAvatarViewer.vue +0 -408
- package/src/components/form/MAxios.vue +0 -219
- package/src/components/form/MBtn.vue +0 -240
- package/src/components/form/MCheckbox.vue +0 -204
- package/src/components/form/MCkeditor.vue +0 -860
- package/src/components/form/MColor.vue +0 -118
- package/src/components/form/MDate.vue +0 -51
- package/src/components/form/MEditor.vue +0 -272
- package/src/components/form/MEmail.vue +0 -46
- package/src/components/form/MField.vue +0 -149
- package/src/components/form/MFile.vue +0 -221
- package/src/components/form/MForm.vue +0 -89
- package/src/components/form/MHidden.vue +0 -89
- package/src/components/form/MHiddenInput.vue +0 -61
- package/src/components/form/MInput.vue +0 -289
- package/src/components/form/MInputFieldControl.vue +0 -27
- package/src/components/form/MInputLabel.vue +0 -42
- package/src/components/form/MMobile.vue +0 -67
- package/src/components/form/MOptions.vue +0 -402
- package/src/components/form/MOtp.vue +0 -296
- package/src/components/form/MPassword.vue +0 -77
- package/src/components/form/MPhone.vue +0 -184
- package/src/components/form/MPicker.vue +0 -378
- package/src/components/form/MRadio.vue +0 -188
- package/src/components/form/MSelect.vue +0 -461
- package/src/components/form/MSignaturePad.vue +0 -301
- package/src/components/form/MTime.vue +0 -48
- package/src/components/form/MToggle.vue +0 -244
- package/src/components/form/MUploader.vue +0 -544
- package/src/components/form/__MCkeditor.vue +0 -403
- package/src/components/form/__MOptions.vue +0 -289
- package/src/components/form/index.ts +0 -71
- package/src/components/form/useCkeditor.ts +0 -26
- package/src/components/grid/MBlock.vue +0 -69
- package/src/components/grid/MCol.vue +0 -60
- package/src/components/grid/MContainer.vue +0 -60
- package/src/components/grid/MHelpRow.vue +0 -60
- package/src/components/grid/MInnerLoading.vue +0 -45
- package/src/components/grid/MRow.vue +0 -57
- package/src/components/grid/index.ts +0 -19
- package/src/components/map/MMap.vue +0 -69
- package/src/components/map/index.ts +0 -12
- package/src/components/modal/MDialog.vue +0 -59
- package/src/components/modal/MDialogFile.vue +0 -111
- package/src/components/modal/MFrameDialog.vue +0 -126
- package/src/components/modal/MModalMenu.vue +0 -77
- package/src/components/modal/MTooltip.vue +0 -39
- package/src/components/modal/index.ts +0 -9
- package/src/components/parials/MUploaderItem.vue +0 -350
- package/src/components/parials/index.ts +0 -5
- package/src/components/sar/MSarIcon.vue +0 -24
- package/src/components/sar/MSarString.vue +0 -58
- package/src/components/sar/index.ts +0 -14
- package/src/components/transition/MTransition.vue +0 -28
- package/src/components/transition/MTransitionGroup.vue +0 -28
- package/src/components/transition/index.ts +0 -14
- package/src/components/transition/useTransition.ts +0 -98
- package/src/components/typography/MTypingString.vue +0 -86
- package/src/components/typography/index.ts +0 -13
- package/src/composable/index.ts +0 -13
- package/src/composable/useBindInput.ts +0 -273
- package/src/composable/useDtHelpers.ts +0 -1105
- package/src/composable/useError.ts +0 -12
- package/src/composable/useMyth.ts +0 -364
- package/src/composable/useValue.ts +0 -13
- package/src/fonts/Almarai/Almarai-Bold.ttf +0 -0
- package/src/fonts/Almarai/Almarai-ExtraBold.ttf +0 -0
- package/src/fonts/Almarai/Almarai-Light.ttf +0 -0
- package/src/fonts/Almarai/Almarai-Regular.ttf +0 -0
- package/src/fonts/Almarai/index.sass +0 -68
- package/src/fonts/Noto_Kufi/NotoKufiArabic-Black.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-Bold.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-ExtraBold.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-ExtraLight.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-Light.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-Medium.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-Regular.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-SemiBold.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-Thin.ttf +0 -0
- package/src/fonts/Noto_Kufi/NotoKufiArabic-VariableFont_wght.ttf +0 -0
- package/src/fonts/Noto_Kufi/index.sass +0 -149
- package/src/fonts/Tajawal/Tajawal-Black.ttf +0 -0
- package/src/fonts/Tajawal/Tajawal-Bold.ttf +0 -0
- package/src/fonts/Tajawal/Tajawal-ExtraBold.ttf +0 -0
- package/src/fonts/Tajawal/Tajawal-ExtraLight.ttf +0 -0
- package/src/fonts/Tajawal/Tajawal-Light.ttf +0 -0
- package/src/fonts/Tajawal/Tajawal-Medium.ttf +0 -0
- package/src/fonts/Tajawal/Tajawal-Regular.ttf +0 -0
- package/src/fonts/Tajawal/index.sass +0 -79
- package/src/fonts/index.sass +0 -10
- package/src/global.d.ts +0 -16
- package/src/icons/index.ts +0 -10
- package/src/index.esm.js +0 -15
- package/src/index.js +0 -15
- package/src/index.sass +0 -24
- package/src/plugin/defineAsyncComponents.ts +0 -75
- package/src/plugin/defineComponents.ts +0 -8
- package/src/style/brands.sass +0 -47
- package/src/style/ckeditor5.sass +0 -20
- package/src/style/effect.sass +0 -143
- package/src/style/fonts.sass +0 -37
- package/src/style/m-container.sass +0 -20
- package/src/style/m-datatable.sass +0 -114
- package/src/style/m-help-row.sass +0 -12
- package/src/style/m-input.sass +0 -74
- package/src/style/m-picker.sass +0 -15
- package/src/style/m-select.sass +0 -12
- package/src/style/m-toggle.sass +0 -11
- package/src/style/main.sass +0 -117
- package/src/style/print.sass +0 -22
- package/src/style/sar-font.sass +0 -27
- package/src/style/scrollbar.sass +0 -37
- package/src/style/transition.sass +0 -48
- package/src/style/typography.sass +0 -39
- package/src/types/api/MAvatarViewer.d.ts +0 -110
- package/src/types/api/MAxios.d.ts +0 -52
- package/src/types/api/MBlock.d.ts +0 -29
- package/src/types/api/MBtn.d.ts +0 -25
- package/src/types/api/MCheckbox.d.ts +0 -45
- package/src/types/api/MCkeditor.d.ts +0 -40
- package/src/types/api/MCol.d.ts +0 -55
- package/src/types/api/MColumn.d.ts +0 -16
- package/src/types/api/MContainer.d.ts +0 -19
- package/src/types/api/MDate.d.ts +0 -15
- package/src/types/api/MDialog.d.ts +0 -18
- package/src/types/api/MDialogFile.d.ts +0 -19
- package/src/types/api/MEditor.d.ts +0 -13
- package/src/types/api/MField.d.ts +0 -12
- package/src/types/api/MFile.d.ts +0 -21
- package/src/types/api/MForm.d.ts +0 -55
- package/src/types/api/MFrameDialog.d.ts +0 -21
- package/src/types/api/MHelpRow.d.ts +0 -19
- package/src/types/api/MHidden.d.ts +0 -20
- package/src/types/api/MHiddenInput.d.ts +0 -26
- package/src/types/api/MInnerLoading.d.ts +0 -17
- package/src/types/api/MInput.d.ts +0 -180
- package/src/types/api/MInputFieldControl.d.ts +0 -16
- package/src/types/api/MInputLabel.d.ts +0 -17
- package/src/types/api/MMap.d.ts +0 -24
- package/src/types/api/MModalMenu.d.ts +0 -17
- package/src/types/api/MOptions.d.ts +0 -72
- package/src/types/api/MOtp.d.ts +0 -52
- package/src/types/api/MPassword.d.ts +0 -20
- package/src/types/api/MPhone.d.ts +0 -21
- package/src/types/api/MPicker.d.ts +0 -49
- package/src/types/api/MRadio.d.ts +0 -13
- package/src/types/api/MRow.d.ts +0 -24
- package/src/types/api/MSar.d.ts +0 -28
- package/src/types/api/MSelect.d.ts +0 -200
- package/src/types/api/MSignaturePad.d.ts +0 -185
- package/src/types/api/MTime.d.ts +0 -12
- package/src/types/api/MToggle.d.ts +0 -39
- package/src/types/api/MTooltip.d.ts +0 -136
- package/src/types/api/MTransition.d.ts +0 -143
- package/src/types/api/MTypingString.d.ts +0 -24
- package/src/types/api/MUploader.d.ts +0 -189
- package/src/types/api-helpers.d.ts +0 -66
- package/src/types/components.d.ts +0 -150
- package/src/types/google.d.ts +0 -19
- package/src/types/index.d.ts +0 -110
- package/src/types/m-datatable.d.ts +0 -498
- package/src/types/m-helpers.d.ts +0 -99
- package/src/types/myth-api.d.ts +0 -51
- package/src/types/plugin-props-option.d.ts +0 -313
- package/src/types/quasar-helpers.d.ts +0 -7
- package/src/types/theme.d.ts +0 -162
- package/src/utils/Helpers.ts +0 -406
- package/src/utils/Str.ts +0 -246
- package/src/utils/__pluralize.js +0 -493
- package/src/utils/const.ts +0 -1
- package/src/utils/createMyth.ts +0 -49
- package/src/utils/vue-plugin.ts +0 -66
- package/tsconfig.json +0 -35
- 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
|
-
|
|
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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
16
|
+
# MyTh Quasar UI Kit Extension
|
|
7
17
|
|
|
8
|
-
|
|
18
|
+
**QUI** is a premium set of Vue 3 components engineered specifically for the Quasar Framework v2 ecosystem.
|
|
9
19
|
|
|
10
|
-
|
|
20
|
+
✨ **Compatibility:** Fully compatible with **Quasar UI v2** and **Vue 3**.
|
|
11
21
|
|
|
12
|
-
|
|
22
|
+
---
|
|
13
23
|
|
|
14
|
-
|
|
24
|
+
## 🔌 Usage & Integration
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
### 1. Quasar CLI Project (Recommended)
|
|
17
27
|
|
|
18
|
-
|
|
28
|
+
The easiest way to integrate is via the [App Extension](https://www.npmjs.com/package/@mythpe/quasar-app-extension-qui):
|
|
19
29
|
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
46
|
+
#### Manual Boot Registration
|
|
47
|
+
|
|
48
|
+
Create and register a boot file (`src/boot/myth.[ts|js]`):
|
|
59
49
|
|
|
60
50
|
```js
|
|
61
|
-
import
|
|
62
|
-
import
|
|
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
|
-
|
|
55
|
+
export default defineBoot(({ app }) => {
|
|
56
|
+
app.use(install)
|
|
57
|
+
})
|
|
66
58
|
```
|
|
67
59
|
|
|
68
|
-
|
|
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
|
-
|
|
62
|
+
### 2. Vue CLI / Vite Project
|
|
78
63
|
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
70
|
+
const app = createApp(App)
|
|
71
|
+
app.use(install)
|
|
72
|
+
app.mount('#app')
|
|
90
73
|
```
|
|
91
74
|
|
|
92
|
-
|
|
75
|
+
---
|
|
93
76
|
|
|
94
|
-
|
|
77
|
+
### 3. UMD Variant (CDN)
|
|
95
78
|
|
|
96
|
-
|
|
79
|
+
Global export identifier: `window.Myth`.
|
|
97
80
|
|
|
98
|
-
|
|
81
|
+
Add the following tags **after** your Quasar Framework assets:
|
|
99
82
|
|
|
83
|
+
```html
|
|
100
84
|
<head>
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
103
|
+
## 👨💻 Author & Developer
|
|
163
104
|
|
|
164
|
-
|
|
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
|
-
|
|
111
|
+
## 📄 License
|
|
167
112
|
|
|
168
|
-
MIT (c) MyTh
|
|
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
|
-
"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
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"types": "./
|
|
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
|
|
18
|
-
"lint:fix": "eslint
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
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
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
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
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
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
|
-
"@
|
|
56
|
-
"@
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"eslint": "^
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
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.
|
|
77
|
-
"typescript": "^
|
|
78
|
-
"
|
|
79
|
-
"vite-plugin-
|
|
80
|
-
"vue": "^
|
|
81
|
-
"vue-
|
|
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": "^
|
|
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>
|