@flood-md/agent 0.2.9 → 0.2.10

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 (374) hide show
  1. package/DESIGN.md +26 -4
  2. package/README.md +35 -4
  3. package/SKILL.md +31 -0
  4. package/dist/catalog.json +7136 -0
  5. package/dist/materials/component-accordion.md +42 -0
  6. package/dist/materials/component-alert-dialog.md +46 -0
  7. package/dist/materials/component-alert.md +41 -0
  8. package/dist/materials/component-aspect-ratio.md +36 -0
  9. package/dist/materials/component-avatar-group.md +39 -0
  10. package/dist/materials/component-avatar.md +40 -0
  11. package/dist/materials/component-badge.md +37 -0
  12. package/dist/materials/component-blockquote.md +35 -0
  13. package/dist/materials/component-breadcrumb.md +36 -0
  14. package/dist/materials/component-button-group.md +39 -0
  15. package/dist/materials/component-button.md +43 -0
  16. package/dist/materials/component-calendar.md +59 -0
  17. package/dist/materials/component-card.md +46 -0
  18. package/dist/materials/component-center.md +39 -0
  19. package/dist/materials/component-character-count.md +42 -0
  20. package/dist/materials/component-check-card.md +39 -0
  21. package/dist/materials/component-checkbox-group.md +48 -0
  22. package/dist/materials/component-checkbox.md +37 -0
  23. package/dist/materials/component-code-snippet.md +37 -0
  24. package/dist/materials/component-collapsible.md +40 -0
  25. package/dist/materials/component-color-picker.md +49 -0
  26. package/dist/materials/component-color-swatch.md +35 -0
  27. package/dist/materials/component-combobox.md +50 -0
  28. package/dist/materials/component-command-list.md +48 -0
  29. package/dist/materials/component-container.md +36 -0
  30. package/dist/materials/component-context-menu.md +43 -0
  31. package/dist/materials/component-copy-button.md +42 -0
  32. package/dist/materials/component-data-list-item.md +40 -0
  33. package/dist/materials/component-data-list.md +38 -0
  34. package/dist/materials/component-data-table.md +58 -0
  35. package/dist/materials/component-date-field.md +57 -0
  36. package/dist/materials/component-date-picker.md +66 -0
  37. package/dist/materials/component-date-range-field.md +62 -0
  38. package/dist/materials/component-date-range-picker.md +72 -0
  39. package/dist/materials/component-date-time-picker.md +60 -0
  40. package/dist/materials/component-date-time-range-picker.md +66 -0
  41. package/dist/materials/component-description-list.md +42 -0
  42. package/dist/materials/component-dialog.md +45 -0
  43. package/dist/materials/component-divider.md +37 -0
  44. package/dist/materials/component-drawer.md +50 -0
  45. package/dist/materials/component-dropzone.md +45 -0
  46. package/dist/materials/component-editable.md +57 -0
  47. package/dist/materials/component-empty-state.md +41 -0
  48. package/dist/materials/component-error-summary.md +40 -0
  49. package/dist/materials/component-field.md +46 -0
  50. package/dist/materials/component-fieldset.md +46 -0
  51. package/dist/materials/component-figure.md +36 -0
  52. package/dist/materials/component-file-input.md +45 -0
  53. package/dist/materials/component-file-item.md +48 -0
  54. package/dist/materials/component-file-list.md +39 -0
  55. package/dist/materials/component-file-meta.md +36 -0
  56. package/dist/materials/component-flood-root.md +33 -0
  57. package/dist/materials/component-grid.md +38 -0
  58. package/dist/materials/component-heading.md +38 -0
  59. package/dist/materials/component-hover-card.md +48 -0
  60. package/dist/materials/component-icon-button.md +41 -0
  61. package/dist/materials/component-icon-slot.md +37 -0
  62. package/dist/materials/component-image-preview.md +50 -0
  63. package/dist/materials/component-image.md +37 -0
  64. package/dist/materials/component-inline-code.md +36 -0
  65. package/dist/materials/component-inline.md +39 -0
  66. package/dist/materials/component-input-group.md +43 -0
  67. package/dist/materials/component-input.md +39 -0
  68. package/dist/materials/component-kbd.md +34 -0
  69. package/dist/materials/component-label.md +37 -0
  70. package/dist/materials/component-link.md +35 -0
  71. package/dist/materials/component-list-box.md +57 -0
  72. package/dist/materials/component-list.md +40 -0
  73. package/dist/materials/component-menu.md +54 -0
  74. package/dist/materials/component-meter.md +43 -0
  75. package/dist/materials/component-metric.md +39 -0
  76. package/dist/materials/component-multi-select.md +52 -0
  77. package/dist/materials/component-navigation-list.md +38 -0
  78. package/dist/materials/component-navigation-tree.md +43 -0
  79. package/dist/materials/component-number-input.md +47 -0
  80. package/dist/materials/component-pagination.md +44 -0
  81. package/dist/materials/component-password-input.md +43 -0
  82. package/dist/materials/component-pin-input.md +45 -0
  83. package/dist/materials/component-popover.md +47 -0
  84. package/dist/materials/component-progress.md +42 -0
  85. package/dist/materials/component-radio-card.md +43 -0
  86. package/dist/materials/component-radio-group.md +49 -0
  87. package/dist/materials/component-radio.md +39 -0
  88. package/dist/materials/component-range-calendar.md +58 -0
  89. package/dist/materials/component-rating.md +46 -0
  90. package/dist/materials/component-resizable-panels.md +48 -0
  91. package/dist/materials/component-scroll-area.md +42 -0
  92. package/dist/materials/component-search-input.md +40 -0
  93. package/dist/materials/component-section.md +42 -0
  94. package/dist/materials/component-segmented-control.md +51 -0
  95. package/dist/materials/component-select.md +45 -0
  96. package/dist/materials/component-skeleton.md +42 -0
  97. package/dist/materials/component-skip-link.md +37 -0
  98. package/dist/materials/component-slider.md +51 -0
  99. package/dist/materials/component-spinner.md +37 -0
  100. package/dist/materials/component-split.md +40 -0
  101. package/dist/materials/component-stack.md +37 -0
  102. package/dist/materials/component-status-indicator.md +38 -0
  103. package/dist/materials/component-steps.md +40 -0
  104. package/dist/materials/component-surface.md +37 -0
  105. package/dist/materials/component-switch.md +35 -0
  106. package/dist/materials/component-table.md +46 -0
  107. package/dist/materials/component-tabs.md +43 -0
  108. package/dist/materials/component-tag-input.md +46 -0
  109. package/dist/materials/component-tag.md +40 -0
  110. package/dist/materials/component-text.md +39 -0
  111. package/dist/materials/component-textarea.md +38 -0
  112. package/dist/materials/component-time-field.md +56 -0
  113. package/dist/materials/component-time-picker.md +60 -0
  114. package/dist/materials/component-timeline.md +38 -0
  115. package/dist/materials/component-toast-region.md +42 -0
  116. package/dist/materials/component-toggle-group.md +44 -0
  117. package/dist/materials/component-toggle.md +39 -0
  118. package/dist/materials/component-toolbar.md +42 -0
  119. package/dist/materials/component-tooltip.md +40 -0
  120. package/dist/materials/component-tree-select.md +56 -0
  121. package/dist/materials/component-tree.md +52 -0
  122. package/dist/materials/component-upload-item.md +52 -0
  123. package/dist/materials/component-upload-list.md +40 -0
  124. package/dist/materials/component-visually-hidden.md +37 -0
  125. package/dist/materials/guide-agent-knowledge.md +88 -0
  126. package/dist/materials/guide-agents.md +96 -0
  127. package/dist/materials/guide-faq.md +84 -0
  128. package/dist/materials/guide-foundations.md +232 -0
  129. package/dist/materials/guide-installation.md +79 -0
  130. package/dist/materials/guide-interface-content.md +76 -0
  131. package/dist/materials/guide-introduction.md +40 -0
  132. package/dist/materials/guide-layout.md +193 -0
  133. package/dist/materials/guide-privacy.md +23 -0
  134. package/dist/materials/guide-project-ui.md +127 -0
  135. package/dist/materials/guide-skills.md +108 -0
  136. package/dist/materials/guide-theming.md +73 -0
  137. package/dist/materials/recipe-command-palette.md +66 -0
  138. package/dist/materials/recipe-filter-bar.md +59 -0
  139. package/dist/materials/recipe-form-submission.md +39 -0
  140. package/dist/materials/recipe-grouped-form.md +66 -0
  141. package/dist/materials/recipe-select-all.md +31 -0
  142. package/dist/materials/recipe-split-button.md +26 -0
  143. package/dist/materials/recipe-table-bulk-actions.md +88 -0
  144. package/dist/materials/recipe-workspace-review.md +134 -0
  145. package/dist/materials/token-sys.color.accent.content.json +41 -0
  146. package/dist/materials/token-sys.color.action.danger.content.json +42 -0
  147. package/dist/materials/token-sys.color.action.ghost.content.json +41 -0
  148. package/dist/materials/token-sys.color.action.ghost.disabled-content.json +41 -0
  149. package/dist/materials/token-sys.color.action.ghost.disabled.json +41 -0
  150. package/dist/materials/token-sys.color.action.ghost.hover.json +41 -0
  151. package/dist/materials/token-sys.color.action.ghost.pressed.json +41 -0
  152. package/dist/materials/token-sys.color.action.ghost.rest.json +41 -0
  153. package/dist/materials/token-sys.color.action.on-surface.content.json +39 -0
  154. package/dist/materials/token-sys.color.action.on-surface.disabled-content.json +39 -0
  155. package/dist/materials/token-sys.color.action.on-surface.disabled.json +39 -0
  156. package/dist/materials/token-sys.color.action.on-surface.hover.json +39 -0
  157. package/dist/materials/token-sys.color.action.on-surface.pressed.json +39 -0
  158. package/dist/materials/token-sys.color.action.on-surface.rest.json +39 -0
  159. package/dist/materials/token-sys.color.action.primary.content.json +39 -0
  160. package/dist/materials/token-sys.color.action.primary.disabled-content.json +39 -0
  161. package/dist/materials/token-sys.color.action.primary.disabled.json +39 -0
  162. package/dist/materials/token-sys.color.action.primary.hover.json +39 -0
  163. package/dist/materials/token-sys.color.action.primary.pressed.json +39 -0
  164. package/dist/materials/token-sys.color.action.primary.rest.json +39 -0
  165. package/dist/materials/token-sys.color.action.subtle.content.json +39 -0
  166. package/dist/materials/token-sys.color.action.subtle.disabled-content.json +39 -0
  167. package/dist/materials/token-sys.color.action.subtle.disabled.json +39 -0
  168. package/dist/materials/token-sys.color.action.subtle.hover.json +39 -0
  169. package/dist/materials/token-sys.color.action.subtle.pressed.json +39 -0
  170. package/dist/materials/token-sys.color.action.subtle.rest.json +39 -0
  171. package/dist/materials/token-sys.color.border.decorative.json +42 -0
  172. package/dist/materials/token-sys.color.border.default.json +39 -0
  173. package/dist/materials/token-sys.color.border.floating.json +39 -0
  174. package/dist/materials/token-sys.color.border.strong.json +39 -0
  175. package/dist/materials/token-sys.color.content.default.json +41 -0
  176. package/dist/materials/token-sys.color.content.helper.json +39 -0
  177. package/dist/materials/token-sys.color.content.subtle.json +43 -0
  178. package/dist/materials/token-sys.color.divider.decorative.json +41 -0
  179. package/dist/materials/token-sys.color.feedback.error.json +39 -0
  180. package/dist/materials/token-sys.color.feedback.info.json +39 -0
  181. package/dist/materials/token-sys.color.feedback.success.json +39 -0
  182. package/dist/materials/token-sys.color.feedback.warning.json +39 -0
  183. package/dist/materials/token-sys.color.field.background.json +39 -0
  184. package/dist/materials/token-sys.color.field.border.json +39 -0
  185. package/dist/materials/token-sys.color.field.boundary.json +39 -0
  186. package/dist/materials/token-sys.color.field.content.json +39 -0
  187. package/dist/materials/token-sys.color.field.disabled-content.json +39 -0
  188. package/dist/materials/token-sys.color.field.disabled.json +39 -0
  189. package/dist/materials/token-sys.color.field.placeholder.json +39 -0
  190. package/dist/materials/token-sys.color.focus.ring.json +39 -0
  191. package/dist/materials/token-sys.color.indicator.accent.json +39 -0
  192. package/dist/materials/token-sys.color.indicator.fill.json +39 -0
  193. package/dist/materials/token-sys.color.indicator.track.json +39 -0
  194. package/dist/materials/token-sys.color.loading.placeholder.json +42 -0
  195. package/dist/materials/token-sys.color.scrollbar.thumb-hover.json +39 -0
  196. package/dist/materials/token-sys.color.scrollbar.thumb.json +39 -0
  197. package/dist/materials/token-sys.color.selection.background.json +39 -0
  198. package/dist/materials/token-sys.color.selection.content.json +39 -0
  199. package/dist/materials/token-sys.color.selection.floating.json +39 -0
  200. package/dist/materials/token-sys.color.shadow.floating.json +39 -0
  201. package/dist/materials/token-sys.color.surface.canvas.json +39 -0
  202. package/dist/materials/token-sys.color.surface.default.json +39 -0
  203. package/dist/materials/token-sys.color.surface.floating-translucent.json +39 -0
  204. package/dist/materials/token-sys.color.surface.floating.json +39 -0
  205. package/dist/materials/token-sys.color.surface.overlay.json +39 -0
  206. package/dist/materials/token-sys.color.surface.raised.json +39 -0
  207. package/dist/materials/token-sys.control.2xl.gap.json +34 -0
  208. package/dist/materials/token-sys.control.2xl.height.json +34 -0
  209. package/dist/materials/token-sys.control.2xl.icon-size.json +34 -0
  210. package/dist/materials/token-sys.control.2xl.line-height.json +31 -0
  211. package/dist/materials/token-sys.control.2xl.padding-inline.json +34 -0
  212. package/dist/materials/token-sys.control.2xl.text-size.json +34 -0
  213. package/dist/materials/token-sys.control.2xs.gap.json +34 -0
  214. package/dist/materials/token-sys.control.2xs.height.json +34 -0
  215. package/dist/materials/token-sys.control.2xs.icon-size.json +34 -0
  216. package/dist/materials/token-sys.control.2xs.line-height.json +31 -0
  217. package/dist/materials/token-sys.control.2xs.padding-inline.json +34 -0
  218. package/dist/materials/token-sys.control.2xs.text-size.json +34 -0
  219. package/dist/materials/token-sys.control.lg.gap.json +34 -0
  220. package/dist/materials/token-sys.control.lg.height.json +34 -0
  221. package/dist/materials/token-sys.control.lg.icon-size.json +34 -0
  222. package/dist/materials/token-sys.control.lg.line-height.json +31 -0
  223. package/dist/materials/token-sys.control.lg.padding-inline.json +34 -0
  224. package/dist/materials/token-sys.control.lg.text-size.json +34 -0
  225. package/dist/materials/token-sys.control.md.gap.json +34 -0
  226. package/dist/materials/token-sys.control.md.height.json +34 -0
  227. package/dist/materials/token-sys.control.md.icon-size.json +34 -0
  228. package/dist/materials/token-sys.control.md.line-height.json +31 -0
  229. package/dist/materials/token-sys.control.md.padding-inline.json +34 -0
  230. package/dist/materials/token-sys.control.md.text-size.json +34 -0
  231. package/dist/materials/token-sys.control.sm.gap.json +34 -0
  232. package/dist/materials/token-sys.control.sm.height.json +34 -0
  233. package/dist/materials/token-sys.control.sm.icon-size.json +34 -0
  234. package/dist/materials/token-sys.control.sm.line-height.json +31 -0
  235. package/dist/materials/token-sys.control.sm.padding-inline.json +34 -0
  236. package/dist/materials/token-sys.control.sm.text-size.json +34 -0
  237. package/dist/materials/token-sys.control.xl.gap.json +34 -0
  238. package/dist/materials/token-sys.control.xl.height.json +34 -0
  239. package/dist/materials/token-sys.control.xl.icon-size.json +34 -0
  240. package/dist/materials/token-sys.control.xl.line-height.json +31 -0
  241. package/dist/materials/token-sys.control.xl.padding-inline.json +34 -0
  242. package/dist/materials/token-sys.control.xl.text-size.json +34 -0
  243. package/dist/materials/token-sys.control.xs.gap.json +34 -0
  244. package/dist/materials/token-sys.control.xs.height.json +34 -0
  245. package/dist/materials/token-sys.control.xs.icon-size.json +34 -0
  246. package/dist/materials/token-sys.control.xs.line-height.json +31 -0
  247. package/dist/materials/token-sys.control.xs.padding-inline.json +34 -0
  248. package/dist/materials/token-sys.control.xs.text-size.json +34 -0
  249. package/dist/materials/token-sys.effect.floating.blur.json +34 -0
  250. package/dist/materials/token-sys.effect.floating.saturation.json +31 -0
  251. package/dist/materials/token-sys.effect.floating.shadow-blur.json +34 -0
  252. package/dist/materials/token-sys.effect.floating.shadow-offset.json +34 -0
  253. package/dist/materials/token-sys.focus.offset.json +34 -0
  254. package/dist/materials/token-sys.focus.width.json +34 -0
  255. package/dist/materials/token-sys.font.mono.json +36 -0
  256. package/dist/materials/token-sys.font.sans.json +35 -0
  257. package/dist/materials/token-sys.layer.base.json +31 -0
  258. package/dist/materials/token-sys.layer.modal.json +31 -0
  259. package/dist/materials/token-sys.layer.popover.json +31 -0
  260. package/dist/materials/token-sys.layer.sticky.json +31 -0
  261. package/dist/materials/token-sys.layer.toast.json +31 -0
  262. package/dist/materials/token-sys.motion.duration-fast.json +34 -0
  263. package/dist/materials/token-sys.motion.duration-normal.json +34 -0
  264. package/dist/materials/token-sys.motion.duration-reduced.json +34 -0
  265. package/dist/materials/token-sys.motion.easing.json +36 -0
  266. package/dist/materials/token-sys.radius.action.json +34 -0
  267. package/dist/materials/token-sys.radius.block.json +34 -0
  268. package/dist/materials/token-sys.radius.field.json +34 -0
  269. package/dist/materials/token-sys.radius.indicator.json +34 -0
  270. package/dist/materials/token-sys.radius.surface.json +34 -0
  271. package/dist/materials/token-sys.scrollbar.inset.json +34 -0
  272. package/dist/materials/token-sys.scrollbar.min-thumb.json +34 -0
  273. package/dist/materials/token-sys.scrollbar.size.json +34 -0
  274. package/dist/materials/token-sys.size.choice.json +34 -0
  275. package/dist/materials/token-sys.size.container.lg.json +37 -0
  276. package/dist/materials/token-sys.size.container.md.json +37 -0
  277. package/dist/materials/token-sys.size.container.sm.json +37 -0
  278. package/dist/materials/token-sys.size.grid.min-item.json +37 -0
  279. package/dist/materials/token-sys.size.indicator.lg.json +34 -0
  280. package/dist/materials/token-sys.size.indicator.md.json +34 -0
  281. package/dist/materials/token-sys.size.indicator.sm.json +34 -0
  282. package/dist/materials/token-sys.size.keycap.lg.json +34 -0
  283. package/dist/materials/token-sys.size.keycap.md.json +34 -0
  284. package/dist/materials/token-sys.size.keycap.sm.json +34 -0
  285. package/dist/materials/token-sys.size.switch-height.json +34 -0
  286. package/dist/materials/token-sys.size.switch-thumb.json +34 -0
  287. package/dist/materials/token-sys.size.switch-width.json +34 -0
  288. package/dist/materials/token-sys.size.touch.json +34 -0
  289. package/dist/materials/token-sys.space.0.json +34 -0
  290. package/dist/materials/token-sys.space.1.json +34 -0
  291. package/dist/materials/token-sys.space.12.json +34 -0
  292. package/dist/materials/token-sys.space.2.json +34 -0
  293. package/dist/materials/token-sys.space.3.json +34 -0
  294. package/dist/materials/token-sys.space.4.json +34 -0
  295. package/dist/materials/token-sys.space.6.json +34 -0
  296. package/dist/materials/token-sys.space.8.json +34 -0
  297. package/dist/materials/token-sys.stroke.width.json +34 -0
  298. package/dist/materials/token-sys.type.body.line-height.json +31 -0
  299. package/dist/materials/token-sys.type.body.size.json +34 -0
  300. package/dist/materials/token-sys.type.body.tracking.json +34 -0
  301. package/dist/materials/token-sys.type.body.weight.json +31 -0
  302. package/dist/materials/token-sys.type.compact.line-height.json +31 -0
  303. package/dist/materials/token-sys.type.compact.size.json +34 -0
  304. package/dist/materials/token-sys.type.compact.tracking.json +34 -0
  305. package/dist/materials/token-sys.type.compact.weight.json +31 -0
  306. package/dist/materials/token-sys.type.control.line-height.json +31 -0
  307. package/dist/materials/token-sys.type.control.size.json +34 -0
  308. package/dist/materials/token-sys.type.control.tracking.json +34 -0
  309. package/dist/materials/token-sys.type.control.weight.json +31 -0
  310. package/dist/materials/token-sys.type.dialog-title.line-height.json +33 -0
  311. package/dist/materials/token-sys.type.dialog-title.size.json +36 -0
  312. package/dist/materials/token-sys.type.dialog-title.tracking.json +36 -0
  313. package/dist/materials/token-sys.type.dialog-title.weight.json +33 -0
  314. package/dist/materials/token-sys.type.display.line-height.json +31 -0
  315. package/dist/materials/token-sys.type.display.size.json +34 -0
  316. package/dist/materials/token-sys.type.display.tracking.json +34 -0
  317. package/dist/materials/token-sys.type.display.weight.json +31 -0
  318. package/dist/materials/token-sys.type.field-label.line-height.json +33 -0
  319. package/dist/materials/token-sys.type.field-label.size.json +36 -0
  320. package/dist/materials/token-sys.type.field-label.tracking.json +36 -0
  321. package/dist/materials/token-sys.type.field-label.weight.json +33 -0
  322. package/dist/materials/token-sys.type.group-title.line-height.json +33 -0
  323. package/dist/materials/token-sys.type.group-title.size.json +36 -0
  324. package/dist/materials/token-sys.type.group-title.tracking.json +36 -0
  325. package/dist/materials/token-sys.type.group-title.weight.json +33 -0
  326. package/dist/materials/token-sys.type.helper.line-height.json +31 -0
  327. package/dist/materials/token-sys.type.helper.size.json +34 -0
  328. package/dist/materials/token-sys.type.helper.tracking.json +34 -0
  329. package/dist/materials/token-sys.type.helper.weight.json +31 -0
  330. package/dist/materials/token-sys.type.label.line-height.json +31 -0
  331. package/dist/materials/token-sys.type.label.size.json +34 -0
  332. package/dist/materials/token-sys.type.label.tracking.json +34 -0
  333. package/dist/materials/token-sys.type.label.weight.json +31 -0
  334. package/dist/materials/token-sys.type.large.line-height.json +31 -0
  335. package/dist/materials/token-sys.type.large.size.json +34 -0
  336. package/dist/materials/token-sys.type.large.tracking.json +34 -0
  337. package/dist/materials/token-sys.type.large.weight.json +31 -0
  338. package/dist/materials/token-sys.type.lead.line-height.json +31 -0
  339. package/dist/materials/token-sys.type.lead.size.json +34 -0
  340. package/dist/materials/token-sys.type.lead.tracking.json +34 -0
  341. package/dist/materials/token-sys.type.lead.weight.json +31 -0
  342. package/dist/materials/token-sys.type.page.line-height.json +31 -0
  343. package/dist/materials/token-sys.type.page.size.json +34 -0
  344. package/dist/materials/token-sys.type.page.tracking.json +34 -0
  345. package/dist/materials/token-sys.type.page.weight.json +31 -0
  346. package/dist/materials/token-sys.type.section.line-height.json +31 -0
  347. package/dist/materials/token-sys.type.section.size.json +34 -0
  348. package/dist/materials/token-sys.type.section.tracking.json +34 -0
  349. package/dist/materials/token-sys.type.section.weight.json +31 -0
  350. package/knowledge.json +409 -0
  351. package/lib/index.d.ts +33 -0
  352. package/lib/index.mjs +144 -0
  353. package/lib/inspect.d.ts +12 -0
  354. package/lib/inspect.mjs +187 -0
  355. package/manifest.json +41 -1
  356. package/package.json +7 -1
  357. package/references/flood-composition/SKILL.md +30 -0
  358. package/references/flood-data-display/SKILL.md +32 -0
  359. package/references/flood-feedback/SKILL.md +24 -3
  360. package/references/flood-forms/SKILL.md +51 -2
  361. package/references/flood-foundations/SKILL.md +7 -0
  362. package/references/flood-hierarchy/SKILL.md +87 -0
  363. package/references/flood-interface-content/SKILL.md +142 -0
  364. package/references/flood-overlays/SKILL.md +7 -0
  365. package/references/flood-records/SKILL.md +108 -0
  366. package/references/flood-spacing/SKILL.md +16 -0
  367. package/references/flood-verification/SKILL.md +52 -0
  368. package/references/interface-content-examples.md +47 -0
  369. package/references/knowledge.md +49 -0
  370. package/references/record-decisions.md +25 -0
  371. package/references/rendered-review.md +97 -0
  372. package/references/routing.md +1 -0
  373. package/rules.json +152 -2
  374. package/workflows.json +146 -10
@@ -0,0 +1,42 @@
1
+ # Section
2
+
3
+ A named document section with a compact heading, supporting description and optional actions.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Section, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Section title="Project settings" description="Manage details your team shares." headingLevel={2}>
19
+ <Text as="p">Section content.</Text>
20
+ </Section>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - Section renders a native section and heading. A generated heading ID labels the region; explicit id creates a deterministic heading ID. headingLevel follows the host document hierarchy.
29
+ - The title and description share a close text column; actions align separately and wrap when necessary. It adds no surface or border. Compose Surface or another container inside when content needs its own background.
30
+ - Original compatible addition in the unpublished 0.2.5 source candidate.
31
+ - headingLevel chooses h2–h6 for the document outline; it does not set the visual scale. headingSize independently selects the existing Heading typography role (section by default).
32
+
33
+ ## API reference
34
+
35
+ | Prop | Values | Default |
36
+ | --- | --- | --- |
37
+ | `title` | `string` | `Required` |
38
+ | `description` | `ReactNode` | `—` |
39
+ | `actions` | `ReactNode` | `—` |
40
+ | `headingLevel` | `2 \| 3 \| 4 \| 5 \| 6` | `2` |
41
+ | `headingSize` | `"display" \| "large" \| "page" \| "section"` | `"section"` |
42
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "title">` | `Forwarded` |
@@ -0,0 +1,51 @@
1
+ # SegmentedControl
2
+
3
+ A compact single-value choice with native radio semantics and a shared inset surface.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, SegmentedControl } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <SegmentedControl label="Time range" name="period" defaultValue="day" options={[{value: "day", label: "Day"}, {value: "week", label: "Week"}, {value: "month", label: "Month"}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Uses original RadioGroup behavior and native inputs.
27
+ - Arrow keys move focus and select; Home/End select endpoints, skipping disabled segments. Selecting the current value does not clear it.
28
+ - Native name/form/required, reset and controlled values are preserved. Use actual tabs for tab panels, ToggleGroup for optional pressed actions.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `legendSize · 0.2.10` | `"label" \| "section"` | `—` |
35
+ | `hideLabel · 0.2.3` | `boolean` | `—` |
36
+ | `hint` | `ReactNode` | `—` |
37
+ | `error` | `ReactNode` | `—` |
38
+ | `message` | `ReactNode` | `—` |
39
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
40
+ | `name` | `string` | `Required` |
41
+ | `value` | `string` | `—` |
42
+ | `defaultValue` | `string` | `—` |
43
+ | `onValueChange` | `(value: string) => void` | `—` |
44
+ | `orientation` | `"vertical" \| "horizontal"` | `"horizontal"` |
45
+ | `required` | `boolean` | `—` |
46
+ | `label` | `string` | `Required` |
47
+ | `options` | `readonly ToggleOption[]` | `Required` |
48
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
49
+ | `iconOnly` | `boolean` | `false` |
50
+ | `fullWidth` | `boolean` | `false` |
51
+ | `Native HTML props` | `Omit<Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "children" \| "defaultValue" \| "role">, "legend" \| "options">` | `Forwarded` |
@@ -0,0 +1,45 @@
1
+ # Select
2
+
3
+ A Flood choice field with its own popup and native form integration.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Field, Select } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Field label="Visibility">
19
+ {(control) => (
20
+ <Select {...control} name="visibility" defaultValue="private">
21
+ <option value="private">Private</option>
22
+ <option value="team">Team</option>
23
+ </Select>
24
+ )}
25
+ </Field>
26
+ </FloodRoot>
27
+ );
28
+ }
29
+ ```
30
+
31
+ ## Design notes
32
+
33
+ - Single selection uses a Flood trigger and listbox, including the popup. Native options and optgroups supply the choices; disabled choices cannot be selected.
34
+ - Use arrows, Home/End and typing to navigate; Enter or Space confirms, Escape cancels. The popup scrolls active choices into view.
35
+ - Select fills its Field; constrain the form or field wrapper. Multiple and numeric size greater than one use a native inline listbox rather than a popup.
36
+ - A native form bridge preserves name, value/defaultValue, required, disabled, onChange and HTMLSelectElement ref. Inspect the matching guide for the visible focus contract.
37
+
38
+ ## API reference
39
+
40
+ | Prop | Values | Default |
41
+ | --- | --- | --- |
42
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
43
+ | `invalid` | `boolean` | `—` |
44
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
45
+ | `Native HTML props` | `SelectHTMLAttributes<HTMLSelectElement>` | `Forwarded` |
@@ -0,0 +1,42 @@
1
+ # Skeleton
2
+
3
+ A decorative placeholder that reserves space for loading content.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Stack, Skeleton } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Stack gap="2">
19
+ <Skeleton width="65%" />
20
+ <Skeleton />
21
+ <Skeleton width="80%" />
22
+ </Stack>
23
+ </FloodRoot>
24
+ );
25
+ }
26
+ ```
27
+
28
+ ## Design notes
29
+
30
+ - Always hidden from assistive technology. The host owns loading announcements and aria-busy on the relevant region.
31
+ - Width and height accept CSS dimensions; style overrides them. Match the final content geometry.
32
+ - Animation can be disabled; reduced motion and forced colors disable the pulse. Available in 0.2.4.
33
+
34
+ ## API reference
35
+
36
+ | Prop | Values | Default |
37
+ | --- | --- | --- |
38
+ | `shape` | `"text" \| "rounded" \| "circle"` | `"text"` |
39
+ | `width` | `CSSProperties["width"]` | `—` |
40
+ | `height` | `CSSProperties["height"]` | `—` |
41
+ | `animate` | `boolean` | `true` |
42
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLSpanElement>, "children" \| "role" \| "tabIndex" \| "aria-label" \| "aria-hidden">` | `Forwarded` |
@@ -0,0 +1,37 @@
1
+ # SkipLink
2
+
3
+ A native skip-navigation link revealed on focus and aimed at a page content target.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, SkipLink } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <SkipLink href="#main-content" />
19
+ <main id="main-content" tabIndex={-1}>Page content</main>
20
+ </FloodRoot>
21
+ );
22
+ }
23
+ ```
24
+
25
+ ## Design notes
26
+
27
+ - Place SkipLink early in DOM order and point href at a nonempty same-page fragment. The target should have tabIndex=-1 (or already be focusable). Native fragment navigation updates the URL; the component then focuses and reveals the target.
28
+ - It stays visually hidden until focused. The click handler respects prevented events, modifier navigation and new-window targets. Reduced motion uses immediate scrolling. It does not create a focus trap or change the target tabindex.
29
+ - Original compatible addition in the unpublished 0.2.5 source candidate.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `href` | `string` | `Required` |
36
+ | `children` | `Inherited native HTML prop` | `"Skip to content"` |
37
+ | `Native HTML props` | `Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href">` | `Forwarded` |
@@ -0,0 +1,51 @@
1
+ # Slider
2
+
3
+ One value or an ordered range with native keyboard controls on a shared rail.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Slider } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Slider label="Price range" name="price" defaultValue={[25, 75]} min={0} max={100} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - value/defaultValue contain one number or an ordered pair. onValueChange returns a new array. Values snap to min-based steps and thumbs cannot cross; Tab order stays stable. Supply thumbLabels to translate or explain each handle.
27
+ - Horizontal only. Direction follows the host, including RTL. Native range inputs retain keyboard behavior; pointer selection chooses the nearest handle. Names submit one or two entries; uncontrolled reset restores defaults.
28
+ - hideLabel preserves the accessible legend; showValue only controls the visible numeric readout. Read-only prevents edits while keeping focus. Use hint/message/error for meaning beyond color. Touch assistive technology needs device testing. Available in 0.2.5.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `legendSize · 0.2.10` | `"label" \| "section"` | `—` |
35
+ | `hideLabel · 0.2.3` | `boolean` | `—` |
36
+ | `hint` | `ReactNode` | `—` |
37
+ | `error` | `ReactNode` | `—` |
38
+ | `message` | `ReactNode` | `—` |
39
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
40
+ | `label` | `string` | `Required` |
41
+ | `value` | `readonly number[]` | `—` |
42
+ | `defaultValue` | `readonly number[]` | `[50]` |
43
+ | `onValueChange` | `(value: number[]) => void` | `—` |
44
+ | `min` | `number` | `0` |
45
+ | `max` | `number` | `100` |
46
+ | `step` | `number` | `1` |
47
+ | `thumbLabels` | `readonly string[]` | `—` |
48
+ | `showValue` | `boolean` | `true` |
49
+ | `readOnly` | `boolean` | `false` |
50
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
51
+ | `Native HTML props` | `Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "legend" \| "children" \| "defaultValue" \| "onChange">` | `Forwarded` |
@@ -0,0 +1,37 @@
1
+ # Spinner
2
+
3
+ A sized loading indicator with an optional accessible status label.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Spinner } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Spinner label="Loading workspace" />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Standalone indicators expose a status with a localizable label. Decorative indicators are hidden from assistive technology.
27
+ - Button loading uses this indicator decoratively and keeps the button name. Do not announce every spinner in a busy area.
28
+ - Use Progress when completion is measurable. Reduced motion stops rotation. Available in 0.2.4.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
35
+ | `label` | `string` | `"Loading"` |
36
+ | `decorative` | `boolean` | `false` |
37
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLSpanElement>, "children" \| "role" \| "aria-label" \| "aria-hidden">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # Split
2
+
3
+ A responsive main-and-supporting layout with logical pane placement and container-based collapse.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Split, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Split side="end" ratio="main" collapseAt="md" main={<Text as="p">Main content</Text>} aside={<Text as="p">Supporting content</Text>} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - main and aside are content slots in generic div panes; they do not introduce duplicate main landmarks. side places the supporting pane at logical start/end and preserves the same DOM reading order. ratio chooses equal panes or a 2:1 emphasis on main/aside.
27
+ - Container queries collapse at sm=30rem, md=48rem or lg=64rem; never retains two columns. gap uses the spacing scale. This is layout composition, with no resizing gesture, saved pane sizes or splitter keyboard model.
28
+ - Original compatible addition in the unpublished 0.2.5 source candidate.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `main` | `ReactNode` | `Required` |
35
+ | `aside` | `ReactNode` | `Required` |
36
+ | `side` | `"start" \| "end"` | `"end"` |
37
+ | `ratio` | `"balanced" \| "main" \| "aside"` | `"main"` |
38
+ | `collapseAt` | `"sm" \| "md" \| "lg" \| "never"` | `"md"` |
39
+ | `gap` | `"0" \| "1" \| "2" \| "3" \| "4" \| "6" \| "8" \| "12"` | `"6"` |
40
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children">` | `Forwarded` |
@@ -0,0 +1,37 @@
1
+ # Stack
2
+
3
+ Vertical composition with spacing from the shared token scale.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Stack, Heading, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Stack gap="4">
19
+ <Heading size="section">Project</Heading>
20
+ <Text as="p">One place for your work.</Text>
21
+ </Stack>
22
+ </FloodRoot>
23
+ );
24
+ }
25
+ ```
26
+
27
+ ## Design notes
28
+
29
+ - The parent owns the gap between its children.
30
+ - Spacing keys are strings and use rem. Flood does not reset the host root font size.
31
+
32
+ ## API reference
33
+
34
+ | Prop | Values | Default |
35
+ | --- | --- | --- |
36
+ | `gap` | `"0" \| "1" \| "2" \| "3" \| "4" \| "6" \| "8" \| "12"` | `"4"` |
37
+ | `Native HTML props` | `HTMLAttributes<HTMLDivElement>` | `Forwarded` |
@@ -0,0 +1,38 @@
1
+ # StatusIndicator
2
+
3
+ A named state with a small decorative indicator, without a badge container.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, StatusIndicator } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <StatusIndicator tone="success" label="All systems operational" />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - The visible label carries meaning; the dot is decorative and color is never the only signal. Use announce to opt into a polite status live region for changing messages.
27
+ - Static labels do not announce by default. Tone is independent of wording and size. Use Badge for categorical labels and Alert for a message requiring more explanation.
28
+ - Compatible addition in 0.2.5. Uses existing Flood semantic tokens and relative geometry.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `label` | `string` | `Required` |
35
+ | `tone` | `"neutral" \| "accent" \| "error" \| "warning" \| "success" \| "info"` | `"neutral"` |
36
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
37
+ | `announce` | `boolean` | `false` |
38
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLSpanElement>, "children">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # Steps
2
+
3
+ An ordered progress sequence with explicit current, completed, upcoming and error states.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Steps } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Steps label="Project setup" currentValue="access" items={[{value:"details",title:"Details"},{value:"access",title:"Access"},{value:"review",title:"Review"}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Steps renders an ordered list, not tabs. currentValue identifies aria-current=step; preceding steps default to complete and later steps to upcoming. Item status may explicitly mark complete/upcoming/error. Omitted currentValue starts at the first step.
27
+ - Without onStepChange, steps are informative content. Providing it renders native step buttons; the host owns navigation and currentValue updates. Disabled items only affect those actions. Every state has text through customizable statusLabels; color and icons are additional cues. Horizontal presentation stacks in narrow viewports.
28
+ - Original compatible addition in the unpublished 0.2.5 source candidate.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `label` | `string` | `Required` |
35
+ | `items` | `readonly StepItem[]` | `Required` |
36
+ | `currentValue` | `string` | `—` |
37
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` |
38
+ | `onStepChange` | `(value: string) => void` | `—` |
39
+ | `statusLabels` | `{complete: string; current: string; upcoming: string; error: string}` | `—` |
40
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLOListElement>, "children" \| "role" \| "aria-label">` | `Forwarded` |
@@ -0,0 +1,37 @@
1
+ # Surface
2
+
3
+ A quiet container with semantic elevation and token-based padding.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Surface, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Surface elevation="raised" padding="6">
19
+ <Text>Everything in its place.</Text>
20
+ </Surface>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - Elevation describes appearance. Overlay does not create a dialog, portal or focus trap.
29
+ - Prefer grouping and spacing before adding more nested containers.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `elevation` | `"default" \| "raised" \| "overlay"` | `"default"` |
36
+ | `padding` | `"0" \| "1" \| "2" \| "3" \| "4" \| "6" \| "8" \| "12"` | `"6"` |
37
+ | `Native HTML props` | `HTMLAttributes<HTMLDivElement>` | `Forwarded` |
@@ -0,0 +1,35 @@
1
+ # Switch
2
+
3
+ A labeled on/off setting with native checkbox form behavior.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Switch } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Switch label="Email notifications" name="notifications" defaultChecked />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Switch uses a native checkbox with role="switch".
27
+ - checked/defaultChecked, name/value, reset and disabled remain native. The component does not persist settings.
28
+ - The control and visible label form one content-width unit with an 8px-at-16px-root internal gap. Use an explicit parent gap="4" (16px at that root) between units; the glyph keeps its token-defined size.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `label` | `ReactNode` | `Required` |
35
+ | `Native HTML props` | `Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "size">` | `Forwarded` |
@@ -0,0 +1,46 @@
1
+ # Table
2
+
3
+ A native data table with caption, density and a protected horizontal scroll area.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Table } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Table caption="Projects">
19
+ <thead><tr><th scope="col">Project</th><th scope="col" data-numeric>Members</th></tr></thead>
20
+ <tbody><tr><th scope="row">Flood</th><td data-numeric>12</td></tr></tbody>
21
+ </Table>
22
+ </FloodRoot>
23
+ );
24
+ }
25
+ ```
26
+
27
+ ## Design notes
28
+
29
+ - Caption is required and remains the accessible table name with hideCaption. Supply table sections and correct native header/cell associations.
30
+ - Native table props, className/style and HTMLTableElement ref target the actual table. Set style.minWidth when horizontal overflow is preferable to compressed columns.
31
+ - Flood ScrollArea owns horizontal scrolling and keyboard access. scrollLabel can name its viewport independently; dir and hidden apply to the containing scroll area too.
32
+ - Use data-numeric on headers/cells for end alignment and tabular figures; data-align=start/center/end gives logical alignment. No automatic sorting, selection, pagination or data access.
33
+ - Striped and compact/comfortable density are opt-in presentation. Available in 0.2.4.
34
+
35
+ ## API reference
36
+
37
+ | Prop | Values | Default |
38
+ | --- | --- | --- |
39
+ | `caption` | `string` | `Required` |
40
+ | `children` | `ReactNode` | `Required` |
41
+ | `hideCaption` | `boolean` | `false` |
42
+ | `density` | `"compact" \| "comfortable"` | `"comfortable"` |
43
+ | `striped` | `boolean` | `false` |
44
+ | `scrollLabel` | `string` | `—` |
45
+ | `cellVerticalAlign` | `"top" \| "middle" \| "bottom"` | `"middle"` |
46
+ | `Native HTML props` | `Omit<TableHTMLAttributes<HTMLTableElement>, "children">` | `Forwarded` |
@@ -0,0 +1,43 @@
1
+ # Tabs
2
+
3
+ Connected tab buttons and retained content panels with roving keyboard focus.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, Tabs } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Tabs label="Project sections" items={[{value:"overview",label:"Overview",content:"Project context."},{value:"activity",label:"Activity",content:"Recent updates."}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Arrow keys navigate enabled tabs; automatic activation is default, manual needs Enter/Space. Tab leaves the tablist. Horizontal direction follows RTL.
27
+ - Inactive panels remain mounted but hidden. Keep form validation and persistent selection under host control. Invalid, missing or disabled selected values fall back to the first available item.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `label` | `string` | `Required` |
34
+ | `items` | `readonly TabItem[]` | `Required` |
35
+ | `value` | `string` | `—` |
36
+ | `defaultValue` | `string` | `—` |
37
+ | `onValueChange` | `(value: string) => void` | `—` |
38
+ | `activationMode` | `"automatic" \| "manual"` | `"automatic"` |
39
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` |
40
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
41
+ | `disabled` | `boolean` | `false` |
42
+ | `iconOnly` | `boolean` | `false` |
43
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "defaultValue" \| "onChange">` | `Forwarded` |