quasar 2.4.13 → 2.5.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 (163) hide show
  1. package/dist/api/QCheckbox.json +27 -0
  2. package/dist/api/QRadio.json +18 -0
  3. package/dist/api/QTime.json +8 -2
  4. package/dist/api/QToggle.json +24 -24
  5. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  6. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  9. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  10. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  15. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  16. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  17. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  19. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  34. package/dist/icon-set/themify.umd.prod.js +1 -1
  35. package/dist/lang/ar.umd.prod.js +1 -1
  36. package/dist/lang/az-Latn.umd.prod.js +1 -1
  37. package/dist/lang/bg.umd.prod.js +1 -1
  38. package/dist/lang/bn.umd.prod.js +1 -1
  39. package/dist/lang/ca.umd.prod.js +1 -1
  40. package/dist/lang/cs.umd.prod.js +1 -1
  41. package/dist/lang/da.umd.prod.js +1 -1
  42. package/dist/lang/de.umd.prod.js +1 -1
  43. package/dist/lang/el.umd.prod.js +1 -1
  44. package/dist/lang/en-GB.umd.prod.js +1 -1
  45. package/dist/lang/en-US.umd.prod.js +1 -1
  46. package/dist/lang/eo.umd.prod.js +1 -1
  47. package/dist/lang/es.umd.prod.js +1 -1
  48. package/dist/lang/et.umd.prod.js +1 -1
  49. package/dist/lang/fa-IR.umd.prod.js +1 -1
  50. package/dist/lang/fa.umd.prod.js +1 -1
  51. package/dist/lang/fi.umd.prod.js +1 -1
  52. package/dist/lang/fr.umd.prod.js +1 -1
  53. package/dist/lang/gn.umd.prod.js +1 -1
  54. package/dist/lang/he.umd.prod.js +1 -1
  55. package/dist/lang/hr.umd.prod.js +1 -1
  56. package/dist/lang/hu.umd.prod.js +1 -1
  57. package/dist/lang/id.umd.prod.js +1 -1
  58. package/dist/lang/is.umd.prod.js +1 -1
  59. package/dist/lang/it.umd.prod.js +1 -1
  60. package/dist/lang/ja.umd.prod.js +1 -1
  61. package/dist/lang/km.umd.prod.js +1 -1
  62. package/dist/lang/ko-KR.umd.prod.js +1 -1
  63. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  64. package/dist/lang/lt.umd.prod.js +1 -1
  65. package/dist/lang/lu.umd.prod.js +1 -1
  66. package/dist/lang/lv.umd.prod.js +1 -1
  67. package/dist/lang/ml.umd.prod.js +1 -1
  68. package/dist/lang/ms.umd.prod.js +1 -1
  69. package/dist/lang/my.umd.prod.js +1 -1
  70. package/dist/lang/nb-NO.umd.prod.js +1 -1
  71. package/dist/lang/nl.umd.prod.js +1 -1
  72. package/dist/lang/pl.umd.prod.js +1 -1
  73. package/dist/lang/pt-BR.umd.prod.js +1 -1
  74. package/dist/lang/pt.umd.prod.js +1 -1
  75. package/dist/lang/ro.umd.prod.js +1 -1
  76. package/dist/lang/ru.umd.prod.js +1 -1
  77. package/dist/lang/sk.umd.prod.js +1 -1
  78. package/dist/lang/sl.umd.prod.js +1 -1
  79. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  80. package/dist/lang/sr.umd.prod.js +1 -1
  81. package/dist/lang/sv.umd.prod.js +1 -1
  82. package/dist/lang/ta.umd.prod.js +1 -1
  83. package/dist/lang/th.umd.prod.js +1 -1
  84. package/dist/lang/tr.umd.prod.js +1 -1
  85. package/dist/lang/ug.umd.prod.js +1 -1
  86. package/dist/lang/uk.umd.prod.js +1 -1
  87. package/dist/lang/vi.umd.prod.js +1 -1
  88. package/dist/lang/zh-CN.umd.prod.js +1 -1
  89. package/dist/lang/zh-TW.umd.prod.js +1 -1
  90. package/dist/quasar.cjs.prod.js +2 -2
  91. package/dist/quasar.css +34 -10
  92. package/dist/quasar.esm.prod.js +2 -2
  93. package/dist/quasar.prod.css +1 -1
  94. package/dist/quasar.rtl.css +51 -23
  95. package/dist/quasar.rtl.prod.css +1 -1
  96. package/dist/quasar.sass +29 -11
  97. package/dist/quasar.umd.js +119 -49
  98. package/dist/quasar.umd.prod.js +2 -2
  99. package/dist/ssr-directives/Morph.js +1 -1
  100. package/dist/transforms/auto-import.json +39 -3
  101. package/dist/transforms/import-map.json +18 -0
  102. package/dist/types/index.d.ts +35 -13
  103. package/dist/vetur/quasar-attributes.json +32 -12
  104. package/dist/vetur/quasar-tags.json +8 -3
  105. package/dist/web-types/web-types.json +73 -28
  106. package/package.json +13 -3
  107. package/src/components/avatar/__tests__/QAvatar.spec.js +121 -0
  108. package/src/components/badge/__tests__/QBadge.spec.js +74 -0
  109. package/src/components/breadcrumbs/QBreadcrumbs.js +1 -1
  110. package/src/components/btn/__tests__/QBtn.spec.js +55 -0
  111. package/src/components/btn/__tests__/use-btn.spec.js +189 -0
  112. package/src/components/checkbox/QCheckbox.js +34 -3
  113. package/src/components/checkbox/QCheckbox.json +17 -0
  114. package/src/components/checkbox/QCheckbox.sass +17 -5
  115. package/src/components/checkbox/use-checkbox.js +4 -0
  116. package/src/components/checkbox/use-checkbox.json +18 -0
  117. package/src/components/chip/__tests__/QChip.spec.js +155 -0
  118. package/src/components/date/__tests__/QDate.spec.js +189 -0
  119. package/src/components/date/__tests__/use-datetime.spec.js +83 -0
  120. package/src/components/dialog/__tests__/QDialog.spec.js +129 -0
  121. package/src/components/editor/__tests__/QEditor.spec.js +195 -0
  122. package/src/components/input/QInput.js +9 -0
  123. package/src/components/input/__tests__/QInput.spec.js +105 -0
  124. package/src/components/input/__tests__/use-mask.spec.js +29 -0
  125. package/src/components/menu/__tests__/QMenu.spec.js +610 -0
  126. package/src/components/menu/__tests__/WrapperOne.vue +51 -0
  127. package/src/components/menu/__tests__/WrapperTwo.vue +38 -0
  128. package/src/components/radio/QRadio.js +26 -1
  129. package/src/components/radio/QRadio.json +16 -0
  130. package/src/components/radio/QRadio.sass +17 -6
  131. package/src/components/select/QSelect.js +1 -1
  132. package/src/components/select/__tests__/QSelect.spec.js +2003 -0
  133. package/src/components/select/__tests__/WrapperOne.vue +28 -0
  134. package/src/components/table/__tests__/QTable.spec.js +635 -0
  135. package/src/components/table/__tests__/QTd.spec.js +35 -0
  136. package/src/components/table/__tests__/QTh.spec.js +27 -0
  137. package/src/components/table/__tests__/QTr.spec.js +27 -0
  138. package/src/components/tabs/__tests__/QRouteTab.spec.js +9 -0
  139. package/src/components/tabs/__tests__/QTab.spec.js +79 -0
  140. package/src/components/tabs/__tests__/QTabs.spec.js +147 -0
  141. package/src/components/time/QTime.json +2 -2
  142. package/src/components/toggle/QToggle.js +5 -13
  143. package/src/components/toggle/QToggle.json +3 -12
  144. package/src/components/uploader/__tests__/QUploader.spec.js +161 -0
  145. package/src/composables/private/__tests__/FieldWrapper.vue +39 -0
  146. package/src/composables/private/__tests__/use-anchor.spec.js +99 -0
  147. package/src/composables/private/__tests__/use-field.spec.js +351 -0
  148. package/src/composables/private/__tests__/use-file.spec.js +69 -0
  149. package/src/composables/private/__tests__/use-form.spec.js +11 -0
  150. package/src/composables/private/__tests__/use-fullscreen.spec.js +37 -0
  151. package/src/composables/private/__tests__/use-model-toggle.spec.js +306 -0
  152. package/src/composables/private/__tests__/use-portal.spec.js +4 -0
  153. package/src/composables/private/__tests__/use-router-link.spec.js +55 -0
  154. package/src/composables/private/__tests__/use-size.spec.js +37 -0
  155. package/src/composables/private/__tests__/use-transition.spec.js +108 -0
  156. package/src/composables/private/__tests__/use-validate.spec.js +111 -0
  157. package/src/composables/private/use-fullscreen.js +1 -1
  158. package/src/composables/private/use-model-toggle.js +1 -1
  159. package/src/composables/private/use-validate.js +9 -5
  160. package/src/plugins/Meta.js +1 -1
  161. package/src/plugins/Screen.js +11 -8
  162. package/src/utils/date.js +5 -5
  163. package/src/utils/private/vm.js +14 -8
@@ -1,5 +1,7 @@
1
1
  import { h, ref, computed, getCurrentInstance } from 'vue'
2
2
 
3
+ import QIcon from '../icon/QIcon.js'
4
+
3
5
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
6
  import useSize, { useSizeProps } from '../../composables/private/use-size.js'
5
7
  import useRefocusTarget from '../../composables/private/use-refocus-target.js'
@@ -11,6 +13,7 @@ import { stopAndPrevent } from '../../utils/event.js'
11
13
  import { hSlot, hMergeSlot } from '../../utils/private/render.js'
12
14
 
13
15
  const svg = h('svg', {
16
+ key: 'svg',
14
17
  class: 'q-radio__bg absolute non-selectable',
15
18
  viewBox: '0 0 24 24',
16
19
  'aria-hidden': 'true'
@@ -39,6 +42,9 @@ export default createComponent({
39
42
  label: String,
40
43
  leftLabel: Boolean,
41
44
 
45
+ checkedIcon: String,
46
+ uncheckedIcon: String,
47
+
42
48
  color: String,
43
49
  keepColor: Boolean,
44
50
  dense: Boolean,
@@ -80,6 +86,13 @@ export default createComponent({
80
86
  + `q-radio__inner--${ isTrue.value === true ? 'truthy' : 'falsy' }${ color }`
81
87
  })
82
88
 
89
+ const icon = computed(() =>
90
+ (isTrue.value === true
91
+ ? props.checkedIcon
92
+ : props.uncheckedIcon
93
+ ) || null
94
+ )
95
+
83
96
  const tabindex = computed(() => (
84
97
  props.disable === true ? -1 : props.tabindex || 0
85
98
  ))
@@ -125,7 +138,19 @@ export default createComponent({
125
138
  Object.assign(proxy, { set: onClick })
126
139
 
127
140
  return () => {
128
- const content = [ svg ]
141
+ const content = icon.value !== null
142
+ ? [
143
+ h('div', {
144
+ key: 'icon',
145
+ class: 'q-radio__icon-container absolute flex flex-center no-wrap'
146
+ }, [
147
+ h(QIcon, {
148
+ class: 'q-radio__icon',
149
+ name: icon.value
150
+ })
151
+ ])
152
+ ]
153
+ : [ svg ]
129
154
 
130
155
  props.disable !== true && injectFormInput(
131
156
  content,
@@ -33,6 +33,22 @@
33
33
  "category": "label"
34
34
  },
35
35
 
36
+ "checked-icon": {
37
+ "type": "String",
38
+ "desc": "The icon to be used when selected (instead of the default design)",
39
+ "examples": [ "visibility" ],
40
+ "category": "icons",
41
+ "addedIn": "v2.5"
42
+ },
43
+
44
+ "unchecked-icon": {
45
+ "type": "String",
46
+ "desc": "The icon to be used when un-selected (instead of the default design)",
47
+ "examples": [ "visibility_off" ],
48
+ "category": "icons",
49
+ "addedIn": "v2.5"
50
+ },
51
+
36
52
  "color": {
37
53
  "extends": "color"
38
54
  },
@@ -3,19 +3,26 @@ $radio-transition: .22s cubic-bezier(0,0,.2,1) 0ms
3
3
  .q-radio
4
4
  vertical-align: middle
5
5
 
6
- &__bg
6
+ &__native
7
+ width: 1px
8
+ height: 1px
9
+
10
+ &__bg,
11
+ &__icon-container
7
12
  top: 25%
8
13
  left: 25%
9
14
  width: 50%
10
15
  height: 50%
11
- -webkit-print-color-adjust: exact
16
+ user-select: none
12
17
 
18
+ &__bg
19
+ -webkit-print-color-adjust: exact
13
20
  path
14
21
  fill: currentColor
15
22
 
16
- &__native
17
- width: 1px
18
- height: 1px
23
+ &__icon
24
+ color: currentColor
25
+ font-size: .6em
19
26
 
20
27
  &__check
21
28
  transform-origin: 50% 50%
@@ -49,12 +56,16 @@ $radio-transition: .22s cubic-bezier(0,0,.2,1) 0ms
49
56
 
50
57
  &--dense
51
58
 
59
+ .q-checkbox__icon
60
+ font-size: .6em
61
+
52
62
  .q-radio__inner
53
63
  width: .5em
54
64
  min-width: .5em
55
65
  height: .5em
56
66
 
57
- .q-radio__bg
67
+ .q-radio__bg,
68
+ .q-radio__icon-container
58
69
  left: 0
59
70
  top: 0
60
71
  width: 100%
@@ -1389,7 +1389,7 @@ export default createComponent({
1389
1389
  filter, updateMenuPosition, updateInputValue,
1390
1390
  isOptionSelected,
1391
1391
  getEmittingOptionValue,
1392
- isOptionDisabled: (...args) => isOptionDisabled.value.apply(null, args),
1392
+ isOptionDisabled: (...args) => isOptionDisabled.value.apply(null, args) === true,
1393
1393
  getOptionValue: (...args) => getOptionValue.value.apply(null, args),
1394
1394
  getOptionLabel: (...args) => getOptionLabel.value.apply(null, args)
1395
1395
  })