@quidgest/ui 0.20.1 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +10 -0
  3. package/dist/json/api.json +219 -3
  4. package/dist/manifest/components.json +1 -0
  5. package/dist/ui.css +239 -248
  6. package/dist/ui.esm.js +1306 -1139
  7. package/dist/ui.js +788 -621
  8. package/dist/ui.min.css +1 -1
  9. package/dist/ui.min.js +788 -621
  10. package/dist/ui.scss +291 -34
  11. package/esm/components/QAccordion/QAccordionItem.vue.js +1 -1
  12. package/esm/components/QBadge/QBadge.d.ts.map +1 -1
  13. package/esm/components/QBadge/QBadge.vue.js +20 -24
  14. package/esm/components/QButton/QButton.d.ts.map +1 -1
  15. package/esm/components/QButton/QButton.vue.js +32 -29
  16. package/esm/components/QCheckbox/QCheckbox.vue.js +1 -1
  17. package/esm/components/QDialog/QDialog.d.ts +4 -2
  18. package/esm/components/QDialog/QDialog.d.ts.map +1 -1
  19. package/esm/components/QDialog/QDialog.vue.js +84 -74
  20. package/esm/components/QDialog/QDialogProvider.d.ts.map +1 -1
  21. package/esm/components/QDialog/QDialogProvider.vue.js +21 -12
  22. package/esm/components/QDialog/index.d.ts +72 -3
  23. package/esm/components/QDialog/index.d.ts.map +1 -1
  24. package/esm/components/QDialog/types.d.ts +10 -1
  25. package/esm/components/QDialog/types.d.ts.map +1 -1
  26. package/esm/components/QDismissibleLayer/QDismissibleLayer.d.ts.map +1 -1
  27. package/esm/components/QDismissibleLayer/QDismissibleLayer.vue.js +9 -8
  28. package/esm/components/QDivider/QDivider.d.ts.map +1 -1
  29. package/esm/components/QDivider/QDivider.vue.js +3 -3
  30. package/esm/components/QFileUpload/QFileUpload.vue.js +1 -1
  31. package/esm/components/QGauge/QGauge.vue.js +1 -1
  32. package/esm/components/QList/QListItem.d.ts.map +1 -1
  33. package/esm/components/QList/QListItem.vue.js +5 -2
  34. package/esm/components/QList/QListItemGroup.vue.js +1 -1
  35. package/esm/components/QObfuscation/QObfuscation.d.ts +1 -1
  36. package/esm/components/QObfuscation/QObfuscation.d.ts.map +1 -1
  37. package/esm/components/QObfuscation/QObfuscation.vue.js +53 -56
  38. package/esm/components/QObfuscation/index.d.ts +6 -6
  39. package/esm/components/QObfuscation/types.d.ts +1 -1
  40. package/esm/components/QObfuscation/types.d.ts.map +1 -1
  41. package/esm/components/QOverflow/QOverflow.d.ts +43 -0
  42. package/esm/components/QOverflow/QOverflow.d.ts.map +1 -0
  43. package/esm/components/QOverflow/QOverflow.vue.js +281 -0
  44. package/esm/components/QOverflow/QOverflow2.vue.js +5 -0
  45. package/esm/components/QOverflow/constants.d.ts +30 -0
  46. package/esm/components/QOverflow/constants.d.ts.map +1 -0
  47. package/esm/components/QOverflow/constants.js +12 -0
  48. package/esm/components/QOverflow/index.d.ts +58 -0
  49. package/esm/components/QOverflow/index.d.ts.map +1 -0
  50. package/esm/components/QOverflow/index.js +6 -0
  51. package/esm/components/QOverflow/types.d.ts +119 -0
  52. package/esm/components/QOverflow/types.d.ts.map +1 -0
  53. package/esm/components/QPhoneField/QPhoneField.d.ts.map +1 -1
  54. package/esm/components/QPhoneField/QPhoneField.vue.js +1 -1
  55. package/esm/components/QPropertyList/QPropertyListGroup.vue.js +1 -1
  56. package/esm/components/QPropertyList/QPropertyListRow.vue.js +1 -1
  57. package/esm/components/QPropertyList/index.d.ts.map +1 -1
  58. package/esm/components/QRadioGroup/QRadioButton.vue.js +1 -1
  59. package/esm/components/QRadioGroup/QRadioGroup.vue.js +2 -2
  60. package/esm/components/QSelect/QSelect.d.ts.map +1 -1
  61. package/esm/components/QSelect/QSelect.vue.js +1 -1
  62. package/esm/components/QSidebar/QSidebar.d.ts.map +1 -1
  63. package/esm/components/QSidebar/QSidebar.vue.js +19 -10
  64. package/esm/components/QSidebar/QSidebarItem.d.ts.map +1 -1
  65. package/esm/components/QSidebar/QSidebarItem.vue.js +51 -49
  66. package/esm/components/QSidebar/context.d.ts +7 -0
  67. package/esm/components/QSidebar/context.d.ts.map +1 -1
  68. package/esm/components/QSwitch/QSwitch.vue.js +1 -1
  69. package/esm/components/QTabs/QTab.d.ts.map +1 -1
  70. package/esm/components/QTabs/QTab.vue.js +52 -50
  71. package/esm/components/QTabs/QTabs.d.ts.map +1 -1
  72. package/esm/components/QTabs/QTabs.vue.js +37 -12
  73. package/esm/components/QTabs/context.d.ts +7 -0
  74. package/esm/components/QTabs/context.d.ts.map +1 -1
  75. package/esm/components/QTextArea/QTextArea.vue.js +1 -1
  76. package/esm/components/QTextField/QTextField.d.ts.map +1 -1
  77. package/esm/components/QTextField/QTextField.vue.js +1 -1
  78. package/esm/components/QThemeProvider/QThemeProvider.vue.js +1 -1
  79. package/esm/components/QToast/QToast.d.ts +4 -2
  80. package/esm/components/QToast/QToast.d.ts.map +1 -1
  81. package/esm/components/QToast/QToast.vue.js +80 -67
  82. package/esm/components/QToast/QToaster.d.ts.map +1 -1
  83. package/esm/components/QToast/QToaster.vue.js +21 -16
  84. package/esm/components/QToast/index.d.ts +39 -3
  85. package/esm/components/QToast/index.d.ts.map +1 -1
  86. package/esm/components/QToast/types.d.ts +6 -2
  87. package/esm/components/QToast/types.d.ts.map +1 -1
  88. package/esm/components/QToggleGroup/QToggleGroupItem.vue.js +1 -1
  89. package/esm/components/QTooltip/QTooltip.vue.js +1 -1
  90. package/esm/components/index.d.ts +1 -0
  91. package/esm/components/index.d.ts.map +1 -1
  92. package/esm/components/index.js +58 -56
  93. package/esm/composables/index.d.ts +2 -2
  94. package/esm/composables/index.d.ts.map +1 -1
  95. package/esm/composables/useColor/index.d.ts +46 -17
  96. package/esm/composables/useColor/index.d.ts.map +1 -1
  97. package/esm/composables/useColor/index.js +57 -29
  98. package/esm/composables/useColor/types.d.ts +4 -1
  99. package/esm/composables/useColor/types.d.ts.map +1 -1
  100. package/esm/composables/useDialog/_internal.d.ts +2 -0
  101. package/esm/composables/useDialog/_internal.d.ts.map +1 -0
  102. package/esm/composables/useDialog/_internal.js +65 -0
  103. package/esm/composables/useDialog/index.d.ts +11 -3
  104. package/esm/composables/useDialog/index.d.ts.map +1 -1
  105. package/esm/composables/useDialog/index.js +38 -22
  106. package/esm/composables/useDialog/types.d.ts +25 -11
  107. package/esm/composables/useDialog/types.d.ts.map +1 -1
  108. package/esm/composables/useDismissibleLayerStack/index.d.ts +17 -2
  109. package/esm/composables/useDismissibleLayerStack/index.d.ts.map +1 -1
  110. package/esm/composables/useDismissibleLayerStack/index.js +28 -11
  111. package/esm/composables/useGroup/index.d.ts.map +1 -1
  112. package/esm/composables/useGroup/index.js +12 -1
  113. package/esm/composables/useId/index.d.ts +18 -0
  114. package/esm/composables/useId/index.d.ts.map +1 -0
  115. package/esm/composables/useId/index.js +10 -0
  116. package/esm/composables/useToast/_internal.d.ts +2 -0
  117. package/esm/composables/useToast/_internal.d.ts.map +1 -0
  118. package/esm/composables/useToast/_internal.js +142 -0
  119. package/esm/composables/useToast/index.d.ts +8 -25
  120. package/esm/composables/useToast/index.d.ts.map +1 -1
  121. package/esm/composables/useToast/index.js +29 -26
  122. package/esm/composables/useToast/types.d.ts +31 -17
  123. package/esm/composables/useToast/types.d.ts.map +1 -1
  124. package/esm/framework.d.ts.map +1 -1
  125. package/esm/framework.js +16 -12
  126. package/esm/index.d.ts +1 -0
  127. package/esm/templates/theme.js +39 -39
  128. package/esm/utils/color/contrast.d.ts +11 -4
  129. package/esm/utils/color/contrast.d.ts.map +1 -1
  130. package/esm/utils/color/contrast.js +16 -3
  131. package/esm/utils/color/index.d.ts +1 -0
  132. package/esm/utils/color/index.d.ts.map +1 -1
  133. package/esm/utils/color/merge.d.ts +9 -0
  134. package/esm/utils/color/merge.d.ts.map +1 -1
  135. package/esm/utils/color/merge.js +21 -22
  136. package/esm/utils/color/parse.d.ts +21 -5
  137. package/esm/utils/color/parse.d.ts.map +1 -1
  138. package/esm/utils/color/parse.js +88 -20
  139. package/esm/utils/color/theme-colors.d.ts +35 -0
  140. package/esm/utils/color/theme-colors.d.ts.map +1 -0
  141. package/esm/utils/color/theme-colors.js +25 -0
  142. package/esm/utils/index.js +50 -42
  143. package/package.json +3 -5
  144. package/esm/composables/uid.d.ts +0 -9
  145. package/esm/composables/uid.d.ts.map +0 -1
  146. package/esm/composables/uid.js +0 -8
  147. package/esm/composables/useToast/types.js +0 -4
  148. package/esm/vendors/uuid/dist/native.js +0 -3
  149. package/esm/vendors/uuid/dist/rng.js +0 -11
  150. package/esm/vendors/uuid/dist/stringify.js +0 -8
  151. package/esm/vendors/uuid/dist/v4.js +0 -20
package/dist/ui.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quidgest UI v0.20.1
2
+ * Quidgest UI v0.21.1
3
3
  * (c) 2026 Quidgest - Consultores de Gestão, S.A.
4
4
  * Released under the MIT License.
5
5
  */
@@ -511,6 +511,9 @@ $breakpoint-xl: 1200px;
511
511
  $breakpoint-xxl: 1400px;
512
512
  $font-size-base: 0.9rem !default;
513
513
  $line-height-base: 1.5 !default;
514
+ $icon-size: 1.15em !default;
515
+ $icon-size-sm: $icon-size * 0.87 !default;
516
+ $selection-control-size: 1.15rem !default;
514
517
  $font-weight-thin: 100;
515
518
  $font-weight-light: 300;
516
519
  $font-weight-regular: 400;
@@ -655,18 +658,6 @@ $transition-duration: 0.2s !default;
655
658
  transform $transition-duration ease,
656
659
  opacity $transition-duration ease;
657
660
  }
658
- @mixin color-variant($prefix, $color) {
659
- &--#{$color} {
660
- --#{$prefix}-main-color: var(--q-theme-#{$color});
661
- --#{$prefix}-main-color-rgb: var(--q-theme-#{$color}-rgb);
662
- --#{$prefix}-on-main-color: var(--q-theme-on-#{$color});
663
- --#{$prefix}-on-main-color-rgb: var(--q-theme-on-#{$color}-rgb);
664
- --#{$prefix}-hover-color: var(--q-theme-#{$color}-dark);
665
- --#{$prefix}-hover-color-rgb: var(--q-theme-#{$color}-dark-rgb);
666
- --#{$prefix}-on-hover-color: var(--q-theme-on-#{$color});
667
- --#{$prefix}-on-hover-color-rgb: var(--q-theme-on-#{$color}-rgb);
668
- }
669
- }
670
661
  @mixin sr-only {
671
662
  position: absolute;
672
663
  width: 1px;
@@ -693,6 +684,10 @@ $transition-duration: 0.2s !default;
693
684
  .q-clear-btn.q-button {
694
685
  padding: 0.1rem;
695
686
  opacity: 0.5;
687
+ svg {
688
+ width: $icon-size-sm;
689
+ height: $icon-size-sm;
690
+ }
696
691
  &:hover {
697
692
  cursor: inherit;
698
693
  }
@@ -869,10 +864,6 @@ $transition-duration: 0.2s !default;
869
864
  pointer-events: none;
870
865
  }
871
866
 
872
- @each $color, $value in $theme-colors {
873
- @include color-variant('q-badge', $color);
874
- }
875
-
876
867
  &--large {
877
868
  min-height: 44px;
878
869
  &:is(span) {
@@ -981,8 +972,8 @@ $transition-duration: 0.2s !default;
981
972
  --q-button-on-main-color-rgb: var(--q-theme-on-primary-rgb);
982
973
  --q-button-hover-color: var(--q-theme-primary-dark);
983
974
  --q-button-hover-color-rgb: var(--q-theme-primary-dark-rgb);
984
- --q-button-on-hover-color: var(--q-theme-on-primary);
985
- --q-button-on-hover-color-rgb: var(--q-theme-on-primary-rgb);
975
+ --q-button-on-hover-color: var(--q-theme-on-primary-dark);
976
+ --q-button-on-hover-color-rgb: var(--q-theme-on-primary-dark-rgb);
986
977
  display: inline-flex;
987
978
  user-select: none;
988
979
  align-items: center;
@@ -1003,6 +994,18 @@ $transition-duration: 0.2s !default;
1003
994
  transition-duration: 0.15s;
1004
995
  &#{$this}--labeled {
1005
996
  padding: 0.4rem 0.8rem;
997
+
998
+
999
+ &:where(:has(#{$this}__content > .q-icon)):where(:not(#{$this}--icon-end)):where(
1000
+ :not(#{$this}--icon-top)
1001
+ ):where(:not(#{$this}--icon-bottom)) {
1002
+ padding-inline-start: 0.6rem;
1003
+ }
1004
+
1005
+ &:where(#{$this}--icon-end):where(:has(#{$this}__content > .q-icon)),
1006
+ &:where(:has(#{$this}__append .q-icon)) {
1007
+ padding-inline-end: 0.6rem;
1008
+ }
1006
1009
  }
1007
1010
  &__content {
1008
1011
  display: inline-flex;
@@ -1012,6 +1015,10 @@ $transition-duration: 0.2s !default;
1012
1015
  width: 100%;
1013
1016
  z-index: 1;
1014
1017
  }
1018
+
1019
+ &__append {
1020
+ display: contents;
1021
+ }
1015
1022
  &:disabled {
1016
1023
  opacity: 0.6;
1017
1024
  }
@@ -1107,14 +1114,12 @@ $transition-duration: 0.2s !default;
1107
1114
  border-radius: 9999px;
1108
1115
  }
1109
1116
 
1110
- @each $color, $value in $theme-colors {
1111
- @include color-variant('q-button', $color);
1112
- }
1117
+
1113
1118
  &--background {
1114
1119
  --q-button-main-color: var(--q-theme-background);
1115
1120
  --q-button-on-main-color: var(--q-theme-on-background);
1116
1121
  --q-button-hover-color: var(--q-theme-primary-dark);
1117
- --q-button-on-hover-color: var(--q-theme-on-primary);
1122
+ --q-button-on-hover-color: var(--q-theme-on-primary-dark);
1118
1123
  }
1119
1124
 
1120
1125
  &--loading {
@@ -1131,6 +1136,15 @@ $transition-duration: 0.2s !default;
1131
1136
  padding: 0.25rem;
1132
1137
  &#{$this}--labeled {
1133
1138
  padding: 0.25rem 0.5rem;
1139
+ &:where(:has(#{$this}__content > .q-icon)):where(:not(#{$this}--icon-end)):where(
1140
+ :not(#{$this}--icon-top)
1141
+ ):where(:not(#{$this}--icon-bottom)) {
1142
+ padding-inline-start: 0.375rem;
1143
+ }
1144
+ &:where(#{$this}--icon-end):where(:has(#{$this}__content > .q-icon)),
1145
+ &:where(:has(#{$this}__append .q-icon)) {
1146
+ padding-inline-end: 0.375rem;
1147
+ }
1134
1148
  }
1135
1149
  }
1136
1150
 
@@ -1539,7 +1553,7 @@ $q-carousel-height-md: 300px;
1539
1553
  }
1540
1554
  .q-checkbox {
1541
1555
  $this: &;
1542
- --box-size: 1.15rem;
1556
+ --box-size: #{$selection-control-size};
1543
1557
  --icon-color: var(--q-theme-on-primary);
1544
1558
  --icon-opacity: 0;
1545
1559
  --transition-duration: 0.15s;
@@ -1837,6 +1851,10 @@ $q-carousel-height-md: 300px;
1837
1851
  .q-combobox__chevron.q-button {
1838
1852
  padding: 0.1rem;
1839
1853
  opacity: 0.5;
1854
+ svg {
1855
+ width: $icon-size-sm;
1856
+ height: $icon-size-sm;
1857
+ }
1840
1858
  &:hover {
1841
1859
  cursor: inherit;
1842
1860
  }
@@ -2797,8 +2815,8 @@ $q-spacing-sides: (
2797
2815
  }
2798
2816
  &__svg,
2799
2817
  &__img {
2800
- width: 1em;
2801
- height: 1em;
2818
+ width: $icon-size;
2819
+ height: $icon-size;
2802
2820
  }
2803
2821
  }
2804
2822
  $input-group-addon-color: var(--q-theme-primary);
@@ -2812,6 +2830,16 @@ $input-group-addon-background: rgb(var(--q-theme-neutral-light-rgb) / 25%);
2812
2830
  border-top-right-radius: var(--border-radius);
2813
2831
  border-bottom-right-radius: var(--border-radius);
2814
2832
  }
2833
+
2834
+ > .q-field__control > .q-input-group__append:first-child > :first-child {
2835
+ border-top-left-radius: var(--border-radius);
2836
+ border-bottom-left-radius: var(--border-radius);
2837
+ }
2838
+
2839
+ > .q-field__control > .q-input-group__prepend:last-child > :last-child {
2840
+ border-top-right-radius: var(--border-radius);
2841
+ border-bottom-right-radius: var(--border-radius);
2842
+ }
2815
2843
  &__prepend,
2816
2844
  &__append {
2817
2845
  display: flex;
@@ -2851,10 +2879,19 @@ $input-group-addon-background: rgb(var(--q-theme-neutral-light-rgb) / 25%);
2851
2879
  }
2852
2880
  > * {
2853
2881
  border-radius: 0;
2882
+ align-self: stretch;
2854
2883
  &:focus-within {
2855
2884
  z-index: 2;
2856
2885
  }
2857
2886
  }
2887
+
2888
+
2889
+ > .q-field > .q-field__control {
2890
+ height: 100%;
2891
+ }
2892
+ > .q-button {
2893
+ height: auto;
2894
+ }
2858
2895
  > :first-child {
2859
2896
  border-top-left-radius: var(--border-radius);
2860
2897
  border-bottom-left-radius: var(--border-radius);
@@ -2941,10 +2978,14 @@ $q-line-loader-color: var(--q-line-loader-color);
2941
2978
  }
2942
2979
  .q-list-item {
2943
2980
  $this: &;
2981
+
2982
+ $control-height: $selection-control-size;
2944
2983
  display: flex;
2945
2984
  gap: 0.25rem;
2946
2985
  align-items: center;
2947
2986
  padding: $space-base * 1.5 $space-base * 2;
2987
+
2988
+ min-height: calc(#{$control-height} + #{$space-base * 3});
2948
2989
  list-style: none;
2949
2990
  line-height: 15px;
2950
2991
  overflow-wrap: break-word;
@@ -2995,11 +3036,16 @@ $q-line-loader-color: var(--q-line-loader-color);
2995
3036
  align-items: center;
2996
3037
  margin-left: auto;
2997
3038
  min-width: 1em;
2998
- min-height: 1.15rem;
3039
+ min-height: $control-height;
2999
3040
  align-self: center;
3000
3041
  &--top {
3001
3042
  align-self: flex-start;
3002
3043
  }
3044
+
3045
+ .q-list-item__check {
3046
+ width: $icon-size-sm;
3047
+ height: $icon-size-sm;
3048
+ }
3003
3049
  }
3004
3050
  &__description {
3005
3051
  display: flex;
@@ -3105,6 +3151,220 @@ $q-line-loader-color: var(--q-line-loader-color);
3105
3151
  flex-shrink: 0;
3106
3152
  }
3107
3153
  }
3154
+ $q-overflow-fade-size: 2.5rem;
3155
+ $q-overflow-control-size: 2.25rem;
3156
+ .q-overflow {
3157
+ --q-overflow-fade-size: #{$q-overflow-fade-size};
3158
+ display: flex;
3159
+ align-items: stretch;
3160
+ min-width: 0;
3161
+ min-height: 0;
3162
+ width: 100%;
3163
+ outline: none;
3164
+ }
3165
+ .q-overflow__viewport:focus-visible {
3166
+ outline: $outline;
3167
+ }
3168
+ .q-overflow__control .q-overflow__button:focus-visible {
3169
+ outline: $outline;
3170
+ }
3171
+ .q-overflow__viewport {
3172
+ position: relative;
3173
+ flex: 1 1 auto;
3174
+ min-width: 0;
3175
+ min-height: 0;
3176
+ outline: none;
3177
+ -webkit-overflow-scrolling: touch;
3178
+
3179
+ scrollbar-width: none;
3180
+ &::-webkit-scrollbar {
3181
+ display: none;
3182
+ }
3183
+ }
3184
+ .q-overflow__content {
3185
+ position: relative;
3186
+ }
3187
+ .q-overflow__control {
3188
+ display: flex;
3189
+ flex: 0 0 auto;
3190
+ align-items: center;
3191
+ justify-content: center;
3192
+ }
3193
+ .q-overflow__button {
3194
+ min-width: $q-overflow-control-size;
3195
+ min-height: $q-overflow-control-size;
3196
+ }
3197
+ .q-overflow--horizontal {
3198
+ flex-direction: row;
3199
+ .q-overflow__viewport {
3200
+ overflow: auto hidden;
3201
+ }
3202
+ }
3203
+ .q-overflow--vertical {
3204
+ flex-direction: column;
3205
+
3206
+ height: 100%;
3207
+ .q-overflow__viewport {
3208
+ overflow: hidden auto;
3209
+ }
3210
+ }
3211
+ .q-overflow--horizontal.q-overflow--can-scroll-start.q-overflow--can-scroll-end {
3212
+ .q-overflow__viewport {
3213
+ mask-image: linear-gradient(
3214
+ to right,
3215
+ transparent,
3216
+ #000 var(--q-overflow-fade-size),
3217
+ #000 calc(100% - var(--q-overflow-fade-size)),
3218
+ transparent
3219
+ );
3220
+ }
3221
+ }
3222
+ .q-overflow--horizontal.q-overflow--can-scroll-start:not(.q-overflow--can-scroll-end) {
3223
+ .q-overflow__viewport {
3224
+ mask-image: linear-gradient(to right, transparent, #000 var(--q-overflow-fade-size), #000);
3225
+ }
3226
+ }
3227
+ .q-overflow--horizontal.q-overflow--can-scroll-end:not(.q-overflow--can-scroll-start) {
3228
+ .q-overflow__viewport {
3229
+ mask-image: linear-gradient(
3230
+ to right,
3231
+ #000,
3232
+ #000 calc(100% - var(--q-overflow-fade-size)),
3233
+ transparent
3234
+ );
3235
+ }
3236
+ }
3237
+ .q-overflow--vertical.q-overflow--can-scroll-start.q-overflow--can-scroll-end {
3238
+ .q-overflow__viewport {
3239
+ mask-image: linear-gradient(
3240
+ to bottom,
3241
+ transparent,
3242
+ #000 var(--q-overflow-fade-size),
3243
+ #000 calc(100% - var(--q-overflow-fade-size)),
3244
+ transparent
3245
+ );
3246
+ }
3247
+ }
3248
+ .q-overflow--vertical.q-overflow--can-scroll-start:not(.q-overflow--can-scroll-end) {
3249
+ .q-overflow__viewport {
3250
+ mask-image: linear-gradient(to bottom, transparent, #000 var(--q-overflow-fade-size), #000);
3251
+ }
3252
+ }
3253
+ .q-overflow--vertical.q-overflow--can-scroll-end:not(.q-overflow--can-scroll-start) {
3254
+ .q-overflow__viewport {
3255
+ mask-image: linear-gradient(
3256
+ to bottom,
3257
+ #000,
3258
+ #000 calc(100% - var(--q-overflow-fade-size)),
3259
+ transparent
3260
+ );
3261
+ }
3262
+ }
3263
+ .q-overflow--arrows-outside {
3264
+ .q-overflow__control {
3265
+ position: relative;
3266
+ z-index: 1;
3267
+ align-self: stretch;
3268
+ align-items: stretch;
3269
+ }
3270
+
3271
+ .q-overflow__control > *,
3272
+ .q-overflow__button {
3273
+ align-self: stretch;
3274
+ }
3275
+ }
3276
+ .q-overflow--horizontal.q-overflow--arrows-outside {
3277
+ .q-overflow__control > *,
3278
+ .q-overflow__button {
3279
+ height: 100%;
3280
+ }
3281
+ }
3282
+ .q-overflow--vertical.q-overflow--arrows-outside {
3283
+ .q-overflow__control {
3284
+ width: 100%;
3285
+ }
3286
+ .q-overflow__control > *,
3287
+ .q-overflow__button {
3288
+ width: 100%;
3289
+ }
3290
+ }
3291
+ .q-overflow--arrows-inside {
3292
+ position: relative;
3293
+ .q-overflow__viewport {
3294
+ width: 100%;
3295
+ }
3296
+ .q-overflow__control {
3297
+ position: absolute;
3298
+ z-index: 2;
3299
+ pointer-events: none;
3300
+ > * {
3301
+ pointer-events: auto;
3302
+ }
3303
+
3304
+ .q-overflow__button.q-button {
3305
+ background-color: rgb(var(--q-theme-background-rgb) / 80%);
3306
+ @media (hover: hover) {
3307
+ &:hover:not(:disabled) {
3308
+ background-color: rgb(var(--q-theme-background-rgb) / 95%);
3309
+ }
3310
+ }
3311
+ }
3312
+ }
3313
+ }
3314
+ .q-overflow--horizontal.q-overflow--arrows-inside {
3315
+ .q-overflow__control--prev {
3316
+ inset-block: 0;
3317
+ inset-inline-start: 0;
3318
+ }
3319
+ .q-overflow__control--next {
3320
+ inset-block: 0;
3321
+ inset-inline-end: 0;
3322
+ }
3323
+ }
3324
+ .q-overflow--vertical.q-overflow--arrows-inside {
3325
+ .q-overflow__control--prev {
3326
+ inset-inline: 0;
3327
+ inset-block-start: 0;
3328
+ }
3329
+ .q-overflow__control--next {
3330
+ inset-inline: 0;
3331
+ inset-block-end: 0;
3332
+ }
3333
+ }
3334
+ .q-overflow--arrows-hover {
3335
+ @media (hover: hover) and (pointer: fine) {
3336
+ .q-overflow__control {
3337
+ opacity: 0;
3338
+ transition: opacity 0.15s ease;
3339
+ }
3340
+ &:hover .q-overflow__control,
3341
+ &:focus-within .q-overflow__control {
3342
+ opacity: 1;
3343
+ }
3344
+ @media (prefers-reduced-motion: reduce) {
3345
+ .q-overflow__control {
3346
+ transition: none;
3347
+ }
3348
+ }
3349
+ }
3350
+ }
3351
+ .q-overflow--arrows-hover.q-overflow--arrows-inside {
3352
+ @media (hover: hover) and (pointer: fine) {
3353
+ .q-overflow__control {
3354
+ pointer-events: none;
3355
+ > * {
3356
+ pointer-events: none;
3357
+ }
3358
+ }
3359
+ &:hover .q-overflow__control,
3360
+ &:focus-within .q-overflow__control {
3361
+ pointer-events: auto;
3362
+ > * {
3363
+ pointer-events: auto;
3364
+ }
3365
+ }
3366
+ }
3367
+ }
3108
3368
  $overlay-border-width: 1px;
3109
3369
  $overlay-arrow-width: 11.31px;
3110
3370
  $overlay-arrow-height: 11.31px;
@@ -3823,6 +4083,10 @@ $base-border: 1px solid rgb(var(--q-theme-neutral-light-rgb) / 50%);
3823
4083
  &__chevron.q-button {
3824
4084
  padding: 0.1rem;
3825
4085
  opacity: 0.5;
4086
+ svg {
4087
+ width: $icon-size-sm;
4088
+ height: $icon-size-sm;
4089
+ }
3826
4090
  &:hover {
3827
4091
  cursor: inherit;
3828
4092
  }
@@ -4669,19 +4933,12 @@ $q-toast-slide-distance: clamp(1rem, 3vw, 1.5rem) !default;
4669
4933
  background-color: var(--q-toast-tonal-color);
4670
4934
  border-color: transparent;
4671
4935
  color: var(--q-toast-hover-color);
4672
- #{$this}__dismiss.q-button {
4673
- --q-button-main-color: var(--q-toast-hover-color);
4674
- }
4675
4936
  }
4676
4937
  &--outlined {
4677
4938
  background-color: transparent;
4678
4939
  border-color: var(--q-toast-main-color);
4679
4940
  color: var(--q-toast-main-color);
4680
4941
  }
4681
-
4682
- @each $color, $value in $theme-colors {
4683
- @include color-variant('q-toast', $color);
4684
- }
4685
4942
  }
4686
4943
  .toast-stack-enter-active {
4687
4944
  transition:
@@ -1,6 +1,6 @@
1
1
  import { useGroupItem as e } from "../../composables/useGroup/index.js";
2
2
  import { QCollapsible as t } from "../QCollapsible/index.js";
3
- import { useId as n } from "../../composables/uid.js";
3
+ import { useId as n } from "../../composables/useId/index.js";
4
4
  import { createBlock as r, defineComponent as i, mergeProps as a, openBlock as o, renderSlot as s, toRef as c, unref as l, withCtx as u } from "vue";
5
5
  //#region src/components/QAccordion/QAccordionItem.vue?vue&type=script&setup=true&lang.ts
6
6
  var d = /*@__PURE__*/ i({
@@ -1 +1 @@
1
- {"version":3,"file":"QBadge.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QBadge/QBadge.vue"],"names":[],"mappings":"AAyCA;AAkJC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAW1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,CAAA;AAmGrC,iBAAS,cAAc;WAuIT,OAAO,IAA6B;;yBAXrB,GAAG;yBACF,GAAG;;;;EAehC;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;6EAQnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"QBadge.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QBadge/QBadge.vue"],"names":[],"mappings":"AAyCA;AA+IC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAW1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,CAAA;AAgGrC,iBAAS,cAAc;WAuIT,OAAO,IAA6B;;yBAXrB,GAAG;yBACF,GAAG;;;;EAehC;AAoBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;6EAQnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -31,26 +31,22 @@ var T = ["id"], E = {
31
31
  e,
32
32
  f.class
33
33
  ];
34
- }), M = o(() => {
35
- let e = N.value ? `q-badge--${f.color}` : void 0;
36
- return [
37
- "q-badge",
38
- `q-badge--${f.variant}`,
39
- {
40
- "q-badge--removable": f.removable,
41
- "q-badge--disabled": f.disabled
42
- },
43
- e,
44
- j.value
45
- ];
46
- }), { isUtilityColor: N, style: P } = e(x(f, "color")), F = o(() => {
47
- if (!N.value) return {
48
- "--q-badge-main-color": P.value?.mainColor,
49
- "--q-badge-on-main-color": P.value?.onMainColor,
50
- "--q-badge-hover-color": P.value?.hoverColor,
51
- "--q-badge-on-hover-color": P.value?.onHoverColor
34
+ }), M = o(() => [
35
+ "q-badge",
36
+ `q-badge--${f.variant}`,
37
+ {
38
+ "q-badge--removable": f.removable,
39
+ "q-badge--disabled": f.disabled
40
+ },
41
+ j.value
42
+ ]), { style: N } = e(x(f, "color")), P = o(() => {
43
+ if (N.value) return {
44
+ "--q-badge-main-color": N.value.mainColor,
45
+ "--q-badge-on-main-color": N.value.onMainColor,
46
+ "--q-badge-hover-color": N.value.hoverColor,
47
+ "--q-badge-on-hover-color": N.value.onHoverColor
52
48
  };
53
- }), I = o(() => k.onClick), L = o(() => ({
49
+ }), F = o(() => k.onClick), I = o(() => ({
54
50
  class: "q-badge__remove",
55
51
  variant: f.variant,
56
52
  color: f.color,
@@ -58,7 +54,7 @@ var T = ["id"], E = {
58
54
  title: f.texts.removeText,
59
55
  disabled: f.disabled
60
56
  }));
61
- function R() {
57
+ function L() {
62
58
  O("click:remove");
63
59
  }
64
60
  return (e, r) => A.value ? (v(), s(b(f.removable ? S(a) : "span"), {
@@ -70,7 +66,7 @@ var T = ["id"], E = {
70
66
  variant: f.variant,
71
67
  color: f.color,
72
68
  disabled: f.disabled,
73
- onClick: I.value
69
+ onClick: F.value
74
70
  }, {
75
71
  default: w(() => [y(e.$slots, "default")]),
76
72
  _: 3
@@ -79,7 +75,7 @@ var T = ["id"], E = {
79
75
  "color",
80
76
  "disabled",
81
77
  "onClick"
82
- ]), f.removable ? (v(), s(S(t), m({ key: 0 }, L.value, { onClick: R }), {
78
+ ]), f.removable ? (v(), s(S(t), m({ key: 0 }, I.value, { onClick: L }), {
83
79
  default: w(() => [d(S(n), g(p(f.icons.remove)), null, 16)]),
84
80
  _: 1
85
81
  }, 16)) : c("v-if", !0)]),
@@ -88,8 +84,8 @@ var T = ["id"], E = {
88
84
  key: 0,
89
85
  id: f.id,
90
86
  class: h(M.value),
91
- style: _(F.value)
92
- }, [f.variant === "tonal" ? (v(), l("div", E)) : c("v-if", !0), u("span", null, [u("div", D, [y(e.$slots, "default")]), f.removable ? (v(), s(S(t), m({ key: 0 }, L.value, { onClick: R }), {
87
+ style: _(P.value)
88
+ }, [f.variant === "tonal" ? (v(), l("div", E)) : c("v-if", !0), u("span", null, [u("div", D, [y(e.$slots, "default")]), f.removable ? (v(), s(S(t), m({ key: 0 }, I.value, { onClick: L }), {
93
89
  default: w(() => [d(S(n), g(p(f.icons.remove)), null, 16)]),
94
90
  _: 1
95
91
  }, 16)) : c("v-if", !0)])], 14, T));
@@ -1 +1 @@
1
- {"version":3,"file":"QButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QButton/QButton.vue"],"names":[],"mappings":"AAoBA;AA0GC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,CAAA;AA8EtC,iBAAS,cAAc;WAgDT,OAAO,IAA6B;;yBAXrB,GAAG;wBACJ,GAAG;;;;EAe9B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;2FASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"QButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QButton/QButton.vue"],"names":[],"mappings":"AAwBA;AAgHC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,CAAA;AAgFtC,iBAAS,cAAc;WAqDT,OAAO,IAA6B;;yBAXrB,GAAG;wBACJ,GAAG;;;;EAe9B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;2FASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -5,7 +5,10 @@ import { computed as n, createCommentVNode as r, createElementBlock as i, create
5
5
  var _ = ["id", "disabled"], v = {
6
6
  key: 0,
7
7
  class: "q-button__spinner"
8
- }, y = { class: "q-button__content" }, b = /*@__PURE__*/ c({
8
+ }, y = { class: "q-button__content" }, b = {
9
+ key: 0,
10
+ class: "q-button__append"
11
+ }, x = /*@__PURE__*/ c({
9
12
  __name: "QButton",
10
13
  props: {
11
14
  id: {},
@@ -23,52 +26,52 @@ var _ = ["id", "disabled"], v = {
23
26
  loading: { type: Boolean }
24
27
  },
25
28
  emits: ["click"],
26
- setup(c, { emit: b }) {
27
- let x = c, S = b, C = n(() => x.disabled || x.loading);
28
- function w(e) {
29
- C.value || S("click", e);
29
+ setup(c, { emit: x }) {
30
+ let S = c, C = x, w = n(() => S.disabled || S.loading);
31
+ function T(e) {
32
+ w.value || C("click", e);
30
33
  }
31
- let { isUtilityColor: T, style: E } = t(m(x, "color")), D = n(() => {
32
- let e = T.value ? `q-button--${x.color}` : void 0, t = x.size === "regular" ? void 0 : `q-button--${x.size}`, n = x.iconPos === "start" ? void 0 : `q-button--icon-${x.iconPos}`;
34
+ let { style: E } = t(m(S, "color")), D = n(() => {
35
+ let e = S.color === "background" ? "q-button--background" : void 0, t = S.size === "regular" ? void 0 : `q-button--${S.size}`, n = S.iconPos === "start" ? void 0 : `q-button--icon-${S.iconPos}`;
33
36
  return [
34
37
  "q-button",
35
- `q-button--${x.variant}`,
38
+ `q-button--${S.variant}`,
36
39
  e,
37
40
  t,
38
41
  n,
39
42
  {
40
- "q-button--labeled": x.label,
41
- "q-button--borderless": x.borderless,
42
- "q-button--elevated": x.elevated,
43
- "q-button--block": x.block,
44
- "q-button--loading": x.loading,
45
- "q-button--pill": x.pill
43
+ "q-button--labeled": S.label,
44
+ "q-button--borderless": S.borderless,
45
+ "q-button--elevated": S.elevated,
46
+ "q-button--block": S.block,
47
+ "q-button--loading": S.loading,
48
+ "q-button--pill": S.pill
46
49
  },
47
- x.class
50
+ S.class
48
51
  ];
49
52
  }), O = n(() => {
50
- if (!T.value) return {
51
- "--q-button-main-color": E.value?.mainColor,
52
- "--q-button-main-color-rgb": E.value?.mainColorRgb,
53
- "--q-button-on-main-color": E.value?.onMainColor,
54
- "--q-button-hover-color": E.value?.hoverColor,
55
- "--q-button-hover-color-rgb": E.value?.hoverColorRgb,
56
- "--q-button-on-hover-color": E.value?.onHoverColor
53
+ if (!(S.color === "background" || !E.value)) return {
54
+ "--q-button-main-color": E.value.mainColor,
55
+ "--q-button-main-color-rgb": E.value.mainColorRgb,
56
+ "--q-button-on-main-color": E.value.onMainColor,
57
+ "--q-button-hover-color": E.value.hoverColor,
58
+ "--q-button-hover-color-rgb": E.value.hoverColorRgb,
59
+ "--q-button-on-hover-color": E.value.onHoverColor
57
60
  };
58
61
  });
59
62
  return (t, n) => (d(), i("button", {
60
- id: x.id,
63
+ id: S.id,
61
64
  type: "button",
62
65
  class: l(D.value),
63
- disabled: C.value,
66
+ disabled: w.value,
64
67
  style: u(O.value),
65
- onClick: g(w, ["stop", "prevent"])
66
- }, [x.loading ? (d(), i("div", v, [s(h(e))])) : r("v-if", !0), a("span", y, [
68
+ onClick: g(T, ["stop", "prevent"])
69
+ }, [S.loading ? (d(), i("div", v, [s(h(e))])) : r("v-if", !0), a("span", y, [
67
70
  f(t.$slots, "default"),
68
- o(" " + p(x.label) + " ", 1),
69
- f(t.$slots, "append")
71
+ o(" " + p(S.label) + " ", 1),
72
+ t.$slots.append ? (d(), i("span", b, [f(t.$slots, "append")])) : r("v-if", !0)
70
73
  ])], 14, _));
71
74
  }
72
75
  });
73
76
  //#endregion
74
- export { b as default };
77
+ export { x as default };
@@ -1,5 +1,5 @@
1
1
  import { QIcon as e } from "../QIcon/index.js";
2
- import { useId as t } from "../../composables/uid.js";
2
+ import { useId as t } from "../../composables/useId/index.js";
3
3
  import { DEFAULT_ICONS as n } from "./constants.js";
4
4
  import { QCheckboxLabel as r } from "./index.js";
5
5
  import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as l, defineComponent as u, mergeModels as d, mergeProps as f, normalizeClass as p, openBlock as m, renderSlot as h, toRef as g, unref as _, useModel as v, useTemplateRef as y, watch as b, withCtx as x, withKeys as S, withModifiers as C } from "vue";