quasar 2.2.3 → 2.3.2

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 (169) hide show
  1. package/dist/api/BottomSheet.json +17 -2
  2. package/dist/api/Dialog.json +17 -2
  3. package/dist/api/LocalStorage.json +8 -0
  4. package/dist/api/QCircularProgress.json +14 -0
  5. package/dist/api/QDate.json +46 -0
  6. package/dist/api/QEditor.json +7 -2
  7. package/dist/api/QFooter.json +1 -1
  8. package/dist/api/QHeader.json +1 -1
  9. package/dist/api/QIntersection.json +14 -0
  10. package/dist/api/QLinearProgress.json +14 -0
  11. package/dist/api/QRouteTab.json +1 -24
  12. package/dist/api/QScrollArea.json +3 -0
  13. package/dist/api/QSelect.json +62 -0
  14. package/dist/api/QSkeleton.json +1 -1
  15. package/dist/api/QTable.json +62 -5
  16. package/dist/api/QTree.json +6 -0
  17. package/dist/api/QUploader.json +81 -1
  18. package/dist/api/SessionStorage.json +8 -0
  19. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  22. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  25. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  26. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  27. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  28. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  30. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +6 -0
  39. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  48. package/dist/icon-set/themify.umd.prod.js +1 -1
  49. package/dist/lang/ar.umd.prod.js +1 -1
  50. package/dist/lang/az-Latn.umd.prod.js +1 -1
  51. package/dist/lang/bg.umd.prod.js +1 -1
  52. package/dist/lang/bn.umd.prod.js +1 -1
  53. package/dist/lang/ca.umd.prod.js +1 -1
  54. package/dist/lang/cs.umd.prod.js +1 -1
  55. package/dist/lang/da.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/fa-IR.umd.prod.js +1 -1
  64. package/dist/lang/fa.umd.prod.js +1 -1
  65. package/dist/lang/fi.umd.prod.js +1 -1
  66. package/dist/lang/fr.umd.prod.js +1 -1
  67. package/dist/lang/gn.umd.prod.js +1 -1
  68. package/dist/lang/he.umd.prod.js +1 -1
  69. package/dist/lang/hr.umd.prod.js +1 -1
  70. package/dist/lang/hu.umd.prod.js +1 -1
  71. package/dist/lang/id.umd.prod.js +1 -1
  72. package/dist/lang/is.umd.prod.js +1 -1
  73. package/dist/lang/it.umd.prod.js +1 -1
  74. package/dist/lang/ja.umd.prod.js +1 -1
  75. package/dist/lang/km.umd.prod.js +1 -1
  76. package/dist/lang/ko-KR.umd.prod.js +1 -1
  77. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  78. package/dist/lang/lt.umd.prod.js +1 -1
  79. package/dist/lang/lu.umd.prod.js +1 -1
  80. package/dist/lang/lv.umd.prod.js +1 -1
  81. package/dist/lang/ml.umd.prod.js +1 -1
  82. package/dist/lang/ms.umd.prod.js +1 -1
  83. package/dist/lang/nb-NO.umd.prod.js +1 -1
  84. package/dist/lang/nl.umd.prod.js +1 -1
  85. package/dist/lang/pl.umd.prod.js +1 -1
  86. package/dist/lang/pt-BR.umd.prod.js +1 -1
  87. package/dist/lang/pt.umd.prod.js +1 -1
  88. package/dist/lang/ro.umd.prod.js +1 -1
  89. package/dist/lang/ru.umd.prod.js +1 -1
  90. package/dist/lang/sk.umd.prod.js +1 -1
  91. package/dist/lang/sl.umd.prod.js +1 -1
  92. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  93. package/dist/lang/sr.umd.prod.js +1 -1
  94. package/dist/lang/sv.umd.prod.js +1 -1
  95. package/dist/lang/ta.umd.prod.js +1 -1
  96. package/dist/lang/th.umd.prod.js +1 -1
  97. package/dist/lang/tr.umd.prod.js +1 -1
  98. package/dist/lang/ug.umd.prod.js +1 -1
  99. package/dist/lang/uk.umd.prod.js +1 -1
  100. package/dist/lang/vi.umd.prod.js +1 -1
  101. package/dist/lang/zh-CN.umd.prod.js +1 -1
  102. package/dist/lang/zh-TW.umd.prod.js +1 -1
  103. package/dist/quasar.cjs.prod.js +2 -2
  104. package/dist/quasar.css +57 -3
  105. package/dist/quasar.esm.prod.js +2 -2
  106. package/dist/quasar.prod.css +1 -1
  107. package/dist/quasar.rtl.css +124 -3
  108. package/dist/quasar.rtl.prod.css +1 -1
  109. package/dist/quasar.sass +47 -5
  110. package/dist/quasar.umd.js +206 -125
  111. package/dist/quasar.umd.prod.js +2 -2
  112. package/dist/ssr-directives/Morph.js +1 -1
  113. package/dist/types/composables.d.ts +5 -1
  114. package/dist/types/extras/icon-set.d.ts +1 -0
  115. package/dist/types/index.d.ts +374 -141
  116. package/dist/vetur/quasar-attributes.json +18 -2
  117. package/dist/vetur/quasar-tags.json +6 -2
  118. package/dist/web-types/web-types.json +44 -3
  119. package/icon-set/svg-ionicons-v6.js +225 -0
  120. package/package.json +5 -2
  121. package/src/api.extends.json +7 -0
  122. package/src/body.js +14 -4
  123. package/src/components/circular-progress/QCircularProgress.js +6 -1
  124. package/src/components/circular-progress/QCircularProgress.json +6 -0
  125. package/src/components/date/QDate.json +34 -0
  126. package/src/components/editor/QEditor.js +2 -2
  127. package/src/components/editor/QEditor.json +6 -2
  128. package/src/components/footer/QFooter.json +1 -1
  129. package/src/components/header/QHeader.json +1 -1
  130. package/src/components/icon/QIcon.js +1 -1
  131. package/src/components/infinite-scroll/QInfiniteScroll.js +48 -31
  132. package/src/components/intersection/QIntersection.js +9 -1
  133. package/src/components/intersection/QIntersection.json +9 -0
  134. package/src/components/linear-progress/QLinearProgress.js +10 -1
  135. package/src/components/linear-progress/QLinearProgress.json +6 -0
  136. package/src/components/linear-progress/QLinearProgress.sass +2 -1
  137. package/src/components/popup-proxy/QPopupProxy.js +6 -15
  138. package/src/components/scroll-area/QScrollArea.js +1 -1
  139. package/src/components/scroll-area/QScrollArea.json +4 -1
  140. package/src/components/select/QSelect.js +15 -21
  141. package/src/components/select/QSelect.json +47 -0
  142. package/src/components/skeleton/QSkeleton.json +1 -4
  143. package/src/components/slider/use-slider.js +3 -3
  144. package/src/components/table/QTable.json +51 -5
  145. package/src/components/table/table-pagination.js +2 -2
  146. package/src/components/tabs/QRouteTab.json +1 -23
  147. package/src/components/tabs/QTabs.js +1 -1
  148. package/src/components/time/QTime.js +6 -5
  149. package/src/components/tree/QTree.js +9 -5
  150. package/src/components/tree/QTree.json +5 -0
  151. package/src/components/tree/QTree.sass +52 -4
  152. package/src/components/uploader/uploader-core.js +2 -7
  153. package/src/components/uploader/xhr-uploader-plugin.json +97 -1
  154. package/src/components/virtual-scroll/use-virtual-scroll.js +17 -1
  155. package/src/composables/private/use-field.js +4 -4
  156. package/src/composables/private/use-file.js +8 -0
  157. package/src/composables/private/use-model-toggle.js +1 -1
  158. package/src/composables/private/use-refocus-target.js +12 -3
  159. package/src/composables/private/use-split-attrs.js +7 -1
  160. package/src/composables/use-dialog-plugin-component.js +7 -1
  161. package/src/css/core/transitions.sass +3 -1
  162. package/src/install-quasar.js +1 -0
  163. package/src/utils/create-uploader-component.js +6 -4
  164. package/src/utils/date.js +1 -1
  165. package/src/utils/private/get-emits-object.js +11 -0
  166. package/src/utils/private/global-dialog.json +10 -2
  167. package/src/utils/private/vm.js +3 -3
  168. package/src/utils/private/web-storage.json +10 -0
  169. package/wrappers/index.js +4 -0
@@ -1027,6 +1027,10 @@
1027
1027
  "type": "boolean",
1028
1028
  "description": "No animation when model changes"
1029
1029
  },
1030
+ "q-circular-progress/animation-speed": {
1031
+ "type": "string|number",
1032
+ "description": "Animation speed (in milliseconds, without unit)"
1033
+ },
1030
1034
  "q-color/name": {
1031
1035
  "type": "string",
1032
1036
  "description": "Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL"
@@ -2132,7 +2136,7 @@
2132
2136
  "description": "Adds a default shadow to the footer"
2133
2137
  },
2134
2138
  "q-footer/height-hint": {
2135
- "type": "number|string ",
2139
+ "type": "number|string",
2136
2140
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter"
2137
2141
  },
2138
2142
  "q-form/autofocus": {
@@ -2172,7 +2176,7 @@
2172
2176
  "description": "Adds a default shadow to the header"
2173
2177
  },
2174
2178
  "q-header/height-hint": {
2175
- "type": "number|string ",
2179
+ "type": "number|string",
2176
2180
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader"
2177
2181
  },
2178
2182
  "q-icon/size": {
@@ -2575,6 +2579,10 @@
2575
2579
  "type": "string",
2576
2580
  "description": "One of Quasar's embedded transitions"
2577
2581
  },
2582
+ "q-intersection/transition-duration": {
2583
+ "type": "string|number",
2584
+ "description": "Transition duration (in milliseconds, without unit)"
2585
+ },
2578
2586
  "q-intersection/disable": {
2579
2587
  "type": "boolean",
2580
2588
  "description": "Disable visibility observable (content will remain as it was, visible or hidden)"
@@ -2819,6 +2827,10 @@
2819
2827
  "type": "boolean",
2820
2828
  "description": "No transition when model changes"
2821
2829
  },
2830
+ "q-linear-progress/animation-speed": {
2831
+ "type": "string|number",
2832
+ "description": "Animation speed (in milliseconds, without unit)"
2833
+ },
2822
2834
  "q-markup-table/dense": {
2823
2835
  "type": "boolean",
2824
2836
  "description": "Dense mode; occupies less space"
@@ -5347,6 +5359,10 @@
5347
5359
  "type": "string",
5348
5360
  "description": "Color name for selected nodes (from the Quasar Color Palette)"
5349
5361
  },
5362
+ "q-tree/dense": {
5363
+ "type": "boolean",
5364
+ "description": "Dense mode; occupies less space"
5365
+ },
5350
5366
  "q-tree/dark": {
5351
5367
  "type": "boolean",
5352
5368
  "description": "Notify the component that the background is a dark color"
@@ -357,7 +357,8 @@
357
357
  "indeterminate",
358
358
  "show-value",
359
359
  "reverse",
360
- "instant-feedback"
360
+ "instant-feedback",
361
+ "animation-speed"
361
362
  ],
362
363
  "description": ""
363
364
  },
@@ -844,6 +845,7 @@
844
845
  "margin",
845
846
  "threshold",
846
847
  "transition",
848
+ "transition-duration",
847
849
  "disable"
848
850
  ],
849
851
  "description": ""
@@ -939,7 +941,8 @@
939
941
  "indeterminate",
940
942
  "query",
941
943
  "rounded",
942
- "instant-feedback"
944
+ "instant-feedback",
945
+ "animation-speed"
943
946
  ],
944
947
  "description": ""
945
948
  },
@@ -1924,6 +1927,7 @@
1924
1927
  "control-color",
1925
1928
  "text-color",
1926
1929
  "selected-color",
1930
+ "dense",
1927
1931
  "dark",
1928
1932
  "icon",
1929
1933
  "tick-strategy",
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.2.3",
5
+ "version": "2.3.2",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -3155,6 +3155,16 @@
3155
3155
  "description": "No animation when model changes",
3156
3156
  "doc-url": "https://v2.quasar.dev/vue-components/circular-progress",
3157
3157
  "type": "boolean"
3158
+ },
3159
+ {
3160
+ "name": "animation-speed",
3161
+ "value": {
3162
+ "kind": "expression",
3163
+ "type": "string|number"
3164
+ },
3165
+ "description": "Animation speed (in milliseconds, without unit)\n\nExamples:\n500\n1200",
3166
+ "doc-url": "https://v2.quasar.dev/vue-components/circular-progress",
3167
+ "default": "600"
3158
3168
  }
3159
3169
  ],
3160
3170
  "slots": [
@@ -6705,7 +6715,7 @@
6705
6715
  "name": "height-hint",
6706
6716
  "value": {
6707
6717
  "kind": "expression",
6708
- "type": "number|String "
6718
+ "type": "number|string"
6709
6719
  },
6710
6720
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter\n\nExamples:\n150",
6711
6721
  "doc-url": "https://v2.quasar.dev/layout/header-and-footer",
@@ -6897,7 +6907,7 @@
6897
6907
  "name": "height-hint",
6898
6908
  "value": {
6899
6909
  "kind": "expression",
6900
- "type": "number|String "
6910
+ "type": "number|string"
6901
6911
  },
6902
6912
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader\n\nExamples:\n150",
6903
6913
  "doc-url": "https://v2.quasar.dev/layout/header-and-footer",
@@ -8140,6 +8150,16 @@
8140
8150
  "description": "One of Quasar's embedded transitions\n\nExamples:\nfade\nslide-down",
8141
8151
  "doc-url": "https://v2.quasar.dev/vue-components/intersection"
8142
8152
  },
8153
+ {
8154
+ "name": "transition-duration",
8155
+ "value": {
8156
+ "kind": "expression",
8157
+ "type": "string|number"
8158
+ },
8159
+ "description": "Transition duration (in milliseconds, without unit)\n\nExamples:\n500\n1200",
8160
+ "doc-url": "https://v2.quasar.dev/vue-components/intersection",
8161
+ "default": "300"
8162
+ },
8143
8163
  {
8144
8164
  "name": "disable",
8145
8165
  "value": {
@@ -8952,6 +8972,16 @@
8952
8972
  "description": "No transition when model changes",
8953
8973
  "doc-url": "https://v2.quasar.dev/vue-components/linear-progress",
8954
8974
  "type": "boolean"
8975
+ },
8976
+ {
8977
+ "name": "animation-speed",
8978
+ "value": {
8979
+ "kind": "expression",
8980
+ "type": "string|number"
8981
+ },
8982
+ "description": "Animation speed (in milliseconds, without unit)\n\nExamples:\n500\n1200",
8983
+ "doc-url": "https://v2.quasar.dev/vue-components/linear-progress",
8984
+ "default": "300"
8955
8985
  }
8956
8986
  ],
8957
8987
  "slots": [
@@ -11517,6 +11547,7 @@
11517
11547
  {
11518
11548
  "name": "info",
11519
11549
  "type": "object",
11550
+ "description": "An object containing scroll information",
11520
11551
  "doc-url": "https://v2.quasar.dev/vue-components/scroll-area"
11521
11552
  }
11522
11553
  ],
@@ -17427,6 +17458,16 @@
17427
17458
  "description": "Color name for selected nodes (from the Quasar Color Palette)\n\nExamples:\nprimary\nteal-10",
17428
17459
  "doc-url": "https://v2.quasar.dev/vue-components/tree"
17429
17460
  },
17461
+ {
17462
+ "name": "dense",
17463
+ "value": {
17464
+ "kind": "expression",
17465
+ "type": "boolean"
17466
+ },
17467
+ "description": "Dense mode; occupies less space",
17468
+ "doc-url": "https://v2.quasar.dev/vue-components/tree",
17469
+ "type": "boolean"
17470
+ },
17430
17471
  {
17431
17472
  "name": "dark",
17432
17473
  "value": {
@@ -0,0 +1,225 @@
1
+
2
+ import {
3
+ ionCheckmark,
4
+ ionAlert,
5
+ ionInformationCircleOutline,
6
+ ionArrowUp,
7
+ ionArrowForward,
8
+ ionArrowDown,
9
+ ionArrowBack,
10
+ ionCaretDownOutline,
11
+ ionAperture,
12
+ ionOptions,
13
+ ionApps,
14
+ ionRefresh,
15
+ ionSquare,
16
+ ionCloseCircle,
17
+ ionTime,
18
+ ionCalendar,
19
+ ionLink,
20
+ ionExpand,
21
+ ionChatboxEllipses,
22
+ ionPrint,
23
+ ionArrowUndo,
24
+ ionArrowRedo,
25
+ ionCodeSlash,
26
+ ionAdd,
27
+ ionClose,
28
+ ionPlaySkipBackCircle,
29
+ ionPlaySkipForwardCircle,
30
+ ionStar,
31
+ ionCreate,
32
+ ionWarning,
33
+ ionPlay,
34
+ ionAddCircle,
35
+ ionCloudUpload,
36
+ ionTrash,
37
+ ionCheckmarkDone,
38
+ ionChevronDown,
39
+ ionChevronUp,
40
+ ionChevronBack,
41
+ ionChevronForward,
42
+ ionChevronBackCircle,
43
+ ionChevronForwardCircle
44
+ } from '@quasar/extras/ionicons-v6'
45
+
46
+ // there are some icons that are needed but not available
47
+ // so we import them from MDI as svgs
48
+
49
+ import {
50
+ mdiFormatBold,
51
+ mdiFormatItalic,
52
+ mdiFormatStrikethroughVariant,
53
+ mdiFormatUnderline,
54
+ mdiFormatListBulleted,
55
+ mdiFormatListNumbered,
56
+ mdiFormatSubscript,
57
+ mdiFormatSuperscript,
58
+ mdiFormatAlignLeft,
59
+ mdiFormatAlignCenter,
60
+ mdiFormatAlignRight,
61
+ mdiFormatAlignJustify,
62
+ mdiFormatIndentDecrease,
63
+ mdiFormatIndentIncrease,
64
+ mdiFormatClear,
65
+ mdiFormatColorText,
66
+ mdiFormatSize,
67
+ mdiMinus,
68
+ mdiFormatHeader1,
69
+ mdiFormatHeader2,
70
+ mdiFormatHeader3,
71
+ mdiFormatHeader4,
72
+ mdiFormatHeader5,
73
+ mdiFormatHeader6,
74
+ mdiNumeric1Box,
75
+ mdiNumeric2Box,
76
+ mdiNumeric3Box,
77
+ mdiNumeric4Box,
78
+ mdiNumeric5Box,
79
+ mdiNumeric6Box,
80
+ mdiNumeric7Box,
81
+ mdiFormatFont
82
+ } from '@quasar/extras/mdi-v6'
83
+
84
+ export default {
85
+ name: 'svg-ionicons-v6',
86
+ type: {
87
+ positive: ionCheckmark,
88
+ negative: ionAlert,
89
+ info: ionInformationCircleOutline,
90
+ warning: ionAlert
91
+ },
92
+ arrow: {
93
+ up: ionArrowUp,
94
+ right: ionArrowForward,
95
+ down: ionArrowDown,
96
+ left: ionArrowBack,
97
+ dropdown: ionCaretDownOutline
98
+ },
99
+ chevron: {
100
+ left: ionArrowBack,
101
+ right: ionArrowForward
102
+ },
103
+ colorPicker: {
104
+ spectrum: ionAperture,
105
+ tune: ionOptions,
106
+ palette: ionApps
107
+ },
108
+ pullToRefresh: {
109
+ icon: ionRefresh
110
+ },
111
+ carousel: {
112
+ left: ionChevronBack,
113
+ right: ionChevronForward,
114
+ up: ionChevronUp,
115
+ down: ionChevronDown,
116
+ navigationIcon: ionSquare
117
+ },
118
+ chip: {
119
+ remove: ionCloseCircle,
120
+ selected: ionCheckmark
121
+ },
122
+ datetime: {
123
+ arrowLeft: ionChevronBack,
124
+ arrowRight: ionChevronForward,
125
+ now: ionTime,
126
+ today: ionCalendar
127
+ },
128
+ editor: { // requires Material icons for some as Ionicons simply does not have everything needed
129
+ hyperlink: ionLink,
130
+ toggleFullscreen: ionExpand,
131
+ quote: ionChatboxEllipses,
132
+ print: ionPrint,
133
+ undo: ionArrowUndo,
134
+ redo: ionArrowRedo,
135
+ code: ionCodeSlash,
136
+ viewSource: ionCodeSlash,
137
+
138
+ bold: mdiFormatBold,
139
+ italic: mdiFormatItalic,
140
+ strikethrough: mdiFormatStrikethroughVariant,
141
+ underline: mdiFormatUnderline,
142
+ unorderedList: mdiFormatListBulleted,
143
+ orderedList: mdiFormatListNumbered,
144
+ subscript: mdiFormatSubscript,
145
+ superscript: mdiFormatSuperscript,
146
+ left: mdiFormatAlignLeft,
147
+ center: mdiFormatAlignCenter,
148
+ right: mdiFormatAlignRight,
149
+ justify: mdiFormatAlignJustify,
150
+ outdent: mdiFormatIndentDecrease,
151
+ indent: mdiFormatIndentIncrease,
152
+ removeFormat: mdiFormatClear,
153
+ formatting: mdiFormatColorText,
154
+ fontSize: mdiFormatSize,
155
+ align: mdiFormatAlignLeft,
156
+ hr: mdiMinus,
157
+ heading: mdiFormatSize,
158
+ heading1: mdiFormatHeader1,
159
+ heading2: mdiFormatHeader2,
160
+ heading3: mdiFormatHeader3,
161
+ heading4: mdiFormatHeader4,
162
+ heading5: mdiFormatHeader5,
163
+ heading6: mdiFormatHeader6,
164
+ size: mdiFormatSize,
165
+ size1: mdiNumeric1Box,
166
+ size2: mdiNumeric2Box,
167
+ size3: mdiNumeric3Box,
168
+ size4: mdiNumeric4Box,
169
+ size5: mdiNumeric5Box,
170
+ size6: mdiNumeric6Box,
171
+ size7: mdiNumeric7Box,
172
+ font: mdiFormatFont
173
+ },
174
+ expansionItem: {
175
+ icon: ionCaretDownOutline,
176
+ denseIcon: ionCaretDownOutline
177
+ },
178
+ fab: {
179
+ icon: ionAdd,
180
+ activeIcon: ionClose
181
+ },
182
+ field: {
183
+ clear: ionCloseCircle,
184
+ error: ionAlert
185
+ },
186
+ pagination: {
187
+ first: ionPlaySkipBackCircle,
188
+ prev: ionChevronBackCircle,
189
+ next: ionChevronForwardCircle,
190
+ last: ionPlaySkipForwardCircle
191
+ },
192
+ rating: {
193
+ icon: ionStar
194
+ },
195
+ stepper: {
196
+ done: ionCheckmark,
197
+ active: ionCreate,
198
+ error: ionWarning
199
+ },
200
+ tabs: {
201
+ left: ionChevronBack,
202
+ right: ionChevronForward,
203
+ up: ionChevronUp,
204
+ down: ionChevronDown
205
+ },
206
+ table: {
207
+ arrowUp: ionArrowUp,
208
+ warning: ionWarning,
209
+ firstPage: ionPlaySkipBackCircle,
210
+ prevPage: ionChevronBackCircle,
211
+ nextPage: ionChevronForwardCircle,
212
+ lastPage: ionPlaySkipForwardCircle
213
+ },
214
+ tree: {
215
+ icon: ionPlay
216
+ },
217
+ uploader: {
218
+ done: ionCheckmark,
219
+ clear: ionClose,
220
+ add: ionAddCircle,
221
+ upload: ionCloudUpload,
222
+ removeQueue: ionTrash,
223
+ removeUploaded: ionCheckmarkDone
224
+ }
225
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.2.3",
3
+ "version": "2.3.2",
4
4
  "description": "Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time",
5
5
  "main": "dist/quasar.cjs.prod.js",
6
6
  "module": "dist/quasar.esm.prod.js",
@@ -63,10 +63,12 @@
63
63
  "devDependencies": {
64
64
  "@babel/eslint-parser": "^7.13.14",
65
65
  "@quasar/app": "^3.0.0",
66
- "@quasar/extras": "^1.11.0",
66
+ "@quasar/extras": "^1.12.0",
67
67
  "@rollup/plugin-node-resolve": "^11.2.1",
68
68
  "@rollup/plugin-replace": "^2.3.3",
69
69
  "babel-preset-es2015-rollup": "^3.0.0",
70
+ "cli-highlight": "^2.1.11",
71
+ "diff": "^5.0.0",
70
72
  "eslint": "^7.4.0",
71
73
  "eslint-config-standard": "^16.0.2",
72
74
  "eslint-friendly-formatter": "^4.0.1",
@@ -75,6 +77,7 @@
75
77
  "eslint-plugin-promise": "^4.2.1",
76
78
  "eslint-plugin-vue": "^7.0.0",
77
79
  "eslint-webpack-plugin": "^2.4.1",
80
+ "fast-glob": "^3.2.7",
78
81
  "json-beautify": "^1.1.1",
79
82
  "module-alias": "^2.2.2",
80
83
  "prettier": "^2.4.1",
@@ -95,6 +95,13 @@
95
95
  "category": "transition"
96
96
  },
97
97
 
98
+ "animation-speed": {
99
+ "type": [ "String", "Number" ],
100
+ "desc": "Animation speed (in milliseconds, without unit)",
101
+ "examples": [ 500, "1200" ],
102
+ "category": "style"
103
+ },
104
+
98
105
  "model-value": {
99
106
  "desc": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",
100
107
  "required": true,
package/src/body.js CHANGED
@@ -82,12 +82,18 @@ export default {
82
82
  }
83
83
 
84
84
  ssrContext._meta.bodyClasses += cls.join(' ')
85
- return
86
- }
87
85
 
88
- const { $q } = opts
86
+ const brand = $q.config.brand
87
+ if (brand !== void 0) {
88
+ const vars = Object.keys(brand)
89
+ .map(key => `--q-${ key }:${ brand[ key ] };`)
90
+ .join('')
91
+
92
+ ssrContext._meta.endingHeadTags += `<style>:root{${ vars }}</style>`
93
+ }
89
94
 
90
- $q.config.brand !== void 0 && setColors($q.config.brand)
95
+ return
96
+ }
91
97
 
92
98
  if (this.__installed === true) { return }
93
99
 
@@ -95,6 +101,10 @@ export default {
95
101
  applyClientSsrCorrections()
96
102
  }
97
103
  else {
104
+ const { $q } = opts
105
+
106
+ $q.config.brand !== void 0 && setColors($q.config.brand)
107
+
98
108
  const cls = getBodyClasses(client, $q.config)
99
109
  document.body.classList.add.apply(document.body.classList, cls)
100
110
  }
@@ -24,6 +24,11 @@ export default createComponent({
24
24
  default: 0
25
25
  },
26
26
 
27
+ animationSpeed: {
28
+ type: [ String, Number ],
29
+ default: 600
30
+ },
31
+
27
32
  indeterminate: Boolean
28
33
  },
29
34
 
@@ -43,7 +48,7 @@ export default createComponent({
43
48
 
44
49
  const circleStyle = computed(() => (
45
50
  props.instantFeedback !== true && props.indeterminate !== true
46
- ? { transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease' }
51
+ ? { transition: `stroke-dashoffset ${ props.animationSpeed }ms ease 0s, stroke ${ props.animationSpeed }ms ease` }
47
52
  : ''
48
53
  ))
49
54
 
@@ -91,6 +91,12 @@
91
91
  "type": "Boolean",
92
92
  "desc": "No animation when model changes",
93
93
  "category": "behavior"
94
+ },
95
+
96
+ "animation-speed": {
97
+ "extends": "animation-speed",
98
+ "default": 600,
99
+ "addedIn": "v2.3"
94
100
  }
95
101
  },
96
102
 
@@ -61,6 +61,17 @@
61
61
  "events": {
62
62
  "type": [ "Array", "Function" ],
63
63
  "desc": "A list of events to highlight on the calendar; If using a function, it receives the date as a String and must return a Boolean (matches or not); If using a function then for best performance, reference it from your scope and do not define it inline",
64
+ "params": {
65
+ "date": {
66
+ "type": "String",
67
+ "desc": "The current date being processed.",
68
+ "examples": [ "2018/11/05", "2021/10/25" ]
69
+ }
70
+ },
71
+ "returns": {
72
+ "type": "Boolean",
73
+ "desc": "If true, the current date will be highlighted"
74
+ },
64
75
  "examples": [
65
76
  ":events=\"['2018/11/05', '2018/11/06', '2018/11/09', '2018/11/23']\"",
66
77
  ":events=\"date => date[9] % 3 === 0\""
@@ -71,6 +82,18 @@
71
82
  "event-color": {
72
83
  "type": [ "String", "Function" ],
73
84
  "desc": "Color name (from the Quasar Color Palette); If using a function, it receives the date as a String and must return a String (color for the received date); If using a function then for best performance, reference it from your scope and do not define it inline",
85
+ "params": {
86
+ "date": {
87
+ "type": "String",
88
+ "desc": "The current date being processed.",
89
+ "examples": [ "2018/11/05", "2021/10/25" ]
90
+ }
91
+ },
92
+ "returns": {
93
+ "type": "String",
94
+ "desc": "Color for the current date.",
95
+ "examples": [ "teal", "orange" ]
96
+ },
74
97
  "examples": [
75
98
  "teal-10",
76
99
  ":event-color=\"(date) => date[9] % 2 === 0 ? 'teal' : 'orange'\""
@@ -81,6 +104,17 @@
81
104
  "options": {
82
105
  "type": [ "Array", "Function" ],
83
106
  "desc": "Optionally configure the days that are selectable; If using a function, it receives the date as a String and must return a Boolean (is date acceptable or not); If using a function then for best performance, reference it from your scope and do not define it inline; Incompatible with 'range' prop",
107
+ "params": {
108
+ "date": {
109
+ "type": "String",
110
+ "desc": "The current date being processed.",
111
+ "examples": [ "2018/11/05", "2021/10/25" ]
112
+ }
113
+ },
114
+ "returns": {
115
+ "type": "Boolean",
116
+ "desc": "If true, the current date will be made available for selection"
117
+ },
84
118
  "examples": [
85
119
  ":options=\"['2018/11/05', '2018/11/12', '2018/11/19', '2018/11/26' ]\"",
86
120
  ":options=\"date => date[9] % 3 === 0\"",
@@ -80,12 +80,12 @@ export default createComponent({
80
80
  ],
81
81
 
82
82
  setup (props, { slots, emit, attrs }) {
83
- const { proxy } = getCurrentInstance()
83
+ const { proxy, vnode } = getCurrentInstance()
84
84
  const { $q } = proxy
85
85
 
86
86
  const isDark = useDark(props, $q)
87
87
  const { inFullscreen, toggleFullscreen } = useFullscreen()
88
- const splitAttrs = useSplitAttrs(attrs)
88
+ const splitAttrs = useSplitAttrs(attrs, vnode)
89
89
 
90
90
  const rootRef = ref(null)
91
91
  const contentRef = ref(null)
@@ -120,8 +120,12 @@
120
120
  },
121
121
  "disable": {
122
122
  "type": [ "Boolean", "Function" ],
123
- "desc": "Is button disabled? If specifying a function, return a Boolean value.",
124
- "examples": [ "() => this.userIsActive()" ]
123
+ "desc": "Is button disabled?",
124
+ "returns": {
125
+ "type": "Boolean",
126
+ "desc": "If true, the button will be disabled"
127
+ },
128
+ "examples": [ "!user.active", "() => !checkIfUserIsActive()" ]
125
129
  },
126
130
  "type": {
127
131
  "type": "String",
@@ -32,7 +32,7 @@
32
32
  },
33
33
 
34
34
  "height-hint": {
35
- "type": [ "Number", "String " ],
35
+ "type": [ "Number", "String" ],
36
36
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter",
37
37
  "default": 50,
38
38
  "examples": [ "150" ],
@@ -42,7 +42,7 @@
42
42
  },
43
43
 
44
44
  "height-hint": {
45
- "type": [ "Number", "String " ],
45
+ "type": [ "Number", "String" ],
46
46
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader",
47
47
  "default": 50,
48
48
  "examples": [ "150" ],
@@ -33,7 +33,7 @@ const mRE = /^M/
33
33
  const imgRE = /^img:/
34
34
  const svgUseRE = /^svguse:/
35
35
  const ionRE = /^ion-/
36
- const faLaRE = /^[l|f]a[s|r|l|b|d]? /
36
+ const faLaRE = /^[l|f]a[s|r|l|b|d|k]? /
37
37
 
38
38
  export default createComponent({
39
39
  name: 'QIcon',