@scalewing/react 0.7.0 → 1.1.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 (96) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +12 -2
  3. package/dist/components/Badge.d.ts +2 -1
  4. package/dist/components/Badge.js +2 -1
  5. package/dist/components/Box.d.ts +3 -2
  6. package/dist/components/Box.js +3 -2
  7. package/dist/components/Button.js +1 -1
  8. package/dist/components/DenominationGrid.d.ts +3 -0
  9. package/dist/components/DenominationGrid.js +12 -0
  10. package/dist/components/FilterChips.d.ts +1 -0
  11. package/dist/components/FilterChips.js +9 -3
  12. package/dist/components/Grid.d.ts +11 -0
  13. package/dist/components/Grid.js +21 -0
  14. package/dist/components/Inline.js +1 -1
  15. package/dist/components/Stack.js +1 -1
  16. package/dist/components/Text.d.ts +3 -0
  17. package/dist/components/Text.js +2 -2
  18. package/dist/components/denomination-grid/DenominationStrip.d.ts +4 -0
  19. package/dist/components/denomination-grid/DenominationStrip.js +10 -0
  20. package/dist/components/denomination-grid/DenominationTiles.d.ts +4 -0
  21. package/dist/components/denomination-grid/DenominationTiles.js +13 -0
  22. package/dist/components/denomination-grid/types.d.ts +25 -0
  23. package/dist/components/denomination-grid/types.js +1 -0
  24. package/dist/components/denomination-grid/validate.d.ts +2 -0
  25. package/dist/components/denomination-grid/validate.js +18 -0
  26. package/dist/css/breakpoints.d.ts +8 -0
  27. package/dist/css/breakpoints.js +11 -0
  28. package/dist/css/css-accordion.d.ts +2 -0
  29. package/dist/css/css-accordion.js +33 -0
  30. package/dist/css/css-action-menu.d.ts +2 -0
  31. package/dist/css/css-action-menu.js +95 -0
  32. package/dist/css/css-button.d.ts +7 -0
  33. package/dist/css/css-button.js +68 -0
  34. package/dist/css/css-chart.d.ts +2 -0
  35. package/dist/css/css-chart.js +98 -0
  36. package/dist/css/css-checkbox.d.ts +2 -0
  37. package/dist/css/css-checkbox.js +127 -0
  38. package/dist/css/css-chrome.d.ts +2 -0
  39. package/dist/css/css-chrome.js +59 -0
  40. package/dist/css/css-components.d.ts +1 -0
  41. package/dist/css/css-components.js +148 -0
  42. package/dist/css/css-data.d.ts +7 -0
  43. package/dist/css/css-data.js +189 -0
  44. package/dist/css/css-date-field.d.ts +2 -0
  45. package/dist/css/css-date-field.js +77 -0
  46. package/dist/css/css-denomination-grid.d.ts +2 -0
  47. package/dist/css/css-denomination-grid.js +213 -0
  48. package/dist/css/css-dialog.d.ts +2 -0
  49. package/dist/css/css-dialog.js +29 -0
  50. package/dist/css/css-document.d.ts +1 -0
  51. package/dist/css/css-document.js +102 -0
  52. package/dist/css/css-field.d.ts +2 -0
  53. package/dist/css/css-field.js +33 -0
  54. package/dist/css/css-filter-chips.d.ts +2 -0
  55. package/dist/css/css-filter-chips.js +116 -0
  56. package/dist/css/css-grid.d.ts +7 -0
  57. package/dist/css/css-grid.js +31 -0
  58. package/dist/css/css-palettes.d.ts +4 -0
  59. package/dist/css/css-palettes.js +52 -0
  60. package/dist/css/css-progress.d.ts +2 -0
  61. package/dist/css/css-progress.js +77 -0
  62. package/dist/css/css-radio-group.d.ts +2 -0
  63. package/dist/css/css-radio-group.js +148 -0
  64. package/dist/css/css-responsive.d.ts +2 -0
  65. package/dist/css/css-responsive.js +12 -0
  66. package/dist/css/css-select.d.ts +2 -0
  67. package/dist/css/css-select.js +134 -0
  68. package/dist/css/css-separator.d.ts +2 -0
  69. package/dist/css/css-separator.js +26 -0
  70. package/dist/css/css-spinner.d.ts +2 -0
  71. package/dist/css/css-spinner.js +45 -0
  72. package/dist/css/css-split.d.ts +2 -0
  73. package/dist/css/css-split.js +67 -0
  74. package/dist/css/css-switch.d.ts +2 -0
  75. package/dist/css/css-switch.js +115 -0
  76. package/dist/css/css-toast.d.ts +2 -0
  77. package/dist/css/css-toast.js +92 -0
  78. package/dist/css/css-tooltip.d.ts +2 -0
  79. package/dist/css/css-tooltip.js +35 -0
  80. package/dist/css/css-utilities.d.ts +1 -0
  81. package/dist/css/css-utilities.js +57 -0
  82. package/dist/css/css-variables.d.ts +2 -0
  83. package/dist/css/css-variables.js +61 -0
  84. package/dist/css/spacing-classes.d.ts +10 -0
  85. package/dist/css/spacing-classes.js +40 -0
  86. package/dist/css/stylesheet.d.ts +3 -0
  87. package/dist/css/stylesheet.js +82 -0
  88. package/dist/denomination-cells.d.ts +12 -0
  89. package/dist/denomination-cells.js +15 -0
  90. package/dist/index.d.ts +8 -2
  91. package/dist/index.js +5 -2
  92. package/dist/spacing-classes.js +1 -1
  93. package/dist/styles.css +231 -0
  94. package/dist/visibility-classes.d.ts +6 -0
  95. package/dist/visibility-classes.js +7 -0
  96. package/package.json +3 -3
package/dist/styles.css CHANGED
@@ -708,6 +708,10 @@ body {
708
708
  }
709
709
  }
710
710
 
711
+ .sw-text-align-start { text-align: start; }
712
+ .sw-text-align-center { text-align: center; }
713
+ .sw-text-align-end { text-align: end; }
714
+
711
715
  .sw-truncate {
712
716
  overflow: hidden;
713
717
  text-overflow: ellipsis;
@@ -726,6 +730,11 @@ body {
726
730
  .sw-text-caption { font-family: var(--sw-font-sans); font-size: 13px; line-height: 18px; font-weight: 400; letter-spacing: -0.08px; }
727
731
  .sw-text-data { font-family: var(--sw-font-sans); font-size: 13px; line-height: 18px; font-weight: 500; letter-spacing: -0.08px; font-variant-numeric: tabular-nums; }
728
732
 
733
+ @media not all and (min-width: 48rem) {
734
+ .sw-text-display { font-size: 32px; line-height: 38px; letter-spacing: -0.6px; }
735
+ .sw-text-heading { font-size: 24px; line-height: 30px; letter-spacing: -0.4px; }
736
+ }
737
+
729
738
  .sw-button {
730
739
  appearance: none;
731
740
  align-items: center;
@@ -1915,6 +1924,7 @@ body {
1915
1924
  display: inline-flex;
1916
1925
  font-family: var(--sw-font-sans);
1917
1926
  font-size: 15px;
1927
+ gap: var(--sw-space-2);
1918
1928
  line-height: 20px;
1919
1929
  min-height: var(--sw-control-md-min-height);
1920
1930
  min-width: 0;
@@ -1922,12 +1932,30 @@ body {
1922
1932
  padding: var(--sw-space-1) var(--sw-space-3);
1923
1933
  }
1924
1934
 
1935
+ .sw-filter-chip-count {
1936
+ color: var(--sw-color-muted);
1937
+ flex: none;
1938
+ font-size: 13px;
1939
+ font-variant-numeric: tabular-nums;
1940
+ font-weight: 500;
1941
+ letter-spacing: -0.08px;
1942
+ line-height: 18px;
1943
+ }
1944
+
1945
+ .sw-filter-chip-quiet:not(:has(.sw-filter-chip-input:checked)) .sw-filter-chip-face {
1946
+ opacity: var(--sw-quiet-opacity);
1947
+ }
1948
+
1925
1949
  .sw-filter-chip-input:checked + .sw-filter-chip-face {
1926
1950
  background: var(--sw-color-accent);
1927
1951
  border-color: var(--sw-color-accent);
1928
1952
  color: var(--sw-color-onAccent);
1929
1953
  }
1930
1954
 
1955
+ .sw-filter-chip-input:checked + .sw-filter-chip-face .sw-filter-chip-count {
1956
+ color: inherit;
1957
+ }
1958
+
1931
1959
  .sw-filter-chip-input:focus-visible + .sw-filter-chip-face {
1932
1960
  outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
1933
1961
  outline-offset: var(--sw-focus-ring-offset);
@@ -1942,6 +1970,201 @@ body {
1942
1970
  .sw-filter-chip-face { background: Canvas; border-color: CanvasText; color: CanvasText; }
1943
1971
  .sw-filter-chip-input:checked + .sw-filter-chip-face { background: Highlight; border-color: Highlight; color: HighlightText; }
1944
1972
  .sw-filter-chip-input:focus-visible + .sw-filter-chip-face { outline-color: Highlight; }
1973
+ .sw-filter-chip-count { color: inherit; }
1974
+ .sw-filter-chip-quiet:not(:has(.sw-filter-chip-input:checked)) .sw-filter-chip-face { opacity: 1; color: GrayText; border-color: GrayText; }
1975
+ }
1976
+
1977
+ .sw-grid {
1978
+ display: grid;
1979
+ min-width: 0;
1980
+ }
1981
+ .sw-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
1982
+ .sw-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1983
+ .sw-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
1984
+ .sw-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
1985
+ @media not all and (min-width: 48rem) {
1986
+ .sw-grid-cols-below-md-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
1987
+ .sw-grid-cols-below-md-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1988
+ .sw-grid-cols-below-md-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
1989
+ .sw-grid-cols-below-md-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
1990
+ }
1991
+ .sw-denomination-grid {
1992
+ color: var(--sw-color-text);
1993
+ font-family: var(--sw-font-sans);
1994
+ max-width: 100%;
1995
+ min-width: 0;
1996
+ }
1997
+
1998
+ .sw-denomination-row-neutral { --sw-denomination-tone: var(--sw-color-muted); }
1999
+ .sw-denomination-row-accent { --sw-denomination-tone: var(--sw-color-accent); }
2000
+ .sw-denomination-row-success { --sw-denomination-tone: var(--sw-color-success); }
2001
+ .sw-denomination-row-danger { --sw-denomination-tone: var(--sw-color-danger); }
2002
+
2003
+ .sw-denomination-strip {
2004
+ border-collapse: collapse;
2005
+ width: 100%;
2006
+ }
2007
+
2008
+ .sw-denomination-strip th,
2009
+ .sw-denomination-strip td {
2010
+ padding: var(--sw-space-1) var(--sw-space-2);
2011
+ vertical-align: middle;
2012
+ }
2013
+
2014
+ .sw-denomination-strip tbody tr {
2015
+ border-top: 1px solid var(--sw-color-border);
2016
+ }
2017
+
2018
+ .sw-denomination-head {
2019
+ color: var(--sw-color-muted);
2020
+ font-size: 13px;
2021
+ font-weight: 600;
2022
+ letter-spacing: -0.08px;
2023
+ line-height: 18px;
2024
+ text-align: end;
2025
+ }
2026
+
2027
+ .sw-denomination-corner {
2028
+ padding: 0;
2029
+ }
2030
+
2031
+ .sw-denomination-label {
2032
+ align-items: center;
2033
+ border-inline-start: var(--sw-space-1) solid var(--sw-denomination-tone);
2034
+ color: var(--sw-denomination-tone);
2035
+ display: flex;
2036
+ flex-wrap: wrap;
2037
+ font-size: 15px;
2038
+ font-weight: 600;
2039
+ gap: var(--sw-space-2);
2040
+ letter-spacing: -0.2px;
2041
+ line-height: 20px;
2042
+ min-width: 0;
2043
+ text-align: start;
2044
+ }
2045
+
2046
+ .sw-denomination-icon {
2047
+ display: inline-flex;
2048
+ flex: none;
2049
+ }
2050
+
2051
+ .sw-denomination-cell {
2052
+ color: var(--sw-color-text);
2053
+ font-size: 13px;
2054
+ font-variant-numeric: tabular-nums;
2055
+ font-weight: 600;
2056
+ letter-spacing: -0.08px;
2057
+ line-height: 18px;
2058
+ text-align: end;
2059
+ }
2060
+
2061
+ .sw-denomination-cell-zero {
2062
+ color: var(--sw-color-muted);
2063
+ font-weight: 500;
2064
+ opacity: var(--sw-quiet-opacity);
2065
+ }
2066
+
2067
+ .sw-denomination-row-signed .sw-denomination-cell-positive {
2068
+ color: var(--sw-color-success);
2069
+ }
2070
+
2071
+ .sw-denomination-cell-negative {
2072
+ color: var(--sw-color-danger);
2073
+ }
2074
+
2075
+ .sw-denomination-total {
2076
+ color: var(--sw-denomination-tone);
2077
+ font-size: 13px;
2078
+ font-variant-numeric: tabular-nums;
2079
+ font-weight: 600;
2080
+ letter-spacing: -0.08px;
2081
+ line-height: 18px;
2082
+ text-align: end;
2083
+ white-space: nowrap;
2084
+ }
2085
+
2086
+ .sw-denomination-total-inline {
2087
+ display: none;
2088
+ flex-basis: 100%;
2089
+ font-size: 13px;
2090
+ font-variant-numeric: tabular-nums;
2091
+ font-weight: 600;
2092
+ line-height: 18px;
2093
+ }
2094
+
2095
+ .sw-denomination-tiles {
2096
+ display: flex;
2097
+ flex-direction: column;
2098
+ gap: var(--sw-space-3);
2099
+ }
2100
+
2101
+ .sw-denomination-tiles .sw-denomination-label {
2102
+ border-inline-start: 0;
2103
+ }
2104
+
2105
+ .sw-denomination-tiles .sw-denomination-row {
2106
+ display: flex;
2107
+ flex-direction: column;
2108
+ gap: var(--sw-space-2);
2109
+ }
2110
+
2111
+ .sw-denomination-tile-list {
2112
+ display: grid;
2113
+ gap: var(--sw-space-2);
2114
+ grid-template-columns: repeat(auto-fit, minmax(var(--sw-space-8), 1fr));
2115
+ list-style: none;
2116
+ margin: 0;
2117
+ padding: 0;
2118
+ }
2119
+
2120
+ .sw-denomination-tile {
2121
+ align-items: center;
2122
+ background: var(--sw-color-surface);
2123
+ border: 1px solid var(--sw-color-border);
2124
+ border-radius: var(--sw-radius-md);
2125
+ display: flex;
2126
+ flex-direction: column;
2127
+ gap: var(--sw-space-1);
2128
+ min-width: 0;
2129
+ padding: var(--sw-space-3) var(--sw-space-2);
2130
+ }
2131
+
2132
+ .sw-denomination-tile .sw-denomination-head,
2133
+ .sw-denomination-tile .sw-denomination-cell {
2134
+ text-align: center;
2135
+ }
2136
+
2137
+ .sw-denomination-tile .sw-denomination-cell {
2138
+ font-size: 20px;
2139
+ letter-spacing: -0.3px;
2140
+ line-height: 28px;
2141
+ }
2142
+
2143
+ .sw-denomination-subtotal {
2144
+ color: var(--sw-color-muted);
2145
+ font-size: 13px;
2146
+ font-variant-numeric: tabular-nums;
2147
+ letter-spacing: -0.08px;
2148
+ line-height: 18px;
2149
+ text-align: center;
2150
+ }
2151
+
2152
+ @media not all and (min-width: 48rem) {
2153
+ .sw-denomination-strip .sw-denomination-total { display: none; }
2154
+ .sw-denomination-total-inline { display: block; }
2155
+ .sw-denomination-strip .sw-denomination-label { flex-direction: column; align-items: flex-start; gap: var(--sw-space-1); }
2156
+ .sw-denomination-strip th,
2157
+ .sw-denomination-strip td { padding: var(--sw-space-1); }
2158
+ .sw-denomination-tile-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
2159
+ }
2160
+
2161
+ @media (forced-colors: active) {
2162
+ .sw-denomination-label { border-inline-start-color: CanvasText; color: CanvasText; }
2163
+ .sw-denomination-cell-zero { color: GrayText; opacity: 1; }
2164
+ .sw-denomination-cell-negative,
2165
+ .sw-denomination-row-signed .sw-denomination-cell-positive,
2166
+ .sw-denomination-total { color: CanvasText; }
2167
+ .sw-denomination-tile { border-color: CanvasText; }
1945
2168
  }
1946
2169
 
1947
2170
  .sw-field-required { color: var(--sw-color-danger); }
@@ -2115,3 +2338,11 @@ body {
2115
2338
  translate: var(--sw-toast-to-x) var(--sw-toast-to-y);
2116
2339
  }
2117
2340
  }
2341
+
2342
+ @media (min-width: 48rem) {
2343
+ .sw-hide-from-md { display: none; }
2344
+ }
2345
+
2346
+ @media not all and (min-width: 48rem) {
2347
+ .sw-hide-below-md { display: none; }
2348
+ }
@@ -0,0 +1,6 @@
1
+ import { type Breakpoint } from './css/breakpoints.js';
2
+ export type VisibilityProps = {
3
+ hideBelow?: Breakpoint;
4
+ hideFrom?: Breakpoint;
5
+ };
6
+ export declare function visibilityClassNames({ hideBelow, hideFrom, }: VisibilityProps): string[];
@@ -0,0 +1,7 @@
1
+ import { hideClass } from './css/breakpoints.js';
2
+ export function visibilityClassNames({ hideBelow, hideFrom, }) {
3
+ return [
4
+ ...(hideBelow ? [hideClass('below', hideBelow)] : []),
5
+ ...(hideFrom ? [hideClass('from', hideFrom)] : []),
6
+ ];
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scalewing/react",
3
- "version": "0.7.0",
3
+ "version": "1.1.0",
4
4
  "description": "Scalewing DOM components and package-owned CSS utilities.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  "README.md"
39
39
  ],
40
40
  "dependencies": {
41
- "@scalewing/tokens": "0.7.0"
41
+ "@scalewing/tokens": "^1.1.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "react": "^19.0.0",
@@ -57,7 +57,7 @@
57
57
  "access": "public"
58
58
  },
59
59
  "scripts": {
60
- "build": "rm -rf dist && tsc -p tsconfig.json && cp ../tokens/dist/styles.css dist/styles.css && rm -rf dist/palette && mkdir -p dist/palette && cp ../tokens/dist/palette/*.css dist/palette/",
60
+ "build": "rm -rf dist && tsc -p tsconfig.json && node --import ./scripts/register-tokens-dist.mjs scripts/write-css.js",
61
61
  "test": "vitest run",
62
62
  "typecheck": "tsc -p tsconfig.json --noEmit"
63
63
  },