@scalewing/react 0.7.0 → 1.0.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 (74) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +1 -1
  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/Inline.js +1 -1
  9. package/dist/components/Stack.js +1 -1
  10. package/dist/css/breakpoints.d.ts +8 -0
  11. package/dist/css/breakpoints.js +11 -0
  12. package/dist/css/css-accordion.d.ts +2 -0
  13. package/dist/css/css-accordion.js +33 -0
  14. package/dist/css/css-action-menu.d.ts +2 -0
  15. package/dist/css/css-action-menu.js +95 -0
  16. package/dist/css/css-button.d.ts +7 -0
  17. package/dist/css/css-button.js +68 -0
  18. package/dist/css/css-chart.d.ts +2 -0
  19. package/dist/css/css-chart.js +98 -0
  20. package/dist/css/css-checkbox.d.ts +2 -0
  21. package/dist/css/css-checkbox.js +127 -0
  22. package/dist/css/css-chrome.d.ts +2 -0
  23. package/dist/css/css-chrome.js +59 -0
  24. package/dist/css/css-components.d.ts +1 -0
  25. package/dist/css/css-components.js +130 -0
  26. package/dist/css/css-data.d.ts +7 -0
  27. package/dist/css/css-data.js +189 -0
  28. package/dist/css/css-date-field.d.ts +2 -0
  29. package/dist/css/css-date-field.js +77 -0
  30. package/dist/css/css-dialog.d.ts +2 -0
  31. package/dist/css/css-dialog.js +29 -0
  32. package/dist/css/css-document.d.ts +1 -0
  33. package/dist/css/css-document.js +102 -0
  34. package/dist/css/css-field.d.ts +2 -0
  35. package/dist/css/css-field.js +33 -0
  36. package/dist/css/css-filter-chips.d.ts +2 -0
  37. package/dist/css/css-filter-chips.js +92 -0
  38. package/dist/css/css-palettes.d.ts +4 -0
  39. package/dist/css/css-palettes.js +52 -0
  40. package/dist/css/css-progress.d.ts +2 -0
  41. package/dist/css/css-progress.js +77 -0
  42. package/dist/css/css-radio-group.d.ts +2 -0
  43. package/dist/css/css-radio-group.js +148 -0
  44. package/dist/css/css-responsive.d.ts +2 -0
  45. package/dist/css/css-responsive.js +12 -0
  46. package/dist/css/css-select.d.ts +2 -0
  47. package/dist/css/css-select.js +134 -0
  48. package/dist/css/css-separator.d.ts +2 -0
  49. package/dist/css/css-separator.js +26 -0
  50. package/dist/css/css-spinner.d.ts +2 -0
  51. package/dist/css/css-spinner.js +45 -0
  52. package/dist/css/css-split.d.ts +2 -0
  53. package/dist/css/css-split.js +67 -0
  54. package/dist/css/css-switch.d.ts +2 -0
  55. package/dist/css/css-switch.js +115 -0
  56. package/dist/css/css-toast.d.ts +2 -0
  57. package/dist/css/css-toast.js +92 -0
  58. package/dist/css/css-tooltip.d.ts +2 -0
  59. package/dist/css/css-tooltip.js +35 -0
  60. package/dist/css/css-utilities.d.ts +1 -0
  61. package/dist/css/css-utilities.js +57 -0
  62. package/dist/css/css-variables.d.ts +2 -0
  63. package/dist/css/css-variables.js +61 -0
  64. package/dist/css/spacing-classes.d.ts +10 -0
  65. package/dist/css/spacing-classes.js +40 -0
  66. package/dist/css/stylesheet.d.ts +3 -0
  67. package/dist/css/stylesheet.js +75 -0
  68. package/dist/index.d.ts +3 -1
  69. package/dist/index.js +2 -1
  70. package/dist/spacing-classes.js +1 -1
  71. package/dist/styles.css +8 -0
  72. package/dist/visibility-classes.d.ts +6 -0
  73. package/dist/visibility-classes.js +7 -0
  74. package/package.json +3 -3
@@ -0,0 +1,52 @@
1
+ import { colorsForPalette, createTheme, paletteHasStylesheet, palettesWithStylesheets, semanticColorKeys, } from '@scalewing/tokens';
2
+ function paletteCustomProperties(id, scheme) {
3
+ const overlay = colorsForPalette(id, scheme);
4
+ const theme = createTheme({ colorScheme: scheme, palette: id });
5
+ const lines = [];
6
+ for (const key of semanticColorKeys) {
7
+ if (overlay[key]) {
8
+ lines.push(` --sw-color-${key}: ${theme.colors[key]};`);
9
+ }
10
+ }
11
+ lines.push(` --sw-glass-blur: ${theme.glass.blur}px;`);
12
+ lines.push(` --sw-glass-saturate: ${theme.glass.saturate};`);
13
+ lines.push(` --sw-glass-fill: ${theme.glass.fill};`);
14
+ lines.push(` --sw-glass-border: ${theme.glass.border};`);
15
+ lines.push(` --sw-glass-specular: ${theme.glass.specular};`);
16
+ return lines.join('\n');
17
+ }
18
+ export function cssPaletteAttributes() {
19
+ return palettesWithStylesheets()
20
+ .map((palette) => {
21
+ const light = paletteCustomProperties(palette.id, 'light');
22
+ const dark = paletteCustomProperties(palette.id, 'dark');
23
+ return `[data-theme='light'][data-palette='${palette.id}'] {
24
+ ${light}
25
+ }
26
+
27
+ [data-theme='dark'][data-palette='${palette.id}'] {
28
+ ${dark}
29
+ }`;
30
+ })
31
+ .join('\n\n');
32
+ }
33
+ export function generatePaletteStylesheet(id) {
34
+ if (!paletteHasStylesheet(id)) {
35
+ throw new Error(`Palette ${id} is the default and has no overlay stylesheet`);
36
+ }
37
+ const light = paletteCustomProperties(id, 'light');
38
+ const dark = paletteCustomProperties(id, 'dark');
39
+ return `/* Generated by @scalewing/tokens. Do not edit by hand. */
40
+ :root,
41
+ [data-theme='light'] {
42
+ ${light}
43
+ }
44
+
45
+ [data-theme='dark'] {
46
+ ${dark}
47
+ }
48
+ `;
49
+ }
50
+ export function paletteStylesheetIds() {
51
+ return palettesWithStylesheets().map((palette) => palette.id);
52
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssProgressClasses(): string;
2
+ export declare function progressClassCatalog(): string[];
@@ -0,0 +1,77 @@
1
+ import { typographyVariants } from '@scalewing/tokens';
2
+ const label = typographyVariants.label;
3
+ const caption = typographyVariants.caption;
4
+ export function cssProgressClasses() {
5
+ return `.sw-progress {
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: var(--sw-space-2);
9
+ max-width: 100%;
10
+ min-width: 0;
11
+ width: 100%;
12
+ }
13
+
14
+ .sw-progress-accent { --sw-progress-color: var(--sw-color-accent); }
15
+ .sw-progress-success { --sw-progress-color: var(--sw-color-success); }
16
+ .sw-progress-danger { --sw-progress-color: var(--sw-color-danger); }
17
+
18
+ .sw-progress-heading {
19
+ align-items: baseline;
20
+ display: flex;
21
+ gap: var(--sw-space-2);
22
+ justify-content: space-between;
23
+ min-width: 0;
24
+ }
25
+
26
+ .sw-progress-label {
27
+ color: var(--sw-color-text);
28
+ font-family: var(--sw-font-sans);
29
+ font-size: ${label.fontSize}px;
30
+ font-weight: ${label.fontWeight};
31
+ line-height: ${label.lineHeight}px;
32
+ min-width: 0;
33
+ }
34
+
35
+ .sw-progress-count {
36
+ color: var(--sw-color-muted);
37
+ flex: none;
38
+ font-family: var(--sw-font-sans);
39
+ font-size: ${caption.fontSize}px;
40
+ font-variant-numeric: tabular-nums;
41
+ line-height: ${caption.lineHeight}px;
42
+ }
43
+
44
+ .sw-progress-bar {
45
+ appearance: none;
46
+ background: var(--sw-color-border);
47
+ border: 0;
48
+ border-radius: var(--sw-radius-pill);
49
+ display: block;
50
+ height: var(--sw-space-2);
51
+ overflow: hidden;
52
+ width: 100%;
53
+ }
54
+
55
+ .sw-progress-bar::-webkit-progress-bar { background: var(--sw-color-border); }
56
+ .sw-progress-bar::-webkit-progress-value { background: var(--sw-progress-color); }
57
+ .sw-progress-bar::-moz-progress-bar { background: var(--sw-progress-color); }
58
+
59
+ @media (forced-colors: active) {
60
+ .sw-progress-bar { background: CanvasText; forced-color-adjust: auto; }
61
+ .sw-progress-bar::-webkit-progress-bar { background: Canvas; }
62
+ .sw-progress-bar::-webkit-progress-value { background: Highlight; }
63
+ .sw-progress-bar::-moz-progress-bar { background: Highlight; }
64
+ }`;
65
+ }
66
+ export function progressClassCatalog() {
67
+ return [
68
+ 'sw-progress',
69
+ 'sw-progress-accent',
70
+ 'sw-progress-success',
71
+ 'sw-progress-danger',
72
+ 'sw-progress-heading',
73
+ 'sw-progress-label',
74
+ 'sw-progress-count',
75
+ 'sw-progress-bar',
76
+ ];
77
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssRadioGroupClasses(): string;
2
+ export declare function radioGroupClassCatalog(): string[];
@@ -0,0 +1,148 @@
1
+ import { typographyVariants } from '@scalewing/tokens';
2
+ const label = typographyVariants.label;
3
+ const caption = typographyVariants.caption;
4
+ export function cssRadioGroupClasses() {
5
+ return `.sw-radio-group {
6
+ border: 0;
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--sw-space-2);
10
+ margin: 0;
11
+ max-width: 100%;
12
+ min-width: 0;
13
+ padding: 0;
14
+ }
15
+
16
+ .sw-radio-group-legend {
17
+ color: var(--sw-color-text);
18
+ font-family: var(--sw-font-sans);
19
+ font-size: ${label.fontSize}px;
20
+ font-weight: ${label.fontWeight};
21
+ line-height: ${label.lineHeight}px;
22
+ padding: 0;
23
+ }
24
+
25
+ .sw-radio-group-options {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: var(--sw-space-1);
29
+ min-width: 0;
30
+ }
31
+
32
+ .sw-radio-group-option {
33
+ align-items: center;
34
+ cursor: pointer;
35
+ display: inline-flex;
36
+ gap: var(--sw-space-2);
37
+ max-width: 100%;
38
+ min-height: var(--sw-control-md-min-height);
39
+ width: max-content;
40
+ }
41
+
42
+ .sw-radio-group-control {
43
+ align-items: center;
44
+ display: inline-flex;
45
+ flex: 0 0 var(--sw-space-5);
46
+ height: var(--sw-space-5);
47
+ position: relative;
48
+ }
49
+
50
+ .sw-radio-group-input {
51
+ cursor: inherit;
52
+ height: 100%;
53
+ inset: 0;
54
+ margin: 0;
55
+ opacity: 0;
56
+ position: absolute;
57
+ width: 100%;
58
+ }
59
+
60
+ .sw-radio-group-mark {
61
+ background: var(--sw-glass-fill);
62
+ border: 1px solid var(--sw-color-border);
63
+ border-radius: var(--sw-radius-pill);
64
+ box-sizing: border-box;
65
+ height: var(--sw-space-5);
66
+ pointer-events: none;
67
+ position: relative;
68
+ width: var(--sw-space-5);
69
+ }
70
+
71
+ .sw-radio-group-mark::after {
72
+ background: var(--sw-color-surface);
73
+ border-radius: var(--sw-radius-pill);
74
+ content: '';
75
+ display: none;
76
+ height: var(--sw-space-2);
77
+ inset-block-start: calc((var(--sw-space-5) - var(--sw-space-2)) / 2);
78
+ inset-inline-start: calc((var(--sw-space-5) - var(--sw-space-2)) / 2);
79
+ position: absolute;
80
+ width: var(--sw-space-2);
81
+ }
82
+
83
+ .sw-radio-group-input:checked + .sw-radio-group-mark {
84
+ background: var(--sw-color-accent);
85
+ border-color: var(--sw-color-accent);
86
+ }
87
+
88
+ .sw-radio-group-input:checked + .sw-radio-group-mark::after { display: block; }
89
+
90
+ .sw-radio-group-input:focus-visible + .sw-radio-group-mark {
91
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
92
+ outline-offset: var(--sw-focus-ring-offset);
93
+ }
94
+
95
+ .sw-radio-group:has(.sw-radio-group-error) .sw-radio-group-mark {
96
+ border-color: var(--sw-color-danger);
97
+ }
98
+
99
+ .sw-radio-group-option:has(.sw-radio-group-input:disabled) {
100
+ cursor: not-allowed;
101
+ opacity: var(--sw-disabled-opacity);
102
+ }
103
+
104
+ .sw-radio-group-text {
105
+ color: var(--sw-color-text);
106
+ font-family: var(--sw-font-sans);
107
+ font-size: ${label.fontSize}px;
108
+ font-weight: ${label.fontWeight};
109
+ line-height: ${label.lineHeight}px;
110
+ min-width: 0;
111
+ }
112
+
113
+ .sw-radio-group-description,
114
+ .sw-radio-group-error {
115
+ font-family: var(--sw-font-sans);
116
+ font-size: ${caption.fontSize}px;
117
+ line-height: ${caption.lineHeight}px;
118
+ }
119
+
120
+ .sw-radio-group-description { color: var(--sw-color-muted); }
121
+ .sw-radio-group-error { color: var(--sw-color-danger); }
122
+
123
+ @media (prefers-reduced-transparency: reduce) {
124
+ .sw-radio-group-mark { background: var(--sw-color-surface); }
125
+ .sw-radio-group-input:checked + .sw-radio-group-mark { background: var(--sw-color-accent); }
126
+ }
127
+
128
+ @media (forced-colors: active) {
129
+ .sw-radio-group-mark { background: Canvas; border-color: CanvasText; }
130
+ .sw-radio-group-input:checked + .sw-radio-group-mark { background: Highlight; border-color: Highlight; }
131
+ .sw-radio-group-input:checked + .sw-radio-group-mark::after { background: HighlightText; }
132
+ .sw-radio-group:has(.sw-radio-group-error) .sw-radio-group-mark { border-color: CanvasText; }
133
+ }`;
134
+ }
135
+ export function radioGroupClassCatalog() {
136
+ return [
137
+ 'sw-radio-group',
138
+ 'sw-radio-group-legend',
139
+ 'sw-radio-group-options',
140
+ 'sw-radio-group-option',
141
+ 'sw-radio-group-control',
142
+ 'sw-radio-group-input',
143
+ 'sw-radio-group-mark',
144
+ 'sw-radio-group-text',
145
+ 'sw-radio-group-description',
146
+ 'sw-radio-group-error',
147
+ ];
148
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssResponsiveClasses(): string;
2
+ export declare function responsiveClassCatalog(): string[];
@@ -0,0 +1,12 @@
1
+ import { breakpointQuery, breakpoints, hideClass, } from './breakpoints.js';
2
+ const directions = ['from', 'below'];
3
+ export function cssResponsiveClasses() {
4
+ return breakpoints
5
+ .flatMap((breakpoint) => directions.map((direction) => `@media ${breakpointQuery(direction, breakpoint)} {
6
+ .${hideClass(direction, breakpoint)} { display: none; }
7
+ }`))
8
+ .join('\n\n');
9
+ }
10
+ export function responsiveClassCatalog() {
11
+ return breakpoints.flatMap((breakpoint) => directions.map((direction) => hideClass(direction, breakpoint)));
12
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssSelectClasses(): string;
2
+ export declare function selectClassCatalog(): string[];
@@ -0,0 +1,134 @@
1
+ import { typographyVariants } from '@scalewing/tokens';
2
+ const caption = typographyVariants.caption;
3
+ const label = typographyVariants.label;
4
+ const chevronImage = `background-image:
5
+ linear-gradient(45deg, transparent 50%, var(--sw-color-muted) 50%),
6
+ linear-gradient(135deg, var(--sw-color-muted) 50%, transparent 50%);
7
+ background-repeat: no-repeat;
8
+ background-size: var(--sw-space-1) var(--sw-space-1),
9
+ var(--sw-space-1) var(--sw-space-1);`;
10
+ export function cssSelectClasses() {
11
+ return `.sw-select {
12
+ max-width: 100%;
13
+ width: max-content;
14
+ }
15
+
16
+ .sw-select-control {
17
+ position: relative;
18
+ }
19
+
20
+ .sw-select-trigger {
21
+ appearance: none;
22
+ -webkit-appearance: none;
23
+ background-color: var(--sw-glass-fill);
24
+ ${chevronImage}
25
+ background-position:
26
+ calc(100% - var(--sw-space-4)) calc(50% - 1px),
27
+ calc(100% - calc(var(--sw-space-4) - var(--sw-space-1))) calc(50% - 1px);
28
+ border: 1px solid var(--sw-color-border);
29
+ border-radius: var(--sw-radius-sm);
30
+ box-sizing: border-box;
31
+ color: var(--sw-color-text);
32
+ cursor: pointer;
33
+ display: inline-flex;
34
+ font-family: inherit;
35
+ font-size: inherit;
36
+ letter-spacing: inherit;
37
+ line-height: inherit;
38
+ margin: 0;
39
+ min-height: var(--sw-control-md-min-height);
40
+ padding-block: 0;
41
+ padding-inline: var(--sw-control-md-padding-inline);
42
+ padding-inline-end: calc(
43
+ var(--sw-control-md-padding-inline) + var(--sw-space-5)
44
+ );
45
+ text-align: start;
46
+ white-space: nowrap;
47
+ }
48
+
49
+ .sw-select-trigger:focus {
50
+ box-shadow: none;
51
+ outline: none;
52
+ }
53
+
54
+ .sw-select-trigger:focus-visible {
55
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
56
+ outline-offset: var(--sw-focus-ring-offset);
57
+ }
58
+
59
+ .sw-select-xs .sw-select-trigger {
60
+ background-position:
61
+ calc(100% - var(--sw-space-3)) calc(50% - 1px),
62
+ calc(100% - calc(var(--sw-space-3) - var(--sw-space-1))) calc(50% - 1px);
63
+ font-size: ${caption.fontSize}px;
64
+ letter-spacing: ${caption.letterSpacing}px;
65
+ line-height: ${caption.lineHeight}px;
66
+ min-height: var(--sw-control-xs-min-height);
67
+ padding-inline: var(--sw-control-xs-padding-inline);
68
+ padding-inline-end: calc(
69
+ var(--sw-control-xs-padding-inline) + var(--sw-space-5)
70
+ );
71
+ }
72
+
73
+ .sw-select-list {
74
+ background: var(--sw-glass-fill);
75
+ border: 1px solid var(--sw-glass-border);
76
+ border-radius: var(--sw-radius-sm);
77
+ box-shadow: var(--sw-elevation-sm), inset 0 1px 0 var(--sw-glass-specular);
78
+ backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
79
+ -webkit-backdrop-filter: blur(var(--sw-glass-blur)) saturate(var(--sw-glass-saturate));
80
+ box-sizing: border-box;
81
+ color: var(--sw-color-text);
82
+ inset-inline-start: 0;
83
+ margin: var(--sw-space-1) 0 0;
84
+ max-height: var(--sw-select-max);
85
+ max-width: var(--sw-dialog-max);
86
+ min-width: 100%;
87
+ overflow: auto;
88
+ padding: var(--sw-space-1);
89
+ position: absolute;
90
+ width: max-content;
91
+ z-index: 3;
92
+ }
93
+
94
+ .sw-select-option {
95
+ border-radius: var(--sw-radius-sm);
96
+ box-sizing: border-box;
97
+ cursor: pointer;
98
+ display: flex;
99
+ align-items: center;
100
+ min-height: var(--sw-control-xs-min-height);
101
+ padding-inline: var(--sw-control-xs-padding-inline);
102
+ }
103
+
104
+ .sw-select-option[aria-selected='true'] {
105
+ font-weight: ${label.fontWeight};
106
+ }
107
+
108
+ .sw-select-option[data-active='true'] {
109
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
110
+ }
111
+
112
+ .sw-select-xs .sw-select-option {
113
+ font-size: ${caption.fontSize}px;
114
+ letter-spacing: ${caption.letterSpacing}px;
115
+ line-height: ${caption.lineHeight}px;
116
+ }
117
+
118
+ .sw-select-action {
119
+ border-top: 1px solid var(--sw-color-border);
120
+ color: var(--sw-color-accent);
121
+ margin-top: var(--sw-space-1);
122
+ }`;
123
+ }
124
+ export function selectClassCatalog() {
125
+ return [
126
+ 'sw-select',
127
+ 'sw-select-xs',
128
+ 'sw-select-control',
129
+ 'sw-select-trigger',
130
+ 'sw-select-list',
131
+ 'sw-select-option',
132
+ 'sw-select-action',
133
+ ];
134
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssSeparatorClasses(): string;
2
+ export declare function separatorClassCatalog(): string[];
@@ -0,0 +1,26 @@
1
+ export function cssSeparatorClasses() {
2
+ return `.sw-separator {
3
+ background: var(--sw-color-border);
4
+ border: 0;
5
+ flex: none;
6
+ margin: 0;
7
+ }
8
+
9
+ .sw-separator-horizontal {
10
+ height: 1px;
11
+ width: 100%;
12
+ }
13
+
14
+ .sw-separator-vertical {
15
+ align-self: stretch;
16
+ min-height: var(--sw-space-4);
17
+ width: 1px;
18
+ }
19
+
20
+ @media (forced-colors: active) {
21
+ .sw-separator { background: CanvasText; }
22
+ }`;
23
+ }
24
+ export function separatorClassCatalog() {
25
+ return ['sw-separator', 'sw-separator-horizontal', 'sw-separator-vertical'];
26
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssSpinnerClasses(): string;
2
+ export declare function spinnerClassCatalog(): string[];
@@ -0,0 +1,45 @@
1
+ export function cssSpinnerClasses() {
2
+ return `.sw-spinner {
3
+ align-items: center;
4
+ display: inline-flex;
5
+ flex: none;
6
+ justify-content: center;
7
+ vertical-align: middle;
8
+ }
9
+
10
+ .sw-spinner-sm { --sw-spinner-size: var(--sw-space-4); }
11
+ .sw-spinner-md { --sw-spinner-size: var(--sw-space-6); }
12
+ .sw-spinner-lg { --sw-spinner-size: var(--sw-space-8); }
13
+
14
+ .sw-spinner-icon {
15
+ animation: sw-spinner-rotate var(--sw-motion-travel) var(--sw-motion-travel-easing) infinite;
16
+ border: var(--sw-focus-ring-width) solid var(--sw-color-border);
17
+ border-block-start-color: var(--sw-color-accent);
18
+ border-radius: var(--sw-radius-pill);
19
+ box-sizing: border-box;
20
+ display: block;
21
+ height: var(--sw-spinner-size);
22
+ width: var(--sw-spinner-size);
23
+ }
24
+
25
+ @keyframes sw-spinner-rotate {
26
+ to { transform: rotate(360deg); }
27
+ }
28
+
29
+ @media (prefers-reduced-motion: reduce) {
30
+ .sw-spinner-icon { animation: none; }
31
+ }
32
+
33
+ @media (forced-colors: active) {
34
+ .sw-spinner-icon { border-color: CanvasText; border-block-start-color: Highlight; }
35
+ }`;
36
+ }
37
+ export function spinnerClassCatalog() {
38
+ return [
39
+ 'sw-spinner',
40
+ 'sw-spinner-sm',
41
+ 'sw-spinner-md',
42
+ 'sw-spinner-lg',
43
+ 'sw-spinner-icon',
44
+ ];
45
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssSplitClasses(): string;
2
+ export declare function splitClassCatalog(): string[];
@@ -0,0 +1,67 @@
1
+ export function cssSplitClasses() {
2
+ return `.sw-split {
3
+ align-items: stretch;
4
+ align-self: start;
5
+ display: flex;
6
+ flex: 0 0 auto;
7
+ flex-direction: row;
8
+ min-width: 0;
9
+ }
10
+
11
+ .sw-split-pane {
12
+ box-sizing: border-box;
13
+ max-width: var(--sw-split-max);
14
+ min-width: 0;
15
+ overflow: auto;
16
+ width: var(--sw-split-size);
17
+ }
18
+
19
+ .sw-split[data-collapsed] .sw-split-pane {
20
+ display: none;
21
+ }
22
+
23
+ .sw-split-handle {
24
+ align-items: flex-start;
25
+ background: transparent;
26
+ border: 0;
27
+ box-sizing: border-box;
28
+ cursor: col-resize;
29
+ display: flex;
30
+ flex: none;
31
+ justify-content: center;
32
+ margin: 0;
33
+ min-height: var(--sw-control-md-min-height);
34
+ min-width: var(--sw-control-xs-min-height);
35
+ padding: var(--sw-space-5) 0 0;
36
+ touch-action: none;
37
+ user-select: none;
38
+ }
39
+
40
+ .sw-split-handle:hover,
41
+ .sw-split-handle:focus-visible {
42
+ background: color-mix(in srgb, var(--sw-color-muted) 16%, transparent);
43
+ }
44
+
45
+ .sw-split-handle:focus-visible {
46
+ outline: var(--sw-focus-ring-width) solid var(--sw-color-accent);
47
+ outline-offset: var(--sw-focus-ring-offset);
48
+ }
49
+
50
+ .sw-split[data-collapsed] .sw-split-handle {
51
+ cursor: e-resize;
52
+ }
53
+
54
+ .sw-split-grip {
55
+ border-inline-end: var(--sw-focus-ring-width) solid var(--sw-color-muted);
56
+ border-inline-start: var(--sw-focus-ring-width) solid var(--sw-color-muted);
57
+ box-sizing: border-box;
58
+ display: block;
59
+ height: var(--sw-space-6);
60
+ position: sticky;
61
+ top: var(--sw-space-5);
62
+ width: var(--sw-space-2);
63
+ }`;
64
+ }
65
+ export function splitClassCatalog() {
66
+ return ['sw-split', 'sw-split-pane', 'sw-split-handle', 'sw-split-grip'];
67
+ }
@@ -0,0 +1,2 @@
1
+ export declare function cssSwitchClasses(): string;
2
+ export declare function switchClassCatalog(): string[];