quasar 2.16.11 → 2.17.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 (184) 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 +758 -2145
  115. package/dist/quasar.css +6 -5
  116. package/dist/quasar.prod.css +1 -1
  117. package/dist/quasar.rtl.css +6 -5
  118. package/dist/quasar.rtl.prod.css +1 -1
  119. package/dist/quasar.sass +67 -63
  120. package/dist/quasar.server.prod.cjs +49 -49
  121. package/dist/quasar.server.prod.js +47 -47
  122. package/dist/quasar.umd.js +348 -1738
  123. package/dist/quasar.umd.prod.js +48 -48
  124. package/dist/types/api/slider.d.ts +2 -1
  125. package/dist/types/extras/icon-set.d.ts +11 -6
  126. package/dist/types/index.d.ts +272 -203
  127. package/dist/types/plugin.d.ts +7 -7
  128. package/dist/vetur/quasar-attributes.json +1 -1
  129. package/dist/vetur/quasar-tags.json +1 -1
  130. package/dist/web-types/web-types.json +1 -1
  131. package/package.json +9 -9
  132. package/src/components/menu/QMenu.sass +2 -2
  133. package/src/components/option-group/QOptionGroup.js +38 -15
  134. package/src/components/option-group/QOptionGroup.json +88 -1
  135. package/src/components/scroll-area/QScrollArea.js +115 -107
  136. package/src/components/scroll-area/QScrollArea.json +40 -0
  137. package/src/components/scroll-area/ScrollAreaControls.js +54 -0
  138. package/src/components/select/QSelect.js +16 -18
  139. package/src/components/select/QSelect.json +7 -0
  140. package/src/components/spinner/QSpinnerAudio.js +4 -70
  141. package/src/components/spinner/QSpinnerBall.js +4 -86
  142. package/src/components/spinner/QSpinnerBars.js +4 -125
  143. package/src/components/spinner/QSpinnerBox.js +4 -43
  144. package/src/components/spinner/QSpinnerClock.js +4 -54
  145. package/src/components/spinner/QSpinnerComment.js +4 -66
  146. package/src/components/spinner/QSpinnerCube.js +4 -114
  147. package/src/components/spinner/QSpinnerDots.js +4 -86
  148. package/src/components/spinner/QSpinnerFacebook.js +4 -85
  149. package/src/components/spinner/QSpinnerGears.js +4 -41
  150. package/src/components/spinner/QSpinnerGrid.js +4 -134
  151. package/src/components/spinner/QSpinnerHearts.js +4 -36
  152. package/src/components/spinner/QSpinnerHourglass.js +4 -94
  153. package/src/components/spinner/QSpinnerInfinity.js +4 -25
  154. package/src/components/spinner/QSpinnerIos.js +4 -156
  155. package/src/components/spinner/QSpinnerOrbit.js +4 -33
  156. package/src/components/spinner/QSpinnerOval.js +4 -32
  157. package/src/components/spinner/QSpinnerPie.js +4 -63
  158. package/src/components/spinner/QSpinnerPuff.js +4 -65
  159. package/src/components/spinner/QSpinnerRadio.js +4 -58
  160. package/src/components/spinner/QSpinnerRings.js +4 -88
  161. package/src/components/spinner/QSpinnerTail.js +4 -66
  162. package/src/components/tabs/QRouteTab.js +4 -3
  163. package/src/components/tabs/QTabs.js +28 -15
  164. package/src/components/time/QTime.sass +5 -5
  165. package/src/components/tooltip/QTooltip.sass +2 -0
  166. package/src/components/uploader/QUploader.json +9 -0
  167. package/src/components/uploader/QUploader.sass +0 -1
  168. package/src/components/uploader/uploader-core.js +6 -2
  169. package/src/composables/private.use-key-composition/use-key-composition.js +19 -2
  170. package/src/composables/private.use-panel/use-panel.js +5 -3
  171. package/src/css/core/elevation.sass +6 -4
  172. package/src/css/core/flex.sass +5 -6
  173. package/src/css/core/size.sass +20 -18
  174. package/src/css/core/typography.sass +11 -9
  175. package/src/css/core/visibility.sass +2 -2
  176. package/src/css/flex-addon.sass +22 -20
  177. package/src/css/helpers/math.sass +1 -1
  178. package/src/css/helpers/string.sass +7 -4
  179. package/src/css/variables.sass +14 -9
  180. package/src/plugins/platform/Platform.js +40 -5
  181. package/src/plugins/platform/Platform.json +52 -69
  182. package/src/plugins/platform/Platform.test.js +22 -14
  183. package/src/utils/private.config/nodes.js +1 -3
  184. package/src/utils/private.position-engine/position-engine.js +11 -4
@@ -1,40 +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('path', {
9
- d: 'M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.716-6.002 11.47-7.65 17.304-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z',
10
- 'fill-opacity': '.5'
11
- }, [
12
- h('animate', {
13
- attributeName: 'fill-opacity',
14
- begin: '0s',
15
- dur: '1.4s',
16
- values: '0.5;1;0.5',
17
- calcMode: 'linear',
18
- repeatCount: 'indefinite'
19
- })
20
- ]),
21
- h('path', {
22
- d: 'M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.593-2.32 17.308 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z',
23
- 'fill-opacity': '.5'
24
- }, [
25
- h('animate', {
26
- attributeName: 'fill-opacity',
27
- begin: '0.7s',
28
- dur: '1.4s',
29
- values: '0.5;1;0.5',
30
- calcMode: 'linear',
31
- repeatCount: 'indefinite'
32
- })
33
- ]),
34
- h('path', {
35
- d: 'M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z'
36
- })
37
- ]
6
+ const innerHTML = '<path d="M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.716-6.002 11.47-7.65 17.304-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z" fill-opacity=".5"><animate attributeName="fill-opacity" begin="0s" dur="1.4s" values="0.5;1;0.5" calcMode="linear" repeatCount="indefinite"></animate></path><path d="M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.593-2.32 17.308 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z" fill-opacity=".5"><animate attributeName="fill-opacity" begin="0.7s" dur="1.4s" values="0.5;1;0.5" calcMode="linear" repeatCount="indefinite"></animate></path><path d="M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z"></path>'
38
7
 
39
8
  export default createComponent({
40
9
  name: 'QSpinnerHearts',
@@ -43,15 +12,14 @@ export default createComponent({
43
12
 
44
13
  setup (props) {
45
14
  const { cSize, classes } = useSpinner(props)
46
- const svg = createSvg()
47
-
48
15
  return () => h('svg', {
49
16
  class: classes.value,
50
17
  fill: 'currentColor',
51
18
  width: cSize.value,
52
19
  height: cSize.value,
53
20
  viewBox: '0 0 140 64',
54
- xmlns: 'http://www.w3.org/2000/svg'
55
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
56
24
  }
57
25
  })
@@ -1,98 +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
- h('path', {
10
- fill: 'none',
11
- stroke: 'currentColor',
12
- 'stroke-width': '5',
13
- 'stroke-miterlimit': '10',
14
- d: 'M58.4,51.7c-0.9-0.9-1.4-2-1.4-2.3s0.5-0.4,1.4-1.4 C70.8,43.8,79.8,30.5,80,15.5H70H30H20c0.2,15,9.2,28.1,21.6,32.3c0.9,0.9,1.4,1.2,1.4,1.5s-0.5,1.6-1.4,2.5 C29.2,56.1,20.2,69.5,20,85.5h10h40h10C79.8,69.5,70.8,55.9,58.4,51.7z'
15
- }),
16
- h('clipPath', {
17
- id: 'uil-hourglass-clip1'
18
- }, [
19
- h('rect', {
20
- x: '15',
21
- y: '20',
22
- width: '70',
23
- height: '25'
24
- }, [
25
- h('animate', {
26
- attributeName: 'height',
27
- from: '25',
28
- to: '0',
29
- dur: '1s',
30
- repeatCount: 'indefinite',
31
- values: '25;0;0',
32
- keyTimes: '0;0.5;1'
33
- }),
34
- h('animate', {
35
- attributeName: 'y',
36
- from: '20',
37
- to: '45',
38
- dur: '1s',
39
- repeatCount: 'indefinite',
40
- values: '20;45;45',
41
- keyTimes: '0;0.5;1'
42
- })
43
- ])
44
- ]),
45
- h('clipPath', {
46
- id: 'uil-hourglass-clip2'
47
- }, [
48
- h('rect', {
49
- x: '15',
50
- y: '55',
51
- width: '70',
52
- height: '25'
53
- }, [
54
- h('animate', {
55
- attributeName: 'height',
56
- from: '0',
57
- to: '25',
58
- dur: '1s',
59
- repeatCount: 'indefinite',
60
- values: '0;25;25',
61
- keyTimes: '0;0.5;1'
62
- }),
63
- h('animate', {
64
- attributeName: 'y',
65
- from: '80',
66
- to: '55',
67
- dur: '1s',
68
- repeatCount: 'indefinite',
69
- values: '80;55;55',
70
- keyTimes: '0;0.5;1'
71
- })
72
- ])
73
- ]),
74
- h('path', {
75
- d: 'M29,23c3.1,11.4,11.3,19.5,21,19.5S67.9,34.4,71,23H29z',
76
- 'clip-path': 'url(#uil-hourglass-clip1)',
77
- fill: 'currentColor'
78
- }),
79
- h('path', {
80
- d: 'M71.6,78c-3-11.6-11.5-20-21.5-20s-18.5,8.4-21.5,20H71.6z',
81
- 'clip-path': 'url(#uil-hourglass-clip2)',
82
- fill: 'currentColor'
83
- }),
84
- h('animateTransform', {
85
- attributeName: 'transform',
86
- type: 'rotate',
87
- from: '0 50 50',
88
- to: '180 50 50',
89
- repeatCount: 'indefinite',
90
- dur: '1s',
91
- values: '0 50 50;0 50 50;180 50 50',
92
- keyTimes: '0;0.7;1'
93
- })
94
- ])
95
- ]
6
+ const innerHTML = '<g><path fill="none" stroke="currentColor" stroke-width="5" stroke-miterlimit="10" d="M58.4,51.7c-0.9-0.9-1.4-2-1.4-2.3s0.5-0.4,1.4-1.4 C70.8,43.8,79.8,30.5,80,15.5H70H30H20c0.2,15,9.2,28.1,21.6,32.3c0.9,0.9,1.4,1.2,1.4,1.5s-0.5,1.6-1.4,2.5 C29.2,56.1,20.2,69.5,20,85.5h10h40h10C79.8,69.5,70.8,55.9,58.4,51.7z"></path><clipPath id="uil-hourglass-clip1"><rect x="15" y="20" width="70" height="25"><animate attributeName="height" from="25" to="0" dur="1s" repeatCount="indefinite" values="25;0;0" keyTimes="0;0.5;1"></animate><animate attributeName="y" from="20" to="45" dur="1s" repeatCount="indefinite" values="20;45;45" keyTimes="0;0.5;1"></animate></rect></clipPath><clipPath id="uil-hourglass-clip2"><rect x="15" y="55" width="70" height="25"><animate attributeName="height" from="0" to="25" dur="1s" repeatCount="indefinite" values="0;25;25" keyTimes="0;0.5;1"></animate><animate attributeName="y" from="80" to="55" dur="1s" repeatCount="indefinite" values="80;55;55" keyTimes="0;0.5;1"></animate></rect></clipPath><path d="M29,23c3.1,11.4,11.3,19.5,21,19.5S67.9,34.4,71,23H29z" clip-path="url(#uil-hourglass-clip1)" fill="currentColor"></path><path d="M71.6,78c-3-11.6-11.5-20-21.5-20s-18.5,8.4-21.5,20H71.6z" clip-path="url(#uil-hourglass-clip2)" fill="currentColor"></path><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="180 50 50" repeatCount="indefinite" dur="1s" values="0 50 50;0 50 50;180 50 50" keyTimes="0;0.7;1"></animateTransform></g>'
96
7
 
97
8
  export default createComponent({
98
9
  name: 'QSpinnerHourglass',
@@ -101,15 +12,14 @@ export default createComponent({
101
12
 
102
13
  setup (props) {
103
14
  const { cSize, classes } = useSpinner(props)
104
- const svg = createSvg()
105
-
106
15
  return () => h('svg', {
107
16
  class: classes.value,
108
17
  width: cSize.value,
109
18
  height: cSize.value,
110
19
  viewBox: '0 0 100 100',
111
20
  preserveAspectRatio: 'xMidYMid',
112
- xmlns: 'http://www.w3.org/2000/svg'
113
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
114
24
  }
115
25
  })
@@ -1,29 +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('path', {
9
- d: 'M24.3,30C11.4,30,5,43.3,5,50s6.4,20,19.3,20c19.3,0,32.1-40,51.4-40C88.6,30,95,43.3,95,50s-6.4,20-19.3,20C56.4,70,43.6,30,24.3,30z',
10
- fill: 'none',
11
- stroke: 'currentColor',
12
- 'stroke-width': '8',
13
- 'stroke-dasharray': '10.691205342610678 10.691205342610678',
14
- 'stroke-dashoffset': '0'
15
- }, [
16
- h('animate', {
17
- attributeName: 'stroke-dashoffset',
18
- from: '0',
19
- to: '21.382410685221355',
20
- begin: '0',
21
- dur: '2s',
22
- repeatCount: 'indefinite',
23
- fill: 'freeze'
24
- })
25
- ])
26
- ]
6
+ const innerHTML = '<path d="M24.3,30C11.4,30,5,43.3,5,50s6.4,20,19.3,20c19.3,0,32.1-40,51.4-40C88.6,30,95,43.3,95,50s-6.4,20-19.3,20C56.4,70,43.6,30,24.3,30z" fill="none" stroke="currentColor" stroke-width="8" stroke-dasharray="10.691205342610678 10.691205342610678" stroke-dashoffset="0"><animate attributeName="stroke-dashoffset" from="0" to="21.382410685221355" begin="0" dur="2s" repeatCount="indefinite" fill="freeze"></animate></path>'
27
7
 
28
8
  export default createComponent({
29
9
  name: 'QSpinnerInfinity',
@@ -32,14 +12,13 @@ export default createComponent({
32
12
 
33
13
  setup (props) {
34
14
  const { cSize, classes } = useSpinner(props)
35
- const svg = createSvg()
36
-
37
15
  return () => h('svg', {
38
16
  class: classes.value,
39
17
  width: cSize.value,
40
18
  height: cSize.value,
41
19
  viewBox: '0 0 100 100',
42
- preserveAspectRatio: 'xMidYMid'
43
- }, svg)
20
+ preserveAspectRatio: 'xMidYMid',
21
+ innerHTML
22
+ })
44
23
  }
45
24
  })
@@ -1,160 +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
- 'stroke-width': '4',
10
- 'stroke-linecap': 'round'
11
- }, [
12
- h('line', {
13
- y1: '17',
14
- y2: '29',
15
- transform: 'translate(32,32) rotate(180)'
16
- }, [
17
- h('animate', {
18
- attributeName: 'stroke-opacity',
19
- dur: '750ms',
20
- values: '1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1',
21
- repeatCount: 'indefinite'
22
- })
23
- ]),
24
- h('line', {
25
- y1: '17',
26
- y2: '29',
27
- transform: 'translate(32,32) rotate(210)'
28
- }, [
29
- h('animate', {
30
- attributeName: 'stroke-opacity',
31
- dur: '750ms',
32
- values: '0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0',
33
- repeatCount: 'indefinite'
34
- })
35
- ]),
36
- h('line', {
37
- y1: '17',
38
- y2: '29',
39
- transform: 'translate(32,32) rotate(240)'
40
- }, [
41
- h('animate', {
42
- attributeName: 'stroke-opacity',
43
- dur: '750ms',
44
- values: '.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1',
45
- repeatCount: 'indefinite'
46
- })
47
- ]),
48
- h('line', {
49
- y1: '17',
50
- y2: '29',
51
- transform: 'translate(32,32) rotate(270)'
52
- }, [
53
- h('animate', {
54
- attributeName: 'stroke-opacity',
55
- dur: '750ms',
56
- values: '.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15',
57
- repeatCount: 'indefinite'
58
- })
59
- ]),
60
- h('line', {
61
- y1: '17',
62
- y2: '29',
63
- transform: 'translate(32,32) rotate(300)'
64
- }, [
65
- h('animate', {
66
- attributeName: 'stroke-opacity',
67
- dur: '750ms',
68
- values: '.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25',
69
- repeatCount: 'indefinite'
70
- })
71
- ]),
72
- h('line', {
73
- y1: '17',
74
- y2: '29',
75
- transform: 'translate(32,32) rotate(330)'
76
- }, [
77
- h('animate', {
78
- attributeName: 'stroke-opacity',
79
- dur: '750ms',
80
- values: '.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35',
81
- repeatCount: 'indefinite'
82
- })
83
- ]),
84
- h('line', {
85
- y1: '17',
86
- y2: '29',
87
- transform: 'translate(32,32) rotate(0)'
88
- }, [
89
- h('animate', {
90
- attributeName: 'stroke-opacity',
91
- dur: '750ms',
92
- values: '.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45',
93
- repeatCount: 'indefinite'
94
- })
95
- ]),
96
- h('line', {
97
- y1: '17',
98
- y2: '29',
99
- transform: 'translate(32,32) rotate(30)'
100
- }, [
101
- h('animate', {
102
- attributeName: 'stroke-opacity',
103
- dur: '750ms',
104
- values: '.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55',
105
- repeatCount: 'indefinite'
106
- })
107
- ]),
108
- h('line', {
109
- y1: '17',
110
- y2: '29',
111
- transform: 'translate(32,32) rotate(60)'
112
- }, [
113
- h('animate', {
114
- attributeName: 'stroke-opacity',
115
- dur: '750ms',
116
- values: '.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65',
117
- repeatCount: 'indefinite'
118
- })
119
- ]),
120
- h('line', {
121
- y1: '17',
122
- y2: '29',
123
- transform: 'translate(32,32) rotate(90)'
124
- }, [
125
- h('animate', {
126
- attributeName: 'stroke-opacity',
127
- dur: '750ms',
128
- values: '.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7',
129
- repeatCount: 'indefinite'
130
- })
131
- ]),
132
- h('line', {
133
- y1: '17',
134
- y2: '29',
135
- transform: 'translate(32,32) rotate(120)'
136
- }, [
137
- h('animate', {
138
- attributeName: 'stroke-opacity',
139
- dur: '750ms',
140
- values: '.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85',
141
- repeatCount: 'indefinite'
142
- })
143
- ]),
144
- h('line', {
145
- y1: '17',
146
- y2: '29',
147
- transform: 'translate(32,32) rotate(150)'
148
- }, [
149
- h('animate', {
150
- attributeName: 'stroke-opacity',
151
- dur: '750ms',
152
- values: '1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1',
153
- repeatCount: 'indefinite'
154
- })
155
- ])
156
- ])
157
- ]
6
+ const innerHTML = '<g stroke-width="4" stroke-linecap="round"><line y1="17" y2="29" transform="translate(32,32) rotate(180)"><animate attributeName="stroke-opacity" dur="750ms" values="1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(210)"><animate attributeName="stroke-opacity" dur="750ms" values="0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(240)"><animate attributeName="stroke-opacity" dur="750ms" values=".1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(270)"><animate attributeName="stroke-opacity" dur="750ms" values=".15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(300)"><animate attributeName="stroke-opacity" dur="750ms" values=".25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(330)"><animate attributeName="stroke-opacity" dur="750ms" values=".35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(0)"><animate attributeName="stroke-opacity" dur="750ms" values=".45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(30)"><animate attributeName="stroke-opacity" dur="750ms" values=".55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(60)"><animate attributeName="stroke-opacity" dur="750ms" values=".65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(90)"><animate attributeName="stroke-opacity" dur="750ms" values=".7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(120)"><animate attributeName="stroke-opacity" dur="750ms" values=".85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85" repeatCount="indefinite"></animate></line><line y1="17" y2="29" transform="translate(32,32) rotate(150)"><animate attributeName="stroke-opacity" dur="750ms" values="1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1" repeatCount="indefinite"></animate></line></g>'
158
7
 
159
8
  export default createComponent({
160
9
  name: 'QSpinnerIos',
@@ -163,15 +12,14 @@ export default createComponent({
163
12
 
164
13
  setup (props) {
165
14
  const { cSize, classes } = useSpinner(props)
166
- const svg = createSvg()
167
-
168
15
  return () => h('svg', {
169
16
  class: classes.value,
170
17
  width: cSize.value,
171
18
  height: cSize.value,
172
19
  stroke: 'currentColor',
173
20
  fill: 'currentColor',
174
- viewBox: '0 0 64 64'
175
- }, svg)
21
+ viewBox: '0 0 64 64',
22
+ innerHTML
23
+ })
176
24
  }
177
25
  })
@@ -1,37 +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: '50',
10
- cy: '50',
11
- r: '44',
12
- fill: 'none',
13
- 'stroke-width': '4',
14
- 'stroke-opacity': '.5',
15
- stroke: 'currentColor'
16
- }),
17
- h('circle', {
18
- cx: '8',
19
- cy: '54',
20
- r: '6',
21
- fill: 'currentColor',
22
- 'stroke-width': '3',
23
- stroke: 'currentColor'
24
- }, [
25
- h('animateTransform', {
26
- attributeName: 'transform',
27
- type: 'rotate',
28
- from: '0 50 48',
29
- to: '360 50 52',
30
- dur: '2s',
31
- repeatCount: 'indefinite'
32
- })
33
- ])
34
- ]
6
+ const innerHTML = '<circle cx="50" cy="50" r="44" fill="none" stroke-width="4" stroke-opacity=".5" stroke="currentColor"></circle><circle cx="8" cy="54" r="6" fill="currentColor" stroke-width="3" stroke="currentColor"><animateTransform attributeName="transform" type="rotate" from="0 50 48" to="360 50 52" dur="2s" repeatCount="indefinite"></animateTransform></circle>'
35
7
 
36
8
  export default createComponent({
37
9
  name: 'QSpinnerOrbit',
@@ -40,15 +12,14 @@ export default createComponent({
40
12
 
41
13
  setup (props) {
42
14
  const { cSize, classes } = useSpinner(props)
43
- const svg = createSvg()
44
-
45
15
  return () => h('svg', {
46
16
  class: classes.value,
47
17
  width: cSize.value,
48
18
  height: cSize.value,
49
19
  viewBox: '0 0 100 100',
50
20
  preserveAspectRatio: 'xMidYMid',
51
- xmlns: 'http://www.w3.org/2000/svg'
52
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
53
24
  }
54
25
  })
@@ -1,36 +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(1 1)',
10
- 'stroke-width': '2',
11
- fill: 'none',
12
- 'fill-rule': 'evenodd'
13
- }, [
14
- h('circle', {
15
- 'stroke-opacity': '.5',
16
- cx: '18',
17
- cy: '18',
18
- r: '18'
19
- }),
20
- h('path', {
21
- d: 'M36 18c0-9.94-8.06-18-18-18'
22
- }, [
23
- h('animateTransform', {
24
- attributeName: 'transform',
25
- type: 'rotate',
26
- from: '0 18 18',
27
- to: '360 18 18',
28
- dur: '1s',
29
- repeatCount: 'indefinite'
30
- })
31
- ])
32
- ])
33
- ]
6
+ const innerHTML = '<g transform="translate(1 1)" stroke-width="2" fill="none" fill-rule="evenodd"><circle stroke-opacity=".5" cx="18" cy="18" r="18"></circle><path d="M36 18c0-9.94-8.06-18-18-18"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s" repeatCount="indefinite"></animateTransform></path></g>'
34
7
 
35
8
  export default createComponent({
36
9
  name: 'QSpinnerOval',
@@ -39,15 +12,14 @@ export default createComponent({
39
12
 
40
13
  setup (props) {
41
14
  const { cSize, classes } = useSpinner(props)
42
- const svg = createSvg()
43
-
44
15
  return () => h('svg', {
45
16
  class: classes.value,
46
17
  stroke: 'currentColor',
47
18
  width: cSize.value,
48
19
  height: cSize.value,
49
20
  viewBox: '0 0 38 38',
50
- xmlns: 'http://www.w3.org/2000/svg'
51
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
52
24
  }
53
25
  })
@@ -1,67 +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('path', {
9
- d: 'M0 50A50 50 0 0 1 50 0L50 50L0 50',
10
- fill: 'currentColor',
11
- opacity: '0.5'
12
- }, [
13
- h('animateTransform', {
14
- attributeName: 'transform',
15
- type: 'rotate',
16
- from: '0 50 50',
17
- to: '360 50 50',
18
- dur: '0.8s',
19
- repeatCount: 'indefinite'
20
- })
21
- ]),
22
- h('path', {
23
- d: 'M50 0A50 50 0 0 1 100 50L50 50L50 0',
24
- fill: 'currentColor',
25
- opacity: '0.5'
26
- }, [
27
- h('animateTransform', {
28
- attributeName: 'transform',
29
- type: 'rotate',
30
- from: '0 50 50',
31
- to: '360 50 50',
32
- dur: '1.6s',
33
- repeatCount: 'indefinite'
34
- })
35
- ]),
36
- h('path', {
37
- d: 'M100 50A50 50 0 0 1 50 100L50 50L100 50',
38
- fill: 'currentColor',
39
- opacity: '0.5'
40
- }, [
41
- h('animateTransform', {
42
- attributeName: 'transform',
43
- type: 'rotate',
44
- from: '0 50 50',
45
- to: '360 50 50',
46
- dur: '2.4s',
47
- repeatCount: 'indefinite'
48
- })
49
- ]),
50
- h('path', {
51
- d: 'M50 100A50 50 0 0 1 0 50L50 50L50 100',
52
- fill: 'currentColor',
53
- opacity: '0.5'
54
- }, [
55
- h('animateTransform', {
56
- attributeName: 'transform',
57
- type: 'rotate',
58
- from: '0 50 50',
59
- to: '360 50 50',
60
- dur: '3.2s',
61
- repeatCount: 'indefinite'
62
- })
63
- ])
64
- ]
6
+ const innerHTML = '<path d="M0 50A50 50 0 0 1 50 0L50 50L0 50" fill="currentColor" opacity="0.5"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="0.8s" repeatCount="indefinite"></animateTransform></path><path d="M50 0A50 50 0 0 1 100 50L50 50L50 0" fill="currentColor" opacity="0.5"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="1.6s" repeatCount="indefinite"></animateTransform></path><path d="M100 50A50 50 0 0 1 50 100L50 50L100 50" fill="currentColor" opacity="0.5"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="2.4s" repeatCount="indefinite"></animateTransform></path><path d="M50 100A50 50 0 0 1 0 50L50 50L50 100" fill="currentColor" opacity="0.5"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="3.2s" repeatCount="indefinite"></animateTransform></path>'
65
7
 
66
8
  export default createComponent({
67
9
  name: 'QSpinnerPie',
@@ -70,15 +12,14 @@ export default createComponent({
70
12
 
71
13
  setup (props) {
72
14
  const { cSize, classes } = useSpinner(props)
73
- const svg = createSvg()
74
-
75
15
  return () => h('svg', {
76
16
  class: classes.value,
77
17
  width: cSize.value,
78
18
  height: cSize.value,
79
19
  viewBox: '0 0 100 100',
80
20
  preserveAspectRatio: 'xMidYMid',
81
- xmlns: 'http://www.w3.org/2000/svg'
82
- }, svg)
21
+ xmlns: 'http://www.w3.org/2000/svg',
22
+ innerHTML
23
+ })
83
24
  }
84
25
  })