@reforma/components 0.1.5 → 0.2.0
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/dist/Scrollable/Scrollable.d.ts +1 -2
- package/dist/Scrollable/Scrollable.d.ts.map +1 -1
- package/dist/Scrollable/Scrollable.js +45 -38
- package/dist/Scrollable/Scrollable.js.map +1 -1
- package/dist/Scrollable/useScrollChrome.d.ts +1 -2
- package/dist/Scrollable/useScrollChrome.d.ts.map +1 -1
- package/dist/Scrollable/useScrollChrome.js +125 -110
- package/dist/Scrollable/useScrollChrome.js.map +1 -1
- package/dist/chat/ComposerBanner/ComposerBanner.d.ts +2 -1
- package/dist/chat/ComposerBanner/ComposerBanner.d.ts.map +1 -1
- package/dist/chat/ComposerBanner/ComposerBanner.js +37 -29
- package/dist/chat/ComposerBanner/ComposerBanner.js.map +1 -1
- package/dist/chat/ComposerBanner/ComposerBanner.module.css +1 -1
- package/dist/chat/ComposerBanner/ComposerBanner.module.css.js +5 -3
- package/dist/chat/ComposerBanner/ComposerBanner.module.css.js.map +1 -1
- package/dist/chat/Tool/agent/AgentTool.d.ts.map +1 -1
- package/dist/chat/Tool/agent/AgentTool.js +89 -90
- package/dist/chat/Tool/agent/AgentTool.js.map +1 -1
- package/dist/chat/Tool/edit/EditTool.js +1 -1
- package/dist/chat/Tool/edit/EditTool.js.map +1 -1
- package/dist/node_modules/zod/v4/classic/errors.js +38 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +21 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +822 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +561 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +262 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +97 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +35 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +79 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +308 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/memoizer.js +203 -0
- package/dist/node_modules/zod/v4/core/memoizer.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +113 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +59 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +41 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1104 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +380 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +465 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/zod/v4/locales/en.js +97 -0
- package/dist/node_modules/zod/v4/locales/en.js.map +1 -0
- package/dist/openui/actions.d.ts +16 -0
- package/dist/openui/actions.d.ts.map +1 -0
- package/dist/openui/actions.js +58 -0
- package/dist/openui/actions.js.map +1 -0
- package/dist/openui/components/controls.d.ts +34 -0
- package/dist/openui/components/controls.d.ts.map +1 -0
- package/dist/openui/components/controls.js +40 -0
- package/dist/openui/components/controls.js.map +1 -0
- package/dist/openui/components/layout.d.ts +74 -0
- package/dist/openui/components/layout.d.ts.map +1 -0
- package/dist/openui/components/layout.js +154 -0
- package/dist/openui/components/layout.js.map +1 -0
- package/dist/openui/components/list.d.ts +17 -0
- package/dist/openui/components/list.d.ts.map +1 -0
- package/dist/openui/components/list.js +96 -0
- package/dist/openui/components/list.js.map +1 -0
- package/dist/openui/components/svg.d.ts +100 -0
- package/dist/openui/components/svg.d.ts.map +1 -0
- package/dist/openui/components/svg.js +246 -0
- package/dist/openui/components/svg.js.map +1 -0
- package/dist/openui/components/table.d.ts +6 -0
- package/dist/openui/components/table.d.ts.map +1 -0
- package/dist/openui/components/table.js +54 -0
- package/dist/openui/components/table.js.map +1 -0
- package/dist/openui/components/text.d.ts +89 -0
- package/dist/openui/components/text.d.ts.map +1 -0
- package/dist/openui/components/text.js +181 -0
- package/dist/openui/components/text.js.map +1 -0
- package/dist/openui/functions/colors.d.ts +12 -0
- package/dist/openui/functions/colors.d.ts.map +1 -0
- package/dist/openui/functions/colors.js +32 -0
- package/dist/openui/functions/colors.js.map +1 -0
- package/dist/openui/functions/data.d.ts +170 -0
- package/dist/openui/functions/data.d.ts.map +1 -0
- package/dist/openui/functions/data.js +308 -0
- package/dist/openui/functions/data.js.map +1 -0
- package/dist/openui/functions/dates.d.ts +57 -0
- package/dist/openui/functions/dates.d.ts.map +1 -0
- package/dist/openui/functions/dates.js +184 -0
- package/dist/openui/functions/dates.js.map +1 -0
- package/dist/openui/functions/index.d.ts +136 -0
- package/dist/openui/functions/index.d.ts.map +1 -0
- package/dist/openui/functions/index.js +11 -0
- package/dist/openui/functions/index.js.map +1 -0
- package/dist/openui/functions/lists.d.ts +102 -0
- package/dist/openui/functions/lists.d.ts.map +1 -0
- package/dist/openui/functions/lists.js +305 -0
- package/dist/openui/functions/lists.js.map +1 -0
- package/dist/openui/functions/numbers.d.ts +72 -0
- package/dist/openui/functions/numbers.d.ts.map +1 -0
- package/dist/openui/functions/numbers.js +201 -0
- package/dist/openui/functions/numbers.js.map +1 -0
- package/dist/openui/functions/shared.d.ts +28 -0
- package/dist/openui/functions/shared.d.ts.map +1 -0
- package/dist/openui/functions/shared.js +69 -0
- package/dist/openui/functions/shared.js.map +1 -0
- package/dist/openui/functions/text.d.ts +97 -0
- package/dist/openui/functions/text.d.ts.map +1 -0
- package/dist/openui/functions/text.js +223 -0
- package/dist/openui/functions/text.js.map +1 -0
- package/dist/openui/index.d.ts +5 -0
- package/dist/openui/index.d.ts.map +1 -0
- package/dist/openui/index.js +14 -0
- package/dist/openui/index.js.map +1 -0
- package/dist/openui/library.d.ts +8 -0
- package/dist/openui/library.d.ts.map +1 -0
- package/dist/openui/library.js +37 -0
- package/dist/openui/library.js.map +1 -0
- package/dist/openui/schema.d.ts +36 -0
- package/dist/openui/schema.d.ts.map +1 -0
- package/dist/openui/schema.js +24 -0
- package/dist/openui/schema.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { defineComponent as c } from "@openuidev/react-lang";
|
|
2
|
+
import { Box as i } from "../../Box/Box.js";
|
|
3
|
+
import { Text as t } from "../../Text/Text.js";
|
|
4
|
+
import { children as h } from "../schema.js";
|
|
5
|
+
import { jsx as n, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
import { object as s, boolean as p, enum as f, array as b, union as g, string as r, any as y } from "../../node_modules/zod/v4/classic/schemas.js";
|
|
7
|
+
const S = c({
|
|
8
|
+
name: "ListItem",
|
|
9
|
+
props: s({
|
|
10
|
+
title: r(),
|
|
11
|
+
description: r().optional(),
|
|
12
|
+
marker: r().optional(),
|
|
13
|
+
children: h.optional()
|
|
14
|
+
}),
|
|
15
|
+
description: "marker replaces the bullet or number, e.g. a time or an emoji.",
|
|
16
|
+
component: ({
|
|
17
|
+
props: e,
|
|
18
|
+
renderNode: l
|
|
19
|
+
}) => /* @__PURE__ */ a(i, {
|
|
20
|
+
direction: "column",
|
|
21
|
+
gap: "xs",
|
|
22
|
+
fullWidth: !0,
|
|
23
|
+
children: [/* @__PURE__ */ a(t, {
|
|
24
|
+
variant: "md",
|
|
25
|
+
bold: !0,
|
|
26
|
+
children: [e.marker ? `${e.marker} ` : "", e.title]
|
|
27
|
+
}), e.description ? /* @__PURE__ */ n(t, {
|
|
28
|
+
variant: "sm",
|
|
29
|
+
color: "secondary",
|
|
30
|
+
children: e.description
|
|
31
|
+
}) : null, e.children != null ? l(e.children) : null]
|
|
32
|
+
})
|
|
33
|
+
}), I = c({
|
|
34
|
+
name: "List",
|
|
35
|
+
props: s({
|
|
36
|
+
items: b(g([r(), y()])),
|
|
37
|
+
marker: f(["bullet", "number", "none"]).optional(),
|
|
38
|
+
timeline: p().optional()
|
|
39
|
+
}),
|
|
40
|
+
description: "List. marker: bullet (default), number, or none.",
|
|
41
|
+
component: ({
|
|
42
|
+
props: e,
|
|
43
|
+
renderNode: l
|
|
44
|
+
}) => {
|
|
45
|
+
const o = e.marker ?? "bullet", u = o !== "none";
|
|
46
|
+
return /* @__PURE__ */ n(i, {
|
|
47
|
+
as: "ol",
|
|
48
|
+
direction: "column",
|
|
49
|
+
gap: "md",
|
|
50
|
+
fullWidth: !0,
|
|
51
|
+
style: {
|
|
52
|
+
listStyle: "none",
|
|
53
|
+
padding: 0,
|
|
54
|
+
margin: 0,
|
|
55
|
+
borderLeft: e.timeline ? "2px solid var(--color-surface-border)" : void 0,
|
|
56
|
+
paddingInlineStart: e.timeline ? "var(--spacing-md)" : void 0
|
|
57
|
+
},
|
|
58
|
+
children: e.items.map((m, d) => /* @__PURE__ */ a(i, {
|
|
59
|
+
as: "li",
|
|
60
|
+
direction: "row",
|
|
61
|
+
gap: "sm",
|
|
62
|
+
align: "start",
|
|
63
|
+
fullWidth: !0,
|
|
64
|
+
style: {
|
|
65
|
+
listStyle: "none"
|
|
66
|
+
},
|
|
67
|
+
children: [u ? /* @__PURE__ */ n(t, {
|
|
68
|
+
variant: "md",
|
|
69
|
+
color: "secondary",
|
|
70
|
+
style: {
|
|
71
|
+
flexShrink: 0,
|
|
72
|
+
minWidth: o === "number" ? "1.5em" : "0.75em",
|
|
73
|
+
lineHeight: "var(--leading-md)"
|
|
74
|
+
},
|
|
75
|
+
children: o === "number" ? `${d + 1}.` : "•"
|
|
76
|
+
}) : null, /* @__PURE__ */ n(i, {
|
|
77
|
+
direction: "column",
|
|
78
|
+
gap: "xs",
|
|
79
|
+
fullWidth: !0,
|
|
80
|
+
style: {
|
|
81
|
+
minWidth: 0
|
|
82
|
+
},
|
|
83
|
+
children: typeof m == "string" ? /* @__PURE__ */ n(t, {
|
|
84
|
+
variant: "md",
|
|
85
|
+
children: m
|
|
86
|
+
}) : l(m)
|
|
87
|
+
})]
|
|
88
|
+
}, d))
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
export {
|
|
93
|
+
I as List,
|
|
94
|
+
S as ListItem
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../src/openui/components/list.tsx"],"sourcesContent":["import { defineComponent } from '@openuidev/react-lang';\nimport { z } from 'zod/v4';\n\nimport { Box } from '../../Box';\nimport { Text } from '../../Text';\nimport { children } from '../schema';\n\nexport const ListItem = defineComponent({\n name: 'ListItem',\n props: z.object({\n title: z.string(),\n description: z.string().optional(),\n marker: z.string().optional(),\n children: children.optional(),\n }),\n description: 'marker replaces the bullet or number, e.g. a time or an emoji.',\n component: ({ props, renderNode }) => (\n <Box direction=\"column\" gap=\"xs\" fullWidth>\n <Text variant=\"md\" bold>\n {props.marker ? `${props.marker} ` : ''}\n {props.title}\n </Text>\n {props.description ? (\n <Text variant=\"sm\" color=\"secondary\">{props.description}</Text>\n ) : null}\n {props.children != null ? renderNode(props.children) : null}\n </Box>\n ),\n});\n\nexport const List = defineComponent({\n name: 'List',\n props: z.object({\n items: z.array(z.union([z.string(), z.any()])),\n marker: z.enum(['bullet', 'number', 'none']).optional(),\n timeline: z.boolean().optional(),\n }),\n description: 'List. marker: bullet (default), number, or none.',\n component: ({ props, renderNode }) => {\n // Box is flex — native list-style markers never paint. Draw our own or stay flush.\n const marker = props.marker ?? 'bullet';\n const showMarker = marker !== 'none';\n\n return (\n <Box\n as=\"ol\"\n direction=\"column\"\n gap=\"md\"\n fullWidth\n style={{\n listStyle: 'none',\n padding: 0,\n margin: 0,\n borderLeft: props.timeline ? '2px solid var(--color-surface-border)' : undefined,\n paddingInlineStart: props.timeline ? 'var(--spacing-md)' : undefined,\n }}\n >\n {props.items.map((item, index) => (\n <Box\n as=\"li\"\n key={ index }\n direction=\"row\"\n gap=\"sm\"\n align=\"start\"\n fullWidth\n style={{ listStyle: 'none' }}\n >\n {showMarker ? (\n <Text\n variant=\"md\"\n color=\"secondary\"\n style={{\n flexShrink: 0,\n minWidth: marker === 'number' ? '1.5em' : '0.75em',\n lineHeight: 'var(--leading-md)',\n }}\n >\n {marker === 'number' ? `${index + 1}.` : '•'}\n </Text>\n ) : null}\n <Box direction=\"column\" gap=\"xs\" fullWidth style={{ minWidth: 0 }}>\n {typeof item === 'string'\n ? <Text variant=\"md\">{item}</Text>\n : renderNode(item)}\n </Box>\n </Box>\n ))}\n </Box>\n );\n },\n});\n"],"names":["ListItem","defineComponent","z.object","z.string","children","props","renderNode","Box","_jsxs","Text","List","z.array","z.union","z.any","z.enum","z.boolean","marker","showMarker","item","index","_jsx"],"mappings":";;;;;;AAMO,MAAMA,IAAWC,EAAgB;AAAA,EACtC,MAAM;AAAA,EACN,OAAOC,EAAS;AAAA,IACd,OAAOC,EAAE;AAAA,IACT,aAAaA,EAAE,EAAS,SAAA;AAAA,IACxB,QAAQA,EAAE,EAAS,SAAA;AAAA,IACnB,UAAUC,EAAS,SAAA;AAAA,EAAS,CAC7B;AAAA,EACD,aAAa;AAAA,EACb,WAAW,CAAC;AAAA,IACV,OAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,wBACuBC,GAAK;AAAA,IAC5B,WAAW;AAAA,IACX,KAAK;AAAA,IACL,WAAW;AAAA,IACX,UAAU,CAAcC,gBAAAA,EAAMC,GAAM;AAAA,MAClC,SAAS;AAAA,MACT,MAAM;AAAA,MACN,UAAU,CAACJ,EAAM,SAAS,GAAGA,EAAM,MAAM,MAAM,IAAIA,EAAM,KAAK;AAAA,IAAA,CAC/D,GAAGA,EAAM,gCAAgCI,GAAM;AAAA,MAC9C,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAUJ,EAAM;AAAA,IAAA,CACjB,IAAI,MAAMA,EAAM,YAAY,OAAOC,EAAWD,EAAM,QAAQ,IAAI,IAAI;AAAA,EAAA,CACtE;AACH,CAAC,GACYK,IAAOT,EAAgB;AAAA,EAClC,MAAM;AAAA,EACN,OAAOC,EAAS;AAAA,IACd,OAAOS,EAAQC,EAAQ,CAACT,EAAE,GAAUU,EAAE,CAAK,CAAC,CAAC;AAAA,IAC7C,QAAQC,EAAO,CAAC,UAAU,UAAU,MAAM,CAAC,EAAE,SAAA;AAAA,IAC7C,UAAUC,EAAE,EAAU,SAAA;AAAA,EAAS,CAChC;AAAA,EACD,aAAa;AAAA,EACb,WAAW,CAAC;AAAA,IACV,OAAAV;AAAA,IACA,YAAAC;AAAA,EAAA,MACI;AAEJ,UAAMU,IAASX,EAAM,UAAU,UACzBY,IAAaD,MAAW;AAC9B,6BAAyBT,GAAK;AAAA,MAC5B,IAAI;AAAA,MACJ,WAAW;AAAA,MACX,KAAK;AAAA,MACL,WAAW;AAAA,MACX,OAAO;AAAA,QACL,WAAW;AAAA,QACX,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,YAAYF,EAAM,WAAW,0CAA0C;AAAA,QACvE,oBAAoBA,EAAM,WAAW,sBAAsB;AAAA,MAAA;AAAA,MAE7D,UAAUA,EAAM,MAAM,IAAI,CAACa,GAAMC,wBAA6BZ,GAAK;AAAA,QACjE,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,KAAK;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,UACL,WAAW;AAAA,QAAA;AAAA,QAEb,UAAU,CAACU,IAA0BG,gBAAAA,EAAKX,GAAM;AAAA,UAC9C,SAAS;AAAA,UACT,OAAO;AAAA,UACP,OAAO;AAAA,YACL,YAAY;AAAA,YACZ,UAAUO,MAAW,WAAW,UAAU;AAAA,YAC1C,YAAY;AAAA,UAAA;AAAA,UAEd,UAAUA,MAAW,WAAW,GAAGG,IAAQ,CAAC,MAAM;AAAA,QAAA,CACnD,IAAI,MAAmBC,gBAAAA,EAAKb,GAAK;AAAA,UAChC,WAAW;AAAA,UACX,KAAK;AAAA,UACL,WAAW;AAAA,UACX,OAAO;AAAA,YACL,UAAU;AAAA,UAAA;AAAA,UAEZ,UAAU,OAAOW,KAAS,6BAA6BT,GAAM;AAAA,YAC3D,SAAS;AAAA,YACT,UAAUS;AAAA,UAAA,CACX,IAAIZ,EAAWY,CAAI;AAAA,QAAA,CACrB,CAAC;AAAA,MAAA,GACDC,CAAK,CAAC;AAAA,IAAA,CACV;AAAA,EACH;AACF,CAAC;"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export declare const Svg: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
3
|
+
children: z.ZodAny;
|
|
4
|
+
viewBox: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, z.core.$strip>>;
|
|
6
|
+
export declare const G: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
7
|
+
children: z.ZodAny;
|
|
8
|
+
}, z.core.$strip>>;
|
|
9
|
+
export declare const Rect: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
10
|
+
x: z.ZodNumber;
|
|
11
|
+
y: z.ZodNumber;
|
|
12
|
+
width: z.ZodNumber;
|
|
13
|
+
height: z.ZodNumber;
|
|
14
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
15
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
16
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
export declare const Circle: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
19
|
+
cx: z.ZodNumber;
|
|
20
|
+
cy: z.ZodNumber;
|
|
21
|
+
r: z.ZodNumber;
|
|
22
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, z.core.$strip>>;
|
|
24
|
+
export declare const Line: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
25
|
+
x1: z.ZodNumber;
|
|
26
|
+
y1: z.ZodNumber;
|
|
27
|
+
x2: z.ZodNumber;
|
|
28
|
+
y2: z.ZodNumber;
|
|
29
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
30
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
}, z.core.$strip>>;
|
|
32
|
+
export declare const Path: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
33
|
+
d: z.ZodString;
|
|
34
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
35
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
36
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
37
|
+
}, z.core.$strip>>;
|
|
38
|
+
export declare const Polygon: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
39
|
+
points: z.ZodString;
|
|
40
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
export declare const SvgText: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
43
|
+
text: z.ZodString;
|
|
44
|
+
x: z.ZodNumber;
|
|
45
|
+
y: z.ZodNumber;
|
|
46
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
color: z.ZodOptional<z.ZodString>;
|
|
48
|
+
anchor: z.ZodOptional<z.ZodEnum<{
|
|
49
|
+
end: "end";
|
|
50
|
+
middle: "middle";
|
|
51
|
+
start: "start";
|
|
52
|
+
}>>;
|
|
53
|
+
}, z.core.$strip>>;
|
|
54
|
+
/** Bundle for createLibrary — not a React component. */
|
|
55
|
+
export declare const svgComponents: (import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
56
|
+
children: z.ZodAny;
|
|
57
|
+
viewBox: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
59
|
+
children: z.ZodAny;
|
|
60
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
61
|
+
x: z.ZodNumber;
|
|
62
|
+
y: z.ZodNumber;
|
|
63
|
+
width: z.ZodNumber;
|
|
64
|
+
height: z.ZodNumber;
|
|
65
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
66
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
67
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
69
|
+
cx: z.ZodNumber;
|
|
70
|
+
cy: z.ZodNumber;
|
|
71
|
+
r: z.ZodNumber;
|
|
72
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
73
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
74
|
+
x1: z.ZodNumber;
|
|
75
|
+
y1: z.ZodNumber;
|
|
76
|
+
x2: z.ZodNumber;
|
|
77
|
+
y2: z.ZodNumber;
|
|
78
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
79
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
80
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
81
|
+
d: z.ZodString;
|
|
82
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
83
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
84
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
85
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
86
|
+
points: z.ZodString;
|
|
87
|
+
fill: z.ZodOptional<z.ZodString>;
|
|
88
|
+
}, z.core.$strip>> | import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
89
|
+
text: z.ZodString;
|
|
90
|
+
x: z.ZodNumber;
|
|
91
|
+
y: z.ZodNumber;
|
|
92
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
color: z.ZodOptional<z.ZodString>;
|
|
94
|
+
anchor: z.ZodOptional<z.ZodEnum<{
|
|
95
|
+
end: "end";
|
|
96
|
+
middle: "middle";
|
|
97
|
+
start: "start";
|
|
98
|
+
}>>;
|
|
99
|
+
}, z.core.$strip>>)[];
|
|
100
|
+
//# sourceMappingURL=svg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/openui/components/svg.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AA2E3B,eAAO,MAAM,GAAG;;;kBAwBd,CAAC;AAEH,eAAO,MAAM,CAAC;;kBAKZ,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;;;;kBA2Bf,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;kBAuBjB,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;;;kBAqBf,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;kBAiBf,CAAC;AAEH,eAAO,MAAM,OAAO;;;kBAUlB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;kBAkClB,CAAC;AAEH,wDAAwD;AAExD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAuD,CAAC"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { defineComponent as i } from "@openuidev/react-lang";
|
|
2
|
+
import { children as f } from "../schema.js";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
import { object as l, string as r, number as o, enum as m } from "../../node_modules/zod/v4/classic/schemas.js";
|
|
5
|
+
function c(t) {
|
|
6
|
+
switch (t) {
|
|
7
|
+
case "muted":
|
|
8
|
+
case "faint":
|
|
9
|
+
return "var(--color-text-secondary)";
|
|
10
|
+
case "primary":
|
|
11
|
+
case "info":
|
|
12
|
+
return "var(--color-primary)";
|
|
13
|
+
case "success":
|
|
14
|
+
return "var(--color-success)";
|
|
15
|
+
case "warning":
|
|
16
|
+
return "var(--color-warning)";
|
|
17
|
+
case "danger":
|
|
18
|
+
return "var(--color-danger)";
|
|
19
|
+
case "surface":
|
|
20
|
+
return "var(--color-surface)";
|
|
21
|
+
default:
|
|
22
|
+
return "var(--color-text)";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function u(t) {
|
|
26
|
+
return /^[\dIVXLCDMivxlcdm]{1,4}$/.test(t.trim());
|
|
27
|
+
}
|
|
28
|
+
function x(t) {
|
|
29
|
+
if (t == null)
|
|
30
|
+
return !1;
|
|
31
|
+
const e = t.trim().toLowerCase();
|
|
32
|
+
return e === "surface" || e === "faint" || e === "white" || /^#?(fff|ffffff|f{6}|f{3})$/i.test(e);
|
|
33
|
+
}
|
|
34
|
+
function s(t) {
|
|
35
|
+
if (x(t))
|
|
36
|
+
return {
|
|
37
|
+
fill: "var(--color-surface)",
|
|
38
|
+
stroke: "var(--color-text-secondary)",
|
|
39
|
+
strokeWidth: 2
|
|
40
|
+
};
|
|
41
|
+
switch (t) {
|
|
42
|
+
case "muted":
|
|
43
|
+
return {
|
|
44
|
+
fill: "var(--color-surface)",
|
|
45
|
+
stroke: "var(--color-text-secondary)",
|
|
46
|
+
strokeWidth: 2
|
|
47
|
+
};
|
|
48
|
+
case "primary":
|
|
49
|
+
case "info":
|
|
50
|
+
return {
|
|
51
|
+
fill: "var(--color-primary)"
|
|
52
|
+
};
|
|
53
|
+
case "success":
|
|
54
|
+
return {
|
|
55
|
+
fill: "var(--color-success)"
|
|
56
|
+
};
|
|
57
|
+
case "warning":
|
|
58
|
+
return {
|
|
59
|
+
fill: "var(--color-warning)"
|
|
60
|
+
};
|
|
61
|
+
case "danger":
|
|
62
|
+
return {
|
|
63
|
+
fill: "var(--color-danger)"
|
|
64
|
+
};
|
|
65
|
+
default:
|
|
66
|
+
return {
|
|
67
|
+
fill: c(t)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const k = i({
|
|
72
|
+
name: "Svg",
|
|
73
|
+
props: l({
|
|
74
|
+
children: f,
|
|
75
|
+
viewBox: r().optional()
|
|
76
|
+
}),
|
|
77
|
+
description: 'SVG root, width-capped. Prefer viewBox like "0 0 400 80" for a timeline.',
|
|
78
|
+
component: ({
|
|
79
|
+
props: t,
|
|
80
|
+
renderNode: e
|
|
81
|
+
}) => /* @__PURE__ */ n("svg", {
|
|
82
|
+
viewBox: t.viewBox ?? "0 0 400 120",
|
|
83
|
+
width: "100%",
|
|
84
|
+
preserveAspectRatio: "xMidYMid meet",
|
|
85
|
+
style: {
|
|
86
|
+
display: "block",
|
|
87
|
+
marginInline: "auto",
|
|
88
|
+
// Small viewBoxes must not explode to card width (giant step numbers).
|
|
89
|
+
maxWidth: 420
|
|
90
|
+
},
|
|
91
|
+
fill: "none",
|
|
92
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
93
|
+
children: e(t.children)
|
|
94
|
+
})
|
|
95
|
+
}), v = i({
|
|
96
|
+
name: "G",
|
|
97
|
+
props: l({
|
|
98
|
+
children: f
|
|
99
|
+
}),
|
|
100
|
+
description: "SVG group.",
|
|
101
|
+
component: ({
|
|
102
|
+
props: t,
|
|
103
|
+
renderNode: e
|
|
104
|
+
}) => /* @__PURE__ */ n("g", {
|
|
105
|
+
children: e(t.children)
|
|
106
|
+
})
|
|
107
|
+
}), y = i({
|
|
108
|
+
name: "Rect",
|
|
109
|
+
props: l({
|
|
110
|
+
x: o(),
|
|
111
|
+
y: o(),
|
|
112
|
+
width: o(),
|
|
113
|
+
height: o(),
|
|
114
|
+
fill: r().optional(),
|
|
115
|
+
stroke: r().optional(),
|
|
116
|
+
strokeWidth: o().optional()
|
|
117
|
+
}),
|
|
118
|
+
description: "Rectangle.",
|
|
119
|
+
component: ({
|
|
120
|
+
props: t
|
|
121
|
+
}) => {
|
|
122
|
+
const e = s(t.fill ?? "muted");
|
|
123
|
+
return /* @__PURE__ */ n("rect", {
|
|
124
|
+
x: t.x,
|
|
125
|
+
y: t.y,
|
|
126
|
+
width: t.width,
|
|
127
|
+
height: t.height,
|
|
128
|
+
fill: e.fill,
|
|
129
|
+
stroke: t.stroke ? c(t.stroke) : e.stroke,
|
|
130
|
+
strokeWidth: t.strokeWidth ?? e.strokeWidth ?? 1
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}), g = i({
|
|
134
|
+
name: "Circle",
|
|
135
|
+
props: l({
|
|
136
|
+
cx: o(),
|
|
137
|
+
cy: o(),
|
|
138
|
+
r: o(),
|
|
139
|
+
fill: r().optional()
|
|
140
|
+
}),
|
|
141
|
+
description: "Circle.",
|
|
142
|
+
component: ({
|
|
143
|
+
props: t
|
|
144
|
+
}) => {
|
|
145
|
+
const e = s(t.fill ?? "primary");
|
|
146
|
+
return /* @__PURE__ */ n("circle", {
|
|
147
|
+
cx: t.cx,
|
|
148
|
+
cy: t.cy,
|
|
149
|
+
r: t.r,
|
|
150
|
+
fill: e.fill,
|
|
151
|
+
stroke: e.stroke,
|
|
152
|
+
strokeWidth: e.strokeWidth
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}), w = i({
|
|
156
|
+
name: "Line",
|
|
157
|
+
props: l({
|
|
158
|
+
x1: o(),
|
|
159
|
+
y1: o(),
|
|
160
|
+
x2: o(),
|
|
161
|
+
y2: o(),
|
|
162
|
+
stroke: r().optional(),
|
|
163
|
+
strokeWidth: o().optional()
|
|
164
|
+
}),
|
|
165
|
+
description: "Line.",
|
|
166
|
+
component: ({
|
|
167
|
+
props: t
|
|
168
|
+
}) => /* @__PURE__ */ n("line", {
|
|
169
|
+
x1: t.x1,
|
|
170
|
+
y1: t.y1,
|
|
171
|
+
x2: t.x2,
|
|
172
|
+
y2: t.y2,
|
|
173
|
+
stroke: c(t.stroke),
|
|
174
|
+
strokeWidth: t.strokeWidth ?? 2
|
|
175
|
+
})
|
|
176
|
+
}), p = i({
|
|
177
|
+
name: "Path",
|
|
178
|
+
props: l({
|
|
179
|
+
d: r(),
|
|
180
|
+
fill: r().optional(),
|
|
181
|
+
stroke: r().optional(),
|
|
182
|
+
strokeWidth: o().optional()
|
|
183
|
+
}),
|
|
184
|
+
description: "SVG path.",
|
|
185
|
+
component: ({
|
|
186
|
+
props: t
|
|
187
|
+
}) => /* @__PURE__ */ n("path", {
|
|
188
|
+
d: t.d,
|
|
189
|
+
fill: t.fill ? s(t.fill).fill : "none",
|
|
190
|
+
stroke: t.stroke ? c(t.stroke) : void 0,
|
|
191
|
+
strokeWidth: t.strokeWidth
|
|
192
|
+
})
|
|
193
|
+
}), W = i({
|
|
194
|
+
name: "Polygon",
|
|
195
|
+
props: l({
|
|
196
|
+
points: r(),
|
|
197
|
+
fill: r().optional()
|
|
198
|
+
}),
|
|
199
|
+
description: "Polygon (arrow heads, etc.).",
|
|
200
|
+
component: ({
|
|
201
|
+
props: t
|
|
202
|
+
}) => /* @__PURE__ */ n("polygon", {
|
|
203
|
+
points: t.points,
|
|
204
|
+
fill: s(t.fill ?? "ink").fill
|
|
205
|
+
})
|
|
206
|
+
}), S = i({
|
|
207
|
+
name: "SvgText",
|
|
208
|
+
props: l({
|
|
209
|
+
text: r(),
|
|
210
|
+
x: o(),
|
|
211
|
+
y: o(),
|
|
212
|
+
size: o().optional(),
|
|
213
|
+
color: r().optional(),
|
|
214
|
+
anchor: m(["start", "middle", "end"]).optional()
|
|
215
|
+
}),
|
|
216
|
+
description: "SVG text label.",
|
|
217
|
+
component: ({
|
|
218
|
+
props: t
|
|
219
|
+
}) => {
|
|
220
|
+
const e = typeof t.color == "string" ? t.color : void 0, h = u(t.text), d = e === "surface" || e === "faint" || e === "white", a = d && h;
|
|
221
|
+
return /* @__PURE__ */ n("text", {
|
|
222
|
+
x: t.x,
|
|
223
|
+
y: t.y,
|
|
224
|
+
fontSize: t.size ?? 12,
|
|
225
|
+
fontWeight: 600,
|
|
226
|
+
fill: a ? "var(--color-surface)" : d ? "var(--color-text-secondary)" : c(e),
|
|
227
|
+
stroke: a ? "var(--color-text)" : void 0,
|
|
228
|
+
strokeWidth: a ? 2.75 : void 0,
|
|
229
|
+
paintOrder: a ? "stroke fill" : void 0,
|
|
230
|
+
textAnchor: t.anchor ?? "middle",
|
|
231
|
+
children: t.text
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}), V = [k, v, y, g, w, p, W, S];
|
|
235
|
+
export {
|
|
236
|
+
g as Circle,
|
|
237
|
+
v as G,
|
|
238
|
+
w as Line,
|
|
239
|
+
p as Path,
|
|
240
|
+
W as Polygon,
|
|
241
|
+
y as Rect,
|
|
242
|
+
k as Svg,
|
|
243
|
+
S as SvgText,
|
|
244
|
+
V as svgComponents
|
|
245
|
+
};
|
|
246
|
+
//# sourceMappingURL=svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.js","sources":["../../../src/openui/components/svg.tsx"],"sourcesContent":["import { defineComponent } from '@openuidev/react-lang';\nimport { z } from 'zod/v4';\n\nimport { children } from '../schema';\n\n/** Stroke / shape-adjacent paint. */\nfunction ink(color: string | undefined): string {\n switch (color) {\n case 'muted':\n case 'faint':\n return 'var(--color-text-secondary)';\n case 'primary':\n case 'info':\n return 'var(--color-primary)';\n case 'success':\n return 'var(--color-success)';\n case 'warning':\n return 'var(--color-warning)';\n case 'danger':\n return 'var(--color-danger)';\n case 'surface':\n return 'var(--color-surface)';\n default:\n return 'var(--color-text)';\n }\n}\n\nfunction isStepIndex(text: string): boolean {\n return /^[\\dIVXLCDMivxlcdm]{1,4}$/.test(text.trim());\n}\n\nfunction isNearWhite(color: string | undefined): boolean {\n if (color == null) {\n return false;\n }\n\n const t = color.trim().toLowerCase();\n\n return t === 'surface' || t === 'faint' || t === 'white'\n || /^#?(fff|ffffff|f{6}|f{3})$/i.test(t);\n}\n\n/**\n * Inactive / future nodes must stay visible on a white card. Never paint a\n * bare page-surface fill — that is white-on-white with inverse SvgText.\n */\nfunction shapeFill(color: string | undefined): { fill: string; stroke?: string; strokeWidth?: number } {\n if (isNearWhite(color)) {\n return {\n fill: 'var(--color-surface)',\n stroke: 'var(--color-text-secondary)',\n strokeWidth: 2,\n };\n }\n\n switch (color) {\n case 'muted':\n return {\n fill: 'var(--color-surface)',\n stroke: 'var(--color-text-secondary)',\n strokeWidth: 2,\n };\n case 'primary':\n case 'info':\n return { fill: 'var(--color-primary)' };\n case 'success':\n return { fill: 'var(--color-success)' };\n case 'warning':\n return { fill: 'var(--color-warning)' };\n case 'danger':\n return { fill: 'var(--color-danger)' };\n default:\n return { fill: ink(color) };\n }\n}\n\nexport const Svg = defineComponent({\n name: 'Svg',\n props: z.object({\n children,\n viewBox: z.string().optional(),\n }),\n description: 'SVG root, width-capped. Prefer viewBox like \"0 0 400 80\" for a timeline.',\n component: ({ props, renderNode }) => (\n <svg\n viewBox={ props.viewBox ?? '0 0 400 120' }\n width=\"100%\"\n preserveAspectRatio=\"xMidYMid meet\"\n style={{\n display: 'block',\n marginInline: 'auto',\n // Small viewBoxes must not explode to card width (giant step numbers).\n maxWidth: 420,\n }}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {renderNode(props.children)}\n </svg>\n ),\n});\n\nexport const G = defineComponent({\n name: 'G',\n props: z.object({ children }),\n description: 'SVG group.',\n component: ({ props, renderNode }) => <g>{renderNode(props.children)}</g>,\n});\n\nexport const Rect = defineComponent({\n name: 'Rect',\n props: z.object({\n x: z.number(),\n y: z.number(),\n width: z.number(),\n height: z.number(),\n fill: z.string().optional(),\n stroke: z.string().optional(),\n strokeWidth: z.number().optional(),\n }),\n description: 'Rectangle.',\n component: ({ props }) => {\n const paint = shapeFill(props.fill ?? 'muted');\n\n return (\n <rect\n x={ props.x }\n y={ props.y }\n width={ props.width }\n height={ props.height }\n fill={ paint.fill }\n stroke={ props.stroke ? ink(props.stroke) : paint.stroke }\n strokeWidth={ props.strokeWidth ?? paint.strokeWidth ?? 1 }\n />\n );\n },\n});\n\nexport const Circle = defineComponent({\n name: 'Circle',\n props: z.object({\n cx: z.number(),\n cy: z.number(),\n r: z.number(),\n fill: z.string().optional(),\n }),\n description: 'Circle.',\n component: ({ props }) => {\n const paint = shapeFill(props.fill ?? 'primary');\n\n return (\n <circle\n cx={ props.cx }\n cy={ props.cy }\n r={ props.r }\n fill={ paint.fill }\n stroke={ paint.stroke }\n strokeWidth={ paint.strokeWidth }\n />\n );\n },\n});\n\nexport const Line = defineComponent({\n name: 'Line',\n props: z.object({\n x1: z.number(),\n y1: z.number(),\n x2: z.number(),\n y2: z.number(),\n stroke: z.string().optional(),\n strokeWidth: z.number().optional(),\n }),\n description: 'Line.',\n component: ({ props }) => (\n <line\n x1={ props.x1 }\n y1={ props.y1 }\n x2={ props.x2 }\n y2={ props.y2 }\n stroke={ ink(props.stroke) }\n strokeWidth={ props.strokeWidth ?? 2 }\n />\n ),\n});\n\nexport const Path = defineComponent({\n name: 'Path',\n props: z.object({\n d: z.string(),\n fill: z.string().optional(),\n stroke: z.string().optional(),\n strokeWidth: z.number().optional(),\n }),\n description: 'SVG path.',\n component: ({ props }) => (\n <path\n d={ props.d }\n fill={ props.fill ? shapeFill(props.fill).fill : 'none' }\n stroke={ props.stroke ? ink(props.stroke) : undefined }\n strokeWidth={ props.strokeWidth }\n />\n ),\n});\n\nexport const Polygon = defineComponent({\n name: 'Polygon',\n props: z.object({\n points: z.string(),\n fill: z.string().optional(),\n }),\n description: 'Polygon (arrow heads, etc.).',\n component: ({ props }) => (\n <polygon points={ props.points } fill={ shapeFill(props.fill ?? 'ink').fill } />\n ),\n});\n\nexport const SvgText = defineComponent({\n name: 'SvgText',\n props: z.object({\n text: z.string(),\n x: z.number(),\n y: z.number(),\n size: z.number().optional(),\n color: z.string().optional(),\n anchor: z.enum(['start', 'middle', 'end']).optional(),\n }),\n description: 'SVG text label.',\n component: ({ props }) => {\n const color = typeof props.color === 'string' ? props.color : undefined;\n const step = isStepIndex(props.text);\n const inverse = color === 'surface' || color === 'faint' || color === 'white';\n // White glyph + dark halo: readable on both filled (dark) and hollow (light) nodes.\n const halo = inverse && step;\n\n return (\n <text\n x={ props.x }\n y={ props.y }\n fontSize={ props.size ?? 12 }\n fontWeight={ 600 }\n fill={ halo ? 'var(--color-surface)' : inverse ? 'var(--color-text-secondary)' : ink(color) }\n stroke={ halo ? 'var(--color-text)' : undefined }\n strokeWidth={ halo ? 2.75 : undefined }\n paintOrder={ halo ? 'stroke fill' : undefined }\n textAnchor={ props.anchor ?? 'middle' }\n >\n {props.text}\n </text>\n );\n },\n});\n\n/** Bundle for createLibrary — not a React component. */\n// eslint-disable-next-line react-refresh/only-export-components -- library registration list\nexport const svgComponents = [Svg, G, Rect, Circle, Line, Path, Polygon, SvgText];\n"],"names":["ink","color","isStepIndex","text","isNearWhite","t","shapeFill","Svg","defineComponent","z.object","children","z.string","props","renderNode","G","Rect","z.number","paint","Circle","Line","Path","Polygon","SvgText","z.enum","step","inverse","halo","svgComponents"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/openui/components/table.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAW3B,eAAO,MAAM,KAAK;;;kBAgDhB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { defineComponent as m } from "@openuidev/react-lang";
|
|
2
|
+
import { Text as s } from "../../Text/Text.js";
|
|
3
|
+
import { jsxs as c, jsx as r } from "react/jsx-runtime";
|
|
4
|
+
import { object as p, array as o, any as h, string as f } from "../../node_modules/zod/v4/classic/schemas.js";
|
|
5
|
+
const i = {
|
|
6
|
+
padding: "var(--spacing-sm) var(--spacing-md)",
|
|
7
|
+
borderBottom: "1px solid var(--color-surface-border)",
|
|
8
|
+
verticalAlign: "middle"
|
|
9
|
+
}, x = m({
|
|
10
|
+
name: "Table",
|
|
11
|
+
props: p({
|
|
12
|
+
columns: o(f()),
|
|
13
|
+
rows: o(o(h()))
|
|
14
|
+
}),
|
|
15
|
+
description: "Each row lists its cells in column order; a cell may be a component.",
|
|
16
|
+
component: ({
|
|
17
|
+
props: n,
|
|
18
|
+
renderNode: a
|
|
19
|
+
}) => /* @__PURE__ */ c("table", {
|
|
20
|
+
style: {
|
|
21
|
+
width: "100%",
|
|
22
|
+
borderCollapse: "collapse",
|
|
23
|
+
fontSize: "var(--text-md)",
|
|
24
|
+
lineHeight: "var(--leading-md)"
|
|
25
|
+
},
|
|
26
|
+
children: [/* @__PURE__ */ r("thead", {
|
|
27
|
+
children: /* @__PURE__ */ r("tr", {
|
|
28
|
+
children: n.columns.map((e) => /* @__PURE__ */ r("th", {
|
|
29
|
+
style: {
|
|
30
|
+
...i,
|
|
31
|
+
textAlign: "left",
|
|
32
|
+
color: "var(--color-text-secondary)",
|
|
33
|
+
fontWeight: 600
|
|
34
|
+
},
|
|
35
|
+
children: e
|
|
36
|
+
}, e))
|
|
37
|
+
})
|
|
38
|
+
}), /* @__PURE__ */ r("tbody", {
|
|
39
|
+
children: n.rows.map((e, l) => /* @__PURE__ */ r("tr", {
|
|
40
|
+
children: e.map((t, d) => /* @__PURE__ */ r("td", {
|
|
41
|
+
style: i,
|
|
42
|
+
children: typeof t == "string" || typeof t == "number" ? /* @__PURE__ */ r(s, {
|
|
43
|
+
variant: "md",
|
|
44
|
+
children: String(t)
|
|
45
|
+
}) : a(t)
|
|
46
|
+
}, d))
|
|
47
|
+
}, l))
|
|
48
|
+
})]
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
export {
|
|
52
|
+
x as Table
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../src/openui/components/table.tsx"],"sourcesContent":["import { defineComponent } from '@openuidev/react-lang';\nimport { z } from 'zod/v4';\n\nimport { Text } from '../../Text';\n\n/** Roomier cells — same pad on header and body so the header is not a stub row. */\nconst cellPad = {\n padding: 'var(--spacing-sm) var(--spacing-md)',\n borderBottom: '1px solid var(--color-surface-border)',\n verticalAlign: 'middle' as const,\n};\n\nexport const Table = defineComponent({\n name: 'Table',\n props: z.object({\n columns: z.array(z.string()),\n rows: z.array(z.array(z.any())),\n }),\n description: 'Each row lists its cells in column order; a cell may be a component.',\n component: ({ props, renderNode }) => (\n <table\n style={{\n width: '100%',\n borderCollapse: 'collapse',\n fontSize: 'var(--text-md)',\n lineHeight: 'var(--leading-md)',\n }}\n >\n <thead>\n <tr>\n {props.columns.map(col => (\n <th\n key={ col }\n style={{\n ...cellPad,\n textAlign: 'left',\n color: 'var(--color-text-secondary)',\n fontWeight: 600,\n }}\n >\n {col}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {props.rows.map((row, ri) => (\n <tr key={ ri }>\n {row.map((cell, ci) => (\n <td key={ ci } style={ cellPad }>\n {typeof cell === 'string' || typeof cell === 'number'\n ? <Text variant=\"md\">{String(cell)}</Text>\n : renderNode(cell)}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n ),\n});\n"],"names":["cellPad","Table","defineComponent","z.object","z.array","z.string","z.any","props","renderNode","_jsx","col","row","ri","cell","ci","Text"],"mappings":";;;;AAMA,MAAMA,IAAU;AAAA,EACd,SAAS;AAAA,EACT,cAAc;AAAA,EACd,eAAe;AACjB,GACaC,IAAQC,EAAgB;AAAA,EACnC,MAAM;AAAA,EACN,OAAOC,EAAS;AAAA,IACd,SAASC,EAAQC,GAAU;AAAA,IAC3B,MAAMD,EAAQA,EAAQE,GAAO,CAAC;AAAA,EAAA,CAC/B;AAAA,EACD,aAAa;AAAA,EACb,WAAW,CAAC;AAAA,IACV,OAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,wBACuB,SAAS;AAAA,IAChC,OAAO;AAAA,MACL,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAAA,IAEd,UAAU,CAAcC,gBAAAA,EAAK,SAAS;AAAA,MACpC,4BAA4B,MAAM;AAAA,QAChC,UAAUF,EAAM,QAAQ,IAAI,CAAAG,wBAAyB,MAAM;AAAA,UACzD,OAAO;AAAA,YACL,GAAGV;AAAA,YACH,WAAW;AAAA,YACX,OAAO;AAAA,YACP,YAAY;AAAA,UAAA;AAAA,UAEd,UAAUU;AAAA,QAAA,GACTA,CAAG,CAAC;AAAA,MAAA,CACR;AAAA,IAAA,CACF,GAAgBD,gBAAAA,EAAK,SAAS;AAAA,MAC7B,UAAUF,EAAM,KAAK,IAAI,CAACI,GAAKC,wBAAyB,MAAM;AAAA,QAC5D,UAAUD,EAAI,IAAI,CAACE,GAAMC,wBAAyB,MAAM;AAAA,UACtD,OAAOd;AAAA,UACP,UAAU,OAAOa,KAAS,YAAY,OAAOA,KAAS,6BAA6BE,GAAM;AAAA,YACvF,SAAS;AAAA,YACT,UAAU,OAAOF,CAAI;AAAA,UAAA,CACtB,IAAIL,EAAWK,CAAI;AAAA,QAAA,GACnBC,CAAE,CAAC;AAAA,MAAA,GACLF,CAAE,CAAC;AAAA,IAAA,CACP,CAAC;AAAA,EAAA,CACH;AACH,CAAC;"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
export declare const Title: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
3
|
+
text: z.ZodString;
|
|
4
|
+
size: z.ZodOptional<z.ZodEnum<{
|
|
5
|
+
"2xl": "2xl";
|
|
6
|
+
"3xl": "3xl";
|
|
7
|
+
lg: "lg";
|
|
8
|
+
md: "md";
|
|
9
|
+
sm: "sm";
|
|
10
|
+
xl: "xl";
|
|
11
|
+
}>>;
|
|
12
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
13
|
+
danger: "danger";
|
|
14
|
+
faint: "faint";
|
|
15
|
+
info: "info";
|
|
16
|
+
ink: "ink";
|
|
17
|
+
muted: "muted";
|
|
18
|
+
primary: "primary";
|
|
19
|
+
success: "success";
|
|
20
|
+
surface: "surface";
|
|
21
|
+
warning: "warning";
|
|
22
|
+
}>>;
|
|
23
|
+
}, z.core.$strip>>;
|
|
24
|
+
export declare const Text: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
25
|
+
text: z.ZodUnion<readonly [z.ZodString, z.ZodAny]>;
|
|
26
|
+
size: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
lg: "lg";
|
|
28
|
+
md: "md";
|
|
29
|
+
sm: "sm";
|
|
30
|
+
xs: "xs";
|
|
31
|
+
}>>;
|
|
32
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
33
|
+
danger: "danger";
|
|
34
|
+
faint: "faint";
|
|
35
|
+
info: "info";
|
|
36
|
+
ink: "ink";
|
|
37
|
+
muted: "muted";
|
|
38
|
+
primary: "primary";
|
|
39
|
+
success: "success";
|
|
40
|
+
surface: "surface";
|
|
41
|
+
warning: "warning";
|
|
42
|
+
}>>;
|
|
43
|
+
weight: z.ZodOptional<z.ZodEnum<{
|
|
44
|
+
medium: "medium";
|
|
45
|
+
normal: "normal";
|
|
46
|
+
semibold: "semibold";
|
|
47
|
+
}>>;
|
|
48
|
+
italic: z.ZodOptional<z.ZodBoolean>;
|
|
49
|
+
lineThrough: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
tabularNums: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
+
maxLines: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
}, z.core.$strip>>;
|
|
53
|
+
export declare const Caption: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
54
|
+
text: z.ZodString;
|
|
55
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
56
|
+
danger: "danger";
|
|
57
|
+
faint: "faint";
|
|
58
|
+
info: "info";
|
|
59
|
+
ink: "ink";
|
|
60
|
+
muted: "muted";
|
|
61
|
+
primary: "primary";
|
|
62
|
+
success: "success";
|
|
63
|
+
surface: "surface";
|
|
64
|
+
warning: "warning";
|
|
65
|
+
}>>;
|
|
66
|
+
}, z.core.$strip>>;
|
|
67
|
+
export declare const Label: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
68
|
+
text: z.ZodString;
|
|
69
|
+
}, z.core.$strip>>;
|
|
70
|
+
export declare const Badge: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
71
|
+
text: z.ZodString;
|
|
72
|
+
color: z.ZodOptional<z.ZodEnum<{
|
|
73
|
+
danger: "danger";
|
|
74
|
+
info: "info";
|
|
75
|
+
neutral: "neutral";
|
|
76
|
+
pink: "pink";
|
|
77
|
+
purple: "purple";
|
|
78
|
+
success: "success";
|
|
79
|
+
warning: "warning";
|
|
80
|
+
}>>;
|
|
81
|
+
}, z.core.$strip>>;
|
|
82
|
+
export declare const Link: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
83
|
+
text: z.ZodString;
|
|
84
|
+
url: z.ZodString;
|
|
85
|
+
}, z.core.$strip>>;
|
|
86
|
+
export declare const Markdown: import("@openuidev/react-lang").DefinedComponent<z.ZodObject<{
|
|
87
|
+
text: z.ZodString;
|
|
88
|
+
}, z.core.$strip>>;
|
|
89
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/openui/components/text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AA2C3B,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;kBAiBhB,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2Cf,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;kBAYlB,CAAC;AAEH,eAAO,MAAM,KAAK;;kBAShB,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;kBAwBhB,CAAC;AAEH,eAAO,MAAM,IAAI;;;kBAgBf,CAAC;AAEH,eAAO,MAAM,QAAQ;;kBAOnB,CAAC"}
|