quasar 2.3.4 → 2.4.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 (204) hide show
  1. package/dist/api/Loading.json +2 -6
  2. package/dist/api/QBreadcrumbsEl.json +31 -10
  3. package/dist/api/QBtn.json +30 -14
  4. package/dist/api/QBtnDropdown.json +30 -14
  5. package/dist/api/QBtnToggle.json +3 -0
  6. package/dist/api/QChatMessage.json +4 -12
  7. package/dist/api/QExpansionItem.json +31 -10
  8. package/dist/api/QFab.json +30 -0
  9. package/dist/api/QFabAction.json +8 -0
  10. package/dist/api/QField.json +1 -0
  11. package/dist/api/QFile.json +1 -0
  12. package/dist/api/QInput.json +1 -0
  13. package/dist/api/QItem.json +31 -10
  14. package/dist/api/QOptionGroup.json +74 -4
  15. package/dist/api/QRange.json +592 -107
  16. package/dist/api/QRouteTab.json +31 -11
  17. package/dist/api/QSelect.json +3 -6
  18. package/dist/api/QSlider.json +504 -39
  19. package/dist/api/QUploader.json +16 -2
  20. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  22. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  23. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  24. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  25. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  26. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  27. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  28. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  29. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  30. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  31. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  32. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  33. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  48. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  49. package/dist/icon-set/themify.umd.prod.js +1 -1
  50. package/dist/lang/ar.umd.prod.js +1 -1
  51. package/dist/lang/az-Latn.umd.prod.js +1 -1
  52. package/dist/lang/bg.umd.prod.js +1 -1
  53. package/dist/lang/bn.umd.prod.js +1 -1
  54. package/dist/lang/ca.umd.prod.js +1 -1
  55. package/dist/lang/cs.umd.prod.js +1 -1
  56. package/dist/lang/da.umd.prod.js +1 -1
  57. package/dist/lang/de.umd.prod.js +1 -1
  58. package/dist/lang/el.umd.prod.js +1 -1
  59. package/dist/lang/en-GB.umd.prod.js +1 -1
  60. package/dist/lang/en-US.umd.prod.js +1 -1
  61. package/dist/lang/eo.umd.prod.js +1 -1
  62. package/dist/lang/es.umd.prod.js +1 -1
  63. package/dist/lang/et.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/hr.umd.prod.js +1 -1
  71. package/dist/lang/hu.umd.prod.js +1 -1
  72. package/dist/lang/id.umd.prod.js +1 -1
  73. package/dist/lang/is.umd.prod.js +1 -1
  74. package/dist/lang/it.umd.prod.js +1 -1
  75. package/dist/lang/ja.umd.prod.js +1 -1
  76. package/dist/lang/km.umd.prod.js +1 -1
  77. package/dist/lang/ko-KR.umd.prod.js +1 -1
  78. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  79. package/dist/lang/lt.umd.prod.js +1 -1
  80. package/dist/lang/lu.umd.prod.js +1 -1
  81. package/dist/lang/lv.umd.prod.js +1 -1
  82. package/dist/lang/ml.umd.prod.js +1 -1
  83. package/dist/lang/ms.umd.prod.js +1 -1
  84. package/dist/lang/nb-NO.umd.prod.js +1 -1
  85. package/dist/lang/nl.umd.prod.js +1 -1
  86. package/dist/lang/pl.umd.prod.js +1 -1
  87. package/dist/lang/pt-BR.umd.prod.js +1 -1
  88. package/dist/lang/pt.umd.prod.js +1 -1
  89. package/dist/lang/ro.umd.prod.js +1 -1
  90. package/dist/lang/ru.umd.prod.js +1 -1
  91. package/dist/lang/sk.umd.prod.js +1 -1
  92. package/dist/lang/sl.umd.prod.js +1 -1
  93. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  94. package/dist/lang/sr.umd.prod.js +1 -1
  95. package/dist/lang/sv.umd.prod.js +1 -1
  96. package/dist/lang/ta.umd.prod.js +1 -1
  97. package/dist/lang/th.umd.prod.js +1 -1
  98. package/dist/lang/tr.umd.prod.js +1 -1
  99. package/dist/lang/ug.umd.prod.js +1 -1
  100. package/dist/lang/uk.umd.prod.js +1 -1
  101. package/dist/lang/vi.umd.prod.js +1 -1
  102. package/dist/lang/zh-CN.umd.prod.js +1 -1
  103. package/dist/lang/zh-TW.umd.prod.js +1 -1
  104. package/dist/quasar.cjs.prod.js +2 -2
  105. package/dist/quasar.css +264 -183
  106. package/dist/quasar.esm.prod.js +2 -2
  107. package/dist/quasar.prod.css +1 -1
  108. package/dist/quasar.rtl.css +331 -262
  109. package/dist/quasar.rtl.prod.css +1 -1
  110. package/dist/quasar.sass +235 -178
  111. package/dist/quasar.umd.js +16537 -16226
  112. package/dist/quasar.umd.prod.js +2 -2
  113. package/dist/ssr-directives/Morph.js +1 -1
  114. package/dist/transforms/loader-asset-urls.json +20 -0
  115. package/dist/types/api/slider.d.ts +46 -0
  116. package/dist/types/api/validation.d.ts +4 -0
  117. package/dist/types/api.d.ts +2 -0
  118. package/dist/types/composables.d.ts +3 -3
  119. package/dist/types/index.d.ts +594 -120
  120. package/dist/vetur/quasar-attributes.json +250 -82
  121. package/dist/vetur/quasar-tags.json +59 -17
  122. package/dist/web-types/web-types.json +578 -149
  123. package/package.json +1 -1
  124. package/src/api.extends.json +0 -1
  125. package/src/components/breadcrumbs/QBreadcrumbs.js +7 -2
  126. package/src/components/breadcrumbs/QBreadcrumbs.sass +0 -3
  127. package/src/components/breadcrumbs/QBreadcrumbsEl.js +14 -8
  128. package/src/components/btn/QBtn.js +5 -5
  129. package/src/components/btn/use-btn.js +21 -21
  130. package/src/components/btn/use-btn.json +22 -13
  131. package/src/components/btn-toggle/QBtnToggle.json +3 -0
  132. package/src/components/checkbox/use-checkbox.js +1 -1
  133. package/src/components/color/QColor.js +32 -26
  134. package/src/components/color/QColor.sass +10 -23
  135. package/src/components/date/QDate.sass +2 -0
  136. package/src/components/drawer/QDrawer.js +18 -15
  137. package/src/components/editor/QEditor.js +1 -1
  138. package/src/components/editor/QEditor.sass +10 -1
  139. package/src/components/expansion-item/QExpansionItem.js +4 -1
  140. package/src/components/fab/QFab.js +18 -12
  141. package/src/components/fab/QFab.json +33 -0
  142. package/src/components/fab/QFab.sass +1 -1
  143. package/src/components/fab/QFabAction.js +14 -7
  144. package/src/components/fab/QFabAction.json +10 -0
  145. package/src/components/file/QFile.js +12 -5
  146. package/src/components/file/QFile.sass +4 -2
  147. package/src/components/footer/QFooter.js +1 -1
  148. package/src/components/header/QHeader.js +1 -1
  149. package/src/components/icon/QIcon.js +1 -1
  150. package/src/components/infinite-scroll/QInfiniteScroll.js +4 -5
  151. package/src/components/item/QItem.js +2 -3
  152. package/src/components/option-group/QOptionGroup.js +3 -0
  153. package/src/components/option-group/QOptionGroup.json +48 -2
  154. package/src/components/parallax/QParallax.js +4 -2
  155. package/src/components/popup-edit/QPopupEdit.js +2 -5
  156. package/src/components/radio/QRadio.js +2 -7
  157. package/src/components/range/QRange.js +103 -222
  158. package/src/components/range/QRange.json +11 -121
  159. package/src/components/scroll-area/QScrollArea.js +3 -1
  160. package/src/components/slider/QSlider.js +46 -132
  161. package/src/components/slider/QSlider.json +1 -121
  162. package/src/components/slider/QSlider.sass +198 -132
  163. package/src/components/slider/use-slider.js +453 -109
  164. package/src/components/slider/use-slider.json +546 -0
  165. package/src/components/stepper/QStepper.js +3 -3
  166. package/src/components/stepper/QStepper.sass +24 -26
  167. package/src/components/table/QTable.js +26 -46
  168. package/src/components/tabs/QRouteTab.js +1 -2
  169. package/src/components/tabs/QRouteTab.json +0 -7
  170. package/src/components/tabs/QTabs.js +71 -20
  171. package/src/components/tabs/use-tab.js +26 -13
  172. package/src/components/tree/QTree.js +14 -12
  173. package/src/components/uploader/QUploader.json +14 -2
  174. package/src/components/uploader/uploader-core.js +16 -9
  175. package/src/components/virtual-scroll/QVirtualScroll.sass +1 -0
  176. package/src/components/virtual-scroll/use-virtual-scroll.js +30 -17
  177. package/src/composables/private/use-field.js +5 -5
  178. package/src/composables/private/use-file.js +20 -5
  179. package/src/composables/private/use-form.js +2 -3
  180. package/src/composables/private/use-fullscreen.js +15 -4
  181. package/src/composables/private/use-router-link.js +44 -23
  182. package/src/composables/private/use-router-link.json +26 -10
  183. package/src/composables/private/use-split-attrs.js +4 -4
  184. package/src/composables/private/use-validate.js +21 -15
  185. package/src/composables/private/use-validate.json +1 -0
  186. package/src/css/core/helpers.sass +3 -0
  187. package/src/css/core/positioning.sass +5 -0
  188. package/src/directives/ScrollFire.js +1 -0
  189. package/src/icon-set.js +2 -4
  190. package/src/plugins/AppFullscreen.js +70 -53
  191. package/src/plugins/AppVisibility.js +2 -3
  192. package/src/plugins/BottomSheet.js +3 -5
  193. package/src/plugins/Dialog.js +3 -5
  194. package/src/plugins/LoadingBar.js +17 -18
  195. package/src/plugins/Notify.js +296 -295
  196. package/src/plugins/Platform.js +14 -14
  197. package/src/utils/date.js +4 -4
  198. package/src/utils/dom.js +2 -2
  199. package/src/utils/open-url.js +2 -2
  200. package/src/utils/patterns.js +1 -0
  201. package/src/utils/private/define-reactive-plugin.js +10 -8
  202. package/src/utils/private/global-dialog.js +6 -8
  203. package/src/utils/private/inject-obj-prop.js +13 -0
  204. package/src/utils/private/is.js +2 -2
@@ -1,26 +1,22 @@
1
1
  import { h, ref, computed, watch, getCurrentInstance } from 'vue'
2
2
 
3
- import { useFormInject, useFormProps, useFormAttrs } from '../../composables/private/use-form.js'
3
+ import { useFormAttrs } from '../../composables/private/use-form.js'
4
4
 
5
5
  import useSlider, {
6
6
  useSliderProps,
7
7
  useSliderEmits,
8
- getRatio,
9
- getModel,
10
8
  keyCodes
11
9
  } from './use-slider.js'
12
10
 
13
11
  import { createComponent } from '../../utils/private/create.js'
14
12
  import { between } from '../../utils/format.js'
15
13
  import { stopAndPrevent } from '../../utils/event.js'
16
- import { hDir } from '../../utils/private/render.js'
17
14
 
18
15
  export default createComponent({
19
16
  name: 'QSlider',
20
17
 
21
18
  props: {
22
19
  ...useSliderProps,
23
- ...useFormProps,
24
20
 
25
21
  modelValue: {
26
22
  required: true,
@@ -36,47 +32,42 @@ export default createComponent({
36
32
  setup (props, { emit }) {
37
33
  const { proxy: { $q } } = getCurrentInstance()
38
34
 
39
- const formAttrs = useFormAttrs(props)
40
- const injectFormInput = useFormInject(formAttrs)
35
+ const { state, methods } = useSlider({
36
+ updateValue, updatePosition, getDragging,
37
+ formAttrs: useFormAttrs(props)
38
+ })
41
39
 
42
40
  const rootRef = ref(null)
43
- const model = ref(props.modelValue === null ? props.min : props.modelValue)
44
41
  const curRatio = ref(0)
45
42
 
46
- const { state, methods } = useSlider({
47
- updateValue, updatePosition, getDragging
48
- })
43
+ const model = ref(props.modelValue === null ? state.innerMin.value : props.modelValue)
49
44
 
50
- const modelRatio = computed(() => (
51
- state.minMaxDiff.value === 0 ? 0 : (model.value - props.min) / state.minMaxDiff.value
52
- ))
45
+ const modelRatio = computed(() => methods.convertModelToRatio(model.value))
53
46
  const ratio = computed(() => (state.active.value === true ? curRatio.value : modelRatio.value))
54
47
 
55
- const trackStyle = computed(() => ({
56
- [ state.positionProp.value ]: 0,
57
- [ state.sizeProp.value ]: `${ 100 * ratio.value }%`
58
- }))
59
-
60
- const thumbStyle = computed(() => ({
61
- [ state.positionProp.value ]: `${ 100 * ratio.value }%`
62
- }))
63
-
64
- const thumbClass = computed(() => (
65
- state.preventFocus.value === false && state.focus.value === true
66
- ? ' q-slider--focus'
67
- : ''
68
- ))
69
-
70
- const pinClass = computed(() => (
71
- props.labelColor !== void 0
72
- ? `text-${ props.labelColor }`
73
- : ''
74
- ))
48
+ const selectionBarStyle = computed(() => {
49
+ const acc = {
50
+ [ state.positionProp.value ]: `${ 100 * state.innerMinRatio.value }%`,
51
+ [ state.sizeProp.value ]: `${ 100 * (ratio.value - state.innerMinRatio.value) }%`
52
+ }
53
+ if (props.selectionImg !== void 0) {
54
+ acc.backgroundImage = `url(${ props.selectionImg }) !important`
55
+ }
56
+ return acc
57
+ })
75
58
 
76
- const pinTextClass = computed(() =>
77
- 'q-slider__pin-value-marker-text'
78
- + (props.labelTextColor !== void 0 ? ` text-${ props.labelTextColor }` : '')
79
- )
59
+ const getThumb = methods.getThumbRenderFn({
60
+ focusValue: true,
61
+ ratio,
62
+ label: computed(() => (
63
+ props.labelValue !== void 0
64
+ ? props.labelValue
65
+ : model.value
66
+ )),
67
+ thumbColor: computed(() => props.thumbColor || props.color),
68
+ labelColor: computed(() => props.labelColor),
69
+ labelTextColor: computed(() => props.labelTextColor)
70
+ })
80
71
 
81
72
  const events = computed(() => {
82
73
  if (state.editable.value !== true) {
@@ -94,25 +85,10 @@ export default createComponent({
94
85
  }
95
86
  })
96
87
 
97
- const label = computed(() => (
98
- props.labelValue !== void 0
99
- ? props.labelValue
100
- : model.value
101
- ))
102
-
103
- const pinStyle = computed(() => {
104
- const percent = (props.reverse === true ? -ratio.value : ratio.value - 1)
105
- return methods.getPinStyle(percent, ratio.value)
106
- })
107
-
108
- watch(() => props.modelValue, v => {
109
- model.value = v === null
110
- ? 0
111
- : between(v, props.min, props.max)
112
- })
113
-
114
- watch(() => props.min + props.max, () => {
115
- model.value = between(model.value, props.min, props.max)
88
+ watch(() => props.modelValue + state.innerMin.value + state.innerMax.value, () => {
89
+ model.value = props.modelValue === null
90
+ ? state.innerMin.value
91
+ : between(props.modelValue, state.innerMin.value, state.innerMax.value)
116
92
  })
117
93
 
118
94
  function updateValue (change) {
@@ -127,19 +103,13 @@ export default createComponent({
127
103
  }
128
104
 
129
105
  function updatePosition (event, dragging = state.dragging.value) {
130
- const ratio = getRatio(
131
- event,
132
- dragging,
133
- state.isReversed.value,
134
- props.vertical
135
- )
106
+ const ratio = methods.getDraggingRatio(event, dragging)
107
+
108
+ model.value = methods.convertRatioToModel(ratio)
136
109
 
137
- model.value = getModel(ratio, props.min, props.max, props.step, state.decimals.value)
138
110
  curRatio.value = props.snap !== true || props.step === 0
139
111
  ? ratio
140
- : (
141
- state.minMaxDiff.value === 0 ? 0 : (model.value - props.min) / state.minMaxDiff.value
142
- )
112
+ : methods.convertModelToRatio(model.value)
143
113
  }
144
114
 
145
115
  function onFocus () {
@@ -159,82 +129,26 @@ export default createComponent({
159
129
 
160
130
  model.value = between(
161
131
  parseFloat((model.value + offset).toFixed(state.decimals.value)),
162
- props.min,
163
- props.max
132
+ state.innerMin.value,
133
+ state.innerMax.value
164
134
  )
165
135
 
166
136
  updateValue()
167
137
  }
168
138
 
169
139
  return () => {
170
- const child = [
171
- methods.getThumbSvg(),
172
- h('div', { class: 'q-slider__focus-ring' })
173
- ]
174
-
175
- if (props.label === true || props.labelAlways === true) {
176
- child.push(
177
- h('div', {
178
- class: `q-slider__pin q-slider__pin${ state.axis.value } absolute ` + pinClass.value,
179
- style: pinStyle.value.pin
180
- }, [
181
- h('div', {
182
- class: `q-slider__pin-text-container q-slider__pin-text-container${ state.axis.value }`,
183
- style: pinStyle.value.pinTextContainer
184
- }, [
185
- h('span', {
186
- class: 'q-slider__pin-text ' + pinTextClass.value
187
- }, [
188
- label.value
189
- ])
190
- ])
191
- ]),
192
-
193
- h('div', {
194
- class: `q-slider__arrow q-slider__arrow${ state.axis.value } ${ pinClass.value }`
195
- })
196
- )
197
- }
198
-
199
- if (props.name !== void 0 && props.disable !== true) {
200
- injectFormInput(child, 'push')
201
- }
202
-
203
- const track = [
204
- h('div', {
205
- class: `q-slider__track q-slider__track${ state.axis.value } absolute`,
206
- style: trackStyle.value
207
- })
208
- ]
209
-
210
- props.markers !== false && track.push(
211
- h('div', {
212
- class: `q-slider__track-markers q-slider__track-markers${ state.axis.value } absolute-full fit`,
213
- style: state.markerStyle.value
214
- })
140
+ const content = methods.getContent(
141
+ selectionBarStyle,
142
+ events,
143
+ node => { node.push(getThumb()) }
215
144
  )
216
145
 
217
- const content = [
218
- h('div', {
219
- class: `q-slider__track-container q-slider__track-container${ state.axis.value } absolute`
220
- }, track),
221
-
222
- h('div', {
223
- class: `q-slider__thumb-container q-slider__thumb-container${ state.axis.value } absolute non-selectable` + thumbClass.value,
224
- style: thumbStyle.value
225
- }, child)
226
- ]
227
-
228
- const data = {
146
+ return h('div', {
229
147
  ref: rootRef,
230
148
  class: state.classes.value + (props.modelValue === null ? ' q-slider--no-value' : ''),
231
149
  ...state.attributes.value,
232
- 'aria-valuenow': props.modelValue,
233
- tabindex: state.tabindex.value,
234
- ...events.value
235
- }
236
-
237
- return hDir('div', data, content, 'slide', state.editable.value, () => state.panDirective.value)
150
+ 'aria-valuenow': props.modelValue
151
+ }, content)
238
152
  }
239
153
  }
240
154
  })
@@ -1,5 +1,5 @@
1
1
  {
2
- "mixins": [ "composables/private/use-form" ],
2
+ "mixins": [ "components/slider/use-slider" ],
3
3
 
4
4
  "meta": {
5
5
  "docsUrl": "https://v2.quasar.dev/vue-components/slider"
@@ -13,60 +13,6 @@
13
13
  "examples": [ "v-model=\"positionModel\"" ]
14
14
  },
15
15
 
16
- "min": {
17
- "type": "Number",
18
- "desc": "Minimum value of the model",
19
- "default": 0,
20
- "examples": [ ":min=\"0\"" ],
21
- "category": "model"
22
- },
23
-
24
- "max": {
25
- "type": "Number",
26
- "desc": "Maximum value of the model",
27
- "default": 100,
28
- "examples": [ ":max=\"100\"" ],
29
- "category": "model"
30
- },
31
-
32
- "step": {
33
- "type": "Number",
34
- "desc": "Specify step amount between valid values (> 0.0); When step equals to 0 it defines infinite granularity",
35
- "default": 1,
36
- "examples": [ ":step=\"1\"" ],
37
- "category": "model"
38
- },
39
-
40
- "reverse": {
41
- "type": "Boolean",
42
- "desc": "Work in reverse (changes direction)",
43
- "category": "behavior"
44
- },
45
-
46
- "vertical": {
47
- "type": "Boolean",
48
- "desc": "Display in vertical direction",
49
- "category": "behavior"
50
- },
51
-
52
- "color": {
53
- "extends": "color"
54
- },
55
-
56
- "label": {
57
- "type": "Boolean",
58
- "desc": "Popup a label when user clicks/taps on the slider thumb and moves it",
59
- "category": "content"
60
- },
61
-
62
- "label-color": {
63
- "extends": "color"
64
- },
65
-
66
- "label-text-color": {
67
- "extends": "color"
68
- },
69
-
70
16
  "label-value": {
71
17
  "type": [ "String", "Number" ],
72
18
  "desc": "Override default label value",
@@ -74,56 +20,6 @@
74
20
  ":label-value=\"model + 'px'\""
75
21
  ],
76
22
  "category": "content"
77
- },
78
-
79
- "label-always": {
80
- "type": "Boolean",
81
- "desc": "Always display the label",
82
- "category": "behavior|content"
83
- },
84
-
85
- "markers": {
86
- "type": [ "Boolean", "Number" ],
87
- "desc": "Display markers on the track, one for each possible value for the model or using a custom step (when specifying a Number)",
88
- "category": "content",
89
- "examples": [
90
- "markers",
91
- ":markers=\"5\""
92
- ]
93
- },
94
-
95
- "snap": {
96
- "type": "Boolean",
97
- "desc": "Snap on valid values, rather than sliding freely; Suggestion: use with 'step' prop",
98
- "category": "behavior"
99
- },
100
-
101
- "thumb-path": {
102
- "type": "String",
103
- "desc": "Set custom thumb svg path",
104
- "default": "M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0",
105
- "examples": [ "M5 5 h10 v10 h-10 v-10" ],
106
- "category": "style"
107
- },
108
-
109
- "dark": {
110
- "extends": "dark"
111
- },
112
-
113
- "dense": {
114
- "extends": "dense"
115
- },
116
-
117
- "disable": {
118
- "extends": "disable"
119
- },
120
-
121
- "readonly": {
122
- "extends": "readonly"
123
- },
124
-
125
- "tabindex": {
126
- "extends": "tabindex"
127
23
  }
128
24
  },
129
25
 
@@ -135,22 +31,6 @@
135
31
  "type": [ "Number", "null" ]
136
32
  }
137
33
  }
138
- },
139
-
140
- "change": {
141
- "extends": "update:model-value",
142
- "desc": "Emitted on lazy model value change (after user slides then releases the thumb)"
143
- },
144
-
145
- "pan": {
146
- "desc": "Triggered when user starts panning on the component",
147
- "params": {
148
- "phase": {
149
- "type": "String",
150
- "desc": "Phase of panning",
151
- "values": [ "start", "end" ]
152
- }
153
- }
154
34
  }
155
35
  }
156
36
  }