avo 4.0.0.beta.44 → 4.0.0.beta.45
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/assets/builds/avo/application.css +101 -60
- data/app/assets/stylesheets/application.css +0 -1
- data/app/assets/stylesheets/css/components/breadcrumbs.css +11 -2
- data/app/assets/stylesheets/css/components/color_scheme_switcher.css +7 -1
- data/app/assets/stylesheets/css/components/filters.css +1 -1
- data/app/assets/stylesheets/css/components/input.css +2 -2
- data/app/assets/stylesheets/css/components/ui/card.css +8 -2
- data/app/assets/stylesheets/css/components/ui/dropdown.css +1 -1
- data/app/assets/stylesheets/css/components/ui/tabs.css +22 -0
- data/app/assets/stylesheets/css/layout.css +44 -61
- data/app/assets/stylesheets/css/variables.css +4 -0
- data/app/components/avo/fields/common/heading_component.html.erb +1 -3
- data/app/components/avo/fields/common/heading_component.rb +1 -1
- data/app/components/avo/fields/date_field/edit_component.html.erb +3 -2
- data/app/components/avo/fields/date_time_field/edit_component.html.erb +3 -2
- data/app/components/avo/fields/heading_field/edit_component.html.erb +2 -2
- data/app/components/avo/fields/heading_field/show_component.html.erb +1 -1
- data/app/components/avo/fields/time_field/edit_component.html.erb +3 -2
- data/app/components/avo/views/resource_index_component.html.erb +3 -5
- data/app/views/avo/partials/_navbar.html.erb +2 -1
- data/lib/avo/configuration.rb +1 -1
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/templates/initializer/avo.tt +1 -1
- metadata +2 -8
- data/app/assets/stylesheets/css/components/tab_group.css +0 -18
- data/public/avo-assets/avo.base.css +0 -13370
- data/public/avo-assets/avo.base.js +0 -1201
- data/public/avo-assets/avo.base.js.map +0 -7
- data/public/avo-assets/late-registration.js +0 -2
- data/public/avo-assets/late-registration.js.map +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0025b604ab0ca5ff4bdf83b41204be7b6ca2eb6211269b45bb1827f059a731fc
|
|
4
|
+
data.tar.gz: 1f5ac00fe7cf8b1218c4d6ec6657820175e7fce008d027f449ade483126a9791
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9e26e80cadbb04224a25ce1ae3321545426a334ac195cde6f0880143ef3d38377788e39189d2f77e180ea8c5152c7647874b112e4dd1c6b9931907e6628f82d0
|
|
7
|
+
data.tar.gz: 7d6e56e3c9ddae3a12767064d99166fe603391b2157f792ef79107943e068cd035e11241d32f1f0929a4bcc472e01a3b4513ad7d953391f406aecc33667f6dd3
|
data/Gemfile.lock
CHANGED
|
@@ -349,6 +349,7 @@
|
|
|
349
349
|
--color-primary: var(--color-white);
|
|
350
350
|
--color-secondary: var(--color-avo-neutral-100);
|
|
351
351
|
--color-tertiary: var(--color-avo-neutral-200);
|
|
352
|
+
--color-quaternary: var(--color-avo-neutral-300);
|
|
352
353
|
--color-content: var(--color-avo-neutral-950);
|
|
353
354
|
--color-content-secondary: var(--color-avo-neutral-500);
|
|
354
355
|
--color-scheme: var(--color-white);
|
|
@@ -361,6 +362,8 @@
|
|
|
361
362
|
--color-navbar-background: var(--color-avo-neutral-900);
|
|
362
363
|
--color-main-content-background: var(--color-primary);
|
|
363
364
|
--color-main-content-border: var(--border-color);
|
|
365
|
+
--radius-card: var(--radius-xl);
|
|
366
|
+
--radius-card-wrapper: var(--radius-lg);
|
|
364
367
|
--top-navbar-height: 3rem;
|
|
365
368
|
--navbar-notch-color: var(--color-navbar-background);
|
|
366
369
|
--border-color: var(--color-tertiary);
|
|
@@ -577,6 +580,9 @@
|
|
|
577
580
|
.inset-auto {
|
|
578
581
|
inset: auto;
|
|
579
582
|
}
|
|
583
|
+
.inset-y-0 {
|
|
584
|
+
inset-block: calc(var(--spacing) * 0);
|
|
585
|
+
}
|
|
580
586
|
.start {
|
|
581
587
|
inset-inline-start: var(--spacing);
|
|
582
588
|
}
|
|
@@ -757,6 +763,9 @@
|
|
|
757
763
|
.my-auto {
|
|
758
764
|
margin-block: auto;
|
|
759
765
|
}
|
|
766
|
+
.-ms-1\.5 {
|
|
767
|
+
margin-inline-start: calc(var(--spacing) * -1.5);
|
|
768
|
+
}
|
|
760
769
|
.ms-1 {
|
|
761
770
|
margin-inline-start: calc(var(--spacing) * 1);
|
|
762
771
|
}
|
|
@@ -1963,9 +1972,9 @@
|
|
|
1963
1972
|
.rounded-es {
|
|
1964
1973
|
border-end-start-radius: 0.25rem;
|
|
1965
1974
|
}
|
|
1966
|
-
.rounded-t {
|
|
1967
|
-
border-top-left-radius:
|
|
1968
|
-
border-top-right-radius:
|
|
1975
|
+
.rounded-t-card-wrapper {
|
|
1976
|
+
border-top-left-radius: var(--radius-card-wrapper);
|
|
1977
|
+
border-top-right-radius: var(--radius-card-wrapper);
|
|
1969
1978
|
}
|
|
1970
1979
|
.rounded-l {
|
|
1971
1980
|
border-top-left-radius: 0.25rem;
|
|
@@ -2523,6 +2532,9 @@
|
|
|
2523
2532
|
.px-2 {
|
|
2524
2533
|
padding-inline: calc(var(--spacing) * 2);
|
|
2525
2534
|
}
|
|
2535
|
+
.px-2\.5 {
|
|
2536
|
+
padding-inline: calc(var(--spacing) * 2.5);
|
|
2537
|
+
}
|
|
2526
2538
|
.px-3 {
|
|
2527
2539
|
padding-inline: calc(var(--spacing) * 3);
|
|
2528
2540
|
}
|
|
@@ -4598,6 +4610,11 @@
|
|
|
4598
4610
|
padding-inline: calc(var(--spacing) * 24);
|
|
4599
4611
|
}
|
|
4600
4612
|
}
|
|
4613
|
+
.lg\:ms-0 {
|
|
4614
|
+
@media (width >= 64rem) {
|
|
4615
|
+
margin-inline-start: calc(var(--spacing) * 0);
|
|
4616
|
+
}
|
|
4617
|
+
}
|
|
4601
4618
|
.lg\:flex {
|
|
4602
4619
|
@media (width >= 64rem) {
|
|
4603
4620
|
display: flex;
|
|
@@ -4951,6 +4968,7 @@ tag.tagify__tag {
|
|
|
4951
4968
|
--color-primary: var(--color-avo-neutral-950);
|
|
4952
4969
|
--color-secondary: var(--color-avo-neutral-800);
|
|
4953
4970
|
--color-tertiary: var(--color-avo-neutral-700);
|
|
4971
|
+
--color-quaternary: var(--color-avo-neutral-600);
|
|
4954
4972
|
--color-content: var(--color-white);
|
|
4955
4973
|
--color-content-secondary: var(--color-avo-neutral-300);
|
|
4956
4974
|
--color-scheme: var(--color-black);
|
|
@@ -5881,31 +5899,26 @@ tag.tagify__tag {
|
|
|
5881
5899
|
}
|
|
5882
5900
|
[data-controller~="sidebar"] {
|
|
5883
5901
|
--sidebar-width: calc(var(--spacing) * 64);
|
|
5884
|
-
--sidebar-offset-size:
|
|
5885
|
-
--content-width: calc(100%
|
|
5902
|
+
--sidebar-offset-size: 0;
|
|
5903
|
+
--content-width: calc(100%);
|
|
5886
5904
|
}
|
|
5887
5905
|
@media (min-width: 64rem) {
|
|
5888
5906
|
[data-controller~="sidebar"][data-sidebar-open-value="true"] {
|
|
5889
5907
|
--sidebar-offset-size: var(--sidebar-width);
|
|
5890
5908
|
}
|
|
5891
5909
|
}
|
|
5892
|
-
[data-controller~="sidebar"][data-sidebar-open-value="false"] {
|
|
5893
|
-
.main-content {
|
|
5894
|
-
margin-inline-start: calc(var(--spacing) * 0);
|
|
5895
|
-
}
|
|
5896
|
-
}
|
|
5897
5910
|
.main {
|
|
5898
5911
|
padding-top: var(--top-navbar-height);
|
|
5899
|
-
padding-inline-start:
|
|
5912
|
+
padding-inline-start: var(--sidebar-offset-size);
|
|
5900
5913
|
transition: padding 0.1s ease-in-out;
|
|
5901
5914
|
}
|
|
5902
5915
|
.main-content {
|
|
5903
|
-
--main-content-start-radius:
|
|
5904
|
-
--main-content-end-radius:
|
|
5916
|
+
--main-content-start-radius: 0;
|
|
5917
|
+
--main-content-end-radius: 0;
|
|
5918
|
+
--main-content-width: var(--content-width);
|
|
5905
5919
|
position: relative;
|
|
5906
|
-
margin-inline-start: calc(var(--spacing) * 1);
|
|
5907
5920
|
display: flex;
|
|
5908
|
-
width: var(--content-width);
|
|
5921
|
+
width: var(--main-content-width);
|
|
5909
5922
|
flex-direction: column;
|
|
5910
5923
|
border-start-start-radius: var(--main-content-start-radius);
|
|
5911
5924
|
border-start-end-radius: var(--main-content-end-radius);
|
|
@@ -5924,10 +5937,33 @@ tag.tagify__tag {
|
|
|
5924
5937
|
transition: margin 0.1s ease-in-out, width 0.1s ease-in-out;
|
|
5925
5938
|
min-height: calc(100dvh - var(--top-navbar-height) - var(--spacing));
|
|
5926
5939
|
@container style(--navbar-notch-enabled: true) {
|
|
5940
|
+
--main-content-start-radius: var(--main-content-radius);
|
|
5927
5941
|
--main-content-end-radius: var(--main-content-radius);
|
|
5928
5942
|
}
|
|
5929
5943
|
@container style(--navbar-notch-enabled: true) and style(--top-navbar-start-notch-align-with-main-content: true) {
|
|
5930
5944
|
--main-content-start-radius: var(--main-content-radius);
|
|
5945
|
+
--main-content-end-radius: var(--main-content-radius);
|
|
5946
|
+
}
|
|
5947
|
+
}
|
|
5948
|
+
@media (min-width: 64rem) {
|
|
5949
|
+
.sidebar-open .avo-sidebar {
|
|
5950
|
+
transform: translateX(0);
|
|
5951
|
+
}
|
|
5952
|
+
html[dir="rtl"] .sidebar-open .avo-sidebar {
|
|
5953
|
+
transform: translateX(0);
|
|
5954
|
+
}
|
|
5955
|
+
@container style(--navbar-notch-enabled: true) and style(--top-navbar-start-notch-align-with-main-content: false) {
|
|
5956
|
+
.sidebar-open .main-content {
|
|
5957
|
+
--main-content-start-radius: 0;
|
|
5958
|
+
}
|
|
5959
|
+
}
|
|
5960
|
+
}
|
|
5961
|
+
@media (width < 64rem) {
|
|
5962
|
+
.sidebar-mobile-open .avo-sidebar {
|
|
5963
|
+
transform: translateX(0);
|
|
5964
|
+
}
|
|
5965
|
+
html[dir="rtl"] .sidebar-mobile-open .avo-sidebar {
|
|
5966
|
+
transform: translateX(0);
|
|
5931
5967
|
}
|
|
5932
5968
|
}
|
|
5933
5969
|
.main-content.focused, .main-content:focus-visible {
|
|
@@ -5938,7 +5974,10 @@ tag.tagify__tag {
|
|
|
5938
5974
|
display: flex;
|
|
5939
5975
|
flex: 1;
|
|
5940
5976
|
flex-direction: column;
|
|
5941
|
-
padding-inline: calc(var(--spacing) *
|
|
5977
|
+
padding-inline: calc(var(--spacing) * 0);
|
|
5978
|
+
@media (width >= 48rem) {
|
|
5979
|
+
padding-inline: calc(var(--spacing) * 2);
|
|
5980
|
+
}
|
|
5942
5981
|
}
|
|
5943
5982
|
.container-large {
|
|
5944
5983
|
@media (width >= 96rem) {
|
|
@@ -6149,25 +6188,6 @@ tag.tagify__tag {
|
|
|
6149
6188
|
html[dir="rtl"] .avo-sidebar {
|
|
6150
6189
|
transform: translateX(100%);
|
|
6151
6190
|
}
|
|
6152
|
-
@media (min-width: 64rem) {
|
|
6153
|
-
.sidebar-open .avo-sidebar {
|
|
6154
|
-
transform: translateX(0);
|
|
6155
|
-
}
|
|
6156
|
-
html[dir="rtl"] .sidebar-open .avo-sidebar {
|
|
6157
|
-
transform: translateX(0);
|
|
6158
|
-
}
|
|
6159
|
-
.main:not(.sidebar-open) .main-content {
|
|
6160
|
-
margin-inline-start: calc(var(--spacing) * 0);
|
|
6161
|
-
}
|
|
6162
|
-
}
|
|
6163
|
-
@media (width < 64rem) {
|
|
6164
|
-
.sidebar-mobile-open .avo-sidebar {
|
|
6165
|
-
transform: translateX(0);
|
|
6166
|
-
}
|
|
6167
|
-
html[dir="rtl"] .sidebar-mobile-open .avo-sidebar {
|
|
6168
|
-
transform: translateX(0);
|
|
6169
|
-
}
|
|
6170
|
-
}
|
|
6171
6191
|
.button-spinner {
|
|
6172
6192
|
width: 24px;
|
|
6173
6193
|
height: 24px;
|
|
@@ -6961,7 +6981,7 @@ tag.tagify__tag {
|
|
|
6961
6981
|
flex-direction: column;
|
|
6962
6982
|
align-items: flex-start;
|
|
6963
6983
|
align-self: stretch;
|
|
6964
|
-
border-radius: var(--radius-
|
|
6984
|
+
border-radius: var(--radius-card);
|
|
6965
6985
|
border-style: var(--tw-border-style);
|
|
6966
6986
|
border-width: 1px;
|
|
6967
6987
|
border-color: var(--color-tertiary);
|
|
@@ -7040,7 +7060,7 @@ tag.tagify__tag {
|
|
|
7040
7060
|
flex-direction: column;
|
|
7041
7061
|
align-items: flex-start;
|
|
7042
7062
|
align-self: stretch;
|
|
7043
|
-
border-radius: var(--radius-
|
|
7063
|
+
border-radius: var(--radius-card-wrapper);
|
|
7044
7064
|
border-style: var(--tw-border-style);
|
|
7045
7065
|
border-width: 1px;
|
|
7046
7066
|
border-color: var(--color-tertiary);
|
|
@@ -7371,6 +7391,28 @@ tag.tagify__tag {
|
|
|
7371
7391
|
border-color: var(--color-accent);
|
|
7372
7392
|
margin-bottom: -1px;
|
|
7373
7393
|
}
|
|
7394
|
+
.tab-group {
|
|
7395
|
+
position: relative;
|
|
7396
|
+
border-radius: var(--radius-2xl);
|
|
7397
|
+
border-style: var(--tw-border-style);
|
|
7398
|
+
border-width: 1px;
|
|
7399
|
+
--tw-border-style: dashed;
|
|
7400
|
+
border-style: dashed;
|
|
7401
|
+
border-color: var(--color-tertiary);
|
|
7402
|
+
&:hover {
|
|
7403
|
+
border-color: var(--color-quaternary);
|
|
7404
|
+
}
|
|
7405
|
+
--tab-group-modifier: 4;
|
|
7406
|
+
--tab-group-padding: calc(var(--tab-group-modifier) - (var(--tab-group-modifier)/2));
|
|
7407
|
+
width: calc(100% + calc(var(--spacing) * var(--tab-group-modifier)));
|
|
7408
|
+
margin-inline: calc(var(--spacing) * var(--tab-group-padding) * -1);
|
|
7409
|
+
padding: calc(var(--spacing) * var(--tab-group-padding));
|
|
7410
|
+
}
|
|
7411
|
+
@media (width > 48rem) {
|
|
7412
|
+
.tab-group {
|
|
7413
|
+
--tab-group-modifier: 8;
|
|
7414
|
+
}
|
|
7415
|
+
}
|
|
7374
7416
|
}
|
|
7375
7417
|
.badge {
|
|
7376
7418
|
display: inline-flex;
|
|
@@ -7938,7 +7980,6 @@ tag.tagify__tag {
|
|
|
7938
7980
|
.dropdown-menu {
|
|
7939
7981
|
display: flex;
|
|
7940
7982
|
width: 100%;
|
|
7941
|
-
min-width: calc(var(--spacing) * 48);
|
|
7942
7983
|
flex-direction: column;
|
|
7943
7984
|
border-radius: var(--radius-lg);
|
|
7944
7985
|
border-style: var(--tw-border-style);
|
|
@@ -8397,9 +8438,10 @@ tag.tagify__tag {
|
|
|
8397
8438
|
display: flex;
|
|
8398
8439
|
cursor: pointer;
|
|
8399
8440
|
align-items: center;
|
|
8441
|
+
justify-content: center;
|
|
8400
8442
|
border-radius: var(--radius-lg);
|
|
8401
8443
|
color: var(--color-content-secondary);
|
|
8402
|
-
padding-inline
|
|
8444
|
+
padding-inline: var(--input-icon-offset);
|
|
8403
8445
|
outline-offset: var(--focus-outline-offset-inset);
|
|
8404
8446
|
}
|
|
8405
8447
|
.field-wrapper__input:has(.input-field__password-toggle) input {
|
|
@@ -8951,11 +8993,12 @@ tag.tagify__tag {
|
|
|
8951
8993
|
}
|
|
8952
8994
|
.breadcrumbs {
|
|
8953
8995
|
position: sticky;
|
|
8996
|
+
top: var(--top-navbar-height);
|
|
8954
8997
|
z-index: 40;
|
|
8955
8998
|
margin-bottom: calc(var(--spacing) * 4);
|
|
8956
8999
|
width: 100%;
|
|
8957
9000
|
background-color: var(--color-main-content-background);
|
|
8958
|
-
top: calc(var(--
|
|
9001
|
+
margin-top: calc(var(--spacing) * -1);
|
|
8959
9002
|
}
|
|
8960
9003
|
.breadcrumbs::after {
|
|
8961
9004
|
content: "";
|
|
@@ -9006,6 +9049,12 @@ tag.tagify__tag {
|
|
|
9006
9049
|
&:first-child {
|
|
9007
9050
|
margin-inline-start: calc(var(--spacing) * -1);
|
|
9008
9051
|
}
|
|
9052
|
+
&:first-child:has(.breadcrumb-element__icon) .breadcrumb-element__text {
|
|
9053
|
+
display: none;
|
|
9054
|
+
@media (width >= 48rem) {
|
|
9055
|
+
display: inline;
|
|
9056
|
+
}
|
|
9057
|
+
}
|
|
9009
9058
|
&:focus-visible {
|
|
9010
9059
|
outline-offset: var(--focus-outline-offset-inset);
|
|
9011
9060
|
}
|
|
@@ -10063,12 +10112,12 @@ tag.tagify__tag {
|
|
|
10063
10112
|
}
|
|
10064
10113
|
.color-scheme-switcher__compact-trigger {
|
|
10065
10114
|
display: inline-flex;
|
|
10066
|
-
height: calc(var(--spacing) *
|
|
10115
|
+
height: calc(var(--spacing) * 6);
|
|
10067
10116
|
align-items: center;
|
|
10068
10117
|
gap: calc(var(--spacing) * 1);
|
|
10069
10118
|
border-radius: var(--radius-lg);
|
|
10070
|
-
padding-inline-start: calc(var(--spacing) *
|
|
10071
|
-
padding-inline-end: calc(var(--spacing) * 1
|
|
10119
|
+
padding-inline-start: calc(var(--spacing) * 1.5);
|
|
10120
|
+
padding-inline-end: calc(var(--spacing) * 1);
|
|
10072
10121
|
transition-property: all;
|
|
10073
10122
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
10074
10123
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
@@ -10094,6 +10143,13 @@ tag.tagify__tag {
|
|
|
10094
10143
|
color: var(--top-navbar-content-hover);
|
|
10095
10144
|
}
|
|
10096
10145
|
}
|
|
10146
|
+
@media (min-width: 64rem) {
|
|
10147
|
+
.color-scheme-switcher__compact-trigger {
|
|
10148
|
+
height: calc(var(--spacing) * 8);
|
|
10149
|
+
padding-inline-start: calc(var(--spacing) * 2);
|
|
10150
|
+
padding-inline-end: calc(var(--spacing) * 1.5);
|
|
10151
|
+
}
|
|
10152
|
+
}
|
|
10097
10153
|
.color-scheme-switcher__chevron {
|
|
10098
10154
|
width: calc(var(--spacing) * 3);
|
|
10099
10155
|
height: calc(var(--spacing) * 3);
|
|
@@ -11162,8 +11218,9 @@ tag.tagify__tag {
|
|
|
11162
11218
|
inset-inline-end: calc(var(--spacing) * 0);
|
|
11163
11219
|
display: flex;
|
|
11164
11220
|
align-items: center;
|
|
11221
|
+
justify-content: center;
|
|
11165
11222
|
border-radius: var(--radius-lg);
|
|
11166
|
-
padding-inline
|
|
11223
|
+
padding-inline: calc(var(--spacing) * 2.5);
|
|
11167
11224
|
color: var(--color-content-secondary);
|
|
11168
11225
|
outline-offset: var(--focus-outline-offset-inset);
|
|
11169
11226
|
}
|
|
@@ -11187,22 +11244,6 @@ tag.tagify__tag {
|
|
|
11187
11244
|
text-align: start;
|
|
11188
11245
|
white-space: normal;
|
|
11189
11246
|
}
|
|
11190
|
-
@layer components {
|
|
11191
|
-
.tab-group {
|
|
11192
|
-
position: relative;
|
|
11193
|
-
border-radius: var(--radius-2xl);
|
|
11194
|
-
border-style: var(--tw-border-style);
|
|
11195
|
-
border-width: 1px;
|
|
11196
|
-
--tw-border-style: dashed;
|
|
11197
|
-
border-style: dashed;
|
|
11198
|
-
border-color: var(--color-tertiary);
|
|
11199
|
-
--tab-group-modifier: 8;
|
|
11200
|
-
--tab-group-padding: calc(var(--tab-group-modifier) - (var(--tab-group-modifier)/2));
|
|
11201
|
-
width: calc(100% + calc(var(--spacing) * var(--tab-group-modifier)));
|
|
11202
|
-
margin-inline: calc(var(--spacing) * var(--tab-group-padding) * -1);
|
|
11203
|
-
padding: calc(var(--spacing) * var(--tab-group-padding));
|
|
11204
|
-
}
|
|
11205
|
-
}
|
|
11206
11247
|
.css-animate-dialog-slide-down[open], .css-animate-slide-down {
|
|
11207
11248
|
opacity: 1;
|
|
11208
11249
|
transform: translateY(0);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
.breadcrumbs {
|
|
2
|
-
@apply sticky z-40 w-full bg-(--color-main-content-background) mb-4;
|
|
3
|
-
|
|
2
|
+
@apply sticky z-40 w-full bg-(--color-main-content-background) mb-4 top-(--top-navbar-height);
|
|
3
|
+
/* Vertical optical adjustment */
|
|
4
|
+
@apply -mt-1;
|
|
4
5
|
}
|
|
5
6
|
|
|
6
7
|
/* Soft fade strip just below the sticky breadcrumbs. Eases the seam between
|
|
@@ -36,6 +37,14 @@
|
|
|
36
37
|
@apply -ms-1;
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
/* The home crumb is the first element and is the only one carrying an icon by
|
|
41
|
+
default. On small screens collapse it to just the icon to save horizontal
|
|
42
|
+
space; the label returns at md. Scoping to :has(icon) means a custom first
|
|
43
|
+
crumb without an icon keeps its text instead of rendering empty. */
|
|
44
|
+
&:first-child:has(.breadcrumb-element__icon) .breadcrumb-element__text {
|
|
45
|
+
@apply hidden md:inline;
|
|
46
|
+
}
|
|
47
|
+
|
|
39
48
|
&:focus-visible {
|
|
40
49
|
outline-offset: var(--focus-outline-offset-inset);
|
|
41
50
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.color-scheme-switcher__compact-trigger {
|
|
23
|
-
@apply inline-flex items-center gap-1 h-
|
|
23
|
+
@apply inline-flex items-center gap-1 h-6 ps-1.5 pe-1 rounded-lg transition-all duration-150;
|
|
24
24
|
@apply text-avo-neutral-300 bg-avo-neutral-800 border border-avo-neutral-700 hover:bg-avo-neutral-700 hover:text-avo-neutral-50;
|
|
25
25
|
@apply cursor-pointer;
|
|
26
26
|
background-color: var(--top-navbar-control-background);
|
|
@@ -33,6 +33,12 @@
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
@media (min-width: theme(--breakpoint-lg)) {
|
|
37
|
+
.color-scheme-switcher__compact-trigger {
|
|
38
|
+
@apply h-8 ps-2 pe-1.5;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
36
42
|
.color-scheme-switcher__chevron {
|
|
37
43
|
@apply size-3 opacity-60;
|
|
38
44
|
}
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
.filters-date-input__action {
|
|
54
|
-
@apply absolute inset-y-0 end-0 flex items-center
|
|
54
|
+
@apply absolute inset-y-0 end-0 flex items-center justify-center px-2.5 text-content-secondary rounded-lg;
|
|
55
55
|
|
|
56
56
|
outline-offset: var(--focus-outline-offset-inset);
|
|
57
57
|
}
|
|
@@ -150,9 +150,9 @@
|
|
|
150
150
|
========================================================================== */
|
|
151
151
|
|
|
152
152
|
.input-field__password-toggle {
|
|
153
|
-
@apply absolute text-content-secondary inset-y-0 end-0 flex items-center cursor-pointer rounded-lg;
|
|
153
|
+
@apply absolute text-content-secondary inset-y-0 end-0 flex items-center justify-center cursor-pointer rounded-lg;
|
|
154
154
|
|
|
155
|
-
padding-inline
|
|
155
|
+
padding-inline: var(--input-icon-offset);
|
|
156
156
|
outline-offset: var(--focus-outline-offset-inset);
|
|
157
157
|
}
|
|
158
158
|
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
/* Card radii as shared design tokens. Consumed via Tailwind's `rounded-(--var)`
|
|
2
|
+
arbitrary-property syntax so the value can be reused and overridden anywhere
|
|
3
|
+
instead of being a one-off literal. */
|
|
4
|
+
@theme {
|
|
5
|
+
}
|
|
6
|
+
|
|
1
7
|
/* Card Component - Based on Figma Design System */
|
|
2
8
|
.card {
|
|
3
|
-
@apply flex flex-col items-start self-stretch rounded-
|
|
9
|
+
@apply flex flex-col items-start self-stretch rounded-card border border-tertiary bg-secondary;
|
|
4
10
|
|
|
5
11
|
/* Contain horizontal overflow so a wide inner scroller (e.g. .card__wrapper
|
|
6
12
|
wrapping a wide table) can't bleed past the card and push the document
|
|
@@ -79,7 +85,7 @@
|
|
|
79
85
|
|
|
80
86
|
/* Card body */
|
|
81
87
|
.card__body {
|
|
82
|
-
@apply flex flex-col items-start self-stretch w-full rounded-
|
|
88
|
+
@apply flex flex-col items-start self-stretch w-full rounded-card-wrapper border border-tertiary bg-primary;
|
|
83
89
|
}
|
|
84
90
|
|
|
85
91
|
/* Card footer - full width so pagination can span edge to edge */
|
|
@@ -155,4 +155,26 @@
|
|
|
155
155
|
@apply border-b-2 border-accent;
|
|
156
156
|
margin-bottom: -1px; /* Overlap with container border */
|
|
157
157
|
}
|
|
158
|
+
|
|
159
|
+
/* Tab Group Component */
|
|
160
|
+
/* Dashed border wraps both the tabs list and the active tab's content.
|
|
161
|
+
The element extends 5px past each side of its container so the border
|
|
162
|
+
sits outside the panel padding without requiring the parent to know
|
|
163
|
+
about it. Uses width + negative margin-inline (RTL-safe) instead of
|
|
164
|
+
left/right. */
|
|
165
|
+
.tab-group {
|
|
166
|
+
@apply relative border border-dashed border-1 border-tertiary hover:border-quaternary rounded-2xl;
|
|
167
|
+
--tab-group-modifier: 4;
|
|
168
|
+
--tab-group-padding: calc(var(--tab-group-modifier) - (var(--tab-group-modifier)/2));
|
|
169
|
+
|
|
170
|
+
width: calc(100% + calc(var(--spacing) * var(--tab-group-modifier)));
|
|
171
|
+
margin-inline: calc(var(--spacing) * var(--tab-group-padding) * -1);
|
|
172
|
+
padding: calc(var(--spacing) * var(--tab-group-padding));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@media (width > theme(--breakpoint-md)) {
|
|
176
|
+
.tab-group {
|
|
177
|
+
--tab-group-modifier: 8;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
158
180
|
}
|
|
@@ -41,8 +41,9 @@
|
|
|
41
41
|
mx-auto happens inside the area to the right of the sidebar, not the page. */
|
|
42
42
|
[data-controller~="sidebar"] {
|
|
43
43
|
--sidebar-width: --spacing(64);
|
|
44
|
-
--sidebar-offset-size:
|
|
45
|
-
|
|
44
|
+
--sidebar-offset-size: 0;
|
|
45
|
+
|
|
46
|
+
--content-width: calc(100%);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
@media (min-width: theme(--breakpoint-lg)) {
|
|
@@ -51,35 +52,65 @@
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
[data-controller~="sidebar"][data-sidebar-open-value="false"] {
|
|
55
|
-
.main-content {
|
|
56
|
-
@apply ms-0;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
55
|
.main {
|
|
61
56
|
padding-top: var(--top-navbar-height);
|
|
62
|
-
padding-inline-start:
|
|
57
|
+
padding-inline-start: var(--sidebar-offset-size);
|
|
63
58
|
transition: padding 0.1s ease-in-out;
|
|
64
59
|
}
|
|
65
60
|
|
|
66
61
|
.main-content {
|
|
67
|
-
--main-content-start-radius:
|
|
68
|
-
--main-content-end-radius:
|
|
62
|
+
--main-content-start-radius: 0;
|
|
63
|
+
--main-content-end-radius: 0;
|
|
64
|
+
--main-content-width: var(--content-width);
|
|
69
65
|
|
|
70
|
-
@apply relative w-(--content-width) flex flex-col bg-(--color-main-content-background) py-2 lg:py-4 px-2 lg:px-4 border-s border-(--color-main-content-border)
|
|
66
|
+
@apply relative w-(--main-content-width) flex flex-col bg-(--color-main-content-background) py-2 lg:py-4 px-2 lg:px-4 border-s border-(--color-main-content-border) rounded-se-(--main-content-end-radius) rounded-ss-(--main-content-start-radius);
|
|
71
67
|
|
|
72
68
|
transition: margin 0.1s ease-in-out, width 0.1s ease-in-out;
|
|
73
69
|
min-height: calc(100dvh - var(--top-navbar-height) - var(--spacing));
|
|
74
70
|
|
|
75
71
|
@container style(--navbar-notch-enabled: true) {
|
|
72
|
+
--main-content-start-radius: var(--main-content-radius);
|
|
76
73
|
--main-content-end-radius: var(--main-content-radius);
|
|
77
74
|
}
|
|
78
75
|
|
|
79
76
|
@container style(--navbar-notch-enabled: true) and style(--top-navbar-start-notch-align-with-main-content: true) {
|
|
80
77
|
--main-content-start-radius: var(--main-content-radius);
|
|
78
|
+
--main-content-end-radius: var(--main-content-radius);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Desktop: show sidebar when sidebar-open class is present (lg+ only) */
|
|
84
|
+
@media (min-width: theme(--breakpoint-lg)) {
|
|
85
|
+
.sidebar-open .avo-sidebar {
|
|
86
|
+
transform: translateX(0);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
html[dir="rtl"] .sidebar-open .avo-sidebar {
|
|
90
|
+
transform: translateX(0);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* With the sidebar open the content panel butts up against it, so flatten the
|
|
94
|
+
start corner. When the sidebar is closed the panel floats free and keeps the
|
|
95
|
+
rounded start corner it inherits from the base block. The
|
|
96
|
+
align-with-main-content layout reads as one continuous strip, so it stays
|
|
97
|
+
rounded regardless of sidebar state (the `: false` style query excludes it). */
|
|
98
|
+
@container style(--navbar-notch-enabled: true) and style(--top-navbar-start-notch-align-with-main-content: false) {
|
|
99
|
+
.sidebar-open .main-content {
|
|
100
|
+
--main-content-start-radius: 0;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Mobile: show sidebar only when explicitly toggled open */
|
|
106
|
+
@media (width < theme(--breakpoint-lg)) {
|
|
107
|
+
.sidebar-mobile-open .avo-sidebar {
|
|
108
|
+
transform: translateX(0);
|
|
81
109
|
}
|
|
82
110
|
|
|
111
|
+
html[dir="rtl"] .sidebar-mobile-open .avo-sidebar {
|
|
112
|
+
transform: translateX(0);
|
|
113
|
+
}
|
|
83
114
|
}
|
|
84
115
|
|
|
85
116
|
.main-content.focused,
|
|
@@ -89,7 +120,7 @@
|
|
|
89
120
|
}
|
|
90
121
|
|
|
91
122
|
.main-content__container {
|
|
92
|
-
@apply flex flex-1 flex-col px-2;
|
|
123
|
+
@apply flex flex-1 flex-col px-0 md:px-2;
|
|
93
124
|
}
|
|
94
125
|
|
|
95
126
|
.container-large {
|
|
@@ -107,29 +138,6 @@
|
|
|
107
138
|
.top-navbar {
|
|
108
139
|
@apply z-400 fixed top-0 inset-x-0 w-full shrink-0 pointer-events-none;
|
|
109
140
|
|
|
110
|
-
/* Top navbar theme contract.
|
|
111
|
-
Override these variables on `.top-navbar` when the navbar needs its own
|
|
112
|
-
palette. They are defined here so the customization point stays local to
|
|
113
|
-
the navbar while popovers, dropdown panels, and the main content keep using
|
|
114
|
-
their own surface tokens.
|
|
115
|
-
|
|
116
|
-
Example:
|
|
117
|
-
.top-navbar {
|
|
118
|
-
--top-navbar-background: var(--color-primary);
|
|
119
|
-
--top-navbar-content: var(--color-content-secondary);
|
|
120
|
-
--top-navbar-content-hover: var(--color-content);
|
|
121
|
-
--top-navbar-control-background: var(--color-secondary);
|
|
122
|
-
--top-navbar-control-background-hover: var(--color-tertiary);
|
|
123
|
-
--top-navbar-control-border: var(--color-tertiary);
|
|
124
|
-
--top-navbar-control-content: var(--color-content);
|
|
125
|
-
--top-navbar-control-muted: var(--color-content-secondary);
|
|
126
|
-
--top-navbar-control-shortcut-background: var(--color-primary);
|
|
127
|
-
--top-navbar-control-shortcut-border: var(--color-tertiary);
|
|
128
|
-
--top-navbar-control-shortcut-content: var(--color-content-secondary);
|
|
129
|
-
--top-navbar-active-background: var(--color-foreground);
|
|
130
|
-
--top-navbar-active-content: var(--color-background);
|
|
131
|
-
}
|
|
132
|
-
*/
|
|
133
141
|
--top-navbar-background: var(--color-navbar-background);
|
|
134
142
|
--top-navbar-content: var(--color-avo-neutral-300);
|
|
135
143
|
--top-navbar-content-hover: var(--color-avo-neutral-50);
|
|
@@ -334,28 +342,3 @@ button[data-sidebar-toggle-icon] {
|
|
|
334
342
|
html[dir="rtl"] .avo-sidebar {
|
|
335
343
|
transform: translateX(100%);
|
|
336
344
|
}
|
|
337
|
-
|
|
338
|
-
/* Desktop: show sidebar when sidebar-open class is present (lg+ only) */
|
|
339
|
-
@media (min-width: theme(--breakpoint-lg)) {
|
|
340
|
-
.sidebar-open .avo-sidebar {
|
|
341
|
-
transform: translateX(0);
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
html[dir="rtl"] .sidebar-open .avo-sidebar {
|
|
345
|
-
transform: translateX(0);
|
|
346
|
-
}
|
|
347
|
-
.main:not(.sidebar-open) .main-content {
|
|
348
|
-
@apply ms-0;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/* Mobile: show sidebar only when explicitly toggled open */
|
|
353
|
-
@media (width < theme(--breakpoint-lg)) {
|
|
354
|
-
.sidebar-mobile-open .avo-sidebar {
|
|
355
|
-
transform: translateX(0);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
html[dir="rtl"] .sidebar-mobile-open .avo-sidebar {
|
|
359
|
-
transform: translateX(0);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
--color-primary: var(--color-white);
|
|
62
62
|
--color-secondary: var(--color-avo-neutral-100);
|
|
63
63
|
--color-tertiary: var(--color-avo-neutral-200);
|
|
64
|
+
--color-quaternary: var(--color-avo-neutral-300);
|
|
64
65
|
--color-content: var(--color-avo-neutral-950);
|
|
65
66
|
--color-content-secondary: var(--color-avo-neutral-500);
|
|
66
67
|
|
|
@@ -108,6 +109,8 @@
|
|
|
108
109
|
--border-color by default, so it resolves per-scheme automatically. */
|
|
109
110
|
--color-main-content-border: var(--border-color);
|
|
110
111
|
|
|
112
|
+
--radius-card: var(--radius-xl);
|
|
113
|
+
--radius-card-wrapper: var(--radius-lg);
|
|
111
114
|
}
|
|
112
115
|
|
|
113
116
|
/* Navbar notch knobs live in a plain :root block, not in @theme:
|
|
@@ -167,6 +170,7 @@
|
|
|
167
170
|
--color-primary: var(--color-avo-neutral-950);
|
|
168
171
|
--color-secondary: var(--color-avo-neutral-800);
|
|
169
172
|
--color-tertiary: var(--color-avo-neutral-700);
|
|
173
|
+
--color-quaternary: var(--color-avo-neutral-600);
|
|
170
174
|
--color-content: var(--color-white);
|
|
171
175
|
--color-content-secondary: var(--color-avo-neutral-300);
|
|
172
176
|
|