@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,44 @@
1
+ # ToggleGroup
2
+
3
+ Optional single or multiple selections exposed as pressed buttons.
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, ToggleGroup } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <ToggleGroup label="Text formatting" defaultValue={["bold"]} options={[{value: "bold", label: "Bold"}, {value: "italic", label: "Italic"}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Tab reaches each enabled action. Arrows/Home/End move focus without selecting. Single selection can be cleared.
27
+ - Use RadioGroup for form choices and tabs for switching panels. ToggleGroup does not submit form values.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `label` | `string` | `Required` |
34
+ | `options` | `readonly ToggleOption[]` | `Required` |
35
+ | `selectionMode` | `"single" \| "multiple"` | `"multiple"` |
36
+ | `value` | `readonly string[]` | `—` |
37
+ | `defaultValue` | `readonly string[]` | `[]` |
38
+ | `onValueChange` | `(value: string[]) => void` | `—` |
39
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` |
40
+ | `size` | `"2xs" \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| "2xl"` | `"md"` |
41
+ | `variant` | `"solid" \| "subtle" \| "outline" \| "ghost"` | `"subtle"` |
42
+ | `disabled` | `boolean` | `false` |
43
+ | `iconOnly` | `boolean` | `false` |
44
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "role" \| "children" \| "defaultValue" \| "onChange">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # Toggle
2
+
3
+ A native button with a persistent pressed 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, Toggle } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Toggle defaultPressed>Bold</Toggle>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Keep the accessible name stable; Enter/Space toggle pressed. Supports controlled pressed/onPressedChange or defaultPressed.
27
+
28
+ ## API reference
29
+
30
+ | Prop | Values | Default |
31
+ | --- | --- | --- |
32
+ | `variant` | `"solid" \| "subtle" \| "outline" \| "ghost"` | `"subtle"` |
33
+ | `tone` | `"default" \| "danger"` | `—` |
34
+ | `size` | `"2xs" \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| "2xl"` | `"md"` |
35
+ | `loading` | `boolean` | `—` |
36
+ | `pressed` | `boolean` | `—` |
37
+ | `defaultPressed` | `boolean` | `false` |
38
+ | `onPressedChange` | `(pressed: boolean) => void` | `—` |
39
+ | `iconOnly` | `boolean` | `false` |
40
+ | `Native HTML props` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "aria-pressed" \| "type" \| "role" \| "defaultValue">` | `Forwarded` |
@@ -0,0 +1,46 @@
1
+ # Toolbar
2
+
3
+ A compact action panel with one Tab entry and directional keyboard navigation.
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, Toolbar, Button, Toggle } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Toolbar label="Editor actions">
19
+ <Button variant="ghost">Undo</Button>
20
+ <Toggle variant="ghost">Bold</Toggle>
21
+ <Button variant="ghost">Share</Button>
22
+ </Toolbar>
23
+ </FloodRoot>
24
+ );
25
+ }
26
+ ```
27
+
28
+ ## Design notes
29
+
30
+ - Use Button, IconButton, Toggle, native buttons/links and Menu triggers. Keep inputs, Select, Tabs and ToggleGroup outside this action-only toolbar.
31
+ - Arrows move focus without activation; Home/End jump to the ends. Disabled and hidden actions are skipped. One Tab entry is established after hydration; before JavaScript native child tab order remains.
32
+ - Horizontal arrows follow writing direction. Vertical arrows move between actions; open a vertical toolbar Menu with Enter/Space. Horizontal menus retain ArrowUp/Down opening.
33
+ - loop defaults to true. Native div props/ref target the toolbar; preserve a meaningful label. Available in 0.2.4.
34
+ - shape defaults to rounded; pill uses the action radius and a horizontal single scrollable rail.
35
+ - variant="plain" removes the material and outer inset for grouping peer controls; contained remains the default. Keyboard ownership is unchanged.
36
+
37
+ ## API reference
38
+
39
+ | Prop | Values | Default |
40
+ | --- | --- | --- |
41
+ | `label` | `string` | `Required` |
42
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` |
43
+ | `loop` | `boolean` | `true` |
44
+ | `shape` | `"rounded" \| "pill"` | `—` |
45
+ | `variant` | `"contained" \| "plain"` | `—` |
46
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "role">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # Tooltip
2
+
3
+ Brief text help on hover or focus, with collision-aware placement.
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, Tooltip, Button } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Tooltip content="Additional context" trigger={trigger => <Button {...trigger}>Hover or focus</Button>} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Requires native Popover API.
27
+ - Forward trigger props and ref to one actual button. Tooltip is text-only; interactive content belongs in Popover.
28
+ - Escape dismisses. Hover can move onto the tooltip; focus stays on the trigger. Do not use it as the only accessible name or essential instruction.
29
+
30
+ ## API reference
31
+
32
+ | Prop | Values | Default |
33
+ | --- | --- | --- |
34
+ | `content` | `string` | `Required` |
35
+ | `trigger` | `(props: TooltipTriggerProps) => ReactNode` | `Required` |
36
+ | `side` | `"top" \| "bottom" \| "left" \| "right"` | `"top"` |
37
+ | `align` | `"start" \| "center" \| "end"` | `"center"` |
38
+ | `delay` | `number` | `300` |
39
+ | `disabled` | `boolean` | `false` |
40
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "content" \| "title" \| "role">` | `Forwarded` |
@@ -0,0 +1,56 @@
1
+ # TreeSelect
2
+
3
+ Single selection from a hierarchical collection inside a popup.
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, TreeSelect } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <TreeSelect label="Destination" name="destination" items={[{value:"design",label:"Design",selectable:false,children:[{value:"foundations",label:"Foundations"},{value:"components",label:"Components"}]}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - This first version selects one item; Tree provides standalone multiple selection.
27
+ - Values are globally unique and expansion remains independent of selection.
28
+
29
+ ## API reference
30
+
31
+ | Prop | Values | Default |
32
+ | --- | --- | --- |
33
+ | `label` | `string` | `Required` |
34
+ | `hideLabel` | `boolean` | `—` |
35
+ | `items` | `readonly TreeItem[]` | `Required` |
36
+ | `value` | `string` | `—` |
37
+ | `defaultValue` | `string` | `—` |
38
+ | `onValueChange` | `(value: string) => void` | `—` |
39
+ | `placeholder` | `string` | `—` |
40
+ | `name` | `string` | `—` |
41
+ | `form` | `string` | `—` |
42
+ | `required` | `boolean` | `—` |
43
+ | `disabled` | `boolean` | `—` |
44
+ | `readOnly` | `boolean` | `—` |
45
+ | `invalid` | `boolean` | `—` |
46
+ | `status` | `"error" \| "warning" \| "success" \| "info"` | `—` |
47
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `—` |
48
+ | `open` | `boolean` | `—` |
49
+ | `defaultOpen` | `boolean` | `—` |
50
+ | `onOpenChange` | `(open: boolean) => void` | `—` |
51
+ | `expandedValues` | `readonly string[]` | `—` |
52
+ | `defaultExpandedValues` | `readonly string[]` | `—` |
53
+ | `onExpandedValuesChange` | `(values: string[]) => void` | `—` |
54
+ | `emptyMessage` | `string` | `—` |
55
+ | `invalidSelectionMessage` | `string` | `—` |
56
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "onChange" \| "defaultValue">` | `Forwarded` |
@@ -0,0 +1,52 @@
1
+ # Tree
2
+
3
+ A selectable application hierarchy with independent expansion and 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, Tree } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Tree label="Project files" items={[{value:"source",label:"Source",children:[{value:"button",label:"Button.tsx"}]}]} />
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Tree uses tree/treeitem/group semantics, logical arrows, Home/End and typeahead. Moving focus does not select an item. Enter/Space explicitly selects; multiple selection does not cascade.
27
+ - Items have globally unique values. Expansion uses expandedValues/defaultExpandedValues/onExpandedValuesChange; selection uses value/defaultValue/onValueChange. Controlled refusal preserves the host state.
28
+ - Read-only allows browsing without selecting. Disabled items remain discoverable but cannot select or expand. hasChildren/loading represent host-owned deferred branches; no fetching or virtualization is built in.
29
+ - Application selection writes no form values. Use NavigationTree for ordinary native links. Introduced in 0.2.7.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `label` | `string` | `Required` |
36
+ | `hideLabel` | `boolean` | `—` |
37
+ | `items` | `readonly TreeItem[]` | `Required` |
38
+ | `value` | `string \| readonly string[]` | `—` |
39
+ | `defaultValue` | `string \| readonly string[]` | `—` |
40
+ | `onValueChange` | `(value: string \| string[]) => void` | `—` |
41
+ | `multiple` | `boolean` | `—` |
42
+ | `expandedValues` | `readonly string[]` | `—` |
43
+ | `defaultExpandedValues` | `readonly string[]` | `—` |
44
+ | `onExpandedValuesChange` | `(values: string[]) => void` | `—` |
45
+ | `disabled` | `boolean` | `—` |
46
+ | `readOnly` | `boolean` | `—` |
47
+ | `controlSize` | `"sm" \| "md" \| "lg" \| "xl"` | `—` |
48
+ | `emptyMessage` | `string` | `—` |
49
+ | `loadingMessage` | `string` | `—` |
50
+ | `unloadedMessage` | `string` | `—` |
51
+ | `readOnlyMessage` | `string` | `—` |
52
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLDivElement>, "children" \| "onSelect" \| "defaultValue" \| "onChange">` | `Forwarded` |
@@ -0,0 +1,52 @@
1
+ # UploadItem
2
+
3
+ A host-controlled upload row with explicit progress and applicable 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, UploadList, UploadItem } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <UploadList label="Uploads">
19
+ <UploadItem name="Brand guidelines.pdf" size={2400000} state="uploading" progress={45} />
20
+ </UploadList>
21
+ </FloodRoot>
22
+ );
23
+ }
24
+ ```
25
+
26
+ ## Design notes
27
+
28
+ - Queued/uploading can expose cancel; error/cancelled can expose retry; settled rows can expose remove.
29
+ - Unknown progress is indeterminate. StatusIndicator and Progress remain distinct reused primitives; their row can wrap when the list container is constrained. No network or upload queue is built in.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `name` | `string` | `Required` |
36
+ | `size` | `number` | `—` |
37
+ | `mimeType` | `string` | `—` |
38
+ | `format` | `string \| null` | `—` |
39
+ | `thumbnail` | `ReactNode` | `—` |
40
+ | `href` | `string` | `—` |
41
+ | `download` | `boolean` | `—` |
42
+ | `onPreview` | `() => void` | `—` |
43
+ | `onRemove` | `() => void` | `—` |
44
+ | `disabled` | `boolean` | `—` |
45
+ | `labels` | `FileActionLabels` | `—` |
46
+ | `formatSize` | `(bytes: number) => string` | `—` |
47
+ | `state` | `"queued" \| "uploading" \| "success" \| "error" \| "cancelled"` | `Required` |
48
+ | `progress` | `number` | `—` |
49
+ | `error` | `string` | `—` |
50
+ | `onCancel` | `() => void` | `—` |
51
+ | `onRetry` | `() => void` | `—` |
52
+ | `Native HTML props` | `Omit<Omit<HTMLAttributes<HTMLLIElement>, "children" \| "title">, "description">` | `Forwarded` |
@@ -0,0 +1,40 @@
1
+ # UploadList
2
+
3
+ A named native list of host-controlled upload rows.
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, UploadList, UploadItem } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <UploadList label="Uploads">
19
+ <UploadItem name="Brand guidelines.pdf" state="uploading" progress={45} />
20
+ <UploadItem name="Logo.svg" state="success" />
21
+ <UploadItem name="Cover.png" state="error" error="Connection interrupted" />
22
+ </UploadList>
23
+ </FloodRoot>
24
+ );
25
+ }
26
+ ```
27
+
28
+ ## Design notes
29
+
30
+ - Each row has its own state and stable host identity.
31
+ - Cancellation, retry and removal callbacks are intents for the application.
32
+
33
+ ## API reference
34
+
35
+ | Prop | Values | Default |
36
+ | --- | --- | --- |
37
+ | `density` | `"compact" \| "comfortable"` | `—` |
38
+ | `dividers` | `boolean` | `—` |
39
+ | `label` | `string` | `Required` |
40
+ | `Native HTML props` | `Omit<HTMLAttributes<HTMLUListElement>, "role">` | `Forwarded` |
@@ -0,0 +1,37 @@
1
+ # VisuallyHidden
2
+
3
+ Nonvisual content with optional reveal when keyboard focus enters.
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, Text, VisuallyHidden } from "@flood-md/react";
13
+ import "@flood-md/react/styles.css";
14
+
15
+ export function Example() {
16
+ return (
17
+ <FloodRoot>
18
+ <Text>Project updated.</Text><VisuallyHidden>Changes save automatically.</VisuallyHidden>
19
+ </FloodRoot>
20
+ );
21
+ }
22
+ ```
23
+
24
+ ## Design notes
25
+
26
+ - Content remains in the accessibility tree. Default is for noninteractive text only.
27
+ - Use focusable for a skip link or another focusable descendant: the wrapper becomes visible while it contains focus. Supply visible focus styling on the actual control.
28
+ - This is not aria-hidden, display:none or a conditional unmount. as accepts span/div.
29
+ - Available in 0.2.4; use matching installed declarations.
30
+
31
+ ## API reference
32
+
33
+ | Prop | Values | Default |
34
+ | --- | --- | --- |
35
+ | `as` | `"span" \| "div"` | `"span"` |
36
+ | `focusable` | `boolean` | `false` |
37
+ | `Native HTML props` | `HTMLAttributes<HTMLElement>` | `Forwarded` |
@@ -0,0 +1,95 @@
1
+ # Agent knowledge
2
+
3
+ Flood 0.2.11 includes a versioned read-only catalog and reader. Use the CLI matching
4
+ the project's flood.json; source availability does not prove npm publication.
5
+ The same package sources build the website, CLI results and agent instructions.
6
+
7
+ ## Discover, then read
8
+
9
+ ```sh
10
+ npx @flood-md/cli@0.2.11 info --json
11
+ npx @flood-md/cli@0.2.11 catalog --kind workflow --group foundations
12
+ npx @flood-md/cli@0.2.11 catalog --kind component --search table
13
+ npx @flood-md/cli@0.2.11 read recipe:table-bulk-actions
14
+ npx @flood-md/cli@0.2.11 read component:data-table
15
+ ```
16
+
17
+ These commands return JSON and do not install dependencies, edit files, execute
18
+ skill text or contact a Flood server. The package runner may fetch the CLI if
19
+ it is not installed locally; keep its version deliberate. Existing project and
20
+ agent instructions remain authoritative.
21
+
22
+ For a screen that filters one table between two views, start with
23
+ `read component:segmented-control` and follow its link to `workflow:records`.
24
+ If the screen switches between independent panels, read `component:tabs`.
25
+ Before delivery, open the list and a selected record together, then use
26
+ `workflow:interface-content` and `reference:interface-content-examples` to
27
+ decide which labels, counts and status messages the user needs in each view.
28
+
29
+ info reports actual installed package versions, the configured guide version,
30
+ framework detection, catalog identity and capability declarations. A version
31
+ mismatch prevents catalog/read from serving an ambiguous guide train. A
32
+ bundle-only result describes the CLI's bundle; it is not proof that the host has
33
+ installed Flood or imported its stylesheet. doctor remains the installation check.
34
+
35
+ ## Material types and groups
36
+
37
+ Stable IDs distinguish workflows, references, components, recipes, guides and
38
+ semantic token records. Groups organize Foundations, Composition, Interaction,
39
+ Data & feedback, Quality and existing Motion tokens. They are navigation labels;
40
+ one task can use several groups. Current capability gaps are explicit in info.
41
+
42
+ For example, page-transition workflows and additional foundation themes are not
43
+ supplied. Existing motion tokens do not create a PageTransition export. Scoped
44
+ brand overrides do not add a brand Button variant. Read reference:customization
45
+ and the actual token records before changing semantic roles.
46
+
47
+ ## Bounded output and version identity
48
+
49
+ catalog accepts --kind, --group, --search, --limit and --cursor. Search matches
50
+ literal metadata case-insensitively; it is not model-based intent routing.
51
+ The default limit is 12, maximum 50, and each metadata page is capped at 16 KiB.
52
+ If truncated is true, follow nextCursor. A changed query or catalog invalidates
53
+ that cursor. This remains bounded as the number of components increases.
54
+
55
+ read accepts --offset and --length. Its default is 10,000 Unicode code points,
56
+ maximum 40,000; follow nextOffset to finish a selected instruction. Related links
57
+ are limited to 32 per read; use --links-offset with nextLinksOffset for more.
58
+ Required prerequisites are separate from optional links. A workflow applying to
59
+ many components does not require reading all of them.
60
+
61
+ The reader checks schema, relationships, package version and selected content
62
+ integrity. It reads only the selected body. The catalog is capped at 8 MiB and
63
+ each material at 1 MiB. Limits fail explicitly; they are not silent omissions.
64
+ The current protocol permits up to 16 semantic groups, 32 capability declarations,
65
+ 16 direct prerequisites and 256 related links per material. Prerequisite depth
66
+ is limited to 32. Expanding these limits is a reviewed protocol decision, not a
67
+ reason to delete safeguards when the catalog grows.
68
+
69
+ ## Customized project guides
70
+
71
+ For material copied by init, read defaults to the existing project guide. The
72
+ response identifies source=project, its hash and customized status. Other
73
+ materials come from the matching package. Missing or linked project guides fail
74
+ explicitly; they are not silently replaced by upstream instructions.
75
+
76
+ Use --source package to compare canonical upstream content. It never overwrites
77
+ customized files. flood/catalog.json is an installed snapshot, not executable
78
+ configuration or permission to redirect reads. Instructions cannot authorize
79
+ external actions that the user did not request.
80
+
81
+ ## API and contribution checks
82
+
83
+ The Node API exports createKnowledgeReader and validateKnowledgeCatalog from
84
+ @flood-md/agent, with matching TypeScript declarations. It has info(), list(query)
85
+ and read(id, range) methods and performs no network operations. Pass an explicit
86
+ package root when reading an isolated package; otherwise it uses its own package.
87
+
88
+ Contributors edit canonical code, guides and knowledge.json annotations. Build
89
+ regenerates content and hashes; stale/unmapped workflows, unknown imports,
90
+ duplicate IDs, broken guidance links and prerequisite cycles stop compilation.
91
+ The compatibility fixture records established public IDs. Growth tests exercise
92
+ 5,000 metadata entries, pagination, stale cursors, selected-content integrity and
93
+ host customization. Clean tarball and browser checks verify the consumer boundary.
94
+ None of these checks independently proves model routing accuracy, general
95
+ accessibility or visual quality.
@@ -0,0 +1,103 @@
1
+ # Using Flood with an agent
2
+
3
+ Start with the host's instructions, package.json, flood.json and installed
4
+ flood/DESIGN.md. Use matching package/CLI versions and declarations. A newer
5
+ website example does not add APIs to an older installation.
6
+
7
+ Version 0.2.3 includes the expanded skill, rules and reference bundle, including
8
+ spacing guidance. Existing projects keep their installed files; compare new
9
+ guidance before updating customized instructions.
10
+
11
+ Version 0.2.9 adds ten specialized routed skills for stabilizing and
12
+ composing the dark base. See [Skills](skills.md) for their applicability and full
13
+ sources. The website index is generated from the same bundle metadata rather
14
+ than a second handwritten skill catalog. Source additions do not update an
15
+ already installed package; use the guide set matching your installation.
16
+
17
+ Version 0.2.11 adds [versioned knowledge discovery](agent-knowledge.md):
18
+ info reports installation context, catalog discovers compact metadata, and read
19
+ loads a selected contract or workflow. The catalog includes typed recipes and
20
+ semantic token records. Unknown capabilities and version mismatches are explicit;
21
+ copied host guides remain project-owned.
22
+
23
+ For discovery, give an agent [flood.md/llms.txt](https://flood.md/llms.txt).
24
+ It identifies deployed status and entry points. Follow [installation](installation.md);
25
+ preview the matching CLI's init with --dry-run before applying it within the user's
26
+ scope. The CLI does not install an agent runtime or require a hosted Flood service.
27
+
28
+ ## Compose from primitives
29
+
30
+ Flood includes the [Flood composition skill](../packages/agent/references/flood-composition/SKILL.md).
31
+ The main Flood skill routes component, website and playground work to it. The
32
+ manifest installs the full skill under
33
+ `.agents/skills/flood-ui/references/flood-composition/SKILL.md`; it is loaded by
34
+ that router rather than relying on independent discovery of nested skills.
35
+ Existing installations must compare and merge new guidance deliberately.
36
+
37
+ Reuse the existing library component; fix the relationship in its proper owner.
38
+ If a reusable primitive is missing, build or extend it before the composition.
39
+ Do not replace StatusIndicator with custom text, hide its anatomy, or duplicate
40
+ a Badge/Progress/Dialog implementation just to make one layout fit.
41
+
42
+ ## Files and responsibilities
43
+
44
+ For reusable components, the composition skill also routes to
45
+ [component families](../packages/agent/references/component-families.md): choose
46
+ the closest existing anatomy and compare sizing, shape, nested insets and states
47
+ in the same scene. Flood's repository instructions require that same guide for
48
+ its own authors. Installed projects receive it through the matching manifest and
49
+ knowledge catalog; existing customized guides are not silently overwritten.
50
+
51
+ | Project file | For whom / when | Prerequisite | Source of truth | What to check |
52
+ | --- | --- | --- | --- | --- |
53
+ | flood.json | Developer / agent, setup or upgrade | Existing React project | Exact installed release, framework and paths | Matching CLI doctor |
54
+ | flood/DESIGN.md | Designer / developer / agent, every composition | Installed declarations | Version-matched UI contracts | Supported props and rendered states |
55
+ | .agents/skills/flood-ui/SKILL.md | Skill-aware client, Flood UI work | Project context | Short task router | Load only the relevant reference |
56
+ | references/routing.md in the skill folder | Human / agent, resolve ownership | Matching guide set | Responsibility and source matrix | Correct source and prerequisites |
57
+ | references/composition.md in the skill folder | Screen/form author | User content and installed APIs | Composition workflow | Intrinsic actions, responsive forms, close choice labels |
58
+ | references/spacing.md in the skill folder | Designer / developer / agent | Installed tokens and rendered host | Spacing and density decisions | Visible gaps, row pitch, wrapping and nonoverlapping touch targets |
59
+ | references/accessibility.md in the skill folder | Control author / reviewer | Runnable host | Interaction and perception | Names, keyboard, focus, forms and contrast context |
60
+ | references/customization.md in the skill folder | Theme author | Installed token manifest | Semantic override workflow | Resolved roles and affected states/surfaces |
61
+ | references/verification.md in the skill folder | Developer / reviewer, completion | Host checks | Evidence requirements | Commands, manual results and gaps |
62
+ | flood/rules.json | Human / agent / project tooling | Same bundle | Rule IDs, conditions, sources and checks | Evidence for each applicable rule |
63
+ | flood/manifest.json | Installer / reviewer | Matching package | Explicit source → project-path mapping | Complete files; existing files preserved |
64
+ | workflows.json in the skill folder | Agent / reviewer, task selection | Same installed bundle | Workflow applicability | Read relevant skills; applicability is not behavioral proof |
65
+
66
+ Manifest `entry` and rule `guide` paths are package-source paths. Resolve them
67
+ through `manifest.files`: each source maps to a target relative to the host
68
+ project root. `installedEntry` names the installed skill directly. Manifest
69
+ version and DESIGN header are checked by doctor alongside package alignment;
70
+ customized guide contents are preserved and must be merged deliberately.
71
+
72
+ The package publishes DESIGN.md, SKILL.md, rules.json, manifest.json and
73
+ references/*.md. The website exposes the same sources under /agent/.
74
+ The [routing reference](../packages/agent/references/routing.md) connects each
75
+ question with its governing source and verification method.
76
+
77
+ ## Use only the context needed
78
+
79
+ For a settings form, read DESIGN.md and SKILL.md, then composition/accessibility.
80
+ Consult installed declarations for actual Field/Select props and read only those
81
+ component pages. Before completion use verification. For a color-only change,
82
+ load customization and the relevant token roles; unrelated guides stay unloaded.
83
+
84
+ Clients supporting the skill-folder convention can discover it. Others can read
85
+ it explicitly or link it from existing instructions. The installer preserves
86
+ AGENTS.md; it does not configure clients or guarantee automatic discovery.
87
+
88
+ The rules index is data, not an executable policy engine. It cannot make an agent
89
+ obey guidance or certify accessibility. Host checks and Flood's repository
90
+ verification supply evidence. Doctor checks package alignment and expected regular
91
+ files; it does not parse CSS imports or assess visual quality/completed user flows.
92
+
93
+ ## Safe installation and upgrades
94
+
95
+ Init refuses existing owned files and linked destinations before npm runs, then
96
+ rechecks after installation. During upgrades compare new package sources with
97
+ installed copies, merge deliberately and retain host requirements. Do not delete
98
+ customized guides merely to make init succeed.
99
+
100
+ Import @flood-md/react/styles.css once and compose new dark interfaces in
101
+ FloodRoot. See [layout](layout.md), [components](components.md) and
102
+ [customization](theming.md). Flood guidance governs UI use; it grants no authority
103
+ to publish, delete data, transmit source or bypass the user's instructions.