@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,42 @@
1
+ # Accordion
2
+
3
+ Related disclosure sections with optional single or multiple expansion.
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, Accordion } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Accordion label="Questions" items={[{value:"install",title:"How do I install Flood?",content:"Install the packages and import the stylesheet."}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Headings contain native disclosure buttons. Set headingLevel for the surrounding document.
27
+ - Enter/Space toggle. Tab visits available triggers and open panel contents. ArrowUp/Down and Home/End move among enabled top-level triggers without opening panels.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `label` | `string` | `Required` |
34
+ | `items` | `readonly AccordionItem[]` | `Required` |
35
+ | `expansionMode` | `"single" \| "multiple"` | `"single"` |
36
+ | `value` | `readonly string[]` | `—` |
37
+ | `defaultValue` | `readonly string[]` | `[]` |
38
+ | `onValueChange` | `(value: string[]) => void` | `—` |
39
+ | `disabled` | `boolean` | `false` |
40
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `"md"` |
41
+ | `headingLevel` | `2 \| 3 \| 4 \| 5 \| 6` | `3` |
42
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "role" \| "defaultValue" \| "onChange">` | `Forwarded` |
@@ -0,0 +1,46 @@
1
+ # AlertDialog
2
+
3
+ A focused confirmation with explicit cancel and continue 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, AlertDialog, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <AlertDialog title="Archive this project?" description="You can restore it from the archive." confirmLabel="Archive project" trigger={props => <Button {...props}>Archive project</Button>} onConfirm={() => { /* Archive in the host application. */ }} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Uses the original Flood Dialog modal layer with role=alertdialog, a required message and initial focus on Cancel. Tab stays inside the modal; Escape cancels and restores trigger focus. Outside clicks do not dismiss it. There is no extra close action competing with the explicit Cancel button.
27
+ - onConfirm is a host callback followed by a close request. onCancel handles the Cancel button and Escape, not confirmation. Use open/onOpenChange for host-controlled state and confirmDisabled to prevent confirmation while unavailable. Async work/errors belong to the host; callbacks are not awaited.
28
+ - Translate title, description, confirmLabel and cancelLabel. Use ordinary Dialog for forms and exploratory content. Available in 0.2.5.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `title` | `string` | `Required` |
35
+ | `trigger` | `(props: OverlayTriggerProps) => ReactNode` | `Required` |
36
+ | `open` | `boolean` | `—` |
37
+ | `defaultOpen` | `boolean` | `false` |
38
+ | `onOpenChange` | `(open: boolean) => void` | `—` |
39
+ | `disabled` | `boolean` | `—` |
40
+ | `description` | `string` | `Required` |
41
+ | `confirmLabel` | `string` | `"Continue"` |
42
+ | `cancelLabel` | `string` | `"Cancel"` |
43
+ | `confirmDisabled` | `boolean` | `false` |
44
+ | `onConfirm` | `() => void` | `Required` |
45
+ | `onCancel` | `() => void` | `—` |
46
+ | `Native HTML props` | `Omit<Omit<HTMLAttributes<HTMLDialogElement>, "children" \| "title" \| "role">, "children" \| "role" \| "description" \| "closeLabel" \| "closeOnOutsideClick" \| "initialFocusRef">` | `Forwarded` |
@@ -0,0 +1,41 @@
1
+ # Alert
2
+
3
+ An inline message with a quiet boundary and explicit announcement priority.
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, Alert } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Alert tone="warning" title="Storage is almost full">
19
+ Free some space before your next upload.
20
+ </Alert>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - announcement defaults off: a static message does not automatically interrupt a screen reader. Polite uses role=status; assertive uses role=alert.
29
+ - Use assertive for newly inserted urgent messages, and verify with actual assistive technology. No focus movement, timeout or automatic dismissal is implemented.
30
+ - Title is optional. Icons are original decorative glyphs; pass icon={null} to omit or supply noninteractive artwork. Meaning must remain in the text.
31
+ - Native div props and ref target the message root. Available in 0.2.4.
32
+
33
+ ## API reference
34
+
35
+ | Prop | Values | Default |
36
+ | --- | --- | --- |
37
+ | `title` | `string` | `—` |
38
+ | `tone` | `"neutral" \| "error" \| "warning" \| "success" \| "info"` | `"info"` |
39
+ | `icon` | `ReactNode` | `—` |
40
+ | `announcement` | `"off" \| "polite" \| "assertive"` | `"off"` |
41
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "title" \| "role" \| "aria-live">` | `Forwarded` |
@@ -0,0 +1,47 @@
1
+ # AppShell
2
+
3
+ A workspace layout with optional navigation, top bar and footer, plus a keyboard skip target.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, AppShell, AppTopBar, PageHeader, Text } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <AppShell topBar={<AppTopBar start={<Text>Workspace</Text>} />}><PageHeader title="Projects" /></AppShell>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Content scrolling keeps navigation, top bar and footer outside the work scrollport. Use scroll="page" for a document that scrolls as a whole.
27
+ - Supply Sidebar for docked navigation. Set navigationDrawer with a shell-width threshold and Drawer content to swap automatically. Share accepted route and branch state between the two presentations.
28
+ - Use mainAs="section" only when embedding a shell inside an existing main landmark.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `navigation` | `ReactNode` | `—` |
35
+ | `navigationSide` | `"start" \| "end"` | `"start"` |
36
+ | `navigationDrawer` | `AppShellNavigationDrawer` | `—` |
37
+ | `topBar` | `ReactNode \| (navigationTrigger: ReactNode) => ReactNode` | `—` |
38
+ | `footer` | `ReactNode` | `—` |
39
+ | `scroll` | `"content" \| "page"` | `"content"` |
40
+ | `mainId` | `string` | `—` |
41
+ | `mainAs` | `"main" \| "section"` | `"main"` |
42
+ | `mainLabel` | `string` | `—` |
43
+ | `mainRef` | `Ref<HTMLElement>` | `—` |
44
+ | `scrollLabel` | `string` | `—` |
45
+ | `scrollOrientation` | `ScrollAreaProps["orientation"]` | `—` |
46
+ | `skipLabel` | `string` | `—` |
47
+ | `Native HTML props` | `HTMLAttributes<HTMLDivElement>` | `Forwarded` |
@@ -0,0 +1,36 @@
1
+ # AppTopBar
2
+
3
+ Application context and global actions in two independent, wrapping 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, AppTopBar, Text, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <AppTopBar start={<Text>Workspace</Text>} end={<Button size="sm">Search</Button>} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Use in AppShell or in a host-owned layout. Use PageHeader for the current page's title and actions.
27
+ - The start and end groups wrap on narrow hosts without changing keyboard order. Use bordered only where the toolbar needs a visible boundary.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `start` | `ReactNode` | `—` |
34
+ | `end` | `ReactNode` | `—` |
35
+ | `bordered` | `boolean` | `false` |
36
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "children">` | `Forwarded` |
@@ -0,0 +1,36 @@
1
+ # AspectRatio
2
+
3
+ Reserved media proportions that respond to their containing 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, AspectRatio, Image } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <AspectRatio ratio={16 / 9}><Image src="/flood-mark.png" alt="Flood logo" fit="contain" /></AspectRatio>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - ratio must be finite and positive. The root reserves media geometry before image loading.
27
+ - Direct img/video/iframe children fill the reserved box. Content can overflow; the component does not clip focus, menus or arbitrarily tall text.
28
+ - Host media owns alt, captions, controls and loading. Native props/ref target the outer div.
29
+ - Available in 0.2.4; use matching installed declarations.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `ratio` | `number` | `16 / 9` |
36
+ | `Native HTML props` | `HTMLAttributes<HTMLDivElement>` | `Forwarded` |
@@ -0,0 +1,54 @@
1
+ # Autocomplete
2
+
3
+ A free text field with optional suggestions; accepts values outside the list.
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, Autocomplete } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Field label="Team">{control => <Autocomplete {...control} name="team" options={[{value:"design",label:"Design",group:"Product"},{value:"engineering",label:"Engineering",group:"Product"},{value:"operations",label:"Operations",group:"Business"}]} />}</Field>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - The submitted value is text, not an option ID. Use Combobox for fixed choices.
27
+ - Manual suggestions use controlled value and optionsQuery; stale results cannot be chosen. Network ownership remains with the host.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
34
+ | `invalid` | `boolean` | `—` |
35
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `—` |
36
+ | `options` | `readonly ComboboxOption[]` | `Required` |
37
+ | `clearable` | `boolean` | `—` |
38
+ | `emptyMessage` | `string` | `—` |
39
+ | `listLabel` | `string` | `—` |
40
+ | `toggleLabel` | `string` | `—` |
41
+ | `clearLabel` | `string` | `—` |
42
+ | `invalidSelectionMessage` | `string` | `—` |
43
+ | `filtering` | `"local" \| "manual"` | `—` |
44
+ | `optionsQuery` | `string` | `—` |
45
+ | `loadState` | `"ready" \| "loading" \| "error"` | `—` |
46
+ | `loadingMessage` | `string` | `—` |
47
+ | `errorMessage` | `string` | `—` |
48
+ | `onRetry` | `() => void` | `—` |
49
+ | `retryLabel` | `string` | `—` |
50
+ | `value` | `string` | `—` |
51
+ | `defaultValue` | `string` | `""` |
52
+ | `onValueChange` | `(value: string) => void` | `—` |
53
+ | `onOptionSelect` | `(option: ComboboxOption) => void` | `—` |
54
+ | `Native HTML props` | `Omit<Omit<InputHTMLAttributes<HTMLInputElement>, "type" \| "value" \| "defaultValue" \| "onChange" \| "children">, "query" \| "onQueryChange" \| "selectedOptions" \| "value" \| "defaultValue" \| "onValueChange">` | `Forwarded` |
@@ -0,0 +1,39 @@
1
+ # AvatarGroup
2
+
3
+ A compact collection of avatars with an accessible overflow count.
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, AvatarGroup } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <AvatarGroup label="Project collaborators" items={[{id:"alex",name:"Alex Morgan"},{id:"sam",name:"Sam Lee"},{id:"june",name:"June Park"}]} max={2} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - The native list composes Flood Avatar. IDs and names must be nonempty and unique IDs remain stable. max is a positive integer; the default shows four people.
27
+ - Overflow is a static count, not a hidden interactive menu. Translate overflowLabel when needed; visible avatars retain their individual accessible names. Size follows Avatar. Intentional overlap never applies to interactive targets.
28
+ - Compatible addition in 0.2.5. Uses existing Flood semantic tokens and relative geometry.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `items` | `readonly AvatarGroupItem[]` | `Required` |
35
+ | `label` | `string` | `Required` |
36
+ | `max` | `number` | `4` |
37
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
38
+ | `overflowLabel` | `string` | `—` |
39
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLUListElement>, "children">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # Avatar
2
+
3
+ A stable identity image with initials or an explicit text fallback.
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, Avatar } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Avatar name="Alex Morgan" />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Name supplies the accessible image name; decorative suppresses duplicate naming next to an equivalent visible name.
27
+ - Fallback remains visible until the image loads and after a load error. Changing src starts a fresh load lifecycle.
28
+ - Native span props and ref target the root. Size and shape do not change during loading. Available in 0.2.4.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `name` | `string` | `Required` |
35
+ | `src` | `string` | `—` |
36
+ | `fallback` | `string` | `—` |
37
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
38
+ | `shape` | `"circle" \| "rounded"` | `"circle"` |
39
+ | `decorative` | `boolean` | `false` |
40
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLSpanElement>, "children" \| "role" \| "aria-label" \| "aria-hidden">` | `Forwarded` |
@@ -0,0 +1,37 @@
1
+ # Badge
2
+
3
+ A compact, noninteractive label for status and metadata.
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, Badge } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Badge tone="success">Active</Badge>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Use text to communicate status; color is supplementary.
27
+ - Tone, size and visual variant are independent. This is not a selectable or removable chip.
28
+ - Available in 0.2.4. Use FloodRoot for the neutral dark recipe.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` |
35
+ | `tone` | `"neutral" \| "accent" \| "error" \| "warning" \| "success" \| "info"` | `"neutral"` |
36
+ | `variant` | `"subtle" \| "outline"` | `"subtle"` |
37
+ | `Native HTML props` | `HTMLAttributes<HTMLSpanElement>` | `Forwarded` |
@@ -0,0 +1,35 @@
1
+ # Blockquote
2
+
3
+ A quoted passage with an optional compact attribution.
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, Blockquote } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Blockquote attribution="The Flood team">Good interfaces make room for what matters.</Blockquote>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Uses native blockquote; cite remains a source URL, while attribution is visible host-authored credit. Rich quote content and attribution are supported.
27
+ - The logical leading rule follows RTL. Supply quotation punctuation as part of your actual content; the component does not invent a quotation or source.
28
+ - Compatible addition in 0.2.5. Uses existing Flood semantic tokens and relative geometry.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `attribution` | `ReactNode` | `—` |
35
+ | `Native HTML props` | `BlockquoteHTMLAttributes<HTMLQuoteElement>` | `Forwarded` |
@@ -0,0 +1,36 @@
1
+ # Breadcrumb
2
+
3
+ A wrapping hierarchy of native links with an explicit current page.
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, Breadcrumb } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Breadcrumb items={[{label:"Workspace",href:"/"},{label:"Projects",href:"/projects"},{label:"Flood"}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - The last item is current, with or without an href. Separators are decorative and not focusable.
27
+ - Links keep browser navigation semantics. The host owns actual routes and client routing.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `items` | `readonly BreadcrumbItem[]` | `Required` |
34
+ | `label` | `string` | `"Breadcrumb"` |
35
+ | `separator` | `string` | `"/"` |
36
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLElement>, "children">` | `Forwarded` |
@@ -0,0 +1,52 @@
1
+ # BulkActionBar
2
+
3
+ A single-row selection command capsule with adaptive overflow.
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, BulkActionBar } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <BulkActionBar label="Selected projects" selectionCount={2}
19
+ items={[{id:"archive",label:"Archive",priority:10},{id:"pause",label:"Pause"},{id:"activate",label:"Set active"}]}
20
+ onAction={(id) => console.log(id)} onClear={() => console.log("clear")} />
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - The default is a pill-shaped single row with at most two visible commands. maxVisibleActions accepts 1, 2 or 3; available space can reduce that number further.
29
+ - Lower-priority commands move to More. selectionLabel, clearLabel and moreLabel support localized content; selectionCount=0 renders nothing.
30
+ - pending disables commands and clearing. The host owns selected IDs, accepted updates, confirmation and focus after removal.
31
+ - The component is inline by default. A floating host supplies bounded viewport positioning, safe-area spacing and scroll clearance. Use a stable width so adaptive measurement does not depend on the currently visible commands.
32
+ - counter accepts label (default), number or none. Visible counters reserve a stable width across digit changes; counterWidth adapts that reservation to a localized label. Numeric mode retains the complete accessible selectionLabel. Hidden mode removes the slot.
33
+
34
+ ## API reference
35
+
36
+ | Prop | Values | Default |
37
+ | --- | --- | --- |
38
+ | `label` | `string` | `Required` |
39
+ | `selectionCount` | `number` | `Required` |
40
+ | `selectionLabel` | `string` | `—` |
41
+ | `counter` | `"label" \| "number" \| "none"` | `—` |
42
+ | `counterWidth` | `CSSProperties["inlineSize"]` | `—` |
43
+ | `items` | `readonly OverflowAction[]` | `Required` |
44
+ | `onAction` | `(id: string) => void` | `—` |
45
+ | `onClear` | `() => void` | `Required` |
46
+ | `clearLabel` | `string` | `—` |
47
+ | `moreLabel` | `string` | `—` |
48
+ | `size` | `"sm" \| "md" \| "lg" \| "xl"` | `—` |
49
+ | `maxVisibleActions` | `1 \| 2 \| 3` | `—` |
50
+ | `disabled` | `boolean` | `—` |
51
+ | `pending` | `boolean` | `—` |
52
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "onAction">` | `Forwarded` |
@@ -0,0 +1,39 @@
1
+ # ButtonGroup
2
+
3
+ Connected actions with shared edges and ordinary keyboard focus.
4
+
5
+ Connect Flood once using [the installation guide](https://flood.md/docs/installation). Then import the components you use; no per-component add command is needed.
6
+
7
+ ## Example
8
+
9
+ ```tsx
10
+ "use client";
11
+
12
+ import { FloodRoot, ButtonGroup, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <ButtonGroup label="Editing actions">
19
+ <Button variant="subtle">Undo</Button>
20
+ <Button variant="subtle">Redo</Button>
21
+ </ButtonGroup>
22
+ </FloodRoot>
23
+ );
24
+ }
25
+ ```
26
+
27
+ ## Design notes
28
+
29
+ - Use direct Button/IconButton children with compatible sizes. The group owns connected radii and single separators; actions keep their props and handlers.
30
+ - label names the group. Tab follows normal button order; this is not a toolbar, menu or selection group.
31
+ - Horizontal is default; vertical stacks actions. Content can wrap within a button. Conditional/hidden actions preserve the visible end corners. No clipping masks focus.
32
+
33
+ ## API reference
34
+
35
+ | Prop | Values | Default |
36
+ | --- | --- | --- |
37
+ | `label` | `string` | `Required` |
38
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` |
39
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "role">` | `Forwarded` |
@@ -0,0 +1,44 @@
1
+ # Button
2
+
3
+ Native actions with a clear prominence, size and interaction state.
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, Inline, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Inline gap="2">
19
+ <Button>Save changes</Button>
20
+ <Button variant="subtle">Cancel</Button>
21
+ <Button loading>Saving</Button>
22
+ </Inline>
23
+ </FloodRoot>
24
+ );
25
+ }
26
+ ```
27
+
28
+ ## Design notes
29
+
30
+ - Button defaults to type="button". Set submit or reset deliberately inside forms.
31
+ - Loading disables activation and sets aria-busy. The host owns completion announcements.
32
+ - Prefer subtle for standalone secondary actions; ghost belongs in a clear parent context.
33
+ - Buttons use content width, including inside Stack. Opt into a full-width action with style={{ inlineSize: "100%" }} only when the composition calls for it.
34
+
35
+ ## API reference
36
+
37
+ | Prop | Values | Default |
38
+ | --- | --- | --- |
39
+ | `variant` | `"solid" \| "subtle" \| "outline" \| "ghost"` | `"solid"` |
40
+ | `tone` | `"default" \| "danger"` | `"default"` |
41
+ | `size` | `"2xs" \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| "2xl"` | `"md"` |
42
+ | `loading` | `boolean` | `false` |
43
+ | `type` | `Inherited native HTML prop` | `"button"` |
44
+ | `Native HTML props` | `ButtonHTMLAttributes<HTMLButtonElement>` | `Forwarded` |