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,158 @@
1
+ {
2
+ "id": "navbar",
3
+ "name": "Navbar",
4
+ "status": "stable",
5
+ "summary": "Navbar layout pattern for top-level product navigation and actions.",
6
+ "keywords": [
7
+ "header",
8
+ "nav",
9
+ "navbar",
10
+ "navigation bar",
11
+ "site navigation",
12
+ "top bar"
13
+ ],
14
+ "sourcePaths": [
15
+ "app/design-system/navbar/page.js",
16
+ "assets/styles/breadcrumb.css",
17
+ "assets/styles/button.css",
18
+ "assets/styles/chat.css",
19
+ "assets/styles/checkmark.css",
20
+ "assets/styles/command.css",
21
+ "assets/styles/form-text-select.css",
22
+ "assets/styles/menu.css",
23
+ "assets/styles/navbar.css",
24
+ "assets/styles/pagination.css",
25
+ "assets/styles/progress.css",
26
+ "assets/styles/steps.css",
27
+ "assets/styles/tab.css",
28
+ "assets/styles/table.css",
29
+ "assets/styles/toast.css"
30
+ ],
31
+ "apiModel": "html-class",
32
+ "baseClass": "navbar",
33
+ "variants": [],
34
+ "sizes": [],
35
+ "states": [
36
+ {
37
+ "name": "is-active",
38
+ "className": "is-active",
39
+ "description": "Highlights the active navigation item."
40
+ }
41
+ ],
42
+ "structure": {
43
+ "rootElement": "a",
44
+ "requiredClasses": [
45
+ "navbar"
46
+ ],
47
+ "optionalClasses": [
48
+ "is-active"
49
+ ],
50
+ "requiredChildren": [],
51
+ "optionalChildren": []
52
+ },
53
+ "attributes": {
54
+ "allowed": [
55
+ "class"
56
+ ],
57
+ "required": [],
58
+ "dataAttributes": [],
59
+ "roles": [],
60
+ "aria": [
61
+ "aria-current",
62
+ "aria-label"
63
+ ]
64
+ },
65
+ "a11y": {
66
+ "interactive": false,
67
+ "requiredRoles": [],
68
+ "requiredAria": [
69
+ "aria-current",
70
+ "aria-label"
71
+ ],
72
+ "keyboardSupport": [],
73
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
74
+ },
75
+ "dos": [
76
+ "Apply the base class 'navbar' on the root element.",
77
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
78
+ "Keep semantic color usage aligned with token classes for light/dark support."
79
+ ],
80
+ "donts": [
81
+ "Do not combine conflicting state classes on the same element.",
82
+ "Do not rely on undocumented internal classes in production templates.",
83
+ "Do not remove required accessibility attributes when component is interactive."
84
+ ],
85
+ "tokenUsage": [
86
+ "background-brand",
87
+ "background-brand-active",
88
+ "background-error",
89
+ "background-error-active",
90
+ "background-info",
91
+ "background-info-active",
92
+ "background-inverted",
93
+ "background-page",
94
+ "background-success",
95
+ "background-success-active",
96
+ "background-surface",
97
+ "background-surface-elevated",
98
+ "background-surface-sunken",
99
+ "background-warning",
100
+ "background-warning-active",
101
+ "brand-default",
102
+ "brand-moderate",
103
+ "brand-strong",
104
+ "core-black",
105
+ "core-ui-100",
106
+ "core-ui-300",
107
+ "core-ui-400",
108
+ "core-ui-50",
109
+ "core-ui-600",
110
+ "core-ui-700",
111
+ "core-ui-800",
112
+ "core-ui-900",
113
+ "core-white",
114
+ "line-brand",
115
+ "line-default",
116
+ "line-error",
117
+ "line-focus",
118
+ "line-highlight",
119
+ "line-info",
120
+ "line-strong",
121
+ "line-success",
122
+ "line-warning",
123
+ "text-attention",
124
+ "text-brand",
125
+ "text-brand-active",
126
+ "text-brand-hover",
127
+ "text-default",
128
+ "text-disabled",
129
+ "text-error",
130
+ "text-info",
131
+ "text-inverted",
132
+ "text-link",
133
+ "text-link-active",
134
+ "text-link-hover",
135
+ "text-secondary",
136
+ "text-success",
137
+ "text-tertiary",
138
+ "text-warning"
139
+ ],
140
+ "examples": [
141
+ {
142
+ "id": "canonical",
143
+ "file": "examples/navbar.html",
144
+ "description": "Minimal canonical Navbar usage."
145
+ }
146
+ ],
147
+ "composition": {
148
+ "patterns": [
149
+ "navigation-hierarchy"
150
+ ],
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,122 @@
1
+ {
2
+ "id": "pagination",
3
+ "name": "Pagination",
4
+ "status": "stable",
5
+ "summary": "Pagination component for navigating through multiple pages of content.",
6
+ "keywords": [
7
+ "entries",
8
+ "items",
9
+ "list",
10
+ "navigation",
11
+ "next",
12
+ "numbers",
13
+ "pager",
14
+ "pages",
15
+ "pagination",
16
+ "previous",
17
+ "records",
18
+ "results",
19
+ "table"
20
+ ],
21
+ "sourcePaths": [
22
+ "app/design-system/pagination/page.js",
23
+ "assets/styles/pagination.css"
24
+ ],
25
+ "apiModel": "html-class",
26
+ "baseClass": "pagination",
27
+ "variants": [
28
+ {
29
+ "name": "pagination-compact",
30
+ "className": "pagination-compact",
31
+ "description": "Compact variant without gaps between items"
32
+ }
33
+ ],
34
+ "sizes": [
35
+ {
36
+ "name": "pagination-sm",
37
+ "className": "pagination-sm",
38
+ "description": "Small size variant"
39
+ },
40
+ {
41
+ "name": "pagination-lg",
42
+ "className": "pagination-lg",
43
+ "description": "Large size variant"
44
+ }
45
+ ],
46
+ "states": [],
47
+ "structure": {
48
+ "rootElement": "a",
49
+ "requiredClasses": [
50
+ "pagination"
51
+ ],
52
+ "optionalClasses": [
53
+ "pagination-compact",
54
+ "pagination-sm",
55
+ "pagination-lg"
56
+ ],
57
+ "requiredChildren": [],
58
+ "optionalChildren": []
59
+ },
60
+ "attributes": {
61
+ "allowed": [
62
+ "class",
63
+ "id",
64
+ "tabindex"
65
+ ],
66
+ "required": [],
67
+ "dataAttributes": [],
68
+ "roles": [],
69
+ "aria": [
70
+ "aria-current",
71
+ "aria-label"
72
+ ]
73
+ },
74
+ "a11y": {
75
+ "interactive": true,
76
+ "requiredRoles": [],
77
+ "requiredAria": [
78
+ "aria-current",
79
+ "aria-label"
80
+ ],
81
+ "keyboardSupport": [
82
+ "Tab",
83
+ "Shift+Tab",
84
+ "Enter",
85
+ "Space"
86
+ ],
87
+ "focusBehavior": "Visible focus state is required when the component is focusable or clickable."
88
+ },
89
+ "dos": [
90
+ "Apply the base class 'pagination' on the root element.",
91
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
92
+ "Keep semantic color usage aligned with token classes for light/dark support."
93
+ ],
94
+ "donts": [
95
+ "Do not combine conflicting state classes on the same element.",
96
+ "Do not rely on undocumented internal classes in production templates.",
97
+ "Do not remove required accessibility attributes when component is interactive."
98
+ ],
99
+ "tokenUsage": [
100
+ "line-default",
101
+ "text-default",
102
+ "text-tertiary"
103
+ ],
104
+ "examples": [
105
+ {
106
+ "id": "canonical",
107
+ "file": "examples/pagination.html",
108
+ "description": "Minimal canonical Pagination usage."
109
+ }
110
+ ],
111
+ "composition": {
112
+ "patterns": [
113
+ "table-data-disclosure"
114
+ ],
115
+ "relatedComponents": [],
116
+ "notes": []
117
+ },
118
+ "breakingChangePolicy": {
119
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
120
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
121
+ }
122
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "id": "pie-chart",
3
+ "name": "Pie chart",
4
+ "status": "stable",
5
+ "summary": "Pie chart used to visualize data in a circular format.",
6
+ "keywords": [
7
+ "analytics",
8
+ "chart",
9
+ "circle",
10
+ "comparison",
11
+ "data visualization",
12
+ "dataset",
13
+ "distribution",
14
+ "graph",
15
+ "parts",
16
+ "percentage",
17
+ "pie",
18
+ "pie chart",
19
+ "pie-chart",
20
+ "probability",
21
+ "proportion",
22
+ "ratio",
23
+ "sector",
24
+ "segment",
25
+ "slice",
26
+ "statistics",
27
+ "visualization",
28
+ "whole"
29
+ ],
30
+ "sourcePaths": [
31
+ "app/design-system/pie-chart/page.js"
32
+ ],
33
+ "apiModel": "html-class",
34
+ "baseClass": "chart-distribution",
35
+ "variants": [],
36
+ "sizes": [],
37
+ "states": [],
38
+ "structure": {
39
+ "rootElement": "div",
40
+ "requiredClasses": [
41
+ "chart-distribution"
42
+ ],
43
+ "optionalClasses": [],
44
+ "requiredChildren": [],
45
+ "optionalChildren": []
46
+ },
47
+ "attributes": {
48
+ "allowed": [
49
+ "class"
50
+ ],
51
+ "required": [],
52
+ "dataAttributes": [],
53
+ "roles": [],
54
+ "aria": [
55
+ "aria-label"
56
+ ]
57
+ },
58
+ "a11y": {
59
+ "interactive": false,
60
+ "requiredRoles": [],
61
+ "requiredAria": [
62
+ "aria-label"
63
+ ],
64
+ "keyboardSupport": [],
65
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
66
+ },
67
+ "dos": [
68
+ "Apply the base class 'chart-distribution' on the root element.",
69
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
70
+ "Keep semantic color usage aligned with token classes for light/dark support."
71
+ ],
72
+ "donts": [
73
+ "Do not combine conflicting state classes on the same element.",
74
+ "Do not rely on undocumented internal classes in production templates.",
75
+ "Do not remove required accessibility attributes when component is interactive."
76
+ ],
77
+ "tokenUsage": [],
78
+ "examples": [
79
+ {
80
+ "id": "canonical",
81
+ "file": "examples/pie-chart.html",
82
+ "description": "Minimal canonical Pie chart usage."
83
+ }
84
+ ],
85
+ "composition": {
86
+ "patterns": [],
87
+ "relatedComponents": [],
88
+ "notes": []
89
+ },
90
+ "breakingChangePolicy": {
91
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
92
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
93
+ }
94
+ }
@@ -0,0 +1,174 @@
1
+ {
2
+ "id": "popover",
3
+ "name": "Popover",
4
+ "status": "stable",
5
+ "summary": "Native HTML popovers for overlays, panels, and menus using browser-managed focus, keyboard support, and no custom JavaScript.",
6
+ "keywords": [
7
+ "menu",
8
+ "native html",
9
+ "off-canvas",
10
+ "overlay",
11
+ "panel",
12
+ "popover",
13
+ "popoverTarget",
14
+ "popoverTargetaction",
15
+ "popup",
16
+ "tooltip"
17
+ ],
18
+ "sourcePaths": [
19
+ "app/design-system/popover/page.js",
20
+ "assets/styles/popover.css"
21
+ ],
22
+ "apiModel": "html-class",
23
+ "baseClass": "popover",
24
+ "variants": [
25
+ {
26
+ "name": "popover-fixed",
27
+ "className": "popover-fixed",
28
+ "description": "Viewport-level layout mode using fixed positioning."
29
+ },
30
+ {
31
+ "name": "popover-absolute",
32
+ "className": "popover-absolute",
33
+ "description": "Absolute layout mode in native top layer, with backdrop visually disabled."
34
+ },
35
+ {
36
+ "name": "popover-overlay",
37
+ "className": "popover-overlay",
38
+ "description": "Forces backdrop overlay on open popovers (useful for explicit fixed mode)."
39
+ },
40
+ {
41
+ "name": "popover-no-overlay",
42
+ "className": "popover-no-overlay",
43
+ "description": "Disables backdrop overlay for open popovers, including fixed mode."
44
+ },
45
+ {
46
+ "name": "popover-top",
47
+ "className": "popover-top",
48
+ "description": "Top center position."
49
+ },
50
+ {
51
+ "name": "popover-bottom",
52
+ "className": "popover-bottom",
53
+ "description": "Bottom center position."
54
+ },
55
+ {
56
+ "name": "popover-left",
57
+ "className": "popover-left",
58
+ "description": "Middle left position."
59
+ },
60
+ {
61
+ "name": "popover-right",
62
+ "className": "popover-right",
63
+ "description": "Middle right position."
64
+ },
65
+ {
66
+ "name": "popover-top-left",
67
+ "className": "popover-top-left",
68
+ "description": "Top left corner position."
69
+ },
70
+ {
71
+ "name": "popover-top-right",
72
+ "className": "popover-top-right",
73
+ "description": "Top right corner position."
74
+ },
75
+ {
76
+ "name": "popover-bottom-left",
77
+ "className": "popover-bottom-left",
78
+ "description": "Bottom left corner position."
79
+ },
80
+ {
81
+ "name": "popover-bottom-right",
82
+ "className": "popover-bottom-right",
83
+ "description": "Bottom right corner position."
84
+ },
85
+ {
86
+ "name": "popover-right-full",
87
+ "className": "popover-right-full",
88
+ "description": "Right-side full-height panel variant."
89
+ }
90
+ ],
91
+ "sizes": [],
92
+ "states": [],
93
+ "structure": {
94
+ "rootElement": "div",
95
+ "requiredClasses": [
96
+ "popover"
97
+ ],
98
+ "optionalClasses": [
99
+ "popover-fixed",
100
+ "popover-absolute",
101
+ "popover-overlay",
102
+ "popover-no-overlay",
103
+ "popover-top",
104
+ "popover-bottom",
105
+ "popover-left",
106
+ "popover-right",
107
+ "popover-top-left",
108
+ "popover-top-right",
109
+ "popover-bottom-left",
110
+ "popover-bottom-right",
111
+ "popover-right-full"
112
+ ],
113
+ "requiredChildren": [],
114
+ "optionalChildren": []
115
+ },
116
+ "attributes": {
117
+ "allowed": [
118
+ "class",
119
+ "id",
120
+ "tabindex"
121
+ ],
122
+ "required": [],
123
+ "dataAttributes": [],
124
+ "roles": [],
125
+ "aria": []
126
+ },
127
+ "a11y": {
128
+ "interactive": true,
129
+ "requiredRoles": [],
130
+ "requiredAria": [
131
+ "aria-label (when no visible label)"
132
+ ],
133
+ "keyboardSupport": [
134
+ "Tab",
135
+ "Shift+Tab",
136
+ "Enter",
137
+ "Space"
138
+ ],
139
+ "focusBehavior": "Visible focus state is required when the component is focusable or clickable."
140
+ },
141
+ "dos": [
142
+ "Apply the base class 'popover' on the root element.",
143
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
144
+ "Keep semantic color usage aligned with token classes for light/dark support."
145
+ ],
146
+ "donts": [
147
+ "Do not combine conflicting state classes on the same element.",
148
+ "Do not rely on undocumented internal classes in production templates.",
149
+ "Do not remove required accessibility attributes when component is interactive."
150
+ ],
151
+ "tokenUsage": [
152
+ "background-surface",
153
+ "line-default",
154
+ "text-default",
155
+ "text-secondary",
156
+ "text-tertiary"
157
+ ],
158
+ "examples": [
159
+ {
160
+ "id": "canonical",
161
+ "file": "examples/popover.html",
162
+ "description": "Minimal canonical Popover usage."
163
+ }
164
+ ],
165
+ "composition": {
166
+ "patterns": [],
167
+ "relatedComponents": [],
168
+ "notes": []
169
+ },
170
+ "breakingChangePolicy": {
171
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
172
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
173
+ }
174
+ }