@cosmicdrift/kumiko-renderer-web 0.123.0 → 0.123.2
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/package.json +4 -4
- package/src/index.ts +6 -1
- package/src/primitives/index.tsx +28 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-renderer-web",
|
|
3
|
-
"version": "0.123.
|
|
3
|
+
"version": "0.123.2",
|
|
4
4
|
"description": "Web-platform bindings for @cosmicdrift/kumiko-renderer. HTML default-primitives, browser history-based navigation, EventSource-backed live events, and a one-call createKumikoApp that mounts the whole stack via react-dom.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"./styles.css": "./src/styles.css"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@cosmicdrift/kumiko-dispatcher-live": "0.123.
|
|
20
|
-
"@cosmicdrift/kumiko-headless": "0.123.
|
|
21
|
-
"@cosmicdrift/kumiko-renderer": "0.123.
|
|
19
|
+
"@cosmicdrift/kumiko-dispatcher-live": "0.123.2",
|
|
20
|
+
"@cosmicdrift/kumiko-headless": "0.123.2",
|
|
21
|
+
"@cosmicdrift/kumiko-renderer": "0.123.2",
|
|
22
22
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
23
23
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
24
24
|
"@radix-ui/react-label": "^2.1.8",
|
package/src/index.ts
CHANGED
|
@@ -124,7 +124,12 @@ export type { WorkspaceSwitcherProps } from "./layout/workspace-switcher";
|
|
|
124
124
|
export { WorkspaceSwitcher } from "./layout/workspace-switcher";
|
|
125
125
|
export { cn } from "./lib/cn";
|
|
126
126
|
export { postWithDownload } from "./lib/download";
|
|
127
|
-
export {
|
|
127
|
+
export {
|
|
128
|
+
BareFormProvider,
|
|
129
|
+
DefaultCard as Card,
|
|
130
|
+
defaultPrimitives,
|
|
131
|
+
FormScreenShell,
|
|
132
|
+
} from "./primitives";
|
|
128
133
|
export type { ActionMenuProps, MenuItemDef } from "./primitives/action-menu";
|
|
129
134
|
export { ActionMenu } from "./primitives/action-menu";
|
|
130
135
|
export {
|
package/src/primitives/index.tsx
CHANGED
|
@@ -517,9 +517,11 @@ function DefaultDataTable({
|
|
|
517
517
|
{emptyState ?? <span>No entries.</span>}
|
|
518
518
|
</div>
|
|
519
519
|
) : (
|
|
520
|
-
// dashboard-01-Muster:
|
|
521
|
-
//
|
|
522
|
-
|
|
520
|
+
// dashboard-01-Muster: `rounded-lg border`-Rahmen, die Header-Zeile
|
|
521
|
+
// trägt den bg-muted-Grauton. `bg-card` (statt transparent) → die Liste
|
|
522
|
+
// sitzt auf derselben Card-Fläche wie Forms; auf Themes mit farbigem
|
|
523
|
+
// Page-Background (z.B. Cream) matchen Listen sonst nicht die Cards.
|
|
524
|
+
<div className="overflow-hidden rounded-lg border bg-card">
|
|
523
525
|
<Table data-testid={testId}>
|
|
524
526
|
{tableInner(columns, rows, onRowClick, sort, onSortChange, rowActions, rowActionMode)}
|
|
525
527
|
</Table>
|
|
@@ -1382,7 +1384,7 @@ function DefaultForm({
|
|
|
1382
1384
|
data-testid={testId}
|
|
1383
1385
|
className="flex flex-col w-full"
|
|
1384
1386
|
>
|
|
1385
|
-
<
|
|
1387
|
+
<FormScreenShell>
|
|
1386
1388
|
<div className={cn(cardSurface(), "overflow-hidden")}>
|
|
1387
1389
|
{(title !== undefined || subtitle !== undefined) && (
|
|
1388
1390
|
<div className="px-6 pb-2 pt-5">
|
|
@@ -1426,11 +1428,32 @@ function DefaultForm({
|
|
|
1426
1428
|
</div>
|
|
1427
1429
|
)}
|
|
1428
1430
|
</div>
|
|
1429
|
-
</
|
|
1431
|
+
</FormScreenShell>
|
|
1430
1432
|
</form>
|
|
1431
1433
|
);
|
|
1432
1434
|
}
|
|
1433
1435
|
|
|
1436
|
+
// Kanonische Form/Settings-Shell: zentrierte max-w-3xl-Spalte mit Standard-
|
|
1437
|
+
// Screen-Padding. DefaultForm (configEdit/entityEdit) UND custom Settings-
|
|
1438
|
+
// Screens (url-settings, privacy-center) teilen sie → einheitliche Breite +
|
|
1439
|
+
// Zentrierung statt per-Screen-Wildwuchs. Inhalt nutzt Card-Primitives;
|
|
1440
|
+
// `className` (z.B. "flex flex-col gap-6") für Multi-Card-Stacks.
|
|
1441
|
+
export function FormScreenShell({
|
|
1442
|
+
children,
|
|
1443
|
+
className,
|
|
1444
|
+
testId,
|
|
1445
|
+
}: {
|
|
1446
|
+
readonly children: ReactNode;
|
|
1447
|
+
readonly className?: string;
|
|
1448
|
+
readonly testId?: string;
|
|
1449
|
+
}): ReactNode {
|
|
1450
|
+
return (
|
|
1451
|
+
<div data-testid={testId} className={cn("px-6 pt-6 pb-12 max-w-3xl w-full mx-auto", className)}>
|
|
1452
|
+
{children}
|
|
1453
|
+
</div>
|
|
1454
|
+
);
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1434
1457
|
function DefaultSection({ title, subtitle, children, actions, testId }: SectionProps): ReactNode {
|
|
1435
1458
|
const insideForm = useContext(InsideFormContext);
|
|
1436
1459
|
|