@gjsify/adwaita-web 0.32.0 → 0.34.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 (46) hide show
  1. package/dist/adwaita-web.css +118 -55
  2. package/dist/adwaita-web.css.map +1 -1
  3. package/lib/types/elements/adw-combo-row.d.ts +10 -0
  4. package/lib/types/elements/adw-inline-view-switcher.d.ts +37 -1
  5. package/lib/types/elements/adw-navigation-split-view.d.ts +42 -0
  6. package/lib/types/elements/adw-overlay-split-view.d.ts +56 -0
  7. package/lib/types/elements/adw-spinner.d.ts +23 -0
  8. package/lib/types/elements/adw-view-stack.d.ts +12 -0
  9. package/lib/types/elements/adw-view-switcher-bar.d.ts +7 -5
  10. package/lib/types/elements/adw-view-switcher.d.ts +55 -3
  11. package/lib/types/elements/adw-wrap-box.d.ts +58 -3
  12. package/lib/types/styles.generated.d.ts +1 -1
  13. package/package.json +6 -6
  14. package/scss/_combo_row.scss +19 -0
  15. package/scss/_navigation_split_view.scss +52 -9
  16. package/scss/_navigation_view.scss +28 -4
  17. package/scss/_overlay_split_view.scss +122 -33
  18. package/scss/_panes.scss +57 -0
  19. package/scss/_sidebar.scss +8 -1
  20. package/scss/_spinner.scss +35 -21
  21. package/scss/_tab_view.scss +12 -13
  22. package/scss/_theme.scss +9 -0
  23. package/scss/_variables.scss +18 -1
  24. package/scss/_wrap_box.scss +9 -0
  25. package/scss/adwaita-skin.scss +1 -0
  26. package/src/adw-about-dialog.spec.ts +36 -0
  27. package/src/adw-avatar.spec.ts +37 -0
  28. package/src/adw-button-content.spec.ts +24 -0
  29. package/src/adw-row-state.spec.ts +49 -0
  30. package/src/adw-sidebar.spec.ts +32 -0
  31. package/src/adw-wrap-box.spec.ts +148 -1
  32. package/src/chrome.spec.ts +111 -12
  33. package/src/elements/adw-action-row.ts +11 -1
  34. package/src/elements/adw-combo-row.ts +17 -0
  35. package/src/elements/adw-inline-view-switcher.ts +91 -8
  36. package/src/elements/adw-navigation-split-view.ts +189 -14
  37. package/src/elements/adw-overlay-split-view.ts +395 -20
  38. package/src/elements/adw-spinner.ts +165 -21
  39. package/src/elements/adw-tab-view.ts +20 -2
  40. package/src/elements/adw-view-stack.ts +21 -0
  41. package/src/elements/adw-view-switcher-bar.ts +13 -5
  42. package/src/elements/adw-view-switcher.ts +103 -11
  43. package/src/elements/adw-wrap-box.ts +290 -135
  44. package/src/split-views.spec.ts +677 -2
  45. package/src/styles.generated.ts +1 -1
  46. package/src/view-switcher.spec.ts +219 -0
@@ -234,6 +234,15 @@
234
234
  --headerbar-shade-color: rgba(0, 0, 6, 0.12);
235
235
  --separator-color: rgba(0, 0, 6, 0.1);
236
236
  --sidebar-bg-color: #ebebed;
237
+ --sidebar-fg-color: rgba(0, 0, 6, 0.8);
238
+ --sidebar-backdrop-color: #f2f2f4;
239
+ --sidebar-shade-color: rgba(0, 0, 6, 0.07);
240
+ --sidebar-border-color: rgba(0, 0, 6, 0.07);
241
+ --secondary-sidebar-bg-color: #f3f3f5;
242
+ --secondary-sidebar-fg-color: rgba(0, 0, 6, 0.8);
243
+ --secondary-sidebar-backdrop-color: #f6f6fa;
244
+ --secondary-sidebar-shade-color: rgba(0, 0, 6, 0.07);
245
+ --secondary-sidebar-border-color: rgba(0, 0, 6, 0.07);
237
246
  --card-bg-color: #ffffff;
238
247
  --card-fg-color: rgba(0, 0, 6, 0.8);
239
248
  --card-shade-color: rgba(0, 0, 6, 0.07);
@@ -293,6 +302,15 @@
293
302
  --headerbar-shade-color: rgba(0, 0, 6, 0.36);
294
303
  --separator-color: rgba(255, 255, 255, 0.08);
295
304
  --sidebar-bg-color: #2e2e32;
305
+ --sidebar-fg-color: #ffffff;
306
+ --sidebar-backdrop-color: #28282c;
307
+ --sidebar-shade-color: rgba(0, 0, 6, 0.25);
308
+ --sidebar-border-color: rgba(0, 0, 6, 0.36);
309
+ --secondary-sidebar-bg-color: #28282c;
310
+ --secondary-sidebar-fg-color: #ffffff;
311
+ --secondary-sidebar-backdrop-color: #252529;
312
+ --secondary-sidebar-shade-color: rgba(0, 0, 6, 0.25);
313
+ --secondary-sidebar-border-color: rgba(0, 0, 6, 0.36);
296
314
  --card-bg-color: rgba(255, 255, 255, 0.08);
297
315
  --card-fg-color: #ffffff;
298
316
  --card-shade-color: rgba(0, 0, 6, 0.36);
@@ -330,6 +348,15 @@
330
348
  --headerbar-shade-color: rgba(0, 0, 6, 0.36);
331
349
  --separator-color: rgba(255, 255, 255, 0.08);
332
350
  --sidebar-bg-color: #2e2e32;
351
+ --sidebar-fg-color: #ffffff;
352
+ --sidebar-backdrop-color: #28282c;
353
+ --sidebar-shade-color: rgba(0, 0, 6, 0.25);
354
+ --sidebar-border-color: rgba(0, 0, 6, 0.36);
355
+ --secondary-sidebar-bg-color: #28282c;
356
+ --secondary-sidebar-fg-color: #ffffff;
357
+ --secondary-sidebar-backdrop-color: #252529;
358
+ --secondary-sidebar-shade-color: rgba(0, 0, 6, 0.25);
359
+ --secondary-sidebar-border-color: rgba(0, 0, 6, 0.36);
333
360
  --card-bg-color: rgba(255, 255, 255, 0.08);
334
361
  --card-fg-color: #ffffff;
335
362
  --card-shade-color: rgba(0, 0, 6, 0.36);
@@ -2040,26 +2067,19 @@ adw-clamp {
2040
2067
  }
2041
2068
 
2042
2069
  adw-spinner {
2043
- display: inline-block;
2070
+ display: inline-flex;
2071
+ align-items: center;
2072
+ justify-content: center;
2044
2073
  box-sizing: border-box;
2045
2074
  width: 16px;
2046
2075
  height: 16px;
2047
- border: 2px solid rgba(127, 127, 127, 0.25);
2048
- border-top-color: currentColor;
2049
- border-radius: 50%;
2050
- animation: adw-spinner-spin 0.8s linear infinite;
2076
+ color: inherit;
2051
2077
  }
2052
- @media (prefers-reduced-motion: reduce) {
2053
- adw-spinner {
2054
- animation: none;
2055
- }
2078
+ adw-spinner svg {
2079
+ display: block;
2080
+ flex: none;
2056
2081
  }
2057
2082
 
2058
- @keyframes adw-spinner-spin {
2059
- to {
2060
- transform: rotate(360deg);
2061
- }
2062
- }
2063
2083
  adw-avatar {
2064
2084
  display: inline-flex;
2065
2085
  align-items: center;
@@ -2360,6 +2380,13 @@ adw-combo-row .adw-row-value::after {
2360
2380
  mask-position: center;
2361
2381
  }
2362
2382
 
2383
+ adw-combo-row[data-presents-chooser=false] .adw-row-value::after {
2384
+ display: none;
2385
+ }
2386
+ adw-combo-row[data-presents-chooser=false] select {
2387
+ cursor: default;
2388
+ }
2389
+
2363
2390
  adw-spin-row {
2364
2391
  display: flex;
2365
2392
  align-items: center;
@@ -2813,6 +2840,10 @@ adw-wrap-box {
2813
2840
  align-content: flex-start;
2814
2841
  }
2815
2842
 
2843
+ adw-wrap-box > * {
2844
+ flex-shrink: var(--adw-wrap-box-child-shrink, 0);
2845
+ }
2846
+
2816
2847
  adw-wrap-box[data-line-justify=fill] > *:not(:only-child) {
2817
2848
  flex-grow: 1;
2818
2849
  }
@@ -2835,6 +2866,21 @@ adw-wrap-box[orientation=vertical][data-line-justify=spread][data-last-line-just
2835
2866
  margin-top: calc(-1 * var(--adw-wrap-box-child-spacing, 0px));
2836
2867
  }
2837
2868
 
2869
+ .sidebar-pane {
2870
+ background-color: var(--sidebar-bg-color);
2871
+ color: var(--sidebar-fg-color);
2872
+ }
2873
+
2874
+ .sidebar-pane .sidebar-pane {
2875
+ background-color: transparent;
2876
+ color: inherit;
2877
+ }
2878
+
2879
+ .overlay-pane {
2880
+ background-color: var(--window-bg-color);
2881
+ color: var(--window-fg-color);
2882
+ }
2883
+
2838
2884
  adw-overlay-split-view {
2839
2885
  display: flex;
2840
2886
  flex-direction: row;
@@ -2844,16 +2890,15 @@ adw-overlay-split-view {
2844
2890
  overflow: hidden;
2845
2891
  }
2846
2892
  adw-overlay-split-view .adw-osv-sidebar {
2847
- background-color: var(--sidebar-bg-color);
2848
2893
  overflow-y: auto;
2849
2894
  flex-shrink: 0;
2850
- transition: transform 0.2s ease, opacity 0.2s ease, margin 0.2s ease;
2851
2895
  z-index: 10;
2852
2896
  align-self: stretch;
2897
+ transition: opacity 0.2s ease;
2853
2898
  }
2854
2899
  adw-overlay-split-view .adw-osv-content {
2855
2900
  flex: 1;
2856
- min-width: 0;
2901
+ min-width: min-content;
2857
2902
  min-height: 0;
2858
2903
  display: flex;
2859
2904
  flex-direction: column;
@@ -2862,49 +2907,65 @@ adw-overlay-split-view .adw-osv-content {
2862
2907
  adw-overlay-split-view:not(.collapsed) .adw-osv-sidebar {
2863
2908
  position: relative;
2864
2909
  }
2865
- adw-overlay-split-view:not(.collapsed):not(.show-sidebar) .adw-osv-sidebar {
2866
- transform: translateX(-100%);
2867
- opacity: 0;
2868
- pointer-events: none;
2869
- }
2870
2910
  adw-overlay-split-view:not(.collapsed).sidebar-end .adw-osv-content {
2871
2911
  order: 1;
2872
2912
  }
2873
2913
  adw-overlay-split-view:not(.collapsed).sidebar-end .adw-osv-sidebar {
2874
2914
  order: 2;
2875
- border-inline-start: 1px solid var(--separator-color);
2876
2915
  }
2877
- adw-overlay-split-view:not(.collapsed):not(.show-sidebar).sidebar-end .adw-osv-sidebar {
2878
- transform: translateX(100%);
2916
+ adw-overlay-split-view:not(.collapsed) .adw-osv-sidebar {
2917
+ border-inline-end: none;
2918
+ border-inline-start: none;
2919
+ }
2920
+ adw-overlay-split-view:not(.collapsed).sidebar-at-visual-start .adw-osv-sidebar {
2921
+ border-right: 1px solid var(--separator-color);
2922
+ }
2923
+ adw-overlay-split-view:not(.collapsed):not(.sidebar-at-visual-start) .adw-osv-sidebar {
2924
+ border-left: 1px solid var(--separator-color);
2879
2925
  }
2880
2926
  adw-overlay-split-view.collapsed .adw-osv-sidebar {
2881
2927
  position: absolute;
2882
2928
  top: 0;
2883
2929
  bottom: 0;
2930
+ box-shadow: 0 0 12px rgba(0, 0, 0, 0.25);
2931
+ }
2932
+ adw-overlay-split-view.collapsed.sidebar-at-visual-start .adw-osv-sidebar {
2884
2933
  left: 0;
2885
- transform: translateX(-100%);
2934
+ right: auto;
2935
+ }
2936
+ adw-overlay-split-view.collapsed:not(.sidebar-at-visual-start) .adw-osv-sidebar {
2937
+ left: auto;
2938
+ right: 0;
2939
+ }
2940
+ adw-overlay-split-view.collapsed:not(.show-sidebar) .adw-osv-sidebar {
2886
2941
  opacity: 0;
2887
2942
  pointer-events: none;
2888
2943
  }
2889
- adw-overlay-split-view.collapsed.sidebar-end .adw-osv-sidebar {
2944
+ adw-overlay-split-view.collapsed:not(.show-sidebar).sidebar-at-visual-start .adw-osv-sidebar {
2890
2945
  left: auto;
2891
- right: 0;
2892
- transform: translateX(100%);
2946
+ right: 100%;
2893
2947
  }
2894
- adw-overlay-split-view.collapsed.show-sidebar .adw-osv-sidebar {
2895
- transform: translateX(0);
2896
- opacity: 1;
2897
- pointer-events: auto;
2948
+ adw-overlay-split-view.collapsed:not(.show-sidebar):not(.sidebar-at-visual-start) .adw-osv-sidebar {
2949
+ left: 100%;
2950
+ right: auto;
2951
+ }
2952
+ adw-overlay-split-view:not(.collapsed):not(.show-sidebar) .adw-osv-sidebar {
2953
+ width: 0;
2954
+ min-width: 0;
2955
+ overflow: hidden;
2956
+ opacity: 0;
2957
+ pointer-events: none;
2898
2958
  }
2899
2959
  adw-overlay-split-view .adw-osv-backdrop {
2900
2960
  display: none;
2901
2961
  }
2902
- adw-overlay-split-view.collapsed.show-sidebar .adw-osv-backdrop {
2962
+ adw-overlay-split-view.collapsed .adw-osv-backdrop:not([hidden]) {
2903
2963
  display: block;
2904
2964
  position: absolute;
2905
2965
  inset: 0;
2906
2966
  background: rgba(0, 0, 0, 0.3);
2907
2967
  z-index: 9;
2968
+ transition: opacity 0.2s ease;
2908
2969
  }
2909
2970
 
2910
2971
  .adw-sidebar-content {
@@ -2942,27 +3003,35 @@ adw-navigation-split-view .adw-nsv-sidebar {
2942
3003
  flex-direction: column;
2943
3004
  min-height: 0;
2944
3005
  flex-shrink: 0;
2945
- border-right: 1px solid var(--separator-color);
2946
- background-color: var(--sidebar-bg-color);
2947
3006
  }
2948
3007
  adw-navigation-split-view .adw-nsv-content {
2949
3008
  display: flex;
2950
3009
  flex-direction: column;
2951
- min-width: 0;
3010
+ min-width: min-content;
2952
3011
  min-height: 0;
2953
3012
  flex: 1 1 auto;
2954
3013
  background-color: var(--window-bg-color);
2955
3014
  }
2956
- adw-navigation-split-view.collapsed.show-content .adw-nsv-sidebar {
2957
- display: none;
3015
+ adw-navigation-split-view.sidebar-end .adw-nsv-content {
3016
+ order: 1;
2958
3017
  }
2959
- adw-navigation-split-view.collapsed:not(.show-content) .adw-nsv-content {
3018
+ adw-navigation-split-view.sidebar-end .adw-nsv-sidebar {
3019
+ order: 2;
3020
+ }
3021
+ adw-navigation-split-view.sidebar-at-visual-start .adw-nsv-sidebar {
3022
+ border-right: 1px solid var(--separator-color);
3023
+ }
3024
+ adw-navigation-split-view:not(.sidebar-at-visual-start) .adw-nsv-sidebar {
3025
+ border-left: 1px solid var(--separator-color);
3026
+ }
3027
+ adw-navigation-split-view.collapsed [data-pane-visible=false] {
2960
3028
  display: none;
2961
3029
  }
2962
- adw-navigation-split-view.collapsed:not(.show-content) .adw-nsv-sidebar {
3030
+ adw-navigation-split-view.collapsed .adw-nsv-sidebar[data-pane-visible=true] {
2963
3031
  flex: 1 1 auto;
2964
3032
  max-width: none;
2965
3033
  border-right: none;
3034
+ border-left: none;
2966
3035
  }
2967
3036
 
2968
3037
  adw-carousel {
@@ -3154,18 +3223,11 @@ adw-tab-view .adw-tab-icon[hidden],
3154
3223
  adw-tab-view .adw-tab-indicator[hidden] {
3155
3224
  display: none;
3156
3225
  }
3157
- adw-tab-view .adw-tab-icon.loading {
3158
- background: none;
3159
- mask-image: none;
3160
- border: 2px solid rgba(127, 127, 127, 0.25);
3161
- border-top-color: currentColor;
3162
- border-radius: 50%;
3163
- animation: adw-spinner-spin 0.8s linear infinite;
3226
+ adw-tab-view .adw-tab-spinner {
3227
+ flex: none;
3164
3228
  }
3165
- @media (prefers-reduced-motion: reduce) {
3166
- adw-tab-view .adw-tab-icon.loading {
3167
- animation: none;
3168
- }
3229
+ adw-tab-view .adw-tab-spinner[hidden] {
3230
+ display: none;
3169
3231
  }
3170
3232
  adw-tab-view .adw-tab.pinned {
3171
3233
  padding: 0 var(--spacing-xs);
@@ -3644,6 +3706,8 @@ adw-navigation-view {
3644
3706
  }
3645
3707
  adw-navigation-view .adw-navigation-view-pages {
3646
3708
  flex: 1 1 auto;
3709
+ display: flex;
3710
+ flex-direction: column;
3647
3711
  position: relative;
3648
3712
  box-sizing: border-box;
3649
3713
  min-height: 0;
@@ -3651,8 +3715,8 @@ adw-navigation-view .adw-navigation-view-pages {
3651
3715
  }
3652
3716
  adw-navigation-view .adw-navigation-page {
3653
3717
  box-sizing: border-box;
3654
- position: absolute;
3655
- inset: 0;
3718
+ position: relative;
3719
+ flex: 1 1 auto;
3656
3720
  display: flex;
3657
3721
  flex-direction: column;
3658
3722
  overflow: auto;
@@ -3797,7 +3861,6 @@ adw-sidebar .adw-sidebar-item {
3797
3861
  display: flex;
3798
3862
  align-items: center;
3799
3863
  gap: var(--spacing-m);
3800
- width: 100%;
3801
3864
  min-height: 36px;
3802
3865
  margin: 0 var(--spacing-xs) 2px;
3803
3866
  padding: 3px 14px;