@flowstack-ui/agent-tools 0.1.3 → 0.1.5

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 (196) hide show
  1. package/.codex-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/README.md +1 -1
  4. package/package.json +2 -2
  5. package/public/index.json +618 -555
  6. package/public/llms.txt +2 -2
  7. package/public/packages/atom/{0.24.0 → 0.25.1}/components/accordion.txt +1 -1
  8. package/public/packages/atom/{0.24.0 → 0.25.1}/components/alert-dialog.txt +1 -1
  9. package/public/packages/atom/{0.24.0 → 0.25.1}/components/app-bar.txt +1 -1
  10. package/public/packages/atom/{0.24.0 → 0.25.1}/components/aspect-ratio.txt +1 -1
  11. package/public/packages/atom/{0.24.0 → 0.25.1}/components/avatar.txt +1 -1
  12. package/public/packages/atom/{0.24.0 → 0.25.1}/components/badge.txt +1 -1
  13. package/public/packages/atom/{0.24.0 → 0.25.1}/components/bottom-navigation.txt +1 -1
  14. package/public/packages/atom/{0.24.0 → 0.25.1}/components/breadcrumb.txt +1 -1
  15. package/public/packages/atom/{0.24.0 → 0.25.1}/components/button.txt +1 -1
  16. package/public/packages/atom/{0.24.0 → 0.25.1}/components/carousel.txt +1 -1
  17. package/public/packages/atom/{0.24.0 → 0.25.1}/components/checkbox-group.txt +1 -1
  18. package/public/packages/atom/{0.24.0 → 0.25.1}/components/checkbox.txt +1 -1
  19. package/public/packages/atom/{0.24.0 → 0.25.1}/components/clipboard.txt +1 -1
  20. package/public/packages/atom/{0.24.0 → 0.25.1}/components/collapsible.txt +1 -1
  21. package/public/packages/atom/{0.24.0 → 0.25.1}/components/color-picker.txt +1 -1
  22. package/public/packages/atom/{0.24.0 → 0.25.1}/components/combobox.txt +1 -1
  23. package/public/packages/atom/{0.24.0 → 0.25.1}/components/context-menu.txt +1 -1
  24. package/public/packages/atom/{0.24.0 → 0.25.1}/components/data-grid.txt +1 -1
  25. package/public/packages/atom/{0.24.0 → 0.25.1}/components/dialog.txt +1 -1
  26. package/public/packages/atom/{0.24.0 → 0.25.1}/components/direction.txt +1 -1
  27. package/public/packages/atom/{0.24.0 → 0.25.1}/components/divider.txt +1 -1
  28. package/public/packages/atom/{0.24.0 → 0.25.1}/components/drag-drop.txt +1 -1
  29. package/public/packages/atom/{0.24.0 → 0.25.1}/components/drawer.txt +1 -1
  30. package/public/packages/atom/{0.24.0 → 0.25.1}/components/dropdown-menu.txt +1 -1
  31. package/public/packages/atom/{0.24.0 → 0.25.1}/components/feed.txt +1 -1
  32. package/public/packages/atom/{0.24.0 → 0.25.1}/components/field.txt +1 -1
  33. package/public/packages/atom/{0.24.0 → 0.25.1}/components/fieldset.txt +1 -1
  34. package/public/packages/atom/{0.24.0 → 0.25.1}/components/file-upload.txt +1 -1
  35. package/public/packages/atom/{0.24.0 → 0.25.1}/components/form.txt +1 -1
  36. package/public/packages/atom/0.25.1/components/highlight.txt +125 -0
  37. package/public/packages/atom/{0.24.0 → 0.25.1}/components/hover-card.txt +1 -1
  38. package/public/packages/atom/{0.24.0 → 0.25.1}/components/image.txt +1 -1
  39. package/public/packages/atom/{0.24.0 → 0.25.1}/components/input.txt +1 -1
  40. package/public/packages/atom/{0.24.0 → 0.25.1}/components/label.txt +1 -1
  41. package/public/packages/atom/{0.24.0 → 0.25.1}/components/link.txt +1 -1
  42. package/public/packages/atom/{0.24.0 → 0.25.1}/components/list.txt +1 -1
  43. package/public/packages/atom/{0.24.0 → 0.25.1}/components/listbox.txt +1 -1
  44. package/public/packages/atom/{0.24.0 → 0.25.1}/components/menu.txt +1 -1
  45. package/public/packages/atom/{0.24.0 → 0.25.1}/components/menubar.txt +1 -1
  46. package/public/packages/atom/{0.24.0 → 0.25.1}/components/modal.txt +1 -1
  47. package/public/packages/atom/{0.24.0 → 0.25.1}/components/multi-select.txt +1 -1
  48. package/public/packages/atom/{0.24.0 → 0.25.1}/components/nav-list.txt +1 -1
  49. package/public/packages/atom/{0.24.0 → 0.25.1}/components/navigation-menu.txt +1 -1
  50. package/public/packages/atom/{0.24.0 → 0.25.1}/components/number-input.txt +1 -1
  51. package/public/packages/atom/{0.24.0 → 0.25.1}/components/otp-field.txt +1 -1
  52. package/public/packages/atom/{0.24.0 → 0.25.1}/components/pagination.txt +1 -1
  53. package/public/packages/atom/{0.24.0 → 0.25.1}/components/password-toggle-field.txt +1 -1
  54. package/public/packages/atom/{0.24.0 → 0.25.1}/components/popover.txt +1 -1
  55. package/public/packages/atom/{0.24.0 → 0.25.1}/components/pressable.txt +1 -1
  56. package/public/packages/atom/{0.24.0 → 0.25.1}/components/progress.txt +1 -1
  57. package/public/packages/atom/{0.24.0 → 0.25.1}/components/radio-group.txt +1 -1
  58. package/public/packages/atom/{0.24.0 → 0.25.1}/components/rating.txt +1 -1
  59. package/public/packages/atom/{0.24.0 → 0.25.1}/components/reorder.txt +1 -1
  60. package/public/packages/atom/{0.24.0 → 0.25.1}/components/scroll-area.txt +1 -1
  61. package/public/packages/atom/{0.24.0 → 0.25.1}/components/select.txt +1 -1
  62. package/public/packages/atom/{0.24.0 → 0.25.1}/components/sidebar.txt +1 -1
  63. package/public/packages/atom/{0.24.0 → 0.25.1}/components/skip-link.txt +1 -1
  64. package/public/packages/atom/{0.24.0 → 0.25.1}/components/slider.txt +1 -1
  65. package/public/packages/atom/{0.24.0 → 0.25.1}/components/swipeable-item.txt +1 -1
  66. package/public/packages/atom/{0.24.0 → 0.25.1}/components/switch.txt +1 -1
  67. package/public/packages/atom/{0.24.0 → 0.25.1}/components/table.txt +1 -1
  68. package/public/packages/atom/{0.24.0 → 0.25.1}/components/tabs.txt +1 -1
  69. package/public/packages/atom/{0.24.0 → 0.25.1}/components/textarea.txt +1 -1
  70. package/public/packages/atom/{0.24.0 → 0.25.1}/components/toast.txt +1 -1
  71. package/public/packages/atom/{0.24.0 → 0.25.1}/components/toggle-group.txt +1 -1
  72. package/public/packages/atom/{0.24.0 → 0.25.1}/components/toggle.txt +1 -1
  73. package/public/packages/atom/{0.24.0 → 0.25.1}/components/toolbar.txt +1 -1
  74. package/public/packages/atom/{0.24.0 → 0.25.1}/components/tooltip.txt +1 -1
  75. package/public/packages/atom/{0.24.0 → 0.25.1}/components/tree-grid.txt +1 -1
  76. package/public/packages/atom/{0.24.0 → 0.25.1}/components/tree.txt +1 -1
  77. package/public/packages/atom/{0.24.0 → 0.25.1}/components/visually-hidden.txt +1 -1
  78. package/public/packages/atom/{0.24.0 → 0.25.1}/docs/guides/agent-knowledge.txt +1 -1
  79. package/public/packages/atom/{0.24.0 → 0.25.1}/docs/guides/getting-started.txt +1 -1
  80. package/public/packages/atom/{0.24.0 → 0.25.1}/docs/guides/imports.txt +1 -1
  81. package/public/packages/atom/{0.24.0 → 0.25.1}/docs/guides/public-api.txt +1 -1
  82. package/public/packages/atom/{0.24.0 → 0.25.1}/guides/behavior-composition.txt +1 -1
  83. package/public/packages/atom/{0.24.0 → 0.25.1}/guides/layer-selection.txt +19 -1
  84. package/public/packages/atom/0.25.1/index.txt +90 -0
  85. package/public/packages/brick/{0.1.11 → 0.1.12}/components/accordion.txt +1 -1
  86. package/public/packages/brick/{0.1.11 → 0.1.12}/components/alert-dialog.txt +1 -1
  87. package/public/packages/brick/{0.1.11 → 0.1.12}/components/app-bar.txt +1 -1
  88. package/public/packages/brick/{0.1.11 → 0.1.12}/components/appearance.txt +1 -1
  89. package/public/packages/brick/{0.1.11 → 0.1.12}/components/aspect-ratio.txt +1 -1
  90. package/public/packages/brick/{0.1.11 → 0.1.12}/components/avatar.txt +1 -1
  91. package/public/packages/brick/{0.1.11 → 0.1.12}/components/badge.txt +1 -1
  92. package/public/packages/brick/{0.1.11 → 0.1.12}/components/bleed.txt +1 -1
  93. package/public/packages/brick/0.1.12/components/blockquote.txt +121 -0
  94. package/public/packages/brick/{0.1.11 → 0.1.12}/components/bottom-navigation.txt +1 -1
  95. package/public/packages/brick/{0.1.11 → 0.1.12}/components/breadcrumb.txt +1 -1
  96. package/public/packages/brick/{0.1.11 → 0.1.12}/components/button.txt +1 -1
  97. package/public/packages/brick/{0.1.11 → 0.1.12}/components/card.txt +1 -1
  98. package/public/packages/brick/{0.1.11 → 0.1.12}/components/carousel.txt +1 -1
  99. package/public/packages/brick/{0.1.11 → 0.1.12}/components/checkbox-group.txt +1 -1
  100. package/public/packages/brick/{0.1.11 → 0.1.12}/components/checkbox.txt +1 -1
  101. package/public/packages/brick/{0.1.11 → 0.1.12}/components/chip.txt +1 -1
  102. package/public/packages/brick/{0.1.11 → 0.1.12}/components/code-block.txt +30 -9
  103. package/public/packages/brick/{0.1.11 → 0.1.12}/components/code.txt +1 -1
  104. package/public/packages/brick/{0.1.11 → 0.1.12}/components/collapsible.txt +1 -1
  105. package/public/packages/brick/{0.1.11 → 0.1.12}/components/color-picker.txt +1 -1
  106. package/public/packages/brick/{0.1.11 → 0.1.12}/components/color-swatch.txt +1 -1
  107. package/public/packages/brick/{0.1.11 → 0.1.12}/components/combobox.txt +1 -1
  108. package/public/packages/brick/{0.1.11 → 0.1.12}/components/container.txt +1 -1
  109. package/public/packages/brick/{0.1.11 → 0.1.12}/components/context-menu.txt +1 -1
  110. package/public/packages/brick/{0.1.11 → 0.1.12}/components/data-grid.txt +1 -1
  111. package/public/packages/brick/{0.1.11 → 0.1.12}/components/data-list.txt +1 -1
  112. package/public/packages/brick/{0.1.11 → 0.1.12}/components/dialog.txt +1 -1
  113. package/public/packages/brick/{0.1.11 → 0.1.12}/components/divider.txt +1 -1
  114. package/public/packages/brick/{0.1.11 → 0.1.12}/components/drawer.txt +1 -1
  115. package/public/packages/brick/{0.1.11 → 0.1.12}/components/dropdown-menu.txt +1 -1
  116. package/public/packages/brick/0.1.12/components/em.txt +107 -0
  117. package/public/packages/brick/{0.1.11 → 0.1.12}/components/feed.txt +1 -1
  118. package/public/packages/brick/{0.1.11 → 0.1.12}/components/field.txt +1 -1
  119. package/public/packages/brick/{0.1.11 → 0.1.12}/components/fieldset.txt +1 -1
  120. package/public/packages/brick/{0.1.11 → 0.1.12}/components/file-upload.txt +1 -1
  121. package/public/packages/brick/{0.1.11 → 0.1.12}/components/form.txt +1 -1
  122. package/public/packages/brick/{0.1.11 → 0.1.12}/components/frame.txt +1 -1
  123. package/public/packages/brick/{0.1.11 → 0.1.12}/components/grid.txt +1 -1
  124. package/public/packages/brick/{0.1.11 → 0.1.12}/components/group.txt +1 -1
  125. package/public/packages/brick/{0.1.11 → 0.1.12}/components/hide.txt +1 -1
  126. package/public/packages/brick/0.1.12/components/highlight.txt +127 -0
  127. package/public/packages/brick/{0.1.11 → 0.1.12}/components/hover-card.txt +1 -1
  128. package/public/packages/brick/{0.1.11 → 0.1.12}/components/icon-button.txt +1 -1
  129. package/public/packages/brick/{0.1.11 → 0.1.12}/components/icon.txt +1 -1
  130. package/public/packages/brick/{0.1.11 → 0.1.12}/components/image.txt +1 -1
  131. package/public/packages/brick/{0.1.11 → 0.1.12}/components/input.txt +1 -1
  132. package/public/packages/brick/0.1.12/components/kbd.txt +113 -0
  133. package/public/packages/brick/{0.1.11 → 0.1.12}/components/link-box.txt +1 -1
  134. package/public/packages/brick/{0.1.11 → 0.1.12}/components/link.txt +1 -1
  135. package/public/packages/brick/{0.1.11 → 0.1.12}/components/list.txt +1 -1
  136. package/public/packages/brick/0.1.12/components/mark.txt +105 -0
  137. package/public/packages/brick/{0.1.11 → 0.1.12}/components/menubar.txt +1 -1
  138. package/public/packages/brick/{0.1.11 → 0.1.12}/components/multi-select.txt +1 -1
  139. package/public/packages/brick/{0.1.11 → 0.1.12}/components/nav-list.txt +1 -1
  140. package/public/packages/brick/{0.1.11 → 0.1.12}/components/navigation-menu.txt +1 -1
  141. package/public/packages/brick/{0.1.11 → 0.1.12}/components/notification-badge.txt +1 -1
  142. package/public/packages/brick/{0.1.11 → 0.1.12}/components/number-input.txt +1 -1
  143. package/public/packages/brick/{0.1.11 → 0.1.12}/components/otp-field.txt +1 -1
  144. package/public/packages/brick/{0.1.11 → 0.1.12}/components/pagination.txt +1 -1
  145. package/public/packages/brick/{0.1.11 → 0.1.12}/components/password-toggle-field.txt +1 -1
  146. package/public/packages/brick/{0.1.11 → 0.1.12}/components/popover.txt +1 -1
  147. package/public/packages/brick/{0.1.11 → 0.1.12}/components/progress-circle.txt +1 -1
  148. package/public/packages/brick/{0.1.11 → 0.1.12}/components/progress.txt +1 -1
  149. package/public/packages/brick/0.1.12/components/prose.txt +143 -0
  150. package/public/packages/brick/{0.1.11 → 0.1.12}/components/radio-group.txt +1 -1
  151. package/public/packages/brick/{0.1.11 → 0.1.12}/components/rating.txt +1 -1
  152. package/public/packages/brick/{0.1.11 → 0.1.12}/components/reorderable-list.txt +1 -1
  153. package/public/packages/brick/{0.1.11 → 0.1.12}/components/scroll-area.txt +1 -1
  154. package/public/packages/brick/{0.1.11 → 0.1.12}/components/section.txt +1 -1
  155. package/public/packages/brick/{0.1.11 → 0.1.12}/components/segment-group.txt +1 -1
  156. package/public/packages/brick/{0.1.11 → 0.1.12}/components/select.txt +1 -1
  157. package/public/packages/brick/{0.1.11 → 0.1.12}/components/show.txt +1 -1
  158. package/public/packages/brick/{0.1.11 → 0.1.12}/components/sidebar.txt +1 -1
  159. package/public/packages/brick/{0.1.11 → 0.1.12}/components/skeleton.txt +1 -1
  160. package/public/packages/brick/{0.1.11 → 0.1.12}/components/skip-link.txt +1 -1
  161. package/public/packages/brick/{0.1.11 → 0.1.12}/components/slider.txt +1 -1
  162. package/public/packages/brick/{0.1.11 → 0.1.12}/components/stack.txt +1 -1
  163. package/public/packages/brick/{0.1.11 → 0.1.12}/components/status.txt +1 -1
  164. package/public/packages/brick/{0.1.11 → 0.1.12}/components/surface.txt +1 -1
  165. package/public/packages/brick/{0.1.11 → 0.1.12}/components/swipeable-item.txt +1 -1
  166. package/public/packages/brick/{0.1.11 → 0.1.12}/components/switch.txt +1 -1
  167. package/public/packages/brick/{0.1.11 → 0.1.12}/components/table.txt +1 -1
  168. package/public/packages/brick/{0.1.11 → 0.1.12}/components/tabs.txt +1 -1
  169. package/public/packages/brick/{0.1.11 → 0.1.12}/components/text.txt +1 -1
  170. package/public/packages/brick/{0.1.11 → 0.1.12}/components/textarea.txt +1 -1
  171. package/public/packages/brick/{0.1.11 → 0.1.12}/components/toast.txt +1 -1
  172. package/public/packages/brick/{0.1.11 → 0.1.12}/components/toggle-group.txt +1 -1
  173. package/public/packages/brick/{0.1.11 → 0.1.12}/components/toggle.txt +1 -1
  174. package/public/packages/brick/{0.1.11 → 0.1.12}/components/toolbar.txt +1 -1
  175. package/public/packages/brick/{0.1.11 → 0.1.12}/components/tooltip.txt +1 -1
  176. package/public/packages/brick/{0.1.11 → 0.1.12}/components/tree-grid.txt +1 -1
  177. package/public/packages/brick/{0.1.11 → 0.1.12}/components/tree.txt +1 -1
  178. package/public/packages/brick/{0.1.11 → 0.1.12}/components/visually-hidden.txt +1 -1
  179. package/public/packages/brick/{0.1.11 → 0.1.12}/components/z-stack.txt +1 -1
  180. package/public/packages/brick/{0.1.11 → 0.1.12}/docs/guides/agent-knowledge.txt +1 -1
  181. package/public/packages/brick/{0.1.11 → 0.1.12}/docs/guides/appearance-and-tokens.txt +1 -1
  182. package/public/packages/brick/{0.1.11 → 0.1.12}/docs/guides/browser-support.txt +1 -1
  183. package/public/packages/brick/{0.1.11 → 0.1.12}/docs/guides/control-sizing.txt +1 -1
  184. package/public/packages/brick/{0.1.11 → 0.1.12}/docs/guides/installation.txt +1 -1
  185. package/public/packages/brick/{0.1.11 → 0.1.12}/docs/guides/theme-contract.txt +1 -1
  186. package/public/packages/brick/{0.1.11 → 0.1.12}/guides/interface-composition.txt +20 -10
  187. package/public/packages/brick/{0.1.11 → 0.1.12}/guides/layer-selection.txt +138 -8
  188. package/public/packages/brick/0.1.12/index.txt +116 -0
  189. package/public/tasks/data.txt +24 -24
  190. package/public/tasks/forms.txt +50 -50
  191. package/public/tasks/layout.txt +22 -22
  192. package/public/tasks/navigation.txt +36 -36
  193. package/public/tasks/overlays.txt +24 -24
  194. package/public/tasks/theming.txt +2 -2
  195. package/public/packages/atom/0.24.0/index.txt +0 -89
  196. package/public/packages/brick/0.1.11/index.txt +0 -110
@@ -1,6 +1,6 @@
1
1
  # Code Block
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: code-block
6
6
 
@@ -23,32 +23,37 @@ Present preserved multi-line technical source with native scrolling, explicit me
23
23
 
24
24
  - Pass the exact plain-text source to Root value, then place Content inside Root and give focusable Content a specific accessible label.
25
25
  - Author Header, Title, Language, Actions, CopyTrigger, CopyStatus, and CopyIndicator only when the interface needs those optional parts.
26
- - For syntax highlighting, generate trusted React token nodes outside Brick and pass them to Content while keeping Root value identical to the plain text that must be copied.
27
- - Give the Code Block a bounded parent when vertical page or panel layout requires a fixed scrolling region; Content owns the code's horizontal overflow.
26
+ - For syntax highlighting, pass a synchronous adapter or trusted React token nodes to Content while keeping Root value identical to the plain text that must be copied.
27
+ - Use Line for authored line numbers, highlighting, focus, additions, and removals; metadata remains independent so one line can carry more than one relevant state.
28
+ - Use Content maxLines for a bounded scroll region. For expansion, put bounded Content in CollapsePreview, unbounded Content in CollapseContent, and author CollapseTrigger so Brick Collapsible owns the real disclosure relationship and lifecycle.
28
29
 
29
30
  ## Rules
30
31
 
31
32
  - **MUST:** Keep Root value authoritative and exactly aligned with rendered highlighted content so copy behavior never depends on rendered textContent.
32
- - **MUST:** Keep tokenization, language loading, and syntax palettes in a consumer adapter; Brick accepts trusted React nodes and does not bundle a highlighter or unsafe HTML path.
33
+ - **MUST:** Keep tokenization, language loading, and syntax palettes in a pure synchronous consumer adapter; Brick accepts trusted React nodes and does not bundle a highlighter or unsafe HTML path.
33
34
  - **MUST:** Let Content own canonical pre, code, focus, and horizontal scrolling instead of rebuilding them with a separate ScrollArea or native pre element.
34
35
  - **MUST:** Give every focusable Content region a specific aria-label or aria-labelledby, especially when several examples share one page.
36
+ - **MUST:** Author Line metadata from the authoritative source or trusted adapter output; do not infer diffs, focus, or highlighting from visual tokens.
37
+ - **MUST:** Keep standalone maxLines content reachable through its focusable viewport; for expansion, pair CollapsePreview and CollapseContent with an accessible CollapseTrigger so only the current source view is exposed.
35
38
  - **MUST:** Load styles.css or core.css plus code-block.css and its documented component dependencies.
36
39
 
37
40
  ## Common mistakes
38
41
 
39
42
  - **Avoid:** Rendering highlighted HTML with dangerouslySetInnerHTML, copying from token text, or nesting another pre and ScrollArea inside Content. **Instead:** Render trusted React token spans, preserve the original string in Root value, and let Content own the canonical code viewport.
40
43
  - **Avoid:** Adding a header, language label, copy action, or status region merely because those parts exist. **Instead:** Author only the optional anatomy required by the surrounding interface.
44
+ - **Avoid:** Clipping a long code block with application CSS and no reachable overflow or expansion control. **Instead:** Use Content maxLines for bounded scrolling or compose CollapsePreview, CollapseContent, and CollapseTrigger for an accessible full-source path.
41
45
 
42
46
  ## Validation checklist
43
47
 
44
48
  - Confirm the rendered tokens and copied plain text match exactly, unsafe HTML is absent, and copy success, failure, concurrency, and status wording remain truthful when copy anatomy is present.
45
- - Check keyboard focus, uniquely named overflow landmarks, long-line scrolling or wrapping, mobile text sizing, zoom, selection, RTL/LTR, light and dark syntax contrast, and CSS delivery.
49
+ - Check keyboard focus, uniquely named overflow landmarks, line metadata, bounded scrolling or collapse expansion, long-line scrolling or wrapping, mobile text sizing, zoom, selection, RTL/LTR, light and dark syntax contrast, and CSS delivery.
46
50
 
47
51
  ## Related guidance
48
52
 
49
53
  - `code`
50
54
  - `scroll-area`
51
55
  - `button`
56
+ - `collapsible`
52
57
  - `tabs`
53
58
  - `interface-composition`
54
59
 
@@ -79,8 +84,9 @@ Present preserved multi-line technical source with native scrolling, explicit me
79
84
  "composition": [
80
85
  "Pass the exact plain-text source to Root value, then place Content inside Root and give focusable Content a specific accessible label.",
81
86
  "Author Header, Title, Language, Actions, CopyTrigger, CopyStatus, and CopyIndicator only when the interface needs those optional parts.",
82
- "For syntax highlighting, generate trusted React token nodes outside Brick and pass them to Content while keeping Root value identical to the plain text that must be copied.",
83
- "Give the Code Block a bounded parent when vertical page or panel layout requires a fixed scrolling region; Content owns the code's horizontal overflow."
87
+ "For syntax highlighting, pass a synchronous adapter or trusted React token nodes to Content while keeping Root value identical to the plain text that must be copied.",
88
+ "Use Line for authored line numbers, highlighting, focus, additions, and removals; metadata remains independent so one line can carry more than one relevant state.",
89
+ "Use Content maxLines for a bounded scroll region. For expansion, put bounded Content in CollapsePreview, unbounded Content in CollapseContent, and author CollapseTrigger so Brick Collapsible owns the real disclosure relationship and lifecycle."
84
90
  ],
85
91
  "rules": [
86
92
  {
@@ -91,7 +97,7 @@ Present preserved multi-line technical source with native scrolling, explicit me
91
97
  {
92
98
  "id": "code-block-highlighting-owner",
93
99
  "level": "must",
94
- "statement": "Keep tokenization, language loading, and syntax palettes in a consumer adapter; Brick accepts trusted React nodes and does not bundle a highlighter or unsafe HTML path."
100
+ "statement": "Keep tokenization, language loading, and syntax palettes in a pure synchronous consumer adapter; Brick accepts trusted React nodes and does not bundle a highlighter or unsafe HTML path."
95
101
  },
96
102
  {
97
103
  "id": "code-block-scroll-owner",
@@ -103,6 +109,16 @@ Present preserved multi-line technical source with native scrolling, explicit me
103
109
  "level": "must",
104
110
  "statement": "Give every focusable Content region a specific aria-label or aria-labelledby, especially when several examples share one page."
105
111
  },
112
+ {
113
+ "id": "code-block-line-metadata",
114
+ "level": "must",
115
+ "statement": "Author Line metadata from the authoritative source or trusted adapter output; do not infer diffs, focus, or highlighting from visual tokens."
116
+ },
117
+ {
118
+ "id": "code-block-bounded-access",
119
+ "level": "must",
120
+ "statement": "Keep standalone maxLines content reachable through its focusable viewport; for expansion, pair CollapsePreview and CollapseContent with an accessible CollapseTrigger so only the current source view is exposed."
121
+ },
106
122
  {
107
123
  "id": "code-block-css",
108
124
  "level": "must",
@@ -117,16 +133,21 @@ Present preserved multi-line technical source with native scrolling, explicit me
117
133
  {
118
134
  "mistake": "Adding a header, language label, copy action, or status region merely because those parts exist.",
119
135
  "correction": "Author only the optional anatomy required by the surrounding interface."
136
+ },
137
+ {
138
+ "mistake": "Clipping a long code block with application CSS and no reachable overflow or expansion control.",
139
+ "correction": "Use Content maxLines for bounded scrolling or compose CollapsePreview, CollapseContent, and CollapseTrigger for an accessible full-source path."
120
140
  }
121
141
  ],
122
142
  "validation": [
123
143
  "Confirm the rendered tokens and copied plain text match exactly, unsafe HTML is absent, and copy success, failure, concurrency, and status wording remain truthful when copy anatomy is present.",
124
- "Check keyboard focus, uniquely named overflow landmarks, long-line scrolling or wrapping, mobile text sizing, zoom, selection, RTL/LTR, light and dark syntax contrast, and CSS delivery."
144
+ "Check keyboard focus, uniquely named overflow landmarks, line metadata, bounded scrolling or collapse expansion, long-line scrolling or wrapping, mobile text sizing, zoom, selection, RTL/LTR, light and dark syntax contrast, and CSS delivery."
125
145
  ],
126
146
  "related": [
127
147
  "code",
128
148
  "scroll-area",
129
149
  "button",
150
+ "collapsible",
130
151
  "tabs",
131
152
  "interface-composition"
132
153
  ]
@@ -1,6 +1,6 @@
1
1
  # Code
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: code
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Collapsible
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: collapsible
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Color Picker
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: color-picker
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Color Swatch
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: color-swatch
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Combobox
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: combobox
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Container
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: container
6
6
 
@@ -1,6 +1,6 @@
1
1
  # ContextMenu
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: context-menu
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Data Grid
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: data-grid
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Data List
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: data-list
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Dialog
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: dialog
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Divider
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: divider
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Drawer
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: drawer
6
6
 
@@ -1,6 +1,6 @@
1
1
  # DropdownMenu
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: dropdown-menu
6
6
 
@@ -0,0 +1,107 @@
1
+ # Em
2
+
3
+ Source: @flowstack-ui/brick@0.1.12
4
+ Kind: component
5
+ ID: em
6
+
7
+ # Em agent guide
8
+
9
+ ## Purpose
10
+
11
+ Apply native stress emphasis while preserving the surrounding Brick typography and foreground.
12
+
13
+ ## Use when
14
+
15
+ - Words in a sentence need semantic stress emphasis that changes the meaning or cadence when spoken.
16
+
17
+ ## Choose something else when
18
+
19
+ - Text only needs an italic visual treatment without stress emphasis. Use a deliberate application-owned visual recipe.
20
+ - Text needs importance rather than stress emphasis. Use native strong inside the surrounding text owner.
21
+
22
+ ## Required composition
23
+
24
+ - Keep Em inside the Text, heading, link, or component content owner whose sentence it completes.
25
+
26
+ ## Rules
27
+
28
+ - **MUST:** Use Em only for native stress emphasis and preserve its one em host; do not select it merely for italic paint.
29
+ - **MUST:** Let Em inherit the surrounding typography and foreground rather than introducing a separate size, tone, or weight recipe.
30
+ - **MUST:** Load styles.css or core.css plus em.css.
31
+
32
+ ## Common mistakes
33
+
34
+ - **Avoid:** Using Em as a decorative italic label or replacing a sentence-level text owner with Em. **Instead:** Keep Em inside meaningful surrounding copy and use it only when stress emphasis is semantically intended.
35
+
36
+ ## Validation checklist
37
+
38
+ - Confirm one native em element, inherited metrics and foreground, readable forced colors, normal selection and copy, and no tab stop or role.
39
+ - Check nested sentence flow, localization, zoom, RTL, and CSS delivery.
40
+
41
+ ## Related guidance
42
+
43
+ - `text`
44
+ - `link`
45
+ - `interface-composition`
46
+
47
+ ## Machine record
48
+
49
+ ```json
50
+ {
51
+ "schema": "flowstack.agent-component.v1",
52
+ "id": "em",
53
+ "name": "Em",
54
+ "package": "@flowstack-ui/brick",
55
+ "layer": "brick",
56
+ "kind": "component",
57
+ "purpose": "Apply native stress emphasis while preserving the surrounding Brick typography and foreground.",
58
+ "useWhen": [
59
+ "Words in a sentence need semantic stress emphasis that changes the meaning or cadence when spoken."
60
+ ],
61
+ "avoidWhen": [
62
+ {
63
+ "condition": "Text only needs an italic visual treatment without stress emphasis.",
64
+ "useInstead": "a deliberate application-owned visual recipe"
65
+ },
66
+ {
67
+ "condition": "Text needs importance rather than stress emphasis.",
68
+ "useInstead": "native strong inside the surrounding text owner"
69
+ }
70
+ ],
71
+ "composition": [
72
+ "Keep Em inside the Text, heading, link, or component content owner whose sentence it completes."
73
+ ],
74
+ "rules": [
75
+ {
76
+ "id": "em-native-semantics",
77
+ "level": "must",
78
+ "statement": "Use Em only for native stress emphasis and preserve its one em host; do not select it merely for italic paint."
79
+ },
80
+ {
81
+ "id": "em-inheritance",
82
+ "level": "must",
83
+ "statement": "Let Em inherit the surrounding typography and foreground rather than introducing a separate size, tone, or weight recipe."
84
+ },
85
+ {
86
+ "id": "em-css",
87
+ "level": "must",
88
+ "statement": "Load styles.css or core.css plus em.css."
89
+ }
90
+ ],
91
+ "commonMistakes": [
92
+ {
93
+ "mistake": "Using Em as a decorative italic label or replacing a sentence-level text owner with Em.",
94
+ "correction": "Keep Em inside meaningful surrounding copy and use it only when stress emphasis is semantically intended."
95
+ }
96
+ ],
97
+ "validation": [
98
+ "Confirm one native em element, inherited metrics and foreground, readable forced colors, normal selection and copy, and no tab stop or role.",
99
+ "Check nested sentence flow, localization, zoom, RTL, and CSS delivery."
100
+ ],
101
+ "related": [
102
+ "text",
103
+ "link",
104
+ "interface-composition"
105
+ ]
106
+ }
107
+ ```
@@ -1,6 +1,6 @@
1
1
  # Feed
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: feed
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Field
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: field
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Fieldset
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: fieldset
6
6
 
@@ -1,6 +1,6 @@
1
1
  # FileUpload
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: file-upload
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Form
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: form
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Frame
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: frame
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Grid
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: grid
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Group
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: group
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Hide
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: hide
6
6
 
@@ -0,0 +1,127 @@
1
+ # Highlight
2
+
3
+ Source: @flowstack-ui/brick@0.1.12
4
+ Kind: component
5
+ ID: highlight
6
+
7
+ # Highlight agent guide
8
+
9
+ ## Purpose
10
+
11
+ Discover literal queries in plain text through exact Atom behavior and render finished semantic match styling.
12
+
13
+ ## Use when
14
+
15
+ - One plain text string needs deterministic visible query matches without recreating escaping, overlap, case, or whole-word behavior.
16
+
17
+ ## Choose something else when
18
+
19
+ - The relevant passage is already selected by the author. Use Mark.
20
+ - Content is arbitrary React nodes or the application needs active result navigation. Use application-owned rich-content traversal or search navigation.
21
+
22
+ ## Required composition
23
+
24
+ - Pass plain text through text and literal query values through query; keep surrounding sentence typography on Text or another content owner.
25
+ - Let Highlight delegate all matching to Atom and keep search input, active result, counters, and navigation in the application.
26
+
27
+ ## Rules
28
+
29
+ - **MUST:** Use exact Atom Highlight behavior; do not copy or replace its segmentation, escaping, overlap, or exact-match logic.
30
+ - **MUST:** Use Highlight only for plain text and literal queries, never by flattening or cloning arbitrary React content.
31
+ - **MUST:** Preserve Brick's fixed native span root and Atom-generated native mark matches.
32
+ - **MUST:** Select only the documented subtle, solid, or underline variant and accent or neutral tone.
33
+ - **MUST:** Keep search state, active-result navigation, counts, keyboard commands, and announcements outside Highlight.
34
+ - **MUST:** Load styles.css or core.css plus highlight.css.
35
+
36
+ ## Common mistakes
37
+
38
+ - **Avoid:** Using Mark or a consumer regular expression to discover query matches. **Instead:** Pass the plain string and literal query to Highlight so exact Atom behavior owns segmentation.
39
+
40
+ ## Validation checklist
41
+
42
+ - Confirm literal, empty, repeated, overlapping, punctuation, Unicode, case-sensitive, whole-word, and first-match-only inputs preserve original text and copy order.
43
+ - Confirm native span and mark output, closed recipes, forced colors, wrap, zoom, text spacing, localization, RTL, SSR, refs, and CSS delivery without focus or interaction.
44
+
45
+ ## Related guidance
46
+
47
+ - `mark`
48
+ - `text`
49
+ - `interface-composition`
50
+
51
+ ## Machine record
52
+
53
+ ```json
54
+ {
55
+ "schema": "flowstack.agent-component.v1",
56
+ "id": "highlight",
57
+ "name": "Highlight",
58
+ "package": "@flowstack-ui/brick",
59
+ "layer": "brick",
60
+ "kind": "component",
61
+ "purpose": "Discover literal queries in plain text through exact Atom behavior and render finished semantic match styling.",
62
+ "useWhen": [
63
+ "One plain text string needs deterministic visible query matches without recreating escaping, overlap, case, or whole-word behavior."
64
+ ],
65
+ "avoidWhen": [
66
+ {
67
+ "condition": "The relevant passage is already selected by the author.",
68
+ "useInstead": "Mark"
69
+ },
70
+ {
71
+ "condition": "Content is arbitrary React nodes or the application needs active result navigation.",
72
+ "useInstead": "application-owned rich-content traversal or search navigation"
73
+ }
74
+ ],
75
+ "composition": [
76
+ "Pass plain text through text and literal query values through query; keep surrounding sentence typography on Text or another content owner.",
77
+ "Let Highlight delegate all matching to Atom and keep search input, active result, counters, and navigation in the application."
78
+ ],
79
+ "rules": [
80
+ {
81
+ "id": "highlight-atom",
82
+ "level": "must",
83
+ "statement": "Use exact Atom Highlight behavior; do not copy or replace its segmentation, escaping, overlap, or exact-match logic."
84
+ },
85
+ {
86
+ "id": "highlight-plain-text",
87
+ "level": "must",
88
+ "statement": "Use Highlight only for plain text and literal queries, never by flattening or cloning arbitrary React content."
89
+ },
90
+ {
91
+ "id": "highlight-native",
92
+ "level": "must",
93
+ "statement": "Preserve Brick's fixed native span root and Atom-generated native mark matches."
94
+ },
95
+ {
96
+ "id": "highlight-recipes",
97
+ "level": "must",
98
+ "statement": "Select only the documented subtle, solid, or underline variant and accent or neutral tone."
99
+ },
100
+ {
101
+ "id": "highlight-state",
102
+ "level": "must",
103
+ "statement": "Keep search state, active-result navigation, counts, keyboard commands, and announcements outside Highlight."
104
+ },
105
+ {
106
+ "id": "highlight-css",
107
+ "level": "must",
108
+ "statement": "Load styles.css or core.css plus highlight.css."
109
+ }
110
+ ],
111
+ "commonMistakes": [
112
+ {
113
+ "mistake": "Using Mark or a consumer regular expression to discover query matches.",
114
+ "correction": "Pass the plain string and literal query to Highlight so exact Atom behavior owns segmentation."
115
+ }
116
+ ],
117
+ "validation": [
118
+ "Confirm literal, empty, repeated, overlapping, punctuation, Unicode, case-sensitive, whole-word, and first-match-only inputs preserve original text and copy order.",
119
+ "Confirm native span and mark output, closed recipes, forced colors, wrap, zoom, text spacing, localization, RTL, SSR, refs, and CSS delivery without focus or interaction."
120
+ ],
121
+ "related": [
122
+ "mark",
123
+ "text",
124
+ "interface-composition"
125
+ ]
126
+ }
127
+ ```
@@ -1,6 +1,6 @@
1
1
  # HoverCard
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: hover-card
6
6
 
@@ -1,6 +1,6 @@
1
1
  # IconButton
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: icon-button
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Icon
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: icon
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Image
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: image
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Input
2
2
 
3
- Source: @flowstack-ui/brick@0.1.11
3
+ Source: @flowstack-ui/brick@0.1.12
4
4
  Kind: component
5
5
  ID: input
6
6