@cascivo/mcp 0.2.0 → 0.3.4

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 (205) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +53 -23
  3. package/dist/context/accordion.md +93 -0
  4. package/dist/context/action-sheet.md +117 -0
  5. package/dist/context/alert-dialog.md +122 -0
  6. package/dist/context/alert.md +110 -0
  7. package/dist/context/app-shell.md +98 -0
  8. package/dist/context/aspect-ratio.md +92 -0
  9. package/dist/context/avatar-group.md +111 -0
  10. package/dist/context/avatar.md +100 -0
  11. package/dist/context/badge.md +119 -0
  12. package/dist/context/block/console-app.md +66 -0
  13. package/dist/context/block/dashboard-charts.md +61 -0
  14. package/dist/context/block/empty-dashboard.md +60 -0
  15. package/dist/context/block/login-page.md +60 -0
  16. package/dist/context/block/notification-center.md +61 -0
  17. package/dist/context/block/page-with-breadcrumb.md +54 -0
  18. package/dist/context/block/settings-form-page.md +60 -0
  19. package/dist/context/block/sidebar-app.md +55 -0
  20. package/dist/context/block/stats-cards.md +61 -0
  21. package/dist/context/block/users-table-page.md +61 -0
  22. package/dist/context/blockquote.md +95 -0
  23. package/dist/context/bottom-sheet.md +112 -0
  24. package/dist/context/breadcrumb.md +106 -0
  25. package/dist/context/button-group.md +100 -0
  26. package/dist/context/button.md +117 -0
  27. package/dist/context/calendar.md +118 -0
  28. package/dist/context/card.md +90 -0
  29. package/dist/context/carousel.md +101 -0
  30. package/dist/context/chart/area-chart.md +99 -0
  31. package/dist/context/chart/bar-chart.md +114 -0
  32. package/dist/context/chart/boxplot.md +82 -0
  33. package/dist/context/chart/bubble-chart.md +80 -0
  34. package/dist/context/chart/bullet.md +75 -0
  35. package/dist/context/chart/calendar.md +79 -0
  36. package/dist/context/chart/candlestick.md +104 -0
  37. package/dist/context/chart/combo-chart.md +78 -0
  38. package/dist/context/chart/funnel.md +87 -0
  39. package/dist/context/chart/gauge.md +87 -0
  40. package/dist/context/chart/heatmap.md +77 -0
  41. package/dist/context/chart/histogram.md +74 -0
  42. package/dist/context/chart/kpi.md +70 -0
  43. package/dist/context/chart/line-chart.md +113 -0
  44. package/dist/context/chart/meter.md +71 -0
  45. package/dist/context/chart/pie-chart.md +126 -0
  46. package/dist/context/chart/polar.md +92 -0
  47. package/dist/context/chart/radar.md +81 -0
  48. package/dist/context/chart/radial-bar.md +96 -0
  49. package/dist/context/chart/sankey.md +89 -0
  50. package/dist/context/chart/scatter-chart.md +90 -0
  51. package/dist/context/chart/sparkline.md +69 -0
  52. package/dist/context/chart/stream.md +88 -0
  53. package/dist/context/chart/sunburst.md +93 -0
  54. package/dist/context/chart/treemap.md +84 -0
  55. package/dist/context/chat-bubble.md +116 -0
  56. package/dist/context/checkbox-card.md +104 -0
  57. package/dist/context/checkbox.md +104 -0
  58. package/dist/context/code-snippet.md +118 -0
  59. package/dist/context/code.md +103 -0
  60. package/dist/context/collapsible.md +104 -0
  61. package/dist/context/color-picker.md +101 -0
  62. package/dist/context/combobox.md +125 -0
  63. package/dist/context/command-menu.md +121 -0
  64. package/dist/context/comparison.md +117 -0
  65. package/dist/context/contained-list.md +103 -0
  66. package/dist/context/context-menu.md +103 -0
  67. package/dist/context/copy-button.md +106 -0
  68. package/dist/context/data-list.md +99 -0
  69. package/dist/context/data-table.md +149 -0
  70. package/dist/context/date-picker.md +116 -0
  71. package/dist/context/date-range-picker.md +113 -0
  72. package/dist/context/dock.md +117 -0
  73. package/dist/context/drawer.md +111 -0
  74. package/dist/context/dropdown.md +96 -0
  75. package/dist/context/editable.md +101 -0
  76. package/dist/context/editor/code-editor.md +146 -0
  77. package/dist/context/editor/highlight.md +74 -0
  78. package/dist/context/empty-state.md +101 -0
  79. package/dist/context/fab.md +128 -0
  80. package/dist/context/field.md +118 -0
  81. package/dist/context/file-uploader.md +121 -0
  82. package/dist/context/filter.md +129 -0
  83. package/dist/context/flow/flow-background.md +103 -0
  84. package/dist/context/flow/flow-canvas.md +82 -0
  85. package/dist/context/flow/flow-controls.md +84 -0
  86. package/dist/context/flow/flow-edge.md +128 -0
  87. package/dist/context/flow/flow-handle.md +83 -0
  88. package/dist/context/flow/flow-minimap.md +89 -0
  89. package/dist/context/flow/flow-node.md +97 -0
  90. package/dist/context/flow/flow-panel.md +75 -0
  91. package/dist/context/flow/flow-story.md +145 -0
  92. package/dist/context/flow/flow.md +139 -0
  93. package/dist/context/form.md +104 -0
  94. package/dist/context/header-panel.md +96 -0
  95. package/dist/context/header.md +104 -0
  96. package/dist/context/heading.md +107 -0
  97. package/dist/context/hover-card.md +108 -0
  98. package/dist/context/icon-button.md +115 -0
  99. package/dist/context/image.md +115 -0
  100. package/dist/context/indicator.md +95 -0
  101. package/dist/context/inline-loading.md +101 -0
  102. package/dist/context/input-group.md +122 -0
  103. package/dist/context/input.md +101 -0
  104. package/dist/context/item.md +109 -0
  105. package/dist/context/join.md +97 -0
  106. package/dist/context/kbd.md +100 -0
  107. package/dist/context/label.md +117 -0
  108. package/dist/context/layout/app-shell.md +85 -0
  109. package/dist/context/layout/auth-layout.md +74 -0
  110. package/dist/context/layout/auto-grid.md +69 -0
  111. package/dist/context/layout/center.md +67 -0
  112. package/dist/context/layout/columns.md +70 -0
  113. package/dist/context/layout/dashboard-layout.md +68 -0
  114. package/dist/context/layout/grid.md +70 -0
  115. package/dist/context/layout/masonry.md +70 -0
  116. package/dist/context/layout/page-header.md +75 -0
  117. package/dist/context/layout/section.md +69 -0
  118. package/dist/context/layout/settings-layout.md +68 -0
  119. package/dist/context/layout/spacer.md +64 -0
  120. package/dist/context/layout/split-view.md +71 -0
  121. package/dist/context/layout/stack.md +93 -0
  122. package/dist/context/link.md +112 -0
  123. package/dist/context/list.md +109 -0
  124. package/dist/context/log-viewer.md +124 -0
  125. package/dist/context/menu-button.md +137 -0
  126. package/dist/context/menu.md +108 -0
  127. package/dist/context/menubar.md +92 -0
  128. package/dist/context/modal.md +96 -0
  129. package/dist/context/multi-select.md +104 -0
  130. package/dist/context/native-select.md +118 -0
  131. package/dist/context/navigation-menu.md +95 -0
  132. package/dist/context/notification.md +116 -0
  133. package/dist/context/number-input.md +117 -0
  134. package/dist/context/otp-input.md +98 -0
  135. package/dist/context/overflow-menu.md +107 -0
  136. package/dist/context/pagination.md +123 -0
  137. package/dist/context/password-input.md +100 -0
  138. package/dist/context/popover.md +108 -0
  139. package/dist/context/progress-bar.md +107 -0
  140. package/dist/context/progress-circle.md +101 -0
  141. package/dist/context/progress-indicator.md +105 -0
  142. package/dist/context/progress.md +109 -0
  143. package/dist/context/prose.md +110 -0
  144. package/dist/context/pull-to-refresh.md +101 -0
  145. package/dist/context/qr-code.md +101 -0
  146. package/dist/context/radial-progress.md +117 -0
  147. package/dist/context/radio-card.md +95 -0
  148. package/dist/context/radio.md +94 -0
  149. package/dist/context/rating-group.md +97 -0
  150. package/dist/context/relative-time.md +90 -0
  151. package/dist/context/resizable.md +102 -0
  152. package/dist/context/scroll-area.md +101 -0
  153. package/dist/context/search.md +113 -0
  154. package/dist/context/section/cta.md +83 -0
  155. package/dist/context/section/feature-grid.md +98 -0
  156. package/dist/context/section/hero.md +101 -0
  157. package/dist/context/section/media-masonry.md +77 -0
  158. package/dist/context/section/page-footer.md +101 -0
  159. package/dist/context/section/stats-band.md +81 -0
  160. package/dist/context/segmented-control.md +101 -0
  161. package/dist/context/select.md +101 -0
  162. package/dist/context/separator.md +88 -0
  163. package/dist/context/sheet.md +100 -0
  164. package/dist/context/shell-header.md +105 -0
  165. package/dist/context/side-nav.md +134 -0
  166. package/dist/context/skeleton.md +101 -0
  167. package/dist/context/skip-nav.md +103 -0
  168. package/dist/context/slider.md +98 -0
  169. package/dist/context/spinner.md +89 -0
  170. package/dist/context/stack.md +96 -0
  171. package/dist/context/stat.md +101 -0
  172. package/dist/context/status.md +105 -0
  173. package/dist/context/steps.md +124 -0
  174. package/dist/context/structured-list.md +107 -0
  175. package/dist/context/swap.md +100 -0
  176. package/dist/context/swipe-item.md +110 -0
  177. package/dist/context/switcher.md +97 -0
  178. package/dist/context/tabs.md +93 -0
  179. package/dist/context/tag.md +110 -0
  180. package/dist/context/tags-input.md +94 -0
  181. package/dist/context/text.md +111 -0
  182. package/dist/context/textarea.md +98 -0
  183. package/dist/context/tile.md +116 -0
  184. package/dist/context/time-picker.md +102 -0
  185. package/dist/context/timeline.md +93 -0
  186. package/dist/context/toast.md +91 -0
  187. package/dist/context/toc.md +110 -0
  188. package/dist/context/toggle-group.md +118 -0
  189. package/dist/context/toggle.md +103 -0
  190. package/dist/context/toggletip.md +119 -0
  191. package/dist/context/tooltip.md +92 -0
  192. package/dist/context/tree-view.md +107 -0
  193. package/dist/context/user.md +100 -0
  194. package/dist/context/visually-hidden.md +90 -0
  195. package/dist/context.json +22456 -0
  196. package/dist/index.d.mts +3 -1
  197. package/dist/index.d.mts.map +1 -1
  198. package/dist/index.mjs +73 -32
  199. package/dist/index.mjs.map +1 -1
  200. package/dist/marketplace.json +70 -0
  201. package/dist/registry.json +2832 -358
  202. package/dist/tokens.catalog.json +2375 -0
  203. package/dist/tokens.variants.json +3291 -0
  204. package/package.json +4 -3
  205. package/readme.body.md +53 -23
@@ -0,0 +1,67 @@
1
+ # Center
2
+
3
+ **Category:** layout
4
+ **Description:** Horizontally centered container with a configurable max-width.
5
+
6
+ ## When to use
7
+
8
+ - Horizontally centering content within a configurable max-width
9
+ - Constraining page or section content to a readable measure
10
+
11
+ ## When NOT to use
12
+
13
+ - Stacking children with consistent gaps — use Stack
14
+ - Multi-column or grid arrangements — use Columns or Grid
15
+
16
+ ## Related components
17
+
18
+ - **Section** (contained-by): Sections use a centered inner width built on the same idea
19
+ - **Stack** (pairs-with): Stack the centered content vertically inside it
20
+
21
+ ## Accessibility rationale
22
+
23
+ Pure layout wrapper with no semantic role; does not affect the accessibility tree.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ---------- | -------- | -------- | ------- | ------------------- |
29
+ | `maxWidth` | `string` | No | — | CSS max-width value |
30
+
31
+ ## Tokens
32
+
33
+ - `--cascivo-space-4`
34
+
35
+ ## Examples
36
+
37
+ ### Centered content
38
+
39
+ Centered container with custom max-width
40
+
41
+ ```jsx
42
+ <Center maxWidth="60rem">
43
+ <p>Content</p>
44
+ </Center>
45
+ ```
46
+
47
+ ## AI context prompt
48
+
49
+ Copy this into an LLM context bar before editing this component:
50
+
51
+ ```text
52
+ I am modifying the cascivo Center component (layout). Horizontally centered container with a configurable max-width.
53
+
54
+ Architecture constraints — follow exactly:
55
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
56
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
57
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
58
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
59
+ - CSS logical properties only (RTL-safe).
60
+
61
+ Center is strictly bound to these tokens — use only these, do not invent token names:
62
+ --cascivo-space-4
63
+
64
+ Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
65
+
66
+ Do not invent props, tokens, or global viewport media queries.
67
+ ```
@@ -0,0 +1,70 @@
1
+ # Columns
2
+
3
+ **Category:** layout
4
+ **Description:** Equal-width multi-column layout that collapses to single column on narrow viewports.
5
+
6
+ ## When to use
7
+
8
+ - Equal-width multi-column content that collapses to one column when narrow
9
+ - Side-by-side text or content blocks at a fixed column count
10
+
11
+ ## When NOT to use
12
+
13
+ - Card grids that auto-fit to width — use AutoGrid
14
+ - Single-direction stacking — use Stack
15
+
16
+ ## Related components
17
+
18
+ - **Grid** (alternative): Use for general two-dimensional grid placement
19
+ - **AutoGrid** (alternative): Use when column count should adapt to available width
20
+
21
+ ## Accessibility rationale
22
+
23
+ Pure layout primitive with no semantic role; does not affect the accessibility tree.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ------- | ----------------------------- | -------- | ------- | ----------------------- |
29
+ | `count` | `2\|3\|4` | No | — | Number of equal columns |
30
+ | `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | — | Spacing token step |
31
+
32
+ ## Tokens
33
+
34
+ - `--cascivo-space-*`
35
+
36
+ ## Examples
37
+
38
+ ### Three columns
39
+
40
+ Three equal columns
41
+
42
+ ```jsx
43
+ <Columns count={3}>
44
+ <div>A</div>
45
+ <div>B</div>
46
+ <div>C</div>
47
+ </Columns>
48
+ ```
49
+
50
+ ## AI context prompt
51
+
52
+ Copy this into an LLM context bar before editing this component:
53
+
54
+ ```text
55
+ I am modifying the cascivo Columns component (layout). Equal-width multi-column layout that collapses to single column on narrow viewports.
56
+
57
+ Architecture constraints — follow exactly:
58
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
59
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
60
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
61
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
62
+ - CSS logical properties only (RTL-safe).
63
+
64
+ Columns is strictly bound to these tokens — use only these, do not invent token names:
65
+ --cascivo-space-*
66
+
67
+ Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
68
+
69
+ Do not invent props, tokens, or global viewport media queries.
70
+ ```
@@ -0,0 +1,68 @@
1
+ # DashboardLayout
2
+
3
+ **Category:** layout
4
+ **Description:** Dashboard page layout with stats strip, main content area, and optional aside.
5
+
6
+ ## When to use
7
+
8
+ - A dashboard page with a stats strip, main content area, and optional aside
9
+ - Composing KPI tiles and charts into a standard analytics layout
10
+
11
+ ## When NOT to use
12
+
13
+ - A bare app frame without dashboard structure — use AppShell
14
+ - A simple form or content page — use Section or SettingsLayout
15
+
16
+ ## Related components
17
+
18
+ - **AppShell** (alternative): Use the bare shell when you do not need dashboard structure
19
+ - **StatsCards** (contains): KPI cards commonly fill the stats strip
20
+
21
+ ## Accessibility rationale
22
+
23
+ Provides landmark regions for main content and complementary aside.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ------- | ----------- | -------- | ------- | ----------------------------- |
29
+ | `stats` | `ReactNode` | No | — | Stats/KPI row (auto-fit grid) |
30
+ | `main` | `ReactNode` | Yes | — | Main content area |
31
+ | `aside` | `ReactNode` | No | — | Optional aside panel (20rem) |
32
+
33
+ ## Tokens
34
+
35
+ - `--cascivo-space-4`
36
+ - `--cascivo-space-6`
37
+
38
+ ## Examples
39
+
40
+ ### With stats
41
+
42
+ Stats + main layout
43
+
44
+ ```jsx
45
+ <DashboardLayout stats={<div>KPIs</div>} main={<div>Content</div>} />
46
+ ```
47
+
48
+ ## AI context prompt
49
+
50
+ Copy this into an LLM context bar before editing this component:
51
+
52
+ ```text
53
+ I am modifying the cascivo DashboardLayout component (layout). Dashboard page layout with stats strip, main content area, and optional aside.
54
+
55
+ Architecture constraints — follow exactly:
56
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
57
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
58
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
59
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
60
+ - CSS logical properties only (RTL-safe).
61
+
62
+ DashboardLayout is strictly bound to these tokens — use only these, do not invent token names:
63
+ --cascivo-space-4, --cascivo-space-6
64
+
65
+ Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
66
+
67
+ Do not invent props, tokens, or global viewport media queries.
68
+ ```
@@ -0,0 +1,70 @@
1
+ # Grid
2
+
3
+ **Category:** layout
4
+ **Description:** CSS grid layout primitive with responsive column collapsing.
5
+
6
+ ## When to use
7
+
8
+ - Two-dimensional layouts with an explicit column count
9
+ - Arranging cards or tiles that should align in rows and columns
10
+
11
+ ## When NOT to use
12
+
13
+ - Single-direction stacking — use Stack
14
+ - Columns that auto-fit to available width — use AutoGrid
15
+
16
+ ## Related components
17
+
18
+ - **AutoGrid** (alternative): Use when columns should auto-fill without fixed counts
19
+ - **Columns** (alternative): Use for equal-width text columns that collapse on narrow viewports
20
+
21
+ ## Accessibility rationale
22
+
23
+ Pure layout primitive with no semantic role; does not affect the accessibility tree.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ------ | ----------------------------- | -------- | ------- | --------------------------- |
29
+ | `cols` | `number` | No | — | Number of grid columns |
30
+ | `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | — | Spacing token step |
31
+ | `span` | `number` | No | — | GridItem: column span count |
32
+
33
+ ## Tokens
34
+
35
+ - `--cascivo-space-*`
36
+
37
+ ## Examples
38
+
39
+ ### Basic grid
40
+
41
+ 3-column grid with spanning item
42
+
43
+ ```jsx
44
+ <Grid cols={3} gap={4}>
45
+ <GridItem span={1}>A</GridItem>
46
+ <GridItem span={2}>B</GridItem>
47
+ </Grid>
48
+ ```
49
+
50
+ ## AI context prompt
51
+
52
+ Copy this into an LLM context bar before editing this component:
53
+
54
+ ```text
55
+ I am modifying the cascivo Grid component (layout). CSS grid layout primitive with responsive column collapsing.
56
+
57
+ Architecture constraints — follow exactly:
58
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
59
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
60
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
61
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
62
+ - CSS logical properties only (RTL-safe).
63
+
64
+ Grid is strictly bound to these tokens — use only these, do not invent token names:
65
+ --cascivo-space-*
66
+
67
+ Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
68
+
69
+ Do not invent props, tokens, or global viewport media queries.
70
+ ```
@@ -0,0 +1,70 @@
1
+ # Masonry
2
+
3
+ **Category:** layout
4
+ **Description:** Masonry layout — native CSS masonry where supported, multi-column fallback elsewhere (fallback orders items top-to-bottom per column).
5
+
6
+ ## When to use
7
+
8
+ - Galleries of variable-height items packed into balanced columns
9
+ - Pinterest-style image or card walls
10
+
11
+ ## When NOT to use
12
+
13
+ - Items that must align in rows — use Grid
14
+ - Uniform-height cards — use AutoGrid
15
+
16
+ ## Related components
17
+
18
+ - **AutoGrid** (alternative): Use when items are uniform height and should align in rows
19
+ - **MediaMasonry** (alternative): Use the section-level masonry for full-width media galleries
20
+
21
+ ## Accessibility rationale
22
+
23
+ Pure layout primitive with no semantic role; does not affect the accessibility tree.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ------ | ----------------------------- | -------- | ------- | ------------------ |
29
+ | `cols` | `number` | No | 3 | Number of columns |
30
+ | `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | 4 | Spacing token step |
31
+
32
+ ## Tokens
33
+
34
+ - `--cascivo-space-*`
35
+
36
+ ## Examples
37
+
38
+ ### Masonry gallery
39
+
40
+ Variable-height cards laid out in a masonry pattern; falls back to CSS columns
41
+
42
+ ```jsx
43
+ <Masonry cols={3} gap={4}>
44
+ {items.map((item) => (
45
+ <Card key={item.id}>{item.content}</Card>
46
+ ))}
47
+ </Masonry>
48
+ ```
49
+
50
+ ## AI context prompt
51
+
52
+ Copy this into an LLM context bar before editing this component:
53
+
54
+ ```text
55
+ I am modifying the cascivo Masonry component (layout). Masonry layout — native CSS masonry where supported, multi-column fallback elsewhere (fallback orders items top-to-bottom per column).
56
+
57
+ Architecture constraints — follow exactly:
58
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
59
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
60
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
61
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
62
+ - CSS logical properties only (RTL-safe).
63
+
64
+ Masonry is strictly bound to these tokens — use only these, do not invent token names:
65
+ --cascivo-space-*
66
+
67
+ Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
68
+
69
+ Do not invent props, tokens, or global viewport media queries.
70
+ ```
@@ -0,0 +1,75 @@
1
+ # PageHeader
2
+
3
+ **Category:** layout
4
+ **Description:** Page-level header with title, description, breadcrumb, and actions slots.
5
+
6
+ ## When to use
7
+
8
+ - A page-level header with title, description, breadcrumb, and action slots
9
+ - Establishing consistent page tops across an application
10
+
11
+ ## When NOT to use
12
+
13
+ - A marketing hero with large media — use Hero
14
+ - A full app top bar with navigation — use AppShell
15
+
16
+ ## Related components
17
+
18
+ - **Hero** (alternative): Use the marketing hero for landing-page tops
19
+ - **Section** (pairs-with): Place sections below the header to build out the page
20
+
21
+ ## Accessibility rationale
22
+
23
+ Renders a header region with a top-level heading for screen reader page structure.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ------------- | ----------- | -------- | ------- | ---------------------- |
29
+ | `title` | `string` | Yes | — | Page title |
30
+ | `description` | `string` | No | — | Supporting description |
31
+ | `breadcrumb` | `ReactNode` | No | — | Breadcrumb slot |
32
+ | `actions` | `ReactNode` | No | — | Action buttons slot |
33
+ | `className` | `string` | No | — | Additional CSS class |
34
+
35
+ ## Tokens
36
+
37
+ - `--cascivo-space-2`
38
+ - `--cascivo-space-4`
39
+ - `--cascivo-font-size-2xl`
40
+ - `--cascivo-font-weight-bold`
41
+ - `--cascivo-color-text`
42
+ - `--cascivo-color-text-muted`
43
+ - `--cascivo-font-size-sm`
44
+
45
+ ## Examples
46
+
47
+ ### Basic
48
+
49
+ Title with description
50
+
51
+ ```jsx
52
+ <PageHeader title="Dashboard" description="Welcome back" />
53
+ ```
54
+
55
+ ## AI context prompt
56
+
57
+ Copy this into an LLM context bar before editing this component:
58
+
59
+ ```text
60
+ I am modifying the cascivo PageHeader component (layout). Page-level header with title, description, breadcrumb, and actions slots.
61
+
62
+ Architecture constraints — follow exactly:
63
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
64
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
65
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
66
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
67
+ - CSS logical properties only (RTL-safe).
68
+
69
+ PageHeader is strictly bound to these tokens — use only these, do not invent token names:
70
+ --cascivo-space-2, --cascivo-space-4, --cascivo-font-size-2xl, --cascivo-font-weight-bold, --cascivo-color-text, --cascivo-color-text-muted, --cascivo-font-size-sm
71
+
72
+ Accessibility: role "banner", WCAG 2.1-AA. Keep it AA.
73
+
74
+ Do not invent props, tokens, or global viewport media queries.
75
+ ```
@@ -0,0 +1,69 @@
1
+ # Section
2
+
3
+ **Category:** layout
4
+ **Description:** Page-section shell with block padding, centered inner width, and stack gap.
5
+
6
+ ## When to use
7
+
8
+ - Wrapping a page region with block padding and a centered inner width
9
+ - The default container for stacking content within a page
10
+
11
+ ## When NOT to use
12
+
13
+ - Just centering a single element — use Center
14
+ - A marketing band with built-in CTA content — use Cta or Hero
15
+
16
+ ## Related components
17
+
18
+ - **Center** (contains): Uses centered inner width internally
19
+ - **PageHeader** (pairs-with): Pair sections below a page header
20
+
21
+ ## Accessibility rationale
22
+
23
+ Renders a section element to group related content for screen readers.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ------- | ------------------------------- | -------- | --------- | ----------------------------------------------------- |
29
+ | `width` | `"content" \| "wide" \| "full"` | No | "content" | Max inline size: content=72rem, wide=90rem, full=none |
30
+ | `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | 8 | Stack gap between children (spacing token step) |
31
+
32
+ ## Tokens
33
+
34
+ - `--cascivo-space-*`
35
+
36
+ ## Examples
37
+
38
+ ### Content section
39
+
40
+ Centered 72rem content column with 2rem block padding
41
+
42
+ ```jsx
43
+ <Section width="content" gap={8}>
44
+ <h2>Heading</h2>
45
+ <p>Body copy.</p>
46
+ </Section>
47
+ ```
48
+
49
+ ## AI context prompt
50
+
51
+ Copy this into an LLM context bar before editing this component:
52
+
53
+ ```text
54
+ I am modifying the cascivo Section component (layout). Page-section shell with block padding, centered inner width, and stack gap.
55
+
56
+ Architecture constraints — follow exactly:
57
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
58
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
59
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
60
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
61
+ - CSS logical properties only (RTL-safe).
62
+
63
+ Section is strictly bound to these tokens — use only these, do not invent token names:
64
+ --cascivo-space-*
65
+
66
+ Accessibility: role "region", WCAG 2.1-AA. Keep it AA.
67
+
68
+ Do not invent props, tokens, or global viewport media queries.
69
+ ```
@@ -0,0 +1,68 @@
1
+ # SettingsLayout
2
+
3
+ **Category:** layout
4
+ **Description:** Two-column settings page layout with a fixed-width menu and fluid content area.
5
+
6
+ ## When to use
7
+
8
+ - A two-column settings page with a fixed-width menu and fluid content
9
+ - Account, preferences, or admin pages with sectioned navigation
10
+
11
+ ## When NOT to use
12
+
13
+ - A general resizable two-pane layout — use SplitView
14
+ - A full app frame — use AppShell or SidebarApp
15
+
16
+ ## Related components
17
+
18
+ - **SettingsFormPage** (contained-by): The settings form block composes this layout
19
+ - **SplitView** (alternative): Use when the two panes should be user-resizable
20
+
21
+ ## Accessibility rationale
22
+
23
+ Provides a navigation region for the menu and a main region for content.
24
+
25
+ ## Props
26
+
27
+ | Name | Type | Required | Default | Description |
28
+ | ---------- | ----------- | -------- | ------- | --------------------- |
29
+ | `menu` | `ReactNode` | Yes | — | Side navigation menu |
30
+ | `children` | `ReactNode` | Yes | — | Settings content area |
31
+
32
+ ## Tokens
33
+
34
+ - `--cascivo-space-8`
35
+
36
+ ## Examples
37
+
38
+ ### Basic
39
+
40
+ Menu + content layout
41
+
42
+ ```jsx
43
+ <SettingsLayout menu={<nav>Menu</nav>}>
44
+ <div>Settings</div>
45
+ </SettingsLayout>
46
+ ```
47
+
48
+ ## AI context prompt
49
+
50
+ Copy this into an LLM context bar before editing this component:
51
+
52
+ ```text
53
+ I am modifying the cascivo SettingsLayout component (layout). Two-column settings page layout with a fixed-width menu and fluid content area.
54
+
55
+ Architecture constraints — follow exactly:
56
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
57
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
58
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
59
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
60
+ - CSS logical properties only (RTL-safe).
61
+
62
+ SettingsLayout is strictly bound to these tokens — use only these, do not invent token names:
63
+ --cascivo-space-8
64
+
65
+ Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
66
+
67
+ Do not invent props, tokens, or global viewport media queries.
68
+ ```
@@ -0,0 +1,64 @@
1
+ # Spacer
2
+
3
+ **Category:** layout
4
+ **Description:** Fixed-height spacing block using design token steps.
5
+
6
+ ## When to use
7
+
8
+ - Inserting a fixed vertical gap between blocks using spacing token steps
9
+ - Adding deliberate breathing room where margins are awkward
10
+
11
+ ## When NOT to use
12
+
13
+ - Spacing a series of siblings — use Stack with a gap instead
14
+ - Arbitrary one-off spacing — prefer token-based gap props
15
+
16
+ ## Related components
17
+
18
+ - **Stack** (alternative): Use gap on Stack to space multiple siblings consistently
19
+
20
+ ## Accessibility rationale
21
+
22
+ Empty presentational spacer with no semantic role; ignored by assistive tech.
23
+
24
+ ## Props
25
+
26
+ | Name | Type | Required | Default | Description |
27
+ | ------ | ----------------------------- | -------- | ------- | ------------------ |
28
+ | `size` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | — | Spacing token step |
29
+
30
+ ## Tokens
31
+
32
+ - `--cascivo-space-*`
33
+
34
+ ## Examples
35
+
36
+ ### Spacer
37
+
38
+ Adds vertical space between elements
39
+
40
+ ```jsx
41
+ <Spacer size={8} />
42
+ ```
43
+
44
+ ## AI context prompt
45
+
46
+ Copy this into an LLM context bar before editing this component:
47
+
48
+ ```text
49
+ I am modifying the cascivo Spacer component (layout). Fixed-height spacing block using design token steps.
50
+
51
+ Architecture constraints — follow exactly:
52
+ - Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
53
+ - Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
54
+ - Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
55
+ - Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
56
+ - CSS logical properties only (RTL-safe).
57
+
58
+ Spacer is strictly bound to these tokens — use only these, do not invent token names:
59
+ --cascivo-space-*
60
+
61
+ Accessibility: role "none", WCAG 2.1-AA. Keep it AA.
62
+
63
+ Do not invent props, tokens, or global viewport media queries.
64
+ ```