avo 4.0.0.beta.5 → 4.0.0.beta.6

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +12 -12
  3. data/app/assets/builds/avo/application.css +42 -65
  4. data/app/assets/builds/avo/application.js +113 -113
  5. data/app/assets/builds/avo/application.js.map +4 -4
  6. data/app/assets/stylesheets/application.css +1 -0
  7. data/app/assets/stylesheets/css/components/color_scheme_switcher.css +8 -23
  8. data/app/assets/stylesheets/css/components/input.css +12 -3
  9. data/app/assets/stylesheets/css/components/ui/card.css +2 -0
  10. data/app/assets/stylesheets/css/fields/code.css +3 -4
  11. data/app/assets/stylesheets/css/resource-controls.css +3 -3
  12. data/app/assets/stylesheets/css/sidebar.css +2 -6
  13. data/app/assets/stylesheets/css/table.css +4 -0
  14. data/app/assets/stylesheets/css/typography.css +3 -1
  15. data/app/components/avo/actions_component.html.erb +2 -1
  16. data/app/components/avo/actions_component.rb +1 -0
  17. data/app/components/avo/base_component.rb +2 -0
  18. data/app/components/avo/button_component.rb +1 -1
  19. data/app/components/avo/keyboard_shortcuts_component.rb +23 -2
  20. data/app/components/avo/modal_component.html.erb +1 -0
  21. data/app/components/avo/resource_component.rb +33 -4
  22. data/app/components/avo/sidebar/heading_component.html.erb +24 -0
  23. data/app/components/avo/sidebar/heading_component.rb +10 -0
  24. data/app/components/avo/sidebar/section_component.html.erb +6 -26
  25. data/app/components/avo/sidebar_component.html.erb +16 -10
  26. data/app/components/avo/u_i/search_input_component.html.erb +8 -3
  27. data/app/components/avo/u_i/search_input_component.rb +1 -1
  28. data/app/components/avo/views/resource_index_component.html.erb +3 -2
  29. data/app/javascript/application.js +2 -1
  30. data/app/javascript/js/controllers/color_scheme_switcher_controller.js +1 -11
  31. data/app/javascript/js/controllers/dropdown_menu_controller.js +59 -3
  32. data/app/javascript/js/controllers/index_row_navigator_controller.js +185 -0
  33. data/app/javascript/js/controllers/item_select_all_controller.js +10 -0
  34. data/app/javascript/js/controllers/resource_search_controller.js +4 -0
  35. data/app/javascript/js/controllers.js +2 -0
  36. data/app/javascript/js/global_hotkeys.js +44 -9
  37. data/app/views/avo/actions/show.html.erb +2 -1
  38. data/app/views/avo/partials/_color_scheme_switcher.html.erb +42 -47
  39. data/app/views/avo/partials/_view_toggle_button.html.erb +6 -1
  40. data/lib/avo/concerns/row_controls_configuration.rb +1 -1
  41. data/lib/avo/version.rb +1 -1
  42. metadata +4 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78097e52553f1c4b182f2542a08a85379f1fb97804598c84e6efb48fc24ccc30
4
- data.tar.gz: f372148210d4b8ac86b22117ab5222e67c449649d0f5e0045c504a8902ae3e40
3
+ metadata.gz: 8dca31ebc6d17ce534885bb1a969865d8ede142b4bf699495c6ed2c71c77218d
4
+ data.tar.gz: 01767fe38c8e09a979f1831de0b3ae6d9bd6adadb22f07dfbb79e7bd19e7588d
5
5
  SHA512:
6
- metadata.gz: 68fac9ebc6f6c49005b06f106e566308ad593d25232a56d36a2f54042dc877f6ed07e37e0da3d9fd33a5bbddd21d2220960fe24b3a0b97cc1042d13dc99e5eee
7
- data.tar.gz: 5314103f75eef43decd2326a4cb1a1fab7fc7833a6a9ba000bafd117504af078d4d72a7356083ccfe7217a6d5501b0b906e07abf612222c0685ea2401adaf8c7
6
+ metadata.gz: 8109dcce26f65479c4269b8bc6d74c5f090f10286bc9d6ff968a4e561d3a485270a90dee3efdf1de2d3e705e4387d9384a063fd55ac9c70b279ad8a58d901b7d
7
+ data.tar.gz: f334616442d6a678b373f7c7b8a30d4f22145669275da55e7eaf39b81be62b022f428cb00b07e8d38deac229c5364b71cb8e99ff470c7d8e935c18376f8cf5ae
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (4.0.0.beta.5)
4
+ avo (4.0.0.beta.6)
5
5
  actionview (>= 6.1)
6
6
  active_link_to
7
7
  activerecord (>= 6.1)
@@ -125,7 +125,7 @@ GEM
125
125
  rake
126
126
  thor (>= 0.14.0)
127
127
  ast (2.4.2)
128
- avo-icons (0.1.1)
128
+ avo-icons (0.1.2)
129
129
  inline_svg
130
130
  avo-money_field (0.0.5)
131
131
  money-rails (~> 1.12)
@@ -168,7 +168,7 @@ GEM
168
168
  backport (1.2.0)
169
169
  base64 (0.3.0)
170
170
  bcrypt (3.1.20)
171
- benchmark (0.4.1)
171
+ benchmark (0.5.0)
172
172
  benchmark-ips (2.14.0)
173
173
  better_html (2.1.1)
174
174
  actionview (>= 6.0)
@@ -177,7 +177,7 @@ GEM
177
177
  erubi (~> 1.4)
178
178
  parser (>= 2.4)
179
179
  smart_properties
180
- bigdecimal (3.2.2)
180
+ bigdecimal (4.0.1)
181
181
  bindex (0.8.1)
182
182
  bootsnap (1.18.6)
183
183
  msgpack (~> 1.2)
@@ -204,8 +204,8 @@ GEM
204
204
  coercible (1.0.0)
205
205
  descendants_tracker (~> 0.0.1)
206
206
  colored2 (3.1.2)
207
- concurrent-ruby (1.3.5)
208
- connection_pool (2.5.3)
207
+ concurrent-ruby (1.3.6)
208
+ connection_pool (3.0.2)
209
209
  cork (0.3.0)
210
210
  colored2 (~> 3.1)
211
211
  countries (8.0.3)
@@ -294,8 +294,8 @@ GEM
294
294
  dry-logic (~> 1.5)
295
295
  dry-types (~> 1.8)
296
296
  zeitwerk (~> 2.6)
297
- dry-types (1.8.3)
298
- bigdecimal (~> 3.0)
297
+ dry-types (1.9.1)
298
+ bigdecimal (>= 3.0)
299
299
  concurrent-ruby (~> 1.0)
300
300
  dry-core (~> 1.0)
301
301
  dry-inflector (~> 1.0)
@@ -382,7 +382,7 @@ GEM
382
382
  railties (>= 6.0.0)
383
383
  htmlbeautifier (1.4.3)
384
384
  htmlentities (4.3.4)
385
- i18n (1.14.7)
385
+ i18n (1.14.8)
386
386
  concurrent-ruby (~> 1.0)
387
387
  i18n-tasks (1.0.14)
388
388
  activesupport (>= 4.0.2)
@@ -458,7 +458,7 @@ GEM
458
458
  mini_magick (5.3.1)
459
459
  logger
460
460
  mini_mime (1.1.5)
461
- minitest (5.25.4)
461
+ minitest (5.27.0)
462
462
  monetize (1.13.0)
463
463
  money (~> 6.12)
464
464
  money (6.19.0)
@@ -483,9 +483,9 @@ GEM
483
483
  net-smtp (0.5.1)
484
484
  net-protocol
485
485
  nio4r (2.7.4)
486
- nokogiri (1.18.9-arm64-darwin)
486
+ nokogiri (1.19.2-arm64-darwin)
487
487
  racc (~> 1.4)
488
- nokogiri (1.18.9-x86_64-linux-gnu)
488
+ nokogiri (1.19.2-x86_64-linux-gnu)
489
489
  racc (~> 1.4)
490
490
  observer (0.1.2)
491
491
  octokit (10.0.0)
@@ -2802,6 +2802,12 @@
2802
2802
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
2803
2803
  }
2804
2804
  }
2805
+ .before\:opacity-0 {
2806
+ &::before {
2807
+ content: var(--tw-content);
2808
+ opacity: 0%;
2809
+ }
2810
+ }
2805
2811
  .before\:content-\[\'\'\] {
2806
2812
  &::before {
2807
2813
  --tw-content: '';
@@ -2826,6 +2832,14 @@
2826
2832
  }
2827
2833
  }
2828
2834
  }
2835
+ .group-hover\:before\:opacity-100 {
2836
+ &:is(:where(.group):hover *) {
2837
+ &::before {
2838
+ content: var(--tw-content);
2839
+ opacity: 100%;
2840
+ }
2841
+ }
2842
+ }
2829
2843
  .last\:mb-0 {
2830
2844
  &:last-child {
2831
2845
  margin-bottom: calc(var(--spacing) * 0);
@@ -7664,9 +7678,11 @@
7664
7678
  font-weight: var(--font-weight-semibold);
7665
7679
  color: var(--color-content-secondary);
7666
7680
  box-shadow: var(--box-shadow-search-input-shortcut);
7681
+ transition: transform 0.08s ease-out, box-shadow 0.08s ease-out;
7667
7682
  }
7668
7683
  kbd.kbd--called {
7669
- opacity: 0.4;
7684
+ transform: scale(0.75) translateY(2px);
7685
+ box-shadow: none;
7670
7686
  }
7671
7687
  @layer base {
7672
7688
  a {
@@ -8650,9 +8666,15 @@
8650
8666
  .table-row:hover.selected-row, .selected-row {
8651
8667
  background: var(--color-table-row-hover);
8652
8668
  }
8653
- @layer base {
8669
+ .table-row.is-keyboard-focused {
8670
+ background: color-mix(in srgb, oklch(98.51% 0.0000 89.88), oklch(39.04% 0.0000 89.88) 10%);
8671
+ @supports (color: color-mix(in lab, red, red)) {
8672
+ background: color-mix(in oklab, var(--color-background), var(--color-accent) 10%);
8673
+ }
8674
+ }
8675
+ @layer components {
8654
8676
  .resource-controls {
8655
- .resource-control, button, a {
8677
+ .resource-control, button:not(.button), a:not(.button) {
8656
8678
  color: var(--color-content-secondary);
8657
8679
  &:hover {
8658
8680
  color: var(--color-content);
@@ -9123,8 +9145,8 @@
9123
9145
  border-width: 1px;
9124
9146
  border-color: var(--color-tertiary);
9125
9147
  }
9126
- .CodeMirror-fullscreen, .editor-preview-active-side {
9127
- z-index: 50;
9148
+ .main-content-area:has(.CodeMirror-fullscreen) {
9149
+ z-index: 101;
9128
9150
  }
9129
9151
  .editor-toolbar {
9130
9152
  border-top-left-radius: var(--radius-lg);
@@ -10360,6 +10382,7 @@
10360
10382
  align-items: flex-start;
10361
10383
  align-self: stretch;
10362
10384
  padding: calc(var(--spacing) - 1px);
10385
+ scroll-padding-inline: calc(var(--spacing) );
10363
10386
  }
10364
10387
  .card:has(.card__footer .pagination) {
10365
10388
  .card__wrapper {
@@ -11535,9 +11558,12 @@
11535
11558
  padding-inline-end: calc( var(--input-icon-offset) + var(--input-icon-gap) );
11536
11559
  }
11537
11560
  .search-input__input.search-input__input--with-shortcut {
11561
+ padding-inline-end: calc( var(--input-icon-offset) + var(--input-icon-size) + var(--input-icon-gap) * 2 );
11562
+ }
11563
+ .search-input__input.search-input__input--with-two-key-shortcut {
11538
11564
  padding-inline-end: calc( var(--input-icon-offset) + var(--input-icon-size) * 2 + var(--input-icon-gap) * 3 );
11539
11565
  }
11540
- body.os-pc .search-input__input.search-input__input--with-shortcut {
11566
+ body.os-pc .search-input__input.search-input__input--with-two-key-shortcut {
11541
11567
  padding-inline-end: calc( var(--input-icon-offset) + var(--input-icon-size) * 3 + var(--input-icon-gap) * 4 );
11542
11568
  }
11543
11569
  .search-input__suffix {
@@ -12554,39 +12580,22 @@
12554
12580
  --tw-font-weight: var(--font-weight-medium);
12555
12581
  font-weight: var(--font-weight-medium);
12556
12582
  }
12557
- .color-scheme-switcher__theme-wrapper {
12558
- position: relative;
12559
- }
12560
12583
  .color-scheme-switcher__button--theme {
12561
12584
  gap: calc(var(--spacing) * 1);
12562
12585
  }
12563
- .color-scheme-switcher__theme-panel {
12564
- position: absolute;
12586
+ .color-scheme-switcher__theme-popover {
12565
12587
  inset-inline-start: calc(var(--spacing) * 0);
12566
- top: 100%;
12567
- z-index: 40;
12568
- margin-top: calc(var(--spacing) * 2);
12569
- border-radius: var(--radius-lg);
12570
- background-color: var(--color-white);
12571
- &:where(.dark, .dark *) {
12572
- background-color: var(--color-neutral-800);
12573
- }
12574
- border-style: var(--tw-border-style);
12575
- border-width: 1px;
12576
- border-color: var(--color-neutral-200);
12577
- &:where(.dark, .dark *) {
12578
- border-color: var(--color-neutral-700);
12579
- }
12588
+ inset-inline-end: auto;
12589
+ min-width: 160px;
12590
+ }
12591
+ .color-scheme-switcher__accent-popover {
12580
12592
  min-width: 160px;
12581
- padding: calc(var(--spacing) * 2);
12582
- --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
12583
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
12584
- animation: css-animate-slide-down 0.15s ease-out;
12585
12593
  }
12586
12594
  .color-scheme-switcher__theme-options {
12587
12595
  display: flex;
12588
12596
  flex-direction: column;
12589
12597
  gap: calc(var(--spacing) * 0.5);
12598
+ align-self: stretch;
12590
12599
  }
12591
12600
  .color-scheme-switcher__theme-option {
12592
12601
  display: flex;
@@ -12690,36 +12699,11 @@
12690
12699
  --tw-leading: 1;
12691
12700
  line-height: 1;
12692
12701
  }
12693
- .color-scheme-switcher__accent-wrapper {
12694
- position: relative;
12695
- }
12696
- .color-scheme-switcher__accent-panel {
12697
- position: absolute;
12698
- inset-inline-end: calc(var(--spacing) * 0);
12699
- top: 100%;
12700
- z-index: 40;
12701
- margin-top: calc(var(--spacing) * 2);
12702
- border-radius: var(--radius-lg);
12703
- background-color: var(--color-white);
12704
- &:where(.dark, .dark *) {
12705
- background-color: var(--color-neutral-800);
12706
- }
12707
- border-style: var(--tw-border-style);
12708
- border-width: 1px;
12709
- border-color: var(--color-neutral-200);
12710
- &:where(.dark, .dark *) {
12711
- border-color: var(--color-neutral-700);
12712
- }
12713
- min-width: 160px;
12714
- padding: calc(var(--spacing) * 2);
12715
- --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
12716
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
12717
- animation: css-animate-slide-down 0.15s ease-out;
12718
- }
12719
12702
  .color-scheme-switcher__accent-options {
12720
12703
  display: grid;
12721
12704
  grid-template-columns: repeat(3, minmax(0, 1fr));
12722
12705
  gap: calc(var(--spacing) * 2);
12706
+ align-self: stretch;
12723
12707
  }
12724
12708
  .color-scheme-switcher__accent-option {
12725
12709
  display: flex;
@@ -13362,24 +13346,17 @@
13362
13346
  flex-direction: column;
13363
13347
  padding-inline: calc(var(--spacing) * 3);
13364
13348
  }
13365
- .sidebar__nav-list {
13366
- width: 100%;
13367
- :where(& > :not(:last-child)) {
13368
- --tw-space-y-reverse: 0;
13369
- margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
13370
- margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
13371
- }
13372
- }
13373
13349
  .sidebar__footer {
13374
13350
  flex-shrink: 0;
13375
13351
  }
13376
13352
  .sidebar-section {
13377
- padding-top: calc(var(--spacing) * 4);
13353
+ &:not(*:first-child) {
13354
+ margin-top: calc(var(--spacing) * 4);
13355
+ }
13378
13356
  }
13379
13357
  .sidebar-section__header {
13380
13358
  display: flex;
13381
13359
  width: 100%;
13382
- cursor: pointer;
13383
13360
  align-items: center;
13384
13361
  gap: calc(var(--spacing) * 2);
13385
13362
  border-radius: var(--radius-lg);