@flood-md/agent 0.2.8 → 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 (376) hide show
  1. package/DESIGN.md +26 -4
  2. package/README.md +40 -1
  3. package/SKILL.md +46 -4
  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 +91 -1
  356. package/package.json +9 -1
  357. package/references/flood-accessibility/SKILL.md +40 -0
  358. package/references/flood-composition/SKILL.md +30 -0
  359. package/references/flood-data-display/SKILL.md +69 -0
  360. package/references/flood-feedback/SKILL.md +58 -0
  361. package/references/flood-forms/SKILL.md +94 -0
  362. package/references/flood-foundations/SKILL.md +44 -0
  363. package/references/flood-hierarchy/SKILL.md +87 -0
  364. package/references/flood-interface-content/SKILL.md +142 -0
  365. package/references/flood-navigation/SKILL.md +35 -0
  366. package/references/flood-overlays/SKILL.md +52 -0
  367. package/references/flood-records/SKILL.md +108 -0
  368. package/references/flood-spacing/SKILL.md +62 -0
  369. package/references/flood-verification/SKILL.md +99 -0
  370. package/references/interface-content-examples.md +47 -0
  371. package/references/knowledge.md +49 -0
  372. package/references/record-decisions.md +25 -0
  373. package/references/rendered-review.md +97 -0
  374. package/references/routing.md +1 -0
  375. package/rules.json +454 -2
  376. package/workflows.json +152 -0
@@ -0,0 +1,47 @@
1
+ # NumberInput
2
+
3
+ A native numeric field with integrated decrement and increment 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, Field, NumberInput } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Field label="Seats">
19
+ {(control) => <NumberInput {...control} name="seats" defaultValue={5} min={0} max={20} />}
20
+ </Field>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - Values are finite numbers or null for an empty field. onValueChange reports edits and button/arrow steps; native min/max/step validity remains available. Out-of-bound typed values clamp on blur; a step mismatch remains native validation.
29
+ - Ref and native form attributes target the input. Controlled value stays host-owned; uncontrolled form reset restores the initial value. Buttons use explicit accessible names, which can be translated.
30
+ - Use Field for labels and feedback. Read-only remains selectable and prevents stepping. No currency/locale formatting or wheel interception is supplied. Available in 0.2.5.
31
+
32
+ ## API reference
33
+
34
+ | Prop | Values | Default |
35
+ | --- | --- | --- |
36
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
37
+ | `invalid` | `boolean` | `—` |
38
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
39
+ | `value` | `number \| null` | `—` |
40
+ | `defaultValue` | `number \| null` | `0` |
41
+ | `onValueChange` | `(value: number \| null) => void` | `—` |
42
+ | `min` | `number` | `—` |
43
+ | `max` | `number` | `—` |
44
+ | `step` | `number` | `1` |
45
+ | `decreaseLabel` | `string` | `"Decrease value"` |
46
+ | `increaseLabel` | `string` | `"Increase value"` |
47
+ | `Native HTML props` | `Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "value" \| "defaultValue" \| "onChange" \| "min" \| "max" \| "step" \| "children">` | `Forwarded` |
@@ -0,0 +1,44 @@
1
+ # Pagination
2
+
3
+ Controlled page navigation with bounded page windows, buttons or native links.
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, Pagination } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Pagination page={1} pageCount={20} getHref={page => `?page=${page}`} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Use getHref for native route links, onPageChange for local controlled data, or both for a navigation notification. Modifier clicks retain browser behavior.
27
+ - Page and pageCount must be positive safe integers within range. Empty datasets can omit Pagination. siblingCount 0/1/2 controls compactness; endpoints are noninteractive when unavailable.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `page` | `number` | `Required` |
34
+ | `pageCount` | `number` | `Required` |
35
+ | `onPageChange` | `(page: number) => void` | `—` |
36
+ | `getHref` | `(page: number) => string` | `—` |
37
+ | `siblingCount` | `0 \| 1 \| 2` | `1` |
38
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"sm"` |
39
+ | `disabled` | `boolean` | `false` |
40
+ | `label` | `string` | `"Pagination"` |
41
+ | `previousLabel` | `string` | `"Previous page"` |
42
+ | `nextLabel` | `string` | `"Next page"` |
43
+ | `pageLabel` | `(page: number) => string` | `—` |
44
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "children" \| "onChange">` | `Forwarded` |
@@ -0,0 +1,43 @@
1
+ # PasswordInput
2
+
3
+ A password field with one named visibility action.
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, PasswordInput } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Field label="Password">
19
+ {control => <PasswordInput {...control} name="password-input" />}
20
+ </Field>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - Use visible/onVisibleChange for controlled visibility or defaultVisible for an initial reveal. Translate showPasswordLabel/hidePasswordLabel. Read-only still permits inspection; disabled blocks actions. Native value/onChange, autocomplete, form and ref are preserved. Visibility does not change the value.
29
+ - Composes Flood InputGroup, IconSlot and IconButton using existing semantic geometry and feedback states. Available in 0.2.5.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
36
+ | `invalid` | `boolean` | `—` |
37
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
38
+ | `visible` | `boolean` | `—` |
39
+ | `defaultVisible` | `boolean` | `false` |
40
+ | `onVisibleChange` | `(visible: boolean) => void` | `—` |
41
+ | `showPasswordLabel` | `string` | `"Show password"` |
42
+ | `hidePasswordLabel` | `string` | `"Hide password"` |
43
+ | `Native HTML props` | `Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "children">` | `Forwarded` |
@@ -0,0 +1,45 @@
1
+ # PinInput
2
+
3
+ One native code editor presented as a compact row of character slots.
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, PinInput } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <PinInput label="Verification code" name="code" length={6} autoComplete="one-time-code" required />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - One real native input preserves mobile one-time-code autofill, clipboard, selection, forms and required validity; decorative slots are hidden from assistive technology. Use its native ref for focus. The host owns verification and authentication.
27
+ - length is an integer from 1 to 12. mode numeric permits ASCII digits; alphanumeric also permits ASCII letters. Paste strips separators and invalid characters, then respects the selection and length. Backspace and arrow editing remain native. Use mask to visually conceal the code.
28
+ - Use value/onValueChange or defaultValue. Native form reset restores the initial uncontrolled value. Pattern validity requires a complete code when nonempty; required also rejects an empty code. Translate label and preserve its accessible name with hideLabel. Available in 0.2.5.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
35
+ | `invalid` | `boolean` | `—` |
36
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
37
+ | `label` | `string` | `Required` |
38
+ | `hideLabel` | `boolean` | `false` |
39
+ | `length` | `number` | `6` |
40
+ | `value` | `string` | `—` |
41
+ | `defaultValue` | `string` | `—` |
42
+ | `onValueChange` | `(value: string) => void` | `—` |
43
+ | `mode` | `"numeric" \| "alphanumeric"` | `"numeric"` |
44
+ | `mask` | `boolean` | `false` |
45
+ | `Native HTML props` | `Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "children" \| "value" \| "defaultValue" \| "onChange" \| "pattern" \| "size">` | `Forwarded` |
@@ -0,0 +1,47 @@
1
+ # Popover
2
+
3
+ A nonmodal contextual dialog in the native top layer.
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, Popover, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Popover title="Project settings" trigger={trigger => <Button {...trigger}>Settings</Button>}>Project details.</Popover>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Forward all trigger props and ref.
27
+ - Escape, outside pointer and focus leaving dismiss. Focus enters content and returns when appropriate; Tab is not trapped.
28
+ - Closed content unmounts; keep persistent data in the host. Uses native Popover API within the existing DOM/theme scope.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `title` | `string` | `Required` |
35
+ | `chrome` | `"default" \| "minimal"` | `—` |
36
+ | `trigger` | `(props: OverlayTriggerProps) => ReactNode` | `Required` |
37
+ | `children` | `ReactNode` | `—` |
38
+ | `open` | `boolean` | `—` |
39
+ | `defaultOpen` | `boolean` | `false` |
40
+ | `onOpenChange` | `(open: boolean) => void` | `—` |
41
+ | `disabled` | `boolean` | `false` |
42
+ | `side` | `"top" \| "bottom" \| "left" \| "right"` | `"bottom"` |
43
+ | `align` | `"start" \| "center" \| "end"` | `"start"` |
44
+ | `closeLabel` | `string` | `"Close"` |
45
+ | `initialFocusRef` | `RefObject<HTMLElement \| null>` | `—` |
46
+ | `positionReference` | `RefObject<HTMLElement \| null>` | `—` |
47
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "title" \| "role">` | `Forwarded` |
@@ -0,0 +1,42 @@
1
+ # Progress
2
+
3
+ Completion of a task, with a determinate or unknown value.
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, Progress } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Progress label="Uploading files" value={60} valueText="60%" />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Omit value for indeterminate progress. The accessible progressbar omits aria-valuenow in that state.
27
+ - Max defaults to 100; values must be finite and inside 0..max. Invalid ranges throw instead of silently inventing a percentage.
28
+ - hideLabel removes the caption visually while keeping the accessible name. valueText supplies human-readable units.
29
+ - This is not a live region or a task manager. Native div props, className/style and ref target the wrapper. Available in 0.2.4.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `label` | `string` | `Required` |
36
+ | `value` | `number` | `—` |
37
+ | `max` | `number` | `100` |
38
+ | `valueText` | `string` | `—` |
39
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
40
+ | `tone` | `"neutral" \| "accent" \| "error" \| "warning" \| "success" \| "info"` | `"accent"` |
41
+ | `hideLabel` | `boolean` | `false` |
42
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "role">` | `Forwarded` |
@@ -0,0 +1,43 @@
1
+ # RadioCard
2
+
3
+ A native radio choice presented as a selectable content card.
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, Fieldset, Stack, RadioCard } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Fieldset legend="Plan">
19
+ <Stack gap="2">
20
+ <RadioCard name="plan" value="starter" label="Starter" description="For your next idea." metadata="Free" defaultChecked />
21
+ <RadioCard name="plan" value="team" label="Team" description="For working together." metadata="$12 / month" />
22
+ </Stack>
23
+ </Fieldset>
24
+ </FloodRoot>
25
+ );
26
+ }
27
+ ```
28
+
29
+ ## Design notes
30
+
31
+ - Group choices in a Fieldset and give them the same name.
32
+ - Native arrow-key behavior, forms and reset remain available. Apply readOnly consistently to the whole group.
33
+
34
+ ## API reference
35
+
36
+ | Prop | Values | Default |
37
+ | --- | --- | --- |
38
+ | `label` | `string` | `Required` |
39
+ | `description` | `ReactNode` | `—` |
40
+ | `icon` | `ReactNode` | `—` |
41
+ | `metadata` | `ReactNode` | `—` |
42
+ | `density` | `"compact" \| "comfortable"` | `—` |
43
+ | `Native HTML props` | `Omit<Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "size">, "label" \| "children">` | `Forwarded` |
@@ -0,0 +1,49 @@
1
+ # RadioGroup
2
+
3
+ A named single-choice group with native radio keyboard and 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, RadioGroup } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <RadioGroup name="visibility" legend="Visibility" options={[{ value: "private", label: "Private" }, { value: "team", label: "Team" }]} defaultValue="private" />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Composes Fieldset and existing native choice controls. The ref targets HTMLFieldSetElement; options need unique values and visible labels.
27
+ - value/onValueChange is controlled; defaultValue initializes an uncontrolled group. Native form reset restores uncontrolled defaults without firing onValueChange; controlled values remain owned by the host.
28
+ - name belongs to the inputs. The form prop associates every input with an external form. Disabled options and groups follow native submission rules.
29
+ - RadioGroup supports native required. CheckboxGroup returns repeated name/value entries; validate minimum/maximum selections in the host and explain errors through status/message.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `legend` | `ReactNode` | `Required` |
36
+ | `legendSize · 0.2.10` | `"label" \| "section"` | `—` |
37
+ | `hideLabel · 0.2.3` | `boolean` | `—` |
38
+ | `hint` | `ReactNode` | `—` |
39
+ | `error` | `ReactNode` | `—` |
40
+ | `message` | `ReactNode` | `—` |
41
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
42
+ | `name` | `string` | `Required` |
43
+ | `options` | `readonly ChoiceOption[]` | `Required` |
44
+ | `value` | `string` | `—` |
45
+ | `defaultValue` | `string` | `—` |
46
+ | `onValueChange` | `(value: string) => void` | `—` |
47
+ | `orientation` | `"vertical" \| "horizontal"` | `"vertical"` |
48
+ | `required` | `boolean` | `—` |
49
+ | `Native HTML props` | `Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "children" \| "defaultValue" \| "role">` | `Forwarded` |
@@ -0,0 +1,39 @@
1
+ # Radio
2
+
3
+ A labeled native radio for one choice within a group.
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, Radio } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <fieldset>
19
+ <legend>Visibility</legend>
20
+ <Radio label="Private" name="visibility" value="private" defaultChecked />
21
+ <Radio label="Public" name="visibility" value="public" />
22
+ </fieldset>
23
+ </FloodRoot>
24
+ );
25
+ }
26
+ ```
27
+
28
+ ## Design notes
29
+
30
+ - Radios in one group share a name. The host supplies fieldset and legend.
31
+ - Native browser keyboard and form behavior remain available.
32
+ - 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.
33
+
34
+ ## API reference
35
+
36
+ | Prop | Values | Default |
37
+ | --- | --- | --- |
38
+ | `label` | `ReactNode` | `Required` |
39
+ | `Native HTML props` | `Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "size">` | `Forwarded` |
@@ -0,0 +1,58 @@
1
+ # RangeCalendar
2
+
3
+ A Gregorian grid for selecting and previewing one continuous date interval.
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, RangeCalendar } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <RangeCalendar label="Choose travel dates" today="2026-10-26" defaultValue={{start:"2026-10-12",end:"2026-10-18"}} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - The first activation chooses a start; the second completes a normalized ordered interval. Hover and focus can preview an unfinished interval without committing.
27
+ - Controlled values include partial {start,end:""}; the host must accept that partial value to advance selection. onRangeSelect confirms an enabled completed interval.
28
+ - isDateDisabled controls endpoints. isRangeDisabled validates the entire interval; interior blocked dates are not inferred by scanning arbitrary date spans.
29
+ - Reuses the Calendar grid, month navigation, focus and localization contracts. Translate rangeLabels for instruction messages. Introduced in 0.2.7.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `label` | `string` | `Required` |
36
+ | `showViewControls` | `boolean` | `—` |
37
+ | `viewLabels` | `{month?:string;year?:string;previous?:string;next?:string}` | `—` |
38
+ | `visibleMonth` | `string` | `—` |
39
+ | `defaultVisibleMonth` | `string` | `—` |
40
+ | `onVisibleMonthChange` | `(month: string) => void` | `—` |
41
+ | `min` | `string` | `—` |
42
+ | `max` | `string` | `—` |
43
+ | `disabled` | `boolean` | `—` |
44
+ | `readOnly` | `boolean` | `—` |
45
+ | `isDateDisabled` | `(date: string) => boolean` | `—` |
46
+ | `weekStartsOn` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6` | `0` |
47
+ | `locale` | `string` | `"en-US"` |
48
+ | `autoFocus` | `boolean` | `false` |
49
+ | `today` | `string` | `—` |
50
+ | `previousMonthLabel` | `string` | `—` |
51
+ | `nextMonthLabel` | `string` | `—` |
52
+ | `value` | `DateRangeValue` | `—` |
53
+ | `defaultValue` | `DateRangeValue` | `—` |
54
+ | `onValueChange` | `(range: DateRangeValue) => void` | `—` |
55
+ | `onRangeSelect` | `(range: DateRangeValue) => void` | `—` |
56
+ | `isRangeDisabled` | `(range: DateRangeValue) => boolean` | `—` |
57
+ | `rangeLabels` | `{ chooseStart?: string; chooseEnd?: string; unavailable?: string }` | `—` |
58
+ | `Native HTML props` | `Omit<Omit<HTMLAttributes<HTMLDivElement>, "defaultValue" \| "onChange" \| "children">, "value" \| "defaultValue" \| "onValueChange" \| "onDateSelect" \| "granularity">` | `Forwarded` |
@@ -0,0 +1,46 @@
1
+ # Rating
2
+
3
+ A compact star rating backed by a named native radio group.
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, Rating } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Rating label="Your experience" name="experience" defaultValue={3} max={5} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Provide a nonempty name for native radio grouping and form submission. value/defaultValue are integers from zero (unselected) to max; max is an integer from 1 to 10. Uncontrolled native reset restores defaultValue. required uses native group validation.
27
+ - Arrow keys follow logical direction, Home/End jump to the first/last value, and Space selects the focused radio. One radio is in Tab order. readOnly keeps the current selection focusable without allowing changes; disabled is native.
28
+ - Use getValueLabel to localize each radio name. The stars are decorative; native named radios carry the value. hideLabel preserves the legend for assistive technology. No fractional values or review submission engine is included. Available in 0.2.5.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `label` | `string` | `Required` |
35
+ | `hideLabel` | `boolean` | `false` |
36
+ | `value` | `number` | `—` |
37
+ | `defaultValue` | `number` | `0` |
38
+ | `max` | `number` | `5` |
39
+ | `onValueChange` | `(value: number) => void` | `—` |
40
+ | `getValueLabel` | `(value: number, max: number) => string` | `—` |
41
+ | `readOnly` | `boolean` | `false` |
42
+ | `required` | `boolean` | `—` |
43
+ | `name` | `string` | `Required` |
44
+ | `form` | `string` | `—` |
45
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
46
+ | `Native HTML props` | `Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "children" \| "onChange" \| "defaultValue">` | `Forwarded` |
@@ -0,0 +1,48 @@
1
+ # ResizablePanels
2
+
3
+ Two panels separated by an accessible pointer and keyboard resize control.
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, ResizablePanels, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <ResizablePanels label="Resize workspace" main={<Text>Navigation</Text>} secondary={<Text>Workspace</Text>} style={{height:"16rem"}} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Percentages describe the main pane and exclude the dedicated separator track. The host supplies content and scrolling.
27
+ - Drag the separator or use logical arrow keys, Home/End and Shift for large steps. Horizontal resizing follows RTL direction.
28
+ - value/onValueChange keeps the host in control. onValueCommit reports an accepted completed interaction; pointer cancellation restores the initial uncontrolled size.
29
+ - The separator occupies space so its touch area does not overlap panel content. Persisting layout and larger panel graphs belong to the host. Introduced in 0.2.7.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `label` | `string` | `Required` |
36
+ | `main` | `ReactNode` | `Required` |
37
+ | `secondary` | `ReactNode` | `Required` |
38
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` |
39
+ | `value` | `number` | `—` |
40
+ | `defaultValue` | `number` | `50` |
41
+ | `onValueChange` | `(percent: number) => void` | `—` |
42
+ | `onValueCommit` | `(percent: number) => void` | `—` |
43
+ | `min` | `number` | `10` |
44
+ | `max` | `number` | `90` |
45
+ | `step` | `number` | `1` |
46
+ | `largeStep` | `number` | `10` |
47
+ | `disabled` | `boolean` | `—` |
48
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "defaultValue" \| "onChange">` | `Forwarded` |
@@ -0,0 +1,42 @@
1
+ # ScrollArea
2
+
3
+ Native scrolling with inset overlay scrollbars that preserve content width.
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, ScrollArea, Stack, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <ScrollArea aria-label="Recent activity" style={{ maxHeight: "12rem" }}>
19
+ <Stack gap="4">
20
+ <Text>Project created.</Text>
21
+ <Text>Workspace updated.</Text>
22
+ </Stack>
23
+ </ScrollArea>
24
+ </FloodRoot>
25
+ );
26
+ }
27
+ ```
28
+
29
+ ## Design notes
30
+
31
+ - Scrollbars overlay the viewport with an inset; they do not reserve a content gutter. Give the viewport an explicit height or maxHeight to produce vertical overflow.
32
+ - The forwarded ref, className, style and native div props belong to the scrollable viewport. Supply a visible context or accessible label for keyboard users.
33
+ - Wheel, touch and keyboard scrolling remain native. Default contentInset="scrollbar" keeps text and full-width rows clear of rails with inner padding, without shrinking the viewport. Explicit none allows edge-to-edge content when the host already provides safe padding. Rails automatically avoid rounded clipping corners.
34
+ - Forced colors restores native scrollbars as an accessibility fallback. Verify horizontal and RTL content, resizing and zoom in the host composition.
35
+
36
+ ## API reference
37
+
38
+ | Prop | Values | Default |
39
+ | --- | --- | --- |
40
+ | `orientation` | `"vertical" \| "horizontal" \| "both"` | `"vertical"` |
41
+ | `contentInset` | `"none" \| "scrollbar"` | `"scrollbar"` |
42
+ | `Native HTML props` | `HTMLAttributes<HTMLDivElement>` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # SearchInput
2
+
3
+ A native search field with a leading search icon and one clear action.
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, SearchInput } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Field label="Search">
19
+ {control => <SearchInput {...control} name="search-input" />}
20
+ </Field>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - Native onChange, name, form, reset, ref and Field associations are preserved. clearable defaults to true; read-only hides the clear action. Translate clearLabel. Enter keeps native form submission; filtering belongs to the host.
29
+ - Composes Flood InputGroup, IconSlot and IconButton using existing semantic geometry and feedback states. Available in 0.2.5.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
36
+ | `invalid` | `boolean` | `—` |
37
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
38
+ | `clearable` | `boolean` | `true` |
39
+ | `clearLabel` | `string` | `"Clear search"` |
40
+ | `Native HTML props` | `Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "children">` | `Forwarded` |