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,83 @@
1
+ {
2
+ "id": "color-usage",
3
+ "name": "Color usage",
4
+ "status": "stable",
5
+ "summary": "Learn how to effectively apply our color system through detailed guidelines, accessibility requirements, and best practices for creating visually cohesive and WCAG-compliant interfaces.",
6
+ "keywords": [
7
+ "accessibility",
8
+ "best practices",
9
+ "color combinations",
10
+ "color guidelines",
11
+ "color hierarchy",
12
+ "color usage",
13
+ "color-usage",
14
+ "colors",
15
+ "contrast",
16
+ "theme",
17
+ "usage"
18
+ ],
19
+ "sourcePaths": [
20
+ "app/design-system/color-usage/page.js"
21
+ ],
22
+ "apiModel": "html-class",
23
+ "baseClass": "color-usage",
24
+ "variants": [],
25
+ "sizes": [],
26
+ "states": [],
27
+ "structure": {
28
+ "rootElement": "div",
29
+ "requiredClasses": [
30
+ "color-usage"
31
+ ],
32
+ "optionalClasses": [],
33
+ "requiredChildren": [],
34
+ "optionalChildren": []
35
+ },
36
+ "attributes": {
37
+ "allowed": [
38
+ "class"
39
+ ],
40
+ "required": [],
41
+ "dataAttributes": [],
42
+ "roles": [],
43
+ "aria": [
44
+ "aria-hidden"
45
+ ]
46
+ },
47
+ "a11y": {
48
+ "interactive": false,
49
+ "requiredRoles": [],
50
+ "requiredAria": [
51
+ "aria-hidden"
52
+ ],
53
+ "keyboardSupport": [],
54
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
55
+ },
56
+ "dos": [
57
+ "Apply the base class 'color-usage' on the root element.",
58
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
59
+ "Keep semantic color usage aligned with token classes for light/dark support."
60
+ ],
61
+ "donts": [
62
+ "Do not combine conflicting state classes on the same element.",
63
+ "Do not rely on undocumented internal classes in production templates.",
64
+ "Do not remove required accessibility attributes when component is interactive."
65
+ ],
66
+ "tokenUsage": [],
67
+ "examples": [
68
+ {
69
+ "id": "canonical",
70
+ "file": "examples/color-usage.html",
71
+ "description": "Minimal canonical Color usage usage."
72
+ }
73
+ ],
74
+ "composition": {
75
+ "patterns": [],
76
+ "relatedComponents": [],
77
+ "notes": []
78
+ },
79
+ "breakingChangePolicy": {
80
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
81
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
82
+ }
83
+ }
@@ -0,0 +1,143 @@
1
+ {
2
+ "id": "combobox",
3
+ "name": "Combobox",
4
+ "status": "stable",
5
+ "summary": "Combobox pattern for searchable selection with keyboard-friendly option lists.",
6
+ "keywords": [
7
+ "autocomplete",
8
+ "combobox",
9
+ "filter options",
10
+ "search select",
11
+ "typeahead"
12
+ ],
13
+ "sourcePaths": [
14
+ "app/design-system/combobox/page.js",
15
+ "assets/styles/combobox.css",
16
+ "assets/styles/datepicker.css",
17
+ "assets/styles/form-text-select.css",
18
+ "assets/styles/menu.css"
19
+ ],
20
+ "apiModel": "html-class",
21
+ "baseClass": "combobox",
22
+ "variants": [],
23
+ "sizes": [],
24
+ "states": [
25
+ {
26
+ "name": "is-selected",
27
+ "className": "is-selected",
28
+ "description": "Selected option state (on li or option element)."
29
+ },
30
+ {
31
+ "name": "is-highlighted",
32
+ "className": "is-highlighted",
33
+ "description": "Keyboard-highlighted option state (on li or option element)."
34
+ }
35
+ ],
36
+ "structure": {
37
+ "rootElement": "input",
38
+ "requiredClasses": [
39
+ "combobox"
40
+ ],
41
+ "optionalClasses": [
42
+ "is-selected",
43
+ "is-highlighted"
44
+ ],
45
+ "requiredChildren": [],
46
+ "optionalChildren": []
47
+ },
48
+ "attributes": {
49
+ "allowed": [
50
+ "class",
51
+ "id",
52
+ "tabindex"
53
+ ],
54
+ "required": [],
55
+ "dataAttributes": [],
56
+ "roles": [],
57
+ "aria": []
58
+ },
59
+ "a11y": {
60
+ "interactive": true,
61
+ "requiredRoles": [],
62
+ "requiredAria": [
63
+ "aria-label (when no visible label)"
64
+ ],
65
+ "keyboardSupport": [
66
+ "Tab",
67
+ "Shift+Tab",
68
+ "Enter",
69
+ "Space"
70
+ ],
71
+ "focusBehavior": "Visible focus state is required when the component is focusable or clickable."
72
+ },
73
+ "dos": [
74
+ "Apply the base class 'combobox' on the root element.",
75
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
76
+ "Keep semantic color usage aligned with token classes for light/dark support."
77
+ ],
78
+ "donts": [
79
+ "Do not combine conflicting state classes on the same element.",
80
+ "Do not rely on undocumented internal classes in production templates.",
81
+ "Do not remove required accessibility attributes when component is interactive."
82
+ ],
83
+ "tokenUsage": [
84
+ "background-brand",
85
+ "background-brand-hover",
86
+ "background-error",
87
+ "background-info",
88
+ "background-success",
89
+ "background-surface",
90
+ "background-surface-elevated",
91
+ "background-surface-sunken",
92
+ "background-warning",
93
+ "brand-moderate",
94
+ "brand-strong",
95
+ "core-black",
96
+ "core-ui-100",
97
+ "core-ui-200",
98
+ "core-ui-400",
99
+ "core-ui-50",
100
+ "core-ui-500",
101
+ "core-ui-700",
102
+ "core-ui-800",
103
+ "core-ui-900",
104
+ "core-white",
105
+ "line-brand",
106
+ "line-default",
107
+ "line-error",
108
+ "line-focus",
109
+ "line-highlight",
110
+ "line-info",
111
+ "line-strong",
112
+ "line-success",
113
+ "line-warning",
114
+ "text-brand",
115
+ "text-default",
116
+ "text-disabled",
117
+ "text-error",
118
+ "text-info",
119
+ "text-inverted",
120
+ "text-secondary",
121
+ "text-success",
122
+ "text-tertiary",
123
+ "text-warning"
124
+ ],
125
+ "examples": [
126
+ {
127
+ "id": "canonical",
128
+ "file": "examples/combobox.html",
129
+ "description": "Minimal canonical Combobox usage."
130
+ }
131
+ ],
132
+ "composition": {
133
+ "patterns": [
134
+ "form-field-composition"
135
+ ],
136
+ "relatedComponents": [],
137
+ "notes": []
138
+ },
139
+ "breakingChangePolicy": {
140
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
141
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
142
+ }
143
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "id": "command-palette",
3
+ "name": "Command palette",
4
+ "status": "stable",
5
+ "summary": "Searchable command palette pattern for fast navigation and actions.",
6
+ "keywords": [
7
+ "command",
8
+ "command palette",
9
+ "command-palette",
10
+ "menu",
11
+ "palette",
12
+ "quick actions",
13
+ "search",
14
+ "shortcuts",
15
+ "spotlight"
16
+ ],
17
+ "sourcePaths": [
18
+ "app/design-system/command-palette/page.js",
19
+ "assets/styles/breadcrumb.css",
20
+ "assets/styles/button.css",
21
+ "assets/styles/chat.css",
22
+ "assets/styles/checkmark.css",
23
+ "assets/styles/command.css",
24
+ "assets/styles/form-text-select.css",
25
+ "assets/styles/menu.css",
26
+ "assets/styles/navbar.css",
27
+ "assets/styles/pagination.css",
28
+ "assets/styles/progress.css",
29
+ "assets/styles/steps.css",
30
+ "assets/styles/tab.css",
31
+ "assets/styles/table.css",
32
+ "assets/styles/toast.css"
33
+ ],
34
+ "apiModel": "html-class",
35
+ "baseClass": "command",
36
+ "variants": [],
37
+ "sizes": [],
38
+ "states": [
39
+ {
40
+ "name": "is-active",
41
+ "className": "is-active",
42
+ "description": "Highlights the current command option (on li or trigger element)."
43
+ },
44
+ {
45
+ "name": "is-empty",
46
+ "className": "is-empty",
47
+ "description": "Styles the empty-result message block."
48
+ }
49
+ ],
50
+ "structure": {
51
+ "rootElement": "div",
52
+ "requiredClasses": [
53
+ "command"
54
+ ],
55
+ "optionalClasses": [
56
+ "is-active",
57
+ "is-empty"
58
+ ],
59
+ "requiredChildren": [],
60
+ "optionalChildren": []
61
+ },
62
+ "attributes": {
63
+ "allowed": [
64
+ "class"
65
+ ],
66
+ "required": [],
67
+ "dataAttributes": [],
68
+ "roles": [],
69
+ "aria": []
70
+ },
71
+ "a11y": {
72
+ "interactive": false,
73
+ "requiredRoles": [],
74
+ "requiredAria": [],
75
+ "keyboardSupport": [],
76
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
77
+ },
78
+ "dos": [
79
+ "Apply the base class 'command' on the root element.",
80
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
81
+ "Keep semantic color usage aligned with token classes for light/dark support."
82
+ ],
83
+ "donts": [
84
+ "Do not combine conflicting state classes on the same element.",
85
+ "Do not rely on undocumented internal classes in production templates.",
86
+ "Do not remove required accessibility attributes when component is interactive."
87
+ ],
88
+ "tokenUsage": [
89
+ "background-brand",
90
+ "background-brand-active",
91
+ "background-error",
92
+ "background-error-active",
93
+ "background-info",
94
+ "background-info-active",
95
+ "background-inverted",
96
+ "background-page",
97
+ "background-success",
98
+ "background-success-active",
99
+ "background-surface",
100
+ "background-surface-elevated",
101
+ "background-surface-sunken",
102
+ "background-warning",
103
+ "background-warning-active",
104
+ "brand-default",
105
+ "brand-moderate",
106
+ "brand-strong",
107
+ "core-black",
108
+ "core-ui-100",
109
+ "core-ui-300",
110
+ "core-ui-400",
111
+ "core-ui-50",
112
+ "core-ui-600",
113
+ "core-ui-700",
114
+ "core-ui-800",
115
+ "core-ui-900",
116
+ "core-white",
117
+ "line-brand",
118
+ "line-default",
119
+ "line-error",
120
+ "line-focus",
121
+ "line-highlight",
122
+ "line-info",
123
+ "line-strong",
124
+ "line-success",
125
+ "line-warning",
126
+ "text-attention",
127
+ "text-brand",
128
+ "text-brand-active",
129
+ "text-brand-hover",
130
+ "text-default",
131
+ "text-disabled",
132
+ "text-error",
133
+ "text-info",
134
+ "text-inverted",
135
+ "text-link",
136
+ "text-link-active",
137
+ "text-link-hover",
138
+ "text-secondary",
139
+ "text-success",
140
+ "text-tertiary",
141
+ "text-warning"
142
+ ],
143
+ "examples": [
144
+ {
145
+ "id": "canonical",
146
+ "file": "examples/command-palette.html",
147
+ "description": "Minimal canonical Command palette usage."
148
+ }
149
+ ],
150
+ "composition": {
151
+ "patterns": [],
152
+ "relatedComponents": [],
153
+ "notes": []
154
+ },
155
+ "breakingChangePolicy": {
156
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
157
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
158
+ }
159
+ }
@@ -0,0 +1,113 @@
1
+ {
2
+ "id": "countdown",
3
+ "name": "Countdown",
4
+ "status": "stable",
5
+ "summary": "Animated countdown timer with various display options.",
6
+ "keywords": [
7
+ "alert",
8
+ "clock",
9
+ "countdown",
10
+ "counter",
11
+ "deadline",
12
+ "duration",
13
+ "reminder",
14
+ "stopwatch",
15
+ "time",
16
+ "timer"
17
+ ],
18
+ "sourcePaths": [
19
+ "app/design-system/countdown/page.js",
20
+ "assets/styles/countdown.css",
21
+ "assets/styles/shared.css"
22
+ ],
23
+ "apiModel": "html-class",
24
+ "baseClass": "countdown",
25
+ "variants": [],
26
+ "sizes": [
27
+ {
28
+ "name": "text-xs",
29
+ "className": "text-xs",
30
+ "description": "Extra small size variant"
31
+ },
32
+ {
33
+ "name": "text-sm",
34
+ "className": "text-sm",
35
+ "description": "Small size variant"
36
+ },
37
+ {
38
+ "name": "text-lg",
39
+ "className": "text-lg",
40
+ "description": "Large size variant"
41
+ }
42
+ ],
43
+ "states": [],
44
+ "structure": {
45
+ "rootElement": "div",
46
+ "requiredClasses": [
47
+ "countdown"
48
+ ],
49
+ "optionalClasses": [
50
+ "text-xs",
51
+ "text-sm",
52
+ "text-lg"
53
+ ],
54
+ "requiredChildren": [],
55
+ "optionalChildren": []
56
+ },
57
+ "attributes": {
58
+ "allowed": [
59
+ "class"
60
+ ],
61
+ "required": [],
62
+ "dataAttributes": [],
63
+ "roles": [],
64
+ "aria": []
65
+ },
66
+ "a11y": {
67
+ "interactive": false,
68
+ "requiredRoles": [],
69
+ "requiredAria": [],
70
+ "keyboardSupport": [],
71
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
72
+ },
73
+ "dos": [
74
+ "Apply the base class 'countdown' on the root element.",
75
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
76
+ "Keep semantic color usage aligned with token classes for light/dark support."
77
+ ],
78
+ "donts": [
79
+ "Do not combine conflicting state classes on the same element.",
80
+ "Do not rely on undocumented internal classes in production templates.",
81
+ "Do not remove required accessibility attributes when component is interactive."
82
+ ],
83
+ "tokenUsage": [
84
+ "background-surface",
85
+ "background-surface-elevated",
86
+ "brand-default",
87
+ "brand-moderate",
88
+ "line-brand",
89
+ "line-default",
90
+ "line-error",
91
+ "line-focus",
92
+ "line-highlight",
93
+ "line-strong",
94
+ "text-default",
95
+ "text-inverted"
96
+ ],
97
+ "examples": [
98
+ {
99
+ "id": "canonical",
100
+ "file": "examples/countdown.html",
101
+ "description": "Minimal canonical Countdown usage."
102
+ }
103
+ ],
104
+ "composition": {
105
+ "patterns": [],
106
+ "relatedComponents": [],
107
+ "notes": []
108
+ },
109
+ "breakingChangePolicy": {
110
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
111
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
112
+ }
113
+ }
@@ -0,0 +1,151 @@
1
+ {
2
+ "id": "datepicker",
3
+ "name": "Datepicker",
4
+ "status": "stable",
5
+ "summary": "Calendar component for selecting single dates or date ranges with an intuitive interface.",
6
+ "keywords": [
7
+ "calendar",
8
+ "date",
9
+ "date picker",
10
+ "date range",
11
+ "date selection",
12
+ "datepicker",
13
+ "range",
14
+ "time"
15
+ ],
16
+ "sourcePaths": [
17
+ "app/design-system/datepicker/page.js",
18
+ "assets/styles/combobox.css",
19
+ "assets/styles/datepicker.css",
20
+ "assets/styles/form-text-select.css",
21
+ "assets/styles/menu.css"
22
+ ],
23
+ "apiModel": "html-class",
24
+ "baseClass": "datepicker",
25
+ "variants": [
26
+ {
27
+ "name": "range-start",
28
+ "className": "range-start",
29
+ "description": "Marks the start date of a selected range"
30
+ },
31
+ {
32
+ "name": "range-end",
33
+ "className": "range-end",
34
+ "description": "Marks the end date of a selected range"
35
+ }
36
+ ],
37
+ "sizes": [],
38
+ "states": [
39
+ {
40
+ "name": "is-selected",
41
+ "className": "is-selected",
42
+ "description": "Indicates currently selected date"
43
+ }
44
+ ],
45
+ "structure": {
46
+ "rootElement": "input",
47
+ "requiredClasses": [
48
+ "datepicker"
49
+ ],
50
+ "optionalClasses": [
51
+ "range-start",
52
+ "range-end",
53
+ "is-selected"
54
+ ],
55
+ "requiredChildren": [],
56
+ "optionalChildren": []
57
+ },
58
+ "attributes": {
59
+ "allowed": [
60
+ "class",
61
+ "id",
62
+ "tabindex"
63
+ ],
64
+ "required": [],
65
+ "dataAttributes": [],
66
+ "roles": [],
67
+ "aria": []
68
+ },
69
+ "a11y": {
70
+ "interactive": true,
71
+ "requiredRoles": [],
72
+ "requiredAria": [
73
+ "aria-label (when no visible label)"
74
+ ],
75
+ "keyboardSupport": [
76
+ "Tab",
77
+ "Shift+Tab",
78
+ "Enter",
79
+ "Space"
80
+ ],
81
+ "focusBehavior": "Visible focus state is required when the component is focusable or clickable."
82
+ },
83
+ "dos": [
84
+ "Apply the base class 'datepicker' on the root element.",
85
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
86
+ "Keep semantic color usage aligned with token classes for light/dark support."
87
+ ],
88
+ "donts": [
89
+ "Do not combine conflicting state classes on the same element.",
90
+ "Do not rely on undocumented internal classes in production templates.",
91
+ "Do not remove required accessibility attributes when component is interactive."
92
+ ],
93
+ "tokenUsage": [
94
+ "background-brand",
95
+ "background-brand-hover",
96
+ "background-error",
97
+ "background-info",
98
+ "background-success",
99
+ "background-surface",
100
+ "background-surface-elevated",
101
+ "background-surface-sunken",
102
+ "background-warning",
103
+ "brand-moderate",
104
+ "brand-strong",
105
+ "core-black",
106
+ "core-ui-100",
107
+ "core-ui-200",
108
+ "core-ui-400",
109
+ "core-ui-50",
110
+ "core-ui-500",
111
+ "core-ui-700",
112
+ "core-ui-800",
113
+ "core-ui-900",
114
+ "core-white",
115
+ "line-brand",
116
+ "line-default",
117
+ "line-error",
118
+ "line-focus",
119
+ "line-highlight",
120
+ "line-info",
121
+ "line-strong",
122
+ "line-success",
123
+ "line-warning",
124
+ "text-brand",
125
+ "text-default",
126
+ "text-disabled",
127
+ "text-error",
128
+ "text-info",
129
+ "text-inverted",
130
+ "text-secondary",
131
+ "text-success",
132
+ "text-tertiary",
133
+ "text-warning"
134
+ ],
135
+ "examples": [
136
+ {
137
+ "id": "canonical",
138
+ "file": "examples/datepicker.html",
139
+ "description": "Minimal canonical Datepicker usage."
140
+ }
141
+ ],
142
+ "composition": {
143
+ "patterns": [],
144
+ "relatedComponents": [],
145
+ "notes": []
146
+ },
147
+ "breakingChangePolicy": {
148
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
149
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
150
+ }
151
+ }