twntyx-css 1.0.2 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/llm/components/ai-orb.json +0 -1
  2. package/llm/components/ai-perl.json +5 -13
  3. package/llm/components/all-components.json +13 -5
  4. package/llm/components/{banner-marketplace.json → banner-funding.json} +8 -8
  5. package/llm/components/breadcrumb.json +0 -1
  6. package/llm/components/button-container.json +1 -0
  7. package/llm/components/chat-ai.json +100 -6
  8. package/llm/components/chat-footer.json +24 -3
  9. package/llm/components/checkmark.json +0 -1
  10. package/llm/components/command-palette.json +0 -1
  11. package/llm/components/countdown.json +1 -1
  12. package/llm/components/divider.json +1 -1
  13. package/llm/components/kbd.json +1 -1
  14. package/llm/components/key-value.json +2 -10
  15. package/llm/components/{skeleton.json → loader-skeleton.json} +7 -5
  16. package/llm/components/{loader.json → loader-symbol.json} +8 -10
  17. package/llm/components/{empty-state.json → loader-text.json} +22 -20
  18. package/llm/components/progress-bullet.json +0 -1
  19. package/llm/components/state.json +2 -1
  20. package/llm/components/stepper.json +1 -1
  21. package/llm/components/steps.json +6 -95
  22. package/llm/components/surface.json +2 -0
  23. package/llm/components/tabs.json +1 -0
  24. package/llm/components/{input-group.json → template-navbar.json} +28 -43
  25. package/llm/components/text-input.json +8 -169
  26. package/llm/components/toast.json +0 -2
  27. package/llm/components/tooltip.json +1 -1
  28. package/llm/examples/ai-perl.html +1 -1
  29. package/llm/examples/banner-funding.html +1 -0
  30. package/llm/examples/chat-ai.html +1 -1
  31. package/llm/examples/chat-footer.html +1 -1
  32. package/llm/examples/key-value.html +1 -1
  33. package/llm/examples/loader-skeleton.html +1 -0
  34. package/llm/examples/loader-symbol.html +1 -0
  35. package/llm/examples/loader-text.html +1 -0
  36. package/llm/examples/steps.html +1 -1
  37. package/llm/examples/template-navbar.html +1 -0
  38. package/llm/index.json +73 -88
  39. package/llm/patterns.json +2 -2
  40. package/llm/tokens.json +657 -367
  41. package/package.json +1 -1
  42. package/styles/ai.css +3 -7
  43. package/styles/animation.css +228 -94
  44. package/styles/button.css +50 -39
  45. package/styles/card.css +3 -3
  46. package/styles/colors.css +525 -283
  47. package/styles/datepicker.css +8 -15
  48. package/styles/divider.css +1 -1
  49. package/styles/form.css +6 -8
  50. package/styles/globals.css +62 -64
  51. package/styles/key-value.css +4 -3
  52. package/styles/loader.css +25 -31
  53. package/styles/logotype.css +6 -6
  54. package/styles/scrollbar.css +2 -2
  55. package/styles/shared.css +17 -17
  56. package/styles/skeleton.css +2 -1
  57. package/styles/state.css +109 -97
  58. package/styles/steps.css +2 -2
  59. package/styles/surface.css +74 -90
  60. package/styles/table.css +3 -3
  61. package/styles/toast.css +3 -5
  62. package/llm/components/navbar.json +0 -158
  63. package/llm/examples/banner-marketplace.html +0 -1
  64. package/llm/examples/empty-state.html +0 -1
  65. package/llm/examples/input-group.html +0 -1
  66. package/llm/examples/loader.html +0 -1
  67. package/llm/examples/navbar.html +0 -1
  68. package/llm/examples/skeleton.html +0 -1
  69. package/styles/empty-state.css +0 -48
  70. package/styles/navbar.css +0 -48
@@ -69,7 +69,6 @@
69
69
  "core-ui-500",
70
70
  "core-ui-600",
71
71
  "core-white",
72
- "text-default",
73
72
  "text-inverted"
74
73
  ],
75
74
  "examples": [
@@ -1,18 +1,11 @@
1
1
  {
2
2
  "id": "ai-perl",
3
- "name": "Perl",
4
- "status": "stable",
5
- "summary": "Animated AI loader with circular glow ring and letter pulse.",
3
+ "name": "Ai Perl",
4
+ "status": "preview",
5
+ "summary": "Documentation and contract metadata for Ai Perl in the twntyX design system.",
6
6
  "keywords": [
7
- "ai",
8
7
  "ai perl",
9
- "ai-perl",
10
- "animation",
11
- "generating",
12
- "loading",
13
- "overlay",
14
- "perl",
15
- "spinner"
8
+ "ai-perl"
16
9
  ],
17
10
  "sourcePaths": [
18
11
  "app/design-system/ai-perl/page.js",
@@ -69,14 +62,13 @@
69
62
  "core-ui-500",
70
63
  "core-ui-600",
71
64
  "core-white",
72
- "text-default",
73
65
  "text-inverted"
74
66
  ],
75
67
  "examples": [
76
68
  {
77
69
  "id": "canonical",
78
70
  "file": "examples/ai-perl.html",
79
- "description": "Minimal canonical Perl usage."
71
+ "description": "Minimal canonical Ai Perl usage."
80
72
  }
81
73
  ],
82
74
  "composition": {
@@ -49,27 +49,35 @@
49
49
  "class"
50
50
  ],
51
51
  "required": [],
52
- "dataAttributes": [
53
- "data-value"
54
- ],
52
+ "dataAttributes": [],
55
53
  "roles": [
54
+ "progressbar",
56
55
  "separator",
57
56
  "status"
58
57
  ],
59
58
  "aria": [
60
59
  "aria-current",
61
- "aria-label"
60
+ "aria-hidden",
61
+ "aria-label",
62
+ "aria-valuemax",
63
+ "aria-valuemin",
64
+ "aria-valuenow"
62
65
  ]
63
66
  },
64
67
  "a11y": {
65
68
  "interactive": false,
66
69
  "requiredRoles": [
70
+ "progressbar",
67
71
  "separator",
68
72
  "status"
69
73
  ],
70
74
  "requiredAria": [
71
75
  "aria-current",
72
- "aria-label"
76
+ "aria-hidden",
77
+ "aria-label",
78
+ "aria-valuemax",
79
+ "aria-valuemin",
80
+ "aria-valuenow"
73
81
  ],
74
82
  "keyboardSupport": [],
75
83
  "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
@@ -1,5 +1,5 @@
1
1
  {
2
- "id": "banner-marketplace",
2
+ "id": "banner-funding",
3
3
  "name": "Funding banner",
4
4
  "status": "preview",
5
5
  "summary": "A marketing banner component designed for promoting fundraising workflows and investor outreach actions.",
@@ -8,8 +8,8 @@
8
8
  "alert",
9
9
  "announcement",
10
10
  "banner",
11
- "banner marketplace",
12
- "banner-marketplace",
11
+ "banner funding",
12
+ "banner-funding",
13
13
  "capital raise",
14
14
  "fundraising",
15
15
  "investor",
@@ -19,17 +19,17 @@
19
19
  "promotion"
20
20
  ],
21
21
  "sourcePaths": [
22
- "app/design-system/banner-marketplace/page.js"
22
+ "app/design-system/banner-funding/page.js"
23
23
  ],
24
24
  "apiModel": "html-class",
25
- "baseClass": "banner-marketplace",
25
+ "baseClass": "banner-funding",
26
26
  "variants": [],
27
27
  "sizes": [],
28
28
  "states": [],
29
29
  "structure": {
30
30
  "rootElement": "div",
31
31
  "requiredClasses": [
32
- "banner-marketplace"
32
+ "banner-funding"
33
33
  ],
34
34
  "optionalClasses": [],
35
35
  "requiredChildren": [],
@@ -52,7 +52,7 @@
52
52
  "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
53
53
  },
54
54
  "dos": [
55
- "Apply the base class 'banner-marketplace' on the root element.",
55
+ "Apply the base class 'banner-funding' on the root element.",
56
56
  "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
57
57
  "Keep semantic color usage aligned with token classes for light/dark support."
58
58
  ],
@@ -65,7 +65,7 @@
65
65
  "examples": [
66
66
  {
67
67
  "id": "canonical",
68
- "file": "examples/banner-marketplace.html",
68
+ "file": "examples/banner-funding.html",
69
69
  "description": "Minimal canonical Funding banner usage."
70
70
  }
71
71
  ],
@@ -21,7 +21,6 @@
21
21
  "assets/styles/command.css",
22
22
  "assets/styles/form-text-select.css",
23
23
  "assets/styles/menu.css",
24
- "assets/styles/navbar.css",
25
24
  "assets/styles/pagination.css",
26
25
  "assets/styles/progress.css",
27
26
  "assets/styles/steps.css",
@@ -109,6 +109,7 @@
109
109
  "core-ui-800",
110
110
  "core-white",
111
111
  "line-attention",
112
+ "line-brand",
112
113
  "line-default",
113
114
  "line-error",
114
115
  "line-focus",
@@ -17,19 +17,64 @@
17
17
  "new message state"
18
18
  ],
19
19
  "sourcePaths": [
20
- "app/design-system/chat-ai/page.js"
20
+ "app/design-system/chat-ai/page.js",
21
+ "assets/styles/button.css",
22
+ "assets/styles/chat.css",
23
+ "assets/styles/form-text-select.css",
24
+ "assets/styles/panel.css",
25
+ "assets/styles/toast.css"
21
26
  ],
22
27
  "apiModel": "html-class",
23
28
  "baseClass": "chat-ai",
24
- "variants": [],
25
- "sizes": [],
26
- "states": [],
29
+ "variants": [
30
+ {
31
+ "name": "chat-secondary",
32
+ "className": "chat-secondary",
33
+ "description": "AI chat visual variant styling."
34
+ }
35
+ ],
36
+ "sizes": [
37
+ {
38
+ "name": "chat-loop-stack-lg",
39
+ "className": "chat-loop-stack-lg",
40
+ "description": "Large min-height variant for loop stack."
41
+ }
42
+ ],
43
+ "states": [
44
+ {
45
+ "name": "chat-loop-loading",
46
+ "className": "chat-loop-loading",
47
+ "description": "Animated loading row in loop simulation."
48
+ },
49
+ {
50
+ "name": "chat-loop-message",
51
+ "className": "chat-loop-message",
52
+ "description": "Animated resolved message row in loop simulation."
53
+ },
54
+ {
55
+ "name": "is-owner",
56
+ "className": "is-owner",
57
+ "description": "Marks messages authored by the current user."
58
+ },
59
+ {
60
+ "name": "is-loading",
61
+ "className": "is-loading",
62
+ "description": "Shows loading placeholder behavior for a message group."
63
+ }
64
+ ],
27
65
  "structure": {
28
66
  "rootElement": "div",
29
67
  "requiredClasses": [
30
68
  "chat-ai"
31
69
  ],
32
- "optionalClasses": [],
70
+ "optionalClasses": [
71
+ "chat-secondary",
72
+ "chat-loop-stack-lg",
73
+ "chat-loop-loading",
74
+ "chat-loop-message",
75
+ "is-owner",
76
+ "is-loading"
77
+ ],
33
78
  "requiredChildren": [],
34
79
  "optionalChildren": []
35
80
  },
@@ -69,7 +114,56 @@
69
114
  "Do not rely on undocumented internal classes in production templates.",
70
115
  "Do not remove required accessibility attributes when component is interactive."
71
116
  ],
72
- "tokenUsage": [],
117
+ "tokenUsage": [
118
+ "background-brand",
119
+ "background-brand-active",
120
+ "background-error",
121
+ "background-error-active",
122
+ "background-info",
123
+ "background-info-active",
124
+ "background-inverted",
125
+ "background-page",
126
+ "background-success",
127
+ "background-success-active",
128
+ "background-surface",
129
+ "background-surface-elevated",
130
+ "background-surface-sunken",
131
+ "background-warning",
132
+ "background-warning-active",
133
+ "brand-default",
134
+ "brand-moderate",
135
+ "brand-strong",
136
+ "core-black",
137
+ "core-ui-100",
138
+ "core-ui-50",
139
+ "core-ui-700",
140
+ "core-ui-800",
141
+ "core-ui-900",
142
+ "core-white",
143
+ "line-default",
144
+ "line-error",
145
+ "line-focus",
146
+ "line-highlight",
147
+ "line-info",
148
+ "line-strong",
149
+ "line-success",
150
+ "line-warning",
151
+ "text-attention",
152
+ "text-brand",
153
+ "text-brand-active",
154
+ "text-brand-hover",
155
+ "text-default",
156
+ "text-disabled",
157
+ "text-error",
158
+ "text-info",
159
+ "text-inverted",
160
+ "text-link",
161
+ "text-link-hover",
162
+ "text-secondary",
163
+ "text-success",
164
+ "text-tertiary",
165
+ "text-warning"
166
+ ],
73
167
  "examples": [
74
168
  {
75
169
  "id": "canonical",
@@ -22,15 +22,36 @@
22
22
  ],
23
23
  "apiModel": "html-class",
24
24
  "baseClass": "chat-footer",
25
- "variants": [],
25
+ "variants": [
26
+ {
27
+ "name": "chat-footer-full",
28
+ "className": "chat-footer-full",
29
+ "description": "Extended footer layout for full chat composer demo."
30
+ },
31
+ {
32
+ "name": "chat-input-full",
33
+ "className": "chat-input-full",
34
+ "description": "Expanded input row behavior used in full footer mode."
35
+ }
36
+ ],
26
37
  "sizes": [],
27
- "states": [],
38
+ "states": [
39
+ {
40
+ "name": "is-listening",
41
+ "className": "is-listening",
42
+ "description": "Active dictation state with listening indicator."
43
+ }
44
+ ],
28
45
  "structure": {
29
46
  "rootElement": "div",
30
47
  "requiredClasses": [
31
48
  "chat-footer"
32
49
  ],
33
- "optionalClasses": [],
50
+ "optionalClasses": [
51
+ "chat-footer-full",
52
+ "chat-input-full",
53
+ "is-listening"
54
+ ],
34
55
  "requiredChildren": [],
35
56
  "optionalChildren": []
36
57
  },
@@ -25,7 +25,6 @@
25
25
  "assets/styles/command.css",
26
26
  "assets/styles/form-text-select.css",
27
27
  "assets/styles/menu.css",
28
- "assets/styles/navbar.css",
29
28
  "assets/styles/pagination.css",
30
29
  "assets/styles/progress.css",
31
30
  "assets/styles/steps.css",
@@ -23,7 +23,6 @@
23
23
  "assets/styles/command.css",
24
24
  "assets/styles/form-text-select.css",
25
25
  "assets/styles/menu.css",
26
- "assets/styles/navbar.css",
27
26
  "assets/styles/pagination.css",
28
27
  "assets/styles/progress.css",
29
28
  "assets/styles/steps.css",
@@ -81,9 +81,9 @@
81
81
  "Do not remove required accessibility attributes when component is interactive."
82
82
  ],
83
83
  "tokenUsage": [
84
+ "background-brand",
84
85
  "background-surface",
85
86
  "background-surface-elevated",
86
- "brand-default",
87
87
  "brand-moderate",
88
88
  "line-brand",
89
89
  "line-default",
@@ -81,8 +81,8 @@
81
81
  "Do not remove required accessibility attributes when component is interactive."
82
82
  ],
83
83
  "tokenUsage": [
84
- "line-default",
85
84
  "line-highlight",
85
+ "text-default",
86
86
  "text-tertiary"
87
87
  ],
88
88
  "examples": [
@@ -104,10 +104,10 @@
104
104
  "Do not remove required accessibility attributes when component is interactive."
105
105
  ],
106
106
  "tokenUsage": [
107
+ "background-brand",
107
108
  "background-page",
108
109
  "background-surface",
109
110
  "background-surface-elevated",
110
- "brand-default",
111
111
  "brand-moderate",
112
112
  "line-brand",
113
113
  "line-default",
@@ -17,13 +17,7 @@
17
17
  ],
18
18
  "apiModel": "html-class",
19
19
  "baseClass": "key-value",
20
- "variants": [
21
- {
22
- "name": "key-value-compact",
23
- "className": "key-value-compact",
24
- "description": "Compact spacing variant."
25
- }
26
- ],
20
+ "variants": [],
27
21
  "sizes": [],
28
22
  "states": [],
29
23
  "structure": {
@@ -31,9 +25,7 @@
31
25
  "requiredClasses": [
32
26
  "key-value"
33
27
  ],
34
- "optionalClasses": [
35
- "key-value-compact"
36
- ],
28
+ "optionalClasses": [],
37
29
  "requiredChildren": [],
38
30
  "optionalChildren": []
39
31
  },
@@ -1,12 +1,14 @@
1
1
  {
2
- "id": "skeleton",
3
- "name": "Skeleton",
2
+ "id": "loader-skeleton",
3
+ "name": "Skeleton loader",
4
4
  "status": "stable",
5
5
  "summary": "Skeleton loaders provide visual placeholders for content while it loads, improving perceived performance.",
6
6
  "keywords": [
7
7
  "animation",
8
8
  "fallback",
9
9
  "loader",
10
+ "loader skeleton",
11
+ "loader-skeleton",
10
12
  "loading",
11
13
  "placeholder",
12
14
  "preview",
@@ -19,7 +21,7 @@
19
21
  "wave"
20
22
  ],
21
23
  "sourcePaths": [
22
- "app/design-system/skeleton/page.js",
24
+ "app/design-system/loader-skeleton/page.js",
23
25
  "assets/styles/skeleton.css"
24
26
  ],
25
27
  "apiModel": "html-class",
@@ -68,8 +70,8 @@
68
70
  "examples": [
69
71
  {
70
72
  "id": "canonical",
71
- "file": "examples/skeleton.html",
72
- "description": "Minimal canonical Skeleton usage."
73
+ "file": "examples/loader-skeleton.html",
74
+ "description": "Minimal canonical Skeleton loader usage."
73
75
  }
74
76
  ],
75
77
  "composition": {
@@ -1,13 +1,15 @@
1
1
  {
2
- "id": "loader",
3
- "name": "Loader",
2
+ "id": "loader-symbol",
3
+ "name": "Symbol loader",
4
4
  "status": "stable",
5
- "summary": "Loading indicators and spinners to show content loading states.",
5
+ "summary": "Loading indicators and symbol-based spinners to show content loading states.",
6
6
  "keywords": [
7
7
  "animation",
8
8
  "busy",
9
9
  "indicator",
10
10
  "loader",
11
+ "loader symbol",
12
+ "loader-symbol",
11
13
  "loading",
12
14
  "processing",
13
15
  "progress",
@@ -16,7 +18,7 @@
16
18
  "wait"
17
19
  ],
18
20
  "sourcePaths": [
19
- "app/design-system/loader/page.js",
21
+ "app/design-system/loader-symbol/page.js",
20
22
  "assets/styles/loader.css"
21
23
  ],
22
24
  "apiModel": "html-class",
@@ -92,18 +94,14 @@
92
94
  "Do not remove required accessibility attributes when component is interactive."
93
95
  ],
94
96
  "tokenUsage": [
95
- "core-black",
96
- "core-ui-200",
97
- "core-ui-700",
98
- "core-white",
99
97
  "line-strong",
100
98
  "text-default"
101
99
  ],
102
100
  "examples": [
103
101
  {
104
102
  "id": "canonical",
105
- "file": "examples/loader.html",
106
- "description": "Minimal canonical Loader usage."
103
+ "file": "examples/loader-symbol.html",
104
+ "description": "Minimal canonical Symbol loader usage."
107
105
  }
108
106
  ],
109
107
  "composition": {
@@ -1,29 +1,33 @@
1
1
  {
2
- "id": "empty-state",
3
- "name": "Empty state",
2
+ "id": "loader-text",
3
+ "name": "Text loader",
4
4
  "status": "stable",
5
- "summary": "Empty state patterns to communicate no-content situations and guide next actions.",
5
+ "summary": "Animated loading text with configurable gradient colors for inline and page loading states.",
6
6
  "keywords": [
7
- "blank state",
8
- "empty state",
9
- "empty-state",
10
- "no data",
11
- "placeholder",
12
- "zero state"
7
+ "gradient",
8
+ "indicator",
9
+ "loader text",
10
+ "loader-text",
11
+ "loading",
12
+ "message",
13
+ "pulse",
14
+ "status",
15
+ "text loader",
16
+ "wait"
13
17
  ],
14
18
  "sourcePaths": [
15
- "app/design-system/empty-state/page.js",
16
- "assets/styles/empty-state.css"
19
+ "app/design-system/loader-text/page.js",
20
+ "assets/styles/loader.css"
17
21
  ],
18
22
  "apiModel": "html-class",
19
- "baseClass": "empty-state",
23
+ "baseClass": "loader-text",
20
24
  "variants": [],
21
25
  "sizes": [],
22
26
  "states": [],
23
27
  "structure": {
24
28
  "rootElement": "div",
25
29
  "requiredClasses": [
26
- "empty-state"
30
+ "loader-text"
27
31
  ],
28
32
  "optionalClasses": [],
29
33
  "requiredChildren": [],
@@ -46,7 +50,7 @@
46
50
  "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
47
51
  },
48
52
  "dos": [
49
- "Apply the base class 'empty-state' on the root element.",
53
+ "Apply the base class 'loader-text' on the root element.",
50
54
  "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
51
55
  "Keep semantic color usage aligned with token classes for light/dark support."
52
56
  ],
@@ -56,16 +60,14 @@
56
60
  "Do not remove required accessibility attributes when component is interactive."
57
61
  ],
58
62
  "tokenUsage": [
59
- "background-surface",
60
- "line-default",
61
- "text-secondary",
62
- "text-tertiary"
63
+ "line-strong",
64
+ "text-default"
63
65
  ],
64
66
  "examples": [
65
67
  {
66
68
  "id": "canonical",
67
- "file": "examples/empty-state.html",
68
- "description": "Minimal canonical Empty state usage."
69
+ "file": "examples/loader-text.html",
70
+ "description": "Minimal canonical Text loader usage."
69
71
  }
70
72
  ],
71
73
  "composition": {
@@ -35,7 +35,6 @@
35
35
  "assets/styles/command.css",
36
36
  "assets/styles/form-text-select.css",
37
37
  "assets/styles/menu.css",
38
- "assets/styles/navbar.css",
39
38
  "assets/styles/pagination.css",
40
39
  "assets/styles/progress.css",
41
40
  "assets/styles/steps.css",
@@ -110,8 +110,9 @@
110
110
  "Do not remove required accessibility attributes when component is interactive."
111
111
  ],
112
112
  "tokenUsage": [
113
+ "background-brand",
113
114
  "brand-default",
114
- "brand-soft",
115
+ "line-brand",
115
116
  "line-default",
116
117
  "line-error",
117
118
  "line-success",
@@ -63,9 +63,9 @@
63
63
  "Do not remove required accessibility attributes when component is interactive."
64
64
  ],
65
65
  "tokenUsage": [
66
+ "background-brand",
66
67
  "background-surface",
67
68
  "background-surface-elevated",
68
- "brand-default",
69
69
  "brand-moderate",
70
70
  "line-brand",
71
71
  "line-default",