@quidgest/ui 0.18.0 → 0.19.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 (63) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/dist/json/api.json +136 -129
  3. package/dist/manifest/components.json +2 -1
  4. package/dist/ui.css +242 -155
  5. package/dist/ui.esm.js +365 -343
  6. package/dist/ui.js +121 -99
  7. package/dist/ui.min.css +1 -1
  8. package/dist/ui.min.js +121 -99
  9. package/dist/ui.scss +225 -151
  10. package/esm/components/QGrid/QCol.vue.js +1 -1
  11. package/esm/components/{QGroupBox/QGroupBox.d.ts → QSection/QSection.d.ts} +4 -4
  12. package/esm/components/QSection/QSection.d.ts.map +1 -0
  13. package/esm/components/{QGroupBox/QGroupBox.vue.js → QSection/QSection.vue.js} +8 -8
  14. package/esm/components/QSection/QSection2.vue.js +5 -0
  15. package/esm/components/{QGroupBox → QSection}/index.d.ts +8 -8
  16. package/esm/components/QSection/index.d.ts.map +1 -0
  17. package/esm/components/QSection/index.js +6 -0
  18. package/esm/components/QSection/types.d.ts +32 -0
  19. package/esm/components/QSection/types.d.ts.map +1 -0
  20. package/esm/components/QSidebar/QSidebar.d.ts +53 -6
  21. package/esm/components/QSidebar/QSidebar.d.ts.map +1 -1
  22. package/esm/components/QSidebar/QSidebar.vue.js +76 -106
  23. package/esm/components/QSidebar/QSidebarAnchor.d.ts +24 -210
  24. package/esm/components/QSidebar/QSidebarAnchor.d.ts.map +1 -1
  25. package/esm/components/QSidebar/QSidebarAnchor.vue.js +47 -59
  26. package/esm/components/QSidebar/QSidebarItem.d.ts +213 -0
  27. package/esm/components/QSidebar/QSidebarItem.d.ts.map +1 -0
  28. package/esm/components/QSidebar/QSidebarItem.vue.js +130 -0
  29. package/esm/components/QSidebar/QSidebarItem2.vue.js +5 -0
  30. package/esm/components/QSidebar/QSidebarPanel.d.ts +1 -7
  31. package/esm/components/QSidebar/QSidebarPanel.d.ts.map +1 -1
  32. package/esm/components/QSidebar/QSidebarPanel.vue.js +4 -10
  33. package/esm/components/QSidebar/context.d.ts +108 -0
  34. package/esm/components/QSidebar/context.d.ts.map +1 -0
  35. package/esm/components/QSidebar/context.js +4 -0
  36. package/esm/components/QSidebar/index.d.ts +166 -8
  37. package/esm/components/QSidebar/index.d.ts.map +1 -1
  38. package/esm/components/QSidebar/index.js +3 -2
  39. package/esm/components/QSidebar/types.d.ts +77 -42
  40. package/esm/components/QSidebar/types.d.ts.map +1 -1
  41. package/esm/components/QTabs/QTab.d.ts +1 -0
  42. package/esm/components/QTabs/QTab.d.ts.map +1 -1
  43. package/esm/components/QTabs/QTab.vue.js +2 -1
  44. package/esm/components/QTabs/QTabs.d.ts +2 -0
  45. package/esm/components/QTabs/QTabs.d.ts.map +1 -1
  46. package/esm/components/QTabs/QTabs.vue.js +125 -46
  47. package/esm/components/QTabs/context.d.ts +10 -3
  48. package/esm/components/QTabs/context.d.ts.map +1 -1
  49. package/esm/components/QTabs/index.d.ts +2 -0
  50. package/esm/components/QTabs/index.d.ts.map +1 -1
  51. package/esm/components/QTabs/types.d.ts +3 -1
  52. package/esm/components/QTabs/types.d.ts.map +1 -1
  53. package/esm/components/index.d.ts +1 -1
  54. package/esm/components/index.d.ts.map +1 -1
  55. package/esm/components/index.js +41 -40
  56. package/esm/index.d.ts +2 -1
  57. package/package.json +7 -6
  58. package/esm/components/QGroupBox/QGroupBox.d.ts.map +0 -1
  59. package/esm/components/QGroupBox/QGroupBox2.vue.js +0 -5
  60. package/esm/components/QGroupBox/index.d.ts.map +0 -1
  61. package/esm/components/QGroupBox/index.js +0 -6
  62. package/esm/components/QGroupBox/types.d.ts +0 -32
  63. package/esm/components/QGroupBox/types.d.ts.map +0 -1
package/dist/ui.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quidgest UI v0.18.0
2
+ * Quidgest UI v0.19.0
3
3
  * (c) 2026 Quidgest - Consultores de Gestão, S.A.
4
4
  * Released under the MIT License.
5
5
  */
@@ -593,7 +593,8 @@ $transition-duration: 0.2s !default;
593
593
  }
594
594
  &--pill {
595
595
  border-radius: 9999px;
596
- .q-button {
596
+ #{$this}__content.q-button,
597
+ #{$this}__remove.q-button {
597
598
  border-radius: 9999px;
598
599
  }
599
600
  }
@@ -647,7 +648,7 @@ $transition-duration: 0.2s !default;
647
648
  vertical-align: middle;
648
649
  flex-shrink: 0;
649
650
  }
650
- .q-badge__content {
651
+ &.q-badge .q-badge__content {
651
652
  padding: 0;
652
653
  }
653
654
 
@@ -1431,11 +1432,13 @@ $q-carousel-height-md: 300px;
1431
1432
  right: 0;
1432
1433
  }
1433
1434
  }
1434
- .q-card__content {
1435
- padding: 0;
1436
- }
1437
- .q-card__header {
1438
- padding-bottom: 0;
1435
+ &.q-card {
1436
+ .q-card__content {
1437
+ padding: 0;
1438
+ }
1439
+ .q-card__header {
1440
+ padding-bottom: 0;
1441
+ }
1439
1442
  }
1440
1443
  &__header {
1441
1444
  display: flex;
@@ -1450,7 +1453,7 @@ $q-carousel-height-md: 300px;
1450
1453
  flex-direction: column;
1451
1454
  padding: 0;
1452
1455
  }
1453
- &__btn {
1456
+ &__btn.q-button {
1454
1457
  width: 100%;
1455
1458
  margin: 0;
1456
1459
 
@@ -1533,7 +1536,7 @@ $q-carousel-height-md: 300px;
1533
1536
  }
1534
1537
 
1535
1538
  @mixin header-spacing($spacing, $increment) {
1536
- &--#{$spacing} .q-collapsible__btn {
1539
+ &--#{$spacing} .q-collapsible__btn.q-button {
1537
1540
  padding: calc(#{$header-padding} + #{$increment});
1538
1541
  }
1539
1542
  }
@@ -1556,7 +1559,7 @@ $q-carousel-height-md: 300px;
1556
1559
  .q-combobox {
1557
1560
  $this: &;
1558
1561
  &:not(#{$this}--disabled) {
1559
- #{$this}__chevron {
1562
+ #{$this}__chevron.q-button {
1560
1563
  &:hover,
1561
1564
  &:focus {
1562
1565
  cursor: pointer;
@@ -1565,7 +1568,7 @@ $q-carousel-height-md: 300px;
1565
1568
  }
1566
1569
  }
1567
1570
  }
1568
- .q-combobox__chevron {
1571
+ .q-combobox__chevron.q-button {
1569
1572
  padding: 0.1rem;
1570
1573
  opacity: 0.5;
1571
1574
  &:hover {
@@ -1791,7 +1794,7 @@ $q-carousel-height-md: 300px;
1791
1794
  gap: 0.5rem;
1792
1795
  }
1793
1796
  }
1794
- &__close {
1797
+ &__close.q-button {
1795
1798
  position: absolute;
1796
1799
  top: 0.5rem;
1797
1800
  right: 0.5rem;
@@ -2324,121 +2327,6 @@ $q-spacing-sides: (
2324
2327
  @include q-generate-responsive-spacing(margin, m);
2325
2328
  @include q-generate-responsive-spacing(padding, p);
2326
2329
  @include q-generate-margin-auto;
2327
- .q-group-box {
2328
- $this: &;
2329
- display: inline-block;
2330
- overflow-wrap: break-word;
2331
- background-color: var(--q-theme-container);
2332
- border-width: 1px;
2333
- border-bottom: $group-border-bottom;
2334
- padding: 0.5rem 1rem 1rem;
2335
- border-radius: var(--border-radius);
2336
- position: relative;
2337
- max-width: 100%;
2338
- &:focus-visible {
2339
- outline: $outline;
2340
- border-radius: var(--border-radius);
2341
- }
2342
- &__title {
2343
- font-size: 1.2rem;
2344
- line-height: 1rem;
2345
- letter-spacing: 0.02rem;
2346
- color: var(--q-theme-primary);
2347
- text-transform: $headings-text-transform;
2348
- margin: 0;
2349
- margin-top: 0.25rem;
2350
- display: flex;
2351
- align-items: flex-start;
2352
- width: fit-content;
2353
- gap: 0.25rem;
2354
- margin-bottom: 0.5rem;
2355
- }
2356
-
2357
- &--background {
2358
- background-color: rgb(var(--q-theme-primary-light-rgb) / 50%);
2359
- padding: 0.5rem 1rem 1rem;
2360
- }
2361
- &--minor {
2362
- background-color: transparent;
2363
- border: none;
2364
- border-radius: 0;
2365
- padding: 0.5rem 0 0;
2366
- }
2367
- &--minor-border-top {
2368
- background-color: transparent;
2369
- border: none;
2370
- border-top: 1px solid var(--q-theme-neutral-light);
2371
- border-radius: 0;
2372
- margin-top: 0.5rem;
2373
- padding: 0.25rem 0;
2374
- }
2375
- &--minor,
2376
- &--minor-border-top {
2377
- #{$this}__title {
2378
- font-size: 0.9rem;
2379
- line-height: 1;
2380
- letter-spacing: initial;
2381
- color: var(--q-theme-neutral-dark);
2382
- text-transform: none;
2383
- font-weight: 600;
2384
- margin-bottom: 0.25rem;
2385
- margin-top: 0.25rem;
2386
- }
2387
- }
2388
- &--title-background {
2389
- padding: 0 !important;
2390
- &::before {
2391
- position: absolute;
2392
- top: 0;
2393
- left: 0;
2394
- height: 30px;
2395
- width: 100%;
2396
- content: '';
2397
- background-color: rgb(var(--q-theme-neutral-light-rgb) / 25%);
2398
- border-radius: var(--border-radius) var(--border-radius) 0 0;
2399
- }
2400
- #{$this}__title {
2401
- padding: 0.5rem 1rem;
2402
- margin: 0;
2403
- font-size: 0.9rem;
2404
- font-weight: 700;
2405
- line-height: 1;
2406
- letter-spacing: 0.01rem;
2407
- color: var(--q-theme-on-background);
2408
- text-transform: none;
2409
- z-index: 10;
2410
- position: relative;
2411
- }
2412
- > #{$this}__content {
2413
- padding: 0.2rem 1rem 1rem;
2414
- }
2415
- }
2416
- &--subsection {
2417
- border: none;
2418
- margin-left: 0.625rem;
2419
- margin-bottom: 0.625rem;
2420
- #{$this}__title {
2421
- font-size: 0.9rem;
2422
- line-height: 1;
2423
- letter-spacing: initial;
2424
- background-color: transparent;
2425
- color: var(--q-theme-neutral-dark);
2426
- text-transform: none;
2427
- font-weight: 600;
2428
- margin-bottom: 0.25rem;
2429
- }
2430
- }
2431
-
2432
- &--borderless {
2433
- border-color: transparent;
2434
- margin: 0;
2435
- padding: 0;
2436
- background-color: transparent;
2437
- }
2438
- &--block {
2439
- width: 100%;
2440
- }
2441
- }
2442
2330
  .q-icon {
2443
2331
  display: inline-block;
2444
2332
  color: var(--q-theme-primary);
@@ -2703,11 +2591,11 @@ $q-line-loader-color: var(--q-line-loader-color);
2703
2591
  width: 100%;
2704
2592
  color: var(--q-theme-neutral);
2705
2593
  user-select: none;
2706
- .q-icon {
2594
+ .q-obfuscation__icon.q-icon {
2707
2595
  color: inherit;
2708
2596
  }
2709
2597
  }
2710
- &__action {
2598
+ &__action.q-button {
2711
2599
  justify-content: flex-start;
2712
2600
  margin: 0;
2713
2601
  padding: 0;
@@ -2715,7 +2603,6 @@ $q-line-loader-color: var(--q-line-loader-color);
2715
2603
  width: 100%;
2716
2604
  min-height: 1.5em;
2717
2605
  line-height: inherit;
2718
- color: var(--q-theme-primary);
2719
2606
  &:hover,
2720
2607
  &:focus-visible {
2721
2608
  outline-offset: 0;
@@ -2726,6 +2613,9 @@ $q-line-loader-color: var(--q-line-loader-color);
2726
2613
  &.q-button--labeled {
2727
2614
  padding: 0;
2728
2615
  }
2616
+ &.q-button--text {
2617
+ color: var(--q-theme-primary);
2618
+ }
2729
2619
  }
2730
2620
  &__content {
2731
2621
  display: flex;
@@ -2733,15 +2623,18 @@ $q-line-loader-color: var(--q-line-loader-color);
2733
2623
  gap: $space-base;
2734
2624
  min-width: 0;
2735
2625
  }
2736
- &__label-action {
2737
- color: var(--q-theme-primary);
2626
+ & &__label-action.q-button {
2627
+ padding: 0;
2738
2628
  min-width: auto;
2739
2629
  min-height: auto;
2740
2630
  &:focus-visible {
2741
2631
  outline-offset: 2px;
2742
2632
  }
2633
+ &.q-button--text {
2634
+ color: var(--q-theme-primary);
2635
+ }
2743
2636
  }
2744
- &__icon {
2637
+ &__icon.q-icon {
2745
2638
  flex-shrink: 0;
2746
2639
  }
2747
2640
  }
@@ -3173,13 +3066,128 @@ $base-border: 1px solid rgb(var(--q-theme-neutral-light-rgb) / 50%);
3173
3066
  .q-radio-group--focus-style .q-radio-button:focus-within {
3174
3067
  outline: $outline;
3175
3068
  }
3069
+ .q-section {
3070
+ $this: &;
3071
+ display: inline-block;
3072
+ overflow-wrap: break-word;
3073
+ background-color: var(--q-theme-container);
3074
+ border-width: 1px;
3075
+ border-bottom: $group-border-bottom;
3076
+ padding: 0.5rem 1rem 1rem;
3077
+ border-radius: var(--border-radius);
3078
+ position: relative;
3079
+ max-width: 100%;
3080
+ &:focus-visible {
3081
+ outline: $outline;
3082
+ border-radius: var(--border-radius);
3083
+ }
3084
+ &__title {
3085
+ font-size: 1.2rem;
3086
+ line-height: 1rem;
3087
+ letter-spacing: 0.02rem;
3088
+ color: var(--q-theme-primary);
3089
+ text-transform: $headings-text-transform;
3090
+ margin: 0;
3091
+ margin-top: 0.25rem;
3092
+ display: flex;
3093
+ align-items: flex-start;
3094
+ width: fit-content;
3095
+ gap: 0.25rem;
3096
+ margin-bottom: 0.5rem;
3097
+ }
3098
+
3099
+ &--background {
3100
+ background-color: rgb(var(--q-theme-primary-light-rgb) / 50%);
3101
+ padding: 0.5rem 1rem 1rem;
3102
+ }
3103
+ &--minor {
3104
+ background-color: transparent;
3105
+ border: none;
3106
+ border-radius: 0;
3107
+ padding: 0.5rem 0 0;
3108
+ }
3109
+ &--minor-border-top {
3110
+ background-color: transparent;
3111
+ border: none;
3112
+ border-top: 1px solid var(--q-theme-neutral-light);
3113
+ border-radius: 0;
3114
+ margin-top: 0.5rem;
3115
+ padding: 0.25rem 0;
3116
+ }
3117
+ &--minor,
3118
+ &--minor-border-top {
3119
+ #{$this}__title {
3120
+ font-size: 0.9rem;
3121
+ line-height: 1;
3122
+ letter-spacing: initial;
3123
+ color: var(--q-theme-neutral-dark);
3124
+ text-transform: none;
3125
+ font-weight: 600;
3126
+ margin-bottom: 0.25rem;
3127
+ margin-top: 0.25rem;
3128
+ }
3129
+ }
3130
+ &--title-background {
3131
+ padding: 0 !important;
3132
+ &::before {
3133
+ position: absolute;
3134
+ top: 0;
3135
+ left: 0;
3136
+ height: 30px;
3137
+ width: 100%;
3138
+ content: '';
3139
+ background-color: rgb(var(--q-theme-neutral-light-rgb) / 25%);
3140
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
3141
+ }
3142
+ #{$this}__title {
3143
+ padding: 0.5rem 1rem;
3144
+ margin: 0;
3145
+ font-size: 0.9rem;
3146
+ font-weight: 700;
3147
+ line-height: 1;
3148
+ letter-spacing: 0.01rem;
3149
+ color: var(--q-theme-on-background);
3150
+ text-transform: none;
3151
+ z-index: 10;
3152
+ position: relative;
3153
+ }
3154
+ > #{$this}__content {
3155
+ padding: 0.2rem 1rem 1rem;
3156
+ }
3157
+ }
3158
+ &--subsection {
3159
+ border: none;
3160
+ margin-left: 0.625rem;
3161
+ margin-bottom: 0.625rem;
3162
+ #{$this}__title {
3163
+ font-size: 0.9rem;
3164
+ line-height: 1;
3165
+ letter-spacing: initial;
3166
+ background-color: transparent;
3167
+ color: var(--q-theme-neutral-dark);
3168
+ text-transform: none;
3169
+ font-weight: 600;
3170
+ margin-bottom: 0.25rem;
3171
+ }
3172
+ }
3173
+
3174
+ &--borderless {
3175
+ border-color: transparent;
3176
+ margin: 0;
3177
+ padding: 0;
3178
+ background-color: transparent;
3179
+ }
3180
+ &--block {
3181
+ width: 100%;
3182
+ }
3183
+ }
3176
3184
  .q-select {
3177
3185
  $this: &;
3178
3186
  &:not(#{$this}--readonly):not(#{$this}--disabled) {
3179
3187
  cursor: pointer;
3180
3188
  }
3181
3189
  &:not(#{$this}--disabled) {
3182
- #{$this}__chevron {
3190
+ #{$this}__chevron.q-button {
3183
3191
  &:hover,
3184
3192
  &:focus {
3185
3193
  opacity: 1;
@@ -3235,7 +3243,7 @@ $base-border: 1px solid rgb(var(--q-theme-neutral-light-rgb) / 50%);
3235
3243
  visibility: hidden;
3236
3244
  }
3237
3245
  }
3238
- .q-badge__content {
3246
+ .q-badge .q-badge__content {
3239
3247
  white-space: nowrap;
3240
3248
  }
3241
3249
  }
@@ -3248,7 +3256,7 @@ $base-border: 1px solid rgb(var(--q-theme-neutral-light-rgb) / 50%);
3248
3256
  opacity: 0;
3249
3257
  cursor: inherit;
3250
3258
  }
3251
- &__chevron {
3259
+ &__chevron.q-button {
3252
3260
  padding: 0.1rem;
3253
3261
  opacity: 0.5;
3254
3262
  &:hover {
@@ -3293,11 +3301,15 @@ $base-border: 1px solid rgb(var(--q-theme-neutral-light-rgb) / 50%);
3293
3301
  $sidebar-size-small: 19rem;
3294
3302
  $sidebar-size-medium: 27rem;
3295
3303
  $sidebar-size-large: 35rem;
3304
+ $sidebar-size-xlarge: 50%;
3305
+ $sidebar-size-block: 100%;
3296
3306
  $sidebar-border-color: rgb(var(--q-theme-neutral-rgb) / 25%);
3297
3307
  $sidebar-sizes: (
3298
3308
  small: $sidebar-size-small,
3299
3309
  medium: $sidebar-size-medium,
3300
- large: $sidebar-size-large
3310
+ large: $sidebar-size-large,
3311
+ xlarge: $sidebar-size-xlarge,
3312
+ block: $sidebar-size-block
3301
3313
  );
3302
3314
  @mixin sidebar-size-modifiers($prefix, $property) {
3303
3315
  @each $size, $value in $sidebar-sizes {
@@ -3314,10 +3326,20 @@ $sidebar-sizes: (
3314
3326
  flex-direction: row;
3315
3327
  width: min-content;
3316
3328
  }
3317
- .q-sidebar--expanded {
3329
+ .q-sidebar--expanded:not(.q-sidebar--xlarge, .q-sidebar--block) {
3318
3330
  min-width: $sidebar-size-small;
3319
3331
  max-width: $sidebar-size-large;
3320
3332
  }
3333
+ .q-sidebar__panels {
3334
+ position: relative;
3335
+ flex: 1 1 auto;
3336
+ min-width: 0;
3337
+ overflow: hidden;
3338
+ > .q-sidebar-panel {
3339
+ width: 100%;
3340
+ height: 100%;
3341
+ }
3342
+ }
3321
3343
  .q-sidebar-anchor {
3322
3344
  display: flex;
3323
3345
  flex-direction: column;
@@ -3330,7 +3352,7 @@ $sidebar-sizes: (
3330
3352
  flex-direction: column;
3331
3353
  position: relative;
3332
3354
  }
3333
- .q-sidebar__item {
3355
+ .q-sidebar__item.q-button {
3334
3356
  width: 100%;
3335
3357
  height: 100%;
3336
3358
  aspect-ratio: 1;
@@ -3367,7 +3389,13 @@ $sidebar-sizes: (
3367
3389
  display: flex;
3368
3390
  align-items: center;
3369
3391
  gap: 0.5rem;
3370
- padding: 1rem;
3392
+ margin: 1rem;
3393
+ }
3394
+ .q-sidebar-panel__header {
3395
+ margin-bottom: 0;
3396
+ }
3397
+ .q-sidebar-panel__footer {
3398
+ margin-top: 0;
3371
3399
  }
3372
3400
  .q-sidebar-panel__title {
3373
3401
  margin: 0;
@@ -3375,6 +3403,7 @@ $sidebar-sizes: (
3375
3403
  .q-sidebar-panel__content {
3376
3404
  flex: 1 1 0%;
3377
3405
  overflow: auto;
3406
+ margin: 1rem;
3378
3407
  }
3379
3408
  .q-sidebar-panel__handle {
3380
3409
  position: absolute;
@@ -3697,10 +3726,13 @@ $spinner-color: var(--q-theme-primary);
3697
3726
  &--horizontal {
3698
3727
  flex-direction: column;
3699
3728
  .q-tabs__list {
3700
- flex-direction: row;
3701
3729
  width: 100%;
3702
3730
  border-bottom: 1px solid $border;
3703
3731
  }
3732
+ .q-tabs__tablist {
3733
+ flex-direction: row;
3734
+ width: 100%;
3735
+ }
3704
3736
  .q-tab {
3705
3737
  margin-bottom: -1px;
3706
3738
  }
@@ -3719,11 +3751,13 @@ $spinner-color: var(--q-theme-primary);
3719
3751
  align-items: stretch;
3720
3752
  .q-tabs__list {
3721
3753
  flex: 0 0 auto;
3722
- flex-direction: column;
3723
3754
  width: max-content;
3724
3755
  max-width: 100%;
3725
3756
  border-inline-end: 1px solid $border;
3726
3757
  }
3758
+ .q-tabs__tablist {
3759
+ flex-direction: column;
3760
+ }
3727
3761
  .q-tab {
3728
3762
  justify-content: flex-start;
3729
3763
  margin-inline-end: -1px;
@@ -3741,7 +3775,28 @@ $spinner-color: var(--q-theme-primary);
3741
3775
  }
3742
3776
  }
3743
3777
 
3778
+
3744
3779
  &--line {
3780
+ .q-tabs__indicator {
3781
+ position: absolute;
3782
+ background-color: $primary;
3783
+ opacity: 0;
3784
+ pointer-events: none;
3785
+ z-index: 1;
3786
+ }
3787
+ &.q-tabs--indicator-ready .q-tabs__indicator {
3788
+ transition:
3789
+ transform 0.3s ease-in-out,
3790
+ width 0.3s ease-in-out,
3791
+ height 0.3s ease-in-out,
3792
+ opacity 0.2s ease-in-out;
3793
+ }
3794
+ &.q-tabs--horizontal .q-tabs__indicator {
3795
+
3796
+
3797
+ bottom: -1px;
3798
+ left: 0;
3799
+ }
3745
3800
  &.q-tabs--horizontal .q-tab {
3746
3801
  border-bottom: 4px solid transparent;
3747
3802
  border-end-start-radius: 0;
@@ -3755,6 +3810,14 @@ $spinner-color: var(--q-theme-primary);
3755
3810
  }
3756
3811
  }
3757
3812
  }
3813
+ &.q-tabs--indicator-ready.q-tabs--horizontal .q-tab--active {
3814
+ border-bottom-color: transparent;
3815
+ }
3816
+ &.q-tabs--vertical .q-tabs__indicator {
3817
+
3818
+ top: 0;
3819
+ inset-inline-end: -1px;
3820
+ }
3758
3821
  &.q-tabs--vertical .q-tab {
3759
3822
  border-inline-end: 4px solid transparent;
3760
3823
  border-start-end-radius: 0;
@@ -3768,10 +3831,13 @@ $spinner-color: var(--q-theme-primary);
3768
3831
  }
3769
3832
  }
3770
3833
  }
3834
+ &.q-tabs--indicator-ready.q-tabs--vertical .q-tab--active {
3835
+ border-inline-end-color: transparent;
3836
+ }
3771
3837
  }
3772
3838
 
3773
3839
  &--card {
3774
- .q-tabs__list {
3840
+ .q-tabs__tablist {
3775
3841
  gap: 0;
3776
3842
  }
3777
3843
  .q-tab {
@@ -3817,22 +3883,25 @@ $spinner-color: var(--q-theme-primary);
3817
3883
  }
3818
3884
  }
3819
3885
  }
3820
- &--align-start .q-tabs__list {
3886
+ &--align-start .q-tabs__tablist {
3821
3887
  justify-content: flex-start;
3822
3888
  }
3823
- &--align-end .q-tabs__list {
3889
+ &--align-end .q-tabs__tablist {
3824
3890
  justify-content: flex-end;
3825
3891
  }
3826
- &--align-center .q-tabs__list {
3892
+ &--align-center .q-tabs__tablist {
3827
3893
  justify-content: center;
3828
3894
  }
3829
- &--align-justify .q-tabs__list {
3895
+ &--align-justify .q-tabs__tablist {
3830
3896
  justify-content: space-between;
3831
3897
  .q-tab {
3832
3898
  flex: 1;
3833
3899
  }
3834
3900
  }
3835
3901
  &__list {
3902
+ position: relative;
3903
+ }
3904
+ &__tablist {
3836
3905
  display: flex;
3837
3906
  gap: $space-base;
3838
3907
  }
@@ -3852,10 +3921,10 @@ $spinner-color: var(--q-theme-primary);
3852
3921
  background: transparent;
3853
3922
  border: 0;
3854
3923
  padding: 0.5rem 0.75rem;
3855
- &.q-button {
3924
+ &.q-button.q-button--text {
3856
3925
  color: $on-background;
3857
3926
  }
3858
- &--active.q-button {
3927
+ &--active.q-button.q-button--text {
3859
3928
  color: $primary;
3860
3929
  cursor: default;
3861
3930
  &:hover:not(:disabled) {
@@ -3878,6 +3947,11 @@ $spinner-color: var(--q-theme-primary);
3878
3947
  }
3879
3948
  }
3880
3949
  }
3950
+ @media (prefers-reduced-motion: reduce) {
3951
+ .q-tabs--line.q-tabs--indicator-ready .q-tabs__indicator {
3952
+ transition: opacity 0.2s ease-in-out;
3953
+ }
3954
+ }
3881
3955
  .q-text-area {
3882
3956
 
3883
3957
  display: flex;
@@ -4110,7 +4184,7 @@ $q-toast-slide-distance: clamp(1rem, 3vw, 1.5rem) !default;
4110
4184
  will-change: auto;
4111
4185
  }
4112
4186
  .q-toggle {
4113
- &--active {
4187
+ &.q-button.q-toggle--active {
4114
4188
  z-index: 2;
4115
4189
  color: var(--q-theme-primary-dark);
4116
4190
  background-color: rgb(var(--q-theme-primary-light-rgb) / 50%);
@@ -25,7 +25,7 @@ var s = /*@__PURE__*/ r({
25
25
  if (t) return t === "auto" ? `q-col${e ? `-${e}` : ""}-auto` : `q-col${e ? `-${e}` : ""}-${t}`;
26
26
  }
27
27
  return e({
28
- QGroupBox: { block: t(() => s.cols === "auto" ? void 0 : !0) },
28
+ QSection: { block: t(() => s.cols === "auto" ? void 0 : !0) },
29
29
  QField: { size: t(() => s.cols === "auto" ? void 0 : "block") }
30
30
  }), (e, t) => (a(), n("div", { class: i(c.value) }, [o(e.$slots, "default")], 2));
31
31
  }
@@ -1,4 +1,4 @@
1
- import { QGroupBoxProps } from '.';
1
+ import { QSectionProps } from '.';
2
2
  declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
4
  slots: {
@@ -8,8 +8,8 @@ declare function __VLS_template(): {
8
8
  rootEl: HTMLDivElement;
9
9
  };
10
10
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
11
- declare const __VLS_component: import('vue').DefineComponent<QGroupBoxProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<QGroupBoxProps> & Readonly<{}>, {
12
- variant: import('./types').QGroupBoxVariant;
11
+ declare const __VLS_component: import('vue').DefineComponent<QSectionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<QSectionProps> & Readonly<{}>, {
12
+ variant: import('./types').QSectionVariant;
13
13
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
14
14
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
15
15
  export default _default;
@@ -18,4 +18,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
18
18
  $slots: S;
19
19
  };
20
20
  };
21
- //# sourceMappingURL=QGroupBox.vue.d.ts.map
21
+ //# sourceMappingURL=QSection.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QSection.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QSection/QSection.vue"],"names":[],"mappings":"AAcA;AA4CC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AA8BvC,iBAAS,cAAc;WAkCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;wFAQnB,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,10 +1,10 @@
1
1
  import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, defineComponent as i, normalizeClass as a, openBlock as o, renderSlot as s, toDisplayString as c } from "vue";
2
- //#region src/components/QGroupBox/QGroupBox.vue?vue&type=script&setup=true&lang.ts
2
+ //#region src/components/QSection/QSection.vue?vue&type=script&setup=true&lang.ts
3
3
  var l = ["id"], u = {
4
4
  key: 0,
5
- class: "q-group-box__title"
6
- }, d = { class: "q-group-box__content" }, f = /*@__PURE__*/ i({
7
- __name: "QGroupBox",
5
+ class: "q-section__title"
6
+ }, d = { class: "q-section__content" }, f = /*@__PURE__*/ i({
7
+ __name: "QSection",
8
8
  props: {
9
9
  id: {},
10
10
  class: {},
@@ -15,11 +15,11 @@ var l = ["id"], u = {
15
15
  },
16
16
  setup(i) {
17
17
  let f = i, p = e(() => [
18
- "q-group-box",
19
- f.variant === "default" ? void 0 : `q-group-box--${f.variant}`,
18
+ "q-section",
19
+ f.variant === "default" ? void 0 : `q-section--${f.variant}`,
20
20
  {
21
- "q-group-box--block": f.block,
22
- "q-group-box--borderless": f.borderless
21
+ "q-section--block": f.block,
22
+ "q-section--borderless": f.borderless
23
23
  },
24
24
  f.class
25
25
  ]);
@@ -0,0 +1,5 @@
1
+ import e from "./QSection.vue.js";
2
+ //#region src/components/QSection/QSection.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };