@flood-md/agent 0.2.9 → 0.2.11

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 (451) hide show
  1. package/DESIGN.md +33 -8
  2. package/README.md +35 -4
  3. package/SKILL.md +42 -0
  4. package/dist/catalog.json +8716 -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-app-shell.md +47 -0
  9. package/dist/materials/component-app-top-bar.md +36 -0
  10. package/dist/materials/component-aspect-ratio.md +36 -0
  11. package/dist/materials/component-autocomplete.md +54 -0
  12. package/dist/materials/component-avatar-group.md +39 -0
  13. package/dist/materials/component-avatar.md +40 -0
  14. package/dist/materials/component-badge.md +37 -0
  15. package/dist/materials/component-blockquote.md +35 -0
  16. package/dist/materials/component-breadcrumb.md +36 -0
  17. package/dist/materials/component-bulk-action-bar.md +52 -0
  18. package/dist/materials/component-button-group.md +39 -0
  19. package/dist/materials/component-button.md +44 -0
  20. package/dist/materials/component-calendar.md +59 -0
  21. package/dist/materials/component-card.md +46 -0
  22. package/dist/materials/component-center.md +39 -0
  23. package/dist/materials/component-character-count.md +42 -0
  24. package/dist/materials/component-check-card.md +39 -0
  25. package/dist/materials/component-checkbox-group.md +48 -0
  26. package/dist/materials/component-checkbox.md +37 -0
  27. package/dist/materials/component-code-snippet.md +37 -0
  28. package/dist/materials/component-collapsible.md +41 -0
  29. package/dist/materials/component-collection-toolbar.md +68 -0
  30. package/dist/materials/component-collection-view-switcher.md +49 -0
  31. package/dist/materials/component-color-picker.md +49 -0
  32. package/dist/materials/component-color-swatch.md +35 -0
  33. package/dist/materials/component-combobox.md +60 -0
  34. package/dist/materials/component-command-list.md +48 -0
  35. package/dist/materials/component-command-palette.md +53 -0
  36. package/dist/materials/component-container.md +36 -0
  37. package/dist/materials/component-context-menu.md +43 -0
  38. package/dist/materials/component-copy-button.md +43 -0
  39. package/dist/materials/component-data-list-item.md +40 -0
  40. package/dist/materials/component-data-list.md +38 -0
  41. package/dist/materials/component-data-table.md +70 -0
  42. package/dist/materials/component-date-field.md +57 -0
  43. package/dist/materials/component-date-picker.md +67 -0
  44. package/dist/materials/component-date-range-field.md +62 -0
  45. package/dist/materials/component-date-range-picker.md +73 -0
  46. package/dist/materials/component-date-time-picker.md +62 -0
  47. package/dist/materials/component-date-time-range-picker.md +70 -0
  48. package/dist/materials/component-description-list.md +42 -0
  49. package/dist/materials/component-dialog.md +45 -0
  50. package/dist/materials/component-divider.md +37 -0
  51. package/dist/materials/component-drawer.md +51 -0
  52. package/dist/materials/component-dropzone.md +45 -0
  53. package/dist/materials/component-editable.md +57 -0
  54. package/dist/materials/component-empty-state.md +41 -0
  55. package/dist/materials/component-error-summary.md +40 -0
  56. package/dist/materials/component-field.md +46 -0
  57. package/dist/materials/component-fieldset.md +46 -0
  58. package/dist/materials/component-figure.md +36 -0
  59. package/dist/materials/component-file-input.md +45 -0
  60. package/dist/materials/component-file-item.md +48 -0
  61. package/dist/materials/component-file-list.md +39 -0
  62. package/dist/materials/component-file-meta.md +36 -0
  63. package/dist/materials/component-filter-condition.md +53 -0
  64. package/dist/materials/component-filter-group.md +55 -0
  65. package/dist/materials/component-flood-root.md +33 -0
  66. package/dist/materials/component-grid.md +38 -0
  67. package/dist/materials/component-heading.md +38 -0
  68. package/dist/materials/component-hover-card.md +48 -0
  69. package/dist/materials/component-icon-button.md +43 -0
  70. package/dist/materials/component-icon-slot.md +37 -0
  71. package/dist/materials/component-image-preview.md +50 -0
  72. package/dist/materials/component-image.md +37 -0
  73. package/dist/materials/component-inline-code.md +36 -0
  74. package/dist/materials/component-inline.md +39 -0
  75. package/dist/materials/component-input-group.md +43 -0
  76. package/dist/materials/component-input.md +39 -0
  77. package/dist/materials/component-kbd.md +34 -0
  78. package/dist/materials/component-label.md +37 -0
  79. package/dist/materials/component-link.md +35 -0
  80. package/dist/materials/component-list-box.md +57 -0
  81. package/dist/materials/component-list.md +40 -0
  82. package/dist/materials/component-menu.md +54 -0
  83. package/dist/materials/component-menubar.md +41 -0
  84. package/dist/materials/component-meter.md +43 -0
  85. package/dist/materials/component-metric.md +39 -0
  86. package/dist/materials/component-multi-select.md +62 -0
  87. package/dist/materials/component-navigation-group.md +51 -0
  88. package/dist/materials/component-navigation-item.md +59 -0
  89. package/dist/materials/component-navigation-list.md +38 -0
  90. package/dist/materials/component-navigation-tree.md +51 -0
  91. package/dist/materials/component-number-input.md +47 -0
  92. package/dist/materials/component-overflow-actions.md +47 -0
  93. package/dist/materials/component-page-header.md +40 -0
  94. package/dist/materials/component-pagination.md +44 -0
  95. package/dist/materials/component-password-input.md +43 -0
  96. package/dist/materials/component-pin-input.md +45 -0
  97. package/dist/materials/component-popover.md +48 -0
  98. package/dist/materials/component-progress.md +42 -0
  99. package/dist/materials/component-radio-card.md +43 -0
  100. package/dist/materials/component-radio-group.md +49 -0
  101. package/dist/materials/component-radio.md +39 -0
  102. package/dist/materials/component-range-calendar.md +58 -0
  103. package/dist/materials/component-rating.md +46 -0
  104. package/dist/materials/component-resizable-panels.md +48 -0
  105. package/dist/materials/component-scroll-area.md +42 -0
  106. package/dist/materials/component-search-input.md +40 -0
  107. package/dist/materials/component-section.md +42 -0
  108. package/dist/materials/component-segmented-control.md +53 -0
  109. package/dist/materials/component-select.md +45 -0
  110. package/dist/materials/component-sidebar.md +64 -0
  111. package/dist/materials/component-skeleton.md +42 -0
  112. package/dist/materials/component-skip-link.md +37 -0
  113. package/dist/materials/component-slider.md +51 -0
  114. package/dist/materials/component-spinner.md +37 -0
  115. package/dist/materials/component-split.md +40 -0
  116. package/dist/materials/component-stack.md +37 -0
  117. package/dist/materials/component-status-indicator.md +38 -0
  118. package/dist/materials/component-steps.md +40 -0
  119. package/dist/materials/component-surface.md +37 -0
  120. package/dist/materials/component-switch.md +35 -0
  121. package/dist/materials/component-table.md +46 -0
  122. package/dist/materials/component-tabs.md +45 -0
  123. package/dist/materials/component-tag-input.md +46 -0
  124. package/dist/materials/component-tag.md +40 -0
  125. package/dist/materials/component-text.md +39 -0
  126. package/dist/materials/component-textarea.md +38 -0
  127. package/dist/materials/component-time-field.md +56 -0
  128. package/dist/materials/component-time-picker.md +60 -0
  129. package/dist/materials/component-timeline.md +38 -0
  130. package/dist/materials/component-toast-region.md +42 -0
  131. package/dist/materials/component-toggle-group.md +44 -0
  132. package/dist/materials/component-toggle.md +40 -0
  133. package/dist/materials/component-toolbar.md +46 -0
  134. package/dist/materials/component-tooltip.md +40 -0
  135. package/dist/materials/component-tree-select.md +56 -0
  136. package/dist/materials/component-tree.md +52 -0
  137. package/dist/materials/component-upload-item.md +52 -0
  138. package/dist/materials/component-upload-list.md +40 -0
  139. package/dist/materials/component-visually-hidden.md +37 -0
  140. package/dist/materials/guide-agent-knowledge.md +95 -0
  141. package/dist/materials/guide-agents.md +103 -0
  142. package/dist/materials/guide-faq.md +84 -0
  143. package/dist/materials/guide-foundations.md +275 -0
  144. package/dist/materials/guide-installation.md +79 -0
  145. package/dist/materials/guide-interface-content.md +76 -0
  146. package/dist/materials/guide-introduction.md +42 -0
  147. package/dist/materials/guide-layout.md +222 -0
  148. package/dist/materials/guide-motion.md +69 -0
  149. package/dist/materials/guide-privacy.md +23 -0
  150. package/dist/materials/guide-project-ui.md +127 -0
  151. package/dist/materials/guide-skills.md +117 -0
  152. package/dist/materials/guide-theming.md +73 -0
  153. package/dist/materials/recipe-collection-views.md +648 -0
  154. package/dist/materials/recipe-command-palette.md +45 -0
  155. package/dist/materials/recipe-filter-bar.md +68 -0
  156. package/dist/materials/recipe-form-submission.md +39 -0
  157. package/dist/materials/recipe-grouped-form.md +71 -0
  158. package/dist/materials/recipe-navigation-workspace.md +222 -0
  159. package/dist/materials/recipe-record-management.md +296 -0
  160. package/dist/materials/recipe-record-workspace.md +207 -0
  161. package/dist/materials/recipe-select-all.md +31 -0
  162. package/dist/materials/recipe-settings-workspace.md +232 -0
  163. package/dist/materials/recipe-split-button.md +26 -0
  164. package/dist/materials/recipe-table-bulk-actions.md +88 -0
  165. package/dist/materials/recipe-workspace-review.md +134 -0
  166. package/dist/materials/token-sys.color.accent.content.json +41 -0
  167. package/dist/materials/token-sys.color.action.danger.content.json +42 -0
  168. package/dist/materials/token-sys.color.action.ghost.content.json +41 -0
  169. package/dist/materials/token-sys.color.action.ghost.disabled-content.json +41 -0
  170. package/dist/materials/token-sys.color.action.ghost.disabled.json +41 -0
  171. package/dist/materials/token-sys.color.action.ghost.hover.json +41 -0
  172. package/dist/materials/token-sys.color.action.ghost.pressed.json +41 -0
  173. package/dist/materials/token-sys.color.action.ghost.rest.json +41 -0
  174. package/dist/materials/token-sys.color.action.on-surface.content.json +39 -0
  175. package/dist/materials/token-sys.color.action.on-surface.disabled-content.json +39 -0
  176. package/dist/materials/token-sys.color.action.on-surface.disabled.json +39 -0
  177. package/dist/materials/token-sys.color.action.on-surface.hover.json +39 -0
  178. package/dist/materials/token-sys.color.action.on-surface.pressed.json +39 -0
  179. package/dist/materials/token-sys.color.action.on-surface.rest.json +39 -0
  180. package/dist/materials/token-sys.color.action.primary.content.json +39 -0
  181. package/dist/materials/token-sys.color.action.primary.disabled-content.json +39 -0
  182. package/dist/materials/token-sys.color.action.primary.disabled.json +39 -0
  183. package/dist/materials/token-sys.color.action.primary.hover.json +39 -0
  184. package/dist/materials/token-sys.color.action.primary.pressed.json +39 -0
  185. package/dist/materials/token-sys.color.action.primary.rest.json +39 -0
  186. package/dist/materials/token-sys.color.action.subtle.content.json +39 -0
  187. package/dist/materials/token-sys.color.action.subtle.disabled-content.json +39 -0
  188. package/dist/materials/token-sys.color.action.subtle.disabled.json +39 -0
  189. package/dist/materials/token-sys.color.action.subtle.hover.json +39 -0
  190. package/dist/materials/token-sys.color.action.subtle.pressed.json +39 -0
  191. package/dist/materials/token-sys.color.action.subtle.rest.json +39 -0
  192. package/dist/materials/token-sys.color.border.decorative.json +42 -0
  193. package/dist/materials/token-sys.color.border.default.json +39 -0
  194. package/dist/materials/token-sys.color.border.floating.json +39 -0
  195. package/dist/materials/token-sys.color.border.strong.json +39 -0
  196. package/dist/materials/token-sys.color.content.default.json +41 -0
  197. package/dist/materials/token-sys.color.content.helper.json +39 -0
  198. package/dist/materials/token-sys.color.content.subtle.json +43 -0
  199. package/dist/materials/token-sys.color.context.base.action-disabled.json +41 -0
  200. package/dist/materials/token-sys.color.context.base.action-hover.json +41 -0
  201. package/dist/materials/token-sys.color.context.base.action-pressed.json +41 -0
  202. package/dist/materials/token-sys.color.context.base.action-rest.json +41 -0
  203. package/dist/materials/token-sys.color.context.base.avatar-background.json +41 -0
  204. package/dist/materials/token-sys.color.context.base.border-decorative.json +41 -0
  205. package/dist/materials/token-sys.color.context.base.divider-decorative.json +41 -0
  206. package/dist/materials/token-sys.color.context.base.field-background.json +41 -0
  207. package/dist/materials/token-sys.color.context.base.field-border.json +41 -0
  208. package/dist/materials/token-sys.color.context.base.field-disabled.json +41 -0
  209. package/dist/materials/token-sys.color.context.base.field-readonly.json +41 -0
  210. package/dist/materials/token-sys.color.context.base.indicator-track.json +41 -0
  211. package/dist/materials/token-sys.color.context.base.loading-placeholder.json +41 -0
  212. package/dist/materials/token-sys.color.context.base.muted-background.json +41 -0
  213. package/dist/materials/token-sys.color.context.base.on-surface-action-disabled.json +41 -0
  214. package/dist/materials/token-sys.color.context.base.on-surface-action-hover.json +41 -0
  215. package/dist/materials/token-sys.color.context.base.on-surface-action-pressed.json +41 -0
  216. package/dist/materials/token-sys.color.context.base.on-surface-action-rest.json +41 -0
  217. package/dist/materials/token-sys.color.context.base.selection-background.json +41 -0
  218. package/dist/materials/token-sys.color.context.base.supporting-background.json +41 -0
  219. package/dist/materials/token-sys.color.context.filled.action-disabled.json +41 -0
  220. package/dist/materials/token-sys.color.context.filled.action-hover.json +41 -0
  221. package/dist/materials/token-sys.color.context.filled.action-pressed.json +41 -0
  222. package/dist/materials/token-sys.color.context.filled.action-rest.json +41 -0
  223. package/dist/materials/token-sys.color.context.filled.avatar-background.json +41 -0
  224. package/dist/materials/token-sys.color.context.filled.border-decorative.json +41 -0
  225. package/dist/materials/token-sys.color.context.filled.divider-decorative.json +41 -0
  226. package/dist/materials/token-sys.color.context.filled.field-background.json +41 -0
  227. package/dist/materials/token-sys.color.context.filled.field-border.json +41 -0
  228. package/dist/materials/token-sys.color.context.filled.field-disabled.json +41 -0
  229. package/dist/materials/token-sys.color.context.filled.field-readonly.json +41 -0
  230. package/dist/materials/token-sys.color.context.filled.indicator-track.json +41 -0
  231. package/dist/materials/token-sys.color.context.filled.loading-placeholder.json +41 -0
  232. package/dist/materials/token-sys.color.context.filled.muted-background.json +41 -0
  233. package/dist/materials/token-sys.color.context.filled.selection-background.json +41 -0
  234. package/dist/materials/token-sys.color.context.filled.supporting-background.json +41 -0
  235. package/dist/materials/token-sys.color.divider.decorative.json +41 -0
  236. package/dist/materials/token-sys.color.feedback.error.json +39 -0
  237. package/dist/materials/token-sys.color.feedback.info.json +39 -0
  238. package/dist/materials/token-sys.color.feedback.success.json +39 -0
  239. package/dist/materials/token-sys.color.feedback.warning.json +39 -0
  240. package/dist/materials/token-sys.color.field.background.json +39 -0
  241. package/dist/materials/token-sys.color.field.border.json +39 -0
  242. package/dist/materials/token-sys.color.field.boundary.json +39 -0
  243. package/dist/materials/token-sys.color.field.content.json +39 -0
  244. package/dist/materials/token-sys.color.field.disabled-content.json +39 -0
  245. package/dist/materials/token-sys.color.field.disabled.json +39 -0
  246. package/dist/materials/token-sys.color.field.placeholder.json +39 -0
  247. package/dist/materials/token-sys.color.field.readonly.json +41 -0
  248. package/dist/materials/token-sys.color.focus.ring.json +39 -0
  249. package/dist/materials/token-sys.color.indicator.accent.json +39 -0
  250. package/dist/materials/token-sys.color.indicator.fill.json +39 -0
  251. package/dist/materials/token-sys.color.indicator.track.json +39 -0
  252. package/dist/materials/token-sys.color.loading.placeholder.json +42 -0
  253. package/dist/materials/token-sys.color.scrollbar.thumb-hover.json +39 -0
  254. package/dist/materials/token-sys.color.scrollbar.thumb.json +39 -0
  255. package/dist/materials/token-sys.color.selection.background.json +39 -0
  256. package/dist/materials/token-sys.color.selection.content.json +39 -0
  257. package/dist/materials/token-sys.color.selection.floating.json +39 -0
  258. package/dist/materials/token-sys.color.shadow.floating.json +39 -0
  259. package/dist/materials/token-sys.color.surface.avatar.json +41 -0
  260. package/dist/materials/token-sys.color.surface.canvas.json +39 -0
  261. package/dist/materials/token-sys.color.surface.current.json +41 -0
  262. package/dist/materials/token-sys.color.surface.default.json +39 -0
  263. package/dist/materials/token-sys.color.surface.floating-translucent.json +39 -0
  264. package/dist/materials/token-sys.color.surface.floating.json +39 -0
  265. package/dist/materials/token-sys.color.surface.muted.json +41 -0
  266. package/dist/materials/token-sys.color.surface.overlay.json +39 -0
  267. package/dist/materials/token-sys.color.surface.raised.json +39 -0
  268. package/dist/materials/token-sys.color.surface.supporting.json +41 -0
  269. package/dist/materials/token-sys.control.2xl.gap.json +34 -0
  270. package/dist/materials/token-sys.control.2xl.height.json +34 -0
  271. package/dist/materials/token-sys.control.2xl.icon-size.json +34 -0
  272. package/dist/materials/token-sys.control.2xl.line-height.json +31 -0
  273. package/dist/materials/token-sys.control.2xl.padding-inline.json +34 -0
  274. package/dist/materials/token-sys.control.2xl.text-size.json +34 -0
  275. package/dist/materials/token-sys.control.2xs.gap.json +34 -0
  276. package/dist/materials/token-sys.control.2xs.height.json +34 -0
  277. package/dist/materials/token-sys.control.2xs.icon-size.json +34 -0
  278. package/dist/materials/token-sys.control.2xs.line-height.json +31 -0
  279. package/dist/materials/token-sys.control.2xs.padding-inline.json +34 -0
  280. package/dist/materials/token-sys.control.2xs.text-size.json +34 -0
  281. package/dist/materials/token-sys.control.lg.gap.json +34 -0
  282. package/dist/materials/token-sys.control.lg.height.json +34 -0
  283. package/dist/materials/token-sys.control.lg.icon-size.json +34 -0
  284. package/dist/materials/token-sys.control.lg.line-height.json +31 -0
  285. package/dist/materials/token-sys.control.lg.padding-inline.json +34 -0
  286. package/dist/materials/token-sys.control.lg.text-size.json +34 -0
  287. package/dist/materials/token-sys.control.md.gap.json +34 -0
  288. package/dist/materials/token-sys.control.md.height.json +34 -0
  289. package/dist/materials/token-sys.control.md.icon-size.json +34 -0
  290. package/dist/materials/token-sys.control.md.line-height.json +31 -0
  291. package/dist/materials/token-sys.control.md.padding-inline.json +34 -0
  292. package/dist/materials/token-sys.control.md.text-size.json +34 -0
  293. package/dist/materials/token-sys.control.sm.gap.json +34 -0
  294. package/dist/materials/token-sys.control.sm.height.json +34 -0
  295. package/dist/materials/token-sys.control.sm.icon-size.json +34 -0
  296. package/dist/materials/token-sys.control.sm.line-height.json +31 -0
  297. package/dist/materials/token-sys.control.sm.padding-inline.json +34 -0
  298. package/dist/materials/token-sys.control.sm.text-size.json +34 -0
  299. package/dist/materials/token-sys.control.xl.gap.json +34 -0
  300. package/dist/materials/token-sys.control.xl.height.json +34 -0
  301. package/dist/materials/token-sys.control.xl.icon-size.json +34 -0
  302. package/dist/materials/token-sys.control.xl.line-height.json +31 -0
  303. package/dist/materials/token-sys.control.xl.padding-inline.json +34 -0
  304. package/dist/materials/token-sys.control.xl.text-size.json +34 -0
  305. package/dist/materials/token-sys.control.xs.gap.json +34 -0
  306. package/dist/materials/token-sys.control.xs.height.json +34 -0
  307. package/dist/materials/token-sys.control.xs.icon-size.json +34 -0
  308. package/dist/materials/token-sys.control.xs.line-height.json +31 -0
  309. package/dist/materials/token-sys.control.xs.padding-inline.json +34 -0
  310. package/dist/materials/token-sys.control.xs.text-size.json +34 -0
  311. package/dist/materials/token-sys.effect.floating.blur.json +34 -0
  312. package/dist/materials/token-sys.effect.floating.saturation.json +31 -0
  313. package/dist/materials/token-sys.effect.floating.shadow-blur.json +34 -0
  314. package/dist/materials/token-sys.effect.floating.shadow-offset.json +34 -0
  315. package/dist/materials/token-sys.focus.offset.json +34 -0
  316. package/dist/materials/token-sys.focus.width.json +34 -0
  317. package/dist/materials/token-sys.font.mono.json +36 -0
  318. package/dist/materials/token-sys.font.sans.json +35 -0
  319. package/dist/materials/token-sys.layer.base.json +31 -0
  320. package/dist/materials/token-sys.layer.modal.json +31 -0
  321. package/dist/materials/token-sys.layer.popover.json +31 -0
  322. package/dist/materials/token-sys.layer.sticky.json +31 -0
  323. package/dist/materials/token-sys.layer.toast.json +31 -0
  324. package/dist/materials/token-sys.motion.distance-panel.json +36 -0
  325. package/dist/materials/token-sys.motion.distance-small.json +36 -0
  326. package/dist/materials/token-sys.motion.duration-enter.json +36 -0
  327. package/dist/materials/token-sys.motion.duration-exit.json +36 -0
  328. package/dist/materials/token-sys.motion.duration-fast.json +34 -0
  329. package/dist/materials/token-sys.motion.duration-layer.json +36 -0
  330. package/dist/materials/token-sys.motion.duration-loop.json +36 -0
  331. package/dist/materials/token-sys.motion.duration-normal.json +34 -0
  332. package/dist/materials/token-sys.motion.duration-press.json +36 -0
  333. package/dist/materials/token-sys.motion.duration-reduced.json +34 -0
  334. package/dist/materials/token-sys.motion.easing-enter.json +38 -0
  335. package/dist/materials/token-sys.motion.easing-exit.json +38 -0
  336. package/dist/materials/token-sys.motion.easing.json +36 -0
  337. package/dist/materials/token-sys.radius.action.json +34 -0
  338. package/dist/materials/token-sys.radius.block.json +34 -0
  339. package/dist/materials/token-sys.radius.field.json +34 -0
  340. package/dist/materials/token-sys.radius.indicator.json +34 -0
  341. package/dist/materials/token-sys.radius.surface.json +34 -0
  342. package/dist/materials/token-sys.scrollbar.inset.json +34 -0
  343. package/dist/materials/token-sys.scrollbar.min-thumb.json +34 -0
  344. package/dist/materials/token-sys.scrollbar.size.json +34 -0
  345. package/dist/materials/token-sys.size.choice.json +34 -0
  346. package/dist/materials/token-sys.size.container.lg.json +37 -0
  347. package/dist/materials/token-sys.size.container.md.json +37 -0
  348. package/dist/materials/token-sys.size.container.sm.json +37 -0
  349. package/dist/materials/token-sys.size.grid.min-item.json +37 -0
  350. package/dist/materials/token-sys.size.indicator.lg.json +34 -0
  351. package/dist/materials/token-sys.size.indicator.md.json +34 -0
  352. package/dist/materials/token-sys.size.indicator.sm.json +34 -0
  353. package/dist/materials/token-sys.size.keycap.lg.json +34 -0
  354. package/dist/materials/token-sys.size.keycap.md.json +34 -0
  355. package/dist/materials/token-sys.size.keycap.sm.json +34 -0
  356. package/dist/materials/token-sys.size.switch-height.json +34 -0
  357. package/dist/materials/token-sys.size.switch-thumb.json +34 -0
  358. package/dist/materials/token-sys.size.switch-width.json +34 -0
  359. package/dist/materials/token-sys.size.touch.json +34 -0
  360. package/dist/materials/token-sys.space.0.json +34 -0
  361. package/dist/materials/token-sys.space.1.json +34 -0
  362. package/dist/materials/token-sys.space.12.json +34 -0
  363. package/dist/materials/token-sys.space.2.json +34 -0
  364. package/dist/materials/token-sys.space.3.json +34 -0
  365. package/dist/materials/token-sys.space.4.json +34 -0
  366. package/dist/materials/token-sys.space.6.json +34 -0
  367. package/dist/materials/token-sys.space.8.json +34 -0
  368. package/dist/materials/token-sys.stroke.width.json +34 -0
  369. package/dist/materials/token-sys.type.body.line-height.json +31 -0
  370. package/dist/materials/token-sys.type.body.size.json +34 -0
  371. package/dist/materials/token-sys.type.body.tracking.json +34 -0
  372. package/dist/materials/token-sys.type.body.weight.json +31 -0
  373. package/dist/materials/token-sys.type.compact.line-height.json +31 -0
  374. package/dist/materials/token-sys.type.compact.size.json +34 -0
  375. package/dist/materials/token-sys.type.compact.tracking.json +34 -0
  376. package/dist/materials/token-sys.type.compact.weight.json +31 -0
  377. package/dist/materials/token-sys.type.control.line-height.json +31 -0
  378. package/dist/materials/token-sys.type.control.size.json +34 -0
  379. package/dist/materials/token-sys.type.control.tracking.json +34 -0
  380. package/dist/materials/token-sys.type.control.weight.json +31 -0
  381. package/dist/materials/token-sys.type.dialog-title.line-height.json +33 -0
  382. package/dist/materials/token-sys.type.dialog-title.size.json +36 -0
  383. package/dist/materials/token-sys.type.dialog-title.tracking.json +36 -0
  384. package/dist/materials/token-sys.type.dialog-title.weight.json +33 -0
  385. package/dist/materials/token-sys.type.display.line-height.json +31 -0
  386. package/dist/materials/token-sys.type.display.size.json +34 -0
  387. package/dist/materials/token-sys.type.display.tracking.json +34 -0
  388. package/dist/materials/token-sys.type.display.weight.json +31 -0
  389. package/dist/materials/token-sys.type.field-label.line-height.json +33 -0
  390. package/dist/materials/token-sys.type.field-label.size.json +36 -0
  391. package/dist/materials/token-sys.type.field-label.tracking.json +36 -0
  392. package/dist/materials/token-sys.type.field-label.weight.json +33 -0
  393. package/dist/materials/token-sys.type.group-title.line-height.json +33 -0
  394. package/dist/materials/token-sys.type.group-title.size.json +36 -0
  395. package/dist/materials/token-sys.type.group-title.tracking.json +36 -0
  396. package/dist/materials/token-sys.type.group-title.weight.json +33 -0
  397. package/dist/materials/token-sys.type.helper.line-height.json +31 -0
  398. package/dist/materials/token-sys.type.helper.size.json +34 -0
  399. package/dist/materials/token-sys.type.helper.tracking.json +34 -0
  400. package/dist/materials/token-sys.type.helper.weight.json +31 -0
  401. package/dist/materials/token-sys.type.label.line-height.json +31 -0
  402. package/dist/materials/token-sys.type.label.size.json +34 -0
  403. package/dist/materials/token-sys.type.label.tracking.json +34 -0
  404. package/dist/materials/token-sys.type.label.weight.json +31 -0
  405. package/dist/materials/token-sys.type.large.line-height.json +31 -0
  406. package/dist/materials/token-sys.type.large.size.json +34 -0
  407. package/dist/materials/token-sys.type.large.tracking.json +34 -0
  408. package/dist/materials/token-sys.type.large.weight.json +31 -0
  409. package/dist/materials/token-sys.type.lead.line-height.json +31 -0
  410. package/dist/materials/token-sys.type.lead.size.json +34 -0
  411. package/dist/materials/token-sys.type.lead.tracking.json +34 -0
  412. package/dist/materials/token-sys.type.lead.weight.json +31 -0
  413. package/dist/materials/token-sys.type.page.line-height.json +31 -0
  414. package/dist/materials/token-sys.type.page.size.json +34 -0
  415. package/dist/materials/token-sys.type.page.tracking.json +34 -0
  416. package/dist/materials/token-sys.type.page.weight.json +31 -0
  417. package/dist/materials/token-sys.type.section.line-height.json +31 -0
  418. package/dist/materials/token-sys.type.section.size.json +34 -0
  419. package/dist/materials/token-sys.type.section.tracking.json +34 -0
  420. package/dist/materials/token-sys.type.section.weight.json +31 -0
  421. package/knowledge.json +522 -0
  422. package/lib/index.d.ts +33 -0
  423. package/lib/index.mjs +144 -0
  424. package/lib/inspect.d.ts +12 -0
  425. package/lib/inspect.mjs +187 -0
  426. package/manifest.json +51 -1
  427. package/package.json +13 -1
  428. package/references/component-families.md +146 -0
  429. package/references/composition.md +4 -4
  430. package/references/customization.md +14 -0
  431. package/references/flood-composition/SKILL.md +34 -0
  432. package/references/flood-data-display/SKILL.md +149 -0
  433. package/references/flood-feedback/SKILL.md +49 -3
  434. package/references/flood-forms/SKILL.md +82 -2
  435. package/references/flood-foundations/SKILL.md +43 -0
  436. package/references/flood-hierarchy/SKILL.md +103 -0
  437. package/references/flood-interface-content/SKILL.md +163 -0
  438. package/references/flood-motion/SKILL.md +44 -0
  439. package/references/flood-navigation/SKILL.md +195 -0
  440. package/references/flood-overlays/SKILL.md +42 -0
  441. package/references/flood-records/SKILL.md +148 -0
  442. package/references/flood-spacing/SKILL.md +54 -0
  443. package/references/flood-verification/SKILL.md +72 -0
  444. package/references/interface-content-examples.md +51 -0
  445. package/references/knowledge.md +49 -0
  446. package/references/record-decisions.md +25 -0
  447. package/references/rendered-review.md +102 -0
  448. package/references/routing.md +1 -0
  449. package/references/spacing.md +30 -0
  450. package/rules.json +242 -6
  451. package/workflows.json +171 -10
@@ -0,0 +1,59 @@
1
+ # NavigationItem
2
+
3
+ One shared navigation row for destinations, commands and independent disclosure.
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, NavigationItem } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <NavigationItem label="Projects" href="/projects" current />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Uses Flood Link or Button; navigation links remain native anchors with host handlers. Commands and destination clicks do not silently toggle a branch.
27
+ - disclosure without a destination makes the complete row a disclosure button. href plus disclosure creates separate link and disclosure targets in one shared surface; expanded is controlled by the host.
28
+ - compact leaf rows retain names through Tooltip. Use NavigationTree for compact branches and link-plus-branch items so the full navigation remains reachable in a Popover.
29
+ - IconSlot owns leading artwork; IconButton keeps the disclosure target with smaller supporting artwork. trailing is noninteractive metadata, not a place to nest another button inside a link.
30
+ - trailingAction is an independent sibling control in expanded rows. It is visible alongside any trailing metadata. Use a named IconButton and apply its own disabled state.
31
+ - Original compatible addition in the unpublished 0.2.11 source candidate.
32
+
33
+ ## API reference
34
+
35
+ | Prop | Values | Default |
36
+ | --- | --- | --- |
37
+ | `label` | `string` | `Required` |
38
+ | `description` | `string` | `—` |
39
+ | `icon` | `ReactNode` | `—` |
40
+ | `reserveIcon` | `boolean` | `—` |
41
+ | `trailing` | `ReactNode` | `—` |
42
+ | `trailingAction` | `ReactNode` | `—` |
43
+ | `href` | `string` | `—` |
44
+ | `linkProps` | `Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' \| 'children' \| 'aria-current'>` | `—` |
45
+ | `onAction` | `()=>void` | `—` |
46
+ | `actionProps` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>` | `—` |
47
+ | `disclosure` | `NavigationItemDisclosure` | `—` |
48
+ | `current` | `boolean` | `—` |
49
+ | `currentKind` | `'page' \| 'location'` | `—` |
50
+ | `ancestorCurrent` | `boolean` | `—` |
51
+ | `disabled` | `boolean` | `—` |
52
+ | `size` | `'sm' \| 'md' \| 'lg'` | `—` |
53
+ | `compact` | `boolean` | `—` |
54
+ | `variant` | `'quiet' \| 'standard'` | `—` |
55
+ | `tooltip` | `boolean` | `—` |
56
+ | `tooltipSide` | `'left' \| 'right'` | `—` |
57
+ | `controlRef` | `Ref<HTMLElement>` | `—` |
58
+ | `disclosureRef` | `Ref<HTMLButtonElement>` | `—` |
59
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, 'children' \| 'onChange'>` | `Forwarded` |
@@ -0,0 +1,38 @@
1
+ # NavigationList
2
+
3
+ A grouped list of native navigation links with a clear current destination.
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, NavigationList } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <NavigationList label="Project navigation" currentValue="overview" items={[{value:"overview",label:"Overview",href:"/overview",group:"Workspace"},{value:"activity",label:"Activity",href:"/activity",group:"Workspace"},{value:"settings",label:"Settings",href:"/settings",group:"Manage"}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - NavigationList renders nav, lists and native anchors; it is not an ARIA menu or tablist. The host supplies unique stable item values, destinations and currentValue. Browser modifier/target navigation is preserved through item.linkProps.
27
+ - Optional group names label contiguous item groups. Icons are decorative IconSlot content; descriptions remain associated link text. Size controls compact row density while coarse pointer targets remain usable. No routing engine, URL inference or disabled navigation simulation is supplied.
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 NavigationListItem[]` | `Required` |
36
+ | `currentValue` | `string` | `—` |
37
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
38
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "children" \| "role" \| "aria-label">` | `Forwarded` |
@@ -0,0 +1,51 @@
1
+ # NavigationTree
2
+
3
+ Nested native navigation links with separate disclosure controls.
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, NavigationTree } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <NavigationTree label="Documentation" defaultExpandedValues={["start"]} items={[{value:"start",label:"Getting started",children:[{value:"installation",label:"Installation",href:"/docs/installation"}]}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Native nav, lists and anchors preserve ordinary Tab order and browser modifier navigation. This component does not use ARIA tree/menu/tab roles.
27
+ - A branch may have both href and children: its native link navigates while a separate disclosure button expands. currentValue marks the matching destination; ancestors are expanded explicitly by the host.
28
+ - Expansion is controlled or uncontrolled through expandedValues/defaultExpandedValues/onExpandedValuesChange. Translate disclosure names with expandLabel; content can render host-owned loading or empty branch content.
29
+ - Item values must be globally unique and children acyclic. Disabled destinations have no active href; parent disability does not propagate to children. Introduced in 0.2.7.
30
+ - compact creates an icon rail with real leaf links and full Popover navigation for branches. flyoutSide controls placement; current descendant styling is separate from aria-current. trailing accepts metadata in expanded rows. Compact labels remain accessible and have native title hints.
31
+ - currentKind defaults to page. Use location when the active value identifies a broader global navigation context rather than the exact current page.
32
+ - Enable branchGuides for dense nested lists. Item trailingAction uses the shared NavigationItem slot in expanded rows and on destinations inside branch flyouts.
33
+
34
+ ## API reference
35
+
36
+ | Prop | Values | Default |
37
+ | --- | --- | --- |
38
+ | `label` | `string` | `Required` |
39
+ | `items` | `readonly NavigationTreeItem[]` | `Required` |
40
+ | `currentValue` | `string` | `—` |
41
+ | `currentKind` | `"page" \| "location"` | `—` |
42
+ | `expandedValues` | `readonly string[]` | `—` |
43
+ | `defaultExpandedValues` | `readonly string[]` | `—` |
44
+ | `onExpandedValuesChange` | `(values: string[]) => void` | `—` |
45
+ | `expandLabel` | `(item: NavigationTreeItem, expanded: boolean) => string` | `—` |
46
+ | `size` | `"sm" \| "md" \| "lg"` | `—` |
47
+ | `variant` | `"quiet" \| "standard"` | `—` |
48
+ | `compact` | `boolean` | `—` |
49
+ | `flyoutSide` | `"left" \| "right"` | `—` |
50
+ | `branchGuides` | `boolean` | `—` |
51
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "children" \| "onChange">` | `Forwarded` |
@@ -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,47 @@
1
+ # OverflowActions
2
+
3
+ A priority-based action row that moves commands into a More menu when space is limited.
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, OverflowActions } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <OverflowActions label="Document actions" shape="pill" items={[{id:"save",label:"Save",priority:10},{id:"duplicate",label:"Duplicate"},{id:"archive",label:"Archive"}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Compose commands rather than links. Higher priority remains visible longer; source order is preserved.
27
+ - Uses existing Toolbar, Button, IconSlot and Menu; hidden measurements are inert and excluded from the accessibility tree.
28
+ - shape defaults to pill; rounded restores the field-radius Toolbar shell. Available width excludes Toolbar padding.
29
+ - containerVariant="plain" delegates a surface-free rail to Toolbar, keeping peer control heights aligned; contained is the default. variant still styles the actions themselves.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `label` | `string` | `Required` |
36
+ | `items` | `readonly OverflowAction[]` | `Required` |
37
+ | `onAction` | `(id: string) => void` | `—` |
38
+ | `moreLabel` | `string` | `—` |
39
+ | `size` | `"sm" \| "md" \| "lg" \| "xl"` | `—` |
40
+ | `variant` | `ButtonProps["variant"]` | `—` |
41
+ | `shape` | `ToolbarProps["shape"]` | `—` |
42
+ | `containerVariant` | `ToolbarProps["variant"]` | `—` |
43
+ | `disabled` | `boolean` | `—` |
44
+ | `leading` | `ReactNode` | `—` |
45
+ | `trailing` | `ReactNode` | `—` |
46
+ | `maxVisibleActions` | `number` | `—` |
47
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "onAction">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # PageHeader
2
+
3
+ The main page heading with optional supporting text and page 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, PageHeader, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <PageHeader title="Projects" actions={<Button>New project</Button>} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Use inside main for the page's h1. An embedded preview can choose headingLevel={2}. Use Section for titled content within the page.
27
+ - Add a description only when it supplies context the title cannot. Keep filters in the collection toolbar.
28
+ - Actions wrap below the title when the header's own container narrows. The heading stays first in reading and keyboard order.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `title` | `string` | `Required` |
35
+ | `description` | `ReactNode` | `—` |
36
+ | `actions` | `ReactNode` | `—` |
37
+ | `headingId` | `string` | `—` |
38
+ | `headingLevel` | `1 \| 2` | `1` |
39
+ | `headingSize` | `"page" \| "large" \| "display"` | `"large"` |
40
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "title" \| "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,48 @@
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" \| "title-only"` | `—` |
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
+ | `focusOnOpen` | `boolean` | `—` |
48
+ | `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="1 project, up to 3 members" metadata="Free" defaultChecked />
21
+ <RadioCard name="plan" value="team" label="Team" description="Unlimited projects, up to 25 members" 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` |