@gunkin/uiify 0.0.20-alpha → 0.0.24-alpha

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 (285) hide show
  1. package/agents/components.md +13 -0
  2. package/agents/index.md +31 -1
  3. package/agents/reference/components/accordion.md +5 -0
  4. package/agents/reference/components/alert-modal.md +6 -0
  5. package/agents/reference/components/alert.md +48 -0
  6. package/agents/reference/components/aspect-ratio.md +30 -0
  7. package/agents/reference/components/avatar.md +36 -0
  8. package/agents/reference/components/badge.md +35 -0
  9. package/agents/reference/components/breadcrumb.md +5 -0
  10. package/agents/reference/components/button.md +4 -0
  11. package/agents/reference/components/candle-chart.md +4 -0
  12. package/agents/reference/components/card.md +28 -0
  13. package/agents/reference/components/carousel.md +4 -0
  14. package/agents/reference/components/checkbox.md +6 -0
  15. package/agents/reference/components/collapsible.md +5 -0
  16. package/agents/reference/components/color-picker.md +4 -0
  17. package/agents/reference/components/combobox.md +4 -0
  18. package/agents/reference/components/context-menu.md +4 -0
  19. package/agents/reference/components/date-picker.md +27 -0
  20. package/agents/reference/components/description-list.md +42 -0
  21. package/agents/reference/components/drawer.md +5 -0
  22. package/agents/reference/components/dropdown-menu.md +4 -0
  23. package/agents/reference/components/empty.md +49 -0
  24. package/agents/reference/components/field.md +5 -0
  25. package/agents/reference/components/fieldset.md +35 -0
  26. package/agents/reference/components/file-upload.md +4 -0
  27. package/agents/reference/components/form-error-summary.md +37 -0
  28. package/agents/reference/components/form.md +4 -0
  29. package/agents/reference/components/header.md +4 -0
  30. package/agents/reference/components/hover-card.md +4 -0
  31. package/agents/reference/components/input-group.md +37 -0
  32. package/agents/reference/components/input.md +4 -0
  33. package/agents/reference/components/item.md +56 -0
  34. package/agents/reference/components/line-chart.md +4 -0
  35. package/agents/reference/components/modal.md +5 -0
  36. package/agents/reference/components/number-field.md +4 -0
  37. package/agents/reference/components/otp-input.md +4 -0
  38. package/agents/reference/components/pagination.md +4 -0
  39. package/agents/reference/components/popup.md +5 -0
  40. package/agents/reference/components/progress.md +20 -0
  41. package/agents/reference/components/radio-group.md +5 -0
  42. package/agents/reference/components/rating.md +5 -0
  43. package/agents/reference/components/segmented-control.md +5 -0
  44. package/agents/reference/components/select.md +5 -0
  45. package/agents/reference/components/skeleton.md +4 -0
  46. package/agents/reference/components/slider.md +4 -0
  47. package/agents/reference/components/spinner.md +4 -0
  48. package/agents/reference/components/switch.md +4 -0
  49. package/agents/reference/components/table-of-contents.md +4 -0
  50. package/agents/reference/components/table.md +5 -0
  51. package/agents/reference/components/tabs.md +5 -0
  52. package/agents/reference/components/tags-input.md +4 -0
  53. package/agents/reference/components/textarea.md +4 -0
  54. package/agents/reference/components/toast.md +4 -0
  55. package/agents/reference/components/toggle-group.md +5 -0
  56. package/agents/reference/components/toggle.md +4 -0
  57. package/agents/reference/components/toolbar.md +4 -0
  58. package/agents/reference/components/tooltip.md +4 -0
  59. package/agents/reference/components/virtual-scroll.md +4 -0
  60. package/agents/reference/elements/choice.md +1 -1
  61. package/agents/reference/elements/details.md +1 -1
  62. package/agents/reference/elements/dialog.md +1 -1
  63. package/agents/reference/elements/invoker.md +1 -1
  64. package/agents/reference/elements/popover.md +1 -1
  65. package/dist/components/alert/Alert.d.ts +15 -0
  66. package/dist/components/alert/Alert.d.ts.map +1 -0
  67. package/dist/components/alert/Alert.js +61 -0
  68. package/dist/components/alert/Alert.js.map +1 -0
  69. package/dist/components/alert/index.d.ts +3 -0
  70. package/dist/components/alert/index.d.ts.map +1 -0
  71. package/dist/components/alert/index.js +7 -0
  72. package/dist/components/alert/index.js.map +1 -0
  73. package/dist/components/alert/types.d.ts +20 -0
  74. package/dist/components/alert/types.d.ts.map +1 -0
  75. package/dist/components/alert/types.js +1 -0
  76. package/dist/components/alert/types.js.map +1 -0
  77. package/dist/components/alert.d.ts +1 -0
  78. package/dist/components/alert.js +1 -0
  79. package/dist/components/aspect-ratio/AspectRatio.d.ts +7 -0
  80. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -0
  81. package/dist/components/aspect-ratio/AspectRatio.js +26 -0
  82. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -0
  83. package/dist/components/aspect-ratio/index.d.ts +3 -0
  84. package/dist/components/aspect-ratio/index.d.ts.map +1 -0
  85. package/dist/components/aspect-ratio/index.js +5 -0
  86. package/dist/components/aspect-ratio/index.js.map +1 -0
  87. package/dist/components/aspect-ratio/types.d.ts +9 -0
  88. package/dist/components/aspect-ratio/types.d.ts.map +1 -0
  89. package/dist/components/aspect-ratio/types.js +1 -0
  90. package/dist/components/aspect-ratio/types.js.map +1 -0
  91. package/dist/components/aspect-ratio.d.ts +1 -0
  92. package/dist/components/aspect-ratio.js +1 -0
  93. package/dist/components/avatar/Avatar.d.ts +7 -0
  94. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  95. package/dist/components/avatar/Avatar.js +24 -0
  96. package/dist/components/avatar/Avatar.js.map +1 -0
  97. package/dist/components/avatar/index.d.ts +3 -0
  98. package/dist/components/avatar/index.d.ts.map +1 -0
  99. package/dist/components/avatar/index.js +5 -0
  100. package/dist/components/avatar/index.js.map +1 -0
  101. package/dist/components/avatar/types.d.ts +12 -0
  102. package/dist/components/avatar/types.d.ts.map +1 -0
  103. package/dist/components/avatar/types.js +1 -0
  104. package/dist/components/avatar/types.js.map +1 -0
  105. package/dist/components/avatar.d.ts +1 -0
  106. package/dist/components/avatar.js +1 -0
  107. package/dist/components/badge/Badge.d.ts +7 -0
  108. package/dist/components/badge/Badge.d.ts.map +1 -0
  109. package/dist/components/badge/Badge.js +21 -0
  110. package/dist/components/badge/Badge.js.map +1 -0
  111. package/dist/components/badge/index.d.ts +3 -0
  112. package/dist/components/badge/index.d.ts.map +1 -0
  113. package/dist/components/badge/index.js +5 -0
  114. package/dist/components/badge/index.js.map +1 -0
  115. package/dist/components/badge/types.d.ts +11 -0
  116. package/dist/components/badge/types.d.ts.map +1 -0
  117. package/dist/components/badge/types.js +1 -0
  118. package/dist/components/badge/types.js.map +1 -0
  119. package/dist/components/badge.d.ts +1 -0
  120. package/dist/components/badge.js +1 -0
  121. package/dist/components/behavior.css +12 -0
  122. package/dist/components/behavior.css.map +1 -1
  123. package/dist/components/card/Card.d.ts +7 -0
  124. package/dist/components/card/Card.d.ts.map +1 -0
  125. package/dist/components/card/Card.js +16 -0
  126. package/dist/components/card/Card.js.map +1 -0
  127. package/dist/components/card/index.d.ts +3 -0
  128. package/dist/components/card/index.d.ts.map +1 -0
  129. package/dist/components/card/index.js +5 -0
  130. package/dist/components/card/index.js.map +1 -0
  131. package/dist/components/card/types.d.ts +7 -0
  132. package/dist/components/card/types.d.ts.map +1 -0
  133. package/dist/components/card/types.js +1 -0
  134. package/dist/components/card/types.js.map +1 -0
  135. package/dist/components/card.d.ts +1 -0
  136. package/dist/components/card.js +1 -0
  137. package/dist/components/checkbox/types.d.ts +2 -0
  138. package/dist/components/checkbox/types.d.ts.map +1 -1
  139. package/dist/components/date-picker/DatePicker.d.ts +7 -0
  140. package/dist/components/date-picker/DatePicker.d.ts.map +1 -0
  141. package/dist/components/date-picker/DatePicker.js +19 -0
  142. package/dist/components/date-picker/DatePicker.js.map +1 -0
  143. package/dist/components/date-picker/index.d.ts +3 -0
  144. package/dist/components/date-picker/index.d.ts.map +1 -0
  145. package/dist/components/date-picker/index.js +5 -0
  146. package/dist/components/date-picker/index.js.map +1 -0
  147. package/dist/components/date-picker/types.d.ts +5 -0
  148. package/dist/components/date-picker/types.d.ts.map +1 -0
  149. package/dist/components/date-picker/types.js +1 -0
  150. package/dist/components/date-picker/types.js.map +1 -0
  151. package/dist/components/date-picker.d.ts +1 -0
  152. package/dist/components/date-picker.js +1 -0
  153. package/dist/components/description-list/DescriptionList.d.ts +15 -0
  154. package/dist/components/description-list/DescriptionList.d.ts.map +1 -0
  155. package/dist/components/description-list/DescriptionList.js +48 -0
  156. package/dist/components/description-list/DescriptionList.js.map +1 -0
  157. package/dist/components/description-list/index.d.ts +3 -0
  158. package/dist/components/description-list/index.d.ts.map +1 -0
  159. package/dist/components/description-list/index.js +7 -0
  160. package/dist/components/description-list/index.js.map +1 -0
  161. package/dist/components/description-list/types.d.ts +15 -0
  162. package/dist/components/description-list/types.d.ts.map +1 -0
  163. package/dist/components/description-list/types.js +1 -0
  164. package/dist/components/description-list/types.js.map +1 -0
  165. package/dist/components/description-list.d.ts +1 -0
  166. package/dist/components/description-list.js +1 -0
  167. package/dist/components/empty/Empty.d.ts +19 -0
  168. package/dist/components/empty/Empty.d.ts.map +1 -0
  169. package/dist/components/empty/Empty.js +56 -0
  170. package/dist/components/empty/Empty.js.map +1 -0
  171. package/dist/components/empty/index.d.ts +3 -0
  172. package/dist/components/empty/index.d.ts.map +1 -0
  173. package/dist/components/empty/index.js +8 -0
  174. package/dist/components/empty/index.js.map +1 -0
  175. package/dist/components/empty/types.d.ts +19 -0
  176. package/dist/components/empty/types.d.ts.map +1 -0
  177. package/dist/components/empty/types.js +1 -0
  178. package/dist/components/empty/types.js.map +1 -0
  179. package/dist/components/empty.d.ts +1 -0
  180. package/dist/components/empty.js +1 -0
  181. package/dist/components/fieldset/Fieldset.d.ts +11 -0
  182. package/dist/components/fieldset/Fieldset.d.ts.map +1 -0
  183. package/dist/components/fieldset/Fieldset.js +38 -0
  184. package/dist/components/fieldset/Fieldset.js.map +1 -0
  185. package/dist/components/fieldset/index.d.ts +3 -0
  186. package/dist/components/fieldset/index.d.ts.map +1 -0
  187. package/dist/components/fieldset/index.js +6 -0
  188. package/dist/components/fieldset/index.js.map +1 -0
  189. package/dist/components/fieldset/types.d.ts +11 -0
  190. package/dist/components/fieldset/types.d.ts.map +1 -0
  191. package/dist/components/fieldset/types.js +1 -0
  192. package/dist/components/fieldset/types.js.map +1 -0
  193. package/dist/components/fieldset.d.ts +1 -0
  194. package/dist/components/fieldset.js +1 -0
  195. package/dist/components/form-error-summary/FormErrorSummary.d.ts +7 -0
  196. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -0
  197. package/dist/components/form-error-summary/FormErrorSummary.js +25 -0
  198. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -0
  199. package/dist/components/form-error-summary/index.d.ts +3 -0
  200. package/dist/components/form-error-summary/index.d.ts.map +1 -0
  201. package/dist/components/form-error-summary/index.js +5 -0
  202. package/dist/components/form-error-summary/index.js.map +1 -0
  203. package/dist/components/form-error-summary/types.d.ts +12 -0
  204. package/dist/components/form-error-summary/types.d.ts.map +1 -0
  205. package/dist/components/form-error-summary/types.js +1 -0
  206. package/dist/components/form-error-summary/types.js.map +1 -0
  207. package/dist/components/form-error-summary.d.ts +1 -0
  208. package/dist/components/form-error-summary.js +1 -0
  209. package/dist/components/index.d.ts +13 -0
  210. package/dist/components/index.d.ts.map +1 -1
  211. package/dist/components/index.js +13 -0
  212. package/dist/components/index.js.map +1 -1
  213. package/dist/components/input-group/InputGroup.d.ts +5 -0
  214. package/dist/components/input-group/InputGroup.d.ts.map +1 -0
  215. package/dist/components/input-group/InputGroup.js +37 -0
  216. package/dist/components/input-group/InputGroup.js.map +1 -0
  217. package/dist/components/input-group/index.d.ts +3 -0
  218. package/dist/components/input-group/index.d.ts.map +1 -0
  219. package/dist/components/input-group/index.js +6 -0
  220. package/dist/components/input-group/index.js.map +1 -0
  221. package/dist/components/input-group/types.d.ts +12 -0
  222. package/dist/components/input-group/types.d.ts.map +1 -0
  223. package/dist/components/input-group/types.js +1 -0
  224. package/dist/components/input-group/types.js.map +1 -0
  225. package/dist/components/input-group.d.ts +1 -0
  226. package/dist/components/input-group.js +1 -0
  227. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  228. package/dist/components/internal/native-check-control/NativeCheckControl.js +4 -0
  229. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  230. package/dist/components/internal/native-check-control/types.d.ts +2 -0
  231. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  232. package/dist/components/item/Item.d.ts +23 -0
  233. package/dist/components/item/Item.d.ts.map +1 -0
  234. package/dist/components/item/Item.js +64 -0
  235. package/dist/components/item/Item.js.map +1 -0
  236. package/dist/components/item/index.d.ts +3 -0
  237. package/dist/components/item/index.d.ts.map +1 -0
  238. package/dist/components/item/index.js +9 -0
  239. package/dist/components/item/index.js.map +1 -0
  240. package/dist/components/item/types.d.ts +23 -0
  241. package/dist/components/item/types.d.ts.map +1 -0
  242. package/dist/components/item/types.js +1 -0
  243. package/dist/components/item/types.js.map +1 -0
  244. package/dist/components/item.d.ts +1 -0
  245. package/dist/components/item.js +1 -0
  246. package/dist/components/progress/Progress.d.ts +7 -0
  247. package/dist/components/progress/Progress.d.ts.map +1 -0
  248. package/dist/components/progress/Progress.js +9 -0
  249. package/dist/components/progress/Progress.js.map +1 -0
  250. package/dist/components/progress/index.d.ts +3 -0
  251. package/dist/components/progress/index.d.ts.map +1 -0
  252. package/dist/components/progress/index.js +5 -0
  253. package/dist/components/progress/index.js.map +1 -0
  254. package/dist/components/progress/types.d.ts +3 -0
  255. package/dist/components/progress/types.d.ts.map +1 -0
  256. package/dist/components/progress/types.js +1 -0
  257. package/dist/components/progress/types.js.map +1 -0
  258. package/dist/components/progress.d.ts +1 -0
  259. package/dist/components/progress.js +1 -0
  260. package/dist/styles/index.css +1 -1
  261. package/package.json +1 -1
  262. package/skills/uiify/SKILL.md +42 -36
  263. package/skills/uiify/references/elements/alert-modal.md +5 -5
  264. package/skills/uiify/references/elements/aspect-ratio.md +59 -0
  265. package/skills/uiify/references/elements/avatar.md +10 -19
  266. package/skills/uiify/references/elements/badge.md +11 -19
  267. package/skills/uiify/references/elements/card.md +10 -21
  268. package/skills/uiify/references/elements/checkbox.md +1 -1
  269. package/skills/uiify/references/elements/date-picker.md +11 -15
  270. package/skills/uiify/references/elements/description-list.md +38 -0
  271. package/skills/uiify/references/elements/empty-state.md +12 -23
  272. package/skills/uiify/references/elements/field.md +2 -2
  273. package/skills/uiify/references/elements/fieldset.md +39 -0
  274. package/skills/uiify/references/elements/form-error-summary.md +39 -0
  275. package/skills/uiify/references/elements/inline-alert.md +11 -19
  276. package/skills/uiify/references/elements/input-group.md +39 -0
  277. package/skills/uiify/references/elements/item.md +39 -0
  278. package/skills/uiify/references/elements/modal.md +1 -1
  279. package/skills/uiify/references/elements/progress-bar.md +11 -20
  280. package/skills/uiify/references/elements/select.md +1 -1
  281. package/skills/uiify/references/examples/alert-confirmation.md +21 -9
  282. package/skills/uiify/references/examples/field-validation.md +2 -2
  283. package/skills/uiify/references/examples/select-basic.md +1 -1
  284. package/skills/uiify/references/examples/table-controls.md +3 -2
  285. package/skills/uiify/references/guides/verification.md +9 -0
@@ -68,6 +68,19 @@ its exports, props and shapes; exact types are in the `.d.ts` file listed in the
68
68
  | [color-picker](./reference/components/color-picker.md) | `@gunkin/uiify/components/color-picker` | 1 | S1 | `input[type=color]` | `dist/components/color-picker.d.ts` | |
69
69
  | [virtual-scroll](./reference/components/virtual-scroll.md) | `@gunkin/uiify/components/virtual-scroll` | 2 | none | `div[overflow]` | `dist/components/virtual-scroll.d.ts` | |
70
70
  | [table-of-contents](./reference/components/table-of-contents.md) | `@gunkin/uiify/components/table-of-contents` | 2 | S1 | `nav + button[popovertarget] + [popover] + a[href]` | `dist/components/table-of-contents.d.ts` | Base entry is a server-pure native navigation shell; /client adds enhancements. Native links and popover invocation/dismissal work without JavaScript. |
71
+ | [aspect-ratio](./reference/components/aspect-ratio.md) | `@gunkin/uiify/components/aspect-ratio` | 0 | none | `div` | `dist/components/aspect-ratio.d.ts` | Static layout component; native CSS aspect-ratio isolates child intrinsic sizing. |
72
+ | [badge](./reference/components/badge.md) | `@gunkin/uiify/components/badge` | 0 | none | `span` | `dist/components/badge.d.ts` | |
73
+ | [card](./reference/components/card.md) | `@gunkin/uiify/components/card` | 0 | none | `div` | `dist/components/card.d.ts` | |
74
+ | [progress](./reference/components/progress.md) | `@gunkin/uiify/components/progress` | 0 | S1 | `progress` | `dist/components/progress.d.ts` | |
75
+ | [avatar](./reference/components/avatar.md) | `@gunkin/uiify/components/avatar` | 0 | none | `span` | `dist/components/avatar.d.ts` | |
76
+ | [alert](./reference/components/alert.md) | `@gunkin/uiify/components/alert` | 0 | none | `div` | `dist/components/alert.d.ts` | |
77
+ | [input-group](./reference/components/input-group.md) | `@gunkin/uiify/components/input-group` | 0 | none | `div + native controls` | `dist/components/input-group.d.ts` | Static form component; keeps independently labeled native input and action. |
78
+ | [empty](./reference/components/empty.md) | `@gunkin/uiify/components/empty` | 0 | none | `section` | `dist/components/empty.d.ts` | |
79
+ | [item](./reference/components/item.md) | `@gunkin/uiify/components/item` | 0 | none | `li` | `dist/components/item.d.ts` | |
80
+ | [date-picker](./reference/components/date-picker.md) | `@gunkin/uiify/components/date-picker` | 0 | native | `input[type=date]` | `dist/components/date-picker.d.ts` | Native date picker; stylesheet styles the outer input only. |
81
+ | [fieldset](./reference/components/fieldset.md) | `@gunkin/uiify/components/fieldset` | 0 | native | `fieldset + legend` | `dist/components/fieldset.d.ts` | |
82
+ | [form-error-summary](./reference/components/form-error-summary.md) | `@gunkin/uiify/components/form-error-summary` | 0 | none | `section + heading + ul + links` | `dist/components/form-error-summary.d.ts` | Static server-rendered error links; no alert or focus script. |
83
+ | [description-list](./reference/components/description-list.md) | `@gunkin/uiify/components/description-list` | 0 | none | `dl + dt + dd` | `dist/components/description-list.d.ts` | |
71
84
 
72
85
  ## Elements
73
86
 
package/agents/index.md CHANGED
@@ -61,6 +61,19 @@ export function RemoveButton() {
61
61
  }
62
62
  ```
63
63
 
64
+ `Alert` supplies a decorative text symbol from its variant. Use the published parts for its
65
+ content; the optional stylesheet owns their layout. Set `symbol={false}` to hide the symbol.
66
+ Static initial content has no live role by default.
67
+
68
+ ```tsx
69
+ import { Alert, AlertDescription, AlertTitle } from "@gunkin/uiify/components/alert";
70
+
71
+ <Alert variant="warning">
72
+ <AlertTitle>Browser support is incomplete</AlertTitle>
73
+ <AlertDescription>Check the support matrix before release.</AlertDescription>
74
+ </Alert>;
75
+ ```
76
+
64
77
  `as` swaps the rendered element and keeps the component's behavior:
65
78
 
66
79
  ```tsx
@@ -86,7 +99,7 @@ export function EmailField({ invalid }: { readonly invalid: boolean }) {
86
99
  <Field.Label fieldId="email" required>
87
100
  Email
88
101
  </Field.Label>
89
- <Field.Control as="input" fieldId="email" type="email" invalid={invalid} required />
102
+ <Field.Control as="input" fieldId="email" name="email" type="email" invalid={invalid} required />
90
103
  <Field.Description fieldId="email">We only use it to send receipts.</Field.Description>
91
104
  <Field.Error fieldId="email" invalid={invalid}>
92
105
  Enter a valid email address
@@ -96,6 +109,23 @@ export function EmailField({ invalid }: { readonly invalid: boolean }) {
96
109
  }
97
110
  ```
98
111
 
112
+ `Field.Label` connects to `Field.Control`, not a standalone Select. For a select, wrap the
113
+ control in a native label (or match native `htmlFor` to an explicit unique select `id`):
114
+
115
+ ```tsx
116
+ import { Select } from "@gunkin/uiify/components/select";
117
+
118
+ <label>
119
+ Delivery frequency
120
+ <Select.Root name="frequency" defaultValue="weekly">
121
+ <Select.Content>
122
+ <Select.Item value="daily">Daily</Select.Item>
123
+ <Select.Item value="weekly">Weekly</Select.Item>
124
+ </Select.Content>
125
+ </Select.Root>
126
+ </label>;
127
+ ```
128
+
99
129
  A trigger and its close button reference the dialog by `id` and `target`:
100
130
 
101
131
  ```tsx
@@ -5,8 +5,13 @@
5
5
  - Tier 0 (RSC — zero client JavaScript); state source S1; native element `details[name]`
6
6
  - Without JavaScript: full
7
7
  - Types file: `dist/components/accordion.d.ts`
8
+ - Related native Element (manifest): [details](../elements/details.md)
8
9
  - Note: Native details/summary disclosure; name groups single-open items. Built on @gunkin/uiify/elements/details.
9
10
 
11
+ ## Related knowledge
12
+
13
+ - Recipe: [accordion](../../../skills/uiify/references/elements/accordion.md)
14
+
10
15
  ## Exports
11
16
 
12
17
  - Runtime: `Accordion`
@@ -5,8 +5,14 @@
5
5
  - Tier 0 (RSC — zero client JavaScript); state source S1; native element `dialog[role=alertdialog] + command=show-modal`
6
6
  - Without JavaScript: full
7
7
  - Types file: `dist/components/alert-modal.d.ts`
8
+ - Related native Element (manifest): [dialog](../elements/dialog.md)
8
9
  - Note: Native modal alertdialog via show-modal; Cancel/Action are request-close invokers. Baseline Chrome 139 / Firefox 147 / Safari 26.2; below it UIEnhance's invoker fallback runs the command after hydration.
9
10
 
11
+ ## Related knowledge
12
+
13
+ - Recipe: [alert-modal](../../../skills/uiify/references/elements/alert-modal.md)
14
+ - Example: [alert-confirmation](../../../skills/uiify/references/examples/alert-confirmation.md)
15
+
10
16
  ## Exports
11
17
 
12
18
  - Runtime: `AlertModal`, `AlertModalAction`, `AlertModalCancel`, `AlertModalContent`, `AlertModalTrigger`
@@ -0,0 +1,48 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # alert
3
+
4
+ - Import: `@gunkin/uiify/components/alert`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `div`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/alert.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [inline-alert](../../../skills/uiify/references/elements/inline-alert.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `Alert`, `AlertDescription`, `AlertTitle`
16
+ - Types: `AlertDescriptionOwnProps`, `AlertDescriptionProps`, `AlertOwnProps`, `AlertProps`, `AlertTitleOwnProps`, `AlertTitleProps`, `AlertVariant`
17
+
18
+ ## Values
19
+
20
+ - `AlertVariant`: `"secondary" | "success" | "warning" | "destructive"`
21
+
22
+ ## Props and shapes
23
+
24
+ ### AlertOwnProps
25
+
26
+ | Member | Type | Required | Description |
27
+ | --- | --- | --- | --- |
28
+ | `children` | `ReactNode` | no | |
29
+ | `variant` | `AlertVariant` | no | Visual status. Defaults to secondary without adding a live role. |
30
+ | `symbol` | `string \| false` | no | Override the decorative text symbol, or hide it with false. |
31
+
32
+ ### AlertTitleOwnProps
33
+
34
+ | Member | Type | Required | Description |
35
+ | --- | --- | --- | --- |
36
+ | `children` | `ReactNode` | no | |
37
+
38
+ ### AlertDescriptionOwnProps
39
+
40
+ | Member | Type | Required | Description |
41
+ | --- | --- | --- | --- |
42
+ | `children` | `ReactNode` | no | |
43
+
44
+ ## Other types
45
+
46
+ - `AlertProps<TAs>`: `RenderableProps<TAs, AlertOwnProps, Record<string, never>, HTMLElement>`
47
+ - `AlertTitleProps<TAs>`: `RenderableProps<TAs, AlertTitleOwnProps, Record<string, never>, HTMLElement>`
48
+ - `AlertDescriptionProps<TAs>`: `RenderableProps<TAs, AlertDescriptionOwnProps, Record<string, never>, HTMLElement>`
@@ -0,0 +1,30 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # aspect-ratio
3
+
4
+ - Import: `@gunkin/uiify/components/aspect-ratio`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `div`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/aspect-ratio.d.ts`
8
+ - Note: Static layout component; native CSS aspect-ratio isolates child intrinsic sizing.
9
+
10
+ ## Related knowledge
11
+
12
+ - Recipe: [aspect-ratio](../../../skills/uiify/references/elements/aspect-ratio.md)
13
+
14
+ ## Exports
15
+
16
+ - Runtime: `AspectRatio`
17
+ - Types: `AspectRatioOwnProps`, `AspectRatioProps`
18
+
19
+ ## Props and shapes
20
+
21
+ ### AspectRatioOwnProps
22
+
23
+ | Member | Type | Required | Description |
24
+ | --- | --- | --- | --- |
25
+ | `ratio` | `number` | no | Positive finite width / height ratio. Omit to use the CSS default (square). |
26
+ | `children` | `ReactNode` | no | |
27
+
28
+ ## Other types
29
+
30
+ - `AspectRatioProps<TAs>`: `RenderableProps<TAs, AspectRatioOwnProps, Record<string, never>, HTMLElement>`
@@ -0,0 +1,36 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # avatar
3
+
4
+ - Import: `@gunkin/uiify/components/avatar`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `span`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/avatar.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [avatar](../../../skills/uiify/references/elements/avatar.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `Avatar`
16
+ - Types: `AvatarOwnProps`, `AvatarProps`, `AvatarSize`
17
+
18
+ ## Values
19
+
20
+ - `AvatarSize`: `"sm" | "md" | "lg"`
21
+
22
+ ## Props and shapes
23
+
24
+ ### AvatarOwnProps
25
+
26
+ | Member | Type | Required | Description |
27
+ | --- | --- | --- | --- |
28
+ | `name` | `string` | yes | |
29
+ | `fallback` | `string` | yes | |
30
+ | `src` | `string` | no | |
31
+ | `size` | `AvatarSize` | no | |
32
+ | `children` | `never` | no | |
33
+
34
+ ## Other types
35
+
36
+ - `AvatarProps<TAs>`: `RenderableProps<TAs, AvatarOwnProps, Record<string, never>, HTMLElement>`
@@ -0,0 +1,35 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # badge
3
+
4
+ - Import: `@gunkin/uiify/components/badge`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `span`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/badge.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [badge](../../../skills/uiify/references/elements/badge.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `Badge`
16
+ - Types: `BadgeOwnProps`, `BadgeProps`, `BadgeSize`, `BadgeVariant`
17
+
18
+ ## Values
19
+
20
+ - `BadgeVariant`: `"secondary" | "success" | "warning" | "destructive"`
21
+ - `BadgeSize`: `"sm" | "md" | "lg"`
22
+
23
+ ## Props and shapes
24
+
25
+ ### BadgeOwnProps
26
+
27
+ | Member | Type | Required | Description |
28
+ | --- | --- | --- | --- |
29
+ | `children` | `ReactNode` | no | |
30
+ | `size` | `BadgeSize` | no | |
31
+ | `variant` | `BadgeVariant` | no | |
32
+
33
+ ## Other types
34
+
35
+ - `BadgeProps<TAs>`: `RenderableProps<TAs, BadgeOwnProps, Record<string, never>, HTMLElement>`
@@ -5,8 +5,13 @@
5
5
  - Tier 0 (RSC — zero client JavaScript); state source none; native element `nav>ol`
6
6
  - Without JavaScript: full
7
7
  - Types file: `dist/components/breadcrumb.d.ts`
8
+ - Related native Element (manifest): [details](../elements/details.md)
8
9
  - Note: Ellipsis expand/collapse is a native details/summary disclosure, built on @gunkin/uiify/elements/details.
9
10
 
11
+ ## Related knowledge
12
+
13
+ - Recipe: [breadcrumb](../../../skills/uiify/references/elements/breadcrumb.md)
14
+
10
15
  ## Exports
11
16
 
12
17
  - Runtime: `Breadcrumb`, `BreadcrumbEllipsis`, `BreadcrumbItem`, `BreadcrumbLink`, `BreadcrumbList`, `BreadcrumbRoot`, `BreadcrumbSeparator`
@@ -6,6 +6,10 @@
6
6
  - Without JavaScript: full
7
7
  - Types file: `dist/components/button.d.ts`
8
8
 
9
+ ## Related knowledge
10
+
11
+ - Recipe: [button](../../../skills/uiify/references/elements/button.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - Runtime: `Button`
@@ -7,6 +7,10 @@
7
7
  - Types file: `dist/components/candle-chart.d.ts`
8
8
  - Note: Static OHLC geometry is computed during render and expressed as percentage CSS custom properties; the decorative candle glyphs have an accessible table fallback.
9
9
 
10
+ ## Related knowledge
11
+
12
+ - Recipe: [candle-chart](../../../skills/uiify/references/elements/candle-chart.md)
13
+
10
14
  ## Exports
11
15
 
12
16
  - Runtime: `CandleChart`
@@ -0,0 +1,28 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # card
3
+
4
+ - Import: `@gunkin/uiify/components/card`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `div`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/card.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [card](../../../skills/uiify/references/elements/card.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `Card`
16
+ - Types: `CardOwnProps`, `CardProps`
17
+
18
+ ## Props and shapes
19
+
20
+ ### CardOwnProps
21
+
22
+ | Member | Type | Required | Description |
23
+ | --- | --- | --- | --- |
24
+ | `children` | `ReactNode` | no | |
25
+
26
+ ## Other types
27
+
28
+ - `CardProps<TAs>`: `RenderableProps<TAs, CardOwnProps, Record<string, never>, HTMLElement>`
@@ -7,6 +7,10 @@
7
7
  - Types file: `dist/components/carousel.d.ts`
8
8
  - Note: The documented interactive carousel uses /client and requires hydration for synchronized controls. The base entry remains a native no-JS scroller with CSS Scroll Snap and fragment navigation; /fade adds client-driven CSS transitions.
9
9
 
10
+ ## Related knowledge
11
+
12
+ - Recipe: [carousel](../../../skills/uiify/references/elements/carousel.md)
13
+
10
14
  ## Exports
11
15
 
12
16
  - Runtime: `Carousel`
@@ -7,6 +7,10 @@
7
7
  - Types file: `dist/components/checkbox.d.ts`
8
8
  - Note: Native checkbox + label; default entry ships controlled callbacks with use client.
9
9
 
10
+ ## Related knowledge
11
+
12
+ - Recipe: [checkbox](../../../skills/uiify/references/elements/checkbox.md)
13
+
10
14
  ## Exports
11
15
 
12
16
  - Runtime: `Checkbox`
@@ -23,6 +27,8 @@
23
27
  | `checked` | `CheckedState` | no | |
24
28
  | `defaultChecked` | `boolean` | no | |
25
29
  | `disabled` | `boolean` | no | |
30
+ | `name` | `string` | no | |
31
+ | `value` | `string` | no | |
26
32
  | `className` | `string` | no | |
27
33
  | `onCheckedChange` | `(checked: boolean) => void` | no | |
28
34
  | `"aria-label"` | `string` | no | |
@@ -5,8 +5,13 @@
5
5
  - Tier 0 (RSC — zero client JavaScript); state source S1; native element `details`
6
6
  - Without JavaScript: full
7
7
  - Types file: `dist/components/collapsible.d.ts`
8
+ - Related native Element (manifest): [details](../elements/details.md)
8
9
  - Note: Native details/summary disclosure. Built on @gunkin/uiify/elements/details.
9
10
 
11
+ ## Related knowledge
12
+
13
+ - Recipe: [collapsible](../../../skills/uiify/references/elements/collapsible.md)
14
+
10
15
  ## Exports
11
16
 
12
17
  - Runtime: `Collapsible`
@@ -6,6 +6,10 @@
6
6
  - Without JavaScript: degraded-documented
7
7
  - Types file: `dist/components/color-picker.d.ts`
8
8
 
9
+ ## Related knowledge
10
+
11
+ - Recipe: [color-picker](../../../skills/uiify/references/elements/color-picker.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - Runtime: `ColorPicker`
@@ -6,6 +6,10 @@
6
6
  - Without JavaScript: pre-hydration-only
7
7
  - Types file: `dist/components/combobox.d.ts`
8
8
 
9
+ ## Related knowledge
10
+
11
+ - Recipe: [combobox](../../../skills/uiify/references/elements/combobox.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - Runtime: `Combobox`, `ComboboxControl`, `ComboboxContent`, `ComboboxEmpty`, `ComboboxInput`, `ComboboxItem`, `ComboboxRoot`, `ComboboxTags`, `ComboboxTrigger`
@@ -6,6 +6,10 @@
6
6
  - Without JavaScript: pre-hydration-only
7
7
  - Types file: `dist/components/context-menu.d.ts`
8
8
 
9
+ ## Related knowledge
10
+
11
+ - Recipe: [context-menu](../../../skills/uiify/references/elements/context-menu.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - Runtime: `ContextMenu`, `ContextMenuCheckboxItem`, `ContextMenuContent`, `ContextMenuItem`, `ContextMenuLabel`, `ContextMenuRadioItem`, `ContextMenuRoot`, `ContextMenuSeparator`, `ContextMenuSub`, `ContextMenuSubContent`, `ContextMenuSubTrigger`, `ContextMenuTrigger`
@@ -0,0 +1,27 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # date-picker
3
+
4
+ - Import: `@gunkin/uiify/components/date-picker`
5
+ - Tier 0 (RSC — zero client JavaScript); state source native; native element `input[type=date]`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/date-picker.d.ts`
8
+ - Note: Native date picker; stylesheet styles the outer input only.
9
+
10
+ ## Related knowledge
11
+
12
+ - Recipe: [date-picker](../../../skills/uiify/references/elements/date-picker.md)
13
+
14
+ ## Exports
15
+
16
+ - Runtime: `DatePicker`
17
+ - Types: `DatePickerProps`
18
+
19
+ ## Props and shapes
20
+
21
+ ### DatePickerProps
22
+
23
+ Extends: `Omit<ComponentPropsWithRef<"input">, "type">`
24
+
25
+ | Member | Type | Required | Description |
26
+ | --- | --- | --- | --- |
27
+ | `invalid` | `boolean` | no | |
@@ -0,0 +1,42 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # description-list
3
+
4
+ - Import: `@gunkin/uiify/components/description-list`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `dl + dt + dd`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/description-list.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [description-list](../../../skills/uiify/references/elements/description-list.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `DescriptionDetails`, `DescriptionList`, `DescriptionTerm`
16
+ - Types: `DescriptionDetailsOwnProps`, `DescriptionDetailsProps`, `DescriptionListOwnProps`, `DescriptionListProps`, `DescriptionTermOwnProps`, `DescriptionTermProps`
17
+
18
+ ## Props and shapes
19
+
20
+ ### DescriptionListOwnProps
21
+
22
+ | Member | Type | Required | Description |
23
+ | --- | --- | --- | --- |
24
+ | `children` | `ReactNode` | no | |
25
+
26
+ ### DescriptionTermOwnProps
27
+
28
+ | Member | Type | Required | Description |
29
+ | --- | --- | --- | --- |
30
+ | `children` | `ReactNode` | no | |
31
+
32
+ ### DescriptionDetailsOwnProps
33
+
34
+ | Member | Type | Required | Description |
35
+ | --- | --- | --- | --- |
36
+ | `children` | `ReactNode` | no | |
37
+
38
+ ## Other types
39
+
40
+ - `DescriptionListProps<TAs>`: `RenderableProps<TAs, DescriptionListOwnProps, Record<string, never>, HTMLElement>`
41
+ - `DescriptionTermProps<TAs>`: `RenderableProps<TAs, DescriptionTermOwnProps, Record<string, never>, HTMLElement>`
42
+ - `DescriptionDetailsProps<TAs>`: `RenderableProps<TAs, DescriptionDetailsOwnProps, Record<string, never>, HTMLElement>`
@@ -5,8 +5,13 @@
5
5
  - Tier 0 (RSC — zero client JavaScript); state source S1; native element `dialog + command=show-modal`
6
6
  - Without JavaScript: full
7
7
  - Types file: `dist/components/drawer.d.ts`
8
+ - Related native Element (manifest): [dialog](../elements/dialog.md)
8
9
  - Note: DrawerPanel native shell + compound Drawer.* client API; snap-point drag on client entry.
9
10
 
11
+ ## Related knowledge
12
+
13
+ - Recipe: [drawer](../../../skills/uiify/references/elements/drawer.md)
14
+
10
15
  ## Exports
11
16
 
12
17
  - Runtime: `Drawer`, `DrawerClose`, `DrawerContent`, `DrawerDescription`, `DrawerHandle`, `DrawerRoot`, `DrawerTitle`, `DrawerTrigger`, `DrawerPanel`, `DrawerNativeTrigger`, `DrawerNativeClose`, `DrawerNativeContent`
@@ -6,6 +6,10 @@
6
6
  - Without JavaScript: pre-hydration-only
7
7
  - Types file: `dist/components/dropdown-menu.d.ts`
8
8
 
9
+ ## Related knowledge
10
+
11
+ - Recipe: [dropdown-menu](../../../skills/uiify/references/elements/dropdown-menu.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - Runtime: `DropdownMenu`, `DropdownMenuCheckboxItem`, `DropdownMenuContent`, `DropdownMenuGroup`, `DropdownMenuItem`, `DropdownMenuItemDescription`, `DropdownMenuItemIcon`, `DropdownMenuItemIndicator`, `DropdownMenuItemText`, `DropdownMenuLabel`, `DropdownMenuRadioGroup`, `DropdownMenuRadioItem`, `DropdownMenuRoot`, `DropdownMenuSeparator`, `DropdownMenuShortcut`, `DropdownMenuSub`, `DropdownMenuSubContent`, `DropdownMenuSubTrigger`, `DropdownMenuTrigger`, `DropdownMenuBar`
@@ -0,0 +1,49 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # empty
3
+
4
+ - Import: `@gunkin/uiify/components/empty`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `section`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/empty.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [empty-state](../../../skills/uiify/references/elements/empty-state.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `Empty`, `EmptyContent`, `EmptyDescription`, `EmptyTitle`
16
+ - Types: `EmptyContentOwnProps`, `EmptyContentProps`, `EmptyDescriptionOwnProps`, `EmptyDescriptionProps`, `EmptyOwnProps`, `EmptyProps`, `EmptyTitleOwnProps`, `EmptyTitleProps`
17
+
18
+ ## Props and shapes
19
+
20
+ ### EmptyOwnProps
21
+
22
+ | Member | Type | Required | Description |
23
+ | --- | --- | --- | --- |
24
+ | `children` | `ReactNode` | no | |
25
+
26
+ ### EmptyTitleOwnProps
27
+
28
+ | Member | Type | Required | Description |
29
+ | --- | --- | --- | --- |
30
+ | `children` | `ReactNode` | no | |
31
+
32
+ ### EmptyDescriptionOwnProps
33
+
34
+ | Member | Type | Required | Description |
35
+ | --- | --- | --- | --- |
36
+ | `children` | `ReactNode` | no | |
37
+
38
+ ### EmptyContentOwnProps
39
+
40
+ | Member | Type | Required | Description |
41
+ | --- | --- | --- | --- |
42
+ | `children` | `ReactNode` | no | |
43
+
44
+ ## Other types
45
+
46
+ - `EmptyProps<TAs>`: `RenderableProps<TAs, EmptyOwnProps, Record<string, never>, HTMLElement>`
47
+ - `EmptyTitleProps<TAs>`: `RenderableProps<TAs, EmptyTitleOwnProps, Record<string, never>, HTMLElement>`
48
+ - `EmptyDescriptionProps<TAs>`: `RenderableProps<TAs, EmptyDescriptionOwnProps, Record<string, never>, HTMLElement>`
49
+ - `EmptyContentProps<TAs>`: `RenderableProps<TAs, EmptyContentOwnProps, Record<string, never>, HTMLElement>`
@@ -7,6 +7,11 @@
7
7
  - Types file: `dist/components/field.d.ts`
8
8
  - Note: :user-invalid + :has() reveals the error message
9
9
 
10
+ ## Related knowledge
11
+
12
+ - Recipe: [field](../../../skills/uiify/references/elements/field.md)
13
+ - Example: [field-validation](../../../skills/uiify/references/examples/field-validation.md)
14
+
10
15
  ## Exports
11
16
 
12
17
  - Runtime: `Field`, `FieldControl`, `FieldDescription`, `FieldError`, `FieldLabel`, `FieldRoot`
@@ -0,0 +1,35 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # fieldset
3
+
4
+ - Import: `@gunkin/uiify/components/fieldset`
5
+ - Tier 0 (RSC — zero client JavaScript); state source native; native element `fieldset + legend`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/fieldset.d.ts`
8
+
9
+ ## Related knowledge
10
+
11
+ - Recipe: [fieldset](../../../skills/uiify/references/elements/fieldset.md)
12
+
13
+ ## Exports
14
+
15
+ - Runtime: `Fieldset`, `FieldsetLegend`
16
+ - Types: `FieldsetLegendProps`, `FieldsetRootProps`
17
+
18
+ ## Props and shapes
19
+
20
+ ### FieldsetRootOwnProps
21
+
22
+ | Member | Type | Required | Description |
23
+ | --- | --- | --- | --- |
24
+ | `children` | `ReactNode` | no | |
25
+
26
+ ### FieldsetLegendOwnProps
27
+
28
+ | Member | Type | Required | Description |
29
+ | --- | --- | --- | --- |
30
+ | `children` | `ReactNode` | no | |
31
+
32
+ ## Other types
33
+
34
+ - `FieldsetRootProps<TAs>`: `RenderableProps<TAs, FieldsetRootOwnProps, Record<string, never>, HTMLFieldSetElement>`
35
+ - `FieldsetLegendProps<TAs>`: `RenderableProps<TAs, FieldsetLegendOwnProps, Record<string, never>, HTMLLegendElement>`
@@ -6,6 +6,10 @@
6
6
  - Without JavaScript: degraded-documented
7
7
  - Types file: `dist/components/file-upload.d.ts`
8
8
 
9
+ ## Related knowledge
10
+
11
+ - Recipe: [file-upload](../../../skills/uiify/references/elements/file-upload.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - Runtime: `FileUpload`, `FileUploadDropzone`, `FileUploadHiddenInput`, `FileUploadItem`, `FileUploadItemRemove`, `FileUploadList`, `FileUploadRoot`, `FileUploadTrigger`, `validateFiles`
@@ -0,0 +1,37 @@
1
+ <!-- Generated from the package source. Do not edit by hand. -->
2
+ # form-error-summary
3
+
4
+ - Import: `@gunkin/uiify/components/form-error-summary`
5
+ - Tier 0 (RSC — zero client JavaScript); state source none; native element `section + heading + ul + links`
6
+ - Without JavaScript: full
7
+ - Types file: `dist/components/form-error-summary.d.ts`
8
+ - Note: Static server-rendered error links; no alert or focus script.
9
+
10
+ ## Related knowledge
11
+
12
+ - Recipe: [form-error-summary](../../../skills/uiify/references/elements/form-error-summary.md)
13
+
14
+ ## Exports
15
+
16
+ - Runtime: `FormErrorSummary`
17
+ - Types: `FormErrorSummaryError`, `FormErrorSummaryOwnProps`, `FormErrorSummaryProps`
18
+
19
+ ## Props and shapes
20
+
21
+ ### FormErrorSummaryError
22
+
23
+ | Member | Type | Required | Description |
24
+ | --- | --- | --- | --- |
25
+ | `href` | `string` | yes | |
26
+ | `message` | `ReactNode` | yes | |
27
+
28
+ ### FormErrorSummaryOwnProps
29
+
30
+ | Member | Type | Required | Description |
31
+ | --- | --- | --- | --- |
32
+ | `title` | `ReactNode` | yes | |
33
+ | `errors` | `readonly FormErrorSummaryError[]` | yes | |
34
+
35
+ ## Other types
36
+
37
+ - `FormErrorSummaryProps<TAs>`: `RenderableProps<TAs, FormErrorSummaryOwnProps, Record<string, never>, HTMLElement>`