@mdwrk/ui-tokens 1.0.1
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/README.md +56 -0
- package/dist/classes.d.ts +13 -0
- package/dist/classes.d.ts.map +1 -0
- package/dist/classes.js +28 -0
- package/dist/classes.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/theme-map.d.ts +16 -0
- package/dist/theme-map.d.ts.map +1 -0
- package/dist/theme-map.js +51 -0
- package/dist/theme-map.js.map +1 -0
- package/dist/tokens.d.ts +269 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +7 -0
- package/dist/tokens.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +67 -0
- package/src/styles/index.css +3 -0
- package/src/styles/markdown.css +268 -0
- package/src/styles/root.css +129 -0
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# mdwrk/ui-tokens
|
|
2
|
+
|
|
3
|
+
Shared CSS tokens, root variables, markdown/editor class names, and theme mapping helpers for Markdown Workspace applications and packages.
|
|
4
|
+
|
|
5
|
+
## What this package contains
|
|
6
|
+
|
|
7
|
+
- the reusable root CSS variable contract
|
|
8
|
+
- the reusable markdown rendering stylesheet
|
|
9
|
+
- token and class-name re-exports aligned to `mdwrk/theme-contract`
|
|
10
|
+
- theme CSS generation helpers for first-party and third-party consumers
|
|
11
|
+
- renderer/editor bridge variable helpers
|
|
12
|
+
|
|
13
|
+
## CSS entry points
|
|
14
|
+
|
|
15
|
+
- `mdwrk/ui-tokens/styles/index.css`
|
|
16
|
+
- `mdwrk/ui-tokens/styles/root.css`
|
|
17
|
+
- `mdwrk/ui-tokens/styles/markdown.css`
|
|
18
|
+
|
|
19
|
+
## TypeScript entry points
|
|
20
|
+
|
|
21
|
+
- `mdwrk/ui-tokens`
|
|
22
|
+
- `mdwrk/ui-tokens/tokens`
|
|
23
|
+
- `mdwrk/ui-tokens/classes`
|
|
24
|
+
- `mdwrk/ui-tokens/theme-map`
|
|
25
|
+
|
|
26
|
+
## Example
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import "@mdwrk/ui-tokens/styles/index.css";
|
|
30
|
+
import {
|
|
31
|
+
renderThemeCssVariables,
|
|
32
|
+
renderThemeBridgeCssVariables,
|
|
33
|
+
} from "@mdwrk/ui-tokens/theme-map";
|
|
34
|
+
|
|
35
|
+
const hostCss = renderThemeCssVariables(
|
|
36
|
+
{
|
|
37
|
+
"bg-app": "#111111",
|
|
38
|
+
accent: "#7c3aed",
|
|
39
|
+
},
|
|
40
|
+
{ selector: ".my-theme" },
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
const rendererCss = renderThemeBridgeCssVariables(
|
|
44
|
+
"renderer",
|
|
45
|
+
{
|
|
46
|
+
"bg-panel": "#111111",
|
|
47
|
+
"fg-primary": "#fafafa",
|
|
48
|
+
accent: "#7c3aed",
|
|
49
|
+
},
|
|
50
|
+
{ selector: ".my-theme .markdown-renderer" },
|
|
51
|
+
);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Contract alignment
|
|
55
|
+
|
|
56
|
+
The exported token names, theme classes, and bridge definitions align with `mdwrk/theme-contract`. That keeps the implemented styling primitives aligned with the normative contract package.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type MarkdownWorkspaceThemeClassName, type ThemeClassDefinition } from "@mdwrk/theme-contract/classes";
|
|
2
|
+
export { MARKDOWN_WORKSPACE_THEME_CLASS_NAMES, MARKDOWN_WORKSPACE_THEME_CLASSES, type MarkdownWorkspaceThemeClassName, type ThemeClassDefinition, } from "@mdwrk/theme-contract/classes";
|
|
3
|
+
export declare const MARKDOWN_WORKSPACE_RENDERER_HELPER_CLASS_NAMES: readonly MarkdownWorkspaceThemeClassName[];
|
|
4
|
+
export type MarkdownWorkspaceRendererHelperClassName = typeof MARKDOWN_WORKSPACE_RENDERER_HELPER_CLASS_NAMES[number];
|
|
5
|
+
export interface RendererHelperClassDefinition extends ThemeClassDefinition {
|
|
6
|
+
readonly group: "scope" | "heading" | "text" | "list" | "table" | "code" | "form";
|
|
7
|
+
}
|
|
8
|
+
export declare const MARKDOWN_WORKSPACE_RENDERER_HELPER_CLASSES: readonly RendererHelperClassDefinition[];
|
|
9
|
+
export declare const MARKDOWN_WORKSPACE_STABLE_THEME_CLASS_NAMES: readonly MarkdownWorkspaceThemeClassName[];
|
|
10
|
+
export declare const MARKDOWN_WORKSPACE_STABLE_THEME_CLASSES: readonly ThemeClassDefinition[];
|
|
11
|
+
export type MarkdownWorkspaceStableThemeClassName = typeof MARKDOWN_WORKSPACE_STABLE_THEME_CLASS_NAMES[number];
|
|
12
|
+
export type StableThemeClassDefinition = ThemeClassDefinition;
|
|
13
|
+
//# sourceMappingURL=classes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../src/classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,oCAAoC,EACpC,gCAAgC,EAChC,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,8CAA8C,EAItD,SAAS,+BAA+B,EAAE,CAAC;AAEhD,MAAM,MAAM,wCAAwC,GAAG,OAAO,8CAA8C,CAAC,MAAM,CAAC,CAAC;AAErH,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACnF;AAYD,eAAO,MAAM,0CAA0C,EAIlD,SAAS,6BAA6B,EAAE,CAAC;AAE9C,eAAO,MAAM,2CAA2C,EAInD,SAAS,+BAA+B,EAAE,CAAC;AAEhD,eAAO,MAAM,uCAAuC,EAE/C,SAAS,oBAAoB,EAAE,CAAC;AAErC,MAAM,MAAM,qCAAqC,GAAG,OAAO,2CAA2C,CAAC,MAAM,CAAC,CAAC;AAC/G,MAAM,MAAM,0BAA0B,GAAG,oBAAoB,CAAC"}
|
package/dist/classes.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { MARKDOWN_WORKSPACE_THEME_CLASSES, } from "@mdwrk/theme-contract/classes";
|
|
2
|
+
export { MARKDOWN_WORKSPACE_THEME_CLASS_NAMES, MARKDOWN_WORKSPACE_THEME_CLASSES, } from "@mdwrk/theme-contract/classes";
|
|
3
|
+
export const MARKDOWN_WORKSPACE_RENDERER_HELPER_CLASS_NAMES = Object.freeze(MARKDOWN_WORKSPACE_THEME_CLASSES
|
|
4
|
+
.filter((definition) => definition.scope === "renderer")
|
|
5
|
+
.map((definition) => definition.name));
|
|
6
|
+
function resolveGroup(name) {
|
|
7
|
+
if (name === "markdown-body")
|
|
8
|
+
return "scope";
|
|
9
|
+
if (name.startsWith("md-h"))
|
|
10
|
+
return "heading";
|
|
11
|
+
if (["md-p", "md-strong", "md-em", "md-hr", "md-blockquote", "md-link"].includes(name))
|
|
12
|
+
return "text";
|
|
13
|
+
if (["md-ul", "md-ol", "md-li", "md-task-list-item"].includes(name))
|
|
14
|
+
return "list";
|
|
15
|
+
if (["md-checkbox"].includes(name))
|
|
16
|
+
return "form";
|
|
17
|
+
if (name.startsWith("md-table"))
|
|
18
|
+
return "table";
|
|
19
|
+
return "code";
|
|
20
|
+
}
|
|
21
|
+
export const MARKDOWN_WORKSPACE_RENDERER_HELPER_CLASSES = Object.freeze(MARKDOWN_WORKSPACE_THEME_CLASSES
|
|
22
|
+
.filter((definition) => definition.scope === "renderer")
|
|
23
|
+
.map((definition) => ({ ...definition, group: resolveGroup(definition.name) })));
|
|
24
|
+
export const MARKDOWN_WORKSPACE_STABLE_THEME_CLASS_NAMES = Object.freeze(MARKDOWN_WORKSPACE_THEME_CLASSES
|
|
25
|
+
.filter((definition) => definition.stability === "stable")
|
|
26
|
+
.map((definition) => definition.name));
|
|
27
|
+
export const MARKDOWN_WORKSPACE_STABLE_THEME_CLASSES = Object.freeze(MARKDOWN_WORKSPACE_THEME_CLASSES.filter((definition) => definition.stability === "stable"));
|
|
28
|
+
//# sourceMappingURL=classes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classes.js","sourceRoot":"","sources":["../src/classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gCAAgC,GAGjC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,oCAAoC,EACpC,gCAAgC,GAGjC,MAAM,+BAA+B,CAAC;AAEvC,MAAM,CAAC,MAAM,8CAA8C,GAAG,MAAM,CAAC,MAAM,CACzE,gCAAgC;KAC7B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC;KACvD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CACM,CAAC;AAQhD,SAAS,YAAY,CAAC,IAAqC;IACzD,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACtG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACnF,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,0CAA0C,GAAG,MAAM,CAAC,MAAM,CACrE,gCAAgC;KAC7B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC;KACvD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACtC,CAAC;AAE9C,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC,MAAM,CACtE,gCAAgC;KAC7B,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC;KACzD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CACM,CAAC;AAEhD,MAAM,CAAC,MAAM,uCAAuC,GAAG,MAAM,CAAC,MAAM,CAClE,gCAAgC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC,CACxD,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type MarkdownWorkspaceThemeTokenMap, type MarkdownWorkspaceThemeTokenName } from "@mdwrk/theme-contract/tokens";
|
|
2
|
+
import { type ThemeBridgeTarget } from "@mdwrk/theme-contract/bridges";
|
|
3
|
+
export type ThemeTokenOverrides = Partial<Record<MarkdownWorkspaceThemeTokenName, string>>;
|
|
4
|
+
export interface ThemeCssVariableRenderOptions {
|
|
5
|
+
readonly selector?: string;
|
|
6
|
+
readonly indent?: string;
|
|
7
|
+
readonly compact?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function createMarkdownWorkspaceThemeTokenMap(overrides?: ThemeTokenOverrides): MarkdownWorkspaceThemeTokenMap;
|
|
10
|
+
export declare function createThemeCssCustomPropertyRecord(overrides?: ThemeTokenOverrides): Readonly<Record<`--${string}`, string>>;
|
|
11
|
+
export declare function createThemeBridgeVariableRecord(target: ThemeBridgeTarget, overrides?: ThemeTokenOverrides): Readonly<Record<`--${string}`, string>>;
|
|
12
|
+
export declare function createRendererThemeBridgeVariableRecord(overrides?: ThemeTokenOverrides): Readonly<Record<`--${string}`, string>>;
|
|
13
|
+
export declare function createEditorThemeBridgeVariableRecord(overrides?: ThemeTokenOverrides): Readonly<Record<`--${string}`, string>>;
|
|
14
|
+
export declare function renderThemeCssVariables(overrides?: ThemeTokenOverrides, options?: ThemeCssVariableRenderOptions): string;
|
|
15
|
+
export declare function renderThemeBridgeCssVariables(target: ThemeBridgeTarget, overrides?: ThemeTokenOverrides, options?: ThemeCssVariableRenderOptions): string;
|
|
16
|
+
//# sourceMappingURL=theme-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-map.d.ts","sourceRoot":"","sources":["../src/theme-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3F,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,oCAAoC,CAClD,SAAS,GAAE,mBAAwB,GAClC,8BAA8B,CAShC;AAED,wBAAgB,kCAAkC,CAChD,SAAS,GAAE,mBAAwB,GAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAUzC;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,mBAAwB,GAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAUzC;AAED,wBAAgB,uCAAuC,CACrD,SAAS,GAAE,mBAAwB,GAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAEzC;AAED,wBAAgB,qCAAqC,CACnD,SAAS,GAAE,mBAAwB,GAClC,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAEzC;AAED,wBAAgB,uBAAuB,CACrC,SAAS,GAAE,mBAAwB,EACnC,OAAO,GAAE,6BAAkC,GAC1C,MAAM,CAYR;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,mBAAwB,EACnC,OAAO,GAAE,6BAAkC,GAC1C,MAAM,CAYR"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { MARKDOWN_WORKSPACE_THEME_TOKENS, } from "@mdwrk/theme-contract/tokens";
|
|
2
|
+
import { getThemeBridgeDefinitions, } from "@mdwrk/theme-contract/bridges";
|
|
3
|
+
export function createMarkdownWorkspaceThemeTokenMap(overrides = {}) {
|
|
4
|
+
return Object.freeze(Object.fromEntries(MARKDOWN_WORKSPACE_THEME_TOKENS.map((definition) => [
|
|
5
|
+
definition.name,
|
|
6
|
+
overrides[definition.name] ?? definition.defaultValue,
|
|
7
|
+
])));
|
|
8
|
+
}
|
|
9
|
+
export function createThemeCssCustomPropertyRecord(overrides = {}) {
|
|
10
|
+
const tokenMap = createMarkdownWorkspaceThemeTokenMap(overrides);
|
|
11
|
+
return Object.freeze(Object.fromEntries(MARKDOWN_WORKSPACE_THEME_TOKENS.map((definition) => [
|
|
12
|
+
definition.cssCustomProperty,
|
|
13
|
+
tokenMap[definition.name],
|
|
14
|
+
])));
|
|
15
|
+
}
|
|
16
|
+
export function createThemeBridgeVariableRecord(target, overrides = {}) {
|
|
17
|
+
const tokenMap = createMarkdownWorkspaceThemeTokenMap(overrides);
|
|
18
|
+
return Object.freeze(Object.fromEntries(getThemeBridgeDefinitions(target).map((definition) => [
|
|
19
|
+
definition.cssCustomProperty,
|
|
20
|
+
tokenMap[definition.sourceToken],
|
|
21
|
+
])));
|
|
22
|
+
}
|
|
23
|
+
export function createRendererThemeBridgeVariableRecord(overrides = {}) {
|
|
24
|
+
return createThemeBridgeVariableRecord("renderer", overrides);
|
|
25
|
+
}
|
|
26
|
+
export function createEditorThemeBridgeVariableRecord(overrides = {}) {
|
|
27
|
+
return createThemeBridgeVariableRecord("editor", overrides);
|
|
28
|
+
}
|
|
29
|
+
export function renderThemeCssVariables(overrides = {}, options = {}) {
|
|
30
|
+
const selector = options.selector ?? ":root";
|
|
31
|
+
const indent = options.indent ?? " ";
|
|
32
|
+
const compact = options.compact ?? false;
|
|
33
|
+
const propertyRecord = createThemeCssCustomPropertyRecord(overrides);
|
|
34
|
+
const lines = Object.entries(propertyRecord).map(([property, value]) => `${indent}${property}: ${value};`);
|
|
35
|
+
if (compact) {
|
|
36
|
+
return `${selector}{${lines.map((line) => line.trim()).join("")}}`;
|
|
37
|
+
}
|
|
38
|
+
return `${selector} {\n${lines.join("\n")}\n}`;
|
|
39
|
+
}
|
|
40
|
+
export function renderThemeBridgeCssVariables(target, overrides = {}, options = {}) {
|
|
41
|
+
const selector = options.selector ?? ":root";
|
|
42
|
+
const indent = options.indent ?? " ";
|
|
43
|
+
const compact = options.compact ?? false;
|
|
44
|
+
const propertyRecord = createThemeBridgeVariableRecord(target, overrides);
|
|
45
|
+
const lines = Object.entries(propertyRecord).map(([property, value]) => `${indent}${property}: ${value};`);
|
|
46
|
+
if (compact) {
|
|
47
|
+
return `${selector}{${lines.map((line) => line.trim()).join("")}}`;
|
|
48
|
+
}
|
|
49
|
+
return `${selector} {\n${lines.join("\n")}\n}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=theme-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-map.js","sourceRoot":"","sources":["../src/theme-map.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,GAGhC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,yBAAyB,GAE1B,MAAM,+BAA+B,CAAC;AAUvC,MAAM,UAAU,oCAAoC,CAClD,YAAiC,EAAE;IAEnC,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,WAAW,CAChB,+BAA+B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QAClD,UAAU,CAAC,IAAI;QACf,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY;KACtD,CAAC,CAC+B,CACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,YAAiC,EAAE;IAEnC,MAAM,QAAQ,GAAG,oCAAoC,CAAC,SAAS,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,WAAW,CAChB,+BAA+B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QAClD,UAAU,CAAC,iBAAiB;QAC5B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;KAC1B,CAAC,CAC8B,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAAyB,EACzB,YAAiC,EAAE;IAEnC,MAAM,QAAQ,GAAG,oCAAoC,CAAC,SAAS,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,WAAW,CAChB,yBAAyB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QACpD,UAAU,CAAC,iBAAiB;QAC5B,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;KACjC,CAAC,CAC8B,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,YAAiC,EAAE;IAEnC,OAAO,+BAA+B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,YAAiC,EAAE;IAEnC,OAAO,+BAA+B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,YAAiC,EAAE,EACnC,UAAyC,EAAE;IAE3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,cAAc,GAAG,kCAAkC,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,QAAQ,KAAK,KAAK,GAAG,CAAC,CAAC;IAE3G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAyB,EACzB,YAAiC,EAAE,EACnC,UAAyC,EAAE;IAE3C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,cAAc,GAAG,+BAA+B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,QAAQ,KAAK,KAAK,GAAG,CAAC,CAAC;IAE3G,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjD,CAAC"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { type MarkdownWorkspaceThemeTokenMap, type MarkdownWorkspaceThemeTokenName, type ThemeTokenDefinition } from "@mdwrk/theme-contract/tokens";
|
|
2
|
+
export { MARKDOWN_WORKSPACE_THEME_TOKEN_NAMES, MARKDOWN_WORKSPACE_THEME_TOKENS, type MarkdownWorkspaceThemeTokenMap, type MarkdownWorkspaceThemeTokenName, type ThemeTokenDefinition, } from "@mdwrk/theme-contract/tokens";
|
|
3
|
+
export type MarkdownWorkspaceUiTokenName = MarkdownWorkspaceThemeTokenName;
|
|
4
|
+
export type MarkdownWorkspaceUiTokenMap = MarkdownWorkspaceThemeTokenMap;
|
|
5
|
+
export type UiTokenDefinition = ThemeTokenDefinition;
|
|
6
|
+
export declare const MARKDOWN_WORKSPACE_UI_TOKEN_NAMES: readonly ["ui-scale", "header-height", "rail-width", "rail-height", "sidebar-width", "status-height", "tab-height", "panel-header-height", "rail-btn-size", "bg-app", "bg-panel", "bg-inset", "border-color", "border-width", "fg-primary", "fg-secondary", "fg-muted", "accent", "table-header-bg", "table-header-fg", "table-row-primary-bg", "table-row-secondary-bg", "status-ok", "status-warn", "status-error", "app-gap", "texture-opacity", "editor-padding", "file-indent-base", "file-indent-unit", "c-explorer-hover", "c-explorer-selected", "c-explorer-selected-text", "c-explorer-drag-bg", "font-ui", "font-mono", "font-head"];
|
|
7
|
+
export declare const MARKDOWN_WORKSPACE_UI_TOKENS: readonly [{
|
|
8
|
+
readonly name: "ui-scale";
|
|
9
|
+
readonly cssCustomProperty: "--ui-scale";
|
|
10
|
+
readonly category: "layout";
|
|
11
|
+
readonly description: "Global UI scale multiplier.";
|
|
12
|
+
readonly defaultValue: "1";
|
|
13
|
+
readonly stability: "stable";
|
|
14
|
+
}, {
|
|
15
|
+
readonly name: "header-height";
|
|
16
|
+
readonly cssCustomProperty: "--header-height";
|
|
17
|
+
readonly category: "layout";
|
|
18
|
+
readonly description: "Header height for the application shell.";
|
|
19
|
+
readonly defaultValue: "calc(32px * var(--ui-scale))";
|
|
20
|
+
readonly stability: "stable";
|
|
21
|
+
}, {
|
|
22
|
+
readonly name: "rail-width";
|
|
23
|
+
readonly cssCustomProperty: "--rail-width";
|
|
24
|
+
readonly category: "layout";
|
|
25
|
+
readonly description: "Action rail width.";
|
|
26
|
+
readonly defaultValue: "calc(44px * var(--ui-scale))";
|
|
27
|
+
readonly stability: "stable";
|
|
28
|
+
}, {
|
|
29
|
+
readonly name: "rail-height";
|
|
30
|
+
readonly cssCustomProperty: "--rail-height";
|
|
31
|
+
readonly category: "layout";
|
|
32
|
+
readonly description: "Action rail row height.";
|
|
33
|
+
readonly defaultValue: "calc(44px * var(--ui-scale))";
|
|
34
|
+
readonly stability: "stable";
|
|
35
|
+
}, {
|
|
36
|
+
readonly name: "sidebar-width";
|
|
37
|
+
readonly cssCustomProperty: "--sidebar-width";
|
|
38
|
+
readonly category: "layout";
|
|
39
|
+
readonly description: "Sidebar width.";
|
|
40
|
+
readonly defaultValue: "calc(200px * var(--ui-scale))";
|
|
41
|
+
readonly stability: "stable";
|
|
42
|
+
}, {
|
|
43
|
+
readonly name: "status-height";
|
|
44
|
+
readonly cssCustomProperty: "--status-height";
|
|
45
|
+
readonly category: "layout";
|
|
46
|
+
readonly description: "Status bar height.";
|
|
47
|
+
readonly defaultValue: "calc(20px * var(--ui-scale))";
|
|
48
|
+
readonly stability: "stable";
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "tab-height";
|
|
51
|
+
readonly cssCustomProperty: "--tab-height";
|
|
52
|
+
readonly category: "layout";
|
|
53
|
+
readonly description: "Tab strip height.";
|
|
54
|
+
readonly defaultValue: "var(--header-height)";
|
|
55
|
+
readonly stability: "stable";
|
|
56
|
+
}, {
|
|
57
|
+
readonly name: "panel-header-height";
|
|
58
|
+
readonly cssCustomProperty: "--panel-header-height";
|
|
59
|
+
readonly category: "layout";
|
|
60
|
+
readonly description: "Panel header height.";
|
|
61
|
+
readonly defaultValue: "calc(30px * var(--ui-scale))";
|
|
62
|
+
readonly stability: "stable";
|
|
63
|
+
}, {
|
|
64
|
+
readonly name: "rail-btn-size";
|
|
65
|
+
readonly cssCustomProperty: "--rail-btn-size";
|
|
66
|
+
readonly category: "layout";
|
|
67
|
+
readonly description: "Action rail button size.";
|
|
68
|
+
readonly defaultValue: "calc(30px * var(--ui-scale))";
|
|
69
|
+
readonly stability: "stable";
|
|
70
|
+
}, {
|
|
71
|
+
readonly name: "bg-app";
|
|
72
|
+
readonly cssCustomProperty: "--bg-app";
|
|
73
|
+
readonly category: "color";
|
|
74
|
+
readonly description: "Top-level application background.";
|
|
75
|
+
readonly defaultValue: "#c0c0c0";
|
|
76
|
+
readonly stability: "stable";
|
|
77
|
+
}, {
|
|
78
|
+
readonly name: "bg-panel";
|
|
79
|
+
readonly cssCustomProperty: "--bg-panel";
|
|
80
|
+
readonly category: "color";
|
|
81
|
+
readonly description: "Panel background.";
|
|
82
|
+
readonly defaultValue: "#ececec";
|
|
83
|
+
readonly stability: "stable";
|
|
84
|
+
}, {
|
|
85
|
+
readonly name: "bg-inset";
|
|
86
|
+
readonly cssCustomProperty: "--bg-inset";
|
|
87
|
+
readonly category: "color";
|
|
88
|
+
readonly description: "Inset surface background.";
|
|
89
|
+
readonly defaultValue: "#dcdcdc";
|
|
90
|
+
readonly stability: "stable";
|
|
91
|
+
}, {
|
|
92
|
+
readonly name: "border-color";
|
|
93
|
+
readonly cssCustomProperty: "--border-color";
|
|
94
|
+
readonly category: "color";
|
|
95
|
+
readonly description: "Primary border color.";
|
|
96
|
+
readonly defaultValue: "#000000";
|
|
97
|
+
readonly stability: "stable";
|
|
98
|
+
}, {
|
|
99
|
+
readonly name: "border-width";
|
|
100
|
+
readonly cssCustomProperty: "--border-width";
|
|
101
|
+
readonly category: "layout";
|
|
102
|
+
readonly description: "Primary border width.";
|
|
103
|
+
readonly defaultValue: "2px";
|
|
104
|
+
readonly stability: "stable";
|
|
105
|
+
}, {
|
|
106
|
+
readonly name: "fg-primary";
|
|
107
|
+
readonly cssCustomProperty: "--fg-primary";
|
|
108
|
+
readonly category: "color";
|
|
109
|
+
readonly description: "Primary foreground color.";
|
|
110
|
+
readonly defaultValue: "#000000";
|
|
111
|
+
readonly stability: "stable";
|
|
112
|
+
}, {
|
|
113
|
+
readonly name: "fg-secondary";
|
|
114
|
+
readonly cssCustomProperty: "--fg-secondary";
|
|
115
|
+
readonly category: "color";
|
|
116
|
+
readonly description: "Secondary foreground color.";
|
|
117
|
+
readonly defaultValue: "#333333";
|
|
118
|
+
readonly stability: "stable";
|
|
119
|
+
}, {
|
|
120
|
+
readonly name: "fg-muted";
|
|
121
|
+
readonly cssCustomProperty: "--fg-muted";
|
|
122
|
+
readonly category: "color";
|
|
123
|
+
readonly description: "Muted foreground color.";
|
|
124
|
+
readonly defaultValue: "#666666";
|
|
125
|
+
readonly stability: "stable";
|
|
126
|
+
}, {
|
|
127
|
+
readonly name: "accent";
|
|
128
|
+
readonly cssCustomProperty: "--accent";
|
|
129
|
+
readonly category: "color";
|
|
130
|
+
readonly description: "Accent color.";
|
|
131
|
+
readonly defaultValue: "#ff3e00";
|
|
132
|
+
readonly stability: "stable";
|
|
133
|
+
}, {
|
|
134
|
+
readonly name: "table-header-bg";
|
|
135
|
+
readonly cssCustomProperty: "--table-header-bg";
|
|
136
|
+
readonly category: "color";
|
|
137
|
+
readonly description: "Markdown table header background.";
|
|
138
|
+
readonly defaultValue: "var(--bg-inset)";
|
|
139
|
+
readonly stability: "stable";
|
|
140
|
+
}, {
|
|
141
|
+
readonly name: "table-header-fg";
|
|
142
|
+
readonly cssCustomProperty: "--table-header-fg";
|
|
143
|
+
readonly category: "color";
|
|
144
|
+
readonly description: "Markdown table header foreground.";
|
|
145
|
+
readonly defaultValue: "var(--fg-primary)";
|
|
146
|
+
readonly stability: "stable";
|
|
147
|
+
}, {
|
|
148
|
+
readonly name: "table-row-primary-bg";
|
|
149
|
+
readonly cssCustomProperty: "--table-row-primary-bg";
|
|
150
|
+
readonly category: "color";
|
|
151
|
+
readonly description: "Odd markdown table row background.";
|
|
152
|
+
readonly defaultValue: "var(--bg-panel)";
|
|
153
|
+
readonly stability: "stable";
|
|
154
|
+
}, {
|
|
155
|
+
readonly name: "table-row-secondary-bg";
|
|
156
|
+
readonly cssCustomProperty: "--table-row-secondary-bg";
|
|
157
|
+
readonly category: "color";
|
|
158
|
+
readonly description: "Even markdown table row background.";
|
|
159
|
+
readonly defaultValue: "var(--bg-inset)";
|
|
160
|
+
readonly stability: "stable";
|
|
161
|
+
}, {
|
|
162
|
+
readonly name: "status-ok";
|
|
163
|
+
readonly cssCustomProperty: "--status-ok";
|
|
164
|
+
readonly category: "status";
|
|
165
|
+
readonly description: "Success status color.";
|
|
166
|
+
readonly defaultValue: "#00cc00";
|
|
167
|
+
readonly stability: "stable";
|
|
168
|
+
}, {
|
|
169
|
+
readonly name: "status-warn";
|
|
170
|
+
readonly cssCustomProperty: "--status-warn";
|
|
171
|
+
readonly category: "status";
|
|
172
|
+
readonly description: "Warning status color.";
|
|
173
|
+
readonly defaultValue: "#ff8800";
|
|
174
|
+
readonly stability: "stable";
|
|
175
|
+
}, {
|
|
176
|
+
readonly name: "status-error";
|
|
177
|
+
readonly cssCustomProperty: "--status-error";
|
|
178
|
+
readonly category: "status";
|
|
179
|
+
readonly description: "Error status color.";
|
|
180
|
+
readonly defaultValue: "#cc0000";
|
|
181
|
+
readonly stability: "stable";
|
|
182
|
+
}, {
|
|
183
|
+
readonly name: "app-gap";
|
|
184
|
+
readonly cssCustomProperty: "--app-gap";
|
|
185
|
+
readonly category: "spacing";
|
|
186
|
+
readonly description: "Primary gap between shell regions.";
|
|
187
|
+
readonly defaultValue: "calc(4px * var(--ui-scale))";
|
|
188
|
+
readonly stability: "stable";
|
|
189
|
+
}, {
|
|
190
|
+
readonly name: "texture-opacity";
|
|
191
|
+
readonly cssCustomProperty: "--texture-opacity";
|
|
192
|
+
readonly category: "interaction";
|
|
193
|
+
readonly description: "Texture overlay opacity.";
|
|
194
|
+
readonly defaultValue: "0.05";
|
|
195
|
+
readonly stability: "stable";
|
|
196
|
+
}, {
|
|
197
|
+
readonly name: "editor-padding";
|
|
198
|
+
readonly cssCustomProperty: "--editor-padding";
|
|
199
|
+
readonly category: "spacing";
|
|
200
|
+
readonly description: "Editor inner padding.";
|
|
201
|
+
readonly defaultValue: "calc(24px * var(--ui-scale))";
|
|
202
|
+
readonly stability: "stable";
|
|
203
|
+
}, {
|
|
204
|
+
readonly name: "file-indent-base";
|
|
205
|
+
readonly cssCustomProperty: "--file-indent-base";
|
|
206
|
+
readonly category: "spacing";
|
|
207
|
+
readonly description: "Base indentation for file tree items.";
|
|
208
|
+
readonly defaultValue: "calc(12px * var(--ui-scale))";
|
|
209
|
+
readonly stability: "stable";
|
|
210
|
+
}, {
|
|
211
|
+
readonly name: "file-indent-unit";
|
|
212
|
+
readonly cssCustomProperty: "--file-indent-unit";
|
|
213
|
+
readonly category: "spacing";
|
|
214
|
+
readonly description: "Incremental indentation for nested file tree items.";
|
|
215
|
+
readonly defaultValue: "calc(12px * var(--ui-scale))";
|
|
216
|
+
readonly stability: "stable";
|
|
217
|
+
}, {
|
|
218
|
+
readonly name: "c-explorer-hover";
|
|
219
|
+
readonly cssCustomProperty: "--c-explorer-hover";
|
|
220
|
+
readonly category: "interaction";
|
|
221
|
+
readonly description: "Explorer hover background.";
|
|
222
|
+
readonly defaultValue: "rgba(0, 0, 0, 0.06)";
|
|
223
|
+
readonly stability: "stable";
|
|
224
|
+
}, {
|
|
225
|
+
readonly name: "c-explorer-selected";
|
|
226
|
+
readonly cssCustomProperty: "--c-explorer-selected";
|
|
227
|
+
readonly category: "interaction";
|
|
228
|
+
readonly description: "Explorer selected background.";
|
|
229
|
+
readonly defaultValue: "var(--accent)";
|
|
230
|
+
readonly stability: "stable";
|
|
231
|
+
}, {
|
|
232
|
+
readonly name: "c-explorer-selected-text";
|
|
233
|
+
readonly cssCustomProperty: "--c-explorer-selected-text";
|
|
234
|
+
readonly category: "interaction";
|
|
235
|
+
readonly description: "Explorer selected foreground.";
|
|
236
|
+
readonly defaultValue: "#ffffff";
|
|
237
|
+
readonly stability: "stable";
|
|
238
|
+
}, {
|
|
239
|
+
readonly name: "c-explorer-drag-bg";
|
|
240
|
+
readonly cssCustomProperty: "--c-explorer-drag-bg";
|
|
241
|
+
readonly category: "interaction";
|
|
242
|
+
readonly description: "Explorer drag surface background.";
|
|
243
|
+
readonly defaultValue: "rgba(255, 255, 255, 0.08)";
|
|
244
|
+
readonly stability: "stable";
|
|
245
|
+
}, {
|
|
246
|
+
readonly name: "font-ui";
|
|
247
|
+
readonly cssCustomProperty: "--font-ui";
|
|
248
|
+
readonly category: "typography";
|
|
249
|
+
readonly description: "UI font stack.";
|
|
250
|
+
readonly defaultValue: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
|
|
251
|
+
readonly stability: "stable";
|
|
252
|
+
}, {
|
|
253
|
+
readonly name: "font-mono";
|
|
254
|
+
readonly cssCustomProperty: "--font-mono";
|
|
255
|
+
readonly category: "typography";
|
|
256
|
+
readonly description: "Monospace font stack.";
|
|
257
|
+
readonly defaultValue: "'JetBrains Mono', 'IBM Plex Mono', Menlo, monospace";
|
|
258
|
+
readonly stability: "stable";
|
|
259
|
+
}, {
|
|
260
|
+
readonly name: "font-head";
|
|
261
|
+
readonly cssCustomProperty: "--font-head";
|
|
262
|
+
readonly category: "typography";
|
|
263
|
+
readonly description: "Heading font stack.";
|
|
264
|
+
readonly defaultValue: "'Inter', sans-serif";
|
|
265
|
+
readonly stability: "stable";
|
|
266
|
+
}];
|
|
267
|
+
export declare const MARKDOWN_WORKSPACE_TOKEN_DEFAULTS: Readonly<Readonly<Record<"ui-scale" | "header-height" | "rail-width" | "rail-height" | "sidebar-width" | "status-height" | "tab-height" | "panel-header-height" | "rail-btn-size" | "bg-app" | "bg-panel" | "bg-inset" | "border-color" | "border-width" | "fg-primary" | "fg-secondary" | "fg-muted" | "accent" | "table-header-bg" | "table-header-fg" | "table-row-primary-bg" | "table-row-secondary-bg" | "status-ok" | "status-warn" | "status-error" | "app-gap" | "texture-opacity" | "editor-padding" | "file-indent-base" | "file-indent-unit" | "c-explorer-hover" | "c-explorer-selected" | "c-explorer-selected-text" | "c-explorer-drag-bg" | "font-ui" | "font-mono" | "font-head", string>>>;
|
|
268
|
+
export declare const MARKDOWN_WORKSPACE_TOKEN_CSS_CUSTOM_PROPERTIES: readonly ThemeTokenDefinition["cssCustomProperty"][];
|
|
269
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,oCAAoC,EACpC,+BAA+B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,oBAAoB,GAC1B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,4BAA4B,GAAG,+BAA+B,CAAC;AAC3E,MAAM,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AACzE,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAErD,eAAO,MAAM,iCAAiC,inBAAuC,CAAC;AACtF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAkC,CAAC;AAE5E,eAAO,MAAM,iCAAiC,8qBAI7C,CAAC;AAEF,eAAO,MAAM,8CAA8C,EAEtD,SAAS,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,CAAC"}
|
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MARKDOWN_WORKSPACE_THEME_TOKEN_NAMES, MARKDOWN_WORKSPACE_THEME_TOKENS, } from "@mdwrk/theme-contract/tokens";
|
|
2
|
+
export { MARKDOWN_WORKSPACE_THEME_TOKEN_NAMES, MARKDOWN_WORKSPACE_THEME_TOKENS, } from "@mdwrk/theme-contract/tokens";
|
|
3
|
+
export const MARKDOWN_WORKSPACE_UI_TOKEN_NAMES = MARKDOWN_WORKSPACE_THEME_TOKEN_NAMES;
|
|
4
|
+
export const MARKDOWN_WORKSPACE_UI_TOKENS = MARKDOWN_WORKSPACE_THEME_TOKENS;
|
|
5
|
+
export const MARKDOWN_WORKSPACE_TOKEN_DEFAULTS = Object.freeze(Object.fromEntries(MARKDOWN_WORKSPACE_THEME_TOKENS.map((definition) => [definition.name, definition.defaultValue])));
|
|
6
|
+
export const MARKDOWN_WORKSPACE_TOKEN_CSS_CUSTOM_PROPERTIES = Object.freeze(MARKDOWN_WORKSPACE_THEME_TOKENS.map((definition) => definition.cssCustomProperty));
|
|
7
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAIhC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAIhC,MAAM,8BAA8B,CAAC;AAMtC,MAAM,CAAC,MAAM,iCAAiC,GAAG,oCAAoC,CAAC;AACtF,MAAM,CAAC,MAAM,4BAA4B,GAAG,+BAA+B,CAAC;AAE5E,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC,MAAM,CAC5D,MAAM,CAAC,WAAW,CAChB,+BAA+B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAC9D,CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,8CAA8C,GAAG,MAAM,CAAC,MAAM,CACzE,+BAA+B,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,EAAG,OAAgB,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAgB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.1",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=20 <23"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"src/styles",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"name": "@mdwrk/ui-tokens",
|
|
17
|
+
"description": "Shared CSS tokens, markdown class names, and theme mapping helpers for Markdown Workspace packages and applications.",
|
|
18
|
+
"sideEffects": [
|
|
19
|
+
"./src/styles/*.css"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"markdown-workspace",
|
|
23
|
+
"shared",
|
|
24
|
+
"css",
|
|
25
|
+
"tokens",
|
|
26
|
+
"themes"
|
|
27
|
+
],
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@mdwrk/theme-contract": "^1.0.0"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc -p tsconfig.json",
|
|
33
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
34
|
+
"lint": "npm run typecheck",
|
|
35
|
+
"test": "npm run build && node ./tests/prepare-workspace-links.mjs && node ./tests/run-smoke.mjs",
|
|
36
|
+
"prepack": "npm run build"
|
|
37
|
+
},
|
|
38
|
+
"exports": {
|
|
39
|
+
".": {
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"import": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./version": {
|
|
44
|
+
"types": "./dist/version.d.ts",
|
|
45
|
+
"import": "./dist/version.js"
|
|
46
|
+
},
|
|
47
|
+
"./tokens": {
|
|
48
|
+
"types": "./dist/tokens.d.ts",
|
|
49
|
+
"import": "./dist/tokens.js"
|
|
50
|
+
},
|
|
51
|
+
"./classes": {
|
|
52
|
+
"types": "./dist/classes.d.ts",
|
|
53
|
+
"import": "./dist/classes.js"
|
|
54
|
+
},
|
|
55
|
+
"./theme-map": {
|
|
56
|
+
"types": "./dist/theme-map.d.ts",
|
|
57
|
+
"import": "./dist/theme-map.js"
|
|
58
|
+
},
|
|
59
|
+
"./styles/index.css": "./src/styles/index.css",
|
|
60
|
+
"./styles/root.css": "./src/styles/root.css",
|
|
61
|
+
"./styles/markdown.css": "./src/styles/markdown.css"
|
|
62
|
+
},
|
|
63
|
+
"main": "./dist/index.js",
|
|
64
|
+
"types": "./dist/index.d.ts",
|
|
65
|
+
"author": "Jacob Stewart <jacob@swarmauri.com>",
|
|
66
|
+
"homepage": "https://mdwrk.com"
|
|
67
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/* Lattice Architect: Markdown & GFM Rendering */
|
|
2
|
+
|
|
3
|
+
/* MARKDOWN STYLES (Scoped) */
|
|
4
|
+
.markdown-body {
|
|
5
|
+
font-family: var(--font-ui);
|
|
6
|
+
line-height: 1.6;
|
|
7
|
+
font-size: calc(0.95rem * var(--ui-scale));
|
|
8
|
+
color: var(--fg-primary);
|
|
9
|
+
overflow-wrap: anywhere;
|
|
10
|
+
word-break: break-word;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.markdown-body h1,
|
|
14
|
+
.markdown-body h2,
|
|
15
|
+
.markdown-body h3,
|
|
16
|
+
.markdown-body h4,
|
|
17
|
+
.markdown-body h5,
|
|
18
|
+
.markdown-body h6 {
|
|
19
|
+
font-family: var(--font-head);
|
|
20
|
+
color: var(--fg-primary);
|
|
21
|
+
margin-top: 1.5em;
|
|
22
|
+
margin-bottom: 0.5em;
|
|
23
|
+
font-weight: 700;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.markdown-body h1 { font-size: calc(2em * var(--ui-scale)); border-bottom: 1px solid var(--border-color); padding-bottom: 0.3em; }
|
|
27
|
+
.markdown-body h2 { font-size: calc(1.5em * var(--ui-scale)); }
|
|
28
|
+
.markdown-body h3 { font-size: calc(1.2em * var(--ui-scale)); }
|
|
29
|
+
.markdown-body h4 { font-size: calc(1.05em * var(--ui-scale)); }
|
|
30
|
+
.markdown-body h5 { font-size: calc(0.95em * var(--ui-scale)); text-transform: uppercase; letter-spacing: 0.04em; }
|
|
31
|
+
.markdown-body h6 { font-size: calc(0.85em * var(--ui-scale)); text-transform: uppercase; letter-spacing: 0.06em; color: var(--fg-muted); }
|
|
32
|
+
.markdown-body p { margin-bottom: 1em; }
|
|
33
|
+
.markdown-body strong { font-weight: 700; }
|
|
34
|
+
.markdown-body em { font-style: italic; }
|
|
35
|
+
.markdown-body u,
|
|
36
|
+
.markdown-body ins {
|
|
37
|
+
text-decoration: underline;
|
|
38
|
+
text-underline-offset: 0.15em;
|
|
39
|
+
}
|
|
40
|
+
.markdown-body del { color: var(--fg-muted); }
|
|
41
|
+
.markdown-body code {
|
|
42
|
+
font-family: var(--font-mono);
|
|
43
|
+
background: var(--bg-inset);
|
|
44
|
+
padding: 0.2em 0.4em;
|
|
45
|
+
border-radius: 3px;
|
|
46
|
+
font-size: calc(0.85em * var(--ui-scale));
|
|
47
|
+
color: var(--fg-secondary);
|
|
48
|
+
}
|
|
49
|
+
.markdown-body pre {
|
|
50
|
+
background: var(--bg-inset);
|
|
51
|
+
padding: 1em;
|
|
52
|
+
overflow-x: auto;
|
|
53
|
+
border-radius: 4px;
|
|
54
|
+
border: 1px solid var(--border-color);
|
|
55
|
+
}
|
|
56
|
+
.markdown-body pre code {
|
|
57
|
+
background: transparent;
|
|
58
|
+
padding: 0;
|
|
59
|
+
font-size: calc(0.85em * var(--ui-scale));
|
|
60
|
+
color: inherit;
|
|
61
|
+
}
|
|
62
|
+
.markdown-body blockquote { border-left: 4px solid var(--accent); padding-left: 1em; color: var(--fg-muted); margin-left: 0; }
|
|
63
|
+
.markdown-body hr {
|
|
64
|
+
border: none;
|
|
65
|
+
border-top: 1px solid var(--border-color);
|
|
66
|
+
margin: 2em 0;
|
|
67
|
+
}
|
|
68
|
+
.markdown-body ul,
|
|
69
|
+
.markdown-body ol {
|
|
70
|
+
margin: 0.6em 0 1em;
|
|
71
|
+
padding-left: 1.8em;
|
|
72
|
+
}
|
|
73
|
+
.markdown-body ul {
|
|
74
|
+
list-style: disc outside;
|
|
75
|
+
}
|
|
76
|
+
.markdown-body ol {
|
|
77
|
+
list-style: decimal outside;
|
|
78
|
+
}
|
|
79
|
+
.markdown-body li {
|
|
80
|
+
display: list-item;
|
|
81
|
+
margin: 0.3em 0;
|
|
82
|
+
padding-left: 0.15em;
|
|
83
|
+
}
|
|
84
|
+
.markdown-body li > p {
|
|
85
|
+
margin: 0.2em 0;
|
|
86
|
+
}
|
|
87
|
+
.markdown-body ul ul,
|
|
88
|
+
.markdown-body ul ol,
|
|
89
|
+
.markdown-body ol ul,
|
|
90
|
+
.markdown-body ol ol {
|
|
91
|
+
margin: 0.35em 0 0.15em;
|
|
92
|
+
padding-left: 1.5em;
|
|
93
|
+
}
|
|
94
|
+
.markdown-body ul ul { list-style-type: circle; }
|
|
95
|
+
.markdown-body ul ul ul { list-style-type: square; }
|
|
96
|
+
.markdown-body ol ol { list-style-type: lower-alpha; }
|
|
97
|
+
.markdown-body ol ol ol { list-style-type: lower-roman; }
|
|
98
|
+
.markdown-body .md-task-list-item {
|
|
99
|
+
list-style: none;
|
|
100
|
+
padding-left: 0.1em;
|
|
101
|
+
}
|
|
102
|
+
.markdown-body .md-task-list-item > .md-checkbox,
|
|
103
|
+
.markdown-body .md-task-list-item > input[type="checkbox"] {
|
|
104
|
+
margin: 0.15em 0.6em 0 0;
|
|
105
|
+
transform: translateX(-0.35em);
|
|
106
|
+
}
|
|
107
|
+
.markdown-body .md-checkbox,
|
|
108
|
+
.markdown-body input[type="checkbox"] {
|
|
109
|
+
vertical-align: middle;
|
|
110
|
+
}
|
|
111
|
+
.markdown-body li::marker {
|
|
112
|
+
color: var(--fg-muted);
|
|
113
|
+
}
|
|
114
|
+
.markdown-body li[data-has-nested-list="true"]::marker {
|
|
115
|
+
content: "";
|
|
116
|
+
}
|
|
117
|
+
.markdown-body a {
|
|
118
|
+
color: var(--accent);
|
|
119
|
+
text-decoration: underline;
|
|
120
|
+
text-decoration-thickness: 1px;
|
|
121
|
+
text-underline-offset: 0.2em;
|
|
122
|
+
cursor: pointer;
|
|
123
|
+
}
|
|
124
|
+
.markdown-body a:visited { color: var(--fg-secondary); }
|
|
125
|
+
.markdown-body a:hover,
|
|
126
|
+
.markdown-body a:focus-visible {
|
|
127
|
+
color: var(--fg-primary);
|
|
128
|
+
text-decoration-color: var(--accent);
|
|
129
|
+
}
|
|
130
|
+
.markdown-body a::selection {
|
|
131
|
+
background: var(--accent);
|
|
132
|
+
color: var(--bg-panel);
|
|
133
|
+
}
|
|
134
|
+
.markdown-body img { max-width: 100%; }
|
|
135
|
+
.markdown-body figure { margin: 1.5em 0; }
|
|
136
|
+
.markdown-body figcaption { color: var(--fg-muted); font-size: calc(0.85em * var(--ui-scale)); text-align: center; }
|
|
137
|
+
.markdown-body sup,
|
|
138
|
+
.markdown-body sub {
|
|
139
|
+
font-size: 0.75em;
|
|
140
|
+
line-height: 0;
|
|
141
|
+
position: relative;
|
|
142
|
+
vertical-align: baseline;
|
|
143
|
+
}
|
|
144
|
+
.markdown-body sup {
|
|
145
|
+
top: -0.4em;
|
|
146
|
+
}
|
|
147
|
+
.markdown-body sub {
|
|
148
|
+
bottom: -0.2em;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/* Table Styles */
|
|
152
|
+
.markdown-body table,
|
|
153
|
+
.markdown-body .md-table {
|
|
154
|
+
width: 100%;
|
|
155
|
+
border-collapse: collapse;
|
|
156
|
+
margin-bottom: 1em;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.markdown-body th,
|
|
160
|
+
.markdown-body td,
|
|
161
|
+
.markdown-body .md-table-header,
|
|
162
|
+
.markdown-body .md-table-cell {
|
|
163
|
+
border: 1px solid var(--border-color);
|
|
164
|
+
padding: 6px 12px;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.markdown-body th,
|
|
168
|
+
.markdown-body .md-table-header {
|
|
169
|
+
background-color: var(--table-header-bg);
|
|
170
|
+
color: var(--table-header-fg);
|
|
171
|
+
font-weight: 700;
|
|
172
|
+
text-align: left;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.markdown-body caption,
|
|
176
|
+
.markdown-body .md-table-caption {
|
|
177
|
+
caption-side: top;
|
|
178
|
+
text-align: left;
|
|
179
|
+
font-weight: 700;
|
|
180
|
+
margin-bottom: 0.5em;
|
|
181
|
+
color: var(--fg-secondary);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.markdown-body thead th,
|
|
185
|
+
.markdown-body .md-table-head .md-table-header {
|
|
186
|
+
background: var(--table-header-bg);
|
|
187
|
+
color: var(--table-header-fg);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.markdown-body tbody tr:nth-child(even),
|
|
191
|
+
.markdown-body .md-table-body .md-table-row:nth-child(even) {
|
|
192
|
+
background: var(--table-row-secondary-bg);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.markdown-body tbody tr:nth-child(odd),
|
|
196
|
+
.markdown-body .md-table-body .md-table-row:nth-child(odd) {
|
|
197
|
+
background: var(--table-row-primary-bg);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* Syntax Highlighting overrides */
|
|
201
|
+
.markdown-body pre > div {
|
|
202
|
+
background: transparent !important;
|
|
203
|
+
padding: 0 !important;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.md-code-block {
|
|
207
|
+
display: flex;
|
|
208
|
+
flex-direction: column;
|
|
209
|
+
gap: 8px;
|
|
210
|
+
padding: 12px;
|
|
211
|
+
background: var(--bg-panel);
|
|
212
|
+
border: none;
|
|
213
|
+
border-radius: 6px;
|
|
214
|
+
margin-bottom: 1em;
|
|
215
|
+
overflow: hidden;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.md-code-header {
|
|
219
|
+
background: var(--bg-inset);
|
|
220
|
+
padding: 4px 12px;
|
|
221
|
+
font-family: var(--font-mono);
|
|
222
|
+
font-size: calc(0.7rem * var(--ui-scale));
|
|
223
|
+
border-bottom: 1px solid var(--border-color);
|
|
224
|
+
color: var(--fg-muted);
|
|
225
|
+
text-transform: uppercase;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.md-code-surface {
|
|
229
|
+
background: var(--code-block-bg, var(--bg-inset));
|
|
230
|
+
padding: 12px 14px;
|
|
231
|
+
border-radius: 6px;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.md-code-surface pre,
|
|
235
|
+
.md-code-surface pre > code,
|
|
236
|
+
.md-code-surface > div {
|
|
237
|
+
background: transparent !important;
|
|
238
|
+
padding: 0 !important;
|
|
239
|
+
margin: 0 !important;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
@media print {
|
|
243
|
+
.markdown-body {
|
|
244
|
+
font-size: calc(11pt * var(--ui-scale));
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.markdown-body h1,
|
|
248
|
+
.markdown-body h2,
|
|
249
|
+
.markdown-body h3,
|
|
250
|
+
.markdown-body h4,
|
|
251
|
+
.markdown-body h5,
|
|
252
|
+
.markdown-body h6 {
|
|
253
|
+
break-after: avoid;
|
|
254
|
+
page-break-after: avoid;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.markdown-body table,
|
|
258
|
+
.markdown-body pre,
|
|
259
|
+
.markdown-body blockquote,
|
|
260
|
+
.markdown-body ul,
|
|
261
|
+
.markdown-body ol,
|
|
262
|
+
.markdown-body img,
|
|
263
|
+
.markdown-body .md-code-block,
|
|
264
|
+
.markdown-body .md-table {
|
|
265
|
+
break-inside: avoid;
|
|
266
|
+
page-break-inside: avoid;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/* Lattice Architect: Core Variable Contract */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Layout Dimensions - Structural Chassis (Hardcoded/Deterministic) */
|
|
5
|
+
--ui-scale: 1;
|
|
6
|
+
--header-height: calc(32px * var(--ui-scale));
|
|
7
|
+
--rail-width: calc(44px * var(--ui-scale));
|
|
8
|
+
--rail-height: calc(44px * var(--ui-scale));
|
|
9
|
+
--sidebar-width: calc(200px * var(--ui-scale));
|
|
10
|
+
--status-height: calc(20px * var(--ui-scale));
|
|
11
|
+
--tab-height: var(--header-height);
|
|
12
|
+
--panel-header-height: calc(30px * var(--ui-scale));
|
|
13
|
+
--rail-btn-size: calc(30px * var(--ui-scale));
|
|
14
|
+
|
|
15
|
+
/* Fallback Values: Ensures layout survives theme loading failure */
|
|
16
|
+
--bg-app: #c0c0c0;
|
|
17
|
+
--bg-panel: #ececec;
|
|
18
|
+
--bg-inset: #dcdcdc;
|
|
19
|
+
|
|
20
|
+
--border-color: #000000;
|
|
21
|
+
--border-width: 2px;
|
|
22
|
+
|
|
23
|
+
--fg-primary: #000000;
|
|
24
|
+
--fg-secondary: #333333;
|
|
25
|
+
--fg-muted: #666666;
|
|
26
|
+
|
|
27
|
+
--accent: #ff3e00;
|
|
28
|
+
|
|
29
|
+
--table-header-bg: var(--bg-inset);
|
|
30
|
+
--table-header-fg: var(--fg-primary);
|
|
31
|
+
--table-row-primary-bg: var(--bg-panel);
|
|
32
|
+
--table-row-secondary-bg: var(--bg-inset);
|
|
33
|
+
|
|
34
|
+
--status-ok: #00cc00;
|
|
35
|
+
--status-warn: #ff8800;
|
|
36
|
+
--status-error: #cc0000;
|
|
37
|
+
|
|
38
|
+
/* Structure Settings */
|
|
39
|
+
--app-gap: calc(4px * var(--ui-scale));
|
|
40
|
+
--texture-opacity: 0.05;
|
|
41
|
+
--editor-padding: calc(24px * var(--ui-scale));
|
|
42
|
+
--file-indent-base: calc(12px * var(--ui-scale));
|
|
43
|
+
--file-indent-unit: calc(12px * var(--ui-scale));
|
|
44
|
+
--c-explorer-hover: rgba(0, 0, 0, 0.06);
|
|
45
|
+
--c-explorer-selected: var(--accent);
|
|
46
|
+
--c-explorer-selected-text: #ffffff;
|
|
47
|
+
--c-explorer-drag-bg: rgba(255, 255, 255, 0.08);
|
|
48
|
+
|
|
49
|
+
/* Fonts - Industrial Stack */
|
|
50
|
+
--font-ui: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
51
|
+
--font-mono: 'JetBrains Mono', 'IBM Plex Mono', Menlo, monospace;
|
|
52
|
+
--font-head: 'Inter', sans-serif;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Base reset: The Chassis Grid logic is non-themeable for stability */
|
|
56
|
+
body {
|
|
57
|
+
background-color: var(--bg-app);
|
|
58
|
+
color: var(--fg-primary);
|
|
59
|
+
font-family: var(--font-ui);
|
|
60
|
+
font-size: calc(12px * var(--ui-scale));
|
|
61
|
+
margin: 0;
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
cursor: default;
|
|
64
|
+
-webkit-font-smoothing: antialiased;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
* {
|
|
68
|
+
box-sizing: border-box;
|
|
69
|
+
border-radius: 0 !important; /* Zero-radius mandate */
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
input, textarea, button {
|
|
73
|
+
font-family: inherit;
|
|
74
|
+
font-size: inherit;
|
|
75
|
+
outline: none;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
button {
|
|
79
|
+
cursor: pointer;
|
|
80
|
+
text-transform: uppercase;
|
|
81
|
+
font-weight: 900;
|
|
82
|
+
letter-spacing: 0.02em;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Scaled icon sizing for Lucide SVGs */
|
|
86
|
+
svg.lucide {
|
|
87
|
+
display: inline-block;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
svg.lucide[width="10"] {
|
|
91
|
+
width: calc(10px * var(--ui-scale));
|
|
92
|
+
height: calc(10px * var(--ui-scale));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
svg.lucide[width="12"] {
|
|
96
|
+
width: calc(12px * var(--ui-scale));
|
|
97
|
+
height: calc(12px * var(--ui-scale));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
svg.lucide[width="14"] {
|
|
101
|
+
width: calc(14px * var(--ui-scale));
|
|
102
|
+
height: calc(14px * var(--ui-scale));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
svg.lucide[width="16"] {
|
|
106
|
+
width: calc(16px * var(--ui-scale));
|
|
107
|
+
height: calc(16px * var(--ui-scale));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
svg.lucide[width="18"] {
|
|
111
|
+
width: calc(18px * var(--ui-scale));
|
|
112
|
+
height: calc(18px * var(--ui-scale));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
svg.lucide[width="24"] {
|
|
116
|
+
width: calc(24px * var(--ui-scale));
|
|
117
|
+
height: calc(24px * var(--ui-scale));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
svg.lucide[width="48"] {
|
|
121
|
+
width: calc(48px * var(--ui-scale));
|
|
122
|
+
height: calc(48px * var(--ui-scale));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* Scrollbar Styling - Deterministic */
|
|
126
|
+
::-webkit-scrollbar { width: 8px; height: 8px; }
|
|
127
|
+
::-webkit-scrollbar-track { background: var(--bg-app); border-left: var(--border-width) solid var(--border-color); }
|
|
128
|
+
::-webkit-scrollbar-thumb { background: var(--fg-primary); border: 2px solid var(--bg-panel); }
|
|
129
|
+
::-webkit-scrollbar-thumb:hover { background: var(--accent); }
|