@tailor-platform/app-shell 1.15.0 → 1.17.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.
- package/dist/app-shell-core.css +1 -1
- package/dist/app-shell.d.ts +811 -131
- package/dist/app-shell.js +7155 -5797
- package/dist/{appshell-DLVBFo5J.js → appshell-CahhZy7v.js} +656 -524
- package/dist/semantic-contrast.test.ts +154 -0
- package/dist/style-entry.d.ts +147 -92
- package/dist/testing.d.ts +152 -95
- package/dist/testing.js +1 -1
- package/dist/theme-bridge.test.ts +101 -1
- package/dist/theme.bridge.css +91 -0
- package/dist/theme.css +6 -1
- package/dist/themes/_template.css +7 -1
- package/dist/themes/bloom.css +0 -6
- package/dist/themes/cream.css +0 -6
- package/dist/themes/default.css +389 -69
- package/dist/vite-plugin.d.ts +147 -92
- package/package.json +8 -8
- package/skills/app-shell-patterns/SKILL.md +108 -19
- package/skills/app-shell-patterns/references/api/create-ai-gateway-client.md +115 -0
- package/skills/app-shell-patterns/references/api/create-typed-paths.md +117 -0
- package/skills/app-shell-patterns/references/api/define-i18n-labels.md +143 -0
- package/skills/app-shell-patterns/references/api/define-module.md +247 -0
- package/skills/app-shell-patterns/references/api/define-resource.md +307 -0
- package/skills/app-shell-patterns/references/api/guards/hidden.md +202 -0
- package/skills/app-shell-patterns/references/api/guards/overview.md +354 -0
- package/skills/app-shell-patterns/references/api/guards/pass.md +129 -0
- package/skills/app-shell-patterns/references/api/guards/redirect-to.md +307 -0
- package/skills/app-shell-patterns/references/api/router/use-location.md +240 -0
- package/skills/app-shell-patterns/references/api/router/use-navigate.md +138 -0
- package/skills/app-shell-patterns/references/api/router/use-params.md +218 -0
- package/skills/app-shell-patterns/references/api/use-ai-chat.md +110 -0
- package/skills/app-shell-patterns/references/api/use-app-shell-config.md +132 -0
- package/skills/app-shell-patterns/references/api/use-app-shell-data.md +150 -0
- package/skills/app-shell-patterns/references/api/use-app-shell.md +150 -0
- package/skills/app-shell-patterns/references/api/use-auth.md +145 -0
- package/skills/app-shell-patterns/references/api/use-override-breadcrumb.md +74 -0
- package/skills/app-shell-patterns/references/api/use-page-meta.md +96 -0
- package/skills/app-shell-patterns/references/api/use-register-command-palette-actions.md +90 -0
- package/skills/app-shell-patterns/references/api/use-resolved-locale.md +67 -0
- package/skills/app-shell-patterns/references/api/use-route-error.md +214 -0
- package/skills/app-shell-patterns/references/api/use-theme.md +108 -0
- package/skills/app-shell-patterns/references/api/use-time-zone.md +80 -0
- package/skills/app-shell-patterns/references/api/use-toast.md +104 -0
- package/skills/app-shell-patterns/references/components/action-panel.md +168 -0
- package/skills/app-shell-patterns/references/components/activity-card.md +142 -0
- package/skills/app-shell-patterns/references/components/ai-chat.md +315 -0
- package/skills/app-shell-patterns/references/components/alert.md +202 -0
- package/skills/app-shell-patterns/references/components/app-shell.md +530 -0
- package/skills/app-shell-patterns/references/components/appearance-switcher.md +87 -0
- package/skills/app-shell-patterns/references/components/attachment.md +138 -0
- package/skills/app-shell-patterns/references/components/autocomplete.md +278 -0
- package/skills/app-shell-patterns/references/components/avatar.md +80 -0
- package/skills/app-shell-patterns/references/components/badge.md +309 -0
- package/skills/app-shell-patterns/references/components/button.md +164 -0
- package/skills/app-shell-patterns/references/components/card.md +181 -0
- package/skills/app-shell-patterns/references/components/checkbox.md +169 -0
- package/skills/app-shell-patterns/references/components/combobox.md +318 -0
- package/skills/app-shell-patterns/references/components/command-palette.md +413 -0
- package/skills/app-shell-patterns/references/components/csv-importer.md +214 -0
- package/skills/app-shell-patterns/references/components/data-table.md +1168 -0
- package/skills/app-shell-patterns/references/components/date-picker.md +259 -0
- package/skills/app-shell-patterns/references/components/default-header.md +75 -0
- package/skills/app-shell-patterns/references/components/default-sidebar.md +136 -0
- package/skills/app-shell-patterns/references/components/description-card.md +569 -0
- package/skills/app-shell-patterns/references/components/dialog.md +164 -0
- package/skills/app-shell-patterns/references/components/document-progress-card.md +154 -0
- package/skills/app-shell-patterns/references/components/filter-rail.md +165 -0
- package/skills/app-shell-patterns/references/components/form.md +378 -0
- package/skills/app-shell-patterns/references/components/global-header-layout.md +132 -0
- package/skills/app-shell-patterns/references/components/grid.md +184 -0
- package/skills/app-shell-patterns/references/components/input.md +83 -0
- package/skills/app-shell-patterns/references/components/layout.md +539 -0
- package/skills/app-shell-patterns/references/components/menu.md +218 -0
- package/skills/app-shell-patterns/references/components/metric-card.md +94 -0
- package/skills/app-shell-patterns/references/components/select.md +283 -0
- package/skills/app-shell-patterns/references/components/sheet.md +237 -0
- package/skills/app-shell-patterns/references/components/sidebar-group.md +472 -0
- package/skills/app-shell-patterns/references/components/sidebar-item.md +458 -0
- package/skills/app-shell-patterns/references/components/sidebar-layout.md +258 -0
- package/skills/app-shell-patterns/references/components/sidebar-section.md +114 -0
- package/skills/app-shell-patterns/references/components/spinner.md +81 -0
- package/skills/app-shell-patterns/references/components/table.md +188 -0
- package/skills/app-shell-patterns/references/components/tabs.md +158 -0
- package/skills/app-shell-patterns/references/components/textarea.md +122 -0
- package/skills/app-shell-patterns/references/components/timeline.md +317 -0
- package/skills/app-shell-patterns/references/components/toolbar.md +138 -0
- package/skills/app-shell-patterns/references/components/tooltip.md +144 -0
- package/skills/app-shell-patterns/references/components/with-guard.md +445 -0
- package/skills/app-shell-patterns/references/concepts/authentication.md +301 -0
- package/skills/app-shell-patterns/references/concepts/custom-components.md +59 -0
- package/skills/app-shell-patterns/references/concepts/file-based-routing.md +356 -0
- package/skills/app-shell-patterns/references/{fundamental → concepts}/graphql.md +31 -18
- package/skills/app-shell-patterns/references/concepts/modules-and-resources.md +229 -0
- package/skills/app-shell-patterns/references/concepts/routing-navigation.md +425 -0
- package/skills/app-shell-patterns/references/concepts/sidebar-navigation.md +420 -0
- package/skills/app-shell-patterns/references/concepts/styling-theming.md +785 -0
- package/skills/app-shell-patterns/references/migrations.md +55 -0
- package/skills/app-shell-patterns/references/pages/{detail.md → document-detail.md} +10 -33
- package/skills/app-shell-patterns/references/patterns/form-composer.md +43 -45
- package/skills/app-shell-patterns/references/patterns/form-modal.md +37 -92
- package/skills/app-shell-patterns/references/patterns/form-sectioned.md +12 -38
- package/skills/app-shell-patterns/references/patterns/form-single-page.md +11 -32
- package/skills/app-shell-patterns/references/patterns/form-wizard.md +12 -53
- package/skills/app-shell-patterns/references/patterns/interaction-confirm.md +11 -27
- package/skills/app-shell-patterns/references/patterns/interaction-multi-select.md +136 -139
- package/skills/app-shell-patterns/references/patterns/interaction-toast.md +10 -34
- package/skills/app-shell-patterns/references/patterns/list-dense-scan.md +13 -88
- package/skills/app-shell-patterns/references/fundamental/components.md +0 -1009
- package/skills/app-shell-patterns/references/fundamental/design-system.md +0 -440
|
@@ -14,6 +14,9 @@ const here = dirname(fileURLToPath(import.meta.url));
|
|
|
14
14
|
const bridge = readFileSync(join(here, "theme.bridge.css"), "utf8");
|
|
15
15
|
const defaultTheme = readFileSync(join(here, "themes/default.css"), "utf8");
|
|
16
16
|
|
|
17
|
+
/** Semantic colour roles: 5 intents x 8 roles, named `--{intent}-{role}`. */
|
|
18
|
+
const SEMANTIC_PREFIX = "(?:info|success|warning|danger|neutral)";
|
|
19
|
+
|
|
17
20
|
/** Token names defined in the default palette for a given prefix, e.g. `alert`. */
|
|
18
21
|
function definedTokens(prefix: string): string[] {
|
|
19
22
|
const matches = defaultTheme.matchAll(new RegExp(`^\\s*--(${prefix}-[a-z-]+):`, "gm"));
|
|
@@ -29,7 +32,11 @@ function bridgedTokens(prefix: string): Map<string, string> {
|
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
describe("theme bridge", () => {
|
|
32
|
-
describe.each([
|
|
35
|
+
describe.each([
|
|
36
|
+
["alert", "alert"],
|
|
37
|
+
["status", "status"],
|
|
38
|
+
["semantic colour role", SEMANTIC_PREFIX],
|
|
39
|
+
])("--%s-* tokens", (_label, prefix) => {
|
|
33
40
|
const defined = definedTokens(prefix);
|
|
34
41
|
const bridged = bridgedTokens(prefix);
|
|
35
42
|
|
|
@@ -56,4 +63,97 @@ describe("theme bridge", () => {
|
|
|
56
63
|
// both files — fails loudly.
|
|
57
64
|
expect(bridgedTokens("alert").size).toBe(20);
|
|
58
65
|
});
|
|
66
|
+
|
|
67
|
+
it("bridges all 40 semantic colour roles", () => {
|
|
68
|
+
// 5 intents x 8 roles, pinned for the same reason as the alert count.
|
|
69
|
+
expect(bridgedTokens(SEMANTIC_PREFIX).size).toBe(40);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe("typography roles", () => {
|
|
73
|
+
const slots = ["size", "line-height", "weight", "letter-spacing"] as const;
|
|
74
|
+
/** `--app-shell-type-<role>-<slot>` variables in the default palette, grouped by role. */
|
|
75
|
+
const defined = new Map<string, Map<string, string>>();
|
|
76
|
+
for (const m of defaultTheme.matchAll(
|
|
77
|
+
/^\s*--app-shell-type-([a-z-]+)-(size|line-height|weight|letter-spacing):\s*([^;]+);/gm,
|
|
78
|
+
)) {
|
|
79
|
+
const role = m[1];
|
|
80
|
+
defined.set(role, (defined.get(role) ?? new Map()).set(m[2], m[3].trim()));
|
|
81
|
+
}
|
|
82
|
+
/** Bridge entries `--text-<role>[--<suffix>]: var(--app-shell-type-...)`, keyed by property name. */
|
|
83
|
+
const bridgedText = new Map(
|
|
84
|
+
[...bridge.matchAll(/^\s*(--text-[a-z-]+):\s*var\((--app-shell-type-[a-z-]+)\);/gm)].map(
|
|
85
|
+
(m) => [m[1], m[2]],
|
|
86
|
+
),
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
it("pins the role count at 10", () => {
|
|
90
|
+
// Dropping a whole role from both files would still pass the symmetry checks.
|
|
91
|
+
expect(defined.size).toBe(10);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it("defines exactly four variables per role", () => {
|
|
95
|
+
for (const [role, values] of defined) {
|
|
96
|
+
expect([...values.keys()].toSorted(), role).toEqual([...slots].toSorted());
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("bridges every role slot to its own variable", () => {
|
|
101
|
+
const suffix = {
|
|
102
|
+
size: "",
|
|
103
|
+
"line-height": "--line-height",
|
|
104
|
+
weight: "--font-weight",
|
|
105
|
+
"letter-spacing": "--letter-spacing",
|
|
106
|
+
} as const;
|
|
107
|
+
const expected = new Map<string, string>();
|
|
108
|
+
for (const role of defined.keys()) {
|
|
109
|
+
for (const slot of slots) {
|
|
110
|
+
expected.set(`--text-${role}${suffix[slot]}`, `--app-shell-type-${role}-${slot}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
expect(bridgedText).toEqual(expected);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("does not collide with a --color-* token that Tailwind resolves first", () => {
|
|
117
|
+
// `text-<name>` resolves against --color-<name> before --text-<name>.
|
|
118
|
+
const colors = [...bridge.matchAll(/^\s*--color-([a-z0-9-]+):/gm)].map((m) => m[1]);
|
|
119
|
+
for (const role of defined.keys()) {
|
|
120
|
+
expect(colors, role).not.toContain(role);
|
|
121
|
+
}
|
|
122
|
+
for (const name of colors) {
|
|
123
|
+
expect(name).not.toMatch(/^(heading|body|label|code)(-|$)/);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("keeps the line boxes on the spec values", () => {
|
|
128
|
+
// size (px) x line-height ratio = line box (px); weight and letter spacing are pinned too. Values from decisions/typography-roles.md.
|
|
129
|
+
const spec: Record<
|
|
130
|
+
string,
|
|
131
|
+
[size: number, lineBox: number, weight: number, letterSpacing: string]
|
|
132
|
+
> = {
|
|
133
|
+
"heading-lg": [24, 32, 700, "-0.025em"],
|
|
134
|
+
"heading-md": [18, 28, 600, "0em"],
|
|
135
|
+
"heading-sm": [14, 20, 600, "0em"],
|
|
136
|
+
"body-md": [14, 20, 400, "0em"],
|
|
137
|
+
"body-sm": [12, 16, 400, "0em"],
|
|
138
|
+
"label-md": [14, 20, 500, "0em"],
|
|
139
|
+
"label-sm": [12, 16, 500, "0em"],
|
|
140
|
+
"code-sm": [12, 18, 400, "0em"],
|
|
141
|
+
"body-md-relaxed": [14, 24, 400, "0em"],
|
|
142
|
+
"body-sm-relaxed": [12, 20, 400, "0em"],
|
|
143
|
+
};
|
|
144
|
+
expect([...defined.keys()].toSorted()).toEqual(Object.keys(spec).toSorted());
|
|
145
|
+
for (const [role, [size, lineBox, weight, letterSpacing]] of Object.entries(spec)) {
|
|
146
|
+
const values = defined.get(role)!;
|
|
147
|
+
const rem = /^([0-9.]+)rem$/.exec(values.get("size") ?? "");
|
|
148
|
+
expect(rem, `${role} size`).not.toBeNull();
|
|
149
|
+
expect(Number(rem![1]) * 16, `${role} size`).toBe(size);
|
|
150
|
+
const ratio = /^calc\((\d+) \/ (\d+)\)$/.exec(values.get("line-height") ?? "");
|
|
151
|
+
expect(ratio, `${role} line-height`).not.toBeNull();
|
|
152
|
+
expect(Number(ratio![2]), `${role} ratio base`).toBe(size);
|
|
153
|
+
expect(Number(ratio![1]), `${role} line box`).toBe(lineBox);
|
|
154
|
+
expect(Number(values.get("weight")), `${role} weight`).toBe(weight);
|
|
155
|
+
expect(values.get("letter-spacing"), `${role} letter-spacing`).toBe(letterSpacing);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
});
|
|
59
159
|
});
|
package/dist/theme.bridge.css
CHANGED
|
@@ -36,6 +36,56 @@
|
|
|
36
36
|
sans-serif
|
|
37
37
|
);
|
|
38
38
|
|
|
39
|
+
/*
|
|
40
|
+
* Typography roles. `text-heading-lg` sets font-size, line-height, font-weight and
|
|
41
|
+
* letter-spacing together. The values live in themes/default.css and are referenced
|
|
42
|
+
* with `var()` here, like the colors: `@theme inline` writes literals into the
|
|
43
|
+
* utility, so a value placed here could not be overridden on `:root`.
|
|
44
|
+
*
|
|
45
|
+
* The `--text-*` namespace cannot set font-family. `text-code-sm` is used with
|
|
46
|
+
* `font-mono`.
|
|
47
|
+
*/
|
|
48
|
+
--text-heading-lg: var(--app-shell-type-heading-lg-size);
|
|
49
|
+
--text-heading-lg--line-height: var(--app-shell-type-heading-lg-line-height);
|
|
50
|
+
--text-heading-lg--font-weight: var(--app-shell-type-heading-lg-weight);
|
|
51
|
+
--text-heading-lg--letter-spacing: var(--app-shell-type-heading-lg-letter-spacing);
|
|
52
|
+
--text-heading-md: var(--app-shell-type-heading-md-size);
|
|
53
|
+
--text-heading-md--line-height: var(--app-shell-type-heading-md-line-height);
|
|
54
|
+
--text-heading-md--font-weight: var(--app-shell-type-heading-md-weight);
|
|
55
|
+
--text-heading-md--letter-spacing: var(--app-shell-type-heading-md-letter-spacing);
|
|
56
|
+
--text-heading-sm: var(--app-shell-type-heading-sm-size);
|
|
57
|
+
--text-heading-sm--line-height: var(--app-shell-type-heading-sm-line-height);
|
|
58
|
+
--text-heading-sm--font-weight: var(--app-shell-type-heading-sm-weight);
|
|
59
|
+
--text-heading-sm--letter-spacing: var(--app-shell-type-heading-sm-letter-spacing);
|
|
60
|
+
--text-body-md: var(--app-shell-type-body-md-size);
|
|
61
|
+
--text-body-md--line-height: var(--app-shell-type-body-md-line-height);
|
|
62
|
+
--text-body-md--font-weight: var(--app-shell-type-body-md-weight);
|
|
63
|
+
--text-body-md--letter-spacing: var(--app-shell-type-body-md-letter-spacing);
|
|
64
|
+
--text-body-sm: var(--app-shell-type-body-sm-size);
|
|
65
|
+
--text-body-sm--line-height: var(--app-shell-type-body-sm-line-height);
|
|
66
|
+
--text-body-sm--font-weight: var(--app-shell-type-body-sm-weight);
|
|
67
|
+
--text-body-sm--letter-spacing: var(--app-shell-type-body-sm-letter-spacing);
|
|
68
|
+
--text-label-md: var(--app-shell-type-label-md-size);
|
|
69
|
+
--text-label-md--line-height: var(--app-shell-type-label-md-line-height);
|
|
70
|
+
--text-label-md--font-weight: var(--app-shell-type-label-md-weight);
|
|
71
|
+
--text-label-md--letter-spacing: var(--app-shell-type-label-md-letter-spacing);
|
|
72
|
+
--text-label-sm: var(--app-shell-type-label-sm-size);
|
|
73
|
+
--text-label-sm--line-height: var(--app-shell-type-label-sm-line-height);
|
|
74
|
+
--text-label-sm--font-weight: var(--app-shell-type-label-sm-weight);
|
|
75
|
+
--text-label-sm--letter-spacing: var(--app-shell-type-label-sm-letter-spacing);
|
|
76
|
+
--text-code-sm: var(--app-shell-type-code-sm-size);
|
|
77
|
+
--text-code-sm--line-height: var(--app-shell-type-code-sm-line-height);
|
|
78
|
+
--text-code-sm--font-weight: var(--app-shell-type-code-sm-weight);
|
|
79
|
+
--text-code-sm--letter-spacing: var(--app-shell-type-code-sm-letter-spacing);
|
|
80
|
+
--text-body-md-relaxed: var(--app-shell-type-body-md-relaxed-size);
|
|
81
|
+
--text-body-md-relaxed--line-height: var(--app-shell-type-body-md-relaxed-line-height);
|
|
82
|
+
--text-body-md-relaxed--font-weight: var(--app-shell-type-body-md-relaxed-weight);
|
|
83
|
+
--text-body-md-relaxed--letter-spacing: var(--app-shell-type-body-md-relaxed-letter-spacing);
|
|
84
|
+
--text-body-sm-relaxed: var(--app-shell-type-body-sm-relaxed-size);
|
|
85
|
+
--text-body-sm-relaxed--line-height: var(--app-shell-type-body-sm-relaxed-line-height);
|
|
86
|
+
--text-body-sm-relaxed--font-weight: var(--app-shell-type-body-sm-relaxed-weight);
|
|
87
|
+
--text-body-sm-relaxed--letter-spacing: var(--app-shell-type-body-sm-relaxed-letter-spacing);
|
|
88
|
+
|
|
39
89
|
--color-background: var(--background);
|
|
40
90
|
--color-foreground: var(--foreground);
|
|
41
91
|
--color-card: var(--card);
|
|
@@ -100,6 +150,47 @@
|
|
|
100
150
|
--color-alert-info-foreground-muted: var(--alert-info-foreground-muted);
|
|
101
151
|
--color-alert-info-border: var(--alert-info-border);
|
|
102
152
|
|
|
153
|
+
--color-neutral-surface: var(--neutral-surface);
|
|
154
|
+
--color-neutral-surface-hover: var(--neutral-surface-hover);
|
|
155
|
+
--color-neutral-border: var(--neutral-border);
|
|
156
|
+
--color-neutral-solid: var(--neutral-solid);
|
|
157
|
+
--color-neutral-solid-hover: var(--neutral-solid-hover);
|
|
158
|
+
--color-neutral-text: var(--neutral-text);
|
|
159
|
+
--color-neutral-contrast: var(--neutral-contrast);
|
|
160
|
+
--color-neutral-indicator: var(--neutral-indicator);
|
|
161
|
+
--color-info-surface: var(--info-surface);
|
|
162
|
+
--color-info-surface-hover: var(--info-surface-hover);
|
|
163
|
+
--color-info-border: var(--info-border);
|
|
164
|
+
--color-info-solid: var(--info-solid);
|
|
165
|
+
--color-info-solid-hover: var(--info-solid-hover);
|
|
166
|
+
--color-info-text: var(--info-text);
|
|
167
|
+
--color-info-contrast: var(--info-contrast);
|
|
168
|
+
--color-info-indicator: var(--info-indicator);
|
|
169
|
+
--color-success-surface: var(--success-surface);
|
|
170
|
+
--color-success-surface-hover: var(--success-surface-hover);
|
|
171
|
+
--color-success-border: var(--success-border);
|
|
172
|
+
--color-success-solid: var(--success-solid);
|
|
173
|
+
--color-success-solid-hover: var(--success-solid-hover);
|
|
174
|
+
--color-success-text: var(--success-text);
|
|
175
|
+
--color-success-contrast: var(--success-contrast);
|
|
176
|
+
--color-success-indicator: var(--success-indicator);
|
|
177
|
+
--color-warning-surface: var(--warning-surface);
|
|
178
|
+
--color-warning-surface-hover: var(--warning-surface-hover);
|
|
179
|
+
--color-warning-border: var(--warning-border);
|
|
180
|
+
--color-warning-solid: var(--warning-solid);
|
|
181
|
+
--color-warning-solid-hover: var(--warning-solid-hover);
|
|
182
|
+
--color-warning-text: var(--warning-text);
|
|
183
|
+
--color-warning-contrast: var(--warning-contrast);
|
|
184
|
+
--color-warning-indicator: var(--warning-indicator);
|
|
185
|
+
--color-danger-surface: var(--danger-surface);
|
|
186
|
+
--color-danger-surface-hover: var(--danger-surface-hover);
|
|
187
|
+
--color-danger-border: var(--danger-border);
|
|
188
|
+
--color-danger-solid: var(--danger-solid);
|
|
189
|
+
--color-danger-solid-hover: var(--danger-solid-hover);
|
|
190
|
+
--color-danger-text: var(--danger-text);
|
|
191
|
+
--color-danger-contrast: var(--danger-contrast);
|
|
192
|
+
--color-danger-indicator: var(--danger-indicator);
|
|
193
|
+
|
|
103
194
|
--shadow-xs: var(--semantic-shadow-xs);
|
|
104
195
|
--shadow-sm: var(--semantic-shadow-sm);
|
|
105
196
|
--shadow-md: var(--semantic-shadow-md);
|
package/dist/theme.css
CHANGED
|
@@ -16,7 +16,12 @@
|
|
|
16
16
|
* 4. PALETTE — optional: radius, charts, shadows, destructive.
|
|
17
17
|
*
|
|
18
18
|
* Inherited from default.css — do not duplicate in new palettes:
|
|
19
|
-
* --ring, --sidebar-*, --status-*, --alert
|
|
19
|
+
* --ring, --sidebar-*, --primitive-* (colour scales), --status-*, --alert-*,
|
|
20
|
+
* --app-shell-type-* (typography roles).
|
|
21
|
+
* The colour roles --{intent}-{role} inherit too; a palette overrides them
|
|
22
|
+
* only to recolour the status components. Typography roles are inherited
|
|
23
|
+
* the same way: do not copy the defaults, override only the variables
|
|
24
|
+
* whose values differ.
|
|
20
25
|
*
|
|
21
26
|
* Light/dark mode is controlled separately via `.dark` on <html>.
|
|
22
27
|
* Palette selection is by CSS import; there is no runtime palette prop.
|
|
@@ -17,7 +17,13 @@
|
|
|
17
17
|
* `@tailor-platform/app-shell/styles` in the consuming app.
|
|
18
18
|
*
|
|
19
19
|
* DO NOT SET (inherited from `:root` in default.css):
|
|
20
|
-
* --ring, --sidebar-*, --status-*, --alert
|
|
20
|
+
* --ring, --sidebar-*, --primitive-* (colour scales), --status-*, --alert-*,
|
|
21
|
+
* --app-shell-type-*
|
|
22
|
+
* The colour roles --{info|success|warning|danger|neutral}-{role} also inherit.
|
|
23
|
+
* Override a role only to recolour the status components (Badge, Alert, ...)
|
|
24
|
+
* for this palette; never set --status-* or --alert-*, they alias the roles.
|
|
25
|
+
* Typography roles (--app-shell-type-*) inherit too: do not copy the defaults,
|
|
26
|
+
* override only the variables whose values differ.
|
|
21
27
|
*
|
|
22
28
|
* PREVIEW: `/showcase/colors` in the Vite example app.
|
|
23
29
|
* ═══════════════════════════════════════════════════════════════════════════
|
package/dist/themes/bloom.css
CHANGED
|
@@ -146,15 +146,9 @@ html
|
|
|
146
146
|
background-color: transparent;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"],
|
|
150
149
|
html [data-slot="data-table-filter-chip"] {
|
|
151
150
|
background-color: transparent;
|
|
152
151
|
transition:
|
|
153
152
|
background-color 0.12s ease,
|
|
154
153
|
color 0.12s ease;
|
|
155
154
|
}
|
|
156
|
-
|
|
157
|
-
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"]:hover:not(:disabled) {
|
|
158
|
-
background-color: var(--accent);
|
|
159
|
-
color: var(--accent-foreground);
|
|
160
|
-
}
|
package/dist/themes/cream.css
CHANGED
|
@@ -146,15 +146,9 @@ html
|
|
|
146
146
|
background-color: transparent;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"],
|
|
150
149
|
html [data-slot="data-table-filter-chip"] {
|
|
151
150
|
background-color: transparent;
|
|
152
151
|
transition:
|
|
153
152
|
background-color 0.12s ease,
|
|
154
153
|
color 0.12s ease;
|
|
155
154
|
}
|
|
156
|
-
|
|
157
|
-
html [data-slot="button"][class*="astw:bg-background"][class*="astw:border"]:hover:not(:disabled) {
|
|
158
|
-
background-color: var(--accent);
|
|
159
|
-
color: var(--accent-foreground);
|
|
160
|
-
}
|