@swiftwc/ui 0.0.0-dev.17 → 0.0.0-dev.19

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/generated/client/index.js +3 -11
  2. package/generated/components/content-unavailable-view.d.ts +24 -0
  3. package/generated/components/content-unavailable-view.js +78 -0
  4. package/generated/components/date-picker.js +2 -4
  5. package/generated/components/index.d.ts +2 -3
  6. package/generated/components/index.js +2 -3
  7. package/generated/components/navigation-split-view.d.ts +3 -0
  8. package/generated/components/navigation-split-view.js +3 -0
  9. package/generated/components/navigation-stack.d.ts +3 -0
  10. package/generated/components/navigation-stack.js +3 -0
  11. package/generated/components/scroll-view-proxy.d.ts +8 -0
  12. package/generated/components/scroll-view-proxy.js +14 -0
  13. package/generated/components/sidebar-toggle.js +33 -60
  14. package/generated/components/tab-bar.d.ts +3 -0
  15. package/generated/components/tab-bar.js +3 -0
  16. package/generated/components/text-field.js +1 -1
  17. package/generated/css/index.css +186 -127
  18. package/generated/i18n/index.d.ts +20 -10
  19. package/generated/i18n/index.js +82 -54
  20. package/generated/i18n/locales/el.d.ts +8 -0
  21. package/generated/i18n/locales/el.js +8 -0
  22. package/generated/i18n/locales/en.d.ts +8 -0
  23. package/generated/i18n/locales/en.js +8 -0
  24. package/generated/i18n/locales/index.d.ts +4 -0
  25. package/generated/i18n/locales/index.js +4 -0
  26. package/generated/internal/utils/list-active.js +11 -11
  27. package/package.json +8 -4
  28. package/scss/_components.scss +2 -0
  29. package/scss/components/_bordered-button.scss +8 -0
  30. package/scss/components/_bordered-prominent-button.scss +8 -0
  31. package/scss/components/_borderless-button.scss +8 -0
  32. package/scss/components/_components.scss +76 -0
  33. package/scss/components/_content-unavailable-view.scss +45 -0
  34. package/scss/components/_glass-button.scss +8 -0
  35. package/scss/components/_glass-prominent-button.scss +8 -0
  36. package/scss/components/_h-flex-stack.scss +23 -0
  37. package/scss/components/_h-stack.scss +2 -2
  38. package/scss/components/_index.scss +4 -0
  39. package/scss/components/_label-view.scss +29 -22
  40. package/scss/components/_plain-button.scss +7 -0
  41. package/scss/components/_scroll-view-proxy.scss +18 -18
  42. package/scss/components/_v-stack.scss +19 -2
  43. package/scss/final/_touch-glass.scss +17 -0
  44. package/scss/placeholders/_lists.scss +10 -38
  45. package/scss/utils/_stacks.scss +72 -67
  46. package/web-components.html-data/en.json +19 -3
@@ -499,10 +499,7 @@
499
499
  }
500
500
  :where(table-view:not(table-view table-view, list-view table-view, [is=form-view] table-view) [is=disclosure-group] > :not(summary), [is=form-view]:not([is=form-view] [is=form-view], list-view [is=form-view], table-view [is=form-view], [is=tab-bar] > [is=form-view]) [is=disclosure-group] > :not(summary), list-view:not(list-view list-view, [is=form-view] list-view, table-view list-view) [is=disclosure-group] > :not(summary)) {
501
501
  --itemface: var(--list--details-background-color, var(--list--item-background-color,));
502
- --itemhighlightface: var(
503
- --list--selecteddetails-background-color,
504
- var(--list--highlighteditem-background-color, var(--list--item-background-color,))
505
- );
502
+ --itemhighlightface: var(--list--selecteddetails-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)));
506
503
  --itemactiveface: var(--list--selecteddetails-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)));
507
504
  --itemtext: var(--list--details-color, var(--list--item-color,));
508
505
  --itemhighlighttext: var(--list--selecteddetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
@@ -510,14 +507,8 @@
510
507
  }
511
508
  :where([is=disclosure-group][open] table-view:not(table-view table-view, list-view table-view, [is=form-view] table-view) [is=disclosure-group] > summary, [is=disclosure-group][open] [is=form-view]:not([is=form-view] [is=form-view], list-view [is=form-view], table-view [is=form-view], [is=tab-bar] > [is=form-view]) [is=disclosure-group] > summary, [is=disclosure-group][open] list-view:not(list-view list-view, [is=form-view] list-view, table-view list-view) [is=disclosure-group] > summary) {
512
509
  --itemface: var(--list--opendetails-background-color, var(--list--item-background-color,));
513
- --itemhighlightface: var(
514
- --list--selectedopendetails-background-color,
515
- var(--list--highlighteditem-background-color, var(--list--item-background-color,))
516
- );
517
- --itemactiveface: var(
518
- --list--selectedopendetails-background-color,
519
- var(--list--highlighteditem-background-color, var(--list--item-background-color,))
520
- );
510
+ --itemhighlightface: var(--list--selectedopendetails-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)));
511
+ --itemactiveface: var(--list--selectedopendetails-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)));
521
512
  --itemtext: var(--list--opendetails-color, var(--list--item-color,));
522
513
  --itemhighlighttext: var(--list--selectedopendetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
523
514
  --itemactivetext: var(--list--selectedopendetails-color, var(--list--highlighteditem-color, var(--list--item-color,)));
@@ -533,14 +524,8 @@
533
524
  var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
534
525
  );
535
526
  --itemtext: var(--list--opensummary-color, var(--list--item-color,));
536
- --itemhighlighttext: var(
537
- --list--selectedopensummary-color,
538
- var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
539
- );
540
- --itemactivetext: var(
541
- --list--selectedopensummary-color,
542
- var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
543
- );
527
+ --itemhighlighttext: var(--list--selectedopensummary-color, var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,))));
528
+ --itemactivetext: var(--list--selectedopensummary-color, var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,))));
544
529
  }
545
530
  table-view:not(table-view table-view, list-view table-view, [is=form-view] table-view) > [is=disclosure-group], [is=form-view]:not([is=form-view] [is=form-view], list-view [is=form-view], table-view [is=form-view], [is=tab-bar] > [is=form-view]) > [is=disclosure-group], list-view:not(list-view list-view, [is=form-view] list-view, table-view list-view) > [is=disclosure-group],
546
531
  table-view:not(table-view table-view, list-view table-view, [is=form-view] table-view) > section-view > [is=disclosure-group],
@@ -562,14 +547,8 @@
562
547
  var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
563
548
  );
564
549
  --itemtext: var(--list--rootsummary-color, var(--list--item-color,));
565
- --itemhighlighttext: var(
566
- --list--selectedrootsummary-color,
567
- var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
568
- );
569
- --itemactivetext: var(
570
- --list--selectedrootsummary-color,
571
- var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,)))
572
- );
550
+ --itemhighlighttext: var(--list--selectedrootsummary-color, var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,))));
551
+ --itemactivetext: var(--list--selectedrootsummary-color, var(--list--selectedsummary-color, var(--list--highlighteditem-color, var(--list--item-color,))));
573
552
  --itempadistart: var(--list--rootsummary-padding-inline-start, var(--list--item-padding-inline-start,));
574
553
  --itempadiend: var(--list--rootsummary-padding-inline-end, var(--list--item-padding-inline-end,));
575
554
  --itempadbstart: var(--list--rootsummary-padding-block-start, var(--list--item-padding-block-start,));
@@ -582,17 +561,11 @@
582
561
  --itemface: var(--list--rootsummary-background-color, var(--list--opensummary-background-color, var(--list--item-background-color,)));
583
562
  --itemhighlightface: var(
584
563
  --list--selectedrootsummary-background-color,
585
- var(
586
- --list--selectedopensummary-background-color,
587
- var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
588
- )
564
+ var(--list--selectedopensummary-background-color, var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,))))
589
565
  );
590
566
  --itemactiveface: var(
591
567
  --list--selectedrootsummary-background-color,
592
- var(
593
- --list--selectedopensummary-background-color,
594
- var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,)))
595
- )
568
+ var(--list--selectedopensummary-background-color, var(--list--selectedsummary-background-color, var(--list--highlighteditem-background-color, var(--list--item-background-color,))))
596
569
  );
597
570
  --itemtext: var(--list--rootsummary-color, var(--list--opensummary-color, var(--list--item-color,)));
598
571
  --itemhighlighttext: var(
@@ -1057,6 +1030,7 @@
1057
1030
  [is=glass-prominent-button]:not([hidden]),
1058
1031
  list-view:not([hidden]),
1059
1032
  table-view:not([hidden]),
1033
+ content-unavailable-view:not([hidden]),
1060
1034
  tool-bar-item:not([hidden]),
1061
1035
  tool-bar-item-group:not([hidden]),
1062
1036
  sidebar-toggle:not([hidden]),
@@ -1072,6 +1046,9 @@
1072
1046
  picker-view:not([hidden])) {
1073
1047
  display: grid;
1074
1048
  }
1049
+ :where(content-unavailable-view)::part(content-unavailable-title-stack),
1050
+ :where(content-unavailable-view)::part(content-unavailable-description-stack),
1051
+ :where(content-unavailable-view)::part(content-unavailable-actions-stack),
1075
1052
  :where(table-view)::part(table-container),
1076
1053
  :where(table-view)::part(table-column-stack),
1077
1054
  :where(table-view)::part(table-header-stack),
@@ -1526,6 +1503,31 @@
1526
1503
  }
1527
1504
  }
1528
1505
  }
1506
+ @layer sw-components {
1507
+ :where(content-unavailable-view) {
1508
+ place-content: center;
1509
+ place-items: center;
1510
+ text-align: center;
1511
+ row-gap: 1rem;
1512
+ }
1513
+ :where(content-unavailable-view)::part(content-unavailable-actions-stack) {
1514
+ row-gap: 0.2rem;
1515
+ }
1516
+ :where(content-unavailable-view)::part(content-unavailable-title-stack) {
1517
+ --label-flow: vertical;
1518
+ --label-font: title3;
1519
+ }
1520
+ content-unavailable-view > :not([slot]) {
1521
+ --label-image-size: 5rem;
1522
+ --label-gap: 1rem;
1523
+ }
1524
+ :where(content-unavailable-view:not(:has(> [slot=description])))::part(content-unavailable-description-stack) {
1525
+ display: none;
1526
+ }
1527
+ :where(content-unavailable-view:not(:has(> [slot=actions])))::part(content-unavailable-actions-stack) {
1528
+ display: none;
1529
+ }
1530
+ }
1529
1531
  @layer sw-components {
1530
1532
  :where([is=confirmation-dialog]) {
1531
1533
  inset-inline: 0px;
@@ -1723,32 +1725,14 @@
1723
1725
  scroll-view-proxy:has(> v-stack, > h-stack) > h-stack[distribution=leading] > :not([slot])) {
1724
1726
  scroll-snap-align: start;
1725
1727
  }
1726
- :where(scroll-view-proxy:has(> v-stack, > h-stack) > v-stack,
1727
- scroll-view-proxy:has(> v-stack, > h-stack) > h-stack)::before {
1728
- grid-column: 1/-1;
1729
- grid-row: 1/-1;
1730
- content: "";
1731
- display: inline-grid;
1732
- block-size: 1px;
1733
- inline-size: 1px;
1734
- z-index: -1;
1735
- pointer-events: none;
1736
- position: absolute;
1737
- }
1738
1728
  :where(scroll-view-proxy:has(> v-stack, > h-stack) > v-stack) {
1739
1729
  overflow: clip auto;
1740
1730
  scroll-snap-type: block mandatory;
1741
1731
  }
1742
- :where(scroll-view-proxy:has(> v-stack, > h-stack) > v-stack)::before {
1743
- block-size: calc(100cqb + 1px);
1744
- }
1745
1732
  :where(scroll-view-proxy:has(> v-stack, > h-stack) > h-stack) {
1746
1733
  overflow: auto clip;
1747
1734
  scroll-snap-type: inline mandatory;
1748
1735
  }
1749
- :where(scroll-view-proxy:has(> v-stack, > h-stack) > h-stack)::before {
1750
- inline-size: calc(100cqi + 1px);
1751
- }
1752
1736
  :where(scroll-view-proxy:has(> v-stack, > h-stack) > h-stack[padding]) {
1753
1737
  scroll-padding-inline: 1rem;
1754
1738
  }
@@ -1757,8 +1741,8 @@
1757
1741
  :where(h-stack) {
1758
1742
  grid-auto-flow: column;
1759
1743
  grid-template-rows: minmax(0, 1fr);
1760
- place-items: center;
1761
- place-content: center;
1744
+ place-items: safe center;
1745
+ place-content: safe center;
1762
1746
  gap: 1rem;
1763
1747
  }
1764
1748
  :where(h-stack[template="minmax(0,1fr) auto"]) {
@@ -1777,10 +1761,19 @@
1777
1761
  @layer sw-components {
1778
1762
  :where(v-stack) {
1779
1763
  grid-template-columns: minmax(0, 1fr);
1780
- place-items: center;
1781
- place-content: center;
1764
+ place-items: safe center;
1765
+ place-content: safe center;
1782
1766
  gap: 1rem;
1783
1767
  }
1768
+ :where(v-stack[template="auto auto minmax(0,1fr)"]) {
1769
+ grid-template-rows: auto auto minmax(0, 1fr);
1770
+ }
1771
+ :where(v-stack[template="auto minmax(0,1fr)"]) {
1772
+ grid-template-rows: auto minmax(0, 1fr);
1773
+ }
1774
+ :where(v-stack[template="auto auto autominmax(0,1fr)"]) {
1775
+ grid-template-rows: auto auto autominmax(0, 1fr);
1776
+ }
1784
1777
  }
1785
1778
  @layer sw-components {
1786
1779
  :where(v-flex-stack) {
@@ -1947,6 +1940,11 @@
1947
1940
  }
1948
1941
  }
1949
1942
  @layer sw-components {}
1943
+ @layer sw-utils {
1944
+ :where([is=plain-button]) {
1945
+ text-align: center;
1946
+ }
1947
+ }
1950
1948
  @layer sw-components {
1951
1949
  :where([is=borderless-button][role=destructive]) {
1952
1950
  --accentColor: var(--red);
@@ -1956,6 +1954,11 @@
1956
1954
  --accentColor5: var(--red5);
1957
1955
  }
1958
1956
  }
1957
+ @layer sw-utils {
1958
+ :where([is=borderless-button]) {
1959
+ text-align: center;
1960
+ }
1961
+ }
1959
1962
  @layer sw-components {
1960
1963
  @media (pointer: fine) {
1961
1964
  :where([is=bordered-button]) {
@@ -1970,6 +1973,11 @@
1970
1973
  --accentColor5: var(--red5);
1971
1974
  }
1972
1975
  }
1976
+ @layer sw-utils {
1977
+ :where([is=bordered-button]) {
1978
+ text-align: center;
1979
+ }
1980
+ }
1973
1981
  @layer sw-components {
1974
1982
  :where([is=bordered-prominent-button][role=destructive]) {
1975
1983
  --accentColor: var(--red);
@@ -1979,6 +1987,11 @@
1979
1987
  --accentColor5: var(--red5);
1980
1988
  }
1981
1989
  }
1990
+ @layer sw-utils {
1991
+ :where([is=bordered-prominent-button]) {
1992
+ text-align: center;
1993
+ }
1994
+ }
1982
1995
  @layer sw-components {
1983
1996
  :where([is=glass-button]) {
1984
1997
  backdrop-filter: var(--liquid-glass-backdrop-filter);
@@ -1993,6 +2006,11 @@
1993
2006
  --accentColor5: var(--red5);
1994
2007
  }
1995
2008
  }
2009
+ @layer sw-utils {
2010
+ :where([is=glass-button]) {
2011
+ text-align: center;
2012
+ }
2013
+ }
1996
2014
  @layer sw-components {
1997
2015
  :where([is=glass-prominent-button]) {
1998
2016
  backdrop-filter: var(--liquid-glass-backdrop-filter);
@@ -2007,6 +2025,11 @@
2007
2025
  --accentColor5: var(--red5);
2008
2026
  }
2009
2027
  }
2028
+ @layer sw-utils {
2029
+ :where([is=glass-prominent-button]) {
2030
+ text-align: center;
2031
+ }
2032
+ }
2010
2033
  @layer sw-components {
2011
2034
  :where(tool-bar) {
2012
2035
  pointer-events: none;
@@ -2065,6 +2088,16 @@
2065
2088
  }
2066
2089
  }
2067
2090
  }
2091
+ @property --label-gap {
2092
+ syntax: "<length>";
2093
+ inherits: false;
2094
+ initial-value: 0;
2095
+ }
2096
+ @property --label-image-size {
2097
+ syntax: "<length>";
2098
+ inherits: false;
2099
+ initial-value: 0;
2100
+ }
2068
2101
  @layer sw-components {
2069
2102
  :where(label-view) {
2070
2103
  align-items: var(--label--host-align-items, );
@@ -2072,6 +2105,8 @@
2072
2105
  grid-template-columns: var(--label--host-grid-template-columns, );
2073
2106
  grid-template-rows: var(--label--host-grid-template-rows, );
2074
2107
  gap: var(--label--host-gap, );
2108
+ --label-image-size: 2rem;
2109
+ --label-imagestack-fontsize: var(--label-image-size);
2075
2110
  white-space: var(--label--host-white-space, );
2076
2111
  }
2077
2112
  :where(label-view)::part(label-image-stack), :where(label-view)::part(label-title-stack) {
@@ -2086,8 +2121,8 @@
2086
2121
  }
2087
2122
  :where(label-view)::part(label-image-stack) {
2088
2123
  aspect-ratio: 1/1;
2089
- inline-size: var(--label-image-size, 2rem);
2090
- font-size: var(--label-image-size, 2rem);
2124
+ inline-size: var(--label-imagestack-fontsize);
2125
+ font-size: var(--label-imagestack-fontsize);
2091
2126
  }
2092
2127
  :where(label-view)::part(label-title-stack) {
2093
2128
  text-decoration: underline;
@@ -2125,31 +2160,20 @@
2125
2160
  --label--host-grid-template-columns: if(
2126
2161
  style(--label-style: icon-only): minmax(0, 1fr) ; style(--label-style: title-only): minmax(0, 1fr) ;
2127
2162
  style(--label-style: title-and-icon): if(style(--label-flow: vertical): minmax(0, 1fr) ; else: auto minmax(0, 1fr) ;) ;
2128
- else: if(
2129
- style(--label--has-icon: yes) and style(--label--has-title: yes): if(style(--label-flow: vertical): minmax(0, 1fr) ; else: auto minmax(0, 1fr) ;)
2130
- ; else: minmax(0, 1fr) ;
2131
- )
2132
- ;
2163
+ else: if(style(--label--has-icon: yes) and style(--label--has-title: yes): if(style(--label-flow: vertical): minmax(0, 1fr) ; else: auto minmax(0, 1fr) ;) ; else: minmax(0, 1fr) ;) ;
2133
2164
  );
2134
2165
  --label--host-grid-template-rows: if(
2135
2166
  style(--label-style: icon-only): minmax(0, 1fr) ; style(--label-style: title-only): minmax(0, 1fr) ;
2136
2167
  style(--label-style: title-and-icon): if(style(--label-flow: vertical): auto minmax(0, 1fr) ; else: minmax(0, 1fr) ;) ;
2137
- else: if(
2138
- style(--label--has-icon: yes) and style(--label--has-title: yes): if(style(--label-flow: vertical): auto minmax(0, 1fr) ; else: minmax(0, 1fr) ;)
2139
- ; else: minmax(0, 1fr) ;
2140
- )
2141
- ;
2142
- );
2143
- --label--host-gap: if(
2144
- style(--label-style: title-and-icon): 0.3rem ; else: if(style(--label--has-icon: yes) and style(--label--has-title: yes): 0.3rem ;) ;
2168
+ else: if(style(--label--has-icon: yes) and style(--label--has-title: yes): if(style(--label-flow: vertical): auto minmax(0, 1fr) ; else: minmax(0, 1fr) ;) ; else: minmax(0, 1fr) ;) ;
2145
2169
  );
2170
+ --label-gap: if(style(--label-style: title-and-icon): 0.3rem ; else: if(style(--label--has-icon: yes) and style(--label--has-title: yes): 0.3rem ;) ;);
2171
+ --label--host-gap: if(style(--label-style: title-and-icon): var(--label-gap) ; else: if(style(--label--has-icon: yes) and style(--label--has-title: yes): var(--label-gap) ;) ;);
2146
2172
  --label--iconstack-display: if(
2147
- style(--label-style: icon-only): grid ; style(--label-style: title-only): none ; style(--label-style: title-and-icon): grid ;
2148
- else: if(style(--label--has-icon: yes): grid ; else: none;) ;
2173
+ style(--label-style: icon-only): grid ; style(--label-style: title-only): none ; style(--label-style: title-and-icon): grid ; else: if(style(--label--has-icon: yes): grid ; else: none;) ;
2149
2174
  );
2150
2175
  --label--titlestack-display: if(
2151
- style(--label-style: icon-only): none ; style(--label-style: title-only): grid ; style(--label-style: title-and-icon): grid ;
2152
- else: if(style(--label--has-title: yes): grid ; else: none;) ;
2176
+ style(--label-style: icon-only): none ; style(--label-style: title-only): grid ; style(--label-style: title-and-icon): grid ; else: if(style(--label--has-title: yes): grid ; else: none;) ;
2153
2177
  );
2154
2178
  }
2155
2179
  }
@@ -2173,7 +2197,8 @@
2173
2197
  --label--host-grid-template-rows: minmax(0, 1fr);
2174
2198
  --label--host-align-items: center;
2175
2199
  --label--host-justify-items: normal;
2176
- --label--host-gap: 0.3rem;
2200
+ --label-gap: 0.3rem;
2201
+ --label--host-gap: var(--label-gap);
2177
2202
  --label--iconstack-display: grid;
2178
2203
  --label--titlestack-display: grid;
2179
2204
  }
@@ -2192,7 +2217,8 @@
2192
2217
  --label--host-grid-template-rows: minmax(0, 1fr);
2193
2218
  --label--host-align-items: center;
2194
2219
  --label--host-justify-items: normal;
2195
- --label--host-gap: 0.3rem;
2220
+ --label-gap: 0.3rem;
2221
+ --label--host-gap: var(--label-gap);
2196
2222
  --label--iconstack-display: grid;
2197
2223
  --label--titlestack-display: grid;
2198
2224
  }
@@ -2203,7 +2229,8 @@
2203
2229
  --label--host-grid-template-rows: minmax(0, 1fr);
2204
2230
  --label--host-align-items: center;
2205
2231
  --label--host-justify-items: normal;
2206
- --label--host-gap: 0.3rem;
2232
+ --label-gap: 0.3rem;
2233
+ --label--host-gap: var(--label-gap);
2207
2234
  --label--iconstack-display: grid;
2208
2235
  --label--titlestack-display: grid;
2209
2236
  }
@@ -2235,7 +2262,8 @@
2235
2262
  --label--host-grid-template-rows: auto minmax(0, 1fr);
2236
2263
  --label--host-align-items: normal;
2237
2264
  --label--host-justify-items: center;
2238
- --label--host-gap: 0.3rem;
2265
+ --label-gap: 0.3rem;
2266
+ --label--host-gap: var(--label-gap);
2239
2267
  --label--iconstack-display: grid;
2240
2268
  --label--titlestack-display: grid;
2241
2269
  }
@@ -2255,7 +2283,8 @@
2255
2283
  --label--host-grid-template-rows: auto minmax(0, 1fr);
2256
2284
  --label--host-align-items: normal;
2257
2285
  --label--host-justify-items: center;
2258
- --label--host-gap: 0.3rem;
2286
+ --label-gap: 0.3rem;
2287
+ --label--host-gap: var(--label-gap);
2259
2288
  --label--iconstack-display: grid;
2260
2289
  --label--titlestack-display: grid;
2261
2290
  }
@@ -2267,7 +2296,8 @@
2267
2296
  --label--host-grid-template-rows: auto minmax(0, 1fr);
2268
2297
  --label--host-align-items: normal;
2269
2298
  --label--host-justify-items: center;
2270
- --label--host-gap: 0.3rem;
2299
+ --label-gap: 0.3rem;
2300
+ --label--host-gap: var(--label-gap);
2271
2301
  --label--iconstack-display: grid;
2272
2302
  --label--titlestack-display: grid;
2273
2303
  }
@@ -5251,61 +5281,61 @@
5251
5281
  @layer sw-utils {
5252
5282
  h-stack[distribution=leading],
5253
5283
  v-flex-stack[distribution=leading] {
5254
- justify-items: start;
5255
- justify-content: start;
5284
+ justify-items: start ;
5285
+ justify-content: start ;
5256
5286
  }
5257
5287
  h-stack[distribution="leading fill"],
5258
5288
  v-flex-stack[distribution="leading fill"] {
5259
- justify-items: start;
5260
- justify-content: stretch;
5289
+ justify-items: start ;
5290
+ justify-content: stretch ;
5261
5291
  }
5262
5292
  h-stack[distribution=center],
5263
5293
  v-flex-stack[distribution=center] {
5264
- justify-items: center;
5265
- justify-content: center;
5294
+ justify-items: safe center ;
5295
+ justify-content: safe center ;
5266
5296
  }
5267
5297
  h-stack[distribution=trailing],
5268
5298
  v-flex-stack[distribution=trailing] {
5269
- justify-items: end;
5270
- justify-content: end;
5299
+ justify-items: end ;
5300
+ justify-content: end ;
5271
5301
  }
5272
5302
  h-stack[distribution=fill],
5273
5303
  v-flex-stack[distribution=fill] {
5274
- justify-items: stretch;
5275
- justify-content: stretch;
5304
+ justify-items: stretch ;
5305
+ justify-content: stretch ;
5276
5306
  }
5277
5307
  h-stack[distribution=space-between],
5278
5308
  v-flex-stack[distribution=space-between] {
5279
- justify-content: space-between;
5309
+ justify-content: space-between ;
5280
5310
  }
5281
5311
  h-stack[alignment=leading],
5282
5312
  v-flex-stack[alignment=leading] {
5283
- align-items: start;
5284
- align-content: start;
5313
+ align-items: start ;
5314
+ align-content: start ;
5285
5315
  }
5286
5316
  h-stack[alignment="leading fill"],
5287
5317
  v-flex-stack[alignment="leading fill"] {
5288
- align-items: start;
5289
- align-content: stretch;
5318
+ align-items: start ;
5319
+ align-content: stretch ;
5290
5320
  }
5291
5321
  h-stack[alignment=center],
5292
5322
  v-flex-stack[alignment=center] {
5293
- align-items: center;
5294
- align-content: center;
5323
+ align-items: center ;
5324
+ align-content: center ;
5295
5325
  }
5296
5326
  h-stack[alignment=trailing],
5297
5327
  v-flex-stack[alignment=trailing] {
5298
- align-items: end;
5299
- align-content: end;
5328
+ align-items: end ;
5329
+ align-content: end ;
5300
5330
  }
5301
5331
  h-stack[alignment=fill],
5302
5332
  v-flex-stack[alignment=fill] {
5303
- align-items: stretch;
5304
- align-content: stretch;
5333
+ align-items: stretch ;
5334
+ align-content: stretch ;
5305
5335
  }
5306
5336
  h-stack[alignment=space-between],
5307
5337
  v-flex-stack[alignment=space-between] {
5308
- align-content: space-between;
5338
+ align-content: space-between ;
5309
5339
  }
5310
5340
  h-stack[placement="fill leading"],
5311
5341
  v-flex-stack[placement="fill leading"] {
@@ -5320,61 +5350,66 @@
5320
5350
  }
5321
5351
  v-stack[distribution=leading],
5322
5352
  h-flex-stack[distribution=leading] {
5323
- align-items: start;
5324
- align-content: start;
5353
+ align-items: start ;
5354
+ align-content: start ;
5325
5355
  }
5326
5356
  v-stack[distribution="leading fill"],
5327
5357
  h-flex-stack[distribution="leading fill"] {
5328
- align-items: start;
5329
- align-content: stretch;
5358
+ align-items: start ;
5359
+ align-content: stretch ;
5330
5360
  }
5331
5361
  v-stack[distribution=center],
5332
5362
  h-flex-stack[distribution=center] {
5333
- align-items: center;
5334
- align-content: center;
5363
+ align-items: center ;
5364
+ align-content: center ;
5335
5365
  }
5336
5366
  v-stack[distribution=trailing],
5337
5367
  h-flex-stack[distribution=trailing] {
5338
- align-items: end;
5339
- align-content: end;
5368
+ align-items: end ;
5369
+ align-content: end ;
5340
5370
  }
5341
5371
  v-stack[distribution=fill],
5342
5372
  h-flex-stack[distribution=fill] {
5343
- align-items: stretch;
5344
- align-content: stretch;
5373
+ align-items: stretch ;
5374
+ align-content: stretch ;
5345
5375
  }
5346
5376
  v-stack[distribution=space-between],
5347
5377
  h-flex-stack[distribution=space-between] {
5348
- align-content: space-between;
5378
+ align-content: space-between ;
5349
5379
  }
5350
5380
  v-stack[alignment=leading],
5351
5381
  h-flex-stack[alignment=leading] {
5352
- justify-items: start;
5353
- justify-content: start;
5382
+ justify-items: start ;
5383
+ justify-content: start ;
5354
5384
  }
5355
5385
  v-stack[alignment="leading fill"],
5356
5386
  h-flex-stack[alignment="leading fill"] {
5357
- justify-items: start;
5358
- justify-content: stretch;
5387
+ justify-items: start ;
5388
+ justify-content: stretch ;
5359
5389
  }
5360
5390
  v-stack[alignment=center],
5361
5391
  h-flex-stack[alignment=center] {
5362
- justify-items: center;
5363
- justify-content: center;
5392
+ justify-items: safe center ;
5393
+ justify-content: safe center ;
5364
5394
  }
5365
5395
  v-stack[alignment=trailing],
5366
5396
  h-flex-stack[alignment=trailing] {
5367
- justify-items: end;
5368
- justify-content: end;
5397
+ justify-items: end ;
5398
+ justify-content: end ;
5369
5399
  }
5370
5400
  v-stack[alignment=fill],
5371
5401
  h-flex-stack[alignment=fill] {
5372
- justify-items: stretch;
5373
- justify-content: stretch;
5402
+ justify-items: stretch ;
5403
+ justify-content: stretch ;
5374
5404
  }
5375
5405
  v-stack[alignment=space-between],
5376
5406
  h-flex-stack[alignment=space-between] {
5377
- justify-content: space-between;
5407
+ justify-content: space-between ;
5408
+ }
5409
+ v-stack[placement=fill],
5410
+ h-flex-stack[placement=fill] {
5411
+ place-items: stretch ;
5412
+ place-content: stretch ;
5378
5413
  }
5379
5414
  v-stack[placement="leading fill"],
5380
5415
  h-flex-stack[placement="leading fill"] {
@@ -5545,23 +5580,33 @@
5545
5580
  }
5546
5581
  :where(v-stack[padding],
5547
5582
  h-stack[padding],
5583
+ h-flex-stack[padding],
5548
5584
  v-flex-stack[padding]) {
5549
5585
  padding-inline: 1rem;
5550
5586
  }
5551
5587
  :where(scroll-view > v-stack[padding],
5552
5588
  scroll-view > h-stack[padding],
5589
+ scroll-view > h-flex-stack[padding],
5553
5590
  scroll-view > v-flex-stack[padding]) {
5554
5591
  padding-block-end: 1rem;
5555
5592
  }
5556
5593
  :where(v-stack > [padding]:not(v-stack,
5557
5594
  h-stack,
5595
+ h-flex-stack,
5558
5596
  v-flex-stack), v-stack > [is=disclosure-group] > summary[padding],
5559
5597
  h-stack > [padding]:not(v-stack,
5560
5598
  h-stack,
5599
+ h-flex-stack,
5561
5600
  v-flex-stack),
5562
5601
  h-stack > [is=disclosure-group] > summary[padding],
5602
+ h-flex-stack > [padding]:not(v-stack,
5603
+ h-stack,
5604
+ h-flex-stack,
5605
+ v-flex-stack),
5606
+ h-flex-stack > [is=disclosure-group] > summary[padding],
5563
5607
  v-flex-stack > [padding]:not(v-stack,
5564
5608
  h-stack,
5609
+ h-flex-stack,
5565
5610
  v-flex-stack),
5566
5611
  v-flex-stack > [is=disclosure-group] > summary[padding]) {
5567
5612
  margin-inline: 1rem;
@@ -7466,4 +7511,18 @@
7466
7511
  transition-duration: 100ms;
7467
7512
  }
7468
7513
  }
7514
+ @media (pointer: coarse) {
7515
+ :where(tab-view > [is=sidebar-view][touch-glass]) {
7516
+ --sidebar-view-scale: scale(1.02);
7517
+ transition-duration: 100ms;
7518
+ }
7519
+ :where(tab-view > sidebar-toggle > *[touch-glass]) {
7520
+ --toolbar-cell-scale: scale(1.07);
7521
+ transition-duration: 100ms;
7522
+ }
7523
+ :where(tab-view > [is=sidebar-view] > tool-bar > sidebar-toggle > *[touch-glass]) {
7524
+ --toolbar-cell-scale: scale(1.07);
7525
+ transition-duration: 100ms;
7526
+ }
7527
+ }
7469
7528
  }
@@ -1,18 +1,26 @@
1
+ import { en } from './locales';
1
2
  type LocaleInput = Intl.UnicodeBCP47LocaleIdentifier | Intl.Locale;
2
- type I18nProps = {
3
- tag?: LocaleInput;
4
- options?: Intl.LocaleOptions;
5
- locale: Intl.Locale;
6
- decimalSeparator: string;
7
- dateSeparator: string;
8
- dateOrder: string[];
3
+ type DeepStringify<T> = {
4
+ [K in keyof T]: T[K] extends object ? DeepStringify<T[K]> : string;
9
5
  };
6
+ export declare function defineTranslations<const T extends object>(factory: () => T): () => T;
7
+ type EnTranslations = DeepStringify<ReturnType<typeof en>>;
8
+ /**
9
+ * @fires localechange - On html[lang] change!
10
+ */
10
11
  export declare class I18n {
11
12
  #private;
12
13
  static on: EventTarget;
13
- static _props: I18nProps;
14
- static get tag(): LocaleInput | undefined;
15
- static set tag(val: LocaleInput | undefined);
14
+ /**
15
+ * Register a translation factory for a language.
16
+ * Call this before the language is first needed.
17
+ *
18
+ * @example
19
+ * I18n.register('el', () => ({ SearchUnavailableContent: { … } }))
20
+ */
21
+ static register(lang: string, factory: () => EnTranslations): void;
22
+ static get tag(): LocaleInput;
23
+ static set tag(val: LocaleInput);
16
24
  static get options(): Intl.LocaleOptions | undefined;
17
25
  static set options(val: Intl.LocaleOptions | undefined);
18
26
  static get locale(): Intl.Locale;
@@ -20,5 +28,7 @@ export declare class I18n {
20
28
  static get dateSeparator(): string;
21
29
  static get dateOrder(): string[];
22
30
  static setOwnConfig(options?: Intl.LocaleOptions): void;
31
+ /** Look up a top-level translation key for the current language, falling back to 'en'. */
32
+ static t<K extends keyof EnTranslations>(key: K): EnTranslations[K];
23
33
  }
24
34
  export {};