@ramme-io/ui 4.0.1 → 4.1.1
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.
- package/README.md +159 -7
- package/dist/blocks/ai/Actions.js +2 -2
- package/dist/blocks/ai/PromptInput.js +6 -6
- package/dist/component-registry.js +389 -359
- package/dist/components/ai/AIChatThread/AIChatThread.js +81 -73
- package/dist/components/ai/ArchitectureReferenceCard/ArchitectureReferenceCard.d.ts +28 -0
- package/dist/components/ai/ArchitectureReferenceCard/ArchitectureReferenceCard.js +70 -0
- package/dist/components/ai/ArchitectureReferenceCard/index.d.ts +2 -0
- package/dist/components/ai/CounterpartyGraphCard/CounterpartyGraphCard.d.ts +30 -0
- package/dist/components/ai/CounterpartyGraphCard/CounterpartyGraphCard.js +82 -0
- package/dist/components/ai/CounterpartyGraphCard/index.d.ts +2 -0
- package/dist/components/ai/DivergenceMetricsCard/DivergenceMetricsCard.d.ts +29 -0
- package/dist/components/ai/DivergenceMetricsCard/DivergenceMetricsCard.js +69 -0
- package/dist/components/ai/DivergenceMetricsCard/index.d.ts +2 -0
- package/dist/components/ai/KeyInjectionOverlay.d.ts +10 -0
- package/dist/components/ai/KeyInjectionOverlay.js +11 -11
- package/dist/components/ai/NewsSummaryCard/NewsSummaryCard.js +17 -17
- package/dist/components/ai/StockChart/StockChart.js +4 -4
- package/dist/components/auth/AuthLayout.js +4 -4
- package/dist/components/auth/LoginPage.d.ts +22 -0
- package/dist/components/auth/LoginPage.js +50 -42
- package/dist/components/data-display/CodeBlock.d.ts +33 -7
- package/dist/components/data-display/CodeBlock.js +134 -41
- package/dist/components/data-display/Table.js +8 -8
- package/dist/components/feedback/EmptyState.js +9 -9
- package/dist/components/feedback/ToastProvider.js +4 -4
- package/dist/components/forms/Checkbox.js +5 -5
- package/dist/components/forms/ComboBox.js +2 -2
- package/dist/components/forms/DatePicker.js +37 -32
- package/dist/components/forms/FileUpload.js +39 -37
- package/dist/components/forms/Input.js +19 -18
- package/dist/components/forms/MultiSelect.js +9 -8
- package/dist/components/forms/Radio.js +6 -6
- package/dist/components/forms/SegmentedControl.d.ts +1 -1
- package/dist/components/forms/SegmentedControl.js +28 -11
- package/dist/components/forms/Select.js +9 -8
- package/dist/components/forms/Textarea.d.ts +13 -11
- package/dist/components/forms/Textarea.js +36 -16
- package/dist/components/forms/ToggleSwitch.js +9 -9
- package/dist/components/layout/AboutRamme.d.ts +8 -0
- package/dist/components/layout/Accordion.js +25 -32
- package/dist/components/layout/AppShell.js +7 -7
- package/dist/components/layout/Card.js +38 -21
- package/dist/components/layout/DetailDrawer.js +37 -38
- package/dist/components/layout/Drawer.js +50 -51
- package/dist/components/layout/List.js +9 -9
- package/dist/components/layout/Modal.js +5 -5
- package/dist/components/layout/PageHeader.js +7 -7
- package/dist/components/layout/SectionHeader.js +4 -4
- package/dist/components/layout/SettingsContainer.d.ts +12 -0
- package/dist/components/layout/SettingsContainer.js +30 -18
- package/dist/components/layout/Sheet.d.ts +58 -0
- package/dist/components/layout/Sheet.js +144 -0
- package/dist/components/layout/Sidebar.js +1 -1
- package/dist/components/layout/UserNav.d.ts +13 -0
- package/dist/components/layout/UserNav.js +17 -17
- package/dist/components/molecular/ConnectorOverlay.d.ts +12 -0
- package/dist/components/navigation/Breadcrumbs.js +8 -8
- package/dist/components/navigation/Menu.js +6 -6
- package/dist/components/navigation/MobileNav.d.ts +44 -1
- package/dist/components/navigation/MobileNav.js +97 -71
- package/dist/components/navigation/Pagination.js +46 -41
- package/dist/components/navigation/Stepper.js +17 -17
- package/dist/components/navigation/Tabs.js +18 -11
- package/dist/components/theme/ThemeLab.d.ts +7 -1
- package/dist/components/theme/ThemeLab.js +175 -154
- package/dist/components/ui/icon-loader.d.ts +1 -1
- package/dist/contexts/ThemeContext.js +111 -82
- package/dist/data/mockData.d.ts +0 -3
- package/dist/index.css +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.js +222 -197
- package/dist/lib/hooks/useBodyScrollLock.d.ts +27 -0
- package/dist/lib/hooks/useBodyScrollLock.js +18 -0
- package/dist/lib/hooks/useSheetGesture.d.ts +81 -0
- package/dist/lib/hooks/useSheetGesture.js +70 -0
- package/dist/lib/theme/themeUtils.d.ts +21 -0
- package/dist/lib/theme/themeUtils.js +31 -17
- package/dist/setupTests.d.ts +1 -0
- package/dist/wizardManifest.js +364 -19
- package/package.json +10 -4
- package/src/wizardManifest.ts +364 -19
- package/tailwind.preset.js +98 -10
package/README.md
CHANGED
|
@@ -98,10 +98,12 @@ Storybook will start at `http://localhost:6006` with all component variants, sta
|
|
|
98
98
|
|
|
99
99
|
When contributing a new component, you must complete the full supply chain:
|
|
100
100
|
|
|
101
|
-
1. **Component** — React code with typed props and JSDoc
|
|
101
|
+
1. **Component** — React code with typed props and a `@wizard` JSDoc block.
|
|
102
102
|
2. **Story** — A corresponding `[ComponentName].stories.tsx` file.
|
|
103
|
-
3. **Styleguide** —
|
|
104
|
-
4. **
|
|
103
|
+
3. **Styleguide** — Add an example to a styleguide app's `src/features/styleguide/`.
|
|
104
|
+
4. **Generate** — Run `pnpm run generate` here, or `pnpm -w run generate:ui` from
|
|
105
|
+
anywhere in the repo. That is manifest **and** registry **and** the reference section
|
|
106
|
+
below; `generate:registry` alone leaves the manifest stale.
|
|
105
107
|
|
|
106
108
|
---
|
|
107
109
|
|
|
@@ -152,10 +154,160 @@ Recognized tags:
|
|
|
152
154
|
Versioning is automatic: the generator fingerprints each entry's description/props/tags/category
|
|
153
155
|
and bumps the patch version in `component-history.json` whenever that fingerprint changes.
|
|
154
156
|
|
|
155
|
-
**Coverage
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
**Coverage is enforced, not tracked in prose.**
|
|
158
|
+
`products/ramme-marketing/src/__tests__/catalog-coverage.test.ts` fails when a
|
|
159
|
+
component is exported from the package barrel but has no `@wizard` block, and
|
|
160
|
+
when the committed manifest no longer matches the blocks in the source. Internal
|
|
161
|
+
tooling — `theme/` and `showroom/` — is exempt by name in that test, which makes
|
|
162
|
+
the exemption a decision someone made rather than an omission nobody noticed.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Reference
|
|
167
|
+
|
|
168
|
+
Generated from the `@wizard` blocks — the same source as `src/wizardManifest.ts`
|
|
169
|
+
and the Showroom. Do not edit it by hand; run `pnpm run generate`.
|
|
170
|
+
|
|
171
|
+
Props, variants and live examples are in Storybook (`pnpm run storybook`) and at
|
|
172
|
+
[ramme.io/docs/catalog](https://ramme.io/docs/catalog). This table answers only
|
|
173
|
+
"does it already exist, and what is it for?".
|
|
174
|
+
|
|
175
|
+
<!-- BEGIN GENERATED REFERENCE — do not edit by hand -->
|
|
176
|
+
|
|
177
|
+
### Components (83)
|
|
178
|
+
|
|
179
|
+
| Name | SKU | What it is |
|
|
180
|
+
| --- | --- | --- |
|
|
181
|
+
| `Actions` | `@molecule/ai/actions` | A container for displaying a list of suggested, clickable actions that the user can take next. |
|
|
182
|
+
| `ActivityFeed` | `@atom/templates-patterns/activity-feed` | Displays a chronological list of recent activities, typically with a timeline indicator. |
|
|
183
|
+
| `AIChatThread` | `@molecule/ai/aichat-thread` | A complete chat surface — message history, streaming indicator, error banner, provider/model attribution, and the composer. |
|
|
184
|
+
| `Alert` | `@molecule/feedback/alert` | Displays static, in-page messages to convey important information like success, warnings, or errors. |
|
|
185
|
+
| `ArchitectureReferenceCard` | `@molecule/ai/architecture-reference-card` | AI-generated card summarizing this platform's own data architecture — stack, data model, AI pipelines, and sentinel fleet |
|
|
186
|
+
| `AreaChart` | `@atom/charts/area-chart` | A theme-aware area chart component powered by Recharts, ideal for showing trends and volume over time. |
|
|
187
|
+
| `Avatar` | `@atom/primitive/avatar` | Displays a user's profile picture or initials as a fallback, with different size options. |
|
|
188
|
+
| `Badge` | `@atom/primitive/badge` | A small component to display a status, count, or label. |
|
|
189
|
+
| `BarChart` | `@atom/charts/bar-chart` | A theme-aware bar chart component powered by Recharts, for comparing categorical data. |
|
|
190
|
+
| `BrandLogo` | `@atom/primitive/brand-logo` | The application's brand mark, theme-aware and sized by a single prop. |
|
|
191
|
+
| `BreadcrumbItem` | `@molecule/nav/breadcrumb-item` | Represents a single step or link within a `Breadcrumbs` navigation path. |
|
|
192
|
+
| `Breadcrumbs` | `@molecule/nav/breadcrumbs` | A navigation component that shows the user's current location within a hierarchy of pages. |
|
|
193
|
+
| `Button` | `@atom/primitive/button` | The primary interactive trigger for all user actions in the Ramme design system. |
|
|
194
|
+
| `ButtonGroup` | `@atom/form/button-group` | Groups multiple Button components visually and can function as a segmented control (radio group). |
|
|
195
|
+
| `ChartWithTable` | `@atom/templates-patterns/chart-with-table` | A wrapper component that combines a chart with an option to view its underlying data in a table within a drawer. |
|
|
196
|
+
| `ChatFAB` | `@atom/primitive/chat-fab` | A floating action button (FAB) specifically for opening a chat interface, with a tooltip and icon. |
|
|
197
|
+
| `Checkbox` | `@atom/form/checkbox` | A standard checkbox input for selecting one or more options from a set. |
|
|
198
|
+
| `CircularDial` | `@atom/hardware/circular-dial` | A 270-degree arc gauge for a single live telemetry value, styled like a physical instrument dial. |
|
|
199
|
+
| `CodeBlock` | `@atom/primitive/code-block` | The one way to show code. |
|
|
200
|
+
| `ComboBox` | `@atom/form/combo-box` | A text input with an integrated dropdown list of selectable options, allowing both typing and selection. |
|
|
201
|
+
| `CompanyProfileCard` | `@molecule/ai/company-profile-card` | A company summary for a ticker — sector, industry, and description — fetched on demand and cached. |
|
|
202
|
+
| `ConnectorOverlay` | `@molecule/feedback/connector-overlay` | Covers a panel while its data source is connecting, and explains itself when the connection fails. |
|
|
203
|
+
| `Conversation` | `@molecule/ai/conversation` | A container component that holds a series of Message components and manages the layout and scrolling of the chat history. |
|
|
204
|
+
| `CounterpartyGraphCard` | `@molecule/ai/counterparty-graph-card` | AI-generated counterparty relationship card showing suppliers, customers, partners, and competitors inferred from alternative signals |
|
|
205
|
+
| `DataCard` | `@molecule/data/data-card` | A Card that owns its own loading, error, and content states. |
|
|
206
|
+
| `DataTable` | `@molecule/data/data-table` | A "Smart" data grid that renders data based on a simple JSON schema. |
|
|
207
|
+
| `DatePicker` | `@atom/form/date-picker` | A theme-aware calendar input for selecting dates. |
|
|
208
|
+
| `DenseMetricRibbon` | `@molecule/data/dense-metric-ribbon` | A compact horizontal strip of KPIs with optional trend arrows. |
|
|
209
|
+
| `DivergenceMetricsCard` | `@molecule/ai/divergence-metrics-card` | AI-generated card showing operational and customer divergence scores — a signed delta between expected and observed performance |
|
|
210
|
+
| `EdgeInsightTerminal` | `@atom/hardware/edge-insight-terminal` | A terminal-styled panel that streams an AI analysis of live edge telemetry as it arrives. |
|
|
211
|
+
| `EmptyState` | `@molecule/feedback/empty-state` | A component for displaying a message when there is no data or content to show. |
|
|
212
|
+
| `FileUpload` | `@atom/form/file-upload` | A modern drag-and-drop file upload area with visual feedback and file listing. |
|
|
213
|
+
| `FormTemplate` | `@atom/form/form-template` | A data-driven form builder that renders a grid of input fields from a configuration array. |
|
|
214
|
+
| `HardwareCommandButton` | `@atom/hardware/hardware-command-button` | A command trigger that shows the full round trip to a physical device — transmitting, awaiting acknowledgement, then success or failure. |
|
|
215
|
+
| `Icon` | `@atom/primitive/icon` | A dynamic component that renders scalable vector icons from the Lucide library. |
|
|
216
|
+
| `Input` | `@atom/form/input` | A theme-aware text input with label, icon, helper text, and validation state support. |
|
|
217
|
+
| `KeyInjectionOverlay` | `@molecule/ai/key-injection-overlay` | Blocks the app and collects an AI provider key when the gateway reports one is missing or expired. |
|
|
218
|
+
| `KpiGrid` | `@atom/templates-patterns/kpi-grid` | A framework-level abstraction that takes raw data and metric configurations to auto-calculate values and render a grid of StatCards. |
|
|
219
|
+
| `Label` | `@molecule/form/label` | The accessible caption for a form control. |
|
|
220
|
+
| `LineChart` | `@atom/charts/line-chart` | A theme-aware line chart component... |
|
|
221
|
+
| `LiveQuoteCard` | `@molecule/ai/live-quote-card` | AI-generated live stock quote card with real-time price data |
|
|
222
|
+
| `Loader` | `@molecule/ai/loader` | A compact, theme-aware animation for indicating AI processing states. |
|
|
223
|
+
| `LoginPage` | `@atom/auth/login-page` | The standard sign-in screen — email and password, with inline error and loading states already wired. |
|
|
224
|
+
| `Menu` | `@atom/primitive/menu` | A dropdown menu component, useful for navigation or contextual actions. |
|
|
225
|
+
| `MenuDivider` | `@atom/primitive/menu-divider` | A visual separator for grouping MenuItems within a Menu. |
|
|
226
|
+
| `MenuItem` | `@atom/primitive/menu-item` | An individual selectable item within a Menu component. |
|
|
227
|
+
| `Message` | `@molecule/ai/message` | Displays a single message in a conversation, including an avatar, author, content, and optional suggestions. |
|
|
228
|
+
| `MobileNav` | `@molecule/nav/mobile-nav` | Mobile navigation, in two shapes. |
|
|
229
|
+
| `MultiSelect` | `@molecule/form/multi-select` | A searchable dropdown for picking several options at once, rendering selections as removable chips. |
|
|
230
|
+
| `NewsSummaryCard` | `@molecule/ai/news-summary-card` | AI-generated news summary card with recent headlines |
|
|
231
|
+
| `PageHeader` | `@atom/templates-patterns/page-header` | Displays the main header section of a page, including a title, optional description, and a slot for action buttons. |
|
|
232
|
+
| `Pagination` | `@molecule/nav/pagination` | A navigation control for moving between pages of content. |
|
|
233
|
+
| `PieChart` | `@atom/charts/pie-chart` | A theme-aware pie chart component powered by Recharts, for showing proportional relationships of parts to a whole. |
|
|
234
|
+
| `Plan` | `@molecule/feedback/plan` | A strategic component for displaying roadmaps, checklists, or step-by-step plans. |
|
|
235
|
+
| `PromptInput` | `@molecule/ai/prompt-input` | A specialized input field for users to type and submit prompts, including a send button. |
|
|
236
|
+
| `Radio` | `@atom/form/radio` | A single radio button input, typically used within a group where only one option can be selected. |
|
|
237
|
+
| `ScatterChart` | `@atom/charts/scatter-chart` | A theme-aware scatter plot for visualising correlations and distributions between two numeric variables. |
|
|
238
|
+
| `SearchInput` | `@atom/form/search-input` | A specialized input for search functionality, using the base Input component with a search icon. |
|
|
239
|
+
| `SectionHeader` | `@atom/templates-patterns/section-header` | A simple, consistent header for organizing sections of content within a page. |
|
|
240
|
+
| `SegmentedControl` | `@atom/form/segmented-control` | A theme-aware linear toggle component. |
|
|
241
|
+
| `Select` | `@atom/form/select` | A fully theme-aware single-value dropdown selector built on react-select. |
|
|
242
|
+
| `SignupPage` | `@atom/auth/signup-page` | The standard account-creation screen — name, email, and password with inline error and loading states. |
|
|
243
|
+
| `Skeleton` | `@molecule/feedback/skeleton` | A pulsing placeholder block for content that hasn't loaded yet. |
|
|
244
|
+
| `Sparkline` | `@atom/hardware/sparkline` | A compact, axis-less trend line for showing the shape of a series inline — in a table cell, a stat tile, or next to a live value. |
|
|
245
|
+
| `StatCard` | `@atom/templates-patterns/stat-card` | A specialized card for prominently displaying a key statistic, including an icon and optional trend indicator. |
|
|
246
|
+
| `StateMatrix` | `@molecule/data/state-matrix` | A compact grid for cross-referencing entities against attributes, where each cell is a clickable state rather than free text. |
|
|
247
|
+
| `StatusBadge` | `@molecule/data/status-badge` | A consistent status indicator featuring a color-coded dot and an optional text label. |
|
|
248
|
+
| `Stepper` | `@molecule/nav/stepper` | Guides users through a sequence of discrete steps, ideal for multi-step forms or onboarding flows. |
|
|
249
|
+
| `StockChart` | `@molecule/ai/stock-chart` | AI-generated financial chart component with Bloomberg-style theming |
|
|
250
|
+
| `Suggestion` | `@molecule/ai/suggestion` | A small, pill-shaped button that offers a quick, suggested reply or follow-up question to the user. |
|
|
251
|
+
| `Table` | `@molecule/data/table` | A simple, theme-aware HTML table component for displaying tabular data, with support for custom cell rendering and empty states. |
|
|
252
|
+
| `TabPanel` | `@molecule/nav/tab-panel` | Represents a single tab and its associated content panel within a `Tabs` component. |
|
|
253
|
+
| `Tabs` | `@molecule/nav/tabs` | A navigation component that allows users to switch between different content panels within the same area. |
|
|
254
|
+
| `TelemetryGraph` | `@molecule/ai/telemetry-graph` | AI-generated telemetry visualization component |
|
|
255
|
+
| `TelemetryLog` | `@molecule/iot/telemetry-log` | A scrolling, newest-first table of raw sensor readings with a bounded row count. |
|
|
256
|
+
| `Textarea` | `@atom/form/textarea` | A theme-aware multi-line text input with label, helper text, and validation state support. |
|
|
257
|
+
| `TippyTooltip` | `@molecule/feedback/tippy-tooltip` | A flexible and theme-aware tooltip component that displays additional information on hover. |
|
|
258
|
+
| `Toast` | `@molecule/feedback/toast` | A single, transient notification message that appears briefly to provide feedback. |
|
|
259
|
+
| `ToastProvider` | `@molecule/feedback/toast-provider` | Provides a context for displaying transient notifications (toasts). |
|
|
260
|
+
| `ToggleSwitch` | `@atom/form/toggle-switch` | A theme-aware toggle switch component, offering a boolean input alternative to a checkbox. |
|
|
261
|
+
| `useToast` | `@molecule/feedback/use-toast` | A React hook to easily add and dismiss toast notifications anywhere within a `ToastProvider`. |
|
|
262
|
+
| `WatchlistEngine` | `@molecule/block/watchlist-engine` | A self-contained financial watchlist showing tickers with live price, day change, market cap, and a risk grade. |
|
|
263
|
+
| `WaterPumpControl` | `@molecule/iot/water-pump-control` | An irrigation control block: choose automatic or manual operation and set the soil-moisture target the controller should hold. |
|
|
264
|
+
|
|
265
|
+
### Layouts (33)
|
|
266
|
+
|
|
267
|
+
| Name | SKU | What it is |
|
|
268
|
+
| --- | --- | --- |
|
|
269
|
+
| `AboutRamme` | `@chassis/layout/about-ramme` | The "About" panel for a Settings Console — what the framework is, which packages make it up, and why it is built this way. |
|
|
270
|
+
| `Accordion` | `@chassis/layout/accordion` | A container for multiple collapsible sections (`AccordionItem`s), useful for organizing content. |
|
|
271
|
+
| `AccordionItem` | `@chassis/layout/accordion-item` | A single, collapsible section within an `Accordion` component, consisting of a header and a hidden content body. |
|
|
272
|
+
| `ActionBar` | `@chassis/layout/action-bar` | A persistent bar, typically at the bottom of a form or page, used to group primary actions like 'Save' and 'Cancel'. |
|
|
273
|
+
| `AppShell` | `@chassis/layout/app-shell` | The viewport orchestrator — the outermost frame that owns the sidebar, header, toolbar, statusbar, and inspector slots and decides how they compose. |
|
|
274
|
+
| `AuthLayout` | `@chassis/layout/auth-layout` | The centred, chrome-free frame for unauthenticated screens, rendering the matched child route via an Outlet. |
|
|
275
|
+
| `ButtonItem` | `@chassis/layout/button-item` | A single row inside a UserNav menu — icon, label, action. |
|
|
276
|
+
| `Card` | `@chassis/layout/card` | The primary container atom for grouping related content. |
|
|
277
|
+
| `CardContent` | `@chassis/layout/card-content` | The main body zone of a Card. |
|
|
278
|
+
| `CardDescription` | `@chassis/layout/card-description` | A muted subtitle rendered below CardTitle inside a CardHeader. |
|
|
279
|
+
| `CardFooter` | `@chassis/layout/card-footer` | The bottom action zone of a Card. |
|
|
280
|
+
| `CardHeader` | `@chassis/layout/card-header` | The top zone of a Card. |
|
|
281
|
+
| `CardLabel` | `@chassis/layout/card-label` | A compact uppercase-tracking eyebrow label for a Card's header, optionally preceded by an icon. |
|
|
282
|
+
| `CardTitle` | `@chassis/layout/card-title` | The primary heading inside a CardHeader. |
|
|
283
|
+
| `CollectionLayout` | `@chassis/layout/collection-layout` | The standard page arrangement for any list of records — title, description, header actions, an optional metrics ribbon, an optional filter sidebar, and a bulk-action bar. |
|
|
284
|
+
| `DefinitionDescription` | `@chassis/layout/definition-description` | Represents the description for a term within a `DefinitionList`. |
|
|
285
|
+
| `DefinitionList` | `@chassis/layout/definition-list` | Displays a list of terms and their corresponding definitions. |
|
|
286
|
+
| `DefinitionTerm` | `@chassis/layout/definition-term` | Represents a term within a `DefinitionList`. |
|
|
287
|
+
| `DetailDrawer` | `@chassis/layout/detail-drawer` | A resizable side panel for inspecting one record without leaving the list. |
|
|
288
|
+
| `DeviceCard` | `@chassis/layout/device-card` | A specialized card designed to represent a physical device or a digital entity with live state. |
|
|
289
|
+
| `Drawer` | `@chassis/layout/drawer` | A slide-in panel that overlays the page from any edge. |
|
|
290
|
+
| `FilterPanel` | `@chassis/layout/filter-panel` | A bordered card container for a row of filter fields (selects, inputs, date ranges), laid out as a wrapping flex row with fields aligned to their bottom edge — the standard filter-bar shape used above a data table or grid. |
|
|
291
|
+
| `Header` | `@chassis/layout/header` | The top bar region of the app shell. |
|
|
292
|
+
| `List` | `@chassis/layout/list` | A component for displaying either ordered or unordered lists of `ListItem`s. |
|
|
293
|
+
| `ListItem` | `@chassis/layout/list-item` | Represents a single item within a `List` component. |
|
|
294
|
+
| `Modal` | `@chassis/layout/modal` | A centered dialog that blocks interaction with the page until dismissed. |
|
|
295
|
+
| `PageContainer` | `@chassis/layout/page-container` | Standard responsive padding wrapper for the content inside a page. |
|
|
296
|
+
| `SettingsContainer` | `@chassis/layout/settings-container` | The canonical settings page arrangement, with a fixed slot per section so every app's settings read the same way. |
|
|
297
|
+
| `Sheet` | `@chassis/layout/sheet` | A bottom sheet that opens at a partial height and grows to full screen as you drag or scroll it up. |
|
|
298
|
+
| `Sidebar` | `@chassis/layout/sidebar` | A collapsible, theme-aware application navigation rail. |
|
|
299
|
+
| `Statusbar` | `@chassis/layout/statusbar` | The persistent strip pinned to the bottom of the app shell. |
|
|
300
|
+
| `Toolbar` | `@chassis/layout/toolbar` | The secondary action strip that sits beneath the header. |
|
|
301
|
+
| `UserNav` | `@chassis/layout/user-nav` | The signed-in user's avatar menu — identity plus account actions. |
|
|
302
|
+
|
|
303
|
+
### Mock data (2)
|
|
304
|
+
|
|
305
|
+
| Name | SKU | What it is |
|
|
306
|
+
| --- | --- | --- |
|
|
307
|
+
| `mockChartData` | `@data/mock/mock-chart-data` | Pre-defined datasets for prototyping charts and other data-driven components. |
|
|
308
|
+
| `mockTableData` | `@data/mock/mock-table-data` | Pre-defined datasets for prototyping tables and other data-driven components. |
|
|
309
|
+
|
|
310
|
+
<!-- END GENERATED REFERENCE -->
|
|
159
311
|
|
|
160
312
|
---
|
|
161
313
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
const s = ({ children:
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
const s = ({ children: o, onClick: t }) => /* @__PURE__ */ r("button", { onClick: t, className: "px-3 py-1.5 bg-card-alt hover:bg-bg-hover border border-border rounded-full text-sm text-muted-foreground transition-colors", children: o }), a = ({ children: o }) => /* @__PURE__ */ r("div", { className: "flex flex-wrap gap-2 mt-3", children: o });
|
|
3
3
|
export {
|
|
4
4
|
a as Actions,
|
|
5
5
|
s as Suggestion
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as s, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { Icon as m } from "../../components/ui/Icon.js";
|
|
3
|
-
const i = ({ value:
|
|
3
|
+
const i = ({ value: r, onChange: t, onSubmit: o, placeholder: n = "Type your message..." }) => /* @__PURE__ */ s("form", { onSubmit: o, className: "flex items-center p-2 border-t border-border", children: [
|
|
4
4
|
/* @__PURE__ */ e(
|
|
5
5
|
"input",
|
|
6
6
|
{
|
|
7
7
|
type: "text",
|
|
8
|
-
placeholder:
|
|
9
|
-
className: "flex-1 p-2 bg-transparent focus:outline-none text-
|
|
10
|
-
value:
|
|
11
|
-
onChange:
|
|
8
|
+
placeholder: n,
|
|
9
|
+
className: "flex-1 p-2 bg-transparent focus:outline-none text-foreground",
|
|
10
|
+
value: r,
|
|
11
|
+
onChange: t
|
|
12
12
|
}
|
|
13
13
|
),
|
|
14
14
|
/* @__PURE__ */ e("button", { type: "submit", className: "p-2 text-primary hover:bg-primary/10 rounded-full transition-colors", children: /* @__PURE__ */ e(m, { name: "send" }) })
|