avo 4.0.0.beta.2 → 4.0.0.beta.3
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 +247 -28
- data/app/assets/stylesheets/application.css +1 -0
- data/app/assets/stylesheets/css/components/ui/state.css +129 -0
- data/app/assets/stylesheets/css/pagination.css +12 -6
- data/app/assets/svgs/avo/circle-minus.svg +3 -0
- data/app/components/avo/alert_component.rb +4 -4
- data/app/components/avo/backtrace_alert_component.html.erb +1 -1
- data/app/components/avo/button_component.rb +1 -1
- data/app/components/avo/debug/status_component.html.erb +2 -2
- data/app/components/avo/empty_state_component.html.erb +15 -4
- data/app/components/avo/empty_state_component.rb +9 -0
- data/app/components/avo/fields/common/files/view_type/grid_item_component.html.erb +1 -1
- data/app/components/avo/fields/common/key_value_component.html.erb +1 -1
- data/app/components/avo/fields/common/stars_component.html.erb +1 -1
- data/app/components/avo/fields/common/status_viewer_component.html.erb +3 -3
- data/app/components/avo/fields/preview_field/index_component.rb +1 -1
- data/app/components/avo/fields/stars_field/edit_component.html.erb +1 -1
- data/app/components/avo/filters_component.html.erb +1 -1
- data/app/components/avo/items/switcher_component.html.erb +1 -1
- data/app/components/avo/media_library/item_details_component.html.erb +2 -2
- data/app/components/avo/media_library/list_component.html.erb +1 -1
- data/app/components/avo/media_library/list_item_component.html.erb +2 -2
- data/app/components/avo/modal_component.html.erb +1 -1
- data/app/components/avo/paginator_component.html.erb +23 -17
- data/app/components/avo/paginator_component.rb +18 -0
- data/app/components/avo/resource_component.rb +2 -2
- data/app/components/avo/sidebar/group_component.html.erb +1 -1
- data/app/components/avo/sidebar/section_component.html.erb +1 -1
- data/app/components/avo/sidebar_profile_component.html.erb +1 -1
- data/app/components/avo/views/resource_index_component.rb +1 -1
- data/app/views/avo/base/_date_time_filter.html.erb +1 -1
- data/app/views/avo/base/preview.html.erb +1 -1
- data/app/views/avo/debug/_valid_indicator.html.erb +2 -2
- data/app/views/avo/home/failed_to_load.html.erb +40 -13
- data/app/views/avo/media_library/_form.html.erb +1 -1
- data/app/views/avo/partials/_color_scheme_switcher.html.erb +4 -4
- data/app/views/avo/partials/_custom_tools_alert.html.erb +3 -3
- data/app/views/avo/partials/_sortable_component.html.erb +3 -3
- data/app/views/avo/partials/_table_header.html.erb +1 -1
- data/app/views/avo/private/_links_and_buttons.html.erb +2 -2
- data/app/views/avo/private/design.html.erb +4 -4
- data/app/views/avo/sidebar/_license_warning.html.erb +2 -2
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/resource_generator.rb +3 -3
- data/lib/generators/avo/templates/initializer/avo.tt +4 -4
- data/lib/generators/avo/templates/resource_tools/partial.tt +1 -1
- metadata +3 -15
- data/app/assets/svgs/avo/arrow-circle-right.svg +0 -1
- data/app/assets/svgs/avo/bell.svg +0 -3
- data/app/assets/svgs/avo/color-swatch.svg +0 -1
- data/app/assets/svgs/avo/dashboards.svg +0 -6
- data/app/assets/svgs/avo/exclamation.svg +0 -1
- data/app/assets/svgs/avo/filter.svg +0 -1
- data/app/assets/svgs/avo/logout.svg +0 -3
- data/app/assets/svgs/avo/resources.svg +0 -13
- data/app/assets/svgs/avo/save.svg +0 -8
- data/app/assets/svgs/avo/selector.svg +0 -1
- data/app/assets/svgs/avo/sort-ascending.svg +0 -1
- data/app/assets/svgs/avo/sort-descending.svg +0 -1
- data/app/assets/svgs/avo/times.svg +0 -3
- data/app/assets/svgs/avo/tools.svg +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '009224ece686ff1bd1b3b4b3593336dd98759b01a1b76173d2197c7e8566a6cd'
|
|
4
|
+
data.tar.gz: ddef3ecbe7b8f39bcf24a473438f24fbe226a0c0993727619e255b469846df9a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 75f3e4a99a0400e57363b33f8623cc5ce33e433494badfbcb3a3441f4a68ecefc3348fe1157350e7c3c9654ca05694386c4473778bed496434e7628b814ba15e
|
|
7
|
+
data.tar.gz: f2bbd10861ba6211d9bbf54c7b8efec2462240392952e00d05c1a03d6f2af92ed549125b7008307ccab8149f006b74889a3160366c191330954fbdd20de607f0
|
data/Gemfile.lock
CHANGED
|
@@ -559,9 +559,6 @@
|
|
|
559
559
|
.start-1 {
|
|
560
560
|
inset-inline-start: calc(var(--spacing) * 1);
|
|
561
561
|
}
|
|
562
|
-
.start-1\/2 {
|
|
563
|
-
inset-inline-start: calc(1/2 * 100%);
|
|
564
|
-
}
|
|
565
562
|
.end {
|
|
566
563
|
inset-inline-end: var(--spacing);
|
|
567
564
|
}
|
|
@@ -966,12 +963,6 @@
|
|
|
966
963
|
.h-40 {
|
|
967
964
|
height: calc(var(--spacing) * 40);
|
|
968
965
|
}
|
|
969
|
-
.h-52 {
|
|
970
|
-
height: calc(var(--spacing) * 52);
|
|
971
|
-
}
|
|
972
|
-
.h-64 {
|
|
973
|
-
height: calc(var(--spacing) * 64);
|
|
974
|
-
}
|
|
975
966
|
.h-\[0\.75rem\] {
|
|
976
967
|
height: 0.75rem;
|
|
977
968
|
}
|
|
@@ -1628,10 +1619,6 @@
|
|
|
1628
1619
|
border-bottom-style: var(--tw-border-style);
|
|
1629
1620
|
border-bottom-width: 1px;
|
|
1630
1621
|
}
|
|
1631
|
-
.border-b-2 {
|
|
1632
|
-
border-bottom-style: var(--tw-border-style);
|
|
1633
|
-
border-bottom-width: 2px;
|
|
1634
|
-
}
|
|
1635
1622
|
.border-l {
|
|
1636
1623
|
border-left-style: var(--tw-border-style);
|
|
1637
1624
|
border-left-width: 1px;
|
|
@@ -1669,9 +1656,6 @@
|
|
|
1669
1656
|
.border-blue-600 {
|
|
1670
1657
|
border-color: var(--color-blue-600);
|
|
1671
1658
|
}
|
|
1672
|
-
.border-content-secondary {
|
|
1673
|
-
border-color: var(--color-content-secondary);
|
|
1674
|
-
}
|
|
1675
1659
|
.border-cyan-300 {
|
|
1676
1660
|
border-color: var(--color-cyan-300);
|
|
1677
1661
|
}
|
|
@@ -2233,9 +2217,6 @@
|
|
|
2233
2217
|
.pb-2 {
|
|
2234
2218
|
padding-bottom: calc(var(--spacing) * 2);
|
|
2235
2219
|
}
|
|
2236
|
-
.pb-3 {
|
|
2237
|
-
padding-bottom: calc(var(--spacing) * 3);
|
|
2238
|
-
}
|
|
2239
2220
|
.pb-4 {
|
|
2240
2221
|
padding-bottom: calc(var(--spacing) * 4);
|
|
2241
2222
|
}
|
|
@@ -2428,9 +2409,6 @@
|
|
|
2428
2409
|
.text-fuchsia-700 {
|
|
2429
2410
|
color: var(--color-fuchsia-700);
|
|
2430
2411
|
}
|
|
2431
|
-
.text-gray-300 {
|
|
2432
|
-
color: var(--color-gray-300);
|
|
2433
|
-
}
|
|
2434
2412
|
.text-gray-400 {
|
|
2435
2413
|
color: var(--color-gray-400);
|
|
2436
2414
|
}
|
|
@@ -7927,6 +7905,9 @@
|
|
|
7927
7905
|
@media (width >= 40rem) {
|
|
7928
7906
|
flex-direction: row;
|
|
7929
7907
|
}
|
|
7908
|
+
@media (width >= 40rem) {
|
|
7909
|
+
flex-wrap: wrap;
|
|
7910
|
+
}
|
|
7930
7911
|
@media (width >= 40rem) {
|
|
7931
7912
|
align-items: flex-end;
|
|
7932
7913
|
}
|
|
@@ -7937,6 +7918,7 @@
|
|
|
7937
7918
|
.pagination__per-page {
|
|
7938
7919
|
--pagination-per-page-width: 10rem;
|
|
7939
7920
|
display: flex;
|
|
7921
|
+
flex-shrink: 0;
|
|
7940
7922
|
align-items: center;
|
|
7941
7923
|
}
|
|
7942
7924
|
.pagination__per-page-input {
|
|
@@ -7995,14 +7977,32 @@
|
|
|
7995
7977
|
--tw-font-weight: var(--font-weight-normal);
|
|
7996
7978
|
font-weight: var(--font-weight-normal);
|
|
7997
7979
|
}
|
|
7980
|
+
.pagination__controls-wrap {
|
|
7981
|
+
display: flex;
|
|
7982
|
+
width: 100%;
|
|
7983
|
+
min-width: calc(var(--spacing) * 0);
|
|
7984
|
+
@media (width >= 40rem) {
|
|
7985
|
+
min-width: 22rem;
|
|
7986
|
+
}
|
|
7987
|
+
@media (width >= 40rem) {
|
|
7988
|
+
flex: 1 1 28rem;
|
|
7989
|
+
}
|
|
7990
|
+
@media (width >= 40rem) {
|
|
7991
|
+
justify-content: flex-end;
|
|
7992
|
+
}
|
|
7993
|
+
}
|
|
7998
7994
|
.pagination__controls {
|
|
7999
7995
|
display: flex;
|
|
8000
|
-
width:
|
|
8001
|
-
|
|
7996
|
+
width: 100%;
|
|
7997
|
+
max-width: 100%;
|
|
7998
|
+
min-width: calc(var(--spacing) * 0);
|
|
7999
|
+
--tw-pan-x: pan-x;
|
|
8000
|
+
touch-action: var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,);
|
|
8002
8001
|
align-items: center;
|
|
8003
8002
|
gap: calc(var(--spacing) * 3);
|
|
8004
|
-
overflow:
|
|
8005
|
-
overflow:
|
|
8003
|
+
overflow-x: auto;
|
|
8004
|
+
overflow-y: hidden;
|
|
8005
|
+
overscroll-behavior-x: contain;
|
|
8006
8006
|
border-radius: var(--radius-lg);
|
|
8007
8007
|
border-style: var(--tw-border-style);
|
|
8008
8008
|
border-width: 1px;
|
|
@@ -8010,11 +8010,16 @@
|
|
|
8010
8010
|
background-color: var(--color-primary);
|
|
8011
8011
|
padding-inline-start: calc(var(--spacing) * 3);
|
|
8012
8012
|
padding-inline-end: calc(var(--spacing) * 2);
|
|
8013
|
+
@media (width >= 40rem) {
|
|
8014
|
+
width: fit-content;
|
|
8015
|
+
}
|
|
8016
|
+
-webkit-overflow-scrolling: touch;
|
|
8017
|
+
scrollbar-gutter: stable;
|
|
8013
8018
|
}
|
|
8014
8019
|
.pagination__info {
|
|
8015
8020
|
display: flex;
|
|
8021
|
+
flex-shrink: 0;
|
|
8016
8022
|
align-items: center;
|
|
8017
|
-
overflow: hidden;
|
|
8018
8023
|
border-inline-end-style: var(--tw-border-style);
|
|
8019
8024
|
border-inline-end-width: 1px;
|
|
8020
8025
|
border-color: var(--color-tertiary);
|
|
@@ -8026,7 +8031,6 @@
|
|
|
8026
8031
|
line-height: calc(var(--spacing) * 5);
|
|
8027
8032
|
--tw-font-weight: var(--font-weight-normal);
|
|
8028
8033
|
font-weight: var(--font-weight-normal);
|
|
8029
|
-
text-overflow: ellipsis;
|
|
8030
8034
|
white-space: nowrap;
|
|
8031
8035
|
color: var(--color-content);
|
|
8032
8036
|
&:last-child {
|
|
@@ -8041,12 +8045,15 @@
|
|
|
8041
8045
|
}
|
|
8042
8046
|
.pagination__nav {
|
|
8043
8047
|
display: flex;
|
|
8048
|
+
flex-shrink: 0;
|
|
8044
8049
|
align-items: center;
|
|
8045
8050
|
}
|
|
8046
8051
|
.pagy.series-nav {
|
|
8047
8052
|
display: flex;
|
|
8053
|
+
min-width: max-content;
|
|
8048
8054
|
align-items: center;
|
|
8049
8055
|
gap: calc(var(--spacing) * 0.5);
|
|
8056
|
+
white-space: nowrap;
|
|
8050
8057
|
a[role="separator"] {
|
|
8051
8058
|
padding-inline: calc(var(--spacing) * 2);
|
|
8052
8059
|
font-size: var(--text-sm);
|
|
@@ -10775,6 +10782,203 @@
|
|
|
10775
10782
|
--badge-bg: var(--color-rose-400);
|
|
10776
10783
|
--badge-text: var(--color-rose-600);
|
|
10777
10784
|
}
|
|
10785
|
+
.state {
|
|
10786
|
+
margin-inline: auto;
|
|
10787
|
+
display: flex;
|
|
10788
|
+
width: 100%;
|
|
10789
|
+
max-width: calc(var(--spacing) * 72);
|
|
10790
|
+
flex-direction: column;
|
|
10791
|
+
align-items: center;
|
|
10792
|
+
justify-content: center;
|
|
10793
|
+
gap: calc(var(--spacing) * 3);
|
|
10794
|
+
border-radius: var(--radius-lg);
|
|
10795
|
+
background-color: var(--color-background);
|
|
10796
|
+
padding: calc(var(--spacing) * 6);
|
|
10797
|
+
text-align: center;
|
|
10798
|
+
}
|
|
10799
|
+
.state__illustration {
|
|
10800
|
+
position: relative;
|
|
10801
|
+
display: flex;
|
|
10802
|
+
height: calc(var(--spacing) * 36);
|
|
10803
|
+
width: calc(var(--spacing) * 60);
|
|
10804
|
+
align-items: center;
|
|
10805
|
+
justify-content: center;
|
|
10806
|
+
}
|
|
10807
|
+
.state__card {
|
|
10808
|
+
position: absolute;
|
|
10809
|
+
display: flex;
|
|
10810
|
+
height: calc(var(--spacing) * 11);
|
|
10811
|
+
width: calc(var(--spacing) * 44);
|
|
10812
|
+
align-items: center;
|
|
10813
|
+
gap: calc(var(--spacing) * 1.5);
|
|
10814
|
+
border-radius: var(--radius-lg);
|
|
10815
|
+
border-style: var(--tw-border-style);
|
|
10816
|
+
border-width: 1px;
|
|
10817
|
+
border-color: var(--color-secondary);
|
|
10818
|
+
padding: calc(var(--spacing) * 2.5);
|
|
10819
|
+
background: linear-gradient(194deg, var(--color-primary) 27%, var(--color-background) 65%);
|
|
10820
|
+
box-shadow: var(--box-shadow-card);
|
|
10821
|
+
}
|
|
10822
|
+
.state__card--top {
|
|
10823
|
+
inset-inline-start: calc(var(--spacing) * 0);
|
|
10824
|
+
top: calc(var(--spacing) * 0);
|
|
10825
|
+
}
|
|
10826
|
+
.state__card--middle {
|
|
10827
|
+
inset-inline-start: calc(var(--spacing) * 14);
|
|
10828
|
+
top: calc(var(--spacing) * 8);
|
|
10829
|
+
}
|
|
10830
|
+
.state__card--bottom {
|
|
10831
|
+
inset-inline-start: calc(var(--spacing) * 5);
|
|
10832
|
+
top: calc(var(--spacing) * 20);
|
|
10833
|
+
}
|
|
10834
|
+
.state__badge {
|
|
10835
|
+
display: flex;
|
|
10836
|
+
width: calc(var(--spacing) * 6);
|
|
10837
|
+
height: calc(var(--spacing) * 6);
|
|
10838
|
+
flex-shrink: 0;
|
|
10839
|
+
align-items: center;
|
|
10840
|
+
justify-content: center;
|
|
10841
|
+
border-radius: calc(infinity * 1px);
|
|
10842
|
+
font-size: var(--text-xs);
|
|
10843
|
+
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
10844
|
+
--tw-leading: 1;
|
|
10845
|
+
line-height: 1;
|
|
10846
|
+
--tw-font-weight: var(--font-weight-medium);
|
|
10847
|
+
font-weight: var(--font-weight-medium);
|
|
10848
|
+
color: var(--color-content);
|
|
10849
|
+
background: color-mix(in srgb, oklch(92.80% 0.0000 89.88) 88%, #fff);
|
|
10850
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
10851
|
+
background: color-mix(in oklab, var(--color-tertiary) 88%, var(--color-primary));
|
|
10852
|
+
}
|
|
10853
|
+
}
|
|
10854
|
+
.state__body {
|
|
10855
|
+
display: flex;
|
|
10856
|
+
min-width: calc(var(--spacing) * 0);
|
|
10857
|
+
flex: 1;
|
|
10858
|
+
flex-direction: column;
|
|
10859
|
+
gap: calc(var(--spacing) * 1);
|
|
10860
|
+
}
|
|
10861
|
+
.state__line {
|
|
10862
|
+
display: block;
|
|
10863
|
+
height: calc(var(--spacing) * 1.5);
|
|
10864
|
+
border-radius: calc(infinity * 1px);
|
|
10865
|
+
background: color-mix(in srgb, oklch(92.80% 0.0000 89.88) 78%, #fff);
|
|
10866
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
10867
|
+
background: color-mix(in oklab, var(--color-tertiary) 78%, var(--color-primary));
|
|
10868
|
+
}
|
|
10869
|
+
}
|
|
10870
|
+
.state__line--title {
|
|
10871
|
+
opacity: 75%;
|
|
10872
|
+
}
|
|
10873
|
+
.state__line--large {
|
|
10874
|
+
width: calc(var(--spacing) * 14);
|
|
10875
|
+
}
|
|
10876
|
+
.state__line--medium {
|
|
10877
|
+
width: calc(var(--spacing) * 12);
|
|
10878
|
+
}
|
|
10879
|
+
.state__line--small {
|
|
10880
|
+
width: calc(var(--spacing) * 11);
|
|
10881
|
+
}
|
|
10882
|
+
.state__line--content {
|
|
10883
|
+
width: 100%;
|
|
10884
|
+
}
|
|
10885
|
+
.state__message {
|
|
10886
|
+
font-size: var(--text-base);
|
|
10887
|
+
line-height: var(--tw-leading, var(--text-base--line-height));
|
|
10888
|
+
--tw-leading: calc(var(--spacing) * 6);
|
|
10889
|
+
line-height: calc(var(--spacing) * 6);
|
|
10890
|
+
--tw-font-weight: var(--font-weight-normal);
|
|
10891
|
+
font-weight: var(--font-weight-normal);
|
|
10892
|
+
color: var(--color-content-secondary);
|
|
10893
|
+
}
|
|
10894
|
+
.state--frame-load-failed {
|
|
10895
|
+
max-width: calc(var(--spacing) * 96);
|
|
10896
|
+
gap: calc(var(--spacing) * 1);
|
|
10897
|
+
}
|
|
10898
|
+
.state__document {
|
|
10899
|
+
position: absolute;
|
|
10900
|
+
display: flex;
|
|
10901
|
+
height: calc(var(--spacing) * 28);
|
|
10902
|
+
width: calc(var(--spacing) * 20);
|
|
10903
|
+
flex-direction: column;
|
|
10904
|
+
border-radius: var(--radius-lg);
|
|
10905
|
+
border-style: var(--tw-border-style);
|
|
10906
|
+
border-width: 1px;
|
|
10907
|
+
border-color: var(--color-secondary);
|
|
10908
|
+
padding: calc(var(--spacing) * 0.5);
|
|
10909
|
+
background: linear-gradient(235deg, var(--color-primary) 27%, var(--color-background) 65%);
|
|
10910
|
+
}
|
|
10911
|
+
.state__document--start {
|
|
10912
|
+
inset-inline-start: calc(var(--spacing) * 4);
|
|
10913
|
+
rotate: -21deg;
|
|
10914
|
+
}
|
|
10915
|
+
.state__document--center {
|
|
10916
|
+
inset-inline-start: calc(var(--spacing) * 16);
|
|
10917
|
+
z-index: 10;
|
|
10918
|
+
}
|
|
10919
|
+
.state__document--end {
|
|
10920
|
+
inset-inline-start: calc(var(--spacing) * 24);
|
|
10921
|
+
z-index: 0;
|
|
10922
|
+
rotate: 21deg;
|
|
10923
|
+
}
|
|
10924
|
+
.state__document-body {
|
|
10925
|
+
display: flex;
|
|
10926
|
+
height: 100%;
|
|
10927
|
+
width: 100%;
|
|
10928
|
+
align-items: center;
|
|
10929
|
+
border-radius: var(--radius-lg);
|
|
10930
|
+
padding: calc(var(--spacing) * 2.5);
|
|
10931
|
+
box-shadow: var(--box-shadow-card);
|
|
10932
|
+
}
|
|
10933
|
+
.state__document-lines {
|
|
10934
|
+
display: flex;
|
|
10935
|
+
height: 100%;
|
|
10936
|
+
width: 100%;
|
|
10937
|
+
flex-direction: column;
|
|
10938
|
+
justify-content: space-between;
|
|
10939
|
+
}
|
|
10940
|
+
.state__document-line {
|
|
10941
|
+
display: block;
|
|
10942
|
+
height: calc(var(--spacing) * 1);
|
|
10943
|
+
width: 100%;
|
|
10944
|
+
border-radius: calc(infinity * 1px);
|
|
10945
|
+
background: color-mix(in srgb, oklch(92.80% 0.0000 89.88) 78%, #fff);
|
|
10946
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
10947
|
+
background: color-mix(in oklab, var(--color-tertiary) 78%, var(--color-primary));
|
|
10948
|
+
}
|
|
10949
|
+
}
|
|
10950
|
+
.state__document-line--short {
|
|
10951
|
+
width: calc(var(--spacing) * 10);
|
|
10952
|
+
}
|
|
10953
|
+
.state__magnifier {
|
|
10954
|
+
position: absolute;
|
|
10955
|
+
inset-inline-start: 30%;
|
|
10956
|
+
top: 30%;
|
|
10957
|
+
z-index: 20;
|
|
10958
|
+
background-image: none;
|
|
10959
|
+
}
|
|
10960
|
+
.state__magnifier-icon {
|
|
10961
|
+
width: calc(var(--spacing) * 24);
|
|
10962
|
+
height: calc(var(--spacing) * 24);
|
|
10963
|
+
color: var(--color-content-secondary);
|
|
10964
|
+
opacity: 20%;
|
|
10965
|
+
}
|
|
10966
|
+
.state__note {
|
|
10967
|
+
text-align: center;
|
|
10968
|
+
font-size: var(--text-sm);
|
|
10969
|
+
line-height: var(--tw-leading, var(--text-sm--line-height));
|
|
10970
|
+
--tw-leading: calc(var(--spacing) * 5);
|
|
10971
|
+
line-height: calc(var(--spacing) * 5);
|
|
10972
|
+
--tw-font-weight: var(--font-weight-normal);
|
|
10973
|
+
font-weight: var(--font-weight-normal);
|
|
10974
|
+
color: var(--color-content);
|
|
10975
|
+
}
|
|
10976
|
+
.state__link {
|
|
10977
|
+
color: color-mix(in srgb, oklch(54.6% 0.245 262.881), oklch(20.46% 0.0000 89.88) 10%);
|
|
10978
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
10979
|
+
color: color-mix(in oklab, var(--color-info-content), var(--color-content) 10%);
|
|
10980
|
+
}
|
|
10981
|
+
}
|
|
10778
10982
|
.file-upload-input {
|
|
10779
10983
|
position: relative;
|
|
10780
10984
|
display: flex;
|
|
@@ -13891,6 +14095,18 @@
|
|
|
13891
14095
|
inherits: false;
|
|
13892
14096
|
initial-value: solid;
|
|
13893
14097
|
}
|
|
14098
|
+
@property --tw-pan-x {
|
|
14099
|
+
syntax: "*";
|
|
14100
|
+
inherits: false;
|
|
14101
|
+
}
|
|
14102
|
+
@property --tw-pan-y {
|
|
14103
|
+
syntax: "*";
|
|
14104
|
+
inherits: false;
|
|
14105
|
+
}
|
|
14106
|
+
@property --tw-pinch-zoom {
|
|
14107
|
+
syntax: "*";
|
|
14108
|
+
inherits: false;
|
|
14109
|
+
}
|
|
13894
14110
|
@keyframes spin {
|
|
13895
14111
|
to {
|
|
13896
14112
|
transform: rotate(360deg);
|
|
@@ -13974,6 +14190,9 @@
|
|
|
13974
14190
|
--tw-ease: initial;
|
|
13975
14191
|
--tw-content: "";
|
|
13976
14192
|
--tw-outline-style: solid;
|
|
14193
|
+
--tw-pan-x: initial;
|
|
14194
|
+
--tw-pan-y: initial;
|
|
14195
|
+
--tw-pinch-zoom: initial;
|
|
13977
14196
|
}
|
|
13978
14197
|
}
|
|
13979
14198
|
}
|
|
@@ -135,6 +135,7 @@
|
|
|
135
135
|
@import "./css/components/ui/description_list.css";
|
|
136
136
|
@import "./css/components/ui/tabs.css";
|
|
137
137
|
@import "./css/components/ui/badge.css";
|
|
138
|
+
@import "./css/components/ui/state.css";
|
|
138
139
|
@import "./css/components/ui/file_upload_input.css";
|
|
139
140
|
@import "./css/components/ui/file_upload_item.css";
|
|
140
141
|
@import "./css/components/ui/dropdown.css";
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/* State Component - BEM: .state (block), .state__* (elements), .state--* (modifiers) */
|
|
2
|
+
|
|
3
|
+
/* Empty State Component */
|
|
4
|
+
|
|
5
|
+
.state {
|
|
6
|
+
@apply mx-auto flex w-full max-w-72 flex-col items-center justify-center gap-3 rounded-lg bg-background p-6 text-center;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.state__illustration {
|
|
10
|
+
@apply relative h-36 w-60 flex items-center justify-center;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.state__card {
|
|
14
|
+
@apply absolute flex h-11 w-44 items-center gap-1.5 rounded-lg border border-secondary p-2.5;
|
|
15
|
+
|
|
16
|
+
background: linear-gradient(194deg, var(--color-primary) 27%, var(--color-background) 65%);
|
|
17
|
+
box-shadow: var(--box-shadow-card);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.state__card--top {
|
|
21
|
+
@apply start-0 top-0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.state__card--middle {
|
|
25
|
+
@apply start-14 top-8;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.state__card--bottom {
|
|
29
|
+
@apply start-5 top-20;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.state__badge {
|
|
33
|
+
@apply flex size-6 shrink-0 items-center justify-center rounded-full text-xs font-medium leading-none text-content;
|
|
34
|
+
|
|
35
|
+
background: color-mix(in oklab, var(--color-tertiary) 88%, var(--color-primary));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.state__body {
|
|
39
|
+
@apply flex min-w-0 flex-1 flex-col gap-1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.state__line {
|
|
43
|
+
@apply block h-1.5 rounded-full;
|
|
44
|
+
|
|
45
|
+
background: color-mix(in oklab, var(--color-tertiary) 78%, var(--color-primary));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.state__line--title {
|
|
49
|
+
@apply opacity-75;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.state__line--large {
|
|
53
|
+
@apply w-14;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.state__line--medium {
|
|
57
|
+
@apply w-12;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.state__line--small {
|
|
61
|
+
@apply w-11;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.state__line--content {
|
|
65
|
+
@apply w-full;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.state__message {
|
|
69
|
+
@apply text-base font-normal leading-6 text-content-secondary;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Frame Load Failed Component */
|
|
73
|
+
.state--frame-load-failed {
|
|
74
|
+
@apply max-w-96 gap-1;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.state__document {
|
|
78
|
+
@apply absolute flex h-28 w-20 flex-col rounded-lg border border-secondary p-0.5;
|
|
79
|
+
|
|
80
|
+
background: linear-gradient(235deg, var(--color-primary) 27%, var(--color-background) 65%);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.state__document--start {
|
|
84
|
+
@apply start-4 rotate-[-21deg];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.state__document--center {
|
|
88
|
+
@apply start-16 z-10;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.state__document--end {
|
|
92
|
+
@apply start-24 rotate-[21deg] z-0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.state__document-body {
|
|
96
|
+
@apply flex h-full w-full items-center rounded-lg p-2.5;
|
|
97
|
+
|
|
98
|
+
box-shadow: var(--box-shadow-card);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.state__document-lines {
|
|
102
|
+
@apply flex h-full w-full flex-col justify-between
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.state__document-line {
|
|
106
|
+
@apply block h-1 w-full rounded-full;
|
|
107
|
+
|
|
108
|
+
background: color-mix(in oklab, var(--color-tertiary) 78%, var(--color-primary));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.state__document-line--short {
|
|
112
|
+
@apply w-10;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.state__magnifier {
|
|
116
|
+
@apply absolute start-[30%] top-[30%] z-20 bg-none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.state__magnifier-icon {
|
|
120
|
+
@apply size-24 text-content-secondary opacity-20;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.state__note {
|
|
124
|
+
@apply text-center text-sm font-normal leading-5 text-content;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.state__link {
|
|
128
|
+
color: color-mix(in oklab, var(--color-info-content), var(--color-content) 10%);
|
|
129
|
+
}
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
.pagination__controls, .pagination__info, .pagination__nav (elements) */
|
|
5
5
|
|
|
6
6
|
.pagination {
|
|
7
|
-
@apply flex w-full flex-col items-stretch justify-between gap-2 sm:flex-row sm:items-end sm:gap-0;
|
|
7
|
+
@apply flex w-full flex-col items-stretch justify-between gap-2 sm:flex-row sm:flex-wrap sm:items-end sm:gap-0;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
/* === Per-page selector (left) === */
|
|
11
11
|
|
|
12
12
|
.pagination__per-page {
|
|
13
13
|
--pagination-per-page-width: 10rem; /* w-48 equivalent; use 165px for exact Figma match */
|
|
14
|
-
@apply flex items-center;
|
|
14
|
+
@apply flex shrink-0 items-center;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
.pagination__per-page-input {
|
|
@@ -49,13 +49,19 @@
|
|
|
49
49
|
|
|
50
50
|
/* === Controls pill (right) === */
|
|
51
51
|
|
|
52
|
+
.pagination__controls-wrap {
|
|
53
|
+
@apply flex w-full min-w-0 sm:flex-[1_1_28rem] sm:min-w-[22rem] sm:justify-end;
|
|
54
|
+
}
|
|
55
|
+
|
|
52
56
|
.pagination__controls {
|
|
53
|
-
@apply flex w-
|
|
57
|
+
@apply flex w-full min-w-0 max-w-full items-center gap-3 rounded-lg border border-tertiary bg-primary ps-3 pe-2 overflow-x-auto overflow-y-hidden overscroll-x-contain touch-pan-x sm:w-fit;
|
|
58
|
+
-webkit-overflow-scrolling: touch;
|
|
59
|
+
scrollbar-gutter: stable;
|
|
54
60
|
}
|
|
55
61
|
|
|
56
62
|
/* Info text with right-border divider */
|
|
57
63
|
.pagination__info {
|
|
58
|
-
@apply flex items-center py-1 pe-3 border-e border-tertiary whitespace-nowrap
|
|
64
|
+
@apply shrink-0 flex items-center py-1 pe-3 border-e border-tertiary whitespace-nowrap text-sm text-content leading-5 font-normal;
|
|
59
65
|
|
|
60
66
|
&:last-child {
|
|
61
67
|
@apply border-e-0 pe-1;
|
|
@@ -68,12 +74,12 @@
|
|
|
68
74
|
|
|
69
75
|
/* Nav buttons wrapper */
|
|
70
76
|
.pagination__nav {
|
|
71
|
-
@apply flex items-center;
|
|
77
|
+
@apply shrink-0 flex items-center;
|
|
72
78
|
}
|
|
73
79
|
|
|
74
80
|
/* === Pagy nav === */
|
|
75
81
|
.pagy.series-nav {
|
|
76
|
-
@apply flex items-center gap-0.5;
|
|
82
|
+
@apply flex min-w-max items-center gap-0.5 whitespace-nowrap;
|
|
77
83
|
|
|
78
84
|
a[role="separator"] {
|
|
79
85
|
@apply px-2 text-sm text-content-secondary;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
2
|
+
<path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25Zm3 10.5a.75.75 0 0 0 0-1.5H9a.75.75 0 0 0 0 1.5h6Z" clip-rule="evenodd" />
|
|
3
|
+
</svg>
|
|
@@ -8,10 +8,10 @@ class Avo::AlertComponent < Avo::BaseComponent
|
|
|
8
8
|
prop :timeout
|
|
9
9
|
|
|
10
10
|
def icon
|
|
11
|
-
return "
|
|
12
|
-
return "
|
|
13
|
-
return "
|
|
14
|
-
return "
|
|
11
|
+
return "tabler/filled/alert-circle" if is_error?
|
|
12
|
+
return "tabler/filled/alert-triangle" if is_warning?
|
|
13
|
+
return "tabler/filled/alert-circle" if is_info?
|
|
14
|
+
return "tabler/filled/circle-check" if is_success?
|
|
15
15
|
|
|
16
16
|
"check-circle"
|
|
17
17
|
end
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<div class="px-2">
|
|
7
7
|
<div class="flex h-full">
|
|
8
8
|
<div class="flex items-center min-h-full">
|
|
9
|
-
<%= helpers.svg "
|
|
9
|
+
<%= helpers.svg "tabler/filled/alert-circle", class: "h-6" %>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="ms-3 w-0 flex-1 pt-0.5">
|
|
12
12
|
<p class="text-sm leading-5 font-semibold">
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# style: primary/outline/text
|
|
5
5
|
# size: :sm, :md, :lg
|
|
6
6
|
# color: nil, :primary, :accent, :gray, :red, :green, :blue, or any other tailwind color
|
|
7
|
-
# icon: "
|
|
7
|
+
# icon: "tabler/outline/paperclip" as specified in the docs (https://docs.avohq.io/3.0/icons.html)
|
|
8
8
|
class Avo::ButtonComponent < Avo::BaseComponent
|
|
9
9
|
prop :path, kind: :positional
|
|
10
10
|
prop :size, default: :md
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<div>
|
|
11
11
|
<div class="text-xl font-semibold">
|
|
12
12
|
<span class="text-green-700 text-xl">
|
|
13
|
-
<%= helpers.svg "
|
|
13
|
+
<%= helpers.svg "tabler/outline/rosette-discount-check", class: "h-5 inline -mt-1 relative" %> <span>Community</span>
|
|
14
14
|
</span> license
|
|
15
15
|
</div>
|
|
16
16
|
<div class="mt-4">
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
style: :primary,
|
|
31
31
|
color: :blue,
|
|
32
32
|
target: '_blank',
|
|
33
|
-
icon: '
|
|
33
|
+
icon: 'tabler/outline/external-link' do %>
|
|
34
34
|
Get started!
|
|
35
35
|
<% end %>
|
|
36
36
|
</div>
|
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
<div class="
|
|
3
|
-
|
|
1
|
+
<%= content_tag :div, class: class_names("state", @classes) do %>
|
|
2
|
+
<div class="state__illustration" aria-hidden="true">
|
|
3
|
+
<% cards.each do |card| %>
|
|
4
|
+
<div class="<%= class_names("state__card", "state__card--#{card[:position]}") %>">
|
|
5
|
+
<div class="state__badge"><%= card[:number] %></div>
|
|
6
|
+
|
|
7
|
+
<div class="state__body">
|
|
8
|
+
<div class="<%= class_names("state__line", "state__line--title", "state__line--#{card[:title]}") %>"></div>
|
|
9
|
+
<div class="state__line state__line--content"></div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<% end %>
|
|
4
13
|
</div>
|
|
5
|
-
|
|
14
|
+
|
|
15
|
+
<p class="state__message"><%= text %></p>
|
|
16
|
+
<% end %>
|