@flood-md/agent 0.2.8 → 0.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/DESIGN.md +26 -4
  2. package/README.md +40 -1
  3. package/SKILL.md +46 -4
  4. package/dist/catalog.json +7136 -0
  5. package/dist/materials/component-accordion.md +42 -0
  6. package/dist/materials/component-alert-dialog.md +46 -0
  7. package/dist/materials/component-alert.md +41 -0
  8. package/dist/materials/component-aspect-ratio.md +36 -0
  9. package/dist/materials/component-avatar-group.md +39 -0
  10. package/dist/materials/component-avatar.md +40 -0
  11. package/dist/materials/component-badge.md +37 -0
  12. package/dist/materials/component-blockquote.md +35 -0
  13. package/dist/materials/component-breadcrumb.md +36 -0
  14. package/dist/materials/component-button-group.md +39 -0
  15. package/dist/materials/component-button.md +43 -0
  16. package/dist/materials/component-calendar.md +59 -0
  17. package/dist/materials/component-card.md +46 -0
  18. package/dist/materials/component-center.md +39 -0
  19. package/dist/materials/component-character-count.md +42 -0
  20. package/dist/materials/component-check-card.md +39 -0
  21. package/dist/materials/component-checkbox-group.md +48 -0
  22. package/dist/materials/component-checkbox.md +37 -0
  23. package/dist/materials/component-code-snippet.md +37 -0
  24. package/dist/materials/component-collapsible.md +40 -0
  25. package/dist/materials/component-color-picker.md +49 -0
  26. package/dist/materials/component-color-swatch.md +35 -0
  27. package/dist/materials/component-combobox.md +50 -0
  28. package/dist/materials/component-command-list.md +48 -0
  29. package/dist/materials/component-container.md +36 -0
  30. package/dist/materials/component-context-menu.md +43 -0
  31. package/dist/materials/component-copy-button.md +42 -0
  32. package/dist/materials/component-data-list-item.md +40 -0
  33. package/dist/materials/component-data-list.md +38 -0
  34. package/dist/materials/component-data-table.md +58 -0
  35. package/dist/materials/component-date-field.md +57 -0
  36. package/dist/materials/component-date-picker.md +66 -0
  37. package/dist/materials/component-date-range-field.md +62 -0
  38. package/dist/materials/component-date-range-picker.md +72 -0
  39. package/dist/materials/component-date-time-picker.md +60 -0
  40. package/dist/materials/component-date-time-range-picker.md +66 -0
  41. package/dist/materials/component-description-list.md +42 -0
  42. package/dist/materials/component-dialog.md +45 -0
  43. package/dist/materials/component-divider.md +37 -0
  44. package/dist/materials/component-drawer.md +50 -0
  45. package/dist/materials/component-dropzone.md +45 -0
  46. package/dist/materials/component-editable.md +57 -0
  47. package/dist/materials/component-empty-state.md +41 -0
  48. package/dist/materials/component-error-summary.md +40 -0
  49. package/dist/materials/component-field.md +46 -0
  50. package/dist/materials/component-fieldset.md +46 -0
  51. package/dist/materials/component-figure.md +36 -0
  52. package/dist/materials/component-file-input.md +45 -0
  53. package/dist/materials/component-file-item.md +48 -0
  54. package/dist/materials/component-file-list.md +39 -0
  55. package/dist/materials/component-file-meta.md +36 -0
  56. package/dist/materials/component-flood-root.md +33 -0
  57. package/dist/materials/component-grid.md +38 -0
  58. package/dist/materials/component-heading.md +38 -0
  59. package/dist/materials/component-hover-card.md +48 -0
  60. package/dist/materials/component-icon-button.md +41 -0
  61. package/dist/materials/component-icon-slot.md +37 -0
  62. package/dist/materials/component-image-preview.md +50 -0
  63. package/dist/materials/component-image.md +37 -0
  64. package/dist/materials/component-inline-code.md +36 -0
  65. package/dist/materials/component-inline.md +39 -0
  66. package/dist/materials/component-input-group.md +43 -0
  67. package/dist/materials/component-input.md +39 -0
  68. package/dist/materials/component-kbd.md +34 -0
  69. package/dist/materials/component-label.md +37 -0
  70. package/dist/materials/component-link.md +35 -0
  71. package/dist/materials/component-list-box.md +57 -0
  72. package/dist/materials/component-list.md +40 -0
  73. package/dist/materials/component-menu.md +54 -0
  74. package/dist/materials/component-meter.md +43 -0
  75. package/dist/materials/component-metric.md +39 -0
  76. package/dist/materials/component-multi-select.md +52 -0
  77. package/dist/materials/component-navigation-list.md +38 -0
  78. package/dist/materials/component-navigation-tree.md +43 -0
  79. package/dist/materials/component-number-input.md +47 -0
  80. package/dist/materials/component-pagination.md +44 -0
  81. package/dist/materials/component-password-input.md +43 -0
  82. package/dist/materials/component-pin-input.md +45 -0
  83. package/dist/materials/component-popover.md +47 -0
  84. package/dist/materials/component-progress.md +42 -0
  85. package/dist/materials/component-radio-card.md +43 -0
  86. package/dist/materials/component-radio-group.md +49 -0
  87. package/dist/materials/component-radio.md +39 -0
  88. package/dist/materials/component-range-calendar.md +58 -0
  89. package/dist/materials/component-rating.md +46 -0
  90. package/dist/materials/component-resizable-panels.md +48 -0
  91. package/dist/materials/component-scroll-area.md +42 -0
  92. package/dist/materials/component-search-input.md +40 -0
  93. package/dist/materials/component-section.md +42 -0
  94. package/dist/materials/component-segmented-control.md +51 -0
  95. package/dist/materials/component-select.md +45 -0
  96. package/dist/materials/component-skeleton.md +42 -0
  97. package/dist/materials/component-skip-link.md +37 -0
  98. package/dist/materials/component-slider.md +51 -0
  99. package/dist/materials/component-spinner.md +37 -0
  100. package/dist/materials/component-split.md +40 -0
  101. package/dist/materials/component-stack.md +37 -0
  102. package/dist/materials/component-status-indicator.md +38 -0
  103. package/dist/materials/component-steps.md +40 -0
  104. package/dist/materials/component-surface.md +37 -0
  105. package/dist/materials/component-switch.md +35 -0
  106. package/dist/materials/component-table.md +46 -0
  107. package/dist/materials/component-tabs.md +43 -0
  108. package/dist/materials/component-tag-input.md +46 -0
  109. package/dist/materials/component-tag.md +40 -0
  110. package/dist/materials/component-text.md +39 -0
  111. package/dist/materials/component-textarea.md +38 -0
  112. package/dist/materials/component-time-field.md +56 -0
  113. package/dist/materials/component-time-picker.md +60 -0
  114. package/dist/materials/component-timeline.md +38 -0
  115. package/dist/materials/component-toast-region.md +42 -0
  116. package/dist/materials/component-toggle-group.md +44 -0
  117. package/dist/materials/component-toggle.md +39 -0
  118. package/dist/materials/component-toolbar.md +42 -0
  119. package/dist/materials/component-tooltip.md +40 -0
  120. package/dist/materials/component-tree-select.md +56 -0
  121. package/dist/materials/component-tree.md +52 -0
  122. package/dist/materials/component-upload-item.md +52 -0
  123. package/dist/materials/component-upload-list.md +40 -0
  124. package/dist/materials/component-visually-hidden.md +37 -0
  125. package/dist/materials/guide-agent-knowledge.md +88 -0
  126. package/dist/materials/guide-agents.md +96 -0
  127. package/dist/materials/guide-faq.md +84 -0
  128. package/dist/materials/guide-foundations.md +232 -0
  129. package/dist/materials/guide-installation.md +79 -0
  130. package/dist/materials/guide-interface-content.md +76 -0
  131. package/dist/materials/guide-introduction.md +40 -0
  132. package/dist/materials/guide-layout.md +193 -0
  133. package/dist/materials/guide-privacy.md +23 -0
  134. package/dist/materials/guide-project-ui.md +127 -0
  135. package/dist/materials/guide-skills.md +108 -0
  136. package/dist/materials/guide-theming.md +73 -0
  137. package/dist/materials/recipe-command-palette.md +66 -0
  138. package/dist/materials/recipe-filter-bar.md +59 -0
  139. package/dist/materials/recipe-form-submission.md +39 -0
  140. package/dist/materials/recipe-grouped-form.md +66 -0
  141. package/dist/materials/recipe-select-all.md +31 -0
  142. package/dist/materials/recipe-split-button.md +26 -0
  143. package/dist/materials/recipe-table-bulk-actions.md +88 -0
  144. package/dist/materials/recipe-workspace-review.md +134 -0
  145. package/dist/materials/token-sys.color.accent.content.json +41 -0
  146. package/dist/materials/token-sys.color.action.danger.content.json +42 -0
  147. package/dist/materials/token-sys.color.action.ghost.content.json +41 -0
  148. package/dist/materials/token-sys.color.action.ghost.disabled-content.json +41 -0
  149. package/dist/materials/token-sys.color.action.ghost.disabled.json +41 -0
  150. package/dist/materials/token-sys.color.action.ghost.hover.json +41 -0
  151. package/dist/materials/token-sys.color.action.ghost.pressed.json +41 -0
  152. package/dist/materials/token-sys.color.action.ghost.rest.json +41 -0
  153. package/dist/materials/token-sys.color.action.on-surface.content.json +39 -0
  154. package/dist/materials/token-sys.color.action.on-surface.disabled-content.json +39 -0
  155. package/dist/materials/token-sys.color.action.on-surface.disabled.json +39 -0
  156. package/dist/materials/token-sys.color.action.on-surface.hover.json +39 -0
  157. package/dist/materials/token-sys.color.action.on-surface.pressed.json +39 -0
  158. package/dist/materials/token-sys.color.action.on-surface.rest.json +39 -0
  159. package/dist/materials/token-sys.color.action.primary.content.json +39 -0
  160. package/dist/materials/token-sys.color.action.primary.disabled-content.json +39 -0
  161. package/dist/materials/token-sys.color.action.primary.disabled.json +39 -0
  162. package/dist/materials/token-sys.color.action.primary.hover.json +39 -0
  163. package/dist/materials/token-sys.color.action.primary.pressed.json +39 -0
  164. package/dist/materials/token-sys.color.action.primary.rest.json +39 -0
  165. package/dist/materials/token-sys.color.action.subtle.content.json +39 -0
  166. package/dist/materials/token-sys.color.action.subtle.disabled-content.json +39 -0
  167. package/dist/materials/token-sys.color.action.subtle.disabled.json +39 -0
  168. package/dist/materials/token-sys.color.action.subtle.hover.json +39 -0
  169. package/dist/materials/token-sys.color.action.subtle.pressed.json +39 -0
  170. package/dist/materials/token-sys.color.action.subtle.rest.json +39 -0
  171. package/dist/materials/token-sys.color.border.decorative.json +42 -0
  172. package/dist/materials/token-sys.color.border.default.json +39 -0
  173. package/dist/materials/token-sys.color.border.floating.json +39 -0
  174. package/dist/materials/token-sys.color.border.strong.json +39 -0
  175. package/dist/materials/token-sys.color.content.default.json +41 -0
  176. package/dist/materials/token-sys.color.content.helper.json +39 -0
  177. package/dist/materials/token-sys.color.content.subtle.json +43 -0
  178. package/dist/materials/token-sys.color.divider.decorative.json +41 -0
  179. package/dist/materials/token-sys.color.feedback.error.json +39 -0
  180. package/dist/materials/token-sys.color.feedback.info.json +39 -0
  181. package/dist/materials/token-sys.color.feedback.success.json +39 -0
  182. package/dist/materials/token-sys.color.feedback.warning.json +39 -0
  183. package/dist/materials/token-sys.color.field.background.json +39 -0
  184. package/dist/materials/token-sys.color.field.border.json +39 -0
  185. package/dist/materials/token-sys.color.field.boundary.json +39 -0
  186. package/dist/materials/token-sys.color.field.content.json +39 -0
  187. package/dist/materials/token-sys.color.field.disabled-content.json +39 -0
  188. package/dist/materials/token-sys.color.field.disabled.json +39 -0
  189. package/dist/materials/token-sys.color.field.placeholder.json +39 -0
  190. package/dist/materials/token-sys.color.focus.ring.json +39 -0
  191. package/dist/materials/token-sys.color.indicator.accent.json +39 -0
  192. package/dist/materials/token-sys.color.indicator.fill.json +39 -0
  193. package/dist/materials/token-sys.color.indicator.track.json +39 -0
  194. package/dist/materials/token-sys.color.loading.placeholder.json +42 -0
  195. package/dist/materials/token-sys.color.scrollbar.thumb-hover.json +39 -0
  196. package/dist/materials/token-sys.color.scrollbar.thumb.json +39 -0
  197. package/dist/materials/token-sys.color.selection.background.json +39 -0
  198. package/dist/materials/token-sys.color.selection.content.json +39 -0
  199. package/dist/materials/token-sys.color.selection.floating.json +39 -0
  200. package/dist/materials/token-sys.color.shadow.floating.json +39 -0
  201. package/dist/materials/token-sys.color.surface.canvas.json +39 -0
  202. package/dist/materials/token-sys.color.surface.default.json +39 -0
  203. package/dist/materials/token-sys.color.surface.floating-translucent.json +39 -0
  204. package/dist/materials/token-sys.color.surface.floating.json +39 -0
  205. package/dist/materials/token-sys.color.surface.overlay.json +39 -0
  206. package/dist/materials/token-sys.color.surface.raised.json +39 -0
  207. package/dist/materials/token-sys.control.2xl.gap.json +34 -0
  208. package/dist/materials/token-sys.control.2xl.height.json +34 -0
  209. package/dist/materials/token-sys.control.2xl.icon-size.json +34 -0
  210. package/dist/materials/token-sys.control.2xl.line-height.json +31 -0
  211. package/dist/materials/token-sys.control.2xl.padding-inline.json +34 -0
  212. package/dist/materials/token-sys.control.2xl.text-size.json +34 -0
  213. package/dist/materials/token-sys.control.2xs.gap.json +34 -0
  214. package/dist/materials/token-sys.control.2xs.height.json +34 -0
  215. package/dist/materials/token-sys.control.2xs.icon-size.json +34 -0
  216. package/dist/materials/token-sys.control.2xs.line-height.json +31 -0
  217. package/dist/materials/token-sys.control.2xs.padding-inline.json +34 -0
  218. package/dist/materials/token-sys.control.2xs.text-size.json +34 -0
  219. package/dist/materials/token-sys.control.lg.gap.json +34 -0
  220. package/dist/materials/token-sys.control.lg.height.json +34 -0
  221. package/dist/materials/token-sys.control.lg.icon-size.json +34 -0
  222. package/dist/materials/token-sys.control.lg.line-height.json +31 -0
  223. package/dist/materials/token-sys.control.lg.padding-inline.json +34 -0
  224. package/dist/materials/token-sys.control.lg.text-size.json +34 -0
  225. package/dist/materials/token-sys.control.md.gap.json +34 -0
  226. package/dist/materials/token-sys.control.md.height.json +34 -0
  227. package/dist/materials/token-sys.control.md.icon-size.json +34 -0
  228. package/dist/materials/token-sys.control.md.line-height.json +31 -0
  229. package/dist/materials/token-sys.control.md.padding-inline.json +34 -0
  230. package/dist/materials/token-sys.control.md.text-size.json +34 -0
  231. package/dist/materials/token-sys.control.sm.gap.json +34 -0
  232. package/dist/materials/token-sys.control.sm.height.json +34 -0
  233. package/dist/materials/token-sys.control.sm.icon-size.json +34 -0
  234. package/dist/materials/token-sys.control.sm.line-height.json +31 -0
  235. package/dist/materials/token-sys.control.sm.padding-inline.json +34 -0
  236. package/dist/materials/token-sys.control.sm.text-size.json +34 -0
  237. package/dist/materials/token-sys.control.xl.gap.json +34 -0
  238. package/dist/materials/token-sys.control.xl.height.json +34 -0
  239. package/dist/materials/token-sys.control.xl.icon-size.json +34 -0
  240. package/dist/materials/token-sys.control.xl.line-height.json +31 -0
  241. package/dist/materials/token-sys.control.xl.padding-inline.json +34 -0
  242. package/dist/materials/token-sys.control.xl.text-size.json +34 -0
  243. package/dist/materials/token-sys.control.xs.gap.json +34 -0
  244. package/dist/materials/token-sys.control.xs.height.json +34 -0
  245. package/dist/materials/token-sys.control.xs.icon-size.json +34 -0
  246. package/dist/materials/token-sys.control.xs.line-height.json +31 -0
  247. package/dist/materials/token-sys.control.xs.padding-inline.json +34 -0
  248. package/dist/materials/token-sys.control.xs.text-size.json +34 -0
  249. package/dist/materials/token-sys.effect.floating.blur.json +34 -0
  250. package/dist/materials/token-sys.effect.floating.saturation.json +31 -0
  251. package/dist/materials/token-sys.effect.floating.shadow-blur.json +34 -0
  252. package/dist/materials/token-sys.effect.floating.shadow-offset.json +34 -0
  253. package/dist/materials/token-sys.focus.offset.json +34 -0
  254. package/dist/materials/token-sys.focus.width.json +34 -0
  255. package/dist/materials/token-sys.font.mono.json +36 -0
  256. package/dist/materials/token-sys.font.sans.json +35 -0
  257. package/dist/materials/token-sys.layer.base.json +31 -0
  258. package/dist/materials/token-sys.layer.modal.json +31 -0
  259. package/dist/materials/token-sys.layer.popover.json +31 -0
  260. package/dist/materials/token-sys.layer.sticky.json +31 -0
  261. package/dist/materials/token-sys.layer.toast.json +31 -0
  262. package/dist/materials/token-sys.motion.duration-fast.json +34 -0
  263. package/dist/materials/token-sys.motion.duration-normal.json +34 -0
  264. package/dist/materials/token-sys.motion.duration-reduced.json +34 -0
  265. package/dist/materials/token-sys.motion.easing.json +36 -0
  266. package/dist/materials/token-sys.radius.action.json +34 -0
  267. package/dist/materials/token-sys.radius.block.json +34 -0
  268. package/dist/materials/token-sys.radius.field.json +34 -0
  269. package/dist/materials/token-sys.radius.indicator.json +34 -0
  270. package/dist/materials/token-sys.radius.surface.json +34 -0
  271. package/dist/materials/token-sys.scrollbar.inset.json +34 -0
  272. package/dist/materials/token-sys.scrollbar.min-thumb.json +34 -0
  273. package/dist/materials/token-sys.scrollbar.size.json +34 -0
  274. package/dist/materials/token-sys.size.choice.json +34 -0
  275. package/dist/materials/token-sys.size.container.lg.json +37 -0
  276. package/dist/materials/token-sys.size.container.md.json +37 -0
  277. package/dist/materials/token-sys.size.container.sm.json +37 -0
  278. package/dist/materials/token-sys.size.grid.min-item.json +37 -0
  279. package/dist/materials/token-sys.size.indicator.lg.json +34 -0
  280. package/dist/materials/token-sys.size.indicator.md.json +34 -0
  281. package/dist/materials/token-sys.size.indicator.sm.json +34 -0
  282. package/dist/materials/token-sys.size.keycap.lg.json +34 -0
  283. package/dist/materials/token-sys.size.keycap.md.json +34 -0
  284. package/dist/materials/token-sys.size.keycap.sm.json +34 -0
  285. package/dist/materials/token-sys.size.switch-height.json +34 -0
  286. package/dist/materials/token-sys.size.switch-thumb.json +34 -0
  287. package/dist/materials/token-sys.size.switch-width.json +34 -0
  288. package/dist/materials/token-sys.size.touch.json +34 -0
  289. package/dist/materials/token-sys.space.0.json +34 -0
  290. package/dist/materials/token-sys.space.1.json +34 -0
  291. package/dist/materials/token-sys.space.12.json +34 -0
  292. package/dist/materials/token-sys.space.2.json +34 -0
  293. package/dist/materials/token-sys.space.3.json +34 -0
  294. package/dist/materials/token-sys.space.4.json +34 -0
  295. package/dist/materials/token-sys.space.6.json +34 -0
  296. package/dist/materials/token-sys.space.8.json +34 -0
  297. package/dist/materials/token-sys.stroke.width.json +34 -0
  298. package/dist/materials/token-sys.type.body.line-height.json +31 -0
  299. package/dist/materials/token-sys.type.body.size.json +34 -0
  300. package/dist/materials/token-sys.type.body.tracking.json +34 -0
  301. package/dist/materials/token-sys.type.body.weight.json +31 -0
  302. package/dist/materials/token-sys.type.compact.line-height.json +31 -0
  303. package/dist/materials/token-sys.type.compact.size.json +34 -0
  304. package/dist/materials/token-sys.type.compact.tracking.json +34 -0
  305. package/dist/materials/token-sys.type.compact.weight.json +31 -0
  306. package/dist/materials/token-sys.type.control.line-height.json +31 -0
  307. package/dist/materials/token-sys.type.control.size.json +34 -0
  308. package/dist/materials/token-sys.type.control.tracking.json +34 -0
  309. package/dist/materials/token-sys.type.control.weight.json +31 -0
  310. package/dist/materials/token-sys.type.dialog-title.line-height.json +33 -0
  311. package/dist/materials/token-sys.type.dialog-title.size.json +36 -0
  312. package/dist/materials/token-sys.type.dialog-title.tracking.json +36 -0
  313. package/dist/materials/token-sys.type.dialog-title.weight.json +33 -0
  314. package/dist/materials/token-sys.type.display.line-height.json +31 -0
  315. package/dist/materials/token-sys.type.display.size.json +34 -0
  316. package/dist/materials/token-sys.type.display.tracking.json +34 -0
  317. package/dist/materials/token-sys.type.display.weight.json +31 -0
  318. package/dist/materials/token-sys.type.field-label.line-height.json +33 -0
  319. package/dist/materials/token-sys.type.field-label.size.json +36 -0
  320. package/dist/materials/token-sys.type.field-label.tracking.json +36 -0
  321. package/dist/materials/token-sys.type.field-label.weight.json +33 -0
  322. package/dist/materials/token-sys.type.group-title.line-height.json +33 -0
  323. package/dist/materials/token-sys.type.group-title.size.json +36 -0
  324. package/dist/materials/token-sys.type.group-title.tracking.json +36 -0
  325. package/dist/materials/token-sys.type.group-title.weight.json +33 -0
  326. package/dist/materials/token-sys.type.helper.line-height.json +31 -0
  327. package/dist/materials/token-sys.type.helper.size.json +34 -0
  328. package/dist/materials/token-sys.type.helper.tracking.json +34 -0
  329. package/dist/materials/token-sys.type.helper.weight.json +31 -0
  330. package/dist/materials/token-sys.type.label.line-height.json +31 -0
  331. package/dist/materials/token-sys.type.label.size.json +34 -0
  332. package/dist/materials/token-sys.type.label.tracking.json +34 -0
  333. package/dist/materials/token-sys.type.label.weight.json +31 -0
  334. package/dist/materials/token-sys.type.large.line-height.json +31 -0
  335. package/dist/materials/token-sys.type.large.size.json +34 -0
  336. package/dist/materials/token-sys.type.large.tracking.json +34 -0
  337. package/dist/materials/token-sys.type.large.weight.json +31 -0
  338. package/dist/materials/token-sys.type.lead.line-height.json +31 -0
  339. package/dist/materials/token-sys.type.lead.size.json +34 -0
  340. package/dist/materials/token-sys.type.lead.tracking.json +34 -0
  341. package/dist/materials/token-sys.type.lead.weight.json +31 -0
  342. package/dist/materials/token-sys.type.page.line-height.json +31 -0
  343. package/dist/materials/token-sys.type.page.size.json +34 -0
  344. package/dist/materials/token-sys.type.page.tracking.json +34 -0
  345. package/dist/materials/token-sys.type.page.weight.json +31 -0
  346. package/dist/materials/token-sys.type.section.line-height.json +31 -0
  347. package/dist/materials/token-sys.type.section.size.json +34 -0
  348. package/dist/materials/token-sys.type.section.tracking.json +34 -0
  349. package/dist/materials/token-sys.type.section.weight.json +31 -0
  350. package/knowledge.json +409 -0
  351. package/lib/index.d.ts +33 -0
  352. package/lib/index.mjs +144 -0
  353. package/lib/inspect.d.ts +12 -0
  354. package/lib/inspect.mjs +187 -0
  355. package/manifest.json +91 -1
  356. package/package.json +9 -1
  357. package/references/flood-accessibility/SKILL.md +40 -0
  358. package/references/flood-composition/SKILL.md +30 -0
  359. package/references/flood-data-display/SKILL.md +69 -0
  360. package/references/flood-feedback/SKILL.md +58 -0
  361. package/references/flood-forms/SKILL.md +94 -0
  362. package/references/flood-foundations/SKILL.md +44 -0
  363. package/references/flood-hierarchy/SKILL.md +87 -0
  364. package/references/flood-interface-content/SKILL.md +142 -0
  365. package/references/flood-navigation/SKILL.md +35 -0
  366. package/references/flood-overlays/SKILL.md +52 -0
  367. package/references/flood-records/SKILL.md +108 -0
  368. package/references/flood-spacing/SKILL.md +62 -0
  369. package/references/flood-verification/SKILL.md +99 -0
  370. package/references/interface-content-examples.md +47 -0
  371. package/references/knowledge.md +49 -0
  372. package/references/record-decisions.md +25 -0
  373. package/references/rendered-review.md +97 -0
  374. package/references/routing.md +1 -0
  375. package/rules.json +454 -2
  376. package/workflows.json +152 -0
@@ -0,0 +1,79 @@
1
+ # Installation · 0.2.10
2
+
3
+ The commands below target version 0.2.10. Verify registry availability before installation; for local source evaluation, see the tarball instructions at the end of this guide.
4
+
5
+ Use Node.js 22.12 or newer and an existing npm-based React/Next.js project.
6
+ React 18.3/19 is supported; React 19 and Next.js App Router are integration targets.
7
+
8
+ ## Connect once, import by name
9
+
10
+ The base set ships in one package. Set it up once for your project, then use
11
+ named imports such as `import { Button, Input } from "@flood-md/react"`.
12
+ There is no per-component `add` command or source-copy registry. You do not
13
+ repeat installation when you start using another component.
14
+
15
+ ## Connect with the CLI
16
+
17
+ ```sh
18
+ npx @flood-md/cli@0.2.10 init --dry-run
19
+ npx @flood-md/cli@0.2.10 init
20
+ ```
21
+
22
+ The installer adds exact matching tokens, React and agent packages. It creates
23
+ `flood.json`, `flood/DESIGN.md` and `.agents/skills/flood-ui/SKILL.md`, preserves
24
+ host instructions and refuses existing files or linked destinations. It does
25
+ not modify application source. Import CSS once in the React entry or Next
26
+ `app/layout.tsx`, then wrap new UI in `FloodRoot`:
27
+
28
+ ```tsx
29
+ import "@flood-md/react/styles.css";
30
+ import { Button, FloodRoot } from "@flood-md/react";
31
+
32
+ export function App() {
33
+ return <FloodRoot><Button>Start something</Button></FloodRoot>;
34
+ }
35
+ ```
36
+
37
+ Use a client component for callbacks, state or Field's function child. See
38
+ [components](components.md) and the [base inventory](base-components.md).
39
+ No Tailwind configuration or font CDN is needed. The foundations profile is dark
40
+ only; legacy theme behavior remains available outside `FloodRoot`.
41
+
42
+ ```sh
43
+ npx @flood-md/cli@0.2.10 doctor
44
+ ```
45
+
46
+ Doctor checks package versions and guide presence, not stylesheet imports or
47
+ application behavior. If your agent does not discover the installed skill,
48
+ reference `flood/DESIGN.md` from its existing instructions.
49
+
50
+ ## Manual package installation
51
+
52
+ ```sh
53
+ npm install --save-exact @flood-md/tokens@0.2.10 @flood-md/react@0.2.10 @flood-md/agent@0.2.10
54
+ ```
55
+
56
+ Import the stylesheet and use `FloodRoot` as above. Manual installation does not
57
+ create the CLI's project configuration or copied instruction files; read the
58
+ matching agent package's guides directly or use CLI init in an unconfigured
59
+ project. All components ship together and are imported by name.
60
+
61
+ ## Updates from 0.1.1
62
+
63
+ Upgrade tokens, React and agent together to the same exact version. Existing
64
+ controls outside `FloodRoot` retain their earlier theme behavior. Adopt the new
65
+ dark recipes explicitly by adding `FloodRoot`; move customization to scoped
66
+ `--flood-sys-*` roles instead of assuming old variables change the new profile.
67
+
68
+ Compare the new package's agent guides with customized local copies before
69
+ updating them. Update `flood.json` after a successful migration and run the
70
+ matching CLI doctor. Do not rerun init to overwrite existing instructions.
71
+ Run the host build/tests and browser checks after upgrading.
72
+
73
+ ## Evaluate repository changes locally
74
+
75
+ For source development, run `npm ci` and `npm run build:packages`, then
76
+ `npm pack --workspace=@flood-md/tokens` (and likewise React/agent). Install the
77
+ three generated tarballs together using their local paths with
78
+ `npm install --save-exact`. This evaluates local source without implying that a
79
+ future version is already available from the registry.
@@ -0,0 +1,76 @@
1
+ # Interface content
2
+
3
+ Flood's interface-content workflow covers the information and wording in a UI:
4
+ labels, actions, hierarchy, hints, states and adaptation of reference content.
5
+ It is separate from typography sizing. Use it when introducing visible copy or
6
+ reviewing an existing interface; it does not authorize rewriting user documents.
7
+
8
+ ## Start with the task
9
+
10
+ Identify the user, their current task and the state they are in. Give each text
11
+ element a purpose: identify, distinguish, guide, explain a relevant consequence,
12
+ report a real state or support recovery. Keep, rewrite, move or remove it based
13
+ on that purpose. A component's optional description prop is not a requirement to
14
+ write a description.
15
+
16
+ An invoice list can simply be titled “Invoices”. A category label, the same noun
17
+ in a heading and a sentence describing the obvious workflow need separate reasons
18
+ to remain. Necessary breadcrumbs, section headings and the printed document's
19
+ own title still have valid jobs; there is no universal maximum heading count.
20
+
21
+ During completion, review each supporting sentence in screen order and record
22
+ its new information. If it only narrates the obvious next action, leave the
23
+ optional slot empty. The optional @flood-md/agent/inspect browser observer can
24
+ inventory copy and geometry; it cannot judge whether a sentence belongs in the
25
+ product. See [rendered review](/agent/references/rendered-review.md).
26
+
27
+ ## Concise content keeps necessary detail
28
+
29
+ Remove routine narration, decorative assurances and implementation facts that do
30
+ not affect the task. An ordinary preview does not need to announce its embedded
31
+ fonts. An export-format choice may need to explain selectable text. A field may
32
+ need a non-obvious unit or constraint. A destructive action may need a clear
33
+ consequence. Do not hide essential information just to reduce visible text.
34
+
35
+ Name actions by their actual result and preserve accessible names. An error
36
+ should support recovery; success must match a completed operation. Local
37
+ validation does not establish expert review. A PDF export is not a restorable
38
+ backup of editable records. Sample-data distinctions belong where they prevent
39
+ a real misunderstanding, rather than repeated throughout an established test host.
40
+
41
+ ## Learn from references in context
42
+
43
+ Transfer the question a pattern answers, then use the host's actual objects,
44
+ actions and states. A bill-processing product's approval or payment stages do
45
+ not become capabilities of an invoice generator because their layout is useful.
46
+ Its promotional language is not a vocabulary for the host's working interface.
47
+
48
+ See the full [interface content skill](/agent/references/flood-interface-content/SKILL.md)
49
+ and [decision examples](/agent/references/interface-content-examples.md). The
50
+ matching installed CLI can discover and read workflow:interface-content. This
51
+ additive guidance is part of 0.2.10; installed projects
52
+ keep their current versions and customized guide copies.
53
+
54
+ ## Review the result
55
+
56
+ Read the composed screen in task order. Check visible and accessible copy,
57
+ repeated meaning across regions and the state after an action. Remove empty
58
+ wrappers or reserved gaps when a subtitle or banner is removed. Explain important
59
+ editorial decisions in the review, rather than adding those explanations to the UI.
60
+ Phrase scans and word counts cannot establish content quality or agent compliance.
61
+
62
+ Further reading: [Fluent content design](https://fluent2.microsoft.design/content-design)
63
+ relates content to user intent and timing; [DWP hint guidance](https://design-system.dwp.gov.uk/guidance/hint-text)
64
+ asks whether a hint is needed; [GOV.UK error messages](https://design-system.service.gov.uk/components/error-message/)
65
+ connect failure to recovery. These inform the workflow; their service-specific
66
+ wording and punctuation conventions are not universal Flood rules.
67
+
68
+ ## Prototype context
69
+
70
+ An explicitly requested local prototype does not require a permanent Demo or
71
+ Prototype badge in the shell. Keep provenance and implementation limits in its
72
+ README/test handoff. A visible distinction still belongs beside an affected
73
+ record, choice or action when it changes interpretation, such as sample records
74
+ mixed with real data or an existing simulation/live choice. Preserve accurate
75
+ action and media names; removing a badge does not imply real connectivity or
76
+ delivery. Draft, Pending and Offline remain meaningful record states.
@@ -0,0 +1,40 @@
1
+ # Flood documentation
2
+
3
+ Flood provides original React components, semantic CSS tokens and versioned
4
+ instructions for coding agents. Start with the guide for your task:
5
+
6
+ The website renders these guides at [/docs](https://flood.md/docs) and provides
7
+ live examples at [/components](https://flood.md/components). Edit the Markdown
8
+ here and review changes through a pull request; the next website build includes
9
+ them without a separate content service.
10
+
11
+ | Guide | What it covers |
12
+ | --- | --- |
13
+ | [Skills](skills.md) | Task-focused composition and verification workflows |
14
+ | [Interface content](interface-content.md) | Editorial decisions, purposeful copy and contextual reference adaptation |
15
+ | [Installation](installation.md) | React, Next.js, CLI setup and manual installation |
16
+ | [Project UI](project-ui.md) | Optional semantic @/ui/button imports in your application |
17
+ | [Layout](layout.md) | Intrinsic actions, responsive forms, choice sizing, gaps and hierarchy |
18
+ | [Components](components.md) | Available controls, props and form composition |
19
+ | [Base component inventory](base-components.md) | Available primitives and controls in the base release |
20
+ | [Customization](theming.md) | Scoped dark foundations overrides and legacy theme boundaries |
21
+ | [Foundations](foundations.md) | Typed semantic tokens and neutral dark profile for 0.2.10 |
22
+ | [Agents](agents.md) | Installing and using the matching agent instructions |
23
+ | [Agent knowledge](agent-knowledge.md) | Versioned discovery, selected reads and preserved project guides |
24
+ | [FAQ](faq.md) | Compatibility, customization, updates and common problems |
25
+ | [Command palette](recipes/command-palette.md) | Compose Dialog and CommandList with host-owned actions |
26
+ | [Table bulk actions](recipes/table-bulk-actions.md) | Controlled cross-page selection and local confirmation |
27
+ | [Grouped form](recipes/grouped-form.md) | Shared tracks, semantic groups and optional fields |
28
+
29
+ ## Versions
30
+
31
+ This branch documents **version 0.2.10**; source availability does
32
+ not establish npm publication. Use matching exact versions of the Flood packages. Documentation on `main` can describe later work; the
33
+ [release tags](https://github.com/tillwithered/flood.md/releases) preserve the
34
+ source and docs for each release. Installed `flood/DESIGN.md` takes precedence
35
+ over website guidance when working in an existing project.
36
+
37
+ ## Contributing
38
+
39
+ See [CONTRIBUTING.md](../CONTRIBUTING.md), [architecture](architecture.md),
40
+ [releases](releases.md) and the [security policy](../SECURITY.md).
@@ -0,0 +1,193 @@
1
+ # Layout and composition
2
+
3
+ Flood provides controls and small layout primitives. The application owns page
4
+ width, grouping and responsive composition. Use the rules below inside
5
+ `FloodRoot` instead of fixing each screen with unrelated spacing values.
6
+
7
+ ## Separate the three kinds of size
8
+
9
+ A control's `size` or `controlSize` selects its minimum height, typography and
10
+ internal padding. Its width is a separate layout decision. The root font size
11
+ is a user or host preference, not a density setting.
12
+
13
+ - Buttons normally fit their content. Put sibling actions in `Inline`; do not
14
+ make every action fill a form or grid cell. Flood 0.2.3 styles keep Button
15
+ width intrinsic and cap it at the available width.
16
+ - Input, Textarea and Select fill the width their parent assigns. Give their
17
+ form or Field a responsive width; do not size each field independently.
18
+ - Checkbox and Radio indicators keep a `1.125rem` square footprint and do not
19
+ shrink in a flex row. A long label wraps beside the indicator rather than
20
+ compressing it. Switch has its own track geometry.
21
+
22
+ For a deliberate full-width action, opt in at the application boundary:
23
+
24
+ ```tsx
25
+ <Button style={{ inlineSize: "100%" }}>Continue</Button>
26
+ ```
27
+
28
+ Use this for a specific layout, not as a global rule for all buttons. A long
29
+ translation may increase a control's height; do not hide overflowing labels.
30
+
31
+ ## Keep labels close and groups distinct
32
+
33
+ The indicator and its visible label are one choice control: their gap is
34
+ `.5rem` (8px at the reference root). Do not add `justify-content: space-between`
35
+ or a large spacer between a checkbox/radio/switch and its own label.
36
+
37
+ The gap between separate choices should usually be `1rem` (16px at the reference
38
+ root). These two gaps serve different purposes. Preserve `Inline`'s default
39
+ `gap="2"` for compatibility; choose `gap="4"` explicitly for a choice group:
40
+
41
+ ```tsx
42
+ <Inline gap="4" align="center">
43
+ <Checkbox label="Product updates" name="updates" value="yes" />
44
+ <Checkbox label="Weekly summary" name="summary" value="yes" />
45
+ </Inline>
46
+ ```
47
+
48
+ Keep row alignment centered. Do not align native indicators to the font baseline
49
+ or allow grid stretch to change their shape. A choice's complete label row is a
50
+ click target; its visible glyph and its target area are different dimensions.
51
+ Compact neighboring targets must remain distinct and usable.
52
+
53
+ For a radio group, the host provides a real fieldset, legend and shared name:
54
+
55
+ ```tsx
56
+ <fieldset className="preference-group">
57
+ <legend>Visibility</legend>
58
+ <Inline gap="4" align="center">
59
+ <Radio label="Private" name="visibility" value="private" defaultChecked />
60
+ <Radio label="Public" name="visibility" value="public" />
61
+ </Inline>
62
+ </fieldset>
63
+ ```
64
+
65
+ ```css
66
+ .preference-group {
67
+ min-inline-size: 0;
68
+ margin: 0;
69
+ padding: 0;
70
+ border: 0;
71
+ }
72
+ .preference-group legend {
73
+ margin-block-end: var(--flood-sys-space-2);
74
+ }
75
+ ```
76
+
77
+ ## Give forms a responsive parent width
78
+
79
+ Use rem for the preferred width and percentages for the available space. A
80
+ `26rem` form can become narrower on a small viewport and follows root scaling:
81
+
82
+ ```css
83
+ .profile-form {
84
+ inline-size: min(100%, 26rem);
85
+ min-inline-size: 0;
86
+ }
87
+ ```
88
+
89
+ Keep the width on the actual form/field container. Adding a wrapper changes
90
+ which element a direct-child selector reaches; check the rendered field after
91
+ introducing a scope, Surface or grid cell. Avoid a narrow intrinsic wrapper
92
+ around a full-width textarea.
93
+
94
+ ```tsx
95
+ "use client";
96
+
97
+ import { Button, Field, FloodRoot, Heading, Inline, Input, Stack, Text } from "@flood-md/react";
98
+
99
+ export function ProfileForm() {
100
+ return (
101
+ <FloodRoot>
102
+ <form className="profile-form" onSubmit={(event) => event.preventDefault()}>
103
+ <Stack gap="6">
104
+ <Stack gap="2">
105
+ <Heading level={1}>Profile</Heading>
106
+ <Text as="p" size="compact" tone="subtle">How your team sees you.</Text>
107
+ </Stack>
108
+ <Field label="Display name" hint="Visible to your team" required>
109
+ {(control) => <Input {...control} name="displayName" autoComplete="name" />}
110
+ </Field>
111
+ <Inline gap="2" align="center">
112
+ <Button type="submit">Save changes</Button>
113
+ <Button type="reset" variant="subtle">Reset</Button>
114
+ </Inline>
115
+ </Stack>
116
+ </form>
117
+ </FloodRoot>
118
+ );
119
+ }
120
+ ```
121
+
122
+ Import the package stylesheet once at the application entry. In Next.js, keep
123
+ Field's function child and event handlers in a client component. See
124
+ [Installation](installation.md) and [Components](components.md).
125
+
126
+ ## Establish hierarchy before adding containers
127
+
128
+ Use Heading for section semantics, compact body text for supporting explanations,
129
+ Field for the visible label and associations, and helper text for supplementary
130
+ details. Text's label appearance alone does not create a form label.
131
+
132
+ Start with `Stack gap="4"` within a group and `gap="6"` between related groups;
133
+ increase separation for independent sections. Use `Inline` with wrapping for
134
+ actions. Add Surface for an actual surface boundary, not around every field.
135
+ Prominence comes from solid/subtle variants, not from stretching one button.
136
+
137
+ For a responsive form grid, let CSS determine how many columns fit:
138
+
139
+ ```css
140
+ .profile-grid {
141
+ display: grid;
142
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
143
+ gap: var(--flood-sys-space-4);
144
+ }
145
+ ```
146
+
147
+ Do not impose `html { font-size: 16px }`, shrink type to hide overflow, or stretch
148
+ the indicator to make a row fit. Check narrow widths, root text scaling, user
149
+ text-spacing overrides and long translations. Preserve visible focus, native
150
+ form semantics, forced colors and reduced motion while changing composition.
151
+
152
+ ## Coordinate nested corners only where shapes share an inset
153
+
154
+ A menu's selected/hovered row follows the same outer contour as its popup. For
155
+ uniform padding, derive the inner radius from the outer border-box radius:
156
+
157
+ `inner radius = max(0, outer radius - padding - border width)`.
158
+
159
+ The Select popup uses its field-radius role, space-1 padding and stroke-width
160
+ role. At a 16px root these are 16px, 4px and 1px, so the option radius is 11px.
161
+ The relation follows root scaling and semantic overrides; do not reuse the
162
+ independent checkbox indicator radius for menu rows.
163
+
164
+ The recipe is local to the popup, not a global rule for every descendant.
165
+ Independent Buttons inside Surface or CodeSnippet keep their own action radius.
166
+ Pill tracks/thumbs and segmented controls already derive their curves from their
167
+ actual heights; do not subtract arbitrary padding from an effectively infinite
168
+ pill token. For unequal insets, derive each corner/axis from its actual inset.
169
+
170
+ ## Source additions and compatibility
171
+
172
+ Select's custom single-choice popup and the refined intrinsic sizing/custom choice appearance are
173
+ included in 0.2.3; older immutable npm releases are unchanged. Use the guide matching your installed declarations. The examples with
174
+ Input, Button, Inline and native form props also work without Select; wrapping
175
+ actions in Inline provides an explicit composition boundary for earlier installs.
176
+
177
+ ## Form hierarchy and rhythm
178
+
179
+ Use a task title once. Keep optional group titles absent when field labels already
180
+ explain a short form. For a necessary independent group use Fieldset with
181
+ legendSize="section"; the default label-sized legend remains appropriate for
182
+ choices. It preserves native fieldset semantics rather than adding a heading.
183
+
184
+ Named fields keep a .25rem inner label/control gap. For ordinary desktop forms,
185
+ start with Stack gap="6" between field rows and gap="8" between independent groups
186
+ or before actions. Dialog already supplies its body inset. Choice lists, compact
187
+ filters and table editors have different spacing budgets.
188
+
189
+ Place four related short fields in one Grid columns={2} so their row edges align.
190
+ A short numeric value alone does not justify a narrower column in only one row;
191
+ long text fields can use a separate full-width row. Verify actual control edges
192
+ with long labels, optional content and 24px root text, not just Grid boxes.
193
+ See [Skills](skills.md) for the shipped hierarchy workflow.
@@ -0,0 +1,23 @@
1
+ # Website privacy
2
+
3
+ The footer on flood.md shows an approximate all-time count of unique browsers
4
+ since the counter was enabled. It is not a count of people or page views.
5
+
6
+ The website stores one random identifier in your browser's local storage under
7
+ `flood.visitor.v1`. It sends this identifier to a same-origin endpoint to avoid
8
+ counting repeat visits. The counter database stores only a SHA-256 hash of the
9
+ identifier, the aggregate total and the date counting began. It does not store
10
+ IP addresses, page history, referrers, account information or device fingerprints.
11
+ Hashed browser identifiers are retained for deduplication while the counter runs.
12
+
13
+ Clearing website storage, using private browsing or another browser/device can
14
+ count as another visitor. Known automated user agents are excluded, but the number
15
+ is not audited analytics or an abuse-proof measurement. If local storage is
16
+ unavailable, the site displays the total without registering a visitor. Requests
17
+ that only read HTML or Markdown do not increment the counter.
18
+
19
+ The hosting provider can maintain its own operational request logs. This counter
20
+ does not control those logs. No third-party analytics script is loaded.
21
+
22
+ This feature is specific to flood.md. Installing Flood's npm packages does not
23
+ add visitor tracking to your project.
@@ -0,0 +1,127 @@
1
+ # Project UI imports
2
+
3
+ Flood works with direct named package imports. If you prefer project-owned paths,
4
+ add a thin UI boundary such as `@/ui/button`:
5
+
6
+ ```tsx
7
+ import { Button } from "@/ui/button";
8
+ ```
9
+
10
+ The file name describes the UI responsibility. The package implementation remains
11
+ behind that boundary, so most application files do not need its vendor name.
12
+ This is optional. Both import styles use the same Flood component and receive
13
+ the same installed package updates.
14
+
15
+ ## Connect the package once
16
+
17
+ Follow [Installation](installation.md) for your React/TypeScript or Next.js project.
18
+ All base components ship together in `@flood-md/react`; there is no per-component
19
+ add command or component source-copy registry. Importing another component does
20
+ not require another installation.
21
+
22
+ The CLI creates package configuration and agent instructions. It does not create
23
+ these adapters, rewrite application imports or overwrite existing source files.
24
+ Create and review the small files below in your own project. Preserve any existing
25
+ UI wrappers and aliases instead of replacing them blindly.
26
+
27
+ ## Configure the project alias
28
+
29
+ For the `src/` structure used in this guide, merge the following into your existing
30
+ `tsconfig.json`. Keep the other compiler options and existing path mappings.
31
+
32
+ ```json
33
+ {
34
+ "compilerOptions": {
35
+ "paths": {
36
+ "@/*": ["./src/*"]
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ Configure the same `@` alias in your bundler if it does not read TypeScript paths.
43
+ Next.js supports [TypeScript import aliases](https://nextjs.org/docs/app/getting-started/installation).
44
+ If your application uses another source folder or an existing alias, use the
45
+ matching paths consistently; adding this snippet alone does not move files.
46
+
47
+ ## Add thin adapters
48
+
49
+ Create `src/ui/button.ts`:
50
+
51
+ ```ts
52
+ export { Button } from "@flood-md/react";
53
+ ```
54
+
55
+ The value re-export already preserves the component's inferred props and ref
56
+ types. If your application also imports the named public props type, expose it
57
+ explicitly from the same file:
58
+
59
+ ```ts
60
+ export { Button } from "@flood-md/react";
61
+ export type { ButtonProps } from "@flood-md/react";
62
+ ```
63
+
64
+ Create `src/ui/flood-root.ts` for the scope used by this example:
65
+
66
+ ```ts
67
+ export { FloodRoot } from "@flood-md/react";
68
+ ```
69
+
70
+ Other adapters follow the explicit component name and slug shown in the catalog:
71
+ `Input` uses `src/ui/input.ts`, `IconButton` uses `src/ui/icon-button.ts`.
72
+ Create only the files your application uses. Adapters contain re-exports; they
73
+ do not copy Flood's component implementation into your project.
74
+
75
+ ## Import styles once
76
+
77
+ Create `src/ui/styles.css`:
78
+
79
+ ```css
80
+ @import "@flood-md/react/styles.css";
81
+ ```
82
+
83
+ Import that file once at the React application entry. In Next.js App Router, place
84
+ the import in `src/app/layout.tsx` (or `app/layout.tsx` if that is your structure):
85
+
86
+ ```tsx
87
+ import "@/ui/styles.css";
88
+ ```
89
+
90
+ Do not import both the adapter stylesheet and the package stylesheet throughout
91
+ individual component files. `FloodRoot` still explicitly selects neutral/dark;
92
+ the path name does not change the theme or styling contract.
93
+
94
+ ## Use the project imports
95
+
96
+ ```tsx
97
+ "use client";
98
+
99
+ import { Button } from "@/ui/button";
100
+ import { FloodRoot } from "@/ui/flood-root";
101
+
102
+ export function SaveAction() {
103
+ return (
104
+ <FloodRoot>
105
+ <Button onClick={() => console.log("Saved locally")}>Save</Button>
106
+ </FloodRoot>
107
+ );
108
+ }
109
+ ```
110
+
111
+ Use a client host component for state, callbacks or Field's function child.
112
+ The wrappers do not replace React, remove Next.js client boundaries or make the
113
+ components framework-independent. React 18.3/19 and Next.js support remain as
114
+ described in [Architecture](architecture.md).
115
+
116
+ ## Updates and customization
117
+
118
+ Keep the installed Flood packages on the same exact version and follow their
119
+ matching release guidance. A re-export automatically uses the installed version;
120
+ upgrades still require application builds and behavior checks. The adapter path
121
+ does not automatically update packages, migrate renamed props or repair breaking
122
+ changes.
123
+
124
+ Add project defaults in the adapter later if needed, while preserving accessible
125
+ names, native props and refs. This creates a deliberate application policy layer;
126
+ it should not become a second copy of the design system. Keep styles and component
127
+ API expectations aligned with the package version your project actually installs.
@@ -0,0 +1,108 @@
1
+ # Skills
2
+
3
+ Flood's agent package includes a lightweight `flood-ui` entry that routes work to
4
+ specialized skills. Start with the [agent guide](agents.md), the host instructions
5
+ and matching installed declarations. Load the skills relevant to the current task,
6
+ not the entire library of instructions.
7
+
8
+ [Interface content](interface-content.md) covers labels, wording and information
9
+ hierarchy. Its workflow removes unnecessary narration while keeping meaningful
10
+ constraints, consequences, recovery and accessible names.
11
+
12
+ The hierarchy workflow covers task/group/field roles, common control tracks and
13
+ relationship spacing. It complements editorial decisions and the spacing workflow;
14
+ it does not prescribe one screen template.
15
+
16
+ The records workflow covers list/detail information selection, stable scan
17
+ positions and the distinction between category, lifecycle state, priority and
18
+ time. It includes examples where those attributes should remain visible, rather
19
+ than a universal rule to hide metadata or limit badge counts.
20
+
21
+ Use [Agent knowledge](agent-knowledge.md) to discover these workflows by semantic
22
+ group and read the installed version. The catalog separates prerequisites from
23
+ optional related components; grouping is not a request to load every skill.
24
+
25
+ ## Foundations
26
+
27
+ Semantic colors, type, geometry, spacing and scoped customization.
28
+
29
+ | Workflow | Use when | Skill source |
30
+ | --- | --- | --- |
31
+ | flood-hierarchy | Establish visual hierarchy, shared form tracks and vertical rhythm in Flood screens, forms and overlays. Use when titles, groups and labels compete or a composed interface feels flat; not a fixed page template. | [Read skill](/agent/references/flood-hierarchy/SKILL.md) |
32
+ | flood-spacing | Diagnose Flood spacing, density, nested radii and alignment from rendered geometry. Use for large gaps, crowded rows or shifting compositions. | [Read skill](/agent/references/flood-spacing/SKILL.md) |
33
+ | flood-foundations | Apply Flood's existing dark semantic surfaces, typography, control sizing and icon geometry. Use for foundation consistency or token-consumer review. | [Read skill](/agent/references/flood-foundations/SKILL.md) |
34
+
35
+ ## Composition
36
+
37
+ Layout and task recipes assembled from existing primitives.
38
+
39
+ | Workflow | Use when | Skill source |
40
+ | --- | --- | --- |
41
+ | flood-composition | Build or review Flood UI from existing library primitives before adding composites. Use for component, website, playground and host-interface work, especially when a layout fix risks replacing a reusable element with custom markup. | [Read skill](/agent/references/flood-composition/SKILL.md) |
42
+ | flood-interface-content | Write or review Flood interface content with editorial decisions about copy, labels, hierarchy and states. Use for visible UI text and reference adaptation; not typography styling, campaigns or rewriting user documents. | [Read skill](/agent/references/flood-interface-content/SKILL.md) |
43
+ | flood-hierarchy | Establish visual hierarchy, shared form tracks and vertical rhythm in Flood screens, forms and overlays. Use when titles, groups and labels compete or a composed interface feels flat; not a fixed page template. | [Read skill](/agent/references/flood-hierarchy/SKILL.md) |
44
+ | flood-spacing | Diagnose Flood spacing, density, nested radii and alignment from rendered geometry. Use for large gaps, crowded rows or shifting compositions. | [Read skill](/agent/references/flood-spacing/SKILL.md) |
45
+ | flood-records | Compose record lists and detail views with a clear metadata hierarchy. Use for crowded status/category/priority/date rows, drifting scan positions or deciding between a list and a comparison table. | [Read skill](/agent/references/flood-records/SKILL.md) |
46
+
47
+ ## Interaction
48
+
49
+ Forms, selection, navigation and transient layers.
50
+
51
+ | Workflow | Use when | Skill source |
52
+ | --- | --- | --- |
53
+ | flood-forms | Compose and verify Flood form ownership, labels, values, validation and reset. Use for fields, selection controls or composed form inputs. | [Read skill](/agent/references/flood-forms/SKILL.md) |
54
+ | flood-overlays | Compose or review Flood dialogs, drawers, popovers, menus and anchored selection surfaces. Use for popup geometry, nested dismissal or focus ownership. | [Read skill](/agent/references/flood-overlays/SKILL.md) |
55
+ | flood-navigation | Choose and verify Flood links, tabs, disclosure and hierarchical navigation. Use when destination, selection and expansion semantics can be confused. | [Read skill](/agent/references/flood-navigation/SKILL.md) |
56
+
57
+ ## Data & feedback
58
+
59
+ Structured content, files and honest operation states.
60
+
61
+ | Workflow | Use when | Skill source |
62
+ | --- | --- | --- |
63
+ | flood-data-display | Assemble Flood tables, lists, cards and file records with long or changing data. Use for content hierarchy, overflow, row actions and data-state composition. | [Read skill](/agent/references/flood-data-display/SKILL.md) |
64
+ | flood-records | Compose record lists and detail views with a clear metadata hierarchy. Use for crowded status/category/priority/date rows, drifting scan positions or deciding between a list and a comparison table. | [Read skill](/agent/references/flood-records/SKILL.md) |
65
+ | flood-feedback | Choose Flood status, progress, alert, loading and empty-state feedback with honest operation state. Use for meaningful messages and announcement ownership. | [Read skill](/agent/references/flood-feedback/SKILL.md) |
66
+
67
+ ## Quality
68
+
69
+ Accessibility, evidence and regression checks.
70
+
71
+ | Workflow | Use when | Skill source |
72
+ | --- | --- | --- |
73
+ | flood-interface-content | Write or review Flood interface content with editorial decisions about copy, labels, hierarchy and states. Use for visible UI text and reference adaptation; not typography styling, campaigns or rewriting user documents. | [Read skill](/agent/references/flood-interface-content/SKILL.md) |
74
+ | flood-accessibility | Review Flood interface names, keyboard flow, focus, perception and reflow in the actual host. Use for interaction or accessibility acceptance. | [Read skill](/agent/references/flood-accessibility/SKILL.md) |
75
+ | flood-verification | Verify Flood component or composed-interface changes against applicable contracts and actual evidence. Use for stabilization, regression or completion review. | [Read skill](/agent/references/flood-verification/SKILL.md) |
76
+
77
+ See [Workspace review](/docs/recipes/workspace-review) for a runnable form and file
78
+ drawer assembled with these workflows. Its source, ownership choices and host
79
+ checks are documented together.
80
+
81
+ [Table bulk actions](/docs/recipes/table-bulk-actions) demonstrates controlled
82
+ cross-page selection, protected rows and an explicit confirmation using existing
83
+ Flood primitives. Its operation changes only the local in-memory example.
84
+
85
+ These skills use the existing dark base. They help apply and verify component
86
+ contracts; they do not imply new themes, animations, unavailable APIs or automatic
87
+ agent compliance. The component-family index describes applicability, not a test
88
+ report or an accessibility certification.
89
+
90
+ ## Use a skill
91
+
92
+ The matching CLI installs the full sources beneath
93
+ `.agents/skills/flood-ui/references/`. The root `flood-ui` router links the relevant
94
+ workflow. Independent automatic discovery of nested skill directories is not
95
+ assumed; an agent can also read the selected installed `SKILL.md` explicitly.
96
+
97
+ The same versioned sources are served under `/agent/`. Raw skill links above are
98
+ readable Markdown and can be saved directly. Existing projects should compare
99
+ and merge newer guidance rather than overwrite customized instruction files.
100
+
101
+ For example, a settings form needs composition and forms, with spacing when
102
+ geometry is being tuned. A drawer with a selection popup additionally needs the
103
+ overlay workflow. Before handing off, use verification and report actual checks,
104
+ failures and any behavior that remains unverified.
105
+
106
+ The shared [rules index](/agent/rules.json) provides stable rule IDs and observable
107
+ checks; the [workflow index](/agent/workflows.json) describes routing. Neither is
108
+ an executable policy engine or authority to change external systems.