@threelight/ui 0.2.0-alpha.0 → 0.2.0-alpha.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 +124 -95
- package/css/base.css +477 -352
- package/dist/index.d.ts +23 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -30
- package/dist/index.js.map +1 -1
- package/examples/index.html +102 -43
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,26 +8,40 @@ export declare const themeModes: readonly ["light", "dark"];
|
|
|
8
8
|
export type ThemeMode = (typeof themeModes)[number];
|
|
9
9
|
export declare const toneNames: readonly ["neutral", "primary", "info", "success", "warning", "danger"];
|
|
10
10
|
export type ToneName = (typeof toneNames)[number];
|
|
11
|
+
export declare const stateNames: readonly ["loading", "empty", "error"];
|
|
12
|
+
export type StateName = (typeof stateNames)[number];
|
|
11
13
|
export declare const themeAttributes: {
|
|
12
14
|
readonly root: "data-tl-root";
|
|
13
15
|
readonly theme: "data-tl-theme";
|
|
14
16
|
readonly mode: "data-tl-mode";
|
|
15
17
|
readonly tone: "data-tl-tone";
|
|
18
|
+
readonly state: "data-tl-state";
|
|
16
19
|
};
|
|
17
20
|
export declare const primitiveClasses: {
|
|
18
|
-
readonly
|
|
19
|
-
readonly
|
|
20
|
-
readonly
|
|
21
|
-
readonly
|
|
22
|
-
readonly
|
|
23
|
-
readonly form: readonly ["tl-field", "tl-input"];
|
|
21
|
+
readonly component: readonly ["tl-component-button", "tl-component-card", "tl-component-panel", "tl-component-input", "tl-component-badge", "tl-component-alert", "tl-component-display", "tl-component-heading", "tl-component-body", "tl-component-caption", "tl-component-meta", "tl-component-label", "tl-component-action-text", "tl-component-metric", "tl-component-code", "tl-component-field", "tl-component-help"];
|
|
22
|
+
readonly pattern: readonly ["tl-pattern-page-header", "tl-pattern-empty-state"];
|
|
23
|
+
readonly patternPart: readonly ["tl-pattern-page-header__content", "tl-pattern-page-header__actions", "tl-pattern-empty-state__content", "tl-pattern-empty-state__actions"];
|
|
24
|
+
readonly layout: readonly ["tl-layout-section", "tl-layout-stack", "tl-layout-cluster", "tl-layout-grid"];
|
|
25
|
+
readonly utility: readonly ["tl-utility-sr-only", "tl-utility-truncate"];
|
|
24
26
|
};
|
|
27
|
+
export declare const componentClasses: readonly ["tl-component-button", "tl-component-card", "tl-component-panel", "tl-component-input", "tl-component-badge", "tl-component-alert", "tl-component-display", "tl-component-heading", "tl-component-body", "tl-component-caption", "tl-component-meta", "tl-component-label", "tl-component-action-text", "tl-component-metric", "tl-component-code", "tl-component-field", "tl-component-help"];
|
|
28
|
+
export declare const patternClasses: readonly ["tl-pattern-page-header", "tl-pattern-empty-state"];
|
|
29
|
+
export declare const patternPartClasses: readonly ["tl-pattern-page-header__content", "tl-pattern-page-header__actions", "tl-pattern-empty-state__content", "tl-pattern-empty-state__actions"];
|
|
30
|
+
export declare const layoutClasses: readonly ["tl-layout-section", "tl-layout-stack", "tl-layout-cluster", "tl-layout-grid"];
|
|
31
|
+
export declare const utilityClasses: readonly ["tl-utility-sr-only", "tl-utility-truncate"];
|
|
25
32
|
export type PrimitiveGroup = keyof typeof primitiveClasses;
|
|
26
33
|
export type PrimitiveClass = (typeof primitiveClasses)[PrimitiveGroup][number];
|
|
27
|
-
export
|
|
34
|
+
export type ComponentClass = (typeof componentClasses)[number];
|
|
35
|
+
export type PatternClass = (typeof patternClasses)[number];
|
|
36
|
+
export type PatternPartClass = (typeof patternPartClasses)[number];
|
|
37
|
+
export type LayoutClass = (typeof layoutClasses)[number];
|
|
38
|
+
export type UtilityClass = (typeof utilityClasses)[number];
|
|
39
|
+
export declare const semanticTokenNames: readonly ["--tl-color-canvas", "--tl-color-surface", "--tl-color-layer", "--tl-color-content-primary", "--tl-color-content-secondary", "--tl-color-content-subtle", "--tl-color-border-subtle", "--tl-color-border-strong", "--tl-color-focus", "--tl-font-sans", "--tl-font-mono", "--tl-font-size-display", "--tl-font-size-heading", "--tl-font-size-body", "--tl-font-size-caption", "--tl-font-size-metric", "--tl-space-1", "--tl-space-2", "--tl-space-3", "--tl-space-4", "--tl-space-5", "--tl-space-6", "--tl-space-8", "--tl-space-10", "--tl-radius-sm", "--tl-radius-md", "--tl-radius-lg", "--tl-shadow-sm"];
|
|
28
40
|
export type SemanticTokenName = (typeof semanticTokenNames)[number];
|
|
29
|
-
export declare const toneTokenNames: ("--tl-primary-fill" | "--tl-info-fill" | "--tl-success-fill" | "--tl-warning-fill" | "--tl-danger-fill" | "--tl-primary-
|
|
41
|
+
export declare const toneTokenNames: ("--tl-color-primary-fill" | "--tl-color-info-fill" | "--tl-color-success-fill" | "--tl-color-warning-fill" | "--tl-color-danger-fill" | "--tl-color-primary-content" | "--tl-color-info-content" | "--tl-color-success-content" | "--tl-color-warning-content" | "--tl-color-danger-content" | "--tl-color-primary-soft" | "--tl-color-info-soft" | "--tl-color-success-soft" | "--tl-color-warning-soft" | "--tl-color-danger-soft" | "--tl-color-primary-border" | "--tl-color-info-border" | "--tl-color-success-border" | "--tl-color-warning-border" | "--tl-color-danger-border")[];
|
|
30
42
|
export type ToneTokenName = (typeof toneTokenNames)[number];
|
|
31
|
-
export declare const componentTokenNames: readonly ["--tl-component-background", "--tl-component-content", "--tl-component-content-muted", "--tl-component-border", "--tl-button-background", "--tl-button-content", "--tl-button-border", "--tl-badge-background", "--tl-badge-content", "--tl-badge-border"];
|
|
43
|
+
export declare const componentTokenNames: readonly ["--tl-component-background", "--tl-component-content", "--tl-component-content-muted", "--tl-component-border", "--tl-button-background", "--tl-button-content", "--tl-button-border", "--tl-button-disabled-background", "--tl-button-disabled-content", "--tl-button-disabled-border", "--tl-badge-background", "--tl-badge-content", "--tl-badge-border"];
|
|
32
44
|
export type ComponentTokenName = (typeof componentTokenNames)[number];
|
|
45
|
+
export declare const tokenNames: readonly ["--tl-color-canvas", "--tl-color-surface", "--tl-color-layer", "--tl-color-content-primary", "--tl-color-content-secondary", "--tl-color-content-subtle", "--tl-color-border-subtle", "--tl-color-border-strong", "--tl-color-focus", "--tl-font-sans", "--tl-font-mono", "--tl-font-size-display", "--tl-font-size-heading", "--tl-font-size-body", "--tl-font-size-caption", "--tl-font-size-metric", "--tl-space-1", "--tl-space-2", "--tl-space-3", "--tl-space-4", "--tl-space-5", "--tl-space-6", "--tl-space-8", "--tl-space-10", "--tl-radius-sm", "--tl-radius-md", "--tl-radius-lg", "--tl-shadow-sm", ...("--tl-color-primary-fill" | "--tl-color-info-fill" | "--tl-color-success-fill" | "--tl-color-warning-fill" | "--tl-color-danger-fill" | "--tl-color-primary-content" | "--tl-color-info-content" | "--tl-color-success-content" | "--tl-color-warning-content" | "--tl-color-danger-content" | "--tl-color-primary-soft" | "--tl-color-info-soft" | "--tl-color-success-soft" | "--tl-color-warning-soft" | "--tl-color-danger-soft" | "--tl-color-primary-border" | "--tl-color-info-border" | "--tl-color-success-border" | "--tl-color-warning-border" | "--tl-color-danger-border")[], "--tl-component-background", "--tl-component-content", "--tl-component-content-muted", "--tl-component-border", "--tl-button-background", "--tl-button-content", "--tl-button-border", "--tl-button-disabled-background", "--tl-button-disabled-content", "--tl-button-disabled-border", "--tl-badge-background", "--tl-badge-content", "--tl-badge-border"];
|
|
46
|
+
export type TokenName = (typeof tokenNames)[number];
|
|
33
47
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;CAGtB,CAAA;AAEV,eAAO,MAAM,aAAa,sBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;CAGtB,CAAA;AAEV,eAAO,MAAM,aAAa,sBAAuB,CAAA;AAEjD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,eAAO,MAAM,UAAU,4BAA6B,CAAA;AAEpD,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD,eAAO,MAAM,SAAS,yEAOZ,CAAA;AAEV,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjD,eAAO,MAAM,UAAU,wCAAyC,CAAA;AAEhE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;;;CAkCnB,CAAA;AAEV,eAAO,MAAM,gBAAgB,0YAA6B,CAAA;AAC1D,eAAO,MAAM,cAAc,+DAA2B,CAAA;AACtD,eAAO,MAAM,kBAAkB,uJAA+B,CAAA;AAC9D,eAAO,MAAM,aAAa,0FAA0B,CAAA;AACpD,eAAO,MAAM,cAAc,wDAA2B,CAAA;AAEtD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,gBAAgB,CAAA;AAE1D,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,gBAAgB,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,eAAO,MAAM,kBAAkB,4lBA6BrB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE,eAAO,MAAM,cAAc,4jBASzB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3D,eAAO,MAAM,mBAAmB,wWActB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAErE,eAAO,MAAM,UAAU,w/CAIb,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -12,51 +12,92 @@ export const toneNames = [
|
|
|
12
12
|
'warning',
|
|
13
13
|
'danger',
|
|
14
14
|
];
|
|
15
|
+
export const stateNames = ['loading', 'empty', 'error'];
|
|
15
16
|
export const themeAttributes = {
|
|
16
17
|
root: 'data-tl-root',
|
|
17
18
|
theme: 'data-tl-theme',
|
|
18
19
|
mode: 'data-tl-mode',
|
|
19
20
|
tone: 'data-tl-tone',
|
|
21
|
+
state: 'data-tl-state',
|
|
20
22
|
};
|
|
21
23
|
export const primitiveClasses = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
'tl-
|
|
26
|
-
'tl-
|
|
27
|
-
'tl-
|
|
28
|
-
'tl-
|
|
29
|
-
'tl-
|
|
30
|
-
'tl-
|
|
31
|
-
'tl-
|
|
32
|
-
'tl-
|
|
33
|
-
'tl-
|
|
34
|
-
'tl-
|
|
24
|
+
component: [
|
|
25
|
+
'tl-component-button',
|
|
26
|
+
'tl-component-card',
|
|
27
|
+
'tl-component-panel',
|
|
28
|
+
'tl-component-input',
|
|
29
|
+
'tl-component-badge',
|
|
30
|
+
'tl-component-alert',
|
|
31
|
+
'tl-component-display',
|
|
32
|
+
'tl-component-heading',
|
|
33
|
+
'tl-component-body',
|
|
34
|
+
'tl-component-caption',
|
|
35
|
+
'tl-component-meta',
|
|
36
|
+
'tl-component-label',
|
|
37
|
+
'tl-component-action-text',
|
|
38
|
+
'tl-component-metric',
|
|
39
|
+
'tl-component-code',
|
|
40
|
+
'tl-component-field',
|
|
41
|
+
'tl-component-help',
|
|
35
42
|
],
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
pattern: ['tl-pattern-page-header', 'tl-pattern-empty-state'],
|
|
44
|
+
patternPart: [
|
|
45
|
+
'tl-pattern-page-header__content',
|
|
46
|
+
'tl-pattern-page-header__actions',
|
|
47
|
+
'tl-pattern-empty-state__content',
|
|
48
|
+
'tl-pattern-empty-state__actions',
|
|
49
|
+
],
|
|
50
|
+
layout: [
|
|
51
|
+
'tl-layout-section',
|
|
52
|
+
'tl-layout-stack',
|
|
53
|
+
'tl-layout-cluster',
|
|
54
|
+
'tl-layout-grid',
|
|
55
|
+
],
|
|
56
|
+
utility: ['tl-utility-sr-only', 'tl-utility-truncate'],
|
|
39
57
|
};
|
|
58
|
+
export const componentClasses = primitiveClasses.component;
|
|
59
|
+
export const patternClasses = primitiveClasses.pattern;
|
|
60
|
+
export const patternPartClasses = primitiveClasses.patternPart;
|
|
61
|
+
export const layoutClasses = primitiveClasses.layout;
|
|
62
|
+
export const utilityClasses = primitiveClasses.utility;
|
|
40
63
|
export const semanticTokenNames = [
|
|
41
|
-
'--tl-canvas',
|
|
42
|
-
'--tl-surface',
|
|
43
|
-
'--tl-layer',
|
|
44
|
-
'--tl-content-primary',
|
|
45
|
-
'--tl-content-secondary',
|
|
46
|
-
'--tl-content-subtle',
|
|
47
|
-
'--tl-border-subtle',
|
|
48
|
-
'--tl-border-strong',
|
|
49
|
-
'--tl-focus',
|
|
64
|
+
'--tl-color-canvas',
|
|
65
|
+
'--tl-color-surface',
|
|
66
|
+
'--tl-color-layer',
|
|
67
|
+
'--tl-color-content-primary',
|
|
68
|
+
'--tl-color-content-secondary',
|
|
69
|
+
'--tl-color-content-subtle',
|
|
70
|
+
'--tl-color-border-subtle',
|
|
71
|
+
'--tl-color-border-strong',
|
|
72
|
+
'--tl-color-focus',
|
|
73
|
+
'--tl-font-sans',
|
|
74
|
+
'--tl-font-mono',
|
|
75
|
+
'--tl-font-size-display',
|
|
76
|
+
'--tl-font-size-heading',
|
|
77
|
+
'--tl-font-size-body',
|
|
78
|
+
'--tl-font-size-caption',
|
|
79
|
+
'--tl-font-size-metric',
|
|
80
|
+
'--tl-space-1',
|
|
81
|
+
'--tl-space-2',
|
|
82
|
+
'--tl-space-3',
|
|
83
|
+
'--tl-space-4',
|
|
84
|
+
'--tl-space-5',
|
|
85
|
+
'--tl-space-6',
|
|
86
|
+
'--tl-space-8',
|
|
87
|
+
'--tl-space-10',
|
|
88
|
+
'--tl-radius-sm',
|
|
89
|
+
'--tl-radius-md',
|
|
90
|
+
'--tl-radius-lg',
|
|
91
|
+
'--tl-shadow-sm',
|
|
50
92
|
];
|
|
51
93
|
export const toneTokenNames = toneNames.flatMap((tone) => {
|
|
52
94
|
if (tone === 'neutral')
|
|
53
95
|
return [];
|
|
54
96
|
return [
|
|
55
|
-
`--tl-${tone}-fill`,
|
|
56
|
-
`--tl-${tone}-
|
|
57
|
-
`--tl-${tone}-soft`,
|
|
58
|
-
`--tl-${tone}-
|
|
59
|
-
`--tl-${tone}-border`,
|
|
97
|
+
`--tl-color-${tone}-fill`,
|
|
98
|
+
`--tl-color-${tone}-content`,
|
|
99
|
+
`--tl-color-${tone}-soft`,
|
|
100
|
+
`--tl-color-${tone}-border`,
|
|
60
101
|
];
|
|
61
102
|
});
|
|
62
103
|
export const componentTokenNames = [
|
|
@@ -67,8 +108,16 @@ export const componentTokenNames = [
|
|
|
67
108
|
'--tl-button-background',
|
|
68
109
|
'--tl-button-content',
|
|
69
110
|
'--tl-button-border',
|
|
111
|
+
'--tl-button-disabled-background',
|
|
112
|
+
'--tl-button-disabled-content',
|
|
113
|
+
'--tl-button-disabled-border',
|
|
70
114
|
'--tl-badge-background',
|
|
71
115
|
'--tl-badge-content',
|
|
72
116
|
'--tl-badge-border',
|
|
73
117
|
];
|
|
118
|
+
export const tokenNames = [
|
|
119
|
+
...semanticTokenNames,
|
|
120
|
+
...toneTokenNames,
|
|
121
|
+
...componentTokenNames,
|
|
122
|
+
];
|
|
74
123
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,mDAAmD;CACpD,CAAA;AAEV,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAS,CAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/examples/index.html
CHANGED
|
@@ -3,66 +3,125 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<title>ThreeLight UI
|
|
6
|
+
<title>ThreeLight UI core examples</title>
|
|
7
7
|
<link rel="stylesheet" href="../css/base.css" />
|
|
8
|
-
<style>
|
|
9
|
-
body {
|
|
10
|
-
margin: 0;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.example-shell {
|
|
14
|
-
min-block-size: 100vh;
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
8
|
</head>
|
|
18
9
|
<body data-tl-root data-tl-theme="default" data-tl-mode="light">
|
|
19
|
-
<main class="
|
|
20
|
-
<header class="tl-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
<main class="tl-layout-section tl-layout-stack" style="--tl-gap: 2rem">
|
|
11
|
+
<header class="tl-pattern-page-header">
|
|
12
|
+
<div class="tl-pattern-page-header__content">
|
|
13
|
+
<p class="tl-component-label">Normal PageHeader</p>
|
|
14
|
+
<h1 class="tl-component-display">Release readiness</h1>
|
|
15
|
+
<p class="tl-component-body">
|
|
16
|
+
Governed HTML/CSS foundations with readable defaults and stable
|
|
17
|
+
adapter-ready class names.
|
|
18
|
+
</p>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="tl-pattern-page-header__actions">
|
|
21
|
+
<button class="tl-component-button" type="button">Preview</button>
|
|
22
|
+
<button class="tl-component-button" type="button" data-tl-tone="primary">
|
|
23
|
+
Approve
|
|
24
|
+
</button>
|
|
25
|
+
</div>
|
|
27
26
|
</header>
|
|
28
27
|
|
|
29
|
-
<section class="tl-grid" style="--tl-grid-min: 14rem">
|
|
30
|
-
<article class="tl-card tl-stack" data-tl-tone="success">
|
|
31
|
-
<span class="tl-badge" data-tl-tone="success">Passing</span>
|
|
32
|
-
<p class="tl-metric">98%</p>
|
|
33
|
-
<p class="tl-body">
|
|
28
|
+
<section class="tl-layout-grid" style="--tl-grid-min: 14rem">
|
|
29
|
+
<article class="tl-component-card tl-layout-stack" data-tl-tone="success">
|
|
30
|
+
<span class="tl-component-badge" data-tl-tone="success">Passing</span>
|
|
31
|
+
<p class="tl-component-metric">98%</p>
|
|
32
|
+
<p class="tl-component-body">
|
|
33
|
+
Generated labels meet the readable text floor.
|
|
34
|
+
</p>
|
|
34
35
|
</article>
|
|
35
36
|
|
|
36
|
-
<article class="tl-card tl-stack" data-tl-tone="warning">
|
|
37
|
-
<span class="tl-badge" data-tl-tone="warning">Pending</span>
|
|
38
|
-
<p class="tl-metric">3</p>
|
|
39
|
-
<p class="tl-body">
|
|
37
|
+
<article class="tl-component-card tl-layout-stack" data-tl-tone="warning">
|
|
38
|
+
<span class="tl-component-badge" data-tl-tone="warning">Pending</span>
|
|
39
|
+
<p class="tl-component-metric">3</p>
|
|
40
|
+
<p class="tl-component-body">
|
|
41
|
+
Surface tone changes need a second review.
|
|
42
|
+
</p>
|
|
40
43
|
</article>
|
|
41
44
|
|
|
42
|
-
<article class="tl-card tl-stack" data-tl-tone="info">
|
|
43
|
-
<span class="tl-badge" data-tl-tone="info">Quiet</span>
|
|
44
|
-
<p class="tl-metric">0</p>
|
|
45
|
-
<p class="tl-body">
|
|
45
|
+
<article class="tl-component-card tl-layout-stack" data-tl-tone="info">
|
|
46
|
+
<span class="tl-component-badge" data-tl-tone="info">Quiet</span>
|
|
47
|
+
<p class="tl-component-metric">0</p>
|
|
48
|
+
<p class="tl-component-body">
|
|
49
|
+
No active regressions in the release window.
|
|
50
|
+
</p>
|
|
46
51
|
</article>
|
|
47
52
|
</section>
|
|
48
53
|
|
|
49
|
-
<section class="tl-
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
<section class="tl-pattern-page-header">
|
|
55
|
+
<div class="tl-pattern-page-header__content">
|
|
56
|
+
<p class="tl-component-label">Long-text PageHeader</p>
|
|
57
|
+
<h2 class="tl-component-heading">
|
|
58
|
+
Generated release summary with Korean text, long English words,
|
|
59
|
+
numbers, and a URL
|
|
60
|
+
</h2>
|
|
61
|
+
<p class="tl-component-body">
|
|
62
|
+
한국어문장이공백없이길게이어져도부모폭을깨지않아야합니다.
|
|
63
|
+
The generated identifier
|
|
64
|
+
supercalifragilisticexpialidocious-release-window-20260611-00000000000000000042
|
|
65
|
+
and URL
|
|
66
|
+
<code class="tl-component-code"
|
|
67
|
+
>https://example.com/releases/2026/06/readability-window-review?candidate=alpha-contract-update</code
|
|
68
|
+
>
|
|
69
|
+
should wrap inside the container.
|
|
70
|
+
</p>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="tl-pattern-page-header__actions">
|
|
73
|
+
<button class="tl-component-button" type="button">Copy summary</button>
|
|
74
|
+
<button class="tl-component-button" type="button" data-tl-tone="info">
|
|
75
|
+
Open preview
|
|
60
76
|
</button>
|
|
61
|
-
<button class="tl-button" type="button" data-tl-tone="danger">
|
|
77
|
+
<button class="tl-component-button" type="button" data-tl-tone="danger">
|
|
62
78
|
Request changes
|
|
63
79
|
</button>
|
|
64
80
|
</div>
|
|
65
81
|
</section>
|
|
82
|
+
|
|
83
|
+
<section class="tl-pattern-empty-state" data-tl-state="empty">
|
|
84
|
+
<div class="tl-pattern-empty-state__content">
|
|
85
|
+
<p class="tl-component-label">EmptyState</p>
|
|
86
|
+
<h2 class="tl-component-heading">No reports are queued</h2>
|
|
87
|
+
<p class="tl-component-body">
|
|
88
|
+
Add a report or import a generated note. The empty state keeps the
|
|
89
|
+
text centered, wrapped, and readable without app-specific classes.
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="tl-pattern-empty-state__actions">
|
|
93
|
+
<button class="tl-component-button" type="button" data-tl-tone="primary">
|
|
94
|
+
Add report
|
|
95
|
+
</button>
|
|
96
|
+
<button class="tl-component-button" type="button">
|
|
97
|
+
Import generated note
|
|
98
|
+
</button>
|
|
99
|
+
</div>
|
|
100
|
+
</section>
|
|
101
|
+
|
|
102
|
+
<section
|
|
103
|
+
class="tl-component-alert tl-layout-stack"
|
|
104
|
+
data-tl-tone="danger"
|
|
105
|
+
data-tl-state="error"
|
|
106
|
+
role="status"
|
|
107
|
+
>
|
|
108
|
+
<h2 class="tl-component-heading">Stress case</h2>
|
|
109
|
+
<p class="tl-component-body">
|
|
110
|
+
Error copy can contain 한국어긴텍스트와VeryLongEnglishTokenWithoutSpaces,
|
|
111
|
+
the number 202606110000000000000000000000000000000042, and a URL:
|
|
112
|
+
<code class="tl-component-code"
|
|
113
|
+
>https://example.com/errors/readability/overflow-detection/follow-up</code
|
|
114
|
+
>.
|
|
115
|
+
</p>
|
|
116
|
+
<div class="tl-layout-cluster">
|
|
117
|
+
<button class="tl-component-button" type="button" data-tl-tone="primary">
|
|
118
|
+
Retry
|
|
119
|
+
</button>
|
|
120
|
+
<button class="tl-component-button" type="button">
|
|
121
|
+
View diagnostics
|
|
122
|
+
</button>
|
|
123
|
+
</div>
|
|
124
|
+
</section>
|
|
66
125
|
</main>
|
|
67
126
|
</body>
|
|
68
127
|
</html>
|