quasar 2.16.11 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/api/Platform.json +1 -1
  2. package/dist/api/QOptionGroup.json +1 -1
  3. package/dist/api/QScrollArea.json +1 -1
  4. package/dist/api/QSelect.json +1 -1
  5. package/dist/api/QUploader.json +1 -1
  6. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  7. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  11. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  12. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  13. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  16. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  17. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  18. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  19. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  20. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  24. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  25. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  44. package/dist/icon-set/themify.umd.prod.js +1 -1
  45. package/dist/lang/ar-TN.umd.prod.js +1 -1
  46. package/dist/lang/ar.umd.prod.js +1 -1
  47. package/dist/lang/az-Latn.umd.prod.js +1 -1
  48. package/dist/lang/bg.umd.prod.js +1 -1
  49. package/dist/lang/bn.umd.prod.js +1 -1
  50. package/dist/lang/bs-BA.umd.prod.js +1 -1
  51. package/dist/lang/ca.umd.prod.js +1 -1
  52. package/dist/lang/cs.umd.prod.js +1 -1
  53. package/dist/lang/da.umd.prod.js +1 -1
  54. package/dist/lang/de-CH.umd.prod.js +1 -1
  55. package/dist/lang/de-DE.umd.prod.js +1 -1
  56. package/dist/lang/de.umd.prod.js +1 -1
  57. package/dist/lang/el.umd.prod.js +1 -1
  58. package/dist/lang/en-GB.umd.prod.js +1 -1
  59. package/dist/lang/en-US.umd.prod.js +1 -1
  60. package/dist/lang/eo.umd.prod.js +1 -1
  61. package/dist/lang/es.umd.prod.js +1 -1
  62. package/dist/lang/et.umd.prod.js +1 -1
  63. package/dist/lang/eu.umd.prod.js +1 -1
  64. package/dist/lang/fa-IR.umd.prod.js +1 -1
  65. package/dist/lang/fa.umd.prod.js +1 -1
  66. package/dist/lang/fi.umd.prod.js +1 -1
  67. package/dist/lang/fr.umd.prod.js +1 -1
  68. package/dist/lang/gn.umd.prod.js +1 -1
  69. package/dist/lang/he.umd.prod.js +1 -1
  70. package/dist/lang/hi.umd.prod.js +1 -1
  71. package/dist/lang/hr.umd.prod.js +1 -1
  72. package/dist/lang/hu.umd.prod.js +1 -1
  73. package/dist/lang/id.umd.prod.js +1 -1
  74. package/dist/lang/is.umd.prod.js +1 -1
  75. package/dist/lang/it.umd.prod.js +1 -1
  76. package/dist/lang/ja.umd.prod.js +1 -1
  77. package/dist/lang/kk.umd.prod.js +1 -1
  78. package/dist/lang/km.umd.prod.js +1 -1
  79. package/dist/lang/ko-KR.umd.prod.js +1 -1
  80. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  81. package/dist/lang/lt.umd.prod.js +1 -1
  82. package/dist/lang/lu.umd.prod.js +1 -1
  83. package/dist/lang/lv.umd.prod.js +1 -1
  84. package/dist/lang/mk.umd.prod.js +1 -1
  85. package/dist/lang/ml.umd.prod.js +1 -1
  86. package/dist/lang/mm.umd.prod.js +1 -1
  87. package/dist/lang/ms-MY.umd.prod.js +1 -1
  88. package/dist/lang/ms.umd.prod.js +1 -1
  89. package/dist/lang/my.umd.prod.js +1 -1
  90. package/dist/lang/nb-NO.umd.prod.js +1 -1
  91. package/dist/lang/nl.umd.prod.js +1 -1
  92. package/dist/lang/pl.umd.prod.js +1 -1
  93. package/dist/lang/pt-BR.umd.prod.js +1 -1
  94. package/dist/lang/pt.umd.prod.js +1 -1
  95. package/dist/lang/ro.umd.prod.js +1 -1
  96. package/dist/lang/ru.umd.prod.js +1 -1
  97. package/dist/lang/sk.umd.prod.js +1 -1
  98. package/dist/lang/sl.umd.prod.js +1 -1
  99. package/dist/lang/sm.umd.prod.js +1 -1
  100. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  101. package/dist/lang/sr.umd.prod.js +1 -1
  102. package/dist/lang/sv.umd.prod.js +1 -1
  103. package/dist/lang/ta.umd.prod.js +1 -1
  104. package/dist/lang/th.umd.prod.js +1 -1
  105. package/dist/lang/tl.umd.prod.js +1 -1
  106. package/dist/lang/tr.umd.prod.js +1 -1
  107. package/dist/lang/ug.umd.prod.js +1 -1
  108. package/dist/lang/uk.umd.prod.js +1 -1
  109. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  110. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  111. package/dist/lang/vi.umd.prod.js +1 -1
  112. package/dist/lang/zh-CN.umd.prod.js +1 -1
  113. package/dist/lang/zh-TW.umd.prod.js +1 -1
  114. package/dist/quasar.client.js +748 -2140
  115. package/dist/quasar.css +3 -2
  116. package/dist/quasar.prod.css +1 -1
  117. package/dist/quasar.rtl.css +3 -2
  118. package/dist/quasar.rtl.prod.css +1 -1
  119. package/dist/quasar.sass +8 -4
  120. package/dist/quasar.server.prod.cjs +53 -53
  121. package/dist/quasar.server.prod.js +51 -51
  122. package/dist/quasar.umd.js +338 -1733
  123. package/dist/quasar.umd.prod.js +44 -44
  124. package/dist/types/index.d.ts +120 -51
  125. package/dist/vetur/quasar-attributes.json +1 -1
  126. package/dist/vetur/quasar-tags.json +1 -1
  127. package/dist/web-types/web-types.json +1 -1
  128. package/package.json +9 -9
  129. package/src/components/menu/QMenu.sass +2 -2
  130. package/src/components/option-group/QOptionGroup.js +38 -15
  131. package/src/components/option-group/QOptionGroup.json +88 -1
  132. package/src/components/scroll-area/QScrollArea.js +115 -107
  133. package/src/components/scroll-area/QScrollArea.json +40 -0
  134. package/src/components/scroll-area/ScrollAreaControls.js +54 -0
  135. package/src/components/select/QSelect.js +16 -18
  136. package/src/components/select/QSelect.json +7 -0
  137. package/src/components/spinner/QSpinnerAudio.js +4 -70
  138. package/src/components/spinner/QSpinnerBall.js +4 -86
  139. package/src/components/spinner/QSpinnerBars.js +4 -125
  140. package/src/components/spinner/QSpinnerBox.js +4 -43
  141. package/src/components/spinner/QSpinnerClock.js +4 -54
  142. package/src/components/spinner/QSpinnerComment.js +4 -66
  143. package/src/components/spinner/QSpinnerCube.js +4 -114
  144. package/src/components/spinner/QSpinnerDots.js +4 -86
  145. package/src/components/spinner/QSpinnerFacebook.js +4 -85
  146. package/src/components/spinner/QSpinnerGears.js +4 -41
  147. package/src/components/spinner/QSpinnerGrid.js +4 -134
  148. package/src/components/spinner/QSpinnerHearts.js +4 -36
  149. package/src/components/spinner/QSpinnerHourglass.js +4 -94
  150. package/src/components/spinner/QSpinnerInfinity.js +4 -25
  151. package/src/components/spinner/QSpinnerIos.js +4 -156
  152. package/src/components/spinner/QSpinnerOrbit.js +4 -33
  153. package/src/components/spinner/QSpinnerOval.js +4 -32
  154. package/src/components/spinner/QSpinnerPie.js +4 -63
  155. package/src/components/spinner/QSpinnerPuff.js +4 -65
  156. package/src/components/spinner/QSpinnerRadio.js +4 -58
  157. package/src/components/spinner/QSpinnerRings.js +4 -88
  158. package/src/components/spinner/QSpinnerTail.js +4 -66
  159. package/src/components/tabs/QRouteTab.js +4 -3
  160. package/src/components/tabs/QTabs.js +28 -15
  161. package/src/components/tooltip/QTooltip.sass +2 -0
  162. package/src/components/uploader/QUploader.json +9 -0
  163. package/src/components/uploader/QUploader.sass +0 -1
  164. package/src/components/uploader/uploader-core.js +6 -2
  165. package/src/composables/private.use-panel/use-panel.js +5 -3
  166. package/src/css/variables.sass +3 -0
  167. package/src/plugins/platform/Platform.js +40 -5
  168. package/src/plugins/platform/Platform.json +52 -69
  169. package/src/plugins/platform/Platform.test.js +22 -14
  170. package/src/utils/private.position-engine/position-engine.js +11 -4
@@ -1,70 +1,9 @@
1
1
  import { h } from 'vue'
2
2
 
3
3
  import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
-
5
4
  import { createComponent } from '../../utils/private.create/create.js'
6
5
 
7
- const createSvg = () => [
8
- h('rect', {
9
- x: '0',
10
- y: '0',
11
- width: '100',
12
- height: '100',
13
- fill: 'none'
14
- }),
15
- h('path', {
16
- d: 'M78,19H22c-6.6,0-12,5.4-12,12v31c0,6.6,5.4,12,12,12h37.2c0.4,3,1.8,5.6,3.7,7.6c2.4,2.5,5.1,4.1,9.1,4 c-1.4-2.1-2-7.2-2-10.3c0-0.4,0-0.8,0-1.3h8c6.6,0,12-5.4,12-12V31C90,24.4,84.6,19,78,19z',
17
- fill: 'currentColor'
18
- }),
19
- h('circle', {
20
- cx: '30',
21
- cy: '47',
22
- r: '5',
23
- fill: '#fff'
24
- }, [
25
- h('animate', {
26
- attributeName: 'opacity',
27
- from: '0',
28
- to: '1',
29
- values: '0;1;1',
30
- keyTimes: '0;0.2;1',
31
- dur: '1s',
32
- repeatCount: 'indefinite'
33
- })
34
- ]),
35
- h('circle', {
36
- cx: '50',
37
- cy: '47',
38
- r: '5',
39
- fill: '#fff'
40
- }, [
41
- h('animate', {
42
- attributeName: 'opacity',
43
- from: '0',
44
- to: '1',
45
- values: '0;0;1;1',
46
- keyTimes: '0;0.2;0.4;1',
47
- dur: '1s',
48
- repeatCount: 'indefinite'
49
- })
50
- ]),
51
- h('circle', {
52
- cx: '70',
53
- cy: '47',
54
- r: '5',
55
- fill: '#fff'
56
- }, [
57
- h('animate', {
58
- attributeName: 'opacity',
59
- from: '0',
60
- to: '1',
61
- values: '0;0;1;1',
62
- keyTimes: '0;0.4;0.6;1',
63
- dur: '1s',
64
- repeatCount: 'indefinite'
65
- })
66
- ])
67
- ]
6
+ const innerHTML = '<rect x="0" y="0" width="100" height="100" fill="none"></rect><path d="M78,19H22c-6.6,0-12,5.4-12,12v31c0,6.6,5.4,12,12,12h37.2c0.4,3,1.8,5.6,3.7,7.6c2.4,2.5,5.1,4.1,9.1,4 c-1.4-2.1-2-7.2-2-10.3c0-0.4,0-0.8,0-1.3h8c6.6,0,12-5.4,12-12V31C90,24.4,84.6,19,78,19z" fill="currentColor"></path><circle cx="30" cy="47" r="5" fill="#fff"><animate attributeName="opacity" from="0" to="1" values="0;1;1" keyTimes="0;0.2;1" dur="1s" repeatCount="indefinite"></animate></circle><circle cx="50" cy="47" r="5" fill="#fff"><animate attributeName="opacity" from="0" to="1" values="0;0;1;1" keyTimes="0;0.2;0.4;1" dur="1s" repeatCount="indefinite"></animate></circle><circle cx="70" cy="47" r="5" fill="#fff"><animate attributeName="opacity" from="0" to="1" values="0;0;1;1" keyTimes="0;0.4;0.6;1" dur="1s" repeatCount="indefinite"></animate></circle>'
68
7
 
69
8
  export default createComponent({
70
9
  name: 'QSpinnerComment',
@@ -73,15 +12,14 @@ export default createComponent({
73
12
 
74
13
  setup (props) {
75
14
  const { cSize, classes } = useSpinner(props)
76
- const svg = createSvg()
77
-
78
15
  return () => h('svg', {
79
16
  class: classes.value,
80
17
  width: cSize.value,
81
18
  height: cSize.value,
82
19
  xmlns: 'http://www.w3.org/2000/svg',
83
20
  viewBox: '0 0 100 100',
84
- preserveAspectRatio: 'xMidYMid'
85
- }, svg)
21
+ preserveAspectRatio: 'xMidYMid',
22
+ innerHTML
23
+ })
86
24
  }
87
25
  })
@@ -1,118 +1,9 @@
1
1
  import { h } from 'vue'
2
2
 
3
3
  import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
-
5
4
  import { createComponent } from '../../utils/private.create/create.js'
6
5
 
7
- const createSvg = () => [
8
- h('rect', {
9
- x: '0',
10
- y: '0',
11
- width: '100',
12
- height: '100',
13
- fill: 'none'
14
- }),
15
- h('g', {
16
- transform: 'translate(25 25)'
17
- }, [
18
- h('rect', {
19
- x: '-20',
20
- y: '-20',
21
- width: '40',
22
- height: '40',
23
- fill: 'currentColor',
24
- opacity: '0.9'
25
- }, [
26
- h('animateTransform', {
27
- attributeName: 'transform',
28
- type: 'scale',
29
- from: '1.5',
30
- to: '1',
31
- repeatCount: 'indefinite',
32
- begin: '0s',
33
- dur: '1s',
34
- calcMode: 'spline',
35
- keySplines: '0.2 0.8 0.2 0.8',
36
- keyTimes: '0;1'
37
- })
38
- ])
39
- ]),
40
- h('g', {
41
- transform: 'translate(75 25)'
42
- }, [
43
- h('rect', {
44
- x: '-20',
45
- y: '-20',
46
- width: '40',
47
- height: '40',
48
- fill: 'currentColor',
49
- opacity: '0.8'
50
- }, [
51
- h('animateTransform', {
52
- attributeName: 'transform',
53
- type: 'scale',
54
- from: '1.5',
55
- to: '1',
56
- repeatCount: 'indefinite',
57
- begin: '0.1s',
58
- dur: '1s',
59
- calcMode: 'spline',
60
- keySplines: '0.2 0.8 0.2 0.8',
61
- keyTimes: '0;1'
62
- })
63
- ])
64
- ]),
65
- h('g', {
66
- transform: 'translate(25 75)'
67
- }, [
68
- h('rect', {
69
- x: '-20',
70
- y: '-20',
71
- width: '40',
72
- height: '40',
73
- fill: 'currentColor',
74
- opacity: '0.7'
75
- }, [
76
- h('animateTransform', {
77
- attributeName: 'transform',
78
- type: 'scale',
79
- from: '1.5',
80
- to: '1',
81
- repeatCount: 'indefinite',
82
- begin: '0.3s',
83
- dur: '1s',
84
- calcMode: 'spline',
85
- keySplines: '0.2 0.8 0.2 0.8',
86
- keyTimes: '0;1'
87
- })
88
- ])
89
- ]),
90
- h('g', {
91
- transform: 'translate(75 75)'
92
- }, [
93
- h('rect', {
94
- x: '-20',
95
- y: '-20',
96
- width: '40',
97
- height: '40',
98
- fill: 'currentColor',
99
- opacity: '0.6'
100
- }, [
101
- h('animateTransform', {
102
- attributeName: 'transform',
103
- type: 'scale',
104
- from: '1.5',
105
- to: '1',
106
- repeatCount: 'indefinite',
107
- begin: '0.2s',
108
- dur: '1s',
109
- calcMode: 'spline',
110
- keySplines: '0.2 0.8 0.2 0.8',
111
- keyTimes: '0;1'
112
- })
113
- ])
114
- ])
115
- ]
6
+ const innerHTML = '<rect x="0" y="0" width="100" height="100" fill="none"></rect><g transform="translate(25 25)"><rect x="-20" y="-20" width="40" height="40" fill="currentColor" opacity="0.9"><animateTransform attributeName="transform" type="scale" from="1.5" to="1" repeatCount="indefinite" begin="0s" dur="1s" calcMode="spline" keySplines="0.2 0.8 0.2 0.8" keyTimes="0;1"></animateTransform></rect></g><g transform="translate(75 25)"><rect x="-20" y="-20" width="40" height="40" fill="currentColor" opacity="0.8"><animateTransform attributeName="transform" type="scale" from="1.5" to="1" repeatCount="indefinite" begin="0.1s" dur="1s" calcMode="spline" keySplines="0.2 0.8 0.2 0.8" keyTimes="0;1"></animateTransform></rect></g><g transform="translate(25 75)"><rect x="-20" y="-20" width="40" height="40" fill="currentColor" opacity="0.7"><animateTransform attributeName="transform" type="scale" from="1.5" to="1" repeatCount="indefinite" begin="0.3s" dur="1s" calcMode="spline" keySplines="0.2 0.8 0.2 0.8" keyTimes="0;1"></animateTransform></rect></g><g transform="translate(75 75)"><rect x="-20" y="-20" width="40" height="40" fill="currentColor" opacity="0.6"><animateTransform attributeName="transform" type="scale" from="1.5" to="1" repeatCount="indefinite" begin="0.2s" dur="1s" calcMode="spline" keySplines="0.2 0.8 0.2 0.8" keyTimes="0;1"></animateTransform></rect></g>'
116
7
 
117
8
  export default createComponent({
118
9
  name: 'QSpinnerCube',
@@ -121,15 +12,14 @@ export default createComponent({
121
12
 
122
13
  setup (props) {
123
14
  const { cSize, classes } = useSpinner(props)
124
- const svg = createSvg()
125
-
126
15
  return () => h('svg', {
127
16
  class: classes.value,
128
17
  width: cSize.value,
129
18
  height: cSize.value,
130
19
  xmlns: 'http://www.w3.org/2000/svg',
131
20
  viewBox: '0 0 100 100',
132
- preserveAspectRatio: 'xMidYMid'
133
- }, svg)
21
+ preserveAspectRatio: 'xMidYMid',
22
+ innerHTML
23
+ })
134
24
  }
135
25
  })
@@ -1,90 +1,9 @@
1
1
  import { h } from 'vue'
2
2
 
3
3
  import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
-
5
4
  import { createComponent } from '../../utils/private.create/create.js'
6
5
 
7
- const createSvg = () => [
8
- h('circle', {
9
- cx: '15',
10
- cy: '15',
11
- r: '15'
12
- }, [
13
- h('animate', {
14
- attributeName: 'r',
15
- from: '15',
16
- to: '15',
17
- begin: '0s',
18
- dur: '0.8s',
19
- values: '15;9;15',
20
- calcMode: 'linear',
21
- repeatCount: 'indefinite'
22
- }),
23
- h('animate', {
24
- attributeName: 'fill-opacity',
25
- from: '1',
26
- to: '1',
27
- begin: '0s',
28
- dur: '0.8s',
29
- values: '1;.5;1',
30
- calcMode: 'linear',
31
- repeatCount: 'indefinite'
32
- })
33
- ]),
34
- h('circle', {
35
- cx: '60',
36
- cy: '15',
37
- r: '9',
38
- 'fill-opacity': '.3'
39
- }, [
40
- h('animate', {
41
- attributeName: 'r',
42
- from: '9',
43
- to: '9',
44
- begin: '0s',
45
- dur: '0.8s',
46
- values: '9;15;9',
47
- calcMode: 'linear',
48
- repeatCount: 'indefinite'
49
- }),
50
- h('animate', {
51
- attributeName: 'fill-opacity',
52
- from: '.5',
53
- to: '.5',
54
- begin: '0s',
55
- dur: '0.8s',
56
- values: '.5;1;.5',
57
- calcMode: 'linear',
58
- repeatCount: 'indefinite'
59
- })
60
- ]),
61
- h('circle', {
62
- cx: '105',
63
- cy: '15',
64
- r: '15'
65
- }, [
66
- h('animate', {
67
- attributeName: 'r',
68
- from: '15',
69
- to: '15',
70
- begin: '0s',
71
- dur: '0.8s',
72
- values: '15;9;15',
73
- calcMode: 'linear',
74
- repeatCount: 'indefinite'
75
- }),
76
- h('animate', {
77
- attributeName: 'fill-opacity',
78
- from: '1',
79
- to: '1',
80
- begin: '0s',
81
- dur: '0.8s',
82
- values: '1;.5;1',
83
- calcMode: 'linear',
84
- repeatCount: 'indefinite'
85
- })
86
- ])
87
- ]
6
+ const innerHTML = '<circle cx="15" cy="15" r="15"><animate attributeName="r" from="15" to="15" begin="0s" dur="0.8s" values="15;9;15" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="60" cy="15" r="9" fill-opacity=".3"><animate attributeName="r" from="9" to="9" begin="0s" dur="0.8s" values="9;15;9" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from=".5" to=".5" begin="0s" dur="0.8s" values=".5;1;.5" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="105" cy="15" r="15"><animate attributeName="r" from="15" to="15" begin="0s" dur="0.8s" values="15;9;15" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle>'
88
7
 
89
8
  export default createComponent({
90
9
  name: 'QSpinnerDots',
@@ -93,15 +12,14 @@ export default createComponent({
93
12
 
94
13
  setup (props) {
95
14
  const { cSize, classes } = useSpinner(props)
96
- const svg = createSvg()
97
-
98
15
  return () => h('svg', {
99
16
  class: classes.value,
100
17
  fill: 'currentColor',
101
18
  width: cSize.value,
102
19
  height: cSize.value,
103
20
  viewBox: '0 0 120 30',
104
- xmlns: 'http://www.w3.org/2000/svg'
105
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
106
24
  }
107
25
  })
@@ -1,89 +1,9 @@
1
1
  import { h } from 'vue'
2
2
 
3
3
  import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
-
5
4
  import { createComponent } from '../../utils/private.create/create.js'
6
5
 
7
- const createSvg = () => [
8
- h('g', {
9
- transform: 'translate(20 50)'
10
- }, [
11
- h('rect', {
12
- x: '-10',
13
- y: '-30',
14
- width: '20',
15
- height: '60',
16
- fill: 'currentColor',
17
- opacity: '0.6'
18
- }, [
19
- h('animateTransform', {
20
- attributeName: 'transform',
21
- type: 'scale',
22
- from: '2',
23
- to: '1',
24
- begin: '0s',
25
- repeatCount: 'indefinite',
26
- dur: '1s',
27
- calcMode: 'spline',
28
- keySplines: '0.1 0.9 0.4 1',
29
- keyTimes: '0;1',
30
- values: '2;1'
31
- })
32
- ])
33
- ]),
34
- h('g', {
35
- transform: 'translate(50 50)'
36
- }, [
37
- h('rect', {
38
- x: '-10',
39
- y: '-30',
40
- width: '20',
41
- height: '60',
42
- fill: 'currentColor',
43
- opacity: '0.8'
44
- }, [
45
- h('animateTransform', {
46
- attributeName: 'transform',
47
- type: 'scale',
48
- from: '2',
49
- to: '1',
50
- begin: '0.1s',
51
- repeatCount: 'indefinite',
52
- dur: '1s',
53
- calcMode: 'spline',
54
- keySplines: '0.1 0.9 0.4 1',
55
- keyTimes: '0;1',
56
- values: '2;1'
57
- })
58
- ])
59
- ]),
60
- h('g', {
61
- transform: 'translate(80 50)'
62
- }, [
63
- h('rect', {
64
- x: '-10',
65
- y: '-30',
66
- width: '20',
67
- height: '60',
68
- fill: 'currentColor',
69
- opacity: '0.9'
70
- }, [
71
- h('animateTransform', {
72
- attributeName: 'transform',
73
- type: 'scale',
74
- from: '2',
75
- to: '1',
76
- begin: '0.2s',
77
- repeatCount: 'indefinite',
78
- dur: '1s',
79
- calcMode: 'spline',
80
- keySplines: '0.1 0.9 0.4 1',
81
- keyTimes: '0;1',
82
- values: '2;1'
83
- })
84
- ])
85
- ])
86
- ]
6
+ const innerHTML = '<g transform="translate(20 50)"><rect x="-10" y="-30" width="20" height="60" fill="currentColor" opacity="0.6"><animateTransform attributeName="transform" type="scale" from="2" to="1" begin="0s" repeatCount="indefinite" dur="1s" calcMode="spline" keySplines="0.1 0.9 0.4 1" keyTimes="0;1" values="2;1"></animateTransform></rect></g><g transform="translate(50 50)"><rect x="-10" y="-30" width="20" height="60" fill="currentColor" opacity="0.8"><animateTransform attributeName="transform" type="scale" from="2" to="1" begin="0.1s" repeatCount="indefinite" dur="1s" calcMode="spline" keySplines="0.1 0.9 0.4 1" keyTimes="0;1" values="2;1"></animateTransform></rect></g><g transform="translate(80 50)"><rect x="-10" y="-30" width="20" height="60" fill="currentColor" opacity="0.9"><animateTransform attributeName="transform" type="scale" from="2" to="1" begin="0.2s" repeatCount="indefinite" dur="1s" calcMode="spline" keySplines="0.1 0.9 0.4 1" keyTimes="0;1" values="2;1"></animateTransform></rect></g>'
87
7
 
88
8
  export default createComponent({
89
9
  name: 'QSpinnerFacebook',
@@ -92,15 +12,14 @@ export default createComponent({
92
12
 
93
13
  setup (props) {
94
14
  const { cSize, classes } = useSpinner(props)
95
- const svg = createSvg()
96
-
97
15
  return () => h('svg', {
98
16
  class: classes.value,
99
17
  width: cSize.value,
100
18
  height: cSize.value,
101
19
  viewBox: '0 0 100 100',
102
20
  xmlns: 'http://www.w3.org/2000/svg',
103
- preserveAspectRatio: 'xMidYMid'
104
- }, svg)
21
+ preserveAspectRatio: 'xMidYMid',
22
+ innerHTML
23
+ })
105
24
  }
106
25
  })
@@ -1,45 +1,9 @@
1
1
  import { h } from 'vue'
2
2
 
3
3
  import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
-
5
4
  import { createComponent } from '../../utils/private.create/create.js'
6
5
 
7
- const createSvg = () => [
8
- h('g', {
9
- transform: 'translate(-20,-20)'
10
- }, [
11
- h('path', {
12
- d: 'M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z',
13
- fill: 'currentColor'
14
- }, [
15
- h('animateTransform', {
16
- attributeName: 'transform',
17
- type: 'rotate',
18
- from: '90 50 50',
19
- to: '0 50 50',
20
- dur: '1s',
21
- repeatCount: 'indefinite'
22
- })
23
- ])
24
- ]),
25
- h('g', {
26
- transform: 'translate(20,20) rotate(15 50 50)'
27
- }, [
28
- h('path', {
29
- d: 'M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z',
30
- fill: 'currentColor'
31
- }, [
32
- h('animateTransform', {
33
- attributeName: 'transform',
34
- type: 'rotate',
35
- from: '0 50 50',
36
- to: '90 50 50',
37
- dur: '1s',
38
- repeatCount: 'indefinite'
39
- })
40
- ])
41
- ])
42
- ]
6
+ const innerHTML = '<g transform="translate(-20,-20)"><path d="M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z" fill="currentColor"><animateTransform attributeName="transform" type="rotate" from="90 50 50" to="0 50 50" dur="1s" repeatCount="indefinite"></animateTransform></path></g><g transform="translate(20,20) rotate(15 50 50)"><path d="M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z" fill="currentColor"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="90 50 50" dur="1s" repeatCount="indefinite"></animateTransform></path></g>'
43
7
 
44
8
  export default createComponent({
45
9
  name: 'QSpinnerGears',
@@ -48,15 +12,14 @@ export default createComponent({
48
12
 
49
13
  setup (props) {
50
14
  const { cSize, classes } = useSpinner(props)
51
- const svg = createSvg()
52
-
53
15
  return () => h('svg', {
54
16
  class: classes.value,
55
17
  width: cSize.value,
56
18
  height: cSize.value,
57
19
  viewBox: '0 0 100 100',
58
20
  preserveAspectRatio: 'xMidYMid',
59
- xmlns: 'http://www.w3.org/2000/svg'
60
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
61
24
  }
62
25
  })
@@ -1,138 +1,9 @@
1
1
  import { h } from 'vue'
2
2
 
3
3
  import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
-
5
4
  import { createComponent } from '../../utils/private.create/create.js'
6
5
 
7
- const createSvg = () => [
8
- h('circle', {
9
- cx: '12.5',
10
- cy: '12.5',
11
- r: '12.5'
12
- }, [
13
- h('animate', {
14
- attributeName: 'fill-opacity',
15
- begin: '0s',
16
- dur: '1s',
17
- values: '1;.2;1',
18
- calcMode: 'linear',
19
- repeatCount: 'indefinite'
20
- })
21
- ]),
22
- h('circle', {
23
- cx: '12.5',
24
- cy: '52.5',
25
- r: '12.5',
26
- 'fill-opacity': '.5'
27
- }, [
28
- h('animate', {
29
- attributeName: 'fill-opacity',
30
- begin: '100ms',
31
- dur: '1s',
32
- values: '1;.2;1',
33
- calcMode: 'linear',
34
- repeatCount: 'indefinite'
35
- })
36
- ]),
37
- h('circle', {
38
- cx: '52.5',
39
- cy: '12.5',
40
- r: '12.5'
41
- }, [
42
- h('animate', {
43
- attributeName: 'fill-opacity',
44
- begin: '300ms',
45
- dur: '1s',
46
- values: '1;.2;1',
47
- calcMode: 'linear',
48
- repeatCount: 'indefinite'
49
- })
50
- ]),
51
- h('circle', {
52
- cx: '52.5',
53
- cy: '52.5',
54
- r: '12.5'
55
- }, [
56
- h('animate', {
57
- attributeName: 'fill-opacity',
58
- begin: '600ms',
59
- dur: '1s',
60
- values: '1;.2;1',
61
- calcMode: 'linear',
62
- repeatCount: 'indefinite'
63
- })
64
- ]),
65
- h('circle', {
66
- cx: '92.5',
67
- cy: '12.5',
68
- r: '12.5'
69
- }, [
70
- h('animate', {
71
- attributeName: 'fill-opacity',
72
- begin: '800ms',
73
- dur: '1s',
74
- values: '1;.2;1',
75
- calcMode: 'linear',
76
- repeatCount: 'indefinite'
77
- })
78
- ]),
79
- h('circle', {
80
- cx: '92.5',
81
- cy: '52.5',
82
- r: '12.5'
83
- }, [
84
- h('animate', {
85
- attributeName: 'fill-opacity',
86
- begin: '400ms',
87
- dur: '1s',
88
- values: '1;.2;1',
89
- calcMode: 'linear',
90
- repeatCount: 'indefinite'
91
- })
92
- ]),
93
- h('circle', {
94
- cx: '12.5',
95
- cy: '92.5',
96
- r: '12.5'
97
- }, [
98
- h('animate', {
99
- attributeName: 'fill-opacity',
100
- begin: '700ms',
101
- dur: '1s',
102
- values: '1;.2;1',
103
- calcMode: 'linear',
104
- repeatCount: 'indefinite'
105
- })
106
- ]),
107
- h('circle', {
108
- cx: '52.5',
109
- cy: '92.5',
110
- r: '12.5'
111
- }, [
112
- h('animate', {
113
- attributeName: 'fill-opacity',
114
- begin: '500ms',
115
- dur: '1s',
116
- values: '1;.2;1',
117
- calcMode: 'linear',
118
- repeatCount: 'indefinite'
119
- })
120
- ]),
121
- h('circle', {
122
- cx: '92.5',
123
- cy: '92.5',
124
- r: '12.5'
125
- }, [
126
- h('animate', {
127
- attributeName: 'fill-opacity',
128
- begin: '200ms',
129
- dur: '1s',
130
- values: '1;.2;1',
131
- calcMode: 'linear',
132
- repeatCount: 'indefinite'
133
- })
134
- ])
135
- ]
6
+ const innerHTML = '<circle cx="12.5" cy="12.5" r="12.5"><animate attributeName="fill-opacity" begin="0s" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="12.5" cy="52.5" r="12.5" fill-opacity=".5"><animate attributeName="fill-opacity" begin="100ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="52.5" cy="12.5" r="12.5"><animate attributeName="fill-opacity" begin="300ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="52.5" cy="52.5" r="12.5"><animate attributeName="fill-opacity" begin="600ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="92.5" cy="12.5" r="12.5"><animate attributeName="fill-opacity" begin="800ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="92.5" cy="52.5" r="12.5"><animate attributeName="fill-opacity" begin="400ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="12.5" cy="92.5" r="12.5"><animate attributeName="fill-opacity" begin="700ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="52.5" cy="92.5" r="12.5"><animate attributeName="fill-opacity" begin="500ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="92.5" cy="92.5" r="12.5"><animate attributeName="fill-opacity" begin="200ms" dur="1s" values="1;.2;1" calcMode="linear" repeatCount="indefinite"></animate></circle>'
136
7
 
137
8
  export default createComponent({
138
9
  name: 'QSpinnerGrid',
@@ -141,15 +12,14 @@ export default createComponent({
141
12
 
142
13
  setup (props) {
143
14
  const { cSize, classes } = useSpinner(props)
144
- const svg = createSvg()
145
-
146
15
  return () => h('svg', {
147
16
  class: classes.value,
148
17
  fill: 'currentColor',
149
18
  width: cSize.value,
150
19
  height: cSize.value,
151
20
  viewBox: '0 0 105 105',
152
- xmlns: 'http://www.w3.org/2000/svg'
153
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
154
24
  }
155
25
  })