@maxhealth.tech/prefab 0.1.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/CHANGELOG.md +51 -0
- package/LICENSE +21 -0
- package/README.md +340 -0
- package/dist/actions/client.d.ts +98 -0
- package/dist/actions/client.d.ts.map +1 -0
- package/dist/actions/client.js +188 -0
- package/dist/actions/client.js.map +1 -0
- package/dist/actions/index.d.ts +6 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +3 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/mcp.d.ts +37 -0
- package/dist/actions/mcp.d.ts.map +1 -0
- package/dist/actions/mcp.js +64 -0
- package/dist/actions/mcp.js.map +1 -0
- package/dist/actions/types.d.ts +16 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/actions/types.js +8 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/app.d.ts +65 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +120 -0
- package/dist/app.js.map +1 -0
- package/dist/auto/chart.d.ts +36 -0
- package/dist/auto/chart.d.ts.map +1 -0
- package/dist/auto/chart.js +50 -0
- package/dist/auto/chart.js.map +1 -0
- package/dist/auto/comparison.d.ts +32 -0
- package/dist/auto/comparison.d.ts.map +1 -0
- package/dist/auto/comparison.js +66 -0
- package/dist/auto/comparison.js.map +1 -0
- package/dist/auto/form.d.ts +50 -0
- package/dist/auto/form.d.ts.map +1 -0
- package/dist/auto/form.js +68 -0
- package/dist/auto/form.js.map +1 -0
- package/dist/auto/index.d.ts +84 -0
- package/dist/auto/index.d.ts.map +1 -0
- package/dist/auto/index.js +240 -0
- package/dist/auto/index.js.map +1 -0
- package/dist/auto/metrics.d.ts +44 -0
- package/dist/auto/metrics.d.ts.map +1 -0
- package/dist/auto/metrics.js +55 -0
- package/dist/auto/metrics.js.map +1 -0
- package/dist/auto/progress.d.ts +38 -0
- package/dist/auto/progress.d.ts.map +1 -0
- package/dist/auto/progress.js +72 -0
- package/dist/auto/progress.js.map +1 -0
- package/dist/auto/timeline.d.ts +41 -0
- package/dist/auto/timeline.d.ts.map +1 -0
- package/dist/auto/timeline.js +72 -0
- package/dist/auto/timeline.js.map +1 -0
- package/dist/components/alert/index.d.ts +14 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +31 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/card/index.d.ts +12 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +33 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/charts/index.d.ts +57 -0
- package/dist/components/charts/index.d.ts.map +1 -0
- package/dist/components/charts/index.js +91 -0
- package/dist/components/charts/index.js.map +1 -0
- package/dist/components/control/index.d.ts +48 -0
- package/dist/components/control/index.d.ts.map +1 -0
- package/dist/components/control/index.js +47 -0
- package/dist/components/control/index.js.map +1 -0
- package/dist/components/data/index.d.ts +53 -0
- package/dist/components/data/index.d.ts.map +1 -0
- package/dist/components/data/index.js +88 -0
- package/dist/components/data/index.js.map +1 -0
- package/dist/components/form/index.d.ts +103 -0
- package/dist/components/form/index.d.ts.map +1 -0
- package/dist/components/form/index.js +247 -0
- package/dist/components/form/index.js.map +1 -0
- package/dist/components/interactive/index.d.ts +33 -0
- package/dist/components/interactive/index.d.ts.map +1 -0
- package/dist/components/interactive/index.js +59 -0
- package/dist/components/interactive/index.js.map +1 -0
- package/dist/components/layout/index.d.ts +61 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +86 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/media/index.d.ts +17 -0
- package/dist/components/media/index.d.ts.map +1 -0
- package/dist/components/media/index.js +41 -0
- package/dist/components/media/index.js.map +1 -0
- package/dist/components/table/index.d.ts +28 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +56 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/typography/index.d.ts +34 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/components/typography/index.js +93 -0
- package/dist/components/typography/index.js.map +1 -0
- package/dist/core/component.d.ts +67 -0
- package/dist/core/component.d.ts.map +1 -0
- package/dist/core/component.js +122 -0
- package/dist/core/component.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/validate.d.ts +30 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +178 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/display.d.ts +102 -0
- package/dist/mcp/display.d.ts.map +1 -0
- package/dist/mcp/display.js +124 -0
- package/dist/mcp/display.js.map +1 -0
- package/dist/mcp/index.d.ts +7 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/types.d.ts +35 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +8 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/renderer/actions.d.ts +36 -0
- package/dist/renderer/actions.d.ts.map +1 -0
- package/dist/renderer/actions.js +296 -0
- package/dist/renderer/actions.js.map +1 -0
- package/dist/renderer/app.d.ts +87 -0
- package/dist/renderer/app.d.ts.map +1 -0
- package/dist/renderer/app.js +166 -0
- package/dist/renderer/app.js.map +1 -0
- package/dist/renderer/bridge.d.ts +91 -0
- package/dist/renderer/bridge.d.ts.map +1 -0
- package/dist/renderer/bridge.js +302 -0
- package/dist/renderer/bridge.js.map +1 -0
- package/dist/renderer/components/alert.d.ts +5 -0
- package/dist/renderer/components/alert.d.ts.map +1 -0
- package/dist/renderer/components/alert.js +44 -0
- package/dist/renderer/components/alert.js.map +1 -0
- package/dist/renderer/components/card.d.ts +5 -0
- package/dist/renderer/components/card.d.ts.map +1 -0
- package/dist/renderer/components/card.js +38 -0
- package/dist/renderer/components/card.js.map +1 -0
- package/dist/renderer/components/charts.d.ts +8 -0
- package/dist/renderer/components/charts.d.ts.map +1 -0
- package/dist/renderer/components/charts.js +232 -0
- package/dist/renderer/components/charts.js.map +1 -0
- package/dist/renderer/components/control.d.ts +5 -0
- package/dist/renderer/components/control.d.ts.map +1 -0
- package/dist/renderer/components/control.js +140 -0
- package/dist/renderer/components/control.js.map +1 -0
- package/dist/renderer/components/data.d.ts +5 -0
- package/dist/renderer/components/data.d.ts.map +1 -0
- package/dist/renderer/components/data.js +268 -0
- package/dist/renderer/components/data.js.map +1 -0
- package/dist/renderer/components/form.d.ts +5 -0
- package/dist/renderer/components/form.d.ts.map +1 -0
- package/dist/renderer/components/form.js +523 -0
- package/dist/renderer/components/form.js.map +1 -0
- package/dist/renderer/components/index.d.ts +5 -0
- package/dist/renderer/components/index.d.ts.map +1 -0
- package/dist/renderer/components/index.js +32 -0
- package/dist/renderer/components/index.js.map +1 -0
- package/dist/renderer/components/interactive.d.ts +5 -0
- package/dist/renderer/components/interactive.d.ts.map +1 -0
- package/dist/renderer/components/interactive.js +324 -0
- package/dist/renderer/components/interactive.js.map +1 -0
- package/dist/renderer/components/layout.d.ts +5 -0
- package/dist/renderer/components/layout.d.ts.map +1 -0
- package/dist/renderer/components/layout.js +113 -0
- package/dist/renderer/components/layout.js.map +1 -0
- package/dist/renderer/components/media.d.ts +5 -0
- package/dist/renderer/components/media.d.ts.map +1 -0
- package/dist/renderer/components/media.js +132 -0
- package/dist/renderer/components/media.js.map +1 -0
- package/dist/renderer/components/table.d.ts +5 -0
- package/dist/renderer/components/table.d.ts.map +1 -0
- package/dist/renderer/components/table.js +101 -0
- package/dist/renderer/components/table.js.map +1 -0
- package/dist/renderer/components/typography.d.ts +5 -0
- package/dist/renderer/components/typography.d.ts.map +1 -0
- package/dist/renderer/components/typography.js +90 -0
- package/dist/renderer/components/typography.js.map +1 -0
- package/dist/renderer/engine.d.ts +53 -0
- package/dist/renderer/engine.d.ts.map +1 -0
- package/dist/renderer/engine.js +112 -0
- package/dist/renderer/engine.js.map +1 -0
- package/dist/renderer/index.d.ts +94 -0
- package/dist/renderer/index.d.ts.map +1 -0
- package/dist/renderer/index.js +215 -0
- package/dist/renderer/index.js.map +1 -0
- package/dist/renderer/rx.d.ts +37 -0
- package/dist/renderer/rx.d.ts.map +1 -0
- package/dist/renderer/rx.js +360 -0
- package/dist/renderer/rx.js.map +1 -0
- package/dist/renderer/state.d.ts +34 -0
- package/dist/renderer/state.d.ts.map +1 -0
- package/dist/renderer/state.js +132 -0
- package/dist/renderer/state.js.map +1 -0
- package/dist/renderer/theme.d.ts +13 -0
- package/dist/renderer/theme.d.ts.map +1 -0
- package/dist/renderer/theme.js +69 -0
- package/dist/renderer/theme.js.map +1 -0
- package/dist/renderer/transport.d.ts +22 -0
- package/dist/renderer/transport.d.ts.map +1 -0
- package/dist/renderer/transport.js +69 -0
- package/dist/renderer/transport.js.map +1 -0
- package/dist/renderer.min.js +83 -0
- package/dist/rx/index.d.ts +2 -0
- package/dist/rx/index.d.ts.map +1 -0
- package/dist/rx/index.js +2 -0
- package/dist/rx/index.js.map +1 -0
- package/dist/rx/rx.d.ts +81 -0
- package/dist/rx/rx.d.ts.map +1 -0
- package/dist/rx/rx.js +196 -0
- package/dist/rx/rx.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive components — Tabs, Accordion, Dialog, Popover, Tooltip, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { ContainerComponent } from '../../core/component.js';
|
|
5
|
+
// ── Tabs + Tab ───────────────────────────────────────────────────────────────
|
|
6
|
+
export function Tabs(props) {
|
|
7
|
+
return new ContainerComponent('Tabs', props);
|
|
8
|
+
}
|
|
9
|
+
export function Tab(props) {
|
|
10
|
+
const c = new ContainerComponent('Tab', props);
|
|
11
|
+
c.getProps = () => ({ title: props.title });
|
|
12
|
+
return c;
|
|
13
|
+
}
|
|
14
|
+
// ── Accordion + AccordionItem ────────────────────────────────────────────────
|
|
15
|
+
export function Accordion(props) {
|
|
16
|
+
return new ContainerComponent('Accordion', props);
|
|
17
|
+
}
|
|
18
|
+
export function AccordionItem(props) {
|
|
19
|
+
const c = new ContainerComponent('AccordionItem', props);
|
|
20
|
+
c.getProps = () => ({ title: props.title });
|
|
21
|
+
return c;
|
|
22
|
+
}
|
|
23
|
+
export function Dialog(props) {
|
|
24
|
+
const c = new ContainerComponent('Dialog', props);
|
|
25
|
+
c.getProps = () => ({
|
|
26
|
+
...(props.title && { title: props.title }),
|
|
27
|
+
...(props.description && { description: props.description }),
|
|
28
|
+
...(props.trigger && { trigger: props.trigger.toJSON() }),
|
|
29
|
+
...(props.name && { name: props.name }),
|
|
30
|
+
...(props.dismissible !== undefined && { dismissible: props.dismissible }),
|
|
31
|
+
});
|
|
32
|
+
return c;
|
|
33
|
+
}
|
|
34
|
+
export function Popover(props) {
|
|
35
|
+
const c = new ContainerComponent('Popover', props);
|
|
36
|
+
c.getProps = () => ({
|
|
37
|
+
...(props.title && { title: props.title }),
|
|
38
|
+
...(props.description && { description: props.description }),
|
|
39
|
+
...(props.side && { side: props.side }),
|
|
40
|
+
});
|
|
41
|
+
return c;
|
|
42
|
+
}
|
|
43
|
+
// ── Tooltip ──────────────────────────────────────────────────────────────────
|
|
44
|
+
export function Tooltip(content, props) {
|
|
45
|
+
const c = new ContainerComponent('Tooltip', props);
|
|
46
|
+
c.getProps = () => ({ content: String(content) });
|
|
47
|
+
return c;
|
|
48
|
+
}
|
|
49
|
+
// ── HoverCard ────────────────────────────────────────────────────────────────
|
|
50
|
+
export function HoverCard(content, props) {
|
|
51
|
+
const c = new ContainerComponent('HoverCard', props);
|
|
52
|
+
c.getProps = () => ({ content: String(content) });
|
|
53
|
+
return c;
|
|
54
|
+
}
|
|
55
|
+
// ── Carousel ─────────────────────────────────────────────────────────────────
|
|
56
|
+
export function Carousel(props) {
|
|
57
|
+
return new ContainerComponent('Carousel', props);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/interactive/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout components — Column, Row, Grid, Container, Div, Span, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { ContainerComponent, type Component } from '../../core/component.js';
|
|
5
|
+
import type { ContainerProps } from '../../core/component.js';
|
|
6
|
+
export interface ColumnProps extends ContainerProps {
|
|
7
|
+
gap?: number;
|
|
8
|
+
align?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function Column(props: ColumnProps & {
|
|
11
|
+
children?: Component[];
|
|
12
|
+
}): ContainerComponent;
|
|
13
|
+
export interface RowProps extends ContainerProps {
|
|
14
|
+
gap?: number;
|
|
15
|
+
align?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function Row(props: RowProps & {
|
|
18
|
+
children?: Component[];
|
|
19
|
+
}): ContainerComponent;
|
|
20
|
+
export interface GridProps extends ContainerProps {
|
|
21
|
+
columns?: number | Record<string, number>;
|
|
22
|
+
gap?: number;
|
|
23
|
+
minColumnWidth?: string;
|
|
24
|
+
align?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function Grid(props: GridProps & {
|
|
27
|
+
children?: Component[];
|
|
28
|
+
}): ContainerComponent;
|
|
29
|
+
export interface GridItemProps extends ContainerProps {
|
|
30
|
+
colSpan?: number;
|
|
31
|
+
rowSpan?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function GridItem(props: GridItemProps & {
|
|
34
|
+
children?: Component[];
|
|
35
|
+
}): ContainerComponent;
|
|
36
|
+
export declare function Container(props?: ContainerProps): ContainerComponent;
|
|
37
|
+
export declare function Div(props?: ContainerProps): ContainerComponent;
|
|
38
|
+
export declare function Span(props?: ContainerProps): ContainerComponent;
|
|
39
|
+
export interface DashboardProps extends ContainerProps {
|
|
40
|
+
columns?: number;
|
|
41
|
+
rowHeight?: number;
|
|
42
|
+
gap?: number;
|
|
43
|
+
}
|
|
44
|
+
export declare function Dashboard(props: DashboardProps & {
|
|
45
|
+
children?: Component[];
|
|
46
|
+
}): ContainerComponent;
|
|
47
|
+
export interface DashboardItemProps extends ContainerProps {
|
|
48
|
+
col?: number;
|
|
49
|
+
row?: number;
|
|
50
|
+
colSpan?: number;
|
|
51
|
+
rowSpan?: number;
|
|
52
|
+
}
|
|
53
|
+
export declare function DashboardItem(props: DashboardItemProps & {
|
|
54
|
+
children?: Component[];
|
|
55
|
+
}): ContainerComponent;
|
|
56
|
+
export declare function Pages(props?: ContainerProps): ContainerComponent;
|
|
57
|
+
export interface PageProps extends ContainerProps {
|
|
58
|
+
name: string;
|
|
59
|
+
}
|
|
60
|
+
export declare function Page(props: PageProps): ContainerComponent;
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAI7D,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAY1F;AAID,MAAM,WAAW,QAAS,SAAQ,cAAc;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CASpF;AAID,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAStF;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAO9F;AAID,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEpE;AAID,wBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAE9D;AAID,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAE/D;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CAQhG;AAID,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG,kBAAkB,CASxG;AAID,wBAAgB,KAAK,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEhE;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,CAIzD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout components — Column, Row, Grid, Container, Div, Span, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { ContainerComponent } from '../../core/component.js';
|
|
5
|
+
export function Column(props) {
|
|
6
|
+
// Compile gap into cssClass to match Python wire format
|
|
7
|
+
const gapClass = props.gap !== undefined ? `gap-${props.gap}` : undefined;
|
|
8
|
+
const mergedCss = [props.cssClass, gapClass].filter(Boolean).join(' ') || undefined;
|
|
9
|
+
const c = new ContainerComponent('Column', { ...props, cssClass: mergedCss });
|
|
10
|
+
Object.assign(c, { _gap: props.gap, _align: props.align });
|
|
11
|
+
const origGetProps = c.getProps.bind(c);
|
|
12
|
+
c.getProps = () => ({
|
|
13
|
+
...origGetProps(),
|
|
14
|
+
...(props.align && { align: props.align }),
|
|
15
|
+
});
|
|
16
|
+
return c;
|
|
17
|
+
}
|
|
18
|
+
export function Row(props) {
|
|
19
|
+
// Compile gap into cssClass to match Python wire format
|
|
20
|
+
const gapClass = props.gap !== undefined ? `gap-${props.gap}` : undefined;
|
|
21
|
+
const mergedCss = [props.cssClass, gapClass].filter(Boolean).join(' ') || undefined;
|
|
22
|
+
const c = new ContainerComponent('Row', { ...props, cssClass: mergedCss });
|
|
23
|
+
c.getProps = () => ({
|
|
24
|
+
...(props.align && { align: props.align }),
|
|
25
|
+
});
|
|
26
|
+
return c;
|
|
27
|
+
}
|
|
28
|
+
export function Grid(props) {
|
|
29
|
+
const c = new ContainerComponent('Grid', props);
|
|
30
|
+
c.getProps = () => ({
|
|
31
|
+
...(props.columns !== undefined && { columns: props.columns }),
|
|
32
|
+
...(props.gap !== undefined && { gap: props.gap }),
|
|
33
|
+
...(props.minColumnWidth && { minColumnWidth: props.minColumnWidth }),
|
|
34
|
+
...(props.align && { align: props.align }),
|
|
35
|
+
});
|
|
36
|
+
return c;
|
|
37
|
+
}
|
|
38
|
+
export function GridItem(props) {
|
|
39
|
+
const c = new ContainerComponent('GridItem', props);
|
|
40
|
+
c.getProps = () => ({
|
|
41
|
+
...(props.colSpan !== undefined && { colSpan: props.colSpan }),
|
|
42
|
+
...(props.rowSpan !== undefined && { rowSpan: props.rowSpan }),
|
|
43
|
+
});
|
|
44
|
+
return c;
|
|
45
|
+
}
|
|
46
|
+
// ── Container ────────────────────────────────────────────────────────────────
|
|
47
|
+
export function Container(props) {
|
|
48
|
+
return new ContainerComponent('Container', props);
|
|
49
|
+
}
|
|
50
|
+
// ── Div ──────────────────────────────────────────────────────────────────────
|
|
51
|
+
export function Div(props) {
|
|
52
|
+
return new ContainerComponent('Div', props);
|
|
53
|
+
}
|
|
54
|
+
// ── Span ─────────────────────────────────────────────────────────────────────
|
|
55
|
+
export function Span(props) {
|
|
56
|
+
return new ContainerComponent('Span', props);
|
|
57
|
+
}
|
|
58
|
+
export function Dashboard(props) {
|
|
59
|
+
const c = new ContainerComponent('Dashboard', props);
|
|
60
|
+
c.getProps = () => ({
|
|
61
|
+
...(props.columns !== undefined && { columns: props.columns }),
|
|
62
|
+
...(props.rowHeight !== undefined && { rowHeight: props.rowHeight }),
|
|
63
|
+
...(props.gap !== undefined && { gap: props.gap }),
|
|
64
|
+
});
|
|
65
|
+
return c;
|
|
66
|
+
}
|
|
67
|
+
export function DashboardItem(props) {
|
|
68
|
+
const c = new ContainerComponent('DashboardItem', props);
|
|
69
|
+
c.getProps = () => ({
|
|
70
|
+
...(props.col !== undefined && { col: props.col }),
|
|
71
|
+
...(props.row !== undefined && { row: props.row }),
|
|
72
|
+
...(props.colSpan !== undefined && { colSpan: props.colSpan }),
|
|
73
|
+
...(props.rowSpan !== undefined && { rowSpan: props.rowSpan }),
|
|
74
|
+
});
|
|
75
|
+
return c;
|
|
76
|
+
}
|
|
77
|
+
// ── Pages + Page ─────────────────────────────────────────────────────────────
|
|
78
|
+
export function Pages(props) {
|
|
79
|
+
return new ContainerComponent('Pages', props);
|
|
80
|
+
}
|
|
81
|
+
export function Page(props) {
|
|
82
|
+
const c = new ContainerComponent('Page', props);
|
|
83
|
+
c.getProps = () => ({ name: props.name });
|
|
84
|
+
return c;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/layout/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media components — Image, Audio, Video, Embed, Svg, DropZone, Mermaid
|
|
3
|
+
*/
|
|
4
|
+
import { Component } from '../../core/component.js';
|
|
5
|
+
import type { ComponentProps } from '../../core/component.js';
|
|
6
|
+
export interface ImageProps extends ComponentProps {
|
|
7
|
+
src: string;
|
|
8
|
+
alt?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function Image(props: ImageProps): Component;
|
|
11
|
+
export declare function Audio(src: string, props?: ComponentProps): Component;
|
|
12
|
+
export declare function Video(src: string, props?: ComponentProps): Component;
|
|
13
|
+
export declare function Embed(src: string, props?: ComponentProps): Component;
|
|
14
|
+
export declare function Svg(content: string, props?: ComponentProps): Component;
|
|
15
|
+
export declare function DropZone(props?: ComponentProps): Component;
|
|
16
|
+
export declare function Mermaid(content: string, props?: ComponentProps): Component;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/media/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAOlD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAIpE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAIpE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAIpE;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAItE;AAED,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAE1D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAI1E"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media components — Image, Audio, Video, Embed, Svg, DropZone, Mermaid
|
|
3
|
+
*/
|
|
4
|
+
import { Component } from '../../core/component.js';
|
|
5
|
+
export function Image(props) {
|
|
6
|
+
const c = new Component('Image', props);
|
|
7
|
+
c.getProps = () => ({
|
|
8
|
+
src: props.src,
|
|
9
|
+
...(props.alt && { alt: props.alt }),
|
|
10
|
+
});
|
|
11
|
+
return c;
|
|
12
|
+
}
|
|
13
|
+
export function Audio(src, props) {
|
|
14
|
+
const c = new Component('Audio', props);
|
|
15
|
+
c.getProps = () => ({ src });
|
|
16
|
+
return c;
|
|
17
|
+
}
|
|
18
|
+
export function Video(src, props) {
|
|
19
|
+
const c = new Component('Video', props);
|
|
20
|
+
c.getProps = () => ({ src });
|
|
21
|
+
return c;
|
|
22
|
+
}
|
|
23
|
+
export function Embed(src, props) {
|
|
24
|
+
const c = new Component('Embed', props);
|
|
25
|
+
c.getProps = () => ({ src });
|
|
26
|
+
return c;
|
|
27
|
+
}
|
|
28
|
+
export function Svg(content, props) {
|
|
29
|
+
const c = new Component('Svg', props);
|
|
30
|
+
c.getProps = () => ({ content });
|
|
31
|
+
return c;
|
|
32
|
+
}
|
|
33
|
+
export function DropZone(props) {
|
|
34
|
+
return new Component('DropZone', props);
|
|
35
|
+
}
|
|
36
|
+
export function Mermaid(content, props) {
|
|
37
|
+
const c = new Component('Mermaid', props);
|
|
38
|
+
c.getProps = () => ({ content });
|
|
39
|
+
return c;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/media/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAQnD,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QAClB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;KACrC,CAAC,CAAA;IACF,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,KAAsB;IACvD,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5B,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,KAAsB;IACvD,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5B,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,KAAsB;IACvD,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5B,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,KAAsB;IACzD,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACrC,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC7C,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,KAAsB;IAC7D,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAChC,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table components — raw HTML table primitives for manual table building.
|
|
3
|
+
*
|
|
4
|
+
* These complement DataTable (which auto-generates from rows/columns).
|
|
5
|
+
* Use these when you need full control over table structure.
|
|
6
|
+
*/
|
|
7
|
+
import { Component, ContainerComponent } from '../../core/component.js';
|
|
8
|
+
import type { ContainerProps, ComponentProps, RxStr } from '../../core/component.js';
|
|
9
|
+
export declare function Table(props?: ContainerProps): ContainerComponent;
|
|
10
|
+
export declare function TableHead(props?: ContainerProps): ContainerComponent;
|
|
11
|
+
export declare function TableBody(props?: ContainerProps): ContainerComponent;
|
|
12
|
+
export declare function TableFooter(props?: ContainerProps): ContainerComponent;
|
|
13
|
+
export declare function TableRow(props?: ContainerProps): ContainerComponent;
|
|
14
|
+
export declare function TableHeader(content: RxStr, props?: ComponentProps): Component;
|
|
15
|
+
export interface TableCellProps extends ContainerProps {
|
|
16
|
+
colSpan?: number;
|
|
17
|
+
rowSpan?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function TableCell(props?: TableCellProps): ContainerComponent;
|
|
20
|
+
export declare function TableCaption(content: RxStr, props?: ComponentProps): Component;
|
|
21
|
+
export interface ExpandableRowProps extends ContainerProps {
|
|
22
|
+
/** Content shown in the summary/collapsed row */
|
|
23
|
+
summary: Component[];
|
|
24
|
+
/** State key to track expanded state */
|
|
25
|
+
stateKey?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function ExpandableRow(props: ExpandableRowProps): ContainerComponent;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAIpF,wBAAgB,KAAK,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEhE;AAID,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEpE;AAID,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEpE;AAID,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEtE;AAID,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAEnE;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAI7E;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,kBAAkB,CAOpE;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAI9E;AAID,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,iDAAiD;IACjD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAO3E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table components — raw HTML table primitives for manual table building.
|
|
3
|
+
*
|
|
4
|
+
* These complement DataTable (which auto-generates from rows/columns).
|
|
5
|
+
* Use these when you need full control over table structure.
|
|
6
|
+
*/
|
|
7
|
+
import { Component, ContainerComponent } from '../../core/component.js';
|
|
8
|
+
// ── Table ────────────────────────────────────────────────────────────────────
|
|
9
|
+
export function Table(props) {
|
|
10
|
+
return new ContainerComponent('Table', props);
|
|
11
|
+
}
|
|
12
|
+
// ── TableHead ────────────────────────────────────────────────────────────────
|
|
13
|
+
export function TableHead(props) {
|
|
14
|
+
return new ContainerComponent('TableHead', props);
|
|
15
|
+
}
|
|
16
|
+
// ── TableBody ────────────────────────────────────────────────────────────────
|
|
17
|
+
export function TableBody(props) {
|
|
18
|
+
return new ContainerComponent('TableBody', props);
|
|
19
|
+
}
|
|
20
|
+
// ── TableFooter ──────────────────────────────────────────────────────────────
|
|
21
|
+
export function TableFooter(props) {
|
|
22
|
+
return new ContainerComponent('TableFooter', props);
|
|
23
|
+
}
|
|
24
|
+
// ── TableRow ─────────────────────────────────────────────────────────────────
|
|
25
|
+
export function TableRow(props) {
|
|
26
|
+
return new ContainerComponent('TableRow', props);
|
|
27
|
+
}
|
|
28
|
+
// ── TableHeader ──────────────────────────────────────────────────────────────
|
|
29
|
+
export function TableHeader(content, props) {
|
|
30
|
+
const c = new Component('TableHeader', props);
|
|
31
|
+
c.getProps = () => ({ content: String(content) });
|
|
32
|
+
return c;
|
|
33
|
+
}
|
|
34
|
+
export function TableCell(props) {
|
|
35
|
+
const c = new ContainerComponent('TableCell', props);
|
|
36
|
+
c.getProps = () => ({
|
|
37
|
+
...(props?.colSpan !== undefined && { colSpan: props.colSpan }),
|
|
38
|
+
...(props?.rowSpan !== undefined && { rowSpan: props.rowSpan }),
|
|
39
|
+
});
|
|
40
|
+
return c;
|
|
41
|
+
}
|
|
42
|
+
// ── TableCaption ─────────────────────────────────────────────────────────────
|
|
43
|
+
export function TableCaption(content, props) {
|
|
44
|
+
const c = new Component('TableCaption', props);
|
|
45
|
+
c.getProps = () => ({ content: String(content) });
|
|
46
|
+
return c;
|
|
47
|
+
}
|
|
48
|
+
export function ExpandableRow(props) {
|
|
49
|
+
const c = new ContainerComponent('ExpandableRow', props);
|
|
50
|
+
c.getProps = () => ({
|
|
51
|
+
summary: props.summary.map(s => s.toJSON()),
|
|
52
|
+
...(props.stateKey && { stateKey: props.stateKey }),
|
|
53
|
+
});
|
|
54
|
+
return c;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/table/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,gFAAgF;AAEhF,MAAM,UAAU,KAAK,CAAC,KAAsB;IAC1C,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC/C,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,WAAW,CAAC,KAAsB;IAChD,OAAO,IAAI,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;AACrD,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC7C,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAClD,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,WAAW,CAAC,OAAc,EAAE,KAAsB;IAChE,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAA;AACV,CAAC;AASD,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,MAAM,CAAC,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QAClB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;KAChE,CAAC,CAAA;IACF,OAAO,CAAC,CAAA;AACV,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,YAAY,CAAC,OAAc,EAAE,KAAsB;IACjE,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACjD,OAAO,CAAC,CAAA;AACV,CAAC;AAWD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,CAAC,GAAG,IAAI,kBAAkB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IACxD,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KACpD,CAAC,CAAA;IACF,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typography components — Heading, Text, Muted, Code, Link, Markdown, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { Component } from '../../core/component.js';
|
|
5
|
+
import type { ComponentProps, RxStr } from '../../core/component.js';
|
|
6
|
+
export interface HeadingProps extends ComponentProps {
|
|
7
|
+
level?: 1 | 2 | 3 | 4;
|
|
8
|
+
}
|
|
9
|
+
export declare function Heading(content: RxStr, props?: HeadingProps): Component;
|
|
10
|
+
export declare function H1(content: RxStr, props?: ComponentProps): Component;
|
|
11
|
+
export declare function H2(content: RxStr, props?: ComponentProps): Component;
|
|
12
|
+
export declare function H3(content: RxStr, props?: ComponentProps): Component;
|
|
13
|
+
export declare function H4(content: RxStr, props?: ComponentProps): Component;
|
|
14
|
+
export interface TextProps extends ComponentProps {
|
|
15
|
+
bold?: boolean;
|
|
16
|
+
code?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function Text(content: RxStr, props?: TextProps): Component;
|
|
19
|
+
export declare function P(content: RxStr, props?: ComponentProps): Component;
|
|
20
|
+
export declare function Lead(content: RxStr, props?: ComponentProps): Component;
|
|
21
|
+
export declare function Large(content: RxStr, props?: ComponentProps): Component;
|
|
22
|
+
export declare function Small(content: RxStr, props?: ComponentProps): Component;
|
|
23
|
+
export declare function Muted(content: RxStr, props?: ComponentProps): Component;
|
|
24
|
+
export declare function BlockQuote(content: RxStr, props?: ComponentProps): Component;
|
|
25
|
+
export declare function Label(content: RxStr, props?: ComponentProps): Component;
|
|
26
|
+
export interface LinkProps extends ComponentProps {
|
|
27
|
+
href: string;
|
|
28
|
+
target?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare function Link(content: RxStr, props: LinkProps): Component;
|
|
31
|
+
export declare function Code(content: RxStr, props?: ComponentProps): Component;
|
|
32
|
+
export declare function Markdown(content: RxStr, props?: ComponentProps): Component;
|
|
33
|
+
export declare function Kbd(label: string, props?: ComponentProps): Component;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/typography/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAepE,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACtB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAKvE;AAID,wBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEpE;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEpE;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEpE;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEpE;AAID,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAWjE;AAED,wBAAgB,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEnE;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEtE;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEvE;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEvE;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEvE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAE5E;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEvE;AAID,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAShE;AAID,wBAAgB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAEtE;AAID,wBAAgB,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAE1E;AAID,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAKpE"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typography components — Heading, Text, Muted, Code, Link, Markdown, etc.
|
|
3
|
+
*/
|
|
4
|
+
import { Component } from '../../core/component.js';
|
|
5
|
+
// ── Helpers ──────────────────────────────────────────────────────────────────
|
|
6
|
+
class TextComponent extends Component {
|
|
7
|
+
content;
|
|
8
|
+
constructor(type, content, props) {
|
|
9
|
+
super(type, props);
|
|
10
|
+
this.content = content;
|
|
11
|
+
}
|
|
12
|
+
getProps() {
|
|
13
|
+
return { content: String(this.content) };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function Heading(content, props) {
|
|
17
|
+
const c = new TextComponent('Heading', content, props);
|
|
18
|
+
const origGetProps = c.getProps.bind(c);
|
|
19
|
+
c.getProps = () => ({ ...origGetProps(), level: props?.level ?? 1 });
|
|
20
|
+
return c;
|
|
21
|
+
}
|
|
22
|
+
// ── Shorthand headings ───────────────────────────────────────────────────────
|
|
23
|
+
export function H1(content, props) {
|
|
24
|
+
return Heading(content, { ...props, level: 1 });
|
|
25
|
+
}
|
|
26
|
+
export function H2(content, props) {
|
|
27
|
+
return Heading(content, { ...props, level: 2 });
|
|
28
|
+
}
|
|
29
|
+
export function H3(content, props) {
|
|
30
|
+
return Heading(content, { ...props, level: 3 });
|
|
31
|
+
}
|
|
32
|
+
export function H4(content, props) {
|
|
33
|
+
return Heading(content, { ...props, level: 4 });
|
|
34
|
+
}
|
|
35
|
+
export function Text(content, props) {
|
|
36
|
+
const c = new TextComponent('Text', content, props);
|
|
37
|
+
if (props?.bold || props?.code) {
|
|
38
|
+
const origGetProps = c.getProps.bind(c);
|
|
39
|
+
c.getProps = () => ({
|
|
40
|
+
...origGetProps(),
|
|
41
|
+
...(props.bold && { bold: true }),
|
|
42
|
+
...(props.code && { code: true }),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return c;
|
|
46
|
+
}
|
|
47
|
+
export function P(content, props) {
|
|
48
|
+
return new TextComponent('P', content, props);
|
|
49
|
+
}
|
|
50
|
+
export function Lead(content, props) {
|
|
51
|
+
return new TextComponent('Lead', content, props);
|
|
52
|
+
}
|
|
53
|
+
export function Large(content, props) {
|
|
54
|
+
return new TextComponent('Large', content, props);
|
|
55
|
+
}
|
|
56
|
+
export function Small(content, props) {
|
|
57
|
+
return new TextComponent('Small', content, props);
|
|
58
|
+
}
|
|
59
|
+
export function Muted(content, props) {
|
|
60
|
+
return new TextComponent('Muted', content, props);
|
|
61
|
+
}
|
|
62
|
+
export function BlockQuote(content, props) {
|
|
63
|
+
return new TextComponent('BlockQuote', content, props);
|
|
64
|
+
}
|
|
65
|
+
export function Label(content, props) {
|
|
66
|
+
return new TextComponent('Label', content, props);
|
|
67
|
+
}
|
|
68
|
+
export function Link(content, props) {
|
|
69
|
+
const c = new TextComponent('Link', content, props);
|
|
70
|
+
const origGetProps = c.getProps.bind(c);
|
|
71
|
+
c.getProps = () => ({
|
|
72
|
+
...origGetProps(),
|
|
73
|
+
href: props.href,
|
|
74
|
+
...(props.target && { target: props.target }),
|
|
75
|
+
});
|
|
76
|
+
return c;
|
|
77
|
+
}
|
|
78
|
+
// ── Code ─────────────────────────────────────────────────────────────────────
|
|
79
|
+
export function Code(content, props) {
|
|
80
|
+
return new TextComponent('Code', content, props);
|
|
81
|
+
}
|
|
82
|
+
// ── Markdown ─────────────────────────────────────────────────────────────────
|
|
83
|
+
export function Markdown(content, props) {
|
|
84
|
+
return new TextComponent('Markdown', content, props);
|
|
85
|
+
}
|
|
86
|
+
// ── Kbd ──────────────────────────────────────────────────────────────────────
|
|
87
|
+
export function Kbd(label, props) {
|
|
88
|
+
const c = new TextComponent('Kbd', label, props);
|
|
89
|
+
const origGetProps = c.getProps.bind(c);
|
|
90
|
+
c.getProps = () => ({ ...origGetProps(), label });
|
|
91
|
+
return c;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/typography/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core component base classes.
|
|
3
|
+
*
|
|
4
|
+
* Every UI component inherits from Component. Container components
|
|
5
|
+
* (Column, Row, Card, etc.) extend ContainerComponent which adds children.
|
|
6
|
+
* StatefulMixin adds name/value tracking for form elements.
|
|
7
|
+
*
|
|
8
|
+
* Serialization: Components produce a flat JSON tree matching the
|
|
9
|
+
* Python prefab-ui wire format:
|
|
10
|
+
* { type: "Button", label: "Hi", variant: "default" }
|
|
11
|
+
* { type: "Column", gap: 4, children: [...] }
|
|
12
|
+
*/
|
|
13
|
+
import type { Action, ActionJSON } from '../actions/types.js';
|
|
14
|
+
import type { Rx } from '../rx/rx.js';
|
|
15
|
+
/** Any value that can be a plain string or a reactive Rx expression */
|
|
16
|
+
export type RxStr = string | Rx;
|
|
17
|
+
/** Serialized component JSON */
|
|
18
|
+
export interface ComponentJSON {
|
|
19
|
+
type: string;
|
|
20
|
+
id?: string;
|
|
21
|
+
cssClass?: string;
|
|
22
|
+
onMount?: ActionJSON | ActionJSON[];
|
|
23
|
+
children?: ComponentJSON[];
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
}
|
|
26
|
+
/** Serialize a value for JSON output */
|
|
27
|
+
export declare function serializeValue(v: unknown): unknown;
|
|
28
|
+
export interface ComponentProps {
|
|
29
|
+
id?: string;
|
|
30
|
+
cssClass?: string;
|
|
31
|
+
onMount?: Action | Action[];
|
|
32
|
+
}
|
|
33
|
+
export declare class Component {
|
|
34
|
+
readonly componentType: string;
|
|
35
|
+
id?: string;
|
|
36
|
+
cssClass?: string;
|
|
37
|
+
onMount?: Action | Action[];
|
|
38
|
+
constructor(type: string, props?: ComponentProps);
|
|
39
|
+
/** Override in subclasses to add component-specific props */
|
|
40
|
+
getProps(): Record<string, unknown>;
|
|
41
|
+
toJSON(): ComponentJSON;
|
|
42
|
+
}
|
|
43
|
+
export interface ContainerProps extends ComponentProps {
|
|
44
|
+
children?: Component[];
|
|
45
|
+
}
|
|
46
|
+
export declare class ContainerComponent extends Component {
|
|
47
|
+
children: Component[];
|
|
48
|
+
constructor(type: string, props?: ContainerProps);
|
|
49
|
+
toJSON(): ComponentJSON;
|
|
50
|
+
}
|
|
51
|
+
export interface StatefulProps extends ComponentProps {
|
|
52
|
+
name: string;
|
|
53
|
+
value?: unknown;
|
|
54
|
+
onChange?: Action | Action[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Base class for stateful form components (Input, Checkbox, Select, etc.).
|
|
58
|
+
* Provides a `name` for state binding and an optional `onChange` action.
|
|
59
|
+
*/
|
|
60
|
+
export declare class StatefulComponent extends Component {
|
|
61
|
+
name: string;
|
|
62
|
+
value?: unknown;
|
|
63
|
+
onChange?: Action | Action[];
|
|
64
|
+
constructor(type: string, props: StatefulProps);
|
|
65
|
+
getProps(): Record<string, unknown>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/core/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAIrC,uEAAuE;AACvE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,CAAA;AAE/B,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AASD,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAiBlD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEf,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAOhD,6DAA6D;IAC7D,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAInC,MAAM,IAAI,aAAa;CAsBxB;AAID,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,QAAQ,EAAE,SAAS,EAAE,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc;IAKhD,MAAM,IAAI,aAAa;CAOxB;AAID,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC7B;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;gBAEhB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IAO9C,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAWpC"}
|