twntyx-css 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +105 -0
  2. package/llm/CHANGELOG.md +7 -0
  3. package/llm/components/ai-background.json +90 -0
  4. package/llm/components/ai-orb.json +91 -0
  5. package/llm/components/ai-perl.json +91 -0
  6. package/llm/components/all-components.json +104 -0
  7. package/llm/components/animation-references.json +84 -0
  8. package/llm/components/avatar.json +149 -0
  9. package/llm/components/badge.json +263 -0
  10. package/llm/components/banner-marketplace.json +81 -0
  11. package/llm/components/banner.json +120 -0
  12. package/llm/components/breadcrumb.json +169 -0
  13. package/llm/components/button-container.json +150 -0
  14. package/llm/components/button-feedback.json +155 -0
  15. package/llm/components/button.json +290 -0
  16. package/llm/components/card-assessment.json +93 -0
  17. package/llm/components/card-test.json +83 -0
  18. package/llm/components/card.json +94 -0
  19. package/llm/components/chat.json +155 -0
  20. package/llm/components/checkbox.json +186 -0
  21. package/llm/components/checkmark.json +175 -0
  22. package/llm/components/collapsible.json +100 -0
  23. package/llm/components/color-palette.json +79 -0
  24. package/llm/components/color-usage.json +83 -0
  25. package/llm/components/combobox.json +143 -0
  26. package/llm/components/command-palette.json +159 -0
  27. package/llm/components/countdown.json +113 -0
  28. package/llm/components/datepicker.json +151 -0
  29. package/llm/components/divider.json +104 -0
  30. package/llm/components/empty-state.json +80 -0
  31. package/llm/components/field.json +123 -0
  32. package/llm/components/fieldset.json +78 -0
  33. package/llm/components/file-upload.json +163 -0
  34. package/llm/components/form-example.json +82 -0
  35. package/llm/components/getting-started.json +70 -0
  36. package/llm/components/icons-reference.json +78 -0
  37. package/llm/components/illustrations-library.json +78 -0
  38. package/llm/components/input-group.json +94 -0
  39. package/llm/components/introduction.json +71 -0
  40. package/llm/components/join.json +105 -0
  41. package/llm/components/kbd.json +139 -0
  42. package/llm/components/key-value.json +86 -0
  43. package/llm/components/link.json +120 -0
  44. package/llm/components/loader.json +117 -0
  45. package/llm/components/logotype.json +75 -0
  46. package/llm/components/menu.json +192 -0
  47. package/llm/components/modal.json +167 -0
  48. package/llm/components/navbar.json +158 -0
  49. package/llm/components/pagination.json +122 -0
  50. package/llm/components/pie-chart.json +94 -0
  51. package/llm/components/popover.json +174 -0
  52. package/llm/components/progress-bullet.json +203 -0
  53. package/llm/components/progress-linear.json +129 -0
  54. package/llm/components/progress-radial.json +125 -0
  55. package/llm/components/radio.json +162 -0
  56. package/llm/components/range-slider.json +125 -0
  57. package/llm/components/scrollbar.json +96 -0
  58. package/llm/components/select-input.json +224 -0
  59. package/llm/components/shadows.json +107 -0
  60. package/llm/components/skeleton.json +84 -0
  61. package/llm/components/stacked-chart.json +100 -0
  62. package/llm/components/state.json +138 -0
  63. package/llm/components/stepper.json +95 -0
  64. package/llm/components/steps.json +177 -0
  65. package/llm/components/surface.json +181 -0
  66. package/llm/components/table.json +223 -0
  67. package/llm/components/tabs.json +147 -0
  68. package/llm/components/template-ai.json +80 -0
  69. package/llm/components/template-login.json +88 -0
  70. package/llm/components/template-stats.json +76 -0
  71. package/llm/components/text-input.json +275 -0
  72. package/llm/components/textarea.json +183 -0
  73. package/llm/components/timeline.json +142 -0
  74. package/llm/components/toast.json +164 -0
  75. package/llm/components/toggle.json +158 -0
  76. package/llm/components/tool-svg-to-base64.json +78 -0
  77. package/llm/components/tool-svg-to-icon-data.json +81 -0
  78. package/llm/components/tooltip.json +90 -0
  79. package/llm/examples/ai-background.html +1 -0
  80. package/llm/examples/ai-orb.html +1 -0
  81. package/llm/examples/ai-perl.html +1 -0
  82. package/llm/examples/all-components.html +1 -0
  83. package/llm/examples/animation-references.html +1 -0
  84. package/llm/examples/avatar.html +1 -0
  85. package/llm/examples/badge.html +1 -0
  86. package/llm/examples/banner-marketplace.html +1 -0
  87. package/llm/examples/banner.html +1 -0
  88. package/llm/examples/breadcrumb.html +1 -0
  89. package/llm/examples/button-container.html +1 -0
  90. package/llm/examples/button-feedback.html +1 -0
  91. package/llm/examples/button.html +3 -0
  92. package/llm/examples/card-assessment.html +1 -0
  93. package/llm/examples/card-test.html +1 -0
  94. package/llm/examples/card.html +1 -0
  95. package/llm/examples/chat.html +1 -0
  96. package/llm/examples/checkbox.html +1 -0
  97. package/llm/examples/checkmark.html +1 -0
  98. package/llm/examples/collapsible.html +1 -0
  99. package/llm/examples/color-palette.html +1 -0
  100. package/llm/examples/color-usage.html +1 -0
  101. package/llm/examples/combobox.html +1 -0
  102. package/llm/examples/command-palette.html +1 -0
  103. package/llm/examples/countdown.html +1 -0
  104. package/llm/examples/datepicker.html +1 -0
  105. package/llm/examples/divider.html +1 -0
  106. package/llm/examples/empty-state.html +1 -0
  107. package/llm/examples/field.html +1 -0
  108. package/llm/examples/fieldset.html +1 -0
  109. package/llm/examples/file-upload.html +1 -0
  110. package/llm/examples/form-example.html +1 -0
  111. package/llm/examples/getting-started.html +1 -0
  112. package/llm/examples/icons-reference.html +1 -0
  113. package/llm/examples/illustrations-library.html +1 -0
  114. package/llm/examples/input-group.html +1 -0
  115. package/llm/examples/introduction.html +1 -0
  116. package/llm/examples/join.html +1 -0
  117. package/llm/examples/kbd.html +1 -0
  118. package/llm/examples/key-value.html +1 -0
  119. package/llm/examples/link.html +1 -0
  120. package/llm/examples/loader.html +1 -0
  121. package/llm/examples/logotype.html +1 -0
  122. package/llm/examples/menu.html +1 -0
  123. package/llm/examples/modal.html +16 -0
  124. package/llm/examples/navbar.html +1 -0
  125. package/llm/examples/pagination.html +1 -0
  126. package/llm/examples/pie-chart.html +1 -0
  127. package/llm/examples/popover.html +1 -0
  128. package/llm/examples/progress-bullet.html +1 -0
  129. package/llm/examples/progress-linear.html +1 -0
  130. package/llm/examples/progress-radial.html +1 -0
  131. package/llm/examples/radio.html +1 -0
  132. package/llm/examples/range-slider.html +1 -0
  133. package/llm/examples/scrollbar.html +1 -0
  134. package/llm/examples/select-input.html +1 -0
  135. package/llm/examples/shadows.html +1 -0
  136. package/llm/examples/skeleton.html +1 -0
  137. package/llm/examples/stacked-chart.html +1 -0
  138. package/llm/examples/state.html +1 -0
  139. package/llm/examples/stepper.html +1 -0
  140. package/llm/examples/steps.html +1 -0
  141. package/llm/examples/surface.html +1 -0
  142. package/llm/examples/table.html +16 -0
  143. package/llm/examples/tabs.html +1 -0
  144. package/llm/examples/template-ai.html +1 -0
  145. package/llm/examples/template-login.html +1 -0
  146. package/llm/examples/template-stats.html +1 -0
  147. package/llm/examples/text-input.html +10 -0
  148. package/llm/examples/textarea.html +1 -0
  149. package/llm/examples/timeline.html +1 -0
  150. package/llm/examples/toast.html +5 -0
  151. package/llm/examples/toggle.html +1 -0
  152. package/llm/examples/tool-svg-to-base64.html +1 -0
  153. package/llm/examples/tool-svg-to-icon-data.html +1 -0
  154. package/llm/examples/tooltip.html +1 -0
  155. package/llm/index.json +1615 -0
  156. package/llm/llms.txt +18 -0
  157. package/llm/patterns.json +111 -0
  158. package/llm/rules.json +47 -0
  159. package/llm/schema.json +804 -0
  160. package/llm/tokens.json +3629 -0
  161. package/package.json +30 -0
  162. package/styles/ai.css +114 -0
  163. package/styles/animation.css +2493 -0
  164. package/styles/avatar.css +101 -0
  165. package/styles/background-ai.css +118 -0
  166. package/styles/badge.css +274 -0
  167. package/styles/banner.css +98 -0
  168. package/styles/breadcrumb.css +72 -0
  169. package/styles/button.css +621 -0
  170. package/styles/card.css +27 -0
  171. package/styles/chart-pie.css +39 -0
  172. package/styles/chart-stacked.css +91 -0
  173. package/styles/chat.css +506 -0
  174. package/styles/checkmark.css +105 -0
  175. package/styles/code.css +264 -0
  176. package/styles/collapsible.css +93 -0
  177. package/styles/colors.css +536 -0
  178. package/styles/combobox.css +66 -0
  179. package/styles/command.css +81 -0
  180. package/styles/contest.css +227 -0
  181. package/styles/countdown.css +65 -0
  182. package/styles/datepicker.css +124 -0
  183. package/styles/divider.css +72 -0
  184. package/styles/drawer.css +142 -0
  185. package/styles/dropdown.css +22 -0
  186. package/styles/empty-state.css +48 -0
  187. package/styles/field.css +47 -0
  188. package/styles/fieldset.css +24 -0
  189. package/styles/form-checkbox-radio-toggle.css +233 -0
  190. package/styles/form-fileupload.css +146 -0
  191. package/styles/form-rangeslider.css +106 -0
  192. package/styles/form-shared.css +41 -0
  193. package/styles/form-text-select.css +411 -0
  194. package/styles/form.css +86 -0
  195. package/styles/globals.css +66 -0
  196. package/styles/input-group.css +63 -0
  197. package/styles/join.css +141 -0
  198. package/styles/kbd.css +55 -0
  199. package/styles/key-value.css +44 -0
  200. package/styles/link.css +48 -0
  201. package/styles/loader.css +183 -0
  202. package/styles/logotype.css +13 -0
  203. package/styles/menu.css +317 -0
  204. package/styles/modal.css +172 -0
  205. package/styles/navbar.css +48 -0
  206. package/styles/package-quill.css +1001 -0
  207. package/styles/pagination.css +147 -0
  208. package/styles/panel.css +113 -0
  209. package/styles/popover.css +303 -0
  210. package/styles/prism.css +60 -0
  211. package/styles/progress.css +209 -0
  212. package/styles/scrollbar.css +17 -0
  213. package/styles/shadow.css +25 -0
  214. package/styles/shared.css +226 -0
  215. package/styles/skeleton.css +34 -0
  216. package/styles/state.css +150 -0
  217. package/styles/stepper.css +72 -0
  218. package/styles/steps.css +98 -0
  219. package/styles/surface.css +252 -0
  220. package/styles/tab.css +286 -0
  221. package/styles/table.css +243 -0
  222. package/styles/theme.css +126 -0
  223. package/styles/timeline.css +193 -0
  224. package/styles/toast.css +150 -0
  225. package/styles/tooltip.css +8 -0
  226. package/styles/typography.css +160 -0
  227. package/styles/utility.css +20 -0
  228. package/tailwind.config.cjs +9 -0
@@ -0,0 +1,164 @@
1
+ {
2
+ "id": "toast",
3
+ "name": "Toast",
4
+ "status": "stable",
5
+ "summary": "Toast notifications for displaying temporary messages and feedback.",
6
+ "keywords": [
7
+ "alert",
8
+ "banner",
9
+ "error",
10
+ "feedback",
11
+ "flash",
12
+ "indicator",
13
+ "info",
14
+ "message",
15
+ "notice",
16
+ "notification",
17
+ "popup",
18
+ "response",
19
+ "status",
20
+ "success",
21
+ "temporary",
22
+ "toast",
23
+ "update",
24
+ "warning"
25
+ ],
26
+ "sourcePaths": [
27
+ "app/design-system/toast/page.js",
28
+ "assets/styles/toast.css"
29
+ ],
30
+ "apiModel": "html-class",
31
+ "baseClass": "toast-container",
32
+ "variants": [
33
+ {
34
+ "name": "toast-info",
35
+ "className": "toast-info",
36
+ "description": "Info variant styling"
37
+ },
38
+ {
39
+ "name": "toast-success",
40
+ "className": "toast-success",
41
+ "description": "Success variant styling"
42
+ },
43
+ {
44
+ "name": "toast-warning",
45
+ "className": "toast-warning",
46
+ "description": "Warning variant styling"
47
+ },
48
+ {
49
+ "name": "toast-error",
50
+ "className": "toast-error",
51
+ "description": "Error variant styling"
52
+ },
53
+ {
54
+ "name": "toast-loading",
55
+ "className": "toast-loading",
56
+ "description": "Loading state styling"
57
+ }
58
+ ],
59
+ "sizes": [],
60
+ "states": [],
61
+ "structure": {
62
+ "rootElement": "div",
63
+ "requiredClasses": [
64
+ "toast-container"
65
+ ],
66
+ "optionalClasses": [
67
+ "toast-info",
68
+ "toast-success",
69
+ "toast-warning",
70
+ "toast-error",
71
+ "toast-loading"
72
+ ],
73
+ "requiredChildren": [],
74
+ "optionalChildren": []
75
+ },
76
+ "attributes": {
77
+ "allowed": [
78
+ "class",
79
+ "role",
80
+ "aria-live",
81
+ "aria-atomic",
82
+ "data-state"
83
+ ],
84
+ "required": [
85
+ "role",
86
+ "aria-live",
87
+ "aria-atomic"
88
+ ],
89
+ "dataAttributes": [
90
+ "data-state"
91
+ ],
92
+ "roles": [
93
+ "alert",
94
+ "status"
95
+ ],
96
+ "aria": [
97
+ "aria-live",
98
+ "aria-atomic"
99
+ ]
100
+ },
101
+ "a11y": {
102
+ "interactive": true,
103
+ "requiredRoles": [
104
+ "alert"
105
+ ],
106
+ "requiredAria": [
107
+ "aria-live",
108
+ "aria-atomic"
109
+ ],
110
+ "keyboardSupport": [
111
+ "Tab",
112
+ "Shift+Tab",
113
+ "Escape"
114
+ ],
115
+ "focusBehavior": "Toasts should not steal focus by default; only actionable toasts should be keyboard reachable."
116
+ },
117
+ "dos": [
118
+ "Use toast for transient, non-blocking updates.",
119
+ "Set aria-live politeness based on severity.",
120
+ "Keep messages short and action-oriented."
121
+ ],
122
+ "donts": [
123
+ "Do not use toast for destructive confirmation steps.",
124
+ "Do not queue multiple high-priority toasts simultaneously.",
125
+ "Do not rely only on color to indicate severity."
126
+ ],
127
+ "tokenUsage": [
128
+ "background-error-active",
129
+ "background-info-active",
130
+ "background-success-active",
131
+ "background-surface",
132
+ "background-warning-active",
133
+ "line-default",
134
+ "text-default",
135
+ "text-error",
136
+ "text-info",
137
+ "text-success",
138
+ "text-warning"
139
+ ],
140
+ "examples": [
141
+ {
142
+ "id": "canonical",
143
+ "file": "examples/toast.html",
144
+ "description": "Minimal canonical Toast usage."
145
+ }
146
+ ],
147
+ "composition": {
148
+ "patterns": [
149
+ "feedback-and-status"
150
+ ],
151
+ "relatedComponents": [
152
+ "state",
153
+ "banner",
154
+ "button"
155
+ ],
156
+ "notes": [
157
+ "For persistent status, replace toast with banner/state components."
158
+ ]
159
+ },
160
+ "breakingChangePolicy": {
161
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
162
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
163
+ }
164
+ }
@@ -0,0 +1,158 @@
1
+ {
2
+ "id": "toggle",
3
+ "name": "Toggle",
4
+ "status": "stable",
5
+ "summary": "Toggle switch component for boolean states.",
6
+ "keywords": [
7
+ "boolean",
8
+ "button",
9
+ "checkbox",
10
+ "control",
11
+ "flip",
12
+ "form",
13
+ "input",
14
+ "off",
15
+ "on",
16
+ "selection",
17
+ "state",
18
+ "switch",
19
+ "toggle"
20
+ ],
21
+ "sourcePaths": [
22
+ "app/design-system/toggle/page.js",
23
+ "assets/styles/chat.css",
24
+ "assets/styles/field.css",
25
+ "assets/styles/form-checkbox-radio-toggle.css",
26
+ "assets/styles/form-shared.css",
27
+ "assets/styles/form-text-select.css",
28
+ "assets/styles/input-group.css"
29
+ ],
30
+ "apiModel": "html-class",
31
+ "baseClass": "toggle",
32
+ "variants": [
33
+ {
34
+ "name": "input-card",
35
+ "className": "input-card",
36
+ "description": "Card style for toggle group items"
37
+ }
38
+ ],
39
+ "sizes": [
40
+ {
41
+ "name": "toggle-sm",
42
+ "className": "toggle-sm",
43
+ "description": "Small toggle size variant"
44
+ },
45
+ {
46
+ "name": "toggle-lg",
47
+ "className": "toggle-lg",
48
+ "description": "Large toggle size variant"
49
+ }
50
+ ],
51
+ "states": [],
52
+ "structure": {
53
+ "rootElement": "button",
54
+ "requiredClasses": [
55
+ "toggle"
56
+ ],
57
+ "optionalClasses": [
58
+ "input-card",
59
+ "toggle-sm",
60
+ "toggle-lg"
61
+ ],
62
+ "requiredChildren": [],
63
+ "optionalChildren": []
64
+ },
65
+ "attributes": {
66
+ "allowed": [
67
+ "class",
68
+ "id",
69
+ "tabindex"
70
+ ],
71
+ "required": [],
72
+ "dataAttributes": [],
73
+ "roles": [],
74
+ "aria": []
75
+ },
76
+ "a11y": {
77
+ "interactive": true,
78
+ "requiredRoles": [],
79
+ "requiredAria": [
80
+ "aria-label (when no visible label)"
81
+ ],
82
+ "keyboardSupport": [
83
+ "Tab",
84
+ "Shift+Tab",
85
+ "Enter",
86
+ "Space"
87
+ ],
88
+ "focusBehavior": "Visible focus state is required when the component is focusable or clickable."
89
+ },
90
+ "dos": [
91
+ "Apply the base class 'toggle' on the root element.",
92
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
93
+ "Keep semantic color usage aligned with token classes for light/dark support."
94
+ ],
95
+ "donts": [
96
+ "Do not combine conflicting state classes on the same element.",
97
+ "Do not rely on undocumented internal classes in production templates.",
98
+ "Do not remove required accessibility attributes when component is interactive."
99
+ ],
100
+ "tokenUsage": [
101
+ "background-brand",
102
+ "background-error",
103
+ "background-info",
104
+ "background-page",
105
+ "background-success",
106
+ "background-surface",
107
+ "background-surface-elevated",
108
+ "background-surface-sunken",
109
+ "background-warning",
110
+ "brand-default",
111
+ "brand-moderate",
112
+ "brand-strong",
113
+ "core-black",
114
+ "core-ui-100",
115
+ "core-ui-300",
116
+ "core-ui-400",
117
+ "core-ui-50",
118
+ "core-ui-500",
119
+ "core-ui-700",
120
+ "core-ui-800",
121
+ "core-ui-900",
122
+ "core-white",
123
+ "line-default",
124
+ "line-error",
125
+ "line-focus",
126
+ "line-highlight",
127
+ "line-info",
128
+ "line-strong",
129
+ "line-success",
130
+ "line-warning",
131
+ "text-default",
132
+ "text-disabled",
133
+ "text-error",
134
+ "text-info",
135
+ "text-link",
136
+ "text-link-hover",
137
+ "text-secondary",
138
+ "text-success",
139
+ "text-tertiary",
140
+ "text-warning"
141
+ ],
142
+ "examples": [
143
+ {
144
+ "id": "canonical",
145
+ "file": "examples/toggle.html",
146
+ "description": "Minimal canonical Toggle usage."
147
+ }
148
+ ],
149
+ "composition": {
150
+ "patterns": [],
151
+ "relatedComponents": [],
152
+ "notes": []
153
+ },
154
+ "breakingChangePolicy": {
155
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
156
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
157
+ }
158
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "id": "tool-svg-to-base64",
3
+ "name": "SVG to Base64",
4
+ "status": "experimental",
5
+ "summary": "Upload an SVG and convert it into a URL-encoded `data:image/svg+xml` string for direct usage in CSS or markup.",
6
+ "keywords": [
7
+ "asset",
8
+ "base64",
9
+ "convert",
10
+ "data url",
11
+ "encoder",
12
+ "svg",
13
+ "tool",
14
+ "tool svg to base64",
15
+ "tool-svg-to-base64",
16
+ "upload"
17
+ ],
18
+ "sourcePaths": [
19
+ "app/design-system/tool-svg-to-base64/page.js"
20
+ ],
21
+ "apiModel": "html-class",
22
+ "baseClass": "tool-svg-to-base64",
23
+ "variants": [],
24
+ "sizes": [],
25
+ "states": [],
26
+ "structure": {
27
+ "rootElement": "div",
28
+ "requiredClasses": [
29
+ "tool-svg-to-base64"
30
+ ],
31
+ "optionalClasses": [],
32
+ "requiredChildren": [],
33
+ "optionalChildren": []
34
+ },
35
+ "attributes": {
36
+ "allowed": [
37
+ "class"
38
+ ],
39
+ "required": [],
40
+ "dataAttributes": [],
41
+ "roles": [],
42
+ "aria": []
43
+ },
44
+ "a11y": {
45
+ "interactive": false,
46
+ "requiredRoles": [],
47
+ "requiredAria": [],
48
+ "keyboardSupport": [],
49
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
50
+ },
51
+ "dos": [
52
+ "Apply the base class 'tool-svg-to-base64' on the root element.",
53
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
54
+ "Keep semantic color usage aligned with token classes for light/dark support."
55
+ ],
56
+ "donts": [
57
+ "Do not combine conflicting state classes on the same element.",
58
+ "Do not rely on undocumented internal classes in production templates.",
59
+ "Do not remove required accessibility attributes when component is interactive."
60
+ ],
61
+ "tokenUsage": [],
62
+ "examples": [
63
+ {
64
+ "id": "canonical",
65
+ "file": "examples/tool-svg-to-base64.html",
66
+ "description": "Minimal canonical SVG to Base64 usage."
67
+ }
68
+ ],
69
+ "composition": {
70
+ "patterns": [],
71
+ "relatedComponents": [],
72
+ "notes": []
73
+ },
74
+ "breakingChangePolicy": {
75
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
76
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
77
+ }
78
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "id": "tool-svg-to-icon-data",
3
+ "name": "SVG to Icon Data",
4
+ "status": "experimental",
5
+ "summary": "Upload an SVG to generate a `dataIcons` entry with `name`, `keywords`, and `elements` ready to paste into the design system.",
6
+ "keywords": [
7
+ "converter",
8
+ "dataicons",
9
+ "elements",
10
+ "generator",
11
+ "icon",
12
+ "path",
13
+ "svg",
14
+ "tool",
15
+ "tool svg to icon data",
16
+ "tool-svg-to-icon-data",
17
+ "upload"
18
+ ],
19
+ "sourcePaths": [
20
+ "app/design-system/tool-svg-to-icon-data/page.js"
21
+ ],
22
+ "apiModel": "html-class",
23
+ "baseClass": "tool-svg-to-icon-data",
24
+ "variants": [],
25
+ "sizes": [],
26
+ "states": [],
27
+ "structure": {
28
+ "rootElement": "div",
29
+ "requiredClasses": [
30
+ "tool-svg-to-icon-data"
31
+ ],
32
+ "optionalClasses": [],
33
+ "requiredChildren": [],
34
+ "optionalChildren": []
35
+ },
36
+ "attributes": {
37
+ "allowed": [
38
+ "class"
39
+ ],
40
+ "required": [],
41
+ "dataAttributes": [
42
+ "data-upload"
43
+ ],
44
+ "roles": [],
45
+ "aria": []
46
+ },
47
+ "a11y": {
48
+ "interactive": false,
49
+ "requiredRoles": [],
50
+ "requiredAria": [],
51
+ "keyboardSupport": [],
52
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
53
+ },
54
+ "dos": [
55
+ "Apply the base class 'tool-svg-to-icon-data' on the root element.",
56
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
57
+ "Keep semantic color usage aligned with token classes for light/dark support."
58
+ ],
59
+ "donts": [
60
+ "Do not combine conflicting state classes on the same element.",
61
+ "Do not rely on undocumented internal classes in production templates.",
62
+ "Do not remove required accessibility attributes when component is interactive."
63
+ ],
64
+ "tokenUsage": [],
65
+ "examples": [
66
+ {
67
+ "id": "canonical",
68
+ "file": "examples/tool-svg-to-icon-data.html",
69
+ "description": "Minimal canonical SVG to Icon Data usage."
70
+ }
71
+ ],
72
+ "composition": {
73
+ "patterns": [],
74
+ "relatedComponents": [],
75
+ "notes": []
76
+ },
77
+ "breakingChangePolicy": {
78
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
79
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
80
+ }
81
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "id": "tooltip",
3
+ "name": "Tooltip",
4
+ "status": "stable",
5
+ "summary": "Tooltip patterns for supplemental contextual information on interactive elements.",
6
+ "keywords": [
7
+ "description",
8
+ "helper text",
9
+ "hint",
10
+ "hover",
11
+ "overlay",
12
+ "tooltip"
13
+ ],
14
+ "sourcePaths": [
15
+ "app/design-system/tooltip/page.js",
16
+ "assets/styles/shared.css",
17
+ "assets/styles/tooltip.css"
18
+ ],
19
+ "apiModel": "html-class",
20
+ "baseClass": "tooltip",
21
+ "variants": [],
22
+ "sizes": [],
23
+ "states": [],
24
+ "structure": {
25
+ "rootElement": "div",
26
+ "requiredClasses": [
27
+ "tooltip"
28
+ ],
29
+ "optionalClasses": [],
30
+ "requiredChildren": [],
31
+ "optionalChildren": []
32
+ },
33
+ "attributes": {
34
+ "allowed": [
35
+ "class"
36
+ ],
37
+ "required": [],
38
+ "dataAttributes": [],
39
+ "roles": [],
40
+ "aria": []
41
+ },
42
+ "a11y": {
43
+ "interactive": false,
44
+ "requiredRoles": [],
45
+ "requiredAria": [],
46
+ "keyboardSupport": [],
47
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
48
+ },
49
+ "dos": [
50
+ "Apply the base class 'tooltip' on the root element.",
51
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
52
+ "Keep semantic color usage aligned with token classes for light/dark support."
53
+ ],
54
+ "donts": [
55
+ "Do not combine conflicting state classes on the same element.",
56
+ "Do not rely on undocumented internal classes in production templates.",
57
+ "Do not remove required accessibility attributes when component is interactive."
58
+ ],
59
+ "tokenUsage": [
60
+ "background-inverted",
61
+ "background-surface",
62
+ "background-surface-elevated",
63
+ "brand-default",
64
+ "brand-moderate",
65
+ "line-brand",
66
+ "line-default",
67
+ "line-error",
68
+ "line-focus",
69
+ "line-highlight",
70
+ "line-strong",
71
+ "text-default",
72
+ "text-inverted"
73
+ ],
74
+ "examples": [
75
+ {
76
+ "id": "canonical",
77
+ "file": "examples/tooltip.html",
78
+ "description": "Minimal canonical Tooltip usage."
79
+ }
80
+ ],
81
+ "composition": {
82
+ "patterns": [],
83
+ "relatedComponents": [],
84
+ "notes": []
85
+ },
86
+ "breakingChangePolicy": {
87
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
88
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
89
+ }
90
+ }
@@ -0,0 +1 @@
1
+ <div class="background-ai-silk">Background</div>
@@ -0,0 +1 @@
1
+ <div class="ai-orb">Orb</div>
@@ -0,0 +1 @@
1
+ <div class="ai-perl">Perl</div>
@@ -0,0 +1 @@
1
+ <div class="all-components">All components</div>
@@ -0,0 +1 @@
1
+ <div class="animation-references">Animation references</div>
@@ -0,0 +1 @@
1
+ <div class="avatar online">Avatar</div>
@@ -0,0 +1 @@
1
+ <div class="badge badge-placeholder">Badge</div>
@@ -0,0 +1 @@
1
+ <div class="banner-marketplace">Funding banner</div>
@@ -0,0 +1 @@
1
+ <div class="banner banner-info">Banner</div>
@@ -0,0 +1 @@
1
+ <a class="breadcrumb" href="#">Breadcrumb</a>
@@ -0,0 +1 @@
1
+ <button class="button-container surface-claim" type="button"><span>Button container</span></button>
@@ -0,0 +1 @@
1
+ <button class="button button-primary" type="button"><span>Button feedback</span></button>
@@ -0,0 +1,3 @@
1
+ <button class="button button-primary" type="button">
2
+ <span>Primary action</span>
3
+ </button>
@@ -0,0 +1 @@
1
+ <div class="card-assessment">Investor fit card</div>
@@ -0,0 +1 @@
1
+ <div class="card-test">Readiness card</div>
@@ -0,0 +1 @@
1
+ <div class="card card-default">Card</div>
@@ -0,0 +1 @@
1
+ <div class="chat chat-secondary">Chat</div>
@@ -0,0 +1 @@
1
+ <label class="field"><span class="input-label">Checkbox</span><input class="checkbox input-line-through" type="text" placeholder="Checkbox" /></label>
@@ -0,0 +1 @@
1
+ <div class="checkmark checkmark-invisible">Checkmark</div>
@@ -0,0 +1 @@
1
+ <div class="collapsible collapsible-has-arrow">Collapsible</div>
@@ -0,0 +1 @@
1
+ <div class="color-palette">Color palette</div>
@@ -0,0 +1 @@
1
+ <div class="color-usage">Color usage</div>
@@ -0,0 +1 @@
1
+ <label class="field"><span class="input-label">Combobox</span><input class="combobox" type="text" placeholder="Combobox" /></label>
@@ -0,0 +1 @@
1
+ <div class="command">Command palette</div>
@@ -0,0 +1 @@
1
+ <div class="countdown">Countdown</div>
@@ -0,0 +1 @@
1
+ <label class="field"><span class="input-label">Datepicker</span><input class="datepicker range-start" type="text" placeholder="Datepicker" /></label>
@@ -0,0 +1 @@
1
+ <div class="divider divider-horizontal">Divider</div>
@@ -0,0 +1 @@
1
+ <div class="empty-state">Empty state</div>
@@ -0,0 +1 @@
1
+ <label class="field"><span class="input-label">Field</span><input class="field" type="text" placeholder="Field" /></label>
@@ -0,0 +1 @@
1
+ <label class="field"><span class="input-label">Fieldset</span><input class="fieldset" type="text" placeholder="Fieldset" /></label>
@@ -0,0 +1 @@
1
+ <label class="field"><span class="input-label">File upload</span><input class="file-upload file-upload-error" type="text" placeholder="File upload" /></label>