gbs-add-block 2.1.0 → 2.3.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 (129) hide show
  1. package/.gbs/skills/gbs-components/SKILL.md +190 -134
  2. package/.gbs/skills/gbs-components/references/install.md +25 -3
  3. package/.gbs/skills/gbs-components/references/styling.md +246 -207
  4. package/CHANGELOG.md +74 -0
  5. package/README.md +154 -23
  6. package/index.cjs +212 -3
  7. package/package.json +41 -10
  8. package/schema/passport-v1.schema.json +204 -0
  9. package/source/beta-components/accordion/passport.json +259 -0
  10. package/source/beta-components/accordion/styles.css +207 -208
  11. package/source/beta-components/alert/passport.json +250 -0
  12. package/source/beta-components/alert/styles.css +154 -155
  13. package/source/beta-components/avatar/passport.json +294 -0
  14. package/source/beta-components/avatar/styles.css +225 -226
  15. package/source/beta-components/badge/passport.json +332 -0
  16. package/source/beta-components/badge/styles.css +203 -204
  17. package/source/beta-components/breadcrumb/passport.json +243 -0
  18. package/source/beta-components/breadcrumb/styles.css +138 -140
  19. package/source/beta-components/button/passport.json +402 -0
  20. package/source/beta-components/button/passport.manual.json +31 -0
  21. package/source/beta-components/button/styles.css +232 -234
  22. package/source/beta-components/card/passport.json +337 -0
  23. package/source/beta-components/card/styles.css +230 -232
  24. package/source/beta-components/checkbox/passport.json +456 -0
  25. package/source/beta-components/checkbox/styles.css +211 -213
  26. package/source/beta-components/combobox/passport.json +456 -0
  27. package/source/beta-components/combobox/styles.css +419 -417
  28. package/source/beta-components/data-grid/agent/coerce.ts +368 -0
  29. package/source/beta-components/data-grid/agent/contract.ts +410 -0
  30. package/source/beta-components/data-grid/agent/dataset.ts +92 -0
  31. package/source/beta-components/data-grid/agent/engine.ts +470 -0
  32. package/source/beta-components/data-grid/agent/executors.ts +155 -0
  33. package/source/beta-components/data-grid/agent/index.ts +79 -0
  34. package/source/beta-components/data-grid/agent/intent.ts +324 -0
  35. package/source/beta-components/data-grid/agent/operations.ts +335 -0
  36. package/source/beta-components/data-grid/agent/validate.ts +630 -0
  37. package/source/beta-components/data-grid/agent/webmcp.ts +107 -0
  38. package/source/beta-components/data-grid/index.ts +14 -7
  39. package/source/beta-components/data-grid/passport.json +1051 -0
  40. package/source/beta-components/data-grid/passport.manual.json +255 -0
  41. package/source/beta-components/data-grid/react/AskGrid.tsx +164 -0
  42. package/source/beta-components/data-grid/react/DataGrid.tsx +39 -0
  43. package/source/beta-components/data-grid/styles.css +874 -716
  44. package/source/beta-components/date-picker/passport.json +407 -0
  45. package/source/beta-components/date-picker/styles.css +445 -446
  46. package/source/beta-components/dialog/passport.json +344 -0
  47. package/source/beta-components/dialog/styles.css +280 -279
  48. package/source/beta-components/file-uploader/passport.json +518 -0
  49. package/source/beta-components/file-uploader/styles.css +394 -396
  50. package/source/beta-components/input/passport.json +536 -0
  51. package/source/beta-components/input/styles.css +295 -297
  52. package/source/beta-components/menu/passport.json +322 -0
  53. package/source/beta-components/menu/styles.css +224 -223
  54. package/source/beta-components/modal/passport.json +289 -0
  55. package/source/beta-components/modal/styles.css +241 -240
  56. package/source/beta-components/number-input/passport.json +541 -0
  57. package/source/beta-components/number-input/styles.css +230 -231
  58. package/source/beta-components/popover/passport.json +238 -0
  59. package/source/beta-components/popover/styles.css +148 -147
  60. package/source/beta-components/progress/passport.json +270 -0
  61. package/source/beta-components/progress/styles.css +200 -201
  62. package/source/beta-components/radio-group/passport.json +477 -0
  63. package/source/beta-components/radio-group/styles.css +269 -270
  64. package/source/beta-components/shared/core/agent/adapter.ts +65 -0
  65. package/source/beta-components/shared/core/agent/history.ts +120 -0
  66. package/source/beta-components/shared/core/agent/index.ts +46 -0
  67. package/source/beta-components/shared/core/agent/numbers.ts +217 -0
  68. package/source/beta-components/shared/core/agent/schema.ts +180 -0
  69. package/source/beta-components/shared/core/agent/types.ts +169 -0
  70. package/source/beta-components/shared/core/agent/webmcp.ts +328 -0
  71. package/source/beta-components/shared/index.ts +9 -0
  72. package/source/beta-components/shared/react/GramproAIProvider.tsx +50 -0
  73. package/source/beta-components/shared/react/useAskAgent.ts +217 -0
  74. package/source/beta-components/shared/styles.css +79 -0
  75. package/source/beta-components/shared/version.json +4 -4
  76. package/source/beta-components/shared/version.ts +6 -6
  77. package/source/beta-components/skeleton/passport.json +251 -0
  78. package/source/beta-components/skeleton/styles.css +185 -187
  79. package/source/beta-components/spinner/passport.json +245 -0
  80. package/source/beta-components/spinner/styles.css +173 -174
  81. package/source/beta-components/switch/passport.json +421 -0
  82. package/source/beta-components/switch/styles.css +227 -229
  83. package/source/beta-components/tabs/passport.json +315 -0
  84. package/source/beta-components/tabs/styles.css +263 -264
  85. package/source/beta-components/textarea/passport.json +382 -0
  86. package/source/beta-components/textarea/styles.css +158 -160
  87. package/source/beta-components/toaster/passport.json +221 -0
  88. package/source/beta-components/toaster/styles.css +282 -282
  89. package/source/beta-components/tooltip/passport.json +170 -0
  90. package/source/beta-components/tooltip/styles.css +71 -73
  91. package/tools/env.cjs +61 -0
  92. package/tools/passport/cli.cjs +79 -0
  93. package/tools/passport/extract.cjs +493 -0
  94. package/tools/passport/index.cjs +185 -0
  95. package/tools/passport/merge.cjs +131 -0
  96. package/tools/passport/policy.cjs +65 -0
  97. package/tools/passport/validate.cjs +277 -0
  98. package/tools/ts-require.cjs +79 -0
  99. package/source/beta-components/accordion/__tests__/core.test.ts +0 -58
  100. package/source/beta-components/alert/__tests__/core.test.ts +0 -17
  101. package/source/beta-components/avatar/__tests__/core.test.ts +0 -88
  102. package/source/beta-components/badge/__tests__/core.test.ts +0 -46
  103. package/source/beta-components/breadcrumb/__tests__/core.test.ts +0 -58
  104. package/source/beta-components/button/__tests__/core.test.ts +0 -31
  105. package/source/beta-components/card/__tests__/core.test.ts +0 -57
  106. package/source/beta-components/checkbox/__tests__/core.test.ts +0 -40
  107. package/source/beta-components/combobox/__tests__/core.test.ts +0 -134
  108. package/source/beta-components/data-grid/__tests__/core.test.ts +0 -356
  109. package/source/beta-components/data-grid/__tests__/export.test.ts +0 -70
  110. package/source/beta-components/data-grid/__tests__/pdf.test.ts +0 -209
  111. package/source/beta-components/date-picker/__tests__/core.test.ts +0 -273
  112. package/source/beta-components/dialog/__tests__/core.test.ts +0 -86
  113. package/source/beta-components/file-uploader/__tests__/core.test.ts +0 -395
  114. package/source/beta-components/input/__tests__/core.test.ts +0 -75
  115. package/source/beta-components/menu/__tests__/core.test.ts +0 -120
  116. package/source/beta-components/modal/__tests__/core.test.ts +0 -55
  117. package/source/beta-components/number-input/__tests__/core.test.ts +0 -151
  118. package/source/beta-components/progress/__tests__/core.test.ts +0 -56
  119. package/source/beta-components/radio-group/__tests__/core.test.ts +0 -64
  120. package/source/beta-components/shared/__tests__/boundaries.test.ts +0 -95
  121. package/source/beta-components/shared/__tests__/core.test.ts +0 -55
  122. package/source/beta-components/shared/__tests__/position.test.ts +0 -143
  123. package/source/beta-components/skeleton/__tests__/core.test.ts +0 -41
  124. package/source/beta-components/spinner/__tests__/core.test.ts +0 -48
  125. package/source/beta-components/switch/__tests__/core.test.ts +0 -64
  126. package/source/beta-components/tabs/__tests__/core.test.ts +0 -51
  127. package/source/beta-components/textarea/__tests__/core.test.ts +0 -38
  128. package/source/beta-components/toaster/__tests__/core.test.ts +0 -256
  129. package/source/beta-components/tooltip/__tests__/core.test.ts +0 -42
@@ -1,208 +1,207 @@
1
- /*
2
- * Accordion styles.
3
- *
4
- * Each section is a native <details>, so the marker has to be taken off (two
5
- * ways: `list-item` display in Firefox, the WebKit pseudo-element elsewhere)
6
- * before a chevron of our own goes on. Tokens read the shared --gbs-*
7
- * variables when they are set on an ancestor (set them on :root to theme
8
- * every component at once). Rules live in the `gbs` layer; declare where it
9
- * sits in your global CSS, e.g. `@layer reset, gbs, app, utilities;`, and
10
- * anything in a later layer overrides them.
11
- */
12
-
13
- @layer gbs {
14
- .ac-root {
15
- --ac-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
16
- --ac-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
17
- --ac-bg: var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e)));
18
- --ac-border: var(--gbs-border, var(--dg-border, light-dark(#e4e4e7, #27272a)));
19
- --ac-hover: var(--gbs-hover, var(--dg-hover, light-dark(#f4f4f5, #1f1f23)));
20
- --ac-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
21
- --ac-radius: var(--gbs-radius, var(--dg-radius, 8px));
22
- --ac-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
23
- --ac-px: 14px;
24
- --ac-py: 12px;
25
- --ac-duration: 180ms;
26
-
27
- color-scheme: inherit;
28
- display: flex;
29
- flex-direction: column;
30
- gap: 8px;
31
- min-width: 0;
32
- font-size: var(--ac-font-size);
33
- line-height: 1.5;
34
- color: var(--ac-fg);
35
- }
36
-
37
- :where(.dark, [data-theme="dark"]) .ac-root {
38
- color-scheme: dark;
39
- }
40
- :where(.light, [data-theme="light"]) .ac-root {
41
- color-scheme: light;
42
- }
43
-
44
- :where(.ac-root) *,
45
- :where(.ac-root) *::before,
46
- :where(.ac-root) *::after {
47
- box-sizing: border-box;
48
- }
49
-
50
- .ac-root[data-size="sm"] {
51
- --ac-px: 10px;
52
- --ac-py: 8px;
53
- --ac-font-size: 12px;
54
- }
55
- .ac-root[data-size="lg"] {
56
- --ac-px: 18px;
57
- --ac-py: 16px;
58
- --ac-font-size: 14px;
59
- }
60
-
61
- /* ---------------------------------------------------------------- item */
62
-
63
- .ac-item {
64
- min-width: 0;
65
- border: 1px solid var(--ac-border);
66
- border-radius: var(--ac-radius);
67
- background: var(--ac-bg);
68
- }
69
-
70
- /* Contained: one block with dividers instead of separate cards. */
71
- .ac-root[data-variant="contained"] {
72
- gap: 0;
73
- border: 1px solid var(--ac-border);
74
- border-radius: var(--ac-radius);
75
- overflow: hidden;
76
- }
77
- .ac-root[data-variant="contained"] .ac-item {
78
- border: 0;
79
- border-block-end: 1px solid var(--ac-border);
80
- border-radius: 0;
81
- }
82
- .ac-root[data-variant="contained"] .ac-item:last-child {
83
- border-block-end: 0;
84
- }
85
-
86
- /* Plain: rules only, for a sidebar or a FAQ. */
87
- .ac-root[data-variant="plain"] {
88
- gap: 0;
89
- }
90
- .ac-root[data-variant="plain"] .ac-item {
91
- border: 0;
92
- border-block-end: 1px solid var(--ac-border);
93
- border-radius: 0;
94
- background: none;
95
- }
96
- .ac-root[data-variant="plain"] .ac-header {
97
- padding-inline: 0;
98
- }
99
- .ac-root[data-variant="plain"] .ac-body {
100
- padding-inline: 0;
101
- }
102
-
103
- /* -------------------------------------------------------------- header */
104
-
105
- .ac-header {
106
- display: flex;
107
- align-items: center;
108
- gap: 10px;
109
- padding: var(--ac-py) var(--ac-px);
110
- border-radius: inherit;
111
- cursor: pointer;
112
- user-select: none;
113
- /* Firefox draws the triangle through `display: list-item`. */
114
- list-style: none;
115
- }
116
- .ac-header::-webkit-details-marker {
117
- display: none;
118
- }
119
- .ac-header:hover {
120
- background: var(--ac-hover);
121
- }
122
- .ac-header:focus-visible {
123
- outline: 2px solid var(--ac-focus);
124
- outline-offset: -2px;
125
- }
126
- .ac-item[data-disabled] .ac-header {
127
- cursor: not-allowed;
128
- }
129
- .ac-item[data-disabled] .ac-title {
130
- color: var(--ac-muted);
131
- }
132
-
133
- .ac-heading {
134
- display: flex;
135
- flex: 1 1 auto;
136
- flex-direction: column;
137
- gap: 1px;
138
- min-width: 0;
139
- }
140
- .ac-title {
141
- font-weight: 600;
142
- }
143
- .ac-description {
144
- color: var(--ac-muted);
145
- font-weight: 400;
146
- }
147
- .ac-meta {
148
- display: inline-flex;
149
- flex: none;
150
- align-items: center;
151
- gap: 6px;
152
- color: var(--ac-muted);
153
- }
154
-
155
- .ac-icon {
156
- display: inline-flex;
157
- flex: none;
158
- color: var(--ac-muted);
159
- transition: rotate var(--ac-duration) ease;
160
- }
161
- .ac-icon > svg {
162
- width: 16px;
163
- height: 16px;
164
- }
165
- .ac-item[open] > .ac-header .ac-icon {
166
- rotate: 180deg;
167
- }
168
-
169
- /* ------------------------------------------------------------- content */
170
-
171
- .ac-body {
172
- padding: 0 var(--ac-px) var(--ac-py);
173
- }
174
-
175
- /*
176
- * Opening animates where the browser can do it: `interpolate-size` lets a
177
- * height of `auto` be interpolated, and `::details-content` is the box to
178
- * animate. Browsers without either simply show and hide, which is the
179
- * behaviour everything else falls back to anyway.
180
- */
181
- @supports (interpolate-size: allow-keywords) {
182
- .ac-root {
183
- interpolate-size: allow-keywords;
184
- }
185
- .ac-item::details-content {
186
- height: 0;
187
- overflow: hidden;
188
- transition:
189
- height var(--ac-duration) ease,
190
- content-visibility var(--ac-duration) allow-discrete;
191
- }
192
- .ac-item[open]::details-content {
193
- height: auto;
194
- }
195
- }
196
-
197
- @media (prefers-reduced-motion: reduce) {
198
- .ac-root {
199
- --ac-duration: 0s;
200
- }
201
- }
202
-
203
- @media (forced-colors: active) {
204
- .ac-item {
205
- border: 1px solid CanvasText;
206
- }
207
- }
208
- }
1
+ /*
2
+ * Accordion styles.
3
+ *
4
+ * Each section is a native <details>, so the marker has to be taken off (two
5
+ * ways: `list-item` display in Firefox, the WebKit pseudo-element elsewhere)
6
+ * before a chevron of our own goes on. Tokens read the shared --gbs-*
7
+ * variables when they are set on an ancestor (set them on :root to theme every
8
+ * component at once). Rules are unlayered: they beat a framework reset on
9
+ * specificity, and lose to anything you pass through `className`. With
10
+ * Tailwind v4, import this file after the framework and inside its components
11
+ * layer - see the README.
12
+ */
13
+
14
+ .ac-root {
15
+ --ac-fg: var(--gbs-fg, var(--dg-fg, light-dark(#18181b, #f4f4f5)));
16
+ --ac-muted: var(--gbs-muted, var(--dg-muted, light-dark(#71717a, #a1a1aa)));
17
+ --ac-bg: var(--gbs-bg, var(--dg-bg, light-dark(#ffffff, #0b0b0e)));
18
+ --ac-border: var(--gbs-border, var(--dg-border, light-dark(#e4e4e7, #27272a)));
19
+ --ac-hover: var(--gbs-hover, var(--dg-hover, light-dark(#f4f4f5, #1f1f23)));
20
+ --ac-focus: var(--gbs-focus, var(--dg-focus, light-dark(#2563eb, #60a5fa)));
21
+ --ac-radius: var(--gbs-radius, var(--dg-radius, 8px));
22
+ --ac-font-size: var(--gbs-font-size, var(--dg-font-size, 13px));
23
+ --ac-px: 14px;
24
+ --ac-py: 12px;
25
+ --ac-duration: 180ms;
26
+
27
+ color-scheme: inherit;
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: 8px;
31
+ min-width: 0;
32
+ font-size: var(--ac-font-size);
33
+ line-height: 1.5;
34
+ color: var(--ac-fg);
35
+ }
36
+
37
+ :where(.dark, [data-theme="dark"]) .ac-root {
38
+ color-scheme: dark;
39
+ }
40
+ :where(.light, [data-theme="light"]) .ac-root {
41
+ color-scheme: light;
42
+ }
43
+
44
+ :where(.ac-root) *,
45
+ :where(.ac-root) *::before,
46
+ :where(.ac-root) *::after {
47
+ box-sizing: border-box;
48
+ }
49
+
50
+ .ac-root[data-size="sm"] {
51
+ --ac-px: 10px;
52
+ --ac-py: 8px;
53
+ --ac-font-size: 12px;
54
+ }
55
+ .ac-root[data-size="lg"] {
56
+ --ac-px: 18px;
57
+ --ac-py: 16px;
58
+ --ac-font-size: 14px;
59
+ }
60
+
61
+ /* ---------------------------------------------------------------- item */
62
+
63
+ .ac-item {
64
+ min-width: 0;
65
+ border: 1px solid var(--ac-border);
66
+ border-radius: var(--ac-radius);
67
+ background: var(--ac-bg);
68
+ }
69
+
70
+ /* Contained: one block with dividers instead of separate cards. */
71
+ .ac-root[data-variant="contained"] {
72
+ gap: 0;
73
+ border: 1px solid var(--ac-border);
74
+ border-radius: var(--ac-radius);
75
+ overflow: hidden;
76
+ }
77
+ .ac-root[data-variant="contained"] .ac-item {
78
+ border: 0;
79
+ border-block-end: 1px solid var(--ac-border);
80
+ border-radius: 0;
81
+ }
82
+ .ac-root[data-variant="contained"] .ac-item:last-child {
83
+ border-block-end: 0;
84
+ }
85
+
86
+ /* Plain: rules only, for a sidebar or a FAQ. */
87
+ .ac-root[data-variant="plain"] {
88
+ gap: 0;
89
+ }
90
+ .ac-root[data-variant="plain"] .ac-item {
91
+ border: 0;
92
+ border-block-end: 1px solid var(--ac-border);
93
+ border-radius: 0;
94
+ background: none;
95
+ }
96
+ .ac-root[data-variant="plain"] .ac-header {
97
+ padding-inline: 0;
98
+ }
99
+ .ac-root[data-variant="plain"] .ac-body {
100
+ padding-inline: 0;
101
+ }
102
+
103
+ /* -------------------------------------------------------------- header */
104
+
105
+ .ac-header {
106
+ display: flex;
107
+ align-items: center;
108
+ gap: 10px;
109
+ padding: var(--ac-py) var(--ac-px);
110
+ border-radius: inherit;
111
+ cursor: pointer;
112
+ user-select: none;
113
+ /* Firefox draws the triangle through `display: list-item`. */
114
+ list-style: none;
115
+ }
116
+ .ac-header::-webkit-details-marker {
117
+ display: none;
118
+ }
119
+ .ac-header:hover {
120
+ background: var(--ac-hover);
121
+ }
122
+ .ac-header:focus-visible {
123
+ outline: 2px solid var(--ac-focus);
124
+ outline-offset: -2px;
125
+ }
126
+ .ac-item[data-disabled] .ac-header {
127
+ cursor: not-allowed;
128
+ }
129
+ .ac-item[data-disabled] .ac-title {
130
+ color: var(--ac-muted);
131
+ }
132
+
133
+ .ac-heading {
134
+ display: flex;
135
+ flex: 1 1 auto;
136
+ flex-direction: column;
137
+ gap: 1px;
138
+ min-width: 0;
139
+ }
140
+ .ac-title {
141
+ font-weight: 600;
142
+ }
143
+ .ac-description {
144
+ color: var(--ac-muted);
145
+ font-weight: 400;
146
+ }
147
+ .ac-meta {
148
+ display: inline-flex;
149
+ flex: none;
150
+ align-items: center;
151
+ gap: 6px;
152
+ color: var(--ac-muted);
153
+ }
154
+
155
+ .ac-icon {
156
+ display: inline-flex;
157
+ flex: none;
158
+ color: var(--ac-muted);
159
+ transition: rotate var(--ac-duration) ease;
160
+ }
161
+ .ac-icon > svg {
162
+ width: 16px;
163
+ height: 16px;
164
+ }
165
+ .ac-item[open] > .ac-header .ac-icon {
166
+ rotate: 180deg;
167
+ }
168
+
169
+ /* ------------------------------------------------------------- content */
170
+
171
+ .ac-body {
172
+ padding: 0 var(--ac-px) var(--ac-py);
173
+ }
174
+
175
+ /*
176
+ * Opening animates where the browser can do it: `interpolate-size` lets a
177
+ * height of `auto` be interpolated, and `::details-content` is the box to
178
+ * animate. Browsers without either simply show and hide, which is the
179
+ * behaviour everything else falls back to anyway.
180
+ */
181
+ @supports (interpolate-size: allow-keywords) {
182
+ .ac-root {
183
+ interpolate-size: allow-keywords;
184
+ }
185
+ .ac-item::details-content {
186
+ height: 0;
187
+ overflow: hidden;
188
+ transition:
189
+ height var(--ac-duration) ease,
190
+ content-visibility var(--ac-duration) allow-discrete;
191
+ }
192
+ .ac-item[open]::details-content {
193
+ height: auto;
194
+ }
195
+ }
196
+
197
+ @media (prefers-reduced-motion: reduce) {
198
+ .ac-root {
199
+ --ac-duration: 0s;
200
+ }
201
+ }
202
+
203
+ @media (forced-colors: active) {
204
+ .ac-item {
205
+ border: 1px solid CanvasText;
206
+ }
207
+ }
@@ -0,0 +1,250 @@
1
+ {
2
+ "passportVersion": "1.0.0",
3
+ "identity": {
4
+ "component": "Alert",
5
+ "folder": "alert",
6
+ "exports": [
7
+ "Alert"
8
+ ]
9
+ },
10
+ "source": {
11
+ "libraryVersion": "2.3.0",
12
+ "files": [
13
+ "core/index.ts",
14
+ "core/live.ts",
15
+ "core/types.ts",
16
+ "index.ts",
17
+ "react/Alert.tsx",
18
+ "react/icons.tsx",
19
+ "react/locale.ts",
20
+ "react/props.ts"
21
+ ],
22
+ "sourceHash": "sha256:96504522986d483b4f6afdc67af3ea93ec6489dc16c4859a60a03c0d09430d61"
23
+ },
24
+ "props": [
25
+ {
26
+ "name": "actions",
27
+ "type": "other",
28
+ "typeText": "ReactNode",
29
+ "required": false,
30
+ "origin": "derived",
31
+ "description": "Buttons under the message: \"Try again\", \"Go to billing\".",
32
+ "descriptionOrigin": "jsdoc"
33
+ },
34
+ {
35
+ "name": "aria-describedby",
36
+ "type": "string",
37
+ "typeText": "string | undefined",
38
+ "required": false,
39
+ "origin": "inherited"
40
+ },
41
+ {
42
+ "name": "aria-label",
43
+ "type": "string",
44
+ "typeText": "string | undefined",
45
+ "required": false,
46
+ "origin": "inherited"
47
+ },
48
+ {
49
+ "name": "aria-labelledby",
50
+ "type": "string",
51
+ "typeText": "string | undefined",
52
+ "required": false,
53
+ "origin": "inherited"
54
+ },
55
+ {
56
+ "name": "children",
57
+ "type": "other",
58
+ "typeText": "ReactNode",
59
+ "required": false,
60
+ "origin": "derived"
61
+ },
62
+ {
63
+ "name": "className",
64
+ "type": "string",
65
+ "typeText": "string | undefined",
66
+ "required": false,
67
+ "origin": "derived"
68
+ },
69
+ {
70
+ "name": "classNames",
71
+ "type": "other",
72
+ "typeText": "Partial<Record<AlertSlot, string>> | undefined",
73
+ "required": false,
74
+ "origin": "derived"
75
+ },
76
+ {
77
+ "name": "description",
78
+ "type": "other",
79
+ "typeText": "ReactNode",
80
+ "required": false,
81
+ "origin": "derived",
82
+ "description": "The message. `children` works too, and is the better place for links.",
83
+ "descriptionOrigin": "jsdoc"
84
+ },
85
+ {
86
+ "name": "hidden",
87
+ "type": "boolean",
88
+ "typeText": "boolean | undefined",
89
+ "required": false,
90
+ "origin": "inherited"
91
+ },
92
+ {
93
+ "name": "icon",
94
+ "type": "other",
95
+ "typeText": "ReactNode",
96
+ "required": false,
97
+ "origin": "derived",
98
+ "description": "Replace the variant's glyph, or pass `false` for none.",
99
+ "descriptionOrigin": "jsdoc"
100
+ },
101
+ {
102
+ "name": "id",
103
+ "type": "string",
104
+ "typeText": "string | undefined",
105
+ "required": false,
106
+ "origin": "inherited"
107
+ },
108
+ {
109
+ "name": "localeText",
110
+ "type": "other",
111
+ "typeText": "Partial<AlertLocaleText> | undefined",
112
+ "required": false,
113
+ "origin": "derived"
114
+ },
115
+ {
116
+ "name": "onDismiss",
117
+ "type": "function",
118
+ "signature": "(() => void) | undefined",
119
+ "required": false,
120
+ "origin": "derived",
121
+ "description": "Show a close button. The alert does not hide itself; remove it in the handler.",
122
+ "descriptionOrigin": "jsdoc"
123
+ },
124
+ {
125
+ "name": "ref",
126
+ "type": "other",
127
+ "typeText": "Ref<HTMLDivElement> | undefined",
128
+ "required": false,
129
+ "origin": "derived"
130
+ },
131
+ {
132
+ "name": "size",
133
+ "type": "enum",
134
+ "values": [
135
+ "md",
136
+ "sm"
137
+ ],
138
+ "typeText": "AlertSize | undefined",
139
+ "required": false,
140
+ "default": "md",
141
+ "origin": "derived",
142
+ "description": "Default `md`. `sm` drops the title to one line of text.",
143
+ "descriptionOrigin": "jsdoc"
144
+ },
145
+ {
146
+ "name": "style",
147
+ "type": "other",
148
+ "typeText": "CSSProperties | undefined",
149
+ "required": false,
150
+ "origin": "derived"
151
+ },
152
+ {
153
+ "name": "tabIndex",
154
+ "type": "number",
155
+ "typeText": "number | undefined",
156
+ "required": false,
157
+ "origin": "inherited"
158
+ },
159
+ {
160
+ "name": "title",
161
+ "type": "other",
162
+ "typeText": "ReactNode",
163
+ "required": false,
164
+ "origin": "derived"
165
+ },
166
+ {
167
+ "name": "variant",
168
+ "type": "enum",
169
+ "values": [
170
+ "danger",
171
+ "info",
172
+ "neutral",
173
+ "success",
174
+ "warning"
175
+ ],
176
+ "typeText": "AlertVariant | undefined",
177
+ "required": false,
178
+ "default": "info",
179
+ "origin": "derived",
180
+ "description": "Default `info`.",
181
+ "descriptionOrigin": "jsdoc"
182
+ }
183
+ ],
184
+ "inherits": [
185
+ {
186
+ "from": "HTMLAttributes<HTMLDivElement>",
187
+ "omitted": [
188
+ "role",
189
+ "title"
190
+ ],
191
+ "passthrough": true
192
+ }
193
+ ],
194
+ "events": [
195
+ {
196
+ "name": "onDismiss",
197
+ "signature": "(() => void) | undefined"
198
+ }
199
+ ],
200
+ "slots": [
201
+ "root",
202
+ "icon",
203
+ "content",
204
+ "title",
205
+ "description",
206
+ "actions",
207
+ "dismiss"
208
+ ],
209
+ "states": [
210
+ {
211
+ "attr": "data-size",
212
+ "values": [
213
+ "sm"
214
+ ]
215
+ },
216
+ {
217
+ "attr": "data-theme",
218
+ "values": [
219
+ "dark",
220
+ "light"
221
+ ]
222
+ },
223
+ {
224
+ "attr": "data-variant",
225
+ "values": [
226
+ "danger",
227
+ "neutral",
228
+ "success",
229
+ "warning"
230
+ ]
231
+ }
232
+ ],
233
+ "accessibility": {
234
+ "supplied": [],
235
+ "required": []
236
+ },
237
+ "composition": {},
238
+ "operations": {},
239
+ "intentDomains": [],
240
+ "safeMutations": {},
241
+ "examples": [],
242
+ "coverage": {
243
+ "propsTotal": 19,
244
+ "propsDescribed": 6,
245
+ "describedPct": 32,
246
+ "authoredSections": [
247
+ "accessibility"
248
+ ]
249
+ }
250
+ }