@quidgest/ui 0.25.0 → 0.27.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 (257) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/json/api.json +501 -156
  3. package/dist/manifest/components.json +3 -0
  4. package/dist/ui.css +1030 -138
  5. package/dist/ui.esm.js +989 -937
  6. package/dist/ui.js +1230 -1181
  7. package/dist/ui.min.css +1 -1
  8. package/dist/ui.min.js +1230 -1181
  9. package/dist/ui.scss +1301 -168
  10. package/esm/components/QAccordion/QAccordion.d.ts.map +1 -1
  11. package/esm/components/QAccordion/QAccordion.vue.js +19 -18
  12. package/esm/components/QAccordion/QAccordionItem.vue.js +4 -4
  13. package/esm/components/QBadge/QBadge.d.ts.map +1 -1
  14. package/esm/components/QBadge/QBadge.vue.js +58 -55
  15. package/esm/components/QBadgeIndicator/QBadgeIndicator.d.ts.map +1 -1
  16. package/esm/components/QBadgeIndicator/QBadgeIndicator.vue.js +17 -16
  17. package/esm/components/QBreadcrumbs/QBreadcrumb.d.ts +81 -0
  18. package/esm/components/QBreadcrumbs/QBreadcrumb.d.ts.map +1 -0
  19. package/esm/components/QBreadcrumbs/QBreadcrumb.vue.js +85 -0
  20. package/esm/components/QBreadcrumbs/QBreadcrumb2.vue.js +5 -0
  21. package/esm/components/QBreadcrumbs/QBreadcrumbs.d.ts +22 -0
  22. package/esm/components/QBreadcrumbs/QBreadcrumbs.d.ts.map +1 -0
  23. package/esm/components/QBreadcrumbs/QBreadcrumbs.vue.js +74 -0
  24. package/esm/components/QBreadcrumbs/QBreadcrumbs2.vue.js +5 -0
  25. package/esm/components/QBreadcrumbs/constants.d.ts +20 -0
  26. package/esm/components/QBreadcrumbs/constants.d.ts.map +1 -0
  27. package/esm/components/QBreadcrumbs/constants.js +10 -0
  28. package/esm/components/QBreadcrumbs/context.d.ts +103 -0
  29. package/esm/components/QBreadcrumbs/context.d.ts.map +1 -0
  30. package/esm/components/QBreadcrumbs/context.js +4 -0
  31. package/esm/components/QBreadcrumbs/index.d.ts +108 -0
  32. package/esm/components/QBreadcrumbs/index.d.ts.map +1 -0
  33. package/esm/components/QBreadcrumbs/index.js +7 -0
  34. package/esm/components/QBreadcrumbs/types.d.ts +100 -0
  35. package/esm/components/QBreadcrumbs/types.d.ts.map +1 -0
  36. package/esm/components/QButton/QButton.d.ts.map +1 -1
  37. package/esm/components/QButton/QButton.vue.js +55 -52
  38. package/esm/components/QButtonGroup/QButtonGroup.d.ts.map +1 -1
  39. package/esm/components/QButtonGroup/QButtonGroup.vue.js +16 -15
  40. package/esm/components/QCard/QCard.d.ts.map +1 -1
  41. package/esm/components/QCard/QCard.vue.js +51 -52
  42. package/esm/components/QCarousel/QCarousel.d.ts.map +1 -1
  43. package/esm/components/QCarousel/QCarousel.vue.js +119 -115
  44. package/esm/components/QCheckbox/QCheckbox.d.ts.map +1 -1
  45. package/esm/components/QCheckbox/QCheckbox.vue.js +10 -14
  46. package/esm/components/QCollapsible/QCollapsible.d.ts.map +1 -1
  47. package/esm/components/QCollapsible/QCollapsible.vue.js +52 -51
  48. package/esm/components/QColorPicker/QColorPicker.d.ts.map +1 -1
  49. package/esm/components/QColorPicker/QColorPicker.vue.js +48 -47
  50. package/esm/components/QCombobox/QCombobox.d.ts +6 -4
  51. package/esm/components/QCombobox/QCombobox.d.ts.map +1 -1
  52. package/esm/components/QCombobox/QCombobox.vue.js +119 -116
  53. package/esm/components/QCombobox/index.d.ts +3 -2
  54. package/esm/components/QCombobox/index.d.ts.map +1 -1
  55. package/esm/components/QDateTimePicker/QDateTimePicker.d.ts.map +1 -1
  56. package/esm/components/QDateTimePicker/QDateTimePicker.vue.js +468 -429
  57. package/esm/components/QDateTimePicker/constants.d.ts +5 -0
  58. package/esm/components/QDateTimePicker/constants.d.ts.map +1 -1
  59. package/esm/components/QDateTimePicker/constants.js +5 -0
  60. package/esm/components/QDialog/QDialog.d.ts +2 -1
  61. package/esm/components/QDialog/QDialog.d.ts.map +1 -1
  62. package/esm/components/QDialog/QDialog.vue.js +84 -65
  63. package/esm/components/QDialog/constants.d.ts +6 -1
  64. package/esm/components/QDialog/constants.d.ts.map +1 -1
  65. package/esm/components/QDialog/constants.js +6 -2
  66. package/esm/components/QDialog/index.d.ts +6 -0
  67. package/esm/components/QDialog/index.d.ts.map +1 -1
  68. package/esm/components/QDialog/types.d.ts +13 -1
  69. package/esm/components/QDialog/types.d.ts.map +1 -1
  70. package/esm/components/QDivider/QDivider.d.ts.map +1 -1
  71. package/esm/components/QDivider/QDivider.vue.js +22 -21
  72. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts +8 -6
  73. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts.map +1 -1
  74. package/esm/components/QDropdownMenu/QDropdownMenuContent.vue.js +126 -125
  75. package/esm/components/QField/QField.d.ts.map +1 -1
  76. package/esm/components/QField/QField.vue.js +36 -34
  77. package/esm/components/QFileUpload/QFileUpload.vue.js +16 -16
  78. package/esm/components/QGauge/QGauge.d.ts +1 -1
  79. package/esm/components/QGauge/QGauge.d.ts.map +1 -1
  80. package/esm/components/QGauge/QGauge.vue.js +9 -9
  81. package/esm/components/QIcon/QIcon.d.ts.map +1 -1
  82. package/esm/components/QIcon/QIcon.vue.js +20 -19
  83. package/esm/components/QIcon/QIconFont.d.ts.map +1 -1
  84. package/esm/components/QIcon/QIconFont.vue.js +13 -12
  85. package/esm/components/QIcon/QIconImg.d.ts.map +1 -1
  86. package/esm/components/QIcon/QIconImg.vue.js +12 -11
  87. package/esm/components/QIcon/QIconSvg.d.ts.map +1 -1
  88. package/esm/components/QIcon/QIconSvg.vue.js +19 -18
  89. package/esm/components/QIcon/QSvgSymbol.d.ts +54 -0
  90. package/esm/components/QIcon/QSvgSymbol.d.ts.map +1 -0
  91. package/esm/components/QIcon/QSvgSymbol.vue.js +88 -0
  92. package/esm/components/QIcon/QSvgSymbol2.vue.js +5 -0
  93. package/esm/components/QInputGroup/QInputGroup.d.ts.map +1 -1
  94. package/esm/components/QInputGroup/QInputGroup.vue.js +30 -29
  95. package/esm/components/QLabel/QLabel.d.ts.map +1 -1
  96. package/esm/components/QLabel/QLabel.vue.js +20 -19
  97. package/esm/components/QLineLoader/QLineLoader.d.ts.map +1 -1
  98. package/esm/components/QLineLoader/QLineLoader.vue.js +14 -13
  99. package/esm/components/QList/QList.d.ts +4 -4
  100. package/esm/components/QList/QList.d.ts.map +1 -1
  101. package/esm/components/QList/QList.vue.js +135 -135
  102. package/esm/components/QList/QListItem.d.ts.map +1 -1
  103. package/esm/components/QList/QListItem.vue.js +42 -40
  104. package/esm/components/QList/QListItemGroup.d.ts +1 -1
  105. package/esm/components/QList/QListItemGroup.d.ts.map +1 -1
  106. package/esm/components/QList/index.d.ts +2 -2
  107. package/esm/components/QList/types.d.ts +6 -0
  108. package/esm/components/QList/types.d.ts.map +1 -1
  109. package/esm/components/QMeter/QMeter.d.ts.map +1 -1
  110. package/esm/components/QMeter/QMeter.vue.js +20 -19
  111. package/esm/components/QObfuscation/QObfuscation.d.ts.map +1 -1
  112. package/esm/components/QObfuscation/QObfuscation.vue.js +53 -53
  113. package/esm/components/QOverflow/QOverflow.d.ts +1 -1
  114. package/esm/components/QOverflow/QOverflow.d.ts.map +1 -1
  115. package/esm/components/QOverflow/QOverflow.vue.js +10 -10
  116. package/esm/components/QOverlay/QOverlay.d.ts.map +1 -1
  117. package/esm/components/QOverlay/QOverlay.vue.js +139 -138
  118. package/esm/components/QPasswordField/QPasswordField.d.ts +2 -0
  119. package/esm/components/QPasswordField/QPasswordField.d.ts.map +1 -1
  120. package/esm/components/QPasswordField/QPasswordField.vue.js +63 -60
  121. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.vue.js +1 -1
  122. package/esm/components/QPasswordField/constants.d.ts +4 -0
  123. package/esm/components/QPasswordField/constants.d.ts.map +1 -1
  124. package/esm/components/QPasswordField/constants.js +4 -1
  125. package/esm/components/QPasswordField/index.d.ts +6 -0
  126. package/esm/components/QPasswordField/index.d.ts.map +1 -1
  127. package/esm/components/QPasswordField/types.d.ts +7 -1
  128. package/esm/components/QPasswordField/types.d.ts.map +1 -1
  129. package/esm/components/QPhoneField/QPhoneField.d.ts +7 -5
  130. package/esm/components/QPhoneField/QPhoneField.d.ts.map +1 -1
  131. package/esm/components/QPhoneField/QPhoneField.vue.js +88 -88
  132. package/esm/components/QPhoneField/index.d.ts +3 -2
  133. package/esm/components/QPhoneField/index.d.ts.map +1 -1
  134. package/esm/components/QPopover/QPopover.d.ts.map +1 -1
  135. package/esm/components/QPopover/QPopover.vue.js +51 -28
  136. package/esm/components/QProgress/QProgress.vue.js +3 -3
  137. package/esm/components/QPropertyList/QPropertyList.d.ts.map +1 -1
  138. package/esm/components/QPropertyList/QPropertyList.vue.js +65 -55
  139. package/esm/components/QPropertyList/QPropertyListGroup.d.ts +8 -4
  140. package/esm/components/QPropertyList/QPropertyListGroup.d.ts.map +1 -1
  141. package/esm/components/QPropertyList/QPropertyListGroup.vue.js +31 -28
  142. package/esm/components/QPropertyList/QPropertyListPanel.d.ts.map +1 -1
  143. package/esm/components/QPropertyList/QPropertyListPanel.vue.js +13 -12
  144. package/esm/components/QPropertyList/QPropertyListRow.d.ts.map +1 -1
  145. package/esm/components/QPropertyList/QPropertyListRow.vue.js +41 -16
  146. package/esm/components/QPropertyList/constants.d.ts +2 -0
  147. package/esm/components/QPropertyList/constants.d.ts.map +1 -1
  148. package/esm/components/QPropertyList/constants.js +5 -1
  149. package/esm/components/QPropertyList/index.d.ts +16 -4
  150. package/esm/components/QPropertyList/index.d.ts.map +1 -1
  151. package/esm/components/QSection/QSection.d.ts +2 -0
  152. package/esm/components/QSection/QSection.d.ts.map +1 -1
  153. package/esm/components/QSection/QSection.vue.js +19 -14
  154. package/esm/components/QSection/index.d.ts +2 -0
  155. package/esm/components/QSection/index.d.ts.map +1 -1
  156. package/esm/components/QSelect/QSelect.d.ts +6 -4
  157. package/esm/components/QSelect/QSelect.d.ts.map +1 -1
  158. package/esm/components/QSelect/QSelect.vue.js +129 -124
  159. package/esm/components/QSelect/index.d.ts +3 -2
  160. package/esm/components/QSelect/index.d.ts.map +1 -1
  161. package/esm/components/QSidebar/QSidebar.d.ts +1 -1
  162. package/esm/components/QSidebar/QSidebar.d.ts.map +1 -1
  163. package/esm/components/QSidebar/QSidebar.vue.js +68 -67
  164. package/esm/components/QSidebar/QSidebarItem.d.ts +1 -1
  165. package/esm/components/QSidebar/QSidebarItem.d.ts.map +1 -1
  166. package/esm/components/QSidebar/QSidebarItem.vue.js +8 -8
  167. package/esm/components/QSidebar/QSidebarPanel.d.ts.map +1 -1
  168. package/esm/components/QSidebar/QSidebarPanel.vue.js +40 -36
  169. package/esm/components/QSidebar/context.d.ts +1 -1
  170. package/esm/components/QSidebar/context.d.ts.map +1 -1
  171. package/esm/components/QSidebar/types.d.ts +8 -0
  172. package/esm/components/QSidebar/types.d.ts.map +1 -1
  173. package/esm/components/QSkeletonLoader/QSkeletonLoader.d.ts.map +1 -1
  174. package/esm/components/QSkeletonLoader/QSkeletonLoader.vue.js +15 -14
  175. package/esm/components/QSpinnerLoader/QSpinnerLoader.d.ts.map +1 -1
  176. package/esm/components/QSpinnerLoader/QSpinnerLoader.vue.js +11 -10
  177. package/esm/components/QSteps/QStepHeader.d.ts +58 -0
  178. package/esm/components/QSteps/QStepHeader.d.ts.map +1 -0
  179. package/esm/components/QSteps/QStepHeader.vue.js +49 -0
  180. package/esm/components/QSteps/QStepHeader2.vue.js +5 -0
  181. package/esm/components/QSteps/QSteps.d.ts +269 -0
  182. package/esm/components/QSteps/QSteps.d.ts.map +1 -0
  183. package/esm/components/QSteps/QSteps.vue.js +260 -0
  184. package/esm/components/QSteps/QSteps2.vue.js +5 -0
  185. package/esm/components/QSteps/QStepsNav.d.ts +59 -0
  186. package/esm/components/QSteps/QStepsNav.d.ts.map +1 -0
  187. package/esm/components/QSteps/QStepsNav.vue.js +42 -0
  188. package/esm/components/QSteps/QStepsNav2.vue.js +5 -0
  189. package/esm/components/QSteps/constants.d.ts +28 -0
  190. package/esm/components/QSteps/constants.d.ts.map +1 -0
  191. package/esm/components/QSteps/constants.js +16 -0
  192. package/esm/components/QSteps/index.d.ts +228 -0
  193. package/esm/components/QSteps/index.d.ts.map +1 -0
  194. package/esm/components/QSteps/index.js +6 -0
  195. package/esm/components/QSteps/types.d.ts +190 -0
  196. package/esm/components/QSteps/types.d.ts.map +1 -0
  197. package/esm/components/QSwitch/QSwitch.vue.js +3 -3
  198. package/esm/components/QTabs/QTab.d.ts +1 -1
  199. package/esm/components/QTabs/QTab.d.ts.map +1 -1
  200. package/esm/components/QTabs/QTab.vue.js +10 -12
  201. package/esm/components/QTabs/QTabs.d.ts +1 -1
  202. package/esm/components/QTabs/QTabs.d.ts.map +1 -1
  203. package/esm/components/QTabs/QTabs.vue.js +108 -113
  204. package/esm/components/QTabs/context.d.ts +1 -1
  205. package/esm/components/QTabs/context.d.ts.map +1 -1
  206. package/esm/components/QTabs/types.d.ts +1 -1
  207. package/esm/components/QTextArea/QTextArea.d.ts +1 -1
  208. package/esm/components/QTextArea/QTextArea.d.ts.map +1 -1
  209. package/esm/components/QTextArea/QTextArea.vue.js +9 -7
  210. package/esm/components/QTextArea/index.d.ts +3 -3
  211. package/esm/components/QTextField/QTextField.d.ts.map +1 -1
  212. package/esm/components/QTextField/QTextField.vue.js +11 -9
  213. package/esm/components/QThemeProvider/QThemeProvider.vue.js +3 -3
  214. package/esm/components/QToast/QToast.d.ts +2 -1
  215. package/esm/components/QToast/QToast.d.ts.map +1 -1
  216. package/esm/components/QToast/QToast.vue.js +95 -78
  217. package/esm/components/QToast/QToaster.d.ts.map +1 -1
  218. package/esm/components/QToast/QToaster.vue.js +20 -19
  219. package/esm/components/QToast/constants.d.ts +3 -0
  220. package/esm/components/QToast/constants.d.ts.map +1 -1
  221. package/esm/components/QToast/constants.js +2 -2
  222. package/esm/components/QToast/index.d.ts +6 -0
  223. package/esm/components/QToast/index.d.ts.map +1 -1
  224. package/esm/components/QToast/types.d.ts +7 -1
  225. package/esm/components/QToast/types.d.ts.map +1 -1
  226. package/esm/components/QToggle/QToggle.d.ts.map +1 -1
  227. package/esm/components/QToggle/QToggle.vue.js +52 -15
  228. package/esm/components/QToggleGroup/QToggleGroup.d.ts.map +1 -1
  229. package/esm/components/QToggleGroup/QToggleGroup.vue.js +21 -20
  230. package/esm/components/QTooltip/QTooltip.vue.js +5 -5
  231. package/esm/components/__internal__/QChevron/QChevron.d.ts.map +1 -1
  232. package/esm/components/__internal__/QChevron/QChevron.vue.js +16 -15
  233. package/esm/components/__internal__/QClearButton/QClearButton.d.ts.map +1 -1
  234. package/esm/components/__internal__/QClearButton/QClearButton.vue.js +19 -18
  235. package/esm/components/index.d.ts +2 -0
  236. package/esm/components/index.d.ts.map +1 -1
  237. package/esm/components/index.js +108 -103
  238. package/esm/composables/useColor/index.d.ts +2 -0
  239. package/esm/composables/useColor/index.d.ts.map +1 -1
  240. package/esm/composables/useColor/index.js +49 -39
  241. package/esm/composables/useColor/types.d.ts +15 -0
  242. package/esm/composables/useColor/types.d.ts.map +1 -1
  243. package/esm/composables/useEnabledSelection/index.d.ts +33 -0
  244. package/esm/composables/useEnabledSelection/index.d.ts.map +1 -0
  245. package/esm/composables/useEnabledSelection/index.js +15 -0
  246. package/esm/index.d.ts +3 -0
  247. package/esm/utils/color/contrast.d.ts +20 -0
  248. package/esm/utils/color/contrast.d.ts.map +1 -1
  249. package/esm/utils/color/contrast.js +24 -13
  250. package/esm/utils/color/merge.js +8 -8
  251. package/esm/utils/index.js +56 -54
  252. package/package.json +12 -6
  253. package/esm/components/QIcon/InlineSvg.d.ts +0 -110
  254. package/esm/components/QIcon/InlineSvg.d.ts.map +0 -1
  255. package/esm/components/QIcon/InlineSvg.js +0 -95
  256. package/esm/utils/time.d.ts +0 -36
  257. package/esm/utils/time.d.ts.map +0 -1
package/dist/ui.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quidgest UI v0.25.0
2
+ * Quidgest UI v0.27.0
3
3
  * (c) 2026 Quidgest - Consultores de Gestão, S.A.
4
4
  * Released under the MIT License.
5
5
  */
@@ -444,13 +444,13 @@ $breakpoint-xxl: 1400px;
444
444
  --q-focus-ring: var(--q-focus-ring-width) solid var(--q-focus-ring-color);
445
445
 
446
446
  --q-shadow-sm: 0 calc(1px * var(--q-density-scale)) calc(2px * var(--q-density-scale)) 0
447
- rgb(0 0 0 / 5%);
447
+ rgb(var(--q-theme-neutral-dark-rgb) / 5%);
448
448
 
449
449
  --q-shadow-md:
450
450
  0 calc(4px * var(--q-density-scale)) calc(6px * var(--q-density-scale))
451
- calc(-1px * var(--q-density-scale)) rgb(0 0 0 / 10%),
451
+ calc(-1px * var(--q-density-scale)) rgb(var(--q-theme-neutral-dark-rgb) / 10%),
452
452
  0 calc(2px * var(--q-density-scale)) calc(4px * var(--q-density-scale))
453
- calc(-2px * var(--q-density-scale)) rgb(0 0 0 / 10%);
453
+ calc(-2px * var(--q-density-scale)) rgb(var(--q-theme-neutral-dark-rgb) / 10%);
454
454
 
455
455
  --q-shadow-lg: 0 calc(8px * var(--q-density-scale)) calc(12px * var(--q-density-scale))
456
456
  rgb(var(--q-theme-neutral-dark-rgb) / 25%);
@@ -773,7 +773,8 @@ body {
773
773
  width: calc(100% + 2px);
774
774
  height: calc(100% + 2px);
775
775
  border-radius: inherit;
776
- opacity: 0.1;
776
+
777
+ opacity: 0.12;
777
778
  }
778
779
  &__content {
779
780
  white-space: normal;
@@ -804,6 +805,19 @@ body {
804
805
  .q-icon {
805
806
  color: currentcolor;
806
807
  }
808
+
809
+
810
+ &__content,
811
+ &__remove {
812
+ .q-icon__svg,
813
+ .q-icon__img {
814
+ width: var(--q-icon-size-sm);
815
+ height: var(--q-icon-size-sm);
816
+ }
817
+ .q-icon__font {
818
+ font-size: var(--q-icon-size-sm);
819
+ }
820
+ }
807
821
  &__remove.q-button {
808
822
  padding: var(--q-control-padding-y-sm);
809
823
  min-width: fit-content;
@@ -841,10 +855,10 @@ body {
841
855
  &--outlined {
842
856
  background-color: transparent;
843
857
  border-color: var(--q-badge-main-color);
844
- color: var(--q-badge-main-color);
858
+ color: var(--q-badge-text-color);
845
859
  }
846
860
  &--tonal {
847
- color: var(--q-badge-main-color);
861
+ color: var(--q-badge-text-color);
848
862
  #{$this}__underlay {
849
863
  background-color: var(--q-badge-main-color);
850
864
  }
@@ -861,7 +875,7 @@ body {
861
875
  }
862
876
  }
863
877
  &--disabled {
864
- opacity: 0.6;
878
+
865
879
  pointer-events: none;
866
880
  }
867
881
 
@@ -963,6 +977,75 @@ body {
963
977
  transform-origin: 100% 100%;
964
978
  }
965
979
  }
980
+ .q-breadcrumbs {
981
+ &__list {
982
+ display: flex;
983
+ flex-wrap: wrap;
984
+ align-items: stretch;
985
+ min-height: var(--q-interactive-height);
986
+ margin: 0;
987
+ padding: 0;
988
+ list-style: none;
989
+ }
990
+ &__item {
991
+ display: flex;
992
+ align-items: stretch;
993
+ min-width: 0;
994
+
995
+
996
+
997
+
998
+ &--collapsed .q-breadcrumbs__link {
999
+ @include q-sr-only;
1000
+ }
1001
+ }
1002
+ &__separator {
1003
+ display: inline-flex;
1004
+ align-items: center;
1005
+ margin-inline: var(--q-space-1);
1006
+ color: var(--q-theme-neutral-light);
1007
+ }
1008
+ &__link {
1009
+ display: inline-flex;
1010
+ align-items: center;
1011
+ gap: var(--q-space-1);
1012
+ color: var(--q-theme-neutral-dark);
1013
+ text-decoration: none;
1014
+ border-radius: var(--q-border-radius);
1015
+ min-width: 0;
1016
+ &:focus-visible {
1017
+ outline: var(--q-focus-ring);
1018
+ outline-offset: var(--q-focus-ring-offset);
1019
+ }
1020
+ &[aria-current='page'] {
1021
+ font-weight: var(--q-font-weight-bold);
1022
+ cursor: default;
1023
+ }
1024
+ &:is(a):not([aria-current='page']) {
1025
+ cursor: pointer;
1026
+ @media (hover: hover) {
1027
+ &:hover {
1028
+ color: var(--q-theme-primary);
1029
+ text-decoration: underline;
1030
+ }
1031
+ }
1032
+ }
1033
+ }
1034
+ &__label {
1035
+ overflow: hidden;
1036
+ text-overflow: ellipsis;
1037
+ white-space: nowrap;
1038
+ }
1039
+ &__collapsed-trigger {
1040
+ margin-inline: calc(var(--q-space-1) * -1);
1041
+
1042
+ @media (hover: hover) {
1043
+ &.q-button--text:hover:not(:disabled) {
1044
+ text-decoration: none;
1045
+ }
1046
+ }
1047
+ }
1048
+ }
966
1049
  @keyframes q-button-ripple {
967
1050
  0% {
968
1051
  transform: scale(0);
@@ -979,6 +1062,8 @@ body {
979
1062
  --q-button-main-color-rgb: var(--q-theme-primary-rgb);
980
1063
  --q-button-on-main-color: var(--q-theme-on-primary);
981
1064
  --q-button-on-main-color-rgb: var(--q-theme-on-primary-rgb);
1065
+ --q-button-text-color: var(--q-theme-primary);
1066
+ --q-button-hover-text-color: var(--q-theme-primary-dark);
982
1067
  --q-button-hover-color: var(--q-theme-primary-dark);
983
1068
  --q-button-hover-color-rgb: var(--q-theme-primary-dark-rgb);
984
1069
  --q-button-on-hover-color: var(--q-theme-on-primary-dark);
@@ -1008,7 +1093,8 @@ body {
1008
1093
  text-decoration: none;
1009
1094
  white-space: nowrap;
1010
1095
  transition-property:
1011
- color, background-color, border-color, box-shadow, text-decoration-color, fill, stroke;
1096
+ color, background-color, border-color, box-shadow, text-decoration, text-decoration-color, fill,
1097
+ stroke;
1012
1098
  transition-duration: 0.15s;
1013
1099
  &#{$this}--labeled {
1014
1100
  padding: var(--q-button-padding-y) var(--q-button-labeled-padding-x);
@@ -1090,9 +1176,10 @@ body {
1090
1176
  }
1091
1177
  }
1092
1178
  &--tonal {
1179
+
1093
1180
  background-color: rgb(var(--q-button-main-color-rgb) / 12%);
1094
1181
  border-color: transparent;
1095
- color: var(--q-button-main-color);
1182
+ color: var(--q-button-text-color);
1096
1183
  @media (hover: hover) {
1097
1184
  &:hover:not(:disabled) {
1098
1185
  background-color: var(--q-button-hover-color);
@@ -1104,7 +1191,7 @@ body {
1104
1191
  &--outlined {
1105
1192
  background-color: transparent;
1106
1193
  border-color: var(--q-button-main-color);
1107
- color: var(--q-button-main-color);
1194
+ color: var(--q-button-text-color);
1108
1195
  @media (hover: hover) {
1109
1196
  &:hover:not(:disabled) {
1110
1197
  background-color: var(--q-button-hover-color);
@@ -1116,24 +1203,26 @@ body {
1116
1203
  &--ghost {
1117
1204
  background-color: transparent;
1118
1205
  border-color: transparent;
1119
- color: var(--q-button-main-color);
1206
+ color: var(--q-button-text-color);
1120
1207
  @media (hover: hover) {
1121
1208
  &:hover:not(:disabled) {
1209
+
1122
1210
  background-color: rgb(var(--q-button-hover-color-rgb) / 6%);
1123
1211
  border-color: transparent;
1124
- color: var(--q-button-hover-color);
1212
+ color: var(--q-button-hover-text-color);
1125
1213
  }
1126
1214
  }
1127
1215
  }
1128
1216
  &--text {
1129
1217
  background-color: transparent;
1130
1218
  border-color: transparent;
1131
- color: var(--q-button-main-color);
1219
+ color: var(--q-button-text-color);
1132
1220
  @media (hover: hover) {
1133
1221
  &:hover:not(:disabled) {
1134
1222
  background-color: transparent;
1135
1223
  border-color: transparent;
1136
- color: var(--q-button-hover-color);
1224
+ color: var(--q-button-hover-text-color);
1225
+ text-decoration: underline;
1137
1226
  }
1138
1227
  }
1139
1228
  }
@@ -1145,6 +1234,8 @@ body {
1145
1234
  &--background {
1146
1235
  --q-button-main-color: var(--q-theme-background);
1147
1236
  --q-button-on-main-color: var(--q-theme-on-background);
1237
+ --q-button-text-color: var(--q-theme-background);
1238
+ --q-button-hover-text-color: var(--q-theme-background);
1148
1239
  --q-button-hover-color: var(--q-theme-primary-dark);
1149
1240
  --q-button-on-hover-color: var(--q-theme-on-primary-dark);
1150
1241
  }
@@ -1154,7 +1245,7 @@ body {
1154
1245
  cursor: not-allowed;
1155
1246
  }
1156
1247
  span {
1157
- visibility: hidden;
1248
+ opacity: 0;
1158
1249
  }
1159
1250
  }
1160
1251
 
@@ -1455,10 +1546,17 @@ body {
1455
1546
  height: var(--q-carousel-indicator-height);
1456
1547
  border-radius: calc(var(--q-space-1) * 0.5);
1457
1548
  background-color: rgb(255 255 255 / 50%);
1458
- cursor: pointer;
1459
1549
  transition: all 0.3s ease;
1460
1550
  overflow: hidden;
1461
1551
  }
1552
+ .q-carousel__indicator-button {
1553
+ position: absolute;
1554
+ inset: 0;
1555
+ padding: 0;
1556
+ border: 0;
1557
+ background: transparent;
1558
+ cursor: pointer;
1559
+ }
1462
1560
  .q-carousel__indicator:hover {
1463
1561
  background-color: rgb(255 255 255 / 80%);
1464
1562
  }
@@ -1568,8 +1666,10 @@ body {
1568
1666
  .q-carousel:focus-visible {
1569
1667
  outline: var(--q-focus-ring);
1570
1668
  }
1571
- .q-carousel__control:focus-visible,
1572
- .q-carousel__indicator:focus-visible {
1669
+ .q-carousel__control:focus-visible {
1670
+ outline: var(--q-focus-ring);
1671
+ }
1672
+ .q-carousel__indicator:has(.q-carousel__indicator-button:focus-visible) {
1573
1673
  outline: var(--q-focus-ring);
1574
1674
  }
1575
1675
  .q-checkbox {
@@ -1580,7 +1680,7 @@ body {
1580
1680
  --q-transition-duration: 0.15s;
1581
1681
  display: flex;
1582
1682
  align-items: center;
1583
- gap: var(--q-space-2);
1683
+ gap: var(--q-space-1);
1584
1684
  width: fit-content;
1585
1685
  box-sizing: border-box;
1586
1686
  min-height: var(--q-interactive-height);
@@ -1764,6 +1864,12 @@ body {
1764
1864
  --q-button-font-size: var(--q-font-size-md);
1765
1865
 
1766
1866
  padding: var(--q-collapsible-header-padding);
1867
+
1868
+ @media (hover: hover) {
1869
+ &.q-button--text:hover:not(:disabled) {
1870
+ text-decoration: none;
1871
+ }
1872
+ }
1767
1873
  .q-button__content {
1768
1874
  gap: 0;
1769
1875
  padding: var(--q-collapsible-btn-padding);
@@ -1975,7 +2081,7 @@ body {
1975
2081
  text-align: center;
1976
2082
  font-size: var(--q-font-size-sm);
1977
2083
  font-weight: 600;
1978
- opacity: 0.7;
2084
+ color: var(--q-theme-neutral);
1979
2085
  padding: var(--q-space-2) 0;
1980
2086
  }
1981
2087
  }
@@ -1988,8 +2094,13 @@ body {
1988
2094
  aspect-ratio: 1;
1989
2095
  display: flex;
1990
2096
  transition-duration: 0s;
1991
- &.q-date-time-picker__day--other-month {
1992
- opacity: 0.5;
2097
+ &.q-date-time-picker__day--other-month:not(
2098
+ .q-date-time-picker__day--selected,
2099
+ .q-date-time-picker__day--in-range,
2100
+ .q-date-time-picker__day--range-start,
2101
+ .q-date-time-picker__day--range-end
2102
+ ) {
2103
+ color: var(--q-theme-neutral);
1993
2104
  }
1994
2105
  &.q-date-time-picker__day--today {
1995
2106
  border-color: var(--q-button-main-color);
@@ -2128,6 +2239,12 @@ body {
2128
2239
  position: absolute;
2129
2240
  top: var(--q-space-2);
2130
2241
  right: var(--q-space-2);
2242
+
2243
+ @media (hover: hover) {
2244
+ &.q-button--text:hover:not(:disabled) {
2245
+ text-decoration: none;
2246
+ }
2247
+ }
2131
2248
  }
2132
2249
  &__underlay {
2133
2250
  background-color: rgb(var(--q-theme-on-background-rgb) / 30%);
@@ -2173,12 +2290,12 @@ body {
2173
2290
  }
2174
2291
  .q-divider {
2175
2292
  --q-divider-thickness: 1px;
2176
- --q-divider-color: var(--q-theme-neutral-light);
2293
+ --q-divider-color: var(--q-border-color);
2177
2294
  display: flex;
2178
2295
  align-items: center;
2179
2296
  justify-content: center;
2180
2297
  position: relative;
2181
- color: var(--q-divider-color);
2298
+ color: var(--q-divider-label-color, var(--q-theme-neutral-dark));
2182
2299
  font-size: var(--q-font-size-md);
2183
2300
 
2184
2301
  &--horizontal {
@@ -2445,7 +2562,7 @@ body {
2445
2562
  display: flex;
2446
2563
  align-items: center;
2447
2564
  gap: var(--q-space-1);
2448
- color: var(--q-theme-neutral);
2565
+ color: var(--q-theme-neutral-dark);
2449
2566
  min-height: var(--q-file-input-preview-side);
2450
2567
  }
2451
2568
 
@@ -2953,13 +3070,17 @@ $input-group-addon-background: rgb(var(--q-theme-neutral-light-rgb) / 25%);
2953
3070
  margin-left: -1px;
2954
3071
  }
2955
3072
  }
3073
+
3074
+
3075
+ &.q-field:not(.q-field--disabled) > .q-field__control:focus-within {
3076
+ outline: none;
3077
+ }
2956
3078
  > .q-field__control {
2957
3079
  display: flex;
2958
3080
  align-items: stretch;
2959
3081
  height: auto;
2960
3082
  border-width: 0;
2961
3083
  padding: 0;
2962
- outline: none !important;
2963
3084
  > * + * {
2964
3085
  margin-left: -1px;
2965
3086
  }
@@ -3005,20 +3126,18 @@ $input-group-addon-background: rgb(var(--q-theme-neutral-light-rgb) / 25%);
3005
3126
  align-self: center;
3006
3127
  }
3007
3128
  }
3008
- $q-line-loader-height: var(--q-line-loader-height);
3009
- $q-line-loader-color: var(--q-line-loader-color);
3010
3129
  .q-line-loader {
3011
3130
  --q-line-loader-height: var(--q-space-1);
3012
3131
  --q-line-loader-color: var(--q-theme-primary-rgb);
3013
3132
  width: 100%;
3014
- height: $q-line-loader-height;
3133
+ height: var(--q-line-loader-height);
3015
3134
  background: linear-gradient(
3016
3135
  90deg,
3017
- rgb(#{$q-line-loader-color} / 6.7%) 33%,
3018
- rgb(#{$q-line-loader-color} / 100%) 50%,
3019
- rgb(#{$q-line-loader-color} / 6.7%) 66%
3136
+ rgb(var(--q-line-loader-color) / 6.7%) 33%,
3137
+ rgb(var(--q-line-loader-color) / 100%) 50%,
3138
+ rgb(var(--q-line-loader-color) / 6.7%) 66%
3020
3139
  )
3021
- #f2f2f2;
3140
+ var(--q-theme-neutral-light);
3022
3141
  background-size: 300% 100%;
3023
3142
  animation: l1 1s infinite linear;
3024
3143
  &--rounded {
@@ -3090,6 +3209,11 @@ $q-line-loader-color: var(--q-line-loader-color);
3090
3209
  &:focus,
3091
3210
  &--highlighted {
3092
3211
  background-color: rgb(var(--q-theme-primary-light-rgb) / 50%);
3212
+
3213
+
3214
+ .q-checkbox:not(.q-checkbox--disabled) .q-checkbox__input {
3215
+ border-color: var(--q-active-color);
3216
+ }
3093
3217
  }
3094
3218
  &--disabled {
3095
3219
  pointer-events: none;
@@ -3098,8 +3222,13 @@ $q-line-loader-color: var(--q-line-loader-color);
3098
3222
  cursor: not-allowed;
3099
3223
  }
3100
3224
  }
3225
+
3101
3226
  &--selected {
3102
- background-color: var(--q-theme-primary-light) !important;
3227
+ background-color: var(--q-theme-primary-light);
3228
+ &:hover,
3229
+ &:focus {
3230
+ background-color: var(--q-theme-primary-light);
3231
+ }
3103
3232
  }
3104
3233
  em {
3105
3234
  font-style: normal;
@@ -3145,7 +3274,7 @@ $q-line-loader-color: var(--q-line-loader-color);
3145
3274
  gap: var(--q-space-1);
3146
3275
  align-items: flex-start;
3147
3276
  color: var(--q-theme-neutral);
3148
- font-size: 0.75em;
3277
+ font-size: calc(var(--q-font-size-md) * 0.75);
3149
3278
  .q-icon {
3150
3279
  color: currentcolor;
3151
3280
  font-size: inherit;
@@ -3221,6 +3350,12 @@ $q-line-loader-color: var(--q-line-loader-color);
3221
3350
  }
3222
3351
  &.q-button--text {
3223
3352
  color: var(--q-theme-primary);
3353
+
3354
+ @media (hover: hover) {
3355
+ &:hover:not(:disabled) {
3356
+ text-decoration: none;
3357
+ }
3358
+ }
3224
3359
  }
3225
3360
  }
3226
3361
  &__content {
@@ -3246,6 +3381,12 @@ $q-line-loader-color: var(--q-line-loader-color);
3246
3381
  }
3247
3382
  &.q-button--text {
3248
3383
  color: var(--q-theme-primary);
3384
+
3385
+ @media (hover: hover) {
3386
+ &:hover:not(:disabled) {
3387
+ text-decoration: none;
3388
+ }
3389
+ }
3249
3390
  }
3250
3391
  .q-obfuscation__icon.q-icon {
3251
3392
  width: var(--q-icon-size-sm);
@@ -3473,7 +3614,7 @@ $q-line-loader-color: var(--q-line-loader-color);
3473
3614
 
3474
3615
  --q-overlay-bg: var(--q-theme-container);
3475
3616
  --q-overlay-color: var(--q-theme-neutral-dark);
3476
- --q-overlay-border-color: var(--q-theme-neutral-light);
3617
+ --q-overlay-border-color: var(--q-border-color);
3477
3618
  --q-overlay-arrow-gap: var(--q-space-2);
3478
3619
  --q-overlay-arrow-size: calc(var(--q-overlay-arrow-gap) * 1.4142);
3479
3620
  --q-overlay-arrow-tip-radius: calc(var(--q-space-1) * 0.4);
@@ -3667,13 +3808,13 @@ $q-line-loader-color: var(--q-line-loader-color);
3667
3808
 
3668
3809
 
3669
3810
  color: var(--CountryFlagIcon-height, var(--q-theme-neutral-dark));
3670
- font-size: 0.65em;
3811
+ font-size: calc(var(--q-font-size-md) * 0.65);
3671
3812
  font-weight: var(--q-font-weight-bold);
3672
3813
  }
3673
3814
  &__flag-fallback {
3674
3815
  background-color: rgb(var(--q-theme-neutral-light-rgb) / 25%);
3675
3816
  color: var(--q-theme-neutral-dark);
3676
- font-size: 0.65em;
3817
+ font-size: calc(var(--q-font-size-md) * 0.65);
3677
3818
  font-weight: var(--q-font-weight-bold);
3678
3819
  }
3679
3820
  &__validation-message {
@@ -3874,11 +4015,8 @@ $q-line-loader-color: var(--q-line-loader-color);
3874
4015
  }
3875
4016
  }
3876
4017
  }
3877
- $table-header-bg: rgb(var(--q-theme-neutral-light-rgb) / 25%);
3878
- $row-hover-bg: rgb(var(--q-theme-primary-light-rgb) / 50%);
3879
- $row-selected-bg: rgb(var(--q-theme-primary-rgb) / 15%);
3880
- $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) / 50%);
3881
4018
  .q-property-list {
4019
+ $base-border: var(--q-border-width) solid var(--q-border-color);
3882
4020
  margin: 0;
3883
4021
  font-size: var(--q-font-size-md);
3884
4022
  display: inline-flex;
@@ -3922,12 +4060,12 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
3922
4060
  }
3923
4061
  }
3924
4062
  &__header {
3925
- background: $table-header-bg;
4063
+ background: rgb(var(--q-theme-neutral-light-rgb) / 25%);
3926
4064
  height: calc(var(--q-space-1) * 6.25);
3927
4065
  }
3928
4066
  &__row {
3929
4067
  &:hover {
3930
- background-color: $row-hover-bg;
4068
+ background-color: rgb(var(--q-theme-primary-light-rgb) / 50%);
3931
4069
  }
3932
4070
  .q-field:not(.q-field--readonly) .q-field__control {
3933
4071
  background-color: var(--q-theme-background);
@@ -3936,17 +4074,11 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
3936
4074
  display: none;
3937
4075
  }
3938
4076
  &--selected {
3939
- background-color: $row-selected-bg;
4077
+ background-color: rgb(var(--q-theme-primary-rgb) / 15%);
3940
4078
  }
3941
4079
  }
3942
4080
  &__cell {
3943
4081
  padding: var(--q-space-1) var(--q-space-2);
3944
- &--label {
3945
- width: 20%;
3946
- font-size: var(--q-font-size-sm);
3947
- text-wrap: nowrap;
3948
- opacity: 0.8;
3949
- }
3950
4082
  .q-field {
3951
4083
  max-width: 100%;
3952
4084
  width: 100%;
@@ -3965,6 +4097,12 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
3965
4097
  &__content {
3966
4098
  display: flex;
3967
4099
  align-items: center;
4100
+
4101
+ @media (hover: hover) {
4102
+ .q-button--text:hover:not(:disabled) {
4103
+ text-decoration: none;
4104
+ }
4105
+ }
3968
4106
  }
3969
4107
  ~ .q-property-list__row .q-property-list__cell-label {
3970
4108
  padding: 0 calc(var(--q-space-1) * 8);
@@ -4015,7 +4153,7 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
4015
4153
  box-sizing: border-box;
4016
4154
  height: var(--q-interactive-height);
4017
4155
  min-height: var(--q-interactive-height);
4018
- gap: calc(var(--q-space-1) * 1.5);
4156
+ gap: var(--q-space-1);
4019
4157
  font-size: var(--q-font-size-md);
4020
4158
 
4021
4159
  line-height: var(--q-radio-button-circle-size);
@@ -4168,7 +4306,7 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
4168
4306
  margin: 0;
4169
4307
  margin-top: var(--q-space-1);
4170
4308
  display: flex;
4171
- align-items: flex-start;
4309
+ align-items: center;
4172
4310
  width: fit-content;
4173
4311
  gap: var(--q-space-1);
4174
4312
  margin-bottom: var(--q-space-2);
@@ -4187,7 +4325,7 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
4187
4325
  &--minor-border-top {
4188
4326
  background-color: transparent;
4189
4327
  border: none;
4190
- border-top: var(--q-border-width) solid var(--q-theme-neutral-light);
4328
+ border-top: var(--q-border-width) solid var(--q-border-color);
4191
4329
  border-radius: 0;
4192
4330
  margin-top: var(--q-space-2);
4193
4331
  padding: var(--q-space-1) 0;
@@ -4206,7 +4344,7 @@ $base-border: var(--q-border-width) solid rgb(var(--q-theme-neutral-light-rgb) /
4206
4344
  }
4207
4345
  }
4208
4346
  &--title-background {
4209
- padding: 0 !important;
4347
+ padding: 0;
4210
4348
  &::before {
4211
4349
  position: absolute;
4212
4350
  top: 0;
@@ -4433,8 +4571,13 @@ $sidebar-sizes: (
4433
4571
  border-radius: 0;
4434
4572
  border-width: 0;
4435
4573
  border-bottom-width: var(--q-border-width);
4436
- border-bottom-color: var(--q-sidebar-border-color) !important;
4574
+ border-bottom-color: var(--q-sidebar-border-color);
4437
4575
  font-size: calc(var(--q-font-size-sm) * 0.8);
4576
+
4577
+
4578
+ &:hover:not(:disabled) {
4579
+ border-bottom-color: var(--q-sidebar-border-color);
4580
+ }
4438
4581
  .q-icon {
4439
4582
  font-size: var(--q-icon-size-lg);
4440
4583
  }
@@ -4608,125 +4751,1096 @@ $spinner-color: var(--q-theme-primary);
4608
4751
  transform: rotate(1turn);
4609
4752
  }
4610
4753
  }
4611
- .q-switch {
4612
-
4613
-
4614
-
4615
- --q-switch-inner-padding: calc(var(--q-space-1) * 0.5);
4616
- --q-switch-border-radius: 9999px;
4617
- --q-switch-transition-duration: 0.15s;
4618
- --q-switch-transition-easing: ease-out;
4619
-
4620
- --q-switch-label-padding-v: calc(var(--q-space-1) * 2.5);
4621
- --q-switch-label-padding-h: calc(var(--q-space-1) * 3.75);
4622
- --q-switch-font-size: var(--q-font-size-sm);
4623
-
4624
- --q-switch-label-block-size: calc(
4625
- var(--q-switch-label-padding-v) * 2 + var(--q-switch-font-size)
4626
- );
4627
- --q-switch-drawn-height: calc(
4628
- var(--q-switch-inner-padding) * 2 + var(--q-switch-label-block-size)
4629
- );
4630
- --q-switch-hit-padding-block: max(
4631
- 0px,
4632
- calc((var(--q-interactive-height) - var(--q-switch-drawn-height)) / 2)
4633
- );
4634
-
4635
- --q-switch-shadow-color-primary: rgb(var(--q-theme-on-background-rgb) / 20%);
4636
- --q-switch-shadow-color-secondary: rgb(var(--q-theme-on-background-rgb) / 10%);
4637
- --q-switch-shadow-blur-base: calc(var(--q-space-1) * 0.75);
4638
- --q-switch-shadow-offset-y: calc(var(--q-space-1) * 0.25);
4639
- --q-switch-shadow-spread: calc(var(--q-space-1) * 0.5);
4640
-
4641
- --q-switch-shadow-color-primary-hover: rgb(var(--q-theme-on-background-rgb) / 30%);
4642
- --q-switch-shadow-color-secondary-hover: rgb(var(--q-theme-on-background-rgb) / 15%);
4643
- --q-switch-shadow-blur-hover: calc(var(--q-space-1) * 1.5);
4644
- --q-switch-shadow-offset-y-hover: calc(var(--q-space-1) * 0.5);
4645
- --q-switch-shadow-spread-hover: var(--q-space-1);
4646
-
4647
- --q-switch-disabled-opacity: 0.5;
4648
- --q-switch-hover-background-opacity: 0.5;
4649
-
4650
- --q-switch-checked-background: var(--q-theme-primary);
4651
- --q-switch-on-checked-background: var(--q-theme-on-primary);
4652
- --q-switch-unchecked-background: rgb(var(--q-theme-neutral-light-rgb) / 50%);
4653
- --q-switch-on-unchecked-background: var(--q-theme-neutral);
4654
-
4655
-
4656
-
4657
- display: inline-flex;
4658
- align-items: center;
4659
- position: relative;
4660
- white-space: nowrap;
4661
- box-sizing: border-box;
4662
- height: var(--q-interactive-height);
4663
- min-height: var(--q-interactive-height);
4754
+ .q-steps {
4755
+ --q-steps-indicator-size: calc(var(--q-space-1) * 8);
4756
+ --q-steps-arrow-size: var(--q-space-3);
4757
+ --q-steps-connector-width: calc(var(--q-space-1) * 0.5);
4758
+ --q-steps-connector-gap: calc(var(--q-space-1) * 1.5);
4759
+ display: flex;
4760
+ flex-direction: column;
4761
+ gap: var(--q-space-4);
4664
4762
 
4665
- padding: var(--q-switch-hit-padding-block) 0;
4666
- background: transparent;
4667
- border-radius: var(--q-switch-border-radius);
4668
- cursor: pointer;
4763
+ .q-step__indicator-content .q-icon,
4764
+ .q-steps__panel-header-icon .q-icon,
4765
+ .q-step__badge .q-icon {
4766
+ color: currentcolor;
4767
+ fill: currentcolor;
4768
+ * {
4769
+ fill: currentcolor;
4770
+ }
4771
+ }
4669
4772
 
4670
4773
 
4671
4774
 
4672
- @include q-size-modifiers;
4775
+ .q-step__badge {
4776
+ position: absolute;
4777
+ top: var(--q-space-2);
4778
+ z-index: 2;
4779
+ box-sizing: border-box;
4780
+ min-height: 0;
4781
+ aspect-ratio: 1;
4782
+ border: var(--q-border-width) solid var(--q-theme-background);
4783
+ }
4673
4784
 
4674
4785
 
4675
4786
 
4676
- &--disabled {
4677
- opacity: var(--q-switch-disabled-opacity);
4678
- pointer-events: none;
4679
- cursor: not-allowed;
4787
+ .q-step__badge .q-icon {
4788
+ transform: scale(1.3);
4680
4789
  }
4681
- }
4682
- .q-switch:not(.q-switch--with-labels) {
4683
- --q-switch-label-padding-h: var(--q-switch-label-padding-v);
4684
- }
4685
- .q-switch__container {
4686
- position: relative;
4687
- display: inline-flex;
4688
- align-items: center;
4689
- justify-content: center;
4690
- gap: 0.5em;
4691
- }
4692
- .q-switch__input {
4693
- position: absolute;
4694
- inset: var(--q-switch-hit-padding-block) 0 var(--q-switch-hit-padding-block) 0;
4695
-
4696
- width: auto;
4697
- height: auto;
4698
- margin: 0;
4699
- padding: 0;
4700
- appearance: none;
4701
- border: none;
4702
- background: transparent;
4703
- cursor: pointer;
4704
- border-radius: var(--q-switch-border-radius);
4705
- z-index: 2;
4706
-
4707
- &:focus-visible {
4708
- outline: var(--q-focus-ring);
4790
+ &__list {
4791
+ display: flex;
4792
+ list-style: none;
4793
+ margin: 0;
4794
+ padding: 0;
4709
4795
  }
4710
-
4711
- &:disabled {
4712
- cursor: not-allowed;
4713
- &:focus-visible {
4714
- outline: none;
4715
- }
4796
+ &__content {
4797
+ min-width: 0;
4716
4798
  }
4717
- }
4718
- .q-switch__labels {
4719
- display: flex;
4720
- align-items: center;
4721
- width: 100%;
4722
- position: relative;
4723
- box-sizing: border-box;
4724
- padding: var(--q-switch-inner-padding);
4725
- background: var(--q-switch-unchecked-background);
4726
- border-radius: var(--q-switch-border-radius);
4727
- transition: background var(--q-switch-transition-duration) var(--q-switch-transition-easing);
4728
- }
4729
- .q-switch__label {
4799
+ &__body {
4800
+ display: flex;
4801
+ flex-direction: column;
4802
+ gap: var(--q-space-2);
4803
+ min-width: 0;
4804
+ }
4805
+ &__nav {
4806
+ display: flex;
4807
+ align-items: center;
4808
+ gap: var(--q-space-2);
4809
+ }
4810
+
4811
+ &--horizontal {
4812
+
4813
+
4814
+
4815
+
4816
+
4817
+
4818
+
4819
+ --q-steps-visible-count: 4;
4820
+ @media (max-width: $breakpoint-md) {
4821
+ --q-steps-visible-count: 3;
4822
+ }
4823
+ @media (max-width: $breakpoint-sm) {
4824
+
4825
+
4826
+ .q-step:not(.q-step--active) .q-step__labels {
4827
+ display: none;
4828
+ }
4829
+ }
4830
+ @media (min-width: $breakpoint-xxl) {
4831
+ --q-steps-visible-count: 5;
4832
+ }
4833
+ .q-steps__list {
4834
+ width: 100%;
4835
+ }
4836
+ .q-steps__overflow {
4837
+ width: 100%;
4838
+ }
4839
+ .q-steps__track {
4840
+ display: flex;
4841
+ flex-direction: row;
4842
+ align-items: stretch;
4843
+ }
4844
+ .q-step {
4845
+ display: flex;
4846
+ flex: 1 0 calc(100% / var(--q-steps-visible-count));
4847
+ min-width: 0;
4848
+ }
4849
+ .q-step__header {
4850
+ width: 100%;
4851
+ }
4852
+ .q-steps__panel {
4853
+ border: var(--q-border-width) solid var(--q-border-color);
4854
+ border-radius: var(--q-border-radius);
4855
+ overflow: hidden;
4856
+ }
4857
+ .q-steps__panel-header {
4858
+ display: flex;
4859
+ align-items: center;
4860
+ gap: var(--q-space-2);
4861
+ padding: var(--q-space-3) var(--q-space-4);
4862
+ background-color: var(--q-theme-primary);
4863
+ color: var(--q-theme-on-primary);
4864
+ font-weight: var(--q-font-weight-bold);
4865
+ }
4866
+ .q-steps__panel-header-icon {
4867
+ display: inline-flex;
4868
+ align-items: center;
4869
+ justify-content: center;
4870
+ }
4871
+ .q-steps__content {
4872
+ padding: var(--q-space-4);
4873
+ }
4874
+ }
4875
+ &--vertical {
4876
+ .q-steps__list {
4877
+ flex-direction: column;
4878
+ gap: 0;
4879
+ }
4880
+ .q-step {
4881
+ display: flex;
4882
+ flex-direction: column;
4883
+ }
4884
+ }
4885
+
4886
+ &--circle {
4887
+ .q-step__header {
4888
+ position: relative;
4889
+ display: flex;
4890
+ align-items: flex-start;
4891
+ gap: var(--q-space-3);
4892
+ margin: 0;
4893
+ padding: var(--q-space-2);
4894
+ border: 0;
4895
+ border-radius: var(--q-border-radius);
4896
+ background: transparent;
4897
+ color: inherit;
4898
+ font: inherit;
4899
+ text-align: start;
4900
+ cursor: pointer;
4901
+ &:disabled {
4902
+ cursor: not-allowed;
4903
+ }
4904
+ &:focus-visible {
4905
+ outline: var(--q-focus-ring);
4906
+ }
4907
+ }
4908
+ .q-step__indicator {
4909
+ position: relative;
4910
+ z-index: 1;
4911
+ display: inline-flex;
4912
+ flex-shrink: 0;
4913
+ align-items: center;
4914
+ justify-content: center;
4915
+ width: var(--q-steps-indicator-size);
4916
+ height: var(--q-steps-indicator-size);
4917
+
4918
+
4919
+ border: var(--q-border-width) solid transparent;
4920
+ border-radius: 50%;
4921
+ background-color: var(--q-theme-neutral);
4922
+ color: var(--q-theme-on-primary);
4923
+ font-weight: var(--q-font-weight-bold);
4924
+ line-height: 1;
4925
+ }
4926
+ .q-step__indicator-content {
4927
+ display: inline-flex;
4928
+ align-items: center;
4929
+ justify-content: center;
4930
+ }
4931
+ .q-step__labels {
4932
+ display: flex;
4933
+ flex-direction: column;
4934
+ gap: calc(var(--q-space-1) * 0.5);
4935
+ min-width: 0;
4936
+ }
4937
+ .q-step__title {
4938
+ display: inline-flex;
4939
+ align-items: baseline;
4940
+ gap: calc(var(--q-space-1) * 0.5);
4941
+ font-weight: var(--q-font-weight-bold);
4942
+ color: var(--q-theme-on-background);
4943
+ }
4944
+ .q-step__caption {
4945
+ font-size: var(--q-font-size-sm);
4946
+ color: var(--q-theme-neutral);
4947
+ }
4948
+ .q-step__header:not(.q-step--active, .q-step--visited) .q-step__title {
4949
+ color: var(--q-theme-neutral);
4950
+ }
4951
+ .q-step--active {
4952
+ .q-step__indicator {
4953
+ background-color: var(--q-theme-primary);
4954
+ border-color: var(--q-theme-primary);
4955
+ color: var(--q-theme-on-primary);
4956
+ box-shadow: var(--q-shadow-sm);
4957
+ }
4958
+ .q-step__title {
4959
+ color: var(--q-theme-on-background);
4960
+ }
4961
+ }
4962
+ .q-step--visited {
4963
+ .q-step__indicator {
4964
+ background-color: var(--q-theme-background);
4965
+ border-color: var(--q-theme-primary);
4966
+ color: var(--q-theme-primary);
4967
+ }
4968
+ }
4969
+
4970
+
4971
+ @media (hover: hover) {
4972
+ .q-step__header:not(.q-step--active, .q-step--visited):hover:not(:disabled)
4973
+ .q-step__indicator {
4974
+ background-color: var(--q-theme-neutral-dark);
4975
+ }
4976
+ .q-step__header.q-step--active:hover:not(:disabled) .q-step__indicator {
4977
+ background-color: var(--q-theme-primary-dark);
4978
+ border-color: var(--q-theme-primary-dark);
4979
+ }
4980
+ .q-step__header.q-step--visited:hover:not(:disabled) .q-step__indicator {
4981
+ background-color: var(--q-theme-primary-dark);
4982
+ border-color: var(--q-theme-primary-dark);
4983
+ color: var(--q-theme-on-primary-dark);
4984
+ }
4985
+ }
4986
+ &.q-steps--horizontal {
4987
+ .q-steps__track {
4988
+ align-items: flex-start;
4989
+ }
4990
+ .q-step__header {
4991
+ position: relative;
4992
+ flex-direction: column;
4993
+ align-items: center;
4994
+ text-align: center;
4995
+ }
4996
+
4997
+
4998
+ .q-step__badge {
4999
+ inset-inline-start: calc(50% + (var(--q-steps-indicator-size) * 0.5));
5000
+ transform: translate(-50%, -30%);
5001
+ }
5002
+ .q-step:not(:last-child) .q-step__header::after {
5003
+ content: '';
5004
+ position: absolute;
5005
+ top: calc(var(--q-space-2) + (var(--q-steps-indicator-size) * 0.5));
5006
+ inset-inline-start: calc(
5007
+ 50% + (var(--q-steps-indicator-size) * 0.5) + var(--q-steps-connector-gap)
5008
+ );
5009
+ width: calc(100% - var(--q-steps-indicator-size) - (var(--q-steps-connector-gap) * 2));
5010
+ height: var(--q-steps-connector-width);
5011
+ background-color: var(--q-theme-neutral);
5012
+ }
5013
+ .q-step--next-reached:not(:last-child) .q-step__header::after {
5014
+ background-color: var(--q-theme-primary);
5015
+ }
5016
+ .q-step__labels {
5017
+ align-items: center;
5018
+ text-align: center;
5019
+ }
5020
+ }
5021
+ &.q-steps--vertical {
5022
+
5023
+
5024
+
5025
+ --q-steps-row-gap: var(--q-space-2);
5026
+ .q-step {
5027
+ position: relative;
5028
+ }
5029
+ .q-step__header {
5030
+ align-items: flex-start;
5031
+ }
5032
+
5033
+
5034
+ .q-step__badge {
5035
+ inset-inline-start: calc(var(--q-space-2) + var(--q-steps-indicator-size));
5036
+ transform: translate(-50%, -40%);
5037
+ }
5038
+ .q-step:not(.q-step--last, .q-step--active) {
5039
+ margin-block-end: var(--q-steps-row-gap);
5040
+ }
5041
+
5042
+
5043
+
5044
+
5045
+ .q-step:not(.q-step--last)::before {
5046
+ content: '';
5047
+ position: absolute;
5048
+ top: calc(var(--q-space-2) + var(--q-steps-indicator-size) + var(--q-steps-connector-gap));
5049
+ inset-inline-start: calc(
5050
+ var(--q-space-2) + (var(--q-steps-indicator-size) * 0.5) -
5051
+ (var(--q-steps-connector-width) * 0.5)
5052
+ );
5053
+
5054
+
5055
+
5056
+ bottom: calc(var(--q-steps-connector-gap) - var(--q-space-2) - var(--q-steps-row-gap));
5057
+ width: var(--q-steps-connector-width);
5058
+ background-color: var(--q-theme-neutral);
5059
+ }
5060
+ .q-step--next-reached:not(.q-step--last)::before {
5061
+ background-color: var(--q-theme-primary);
5062
+ }
5063
+ .q-step--active:not(.q-step--last)::before {
5064
+ bottom: 0;
5065
+ }
5066
+ .q-steps__body {
5067
+ position: relative;
5068
+ padding-inline-start: calc(var(--q-steps-indicator-size) + var(--q-space-5));
5069
+ padding-block-start: var(--q-steps-row-gap);
5070
+ &:not(:last-child) {
5071
+ margin-block-end: var(--q-steps-row-gap);
5072
+ }
5073
+ &:not(:last-child)::before {
5074
+ content: '';
5075
+ position: absolute;
5076
+ top: 0;
5077
+ bottom: calc(var(--q-steps-connector-gap) - var(--q-space-2) - var(--q-steps-row-gap));
5078
+ inset-inline-start: calc(
5079
+ var(--q-space-2) + (var(--q-steps-indicator-size) * 0.5) -
5080
+ (var(--q-steps-connector-width) * 0.5)
5081
+ );
5082
+ width: var(--q-steps-connector-width);
5083
+ background-color: var(--q-theme-neutral);
5084
+ }
5085
+ &.q-step--next-reached::before {
5086
+ background-color: var(--q-theme-primary);
5087
+ }
5088
+ }
5089
+ }
5090
+ }
5091
+
5092
+ &--dot {
5093
+ --q-steps-dot-size: var(--q-space-2);
5094
+ --q-steps-dot-size-active: var(--q-space-3);
5095
+
5096
+
5097
+
5098
+ --q-steps-indicator-size: var(--q-steps-dot-size-active);
5099
+
5100
+
5101
+
5102
+
5103
+ --q-steps-dot-current-size: var(--q-steps-dot-size);
5104
+ .q-step__header {
5105
+ display: flex;
5106
+ align-items: flex-start;
5107
+ gap: var(--q-space-3);
5108
+ margin: 0;
5109
+ padding: var(--q-space-2);
5110
+ border: 0;
5111
+ border-radius: var(--q-border-radius);
5112
+ background: transparent;
5113
+ color: inherit;
5114
+ font: inherit;
5115
+ text-align: start;
5116
+ cursor: pointer;
5117
+ &:disabled {
5118
+ cursor: not-allowed;
5119
+ }
5120
+ &:focus-visible {
5121
+ outline: var(--q-focus-ring);
5122
+ }
5123
+ }
5124
+ .q-step__indicator {
5125
+ position: relative;
5126
+ z-index: 1;
5127
+ display: inline-flex;
5128
+ flex-shrink: 0;
5129
+ align-items: center;
5130
+ justify-content: center;
5131
+ width: var(--q-steps-indicator-size);
5132
+ height: var(--q-steps-indicator-size);
5133
+ &::after {
5134
+ content: '';
5135
+ width: var(--q-steps-dot-size);
5136
+ height: var(--q-steps-dot-size);
5137
+ border-radius: 50%;
5138
+ background-color: var(--q-theme-neutral);
5139
+ transition:
5140
+ width var(--q-transition-duration) var(--q-transition-timing-function),
5141
+ height var(--q-transition-duration) var(--q-transition-timing-function),
5142
+ background-color var(--q-transition-duration) var(--q-transition-timing-function);
5143
+ }
5144
+ }
5145
+ .q-step__labels {
5146
+ display: flex;
5147
+ flex-direction: column;
5148
+ gap: calc(var(--q-space-1) * 0.5);
5149
+ min-width: 0;
5150
+ }
5151
+ .q-step__title {
5152
+ display: inline-flex;
5153
+ align-items: baseline;
5154
+ gap: calc(var(--q-space-1) * 0.5);
5155
+ font-weight: var(--q-font-weight-bold);
5156
+ color: var(--q-theme-on-background);
5157
+ line-height: var(--q-line-height-md);
5158
+ }
5159
+ .q-step__caption {
5160
+ font-size: var(--q-font-size-sm);
5161
+ color: var(--q-theme-neutral);
5162
+ }
5163
+ .q-step__header:not(.q-step--active, .q-step--visited) .q-step__title {
5164
+ color: var(--q-theme-neutral);
5165
+ }
5166
+ .q-step__header.q-step--active {
5167
+ --q-steps-dot-current-size: var(--q-steps-dot-size-active);
5168
+ }
5169
+ .q-step--active .q-step__indicator::after {
5170
+ width: var(--q-steps-dot-size-active);
5171
+ height: var(--q-steps-dot-size-active);
5172
+ background-color: var(--q-theme-primary);
5173
+ }
5174
+ .q-step--visited .q-step__indicator::after {
5175
+ background-color: var(--q-theme-primary);
5176
+ }
5177
+
5178
+
5179
+
5180
+ .q-step--completed .q-step__indicator::after {
5181
+ background-color: var(--q-theme-success);
5182
+ }
5183
+
5184
+
5185
+ @media (hover: hover) {
5186
+ .q-step__header:not(.q-step--active, .q-step--visited):hover:not(:disabled)
5187
+ .q-step__indicator::after {
5188
+ background-color: var(--q-theme-neutral-dark);
5189
+ }
5190
+ .q-step__header.q-step--active:hover:not(:disabled) .q-step__indicator::after,
5191
+ .q-step__header.q-step--visited:hover:not(:disabled) .q-step__indicator::after {
5192
+ background-color: var(--q-theme-primary-dark);
5193
+ }
5194
+ .q-step__header.q-step--completed:hover:not(:disabled) .q-step__indicator::after {
5195
+ background-color: var(--q-theme-success-dark);
5196
+ }
5197
+ }
5198
+ &.q-steps--horizontal {
5199
+ .q-steps__track {
5200
+ align-items: flex-start;
5201
+ }
5202
+ .q-step__header {
5203
+ position: relative;
5204
+ flex-direction: column;
5205
+ align-items: center;
5206
+ text-align: center;
5207
+ }
5208
+
5209
+
5210
+
5211
+
5212
+
5213
+ .q-step__badge {
5214
+ top: calc(
5215
+ var(--q-space-2) +
5216
+ ((var(--q-steps-indicator-size) - var(--q-steps-dot-current-size)) * 0.5)
5217
+ );
5218
+ inset-inline-start: calc(50% + (var(--q-steps-dot-current-size) * 0.5));
5219
+ transform: translate(-50%, -50%);
5220
+ }
5221
+ .q-step:not(:last-child) .q-step__header::after {
5222
+ content: '';
5223
+ position: absolute;
5224
+ top: calc(var(--q-space-2) + (var(--q-steps-indicator-size) * 0.5));
5225
+ inset-inline-start: calc(
5226
+ 50% + (var(--q-steps-indicator-size) * 0.5) + var(--q-steps-connector-gap)
5227
+ );
5228
+ width: calc(100% - var(--q-steps-indicator-size) - (var(--q-steps-connector-gap) * 2));
5229
+ height: var(--q-steps-connector-width);
5230
+ background-color: var(--q-theme-neutral);
5231
+ }
5232
+ .q-step--next-reached:not(:last-child) .q-step__header::after {
5233
+ background-color: var(--q-theme-primary);
5234
+ }
5235
+ .q-step__labels {
5236
+ align-items: center;
5237
+ text-align: center;
5238
+ }
5239
+ }
5240
+ &.q-steps--vertical {
5241
+ --q-steps-row-gap: var(--q-space-2);
5242
+
5243
+
5244
+
5245
+
5246
+ --q-steps-indicator-row-height: var(--q-line-height-md);
5247
+ .q-step {
5248
+ position: relative;
5249
+ }
5250
+ .q-step__header {
5251
+ align-items: flex-start;
5252
+ }
5253
+ .q-step__indicator {
5254
+ height: var(--q-steps-indicator-row-height);
5255
+ }
5256
+
5257
+
5258
+
5259
+
5260
+
5261
+ .q-step__badge {
5262
+ top: calc(
5263
+ var(--q-space-2) +
5264
+ ((var(--q-steps-indicator-row-height) - var(--q-steps-dot-current-size)) * 0.5)
5265
+ );
5266
+ inset-inline-start: calc(
5267
+ var(--q-space-2) +
5268
+ ((var(--q-steps-indicator-size) + var(--q-steps-dot-current-size)) * 0.5)
5269
+ );
5270
+ transform: translate(-50%, -50%);
5271
+ }
5272
+ .q-step:not(.q-step--last, .q-step--active) {
5273
+ margin-block-end: var(--q-steps-row-gap);
5274
+ }
5275
+ .q-step:not(.q-step--last)::before {
5276
+ content: '';
5277
+ position: absolute;
5278
+ top: calc(
5279
+ var(--q-space-2) +
5280
+ ((var(--q-steps-indicator-row-height) + var(--q-steps-dot-size-active)) * 0.5) +
5281
+ var(--q-steps-connector-gap)
5282
+ );
5283
+ inset-inline-start: calc(
5284
+ var(--q-space-2) + (var(--q-steps-indicator-size) * 0.5) -
5285
+ (var(--q-steps-connector-width) * 0.5)
5286
+ );
5287
+
5288
+
5289
+
5290
+ bottom: calc(
5291
+ var(--q-steps-connector-gap) - var(--q-space-2) - var(--q-steps-row-gap) -
5292
+ ((var(--q-steps-indicator-row-height) - var(--q-steps-dot-size-active)) * 0.5)
5293
+ );
5294
+ width: var(--q-steps-connector-width);
5295
+ background-color: var(--q-theme-neutral);
5296
+ }
5297
+ .q-step--next-reached:not(.q-step--last)::before {
5298
+ background-color: var(--q-theme-primary);
5299
+ }
5300
+ .q-step--active:not(.q-step--last)::before {
5301
+ bottom: 0;
5302
+ }
5303
+ .q-steps__body {
5304
+ position: relative;
5305
+ padding-inline-start: calc(var(--q-steps-indicator-size) + var(--q-space-5));
5306
+ padding-block-start: var(--q-steps-row-gap);
5307
+ &:not(:last-child) {
5308
+ margin-block-end: var(--q-steps-row-gap);
5309
+ }
5310
+ &:not(:last-child)::before {
5311
+ content: '';
5312
+ position: absolute;
5313
+ top: 0;
5314
+ bottom: calc(
5315
+ var(--q-steps-connector-gap) - var(--q-space-2) - var(--q-steps-row-gap) -
5316
+ ((var(--q-steps-indicator-row-height) - var(--q-steps-dot-size-active)) * 0.5)
5317
+ );
5318
+ inset-inline-start: calc(
5319
+ var(--q-space-2) + (var(--q-steps-indicator-size) * 0.5) -
5320
+ (var(--q-steps-connector-width) * 0.5)
5321
+ );
5322
+ width: var(--q-steps-connector-width);
5323
+ background-color: var(--q-theme-neutral);
5324
+ }
5325
+ &.q-step--next-reached::before {
5326
+ background-color: var(--q-theme-primary);
5327
+ }
5328
+ }
5329
+ }
5330
+ }
5331
+
5332
+ &--boxed {
5333
+ .q-step__header {
5334
+ position: relative;
5335
+ display: flex;
5336
+ flex-direction: column;
5337
+ align-items: center;
5338
+ justify-content: center;
5339
+ gap: var(--q-space-1);
5340
+ margin: 0;
5341
+ padding: var(--q-space-3) var(--q-space-2);
5342
+ border: var(--q-border-width) solid transparent;
5343
+ border-radius: var(--q-border-radius);
5344
+ background-color: rgb(var(--q-theme-neutral-rgb) / 12%);
5345
+ color: var(--q-theme-neutral-dark);
5346
+ font: inherit;
5347
+ text-align: center;
5348
+ cursor: pointer;
5349
+ box-shadow: none;
5350
+ &:disabled {
5351
+ cursor: not-allowed;
5352
+ }
5353
+ &:focus-visible {
5354
+ outline: var(--q-focus-ring);
5355
+ }
5356
+ }
5357
+
5358
+
5359
+
5360
+
5361
+ .q-step__badge {
5362
+ top: var(--q-space-1);
5363
+ }
5364
+ .q-step__indicator {
5365
+ display: inline-flex;
5366
+ align-items: center;
5367
+ justify-content: center;
5368
+ font-size: var(--q-space-5);
5369
+ font-weight: var(--q-font-weight-bold);
5370
+ line-height: 1;
5371
+ color: inherit;
5372
+ }
5373
+ .q-step__indicator-content {
5374
+ display: inline-flex;
5375
+ align-items: center;
5376
+ justify-content: center;
5377
+ }
5378
+ .q-step__labels {
5379
+ display: flex;
5380
+ flex-direction: column;
5381
+ align-items: center;
5382
+ gap: calc(var(--q-space-1) * 0.5);
5383
+ }
5384
+ .q-step__title {
5385
+ display: inline-flex;
5386
+ align-items: baseline;
5387
+ gap: calc(var(--q-space-1) * 0.5);
5388
+ font-weight: var(--q-font-weight-bold);
5389
+ color: inherit;
5390
+ }
5391
+ .q-step__caption {
5392
+ font-size: var(--q-font-size-sm);
5393
+ color: inherit;
5394
+ opacity: 0.9;
5395
+ }
5396
+ .q-step__header.q-step--active {
5397
+ background-color: var(--q-theme-primary);
5398
+ border-color: var(--q-theme-primary);
5399
+ color: var(--q-theme-on-primary);
5400
+ box-shadow: var(--q-shadow-md);
5401
+ }
5402
+ .q-step__header.q-step--visited {
5403
+ background-color: rgb(var(--q-theme-primary-rgb) / 12%);
5404
+ color: var(--q-theme-primary);
5405
+ }
5406
+
5407
+
5408
+
5409
+
5410
+ @media (hover: hover) {
5411
+ .q-step__header:not(.q-step--active, .q-step--visited):hover:not(:disabled) {
5412
+ background-color: var(--q-theme-neutral-dark);
5413
+ color: var(--q-theme-on-neutral-dark);
5414
+ }
5415
+ .q-step__header.q-step--active:hover:not(:disabled) {
5416
+ background-color: var(--q-theme-primary-dark);
5417
+ border-color: var(--q-theme-primary-dark);
5418
+ }
5419
+ .q-step__header.q-step--visited:hover:not(:disabled) {
5420
+ background-color: var(--q-theme-primary-dark);
5421
+ border-color: var(--q-theme-primary-dark);
5422
+ color: var(--q-theme-on-primary-dark);
5423
+ }
5424
+ }
5425
+ &.q-steps--horizontal {
5426
+ .q-steps__track {
5427
+ gap: var(--q-space-2);
5428
+ }
5429
+ .q-step__badge {
5430
+ inset-inline-end: var(--q-space-1);
5431
+ }
5432
+ }
5433
+ &.q-steps--vertical {
5434
+ .q-steps__list {
5435
+ gap: var(--q-space-2);
5436
+ }
5437
+ .q-step__header {
5438
+ width: 100%;
5439
+ flex-direction: row;
5440
+ justify-content: flex-start;
5441
+ text-align: start;
5442
+ gap: var(--q-space-3);
5443
+ padding-inline: var(--q-space-5) var(--q-space-4);
5444
+ }
5445
+
5446
+
5447
+
5448
+ .q-step__indicator {
5449
+ flex-shrink: 0;
5450
+ width: var(--q-steps-indicator-size);
5451
+ height: var(--q-steps-indicator-size);
5452
+ }
5453
+
5454
+
5455
+
5456
+
5457
+ .q-step__badge {
5458
+ position: static;
5459
+ order: -1;
5460
+ flex-shrink: 0;
5461
+ transform: none;
5462
+ }
5463
+ .q-step__labels {
5464
+ align-items: flex-start;
5465
+ }
5466
+ .q-steps__body {
5467
+ padding-block: var(--q-space-2);
5468
+ }
5469
+ }
5470
+ }
5471
+
5472
+ &--arrow {
5473
+ .q-step__header {
5474
+ position: relative;
5475
+ display: flex;
5476
+ flex-direction: column;
5477
+ align-items: center;
5478
+ justify-content: center;
5479
+ gap: var(--q-space-1);
5480
+ margin: 0;
5481
+ padding: var(--q-space-3) var(--q-space-4);
5482
+ border: 0;
5483
+ border-radius: var(--q-border-radius);
5484
+ background-color: rgb(var(--q-theme-neutral-rgb) / 12%);
5485
+ color: var(--q-theme-neutral-dark);
5486
+ font: inherit;
5487
+ text-align: center;
5488
+ cursor: pointer;
5489
+ &:disabled {
5490
+ cursor: not-allowed;
5491
+ }
5492
+
5493
+
5494
+
5495
+ &:focus-visible {
5496
+ outline: none;
5497
+ }
5498
+ }
5499
+ .q-step__indicator {
5500
+ display: inline-flex;
5501
+ align-items: center;
5502
+ justify-content: center;
5503
+ font-size: var(--q-space-5);
5504
+ font-weight: var(--q-font-weight-bold);
5505
+ line-height: 1;
5506
+ color: inherit;
5507
+ }
5508
+ .q-step__indicator-content {
5509
+ display: inline-flex;
5510
+ align-items: center;
5511
+ justify-content: center;
5512
+ }
5513
+ .q-step__labels {
5514
+ display: flex;
5515
+ flex-direction: column;
5516
+ align-items: center;
5517
+ gap: calc(var(--q-space-1) * 0.5);
5518
+ }
5519
+ .q-step__title {
5520
+ display: inline-flex;
5521
+ align-items: baseline;
5522
+ gap: calc(var(--q-space-1) * 0.5);
5523
+ font-weight: var(--q-font-weight-bold);
5524
+ color: inherit;
5525
+ }
5526
+ .q-step__caption {
5527
+ font-size: var(--q-font-size-sm);
5528
+ color: inherit;
5529
+ opacity: 0.9;
5530
+ }
5531
+ .q-step__header.q-step--active {
5532
+ background-color: var(--q-theme-primary);
5533
+ color: var(--q-theme-on-primary);
5534
+ }
5535
+
5536
+
5537
+
5538
+ .q-step__header.q-step--visited {
5539
+ background-color: rgb(var(--q-theme-primary-rgb) / 12%);
5540
+ color: var(--q-theme-primary);
5541
+ }
5542
+
5543
+
5544
+ @media (hover: hover) {
5545
+ .q-step__header:not(.q-step--active, .q-step--visited):hover:not(:disabled) {
5546
+ background-color: var(--q-theme-neutral-dark);
5547
+ color: var(--q-theme-on-neutral-dark);
5548
+ }
5549
+ .q-step__header.q-step--active:hover:not(:disabled) {
5550
+ background-color: var(--q-theme-primary-dark);
5551
+ }
5552
+ .q-step__header.q-step--visited:hover:not(:disabled) {
5553
+ background-color: var(--q-theme-primary-dark);
5554
+ color: var(--q-theme-on-primary-dark);
5555
+ }
5556
+ }
5557
+
5558
+
5559
+
5560
+
5561
+
5562
+ .q-step:has(.q-step__header:focus-visible) {
5563
+ outline: var(--q-focus-ring);
5564
+ border-radius: var(--q-border-radius);
5565
+ }
5566
+
5567
+
5568
+
5569
+ &.q-steps--horizontal {
5570
+ .q-steps__track {
5571
+ gap: 0;
5572
+ }
5573
+ .q-step__header {
5574
+ position: relative;
5575
+ min-width: 0;
5576
+
5577
+ clip-path: polygon(
5578
+ 0 0,
5579
+ calc(100% - var(--q-steps-arrow-size)) 0,
5580
+ 100% 50%,
5581
+ calc(100% - var(--q-steps-arrow-size)) 100%,
5582
+ 0 100%,
5583
+ var(--q-steps-arrow-size) 50%
5584
+ );
5585
+ padding-inline: calc(var(--q-space-4) + var(--q-steps-arrow-size));
5586
+ margin-inline-end: calc(var(--q-steps-arrow-size) * -0.5);
5587
+ }
5588
+
5589
+
5590
+
5591
+
5592
+ .q-step__badge {
5593
+ top: var(--q-space-1);
5594
+ inset-inline-end: var(--q-steps-arrow-size);
5595
+ }
5596
+ .q-steps__track > .q-step:first-child .q-step__header {
5597
+ clip-path: polygon(
5598
+ 0 0,
5599
+ calc(100% - var(--q-steps-arrow-size)) 0,
5600
+ 100% 50%,
5601
+ calc(100% - var(--q-steps-arrow-size)) 100%,
5602
+ 0 100%
5603
+ );
5604
+ padding-inline-start: var(--q-space-3);
5605
+ }
5606
+
5607
+ .q-steps__track > .q-step:last-child .q-step__header {
5608
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, var(--q-steps-arrow-size) 50%);
5609
+ padding-inline-end: var(--q-space-3);
5610
+ margin-inline-end: 0;
5611
+ }
5612
+ }
5613
+ &.q-steps--vertical {
5614
+ .q-steps__list {
5615
+ gap: 0;
5616
+ }
5617
+
5618
+
5619
+
5620
+
5621
+
5622
+
5623
+ .q-step__header {
5624
+ width: 100%;
5625
+ flex-direction: row;
5626
+ justify-content: flex-start;
5627
+ text-align: start;
5628
+ gap: var(--q-space-3);
5629
+ clip-path: polygon(
5630
+ 0 0,
5631
+ calc(50% - var(--q-steps-arrow-size)) 0,
5632
+ 50% var(--q-steps-arrow-size),
5633
+ calc(50% + var(--q-steps-arrow-size)) 0,
5634
+ 100% 0,
5635
+ 100% calc(100% - var(--q-steps-arrow-size)),
5636
+ calc(50% + var(--q-steps-arrow-size)) calc(100% - var(--q-steps-arrow-size)),
5637
+ 50% 100%,
5638
+ calc(50% - var(--q-steps-arrow-size)) calc(100% - var(--q-steps-arrow-size)),
5639
+ 0 calc(100% - var(--q-steps-arrow-size))
5640
+ );
5641
+ padding-inline-start: var(--q-space-5);
5642
+ padding-block: var(--q-space-3) calc(var(--q-space-3) + var(--q-steps-arrow-size));
5643
+ margin-block-end: calc(var(--q-steps-arrow-size) * -0.5);
5644
+ }
5645
+
5646
+
5647
+
5648
+ .q-step__indicator {
5649
+ flex-shrink: 0;
5650
+ width: var(--q-steps-indicator-size);
5651
+ height: var(--q-steps-indicator-size);
5652
+ }
5653
+
5654
+
5655
+
5656
+ .q-step__badge {
5657
+ position: static;
5658
+ order: -1;
5659
+ flex-shrink: 0;
5660
+ transform: none;
5661
+ }
5662
+ .q-step:first-child .q-step__header {
5663
+ clip-path: polygon(
5664
+ 0 0,
5665
+ 100% 0,
5666
+ 100% calc(100% - var(--q-steps-arrow-size)),
5667
+ calc(50% + var(--q-steps-arrow-size)) calc(100% - var(--q-steps-arrow-size)),
5668
+ 50% 100%,
5669
+ calc(50% - var(--q-steps-arrow-size)) calc(100% - var(--q-steps-arrow-size)),
5670
+ 0 calc(100% - var(--q-steps-arrow-size))
5671
+ );
5672
+ }
5673
+
5674
+
5675
+ .q-step--last .q-step__header {
5676
+ clip-path: polygon(
5677
+ 0 0,
5678
+ calc(50% - var(--q-steps-arrow-size)) 0,
5679
+ 50% var(--q-steps-arrow-size),
5680
+ calc(50% + var(--q-steps-arrow-size)) 0,
5681
+ 100% 0,
5682
+ 100% 100%,
5683
+ 0 100%
5684
+ );
5685
+ padding-block-end: var(--q-space-3);
5686
+ margin-block-end: 0;
5687
+ }
5688
+ .q-step__labels {
5689
+ align-items: flex-start;
5690
+ }
5691
+ .q-steps__body {
5692
+ padding-block: var(--q-space-2);
5693
+ }
5694
+ }
5695
+ }
5696
+ }
5697
+ .q-step {
5698
+ &__indicator {
5699
+ transition:
5700
+ background-color var(--q-transition-duration) var(--q-transition-timing-function),
5701
+ box-shadow var(--q-transition-duration) var(--q-transition-timing-function),
5702
+ color var(--q-transition-duration) var(--q-transition-timing-function);
5703
+ }
5704
+ &__title,
5705
+ &__caption {
5706
+ transition: color var(--q-transition-duration) var(--q-transition-timing-function);
5707
+ }
5708
+ &__header {
5709
+ transition:
5710
+ background-color var(--q-transition-duration) var(--q-transition-timing-function),
5711
+ box-shadow var(--q-transition-duration) var(--q-transition-timing-function),
5712
+ color var(--q-transition-duration) var(--q-transition-timing-function),
5713
+ opacity var(--q-transition-duration) var(--q-transition-timing-function);
5714
+ &::after {
5715
+ transition: background-color var(--q-transition-duration) var(--q-transition-timing-function);
5716
+ }
5717
+ }
5718
+ &::before {
5719
+ transition: background-color var(--q-transition-duration) var(--q-transition-timing-function);
5720
+ }
5721
+ &--disabled .q-step__header {
5722
+ opacity: 0.6;
5723
+ }
5724
+ }
5725
+ .q-switch {
5726
+
5727
+
5728
+
5729
+ --q-switch-inner-padding: calc(var(--q-space-1) * 0.5);
5730
+ --q-switch-border-radius: 9999px;
5731
+ --q-switch-transition-duration: 0.15s;
5732
+ --q-switch-transition-easing: ease-out;
5733
+
5734
+ --q-switch-label-padding-v: calc(var(--q-space-1) * 2.5);
5735
+ --q-switch-label-padding-h: calc(var(--q-space-1) * 3.75);
5736
+ --q-switch-font-size: var(--q-font-size-sm);
5737
+
5738
+ --q-switch-label-block-size: calc(
5739
+ var(--q-switch-label-padding-v) * 2 + var(--q-switch-font-size)
5740
+ );
5741
+ --q-switch-drawn-height: calc(
5742
+ var(--q-switch-inner-padding) * 2 + var(--q-switch-label-block-size)
5743
+ );
5744
+ --q-switch-hit-padding-block: max(
5745
+ 0px,
5746
+ calc((var(--q-interactive-height) - var(--q-switch-drawn-height)) / 2)
5747
+ );
5748
+
5749
+ --q-switch-shadow-color-primary: rgb(var(--q-theme-on-background-rgb) / 20%);
5750
+ --q-switch-shadow-color-secondary: rgb(var(--q-theme-on-background-rgb) / 10%);
5751
+ --q-switch-shadow-blur-base: calc(var(--q-space-1) * 0.75);
5752
+ --q-switch-shadow-offset-y: calc(var(--q-space-1) * 0.25);
5753
+ --q-switch-shadow-spread: calc(var(--q-space-1) * 0.5);
5754
+
5755
+ --q-switch-shadow-color-primary-hover: rgb(var(--q-theme-on-background-rgb) / 30%);
5756
+ --q-switch-shadow-color-secondary-hover: rgb(var(--q-theme-on-background-rgb) / 15%);
5757
+ --q-switch-shadow-blur-hover: calc(var(--q-space-1) * 1.5);
5758
+ --q-switch-shadow-offset-y-hover: calc(var(--q-space-1) * 0.5);
5759
+ --q-switch-shadow-spread-hover: var(--q-space-1);
5760
+
5761
+ --q-switch-disabled-opacity: 0.5;
5762
+ --q-switch-hover-background-opacity: 0.5;
5763
+
5764
+ --q-switch-checked-background: var(--q-theme-primary);
5765
+ --q-switch-on-checked-background: var(--q-theme-on-primary);
5766
+ --q-switch-unchecked-background: rgb(var(--q-theme-neutral-light-rgb) / 50%);
5767
+ --q-switch-on-unchecked-background: var(--q-theme-neutral);
5768
+
5769
+
5770
+
5771
+ display: inline-flex;
5772
+ align-items: center;
5773
+ position: relative;
5774
+ white-space: nowrap;
5775
+ box-sizing: border-box;
5776
+ height: var(--q-interactive-height);
5777
+ min-height: var(--q-interactive-height);
5778
+
5779
+ padding: var(--q-switch-hit-padding-block) 0;
5780
+ background: transparent;
5781
+ border-radius: var(--q-switch-border-radius);
5782
+ cursor: pointer;
5783
+
5784
+
5785
+
5786
+ @include q-size-modifiers;
5787
+
5788
+
5789
+
5790
+ &--disabled {
5791
+ opacity: var(--q-switch-disabled-opacity);
5792
+ pointer-events: none;
5793
+ cursor: not-allowed;
5794
+ }
5795
+ }
5796
+ .q-switch:not(.q-switch--with-labels) {
5797
+ --q-switch-label-padding-h: var(--q-switch-label-padding-v);
5798
+ }
5799
+ .q-switch__container {
5800
+ position: relative;
5801
+ display: inline-flex;
5802
+ align-items: center;
5803
+ justify-content: center;
5804
+ gap: 0.5em;
5805
+ }
5806
+ .q-switch__input {
5807
+ position: absolute;
5808
+ inset: var(--q-switch-hit-padding-block) 0 var(--q-switch-hit-padding-block) 0;
5809
+
5810
+ width: auto;
5811
+ height: auto;
5812
+ margin: 0;
5813
+ padding: 0;
5814
+ appearance: none;
5815
+ border: none;
5816
+ background: transparent;
5817
+ cursor: pointer;
5818
+ border-radius: var(--q-switch-border-radius);
5819
+ z-index: 2;
5820
+
5821
+ &:focus-visible {
5822
+ outline: var(--q-focus-ring);
5823
+ }
5824
+
5825
+ &:disabled {
5826
+ cursor: not-allowed;
5827
+ &:focus-visible {
5828
+ outline: none;
5829
+ }
5830
+ }
5831
+ }
5832
+ .q-switch__labels {
5833
+ display: flex;
5834
+ align-items: center;
5835
+ width: 100%;
5836
+ position: relative;
5837
+ box-sizing: border-box;
5838
+ padding: var(--q-switch-inner-padding);
5839
+ background: var(--q-switch-unchecked-background);
5840
+ border-radius: var(--q-switch-border-radius);
5841
+ transition: background var(--q-switch-transition-duration) var(--q-switch-transition-easing);
5842
+ }
5843
+ .q-switch__label {
4730
5844
  display: inline-flex;
4731
5845
  align-items: center;
4732
5846
  justify-content: center;
@@ -5079,6 +6193,12 @@ $spinner-color: var(--q-theme-primary);
5079
6193
  padding: var(--q-control-padding-y-lg) var(--q-control-padding-x-lg);
5080
6194
  &.q-button.q-button--text {
5081
6195
  color: var(--q-theme-neutral-dark);
6196
+
6197
+ @media (hover: hover) {
6198
+ &:hover:not(:disabled) {
6199
+ text-decoration: none;
6200
+ }
6201
+ }
5082
6202
  }
5083
6203
  &--active.q-button.q-button--text {
5084
6204
  color: var(--q-theme-primary);
@@ -5229,6 +6349,8 @@ $spinner-color: var(--q-theme-primary);
5229
6349
  $this: &;
5230
6350
  --q-toast-main-color: var(--q-theme-info);
5231
6351
  --q-toast-on-main-color: var(--q-theme-on-info);
6352
+ --q-toast-text-color: var(--q-theme-info-dark);
6353
+ --q-toast-tonal-text-color: var(--q-theme-info-dark);
5232
6354
  --q-toast-tonal-color: var(--q-theme-info-light);
5233
6355
  --q-toast-width: calc(8 * 5em + 7 * var(--q-space-1));
5234
6356
  max-width: var(--q-toast-width);
@@ -5272,12 +6394,23 @@ $spinner-color: var(--q-theme-primary);
5272
6394
  &--tonal {
5273
6395
  background-color: var(--q-toast-tonal-color);
5274
6396
  border-color: transparent;
5275
- color: var(--q-toast-hover-color);
6397
+ color: var(--q-toast-tonal-text-color);
6398
+
6399
+
6400
+
6401
+ .q-toast__dismiss.q-button {
6402
+ color: var(--q-toast-tonal-text-color);
6403
+ @media (hover: hover) {
6404
+ &:hover:not(:disabled) {
6405
+ color: var(--q-toast-tonal-text-color);
6406
+ }
6407
+ }
6408
+ }
5276
6409
  }
5277
6410
  &--outlined {
5278
6411
  background-color: transparent;
5279
6412
  border-color: var(--q-toast-main-color);
5280
- color: var(--q-toast-main-color);
6413
+ color: var(--q-toast-text-color);
5281
6414
  }
5282
6415
  }
5283
6416
  .q-toast-stack-enter-active {