@texaryn/react 0.0.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/LICENSE +190 -0
- package/dist/components/FormRoot.d.ts +7 -0
- package/dist/components/FormRoot.d.ts.map +1 -0
- package/dist/components/FormRoot.js +14 -0
- package/dist/components/FormRoot.js.map +1 -0
- package/dist/components/NodeRenderer.d.ts +15 -0
- package/dist/components/NodeRenderer.d.ts.map +1 -0
- package/dist/components/NodeRenderer.js +19 -0
- package/dist/components/NodeRenderer.js.map +1 -0
- package/dist/components/renderer-context.d.ts +17 -0
- package/dist/components/renderer-context.d.ts.map +1 -0
- package/dist/components/renderer-context.js +10 -0
- package/dist/components/renderer-context.js.map +1 -0
- package/dist/context.d.ts +5 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +11 -0
- package/dist/context.js.map +1 -0
- package/dist/hooks/use-field-array.d.ts +16 -0
- package/dist/hooks/use-field-array.d.ts.map +1 -0
- package/dist/hooks/use-field-array.js +27 -0
- package/dist/hooks/use-field-array.js.map +1 -0
- package/dist/hooks/use-field.d.ts +13 -0
- package/dist/hooks/use-field.d.ts.map +1 -0
- package/dist/hooks/use-field.js +31 -0
- package/dist/hooks/use-field.js.map +1 -0
- package/dist/hooks/use-form.d.ts +11 -0
- package/dist/hooks/use-form.d.ts.map +1 -0
- package/dist/hooks/use-form.js +22 -0
- package/dist/hooks/use-form.js.map +1 -0
- package/dist/hooks/use-store.d.ts +3 -0
- package/dist/hooks/use-store.d.ts.map +1 -0
- package/dist/hooks/use-store.js +5 -0
- package/dist/hooks/use-store.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/props/field-props.d.ts +72 -0
- package/dist/props/field-props.d.ts.map +1 -0
- package/dist/props/field-props.js +62 -0
- package/dist/props/field-props.js.map +1 -0
- package/dist/props/index.d.ts +3 -0
- package/dist/props/index.d.ts.map +1 -0
- package/dist/props/index.js +2 -0
- package/dist/props/index.js.map +1 -0
- package/dist/widgets/ArrayControl.d.ts +9 -0
- package/dist/widgets/ArrayControl.d.ts.map +1 -0
- package/dist/widgets/ArrayControl.js +16 -0
- package/dist/widgets/ArrayControl.js.map +1 -0
- package/dist/widgets/Checkbox.d.ts +9 -0
- package/dist/widgets/Checkbox.d.ts.map +1 -0
- package/dist/widgets/Checkbox.js +19 -0
- package/dist/widgets/Checkbox.js.map +1 -0
- package/dist/widgets/NumberInput.d.ts +9 -0
- package/dist/widgets/NumberInput.d.ts.map +1 -0
- package/dist/widgets/NumberInput.js +20 -0
- package/dist/widgets/NumberInput.js.map +1 -0
- package/dist/widgets/ObjectLayout.d.ts +9 -0
- package/dist/widgets/ObjectLayout.d.ts.map +1 -0
- package/dist/widgets/ObjectLayout.js +17 -0
- package/dist/widgets/ObjectLayout.js.map +1 -0
- package/dist/widgets/Select.d.ts +9 -0
- package/dist/widgets/Select.d.ts.map +1 -0
- package/dist/widgets/Select.js +21 -0
- package/dist/widgets/Select.js.map +1 -0
- package/dist/widgets/TextInput.d.ts +9 -0
- package/dist/widgets/TextInput.d.ts.map +1 -0
- package/dist/widgets/TextInput.js +16 -0
- package/dist/widgets/TextInput.js.map +1 -0
- package/dist/widgets/Textarea.d.ts +9 -0
- package/dist/widgets/Textarea.d.ts.map +1 -0
- package/dist/widgets/Textarea.js +16 -0
- package/dist/widgets/Textarea.js.map +1 -0
- package/dist/widgets/default-registry.d.ts +4 -0
- package/dist/widgets/default-registry.d.ts.map +1 -0
- package/dist/widgets/default-registry.js +46 -0
- package/dist/widgets/default-registry.js.map +1 -0
- package/dist/widgets/index.d.ts +9 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +9 -0
- package/dist/widgets/index.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-props.d.ts","sourceRoot":"","sources":["../../src/props/field-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,KAAK,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;IAC9G,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,OAAO,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,QAAQ,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,EAAE,EAAE,MAAM,CAAA;CACX;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,UAAU,CAyBjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAKzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAMzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAIrE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate deterministic element ID from NodeId
|
|
3
|
+
*/
|
|
4
|
+
function makeId(nodeId, suffix) {
|
|
5
|
+
return `texaryn-${nodeId}-${suffix}`;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* getInputProps: Returns ARIA-correct props for an input element
|
|
9
|
+
* Includes id, name, value, disabled, aria-required, aria-invalid, aria-describedby
|
|
10
|
+
*/
|
|
11
|
+
export function getInputProps(node, fieldState) {
|
|
12
|
+
const id = makeId(node.id, 'input');
|
|
13
|
+
const hasErrors = fieldState.errors.length > 0;
|
|
14
|
+
const hasDescription = Boolean(node.annotations?.description);
|
|
15
|
+
// Build aria-describedby from error and description IDs
|
|
16
|
+
const describedByIds = [];
|
|
17
|
+
if (hasErrors) {
|
|
18
|
+
describedByIds.push(makeId(node.id, 'error'));
|
|
19
|
+
}
|
|
20
|
+
if (hasDescription) {
|
|
21
|
+
describedByIds.push(makeId(node.id, 'description'));
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
id,
|
|
25
|
+
name: node.dataPointer || node.id,
|
|
26
|
+
value: fieldState.value,
|
|
27
|
+
disabled: fieldState.disabled,
|
|
28
|
+
'aria-required': Boolean(node.constraints?.required),
|
|
29
|
+
'aria-invalid': hasErrors,
|
|
30
|
+
'aria-describedby': describedByIds.length > 0 ? describedByIds.join(' ') : undefined,
|
|
31
|
+
onChange: fieldState.onChange,
|
|
32
|
+
onBlur: fieldState.onBlur,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* getLabelProps: Returns ARIA-correct props for a label element
|
|
37
|
+
*/
|
|
38
|
+
export function getLabelProps(node) {
|
|
39
|
+
return {
|
|
40
|
+
id: makeId(node.id, 'label'),
|
|
41
|
+
htmlFor: makeId(node.id, 'input'),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* getErrorProps: Returns ARIA-correct props for an error container
|
|
46
|
+
*/
|
|
47
|
+
export function getErrorProps(node) {
|
|
48
|
+
return {
|
|
49
|
+
id: makeId(node.id, 'error'),
|
|
50
|
+
role: 'alert',
|
|
51
|
+
'aria-live': 'polite',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* getDescriptionProps: Returns ARIA-correct props for a description element
|
|
56
|
+
*/
|
|
57
|
+
export function getDescriptionProps(node) {
|
|
58
|
+
return {
|
|
59
|
+
id: makeId(node.id, 'description'),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=field-props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-props.js","sourceRoot":"","sources":["../../src/props/field-props.ts"],"names":[],"mappings":"AAuDA;;GAEG;AACH,SAAS,MAAM,CAAC,MAAc,EAAE,MAAc;IAC5C,OAAO,WAAW,MAAM,IAAI,MAAM,EAAE,CAAA;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,UAAsB;IACnE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAE7D,wDAAwD;IACxD,MAAM,cAAc,GAAa,EAAE,CAAA;IACnC,IAAI,SAAS,EAAE,CAAC;QACd,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,OAAO;QACL,EAAE;QACF,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE;QACjC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;QACpD,cAAc,EAAE,SAAS;QACzB,kBAAkB,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QACpF,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAe;IAC3C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;KAClC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAe;IAC3C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;QAC5B,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,QAAQ;KACtB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC;KACnC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/props/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACnG,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/props/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function ArrayControlImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const ArrayControl: React.MemoExoticComponent<typeof ArrayControlImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ArrayControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrayControl.d.ts","sourceRoot":"","sources":["../../src/widgets/ArrayControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAA;AAK1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBA6B9C;AAED,eAAO,MAAM,YAAY,oDAGxB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useFieldArray } from '../hooks/use-field-array.js';
|
|
4
|
+
import { NodeRenderer } from '../components/NodeRenderer.js';
|
|
5
|
+
import { useRendererContext } from '../components/renderer-context.js';
|
|
6
|
+
function ArrayControlImpl({ node }) {
|
|
7
|
+
const containerNode = node;
|
|
8
|
+
const fieldArray = useFieldArray(containerNode.id);
|
|
9
|
+
const { document, registry } = useRendererContext();
|
|
10
|
+
return (_jsxs("div", { children: [fieldArray.items.map((item, index) => {
|
|
11
|
+
const childNode = item.nodeId ? document.nodes[item.nodeId] : undefined;
|
|
12
|
+
return (_jsxs("div", { children: [childNode ? (_jsx(NodeRenderer, { node: childNode, document: document, registry: registry })) : null, fieldArray.canRemove ? (_jsx("button", { type: "button", onClick: () => fieldArray.remove(index), children: "Remove" })) : null] }, item.id));
|
|
13
|
+
}), fieldArray.canAdd ? (_jsx("button", { type: "button", onClick: () => fieldArray.add(), children: "Add" })) : null] }));
|
|
14
|
+
}
|
|
15
|
+
export const ArrayControl = React.memo(ArrayControlImpl, (prev, next) => prev.node.id === next.node.id);
|
|
16
|
+
//# sourceMappingURL=ArrayControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArrayControl.js","sourceRoot":"","sources":["../../src/widgets/ArrayControl.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAMtE,SAAS,gBAAgB,CAAC,EAAE,IAAI,EAAe;IAC7C,MAAM,aAAa,GAAG,IAAqB,CAAA;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAEnD,OAAO,CACL,0BACG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACvE,OAAO,CACL,0BACG,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC1E,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CACtB,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,uBAEpD,CACV,CAAC,CAAC,CAAC,IAAI,KARA,IAAI,CAAC,EAAE,CASX,CACP,CAAA;YACH,CAAC,CAAC,EACD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CACnB,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,oBAE5C,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CACpC,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function CheckboxImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const Checkbox: React.MemoExoticComponent<typeof CheckboxImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/widgets/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBA8B1C;AAED,eAAO,MAAM,QAAQ,gDAGpB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useField } from '../hooks/use-field.js';
|
|
4
|
+
import { getInputProps, getLabelProps, getErrorProps, getDescriptionProps } from '../props/index.js';
|
|
5
|
+
function CheckboxImpl({ node }) {
|
|
6
|
+
const fieldNode = node;
|
|
7
|
+
const field = useField(fieldNode.id);
|
|
8
|
+
const { value, onChange, ...inputProps } = getInputProps(fieldNode, field);
|
|
9
|
+
const labelProps = getLabelProps(fieldNode);
|
|
10
|
+
const errorProps = getErrorProps(fieldNode);
|
|
11
|
+
const descriptionProps = getDescriptionProps(fieldNode);
|
|
12
|
+
const label = fieldNode.annotations.title ?? fieldNode.dataPointer ?? fieldNode.id;
|
|
13
|
+
const handleChange = (event) => {
|
|
14
|
+
onChange(event.target.checked);
|
|
15
|
+
};
|
|
16
|
+
return (_jsxs("div", { children: [_jsx("input", { ...inputProps, type: "checkbox", checked: Boolean(value), onChange: handleChange }), _jsx("label", { ...labelProps, children: label }), fieldNode.annotations.description ? (_jsx("div", { ...descriptionProps, children: fieldNode.annotations.description })) : null, field.errors.length > 0 ? (_jsx("div", { ...errorProps, children: field.errors.map((error) => error.message).join(', ') })) : null] }));
|
|
17
|
+
}
|
|
18
|
+
export const Checkbox = React.memo(CheckboxImpl, (prev, next) => prev.node.id === next.node.id);
|
|
19
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/widgets/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAMpG,SAAS,YAAY,CAAC,EAAE,IAAI,EAAe;IACzC,MAAM,SAAS,GAAG,IAAiB,CAAA;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAA;IAElF,MAAM,YAAY,GAAG,CAAC,KAA0C,EAAE,EAAE;QAClE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,OAAO,CACL,0BACE,mBACM,UAAU,EACd,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,YAAY,GACtB,EACF,mBAAW,UAAU,YAAG,KAAK,GAAS,EACrC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CACnC,iBAAS,gBAAgB,YAAG,SAAS,CAAC,WAAW,CAAC,WAAW,GAAO,CACrE,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,iBAAS,UAAU,YAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAO,CACnF,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAChC,YAAY,EACZ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function NumberInputImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const NumberInput: React.MemoExoticComponent<typeof NumberInputImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=NumberInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../src/widgets/NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBA+B7C;AAED,eAAO,MAAM,WAAW,mDAGvB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useField } from '../hooks/use-field.js';
|
|
4
|
+
import { getInputProps, getLabelProps, getErrorProps, getDescriptionProps } from '../props/index.js';
|
|
5
|
+
function NumberInputImpl({ node }) {
|
|
6
|
+
const fieldNode = node;
|
|
7
|
+
const field = useField(fieldNode.id);
|
|
8
|
+
const { value, onChange, ...inputProps } = getInputProps(fieldNode, field);
|
|
9
|
+
const labelProps = getLabelProps(fieldNode);
|
|
10
|
+
const errorProps = getErrorProps(fieldNode);
|
|
11
|
+
const descriptionProps = getDescriptionProps(fieldNode);
|
|
12
|
+
const label = fieldNode.annotations.title ?? fieldNode.dataPointer ?? fieldNode.id;
|
|
13
|
+
const handleChange = (event) => {
|
|
14
|
+
const raw = event.target.value;
|
|
15
|
+
onChange(raw === '' ? undefined : Number(raw));
|
|
16
|
+
};
|
|
17
|
+
return (_jsxs("div", { children: [_jsx("label", { ...labelProps, children: label }), _jsx("input", { ...inputProps, type: "number", value: typeof value === 'number' ? value : value == null ? '' : String(value), onChange: handleChange }), fieldNode.annotations.description ? (_jsx("div", { ...descriptionProps, children: fieldNode.annotations.description })) : null, field.errors.length > 0 ? (_jsx("div", { ...errorProps, children: field.errors.map((error) => error.message).join(', ') })) : null] }));
|
|
18
|
+
}
|
|
19
|
+
export const NumberInput = React.memo(NumberInputImpl, (prev, next) => prev.node.id === next.node.id);
|
|
20
|
+
//# sourceMappingURL=NumberInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../../src/widgets/NumberInput.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAMpG,SAAS,eAAe,CAAC,EAAE,IAAI,EAAe;IAC5C,MAAM,SAAS,GAAG,IAAiB,CAAA;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAA;IAElF,MAAM,YAAY,GAAG,CAAC,KAA0C,EAAE,EAAE;QAClE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,CAAC,CAAA;IAED,OAAO,CACL,0BACE,mBAAW,UAAU,YAAG,KAAK,GAAS,EACtC,mBACM,UAAU,EACd,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7E,QAAQ,EAAE,YAAY,GACtB,EACD,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CACnC,iBAAS,gBAAgB,YAAG,SAAS,CAAC,WAAW,CAAC,WAAW,GAAO,CACrE,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,iBAAS,UAAU,YAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAO,CACnF,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CACnC,eAAe,EACf,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function ObjectLayoutImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const ObjectLayout: React.MemoExoticComponent<typeof ObjectLayoutImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ObjectLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectLayout.d.ts","sourceRoot":"","sources":["../../src/widgets/ObjectLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAA;AAI1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBAe9C;AAED,eAAO,MAAM,YAAY,oDAGxB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { NodeRenderer } from '../components/NodeRenderer.js';
|
|
4
|
+
import { useRendererContext } from '../components/renderer-context.js';
|
|
5
|
+
function ObjectLayoutImpl({ node }) {
|
|
6
|
+
const containerNode = node;
|
|
7
|
+
const { document, registry } = useRendererContext();
|
|
8
|
+
return (_jsx("div", { children: containerNode.children.map((childId) => {
|
|
9
|
+
const child = document.nodes[childId];
|
|
10
|
+
if (!child) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return _jsx(NodeRenderer, { node: child, document: document, registry: registry }, childId);
|
|
14
|
+
}) }));
|
|
15
|
+
}
|
|
16
|
+
export const ObjectLayout = React.memo(ObjectLayoutImpl, (prev, next) => prev.node.id === next.node.id);
|
|
17
|
+
//# sourceMappingURL=ObjectLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectLayout.js","sourceRoot":"","sources":["../../src/widgets/ObjectLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAMtE,SAAS,gBAAgB,CAAC,EAAE,IAAI,EAAe;IAC7C,MAAM,aAAa,GAAG,IAAqB,CAAA;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAEnD,OAAO,CACL,wBACG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YACD,OAAO,KAAC,YAAY,IAAe,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAA5D,OAAO,CAAyD,CAAA;QAC5F,CAAC,CAAC,GACE,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CACpC,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function SelectImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const Select: React.MemoExoticComponent<typeof SelectImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/widgets/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBAqCxC;AAED,eAAO,MAAM,MAAM,8CAGlB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useField } from '../hooks/use-field.js';
|
|
4
|
+
import { getInputProps, getLabelProps, getErrorProps, getDescriptionProps } from '../props/index.js';
|
|
5
|
+
function SelectImpl({ node }) {
|
|
6
|
+
const fieldNode = node;
|
|
7
|
+
const field = useField(fieldNode.id);
|
|
8
|
+
const { value, onChange, ...inputProps } = getInputProps(fieldNode, field);
|
|
9
|
+
const labelProps = getLabelProps(fieldNode);
|
|
10
|
+
const errorProps = getErrorProps(fieldNode);
|
|
11
|
+
const descriptionProps = getDescriptionProps(fieldNode);
|
|
12
|
+
const label = fieldNode.annotations.title ?? fieldNode.dataPointer ?? fieldNode.id;
|
|
13
|
+
const enumValues = fieldNode.enumValues ?? [];
|
|
14
|
+
const handleChange = (event) => {
|
|
15
|
+
const selected = enumValues.find((option) => String(option.value) === event.target.value);
|
|
16
|
+
onChange(selected ? selected.value : event.target.value);
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { children: [_jsx("label", { ...labelProps, children: label }), _jsx("select", { ...inputProps, value: value == null ? '' : String(value), onChange: handleChange, children: enumValues.map((option) => (_jsx("option", { value: String(option.value), children: option.title ?? String(option.value) }, String(option.value)))) }), fieldNode.annotations.description ? (_jsx("div", { ...descriptionProps, children: fieldNode.annotations.description })) : null, field.errors.length > 0 ? (_jsx("div", { ...errorProps, children: field.errors.map((error) => error.message).join(', ') })) : null] }));
|
|
19
|
+
}
|
|
20
|
+
export const Select = React.memo(SelectImpl, (prev, next) => prev.node.id === next.node.id);
|
|
21
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/widgets/Select.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAMpG,SAAS,UAAU,CAAC,EAAE,IAAI,EAAe;IACvC,MAAM,SAAS,GAAG,IAAiB,CAAA;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAA;IAClF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,EAAE,CAAA;IAE7C,MAAM,YAAY,GAAG,CAAC,KAA2C,EAAE,EAAE;QACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACzF,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,OAAO,CACL,0BACE,mBAAW,UAAU,YAAG,KAAK,GAAS,EACtC,oBACM,UAAU,EACd,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,QAAQ,EAAE,YAAY,YAErB,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC1B,iBAAmC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAC3D,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAD1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAExB,CACV,CAAC,GACK,EACR,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CACnC,iBAAS,gBAAgB,YAAG,SAAS,CAAC,WAAW,CAAC,WAAW,GAAO,CACrE,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,iBAAS,UAAU,YAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAO,CACnF,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAC9B,UAAU,EACV,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function TextInputImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const TextInput: React.MemoExoticComponent<typeof TextInputImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=TextInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../src/widgets/TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBA0B3C;AAED,eAAO,MAAM,SAAS,iDAGrB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useField } from '../hooks/use-field.js';
|
|
4
|
+
import { getInputProps, getLabelProps, getErrorProps, getDescriptionProps } from '../props/index.js';
|
|
5
|
+
function TextInputImpl({ node }) {
|
|
6
|
+
const fieldNode = node;
|
|
7
|
+
const field = useField(fieldNode.id);
|
|
8
|
+
const { value, onChange, ...inputProps } = getInputProps(fieldNode, field);
|
|
9
|
+
const labelProps = getLabelProps(fieldNode);
|
|
10
|
+
const errorProps = getErrorProps(fieldNode);
|
|
11
|
+
const descriptionProps = getDescriptionProps(fieldNode);
|
|
12
|
+
const label = fieldNode.annotations.title ?? fieldNode.dataPointer ?? fieldNode.id;
|
|
13
|
+
return (_jsxs("div", { children: [_jsx("label", { ...labelProps, children: label }), _jsx("input", { ...inputProps, type: "text", value: typeof value === 'string' ? value : value == null ? '' : String(value), onChange: (event) => onChange(event.target.value) }), fieldNode.annotations.description ? (_jsx("div", { ...descriptionProps, children: fieldNode.annotations.description })) : null, field.errors.length > 0 ? (_jsx("div", { ...errorProps, children: field.errors.map((error) => error.message).join(', ') })) : null] }));
|
|
14
|
+
}
|
|
15
|
+
export const TextInput = React.memo(TextInputImpl, (prev, next) => prev.node.id === next.node.id);
|
|
16
|
+
//# sourceMappingURL=TextInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../src/widgets/TextInput.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAMpG,SAAS,aAAa,CAAC,EAAE,IAAI,EAAe;IAC1C,MAAM,SAAS,GAAG,IAAiB,CAAA;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAA;IAElF,OAAO,CACL,0BACE,mBAAW,UAAU,YAAG,KAAK,GAAS,EACtC,mBACM,UAAU,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACjD,EACD,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CACnC,iBAAS,gBAAgB,YAAG,SAAS,CAAC,WAAW,CAAC,WAAW,GAAO,CACrE,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,iBAAS,UAAU,YAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAO,CACnF,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CACjC,aAAa,EACb,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { UINode } from '@texaryn/core';
|
|
3
|
+
export interface WidgetProps {
|
|
4
|
+
node: UINode;
|
|
5
|
+
}
|
|
6
|
+
declare function TextareaImpl({ node }: WidgetProps): React.JSX.Element;
|
|
7
|
+
export declare const Textarea: React.MemoExoticComponent<typeof TextareaImpl>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=Textarea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/widgets/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAa,MAAM,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,qBAyB1C;AAED,eAAO,MAAM,QAAQ,gDAGpB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useField } from '../hooks/use-field.js';
|
|
4
|
+
import { getInputProps, getLabelProps, getErrorProps, getDescriptionProps } from '../props/index.js';
|
|
5
|
+
function TextareaImpl({ node }) {
|
|
6
|
+
const fieldNode = node;
|
|
7
|
+
const field = useField(fieldNode.id);
|
|
8
|
+
const { value, onChange, ...inputProps } = getInputProps(fieldNode, field);
|
|
9
|
+
const labelProps = getLabelProps(fieldNode);
|
|
10
|
+
const errorProps = getErrorProps(fieldNode);
|
|
11
|
+
const descriptionProps = getDescriptionProps(fieldNode);
|
|
12
|
+
const label = fieldNode.annotations.title ?? fieldNode.dataPointer ?? fieldNode.id;
|
|
13
|
+
return (_jsxs("div", { children: [_jsx("label", { ...labelProps, children: label }), _jsx("textarea", { ...inputProps, value: typeof value === 'string' ? value : value == null ? '' : String(value), onChange: (event) => onChange(event.target.value) }), fieldNode.annotations.description ? (_jsx("div", { ...descriptionProps, children: fieldNode.annotations.description })) : null, field.errors.length > 0 ? (_jsx("div", { ...errorProps, children: field.errors.map((error) => error.message).join(', ') })) : null] }));
|
|
14
|
+
}
|
|
15
|
+
export const Textarea = React.memo(TextareaImpl, (prev, next) => prev.node.id === next.node.id);
|
|
16
|
+
//# sourceMappingURL=Textarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/widgets/Textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAMpG,SAAS,YAAY,CAAC,EAAE,IAAI,EAAe;IACzC,MAAM,SAAS,GAAG,IAAiB,CAAA;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAA;IAElF,OAAO,CACL,0BACE,mBAAW,UAAU,YAAG,KAAK,GAAS,EACtC,sBACM,UAAU,EACd,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACjD,EACD,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CACnC,iBAAS,gBAAgB,YAAG,SAAS,CAAC,WAAW,CAAC,WAAW,GAAO,CACrE,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,iBAAS,UAAU,YAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAO,CACnF,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAChC,YAAY,EACZ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-registry.d.ts","sourceRoot":"","sources":["../../src/widgets/default-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,eAAe,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AASxE,wBAAgB,qBAAqB,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAoEzE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createRendererRegistry } from '@texaryn/core';
|
|
2
|
+
import { TextInput } from './TextInput.js';
|
|
3
|
+
import { NumberInput } from './NumberInput.js';
|
|
4
|
+
import { Checkbox } from './Checkbox.js';
|
|
5
|
+
import { Select } from './Select.js';
|
|
6
|
+
import { Textarea } from './Textarea.js';
|
|
7
|
+
import { ObjectLayout } from './ObjectLayout.js';
|
|
8
|
+
import { ArrayControl } from './ArrayControl.js';
|
|
9
|
+
export function createDefaultRegistry() {
|
|
10
|
+
const registry = createRendererRegistry();
|
|
11
|
+
registry.register({
|
|
12
|
+
test: (node) => node.type === 'field' &&
|
|
13
|
+
node.fieldType === 'string' &&
|
|
14
|
+
node.enumValues == null,
|
|
15
|
+
rank: 1,
|
|
16
|
+
}, TextInput);
|
|
17
|
+
registry.register({
|
|
18
|
+
test: (node) => node.type === 'field' &&
|
|
19
|
+
(node.fieldType === 'number' || node.fieldType === 'integer'),
|
|
20
|
+
rank: 1,
|
|
21
|
+
}, NumberInput);
|
|
22
|
+
registry.register({
|
|
23
|
+
test: (node) => node.type === 'field' && node.fieldType === 'boolean',
|
|
24
|
+
rank: 1,
|
|
25
|
+
}, Checkbox);
|
|
26
|
+
registry.register({
|
|
27
|
+
test: (node) => node.type === 'field' &&
|
|
28
|
+
node.enumValues != null &&
|
|
29
|
+
node.enumValues.length > 0,
|
|
30
|
+
rank: 2,
|
|
31
|
+
}, Select);
|
|
32
|
+
registry.register({
|
|
33
|
+
test: (node) => node.type === 'field' && node.widget === 'textarea',
|
|
34
|
+
rank: 5,
|
|
35
|
+
}, Textarea);
|
|
36
|
+
registry.register({
|
|
37
|
+
test: (node) => node.type === 'container' && node.containerType === 'object',
|
|
38
|
+
rank: 1,
|
|
39
|
+
}, ObjectLayout);
|
|
40
|
+
registry.register({
|
|
41
|
+
test: (node) => node.type === 'container' && node.containerType === 'array',
|
|
42
|
+
rank: 1,
|
|
43
|
+
}, ArrayControl);
|
|
44
|
+
return registry;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=default-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-registry.js","sourceRoot":"","sources":["../../src/widgets/default-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,sBAAsB,EAAmB,CAAA;IAE1D,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,IAAI,KAAK,OAAO;YACpB,IAAkB,CAAC,SAAS,KAAK,QAAQ;YACzC,IAAkB,CAAC,UAAU,IAAI,IAAI;QACxC,IAAI,EAAE,CAAC;KACR,EACD,SAAS,CACV,CAAA;IAED,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,CAAE,IAAkB,CAAC,SAAS,KAAK,QAAQ,IAAK,IAAkB,CAAC,SAAS,KAAK,SAAS,CAAC;QAC7F,IAAI,EAAE,CAAC;KACR,EACD,WAAW,CACZ,CAAA;IAED,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAK,IAAkB,CAAC,SAAS,KAAK,SAAS;QACpF,IAAI,EAAE,CAAC;KACR,EACD,QAAQ,CACT,CAAA;IAED,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,IAAI,KAAK,OAAO;YACpB,IAAkB,CAAC,UAAU,IAAI,IAAI;YACrC,IAAkB,CAAC,UAAW,CAAC,MAAM,GAAG,CAAC;QAC5C,IAAI,EAAE,CAAC;KACR,EACD,MAAM,CACP,CAAA;IAED,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAK,IAAkB,CAAC,MAAM,KAAK,UAAU;QAClF,IAAI,EAAE,CAAC;KACR,EACD,QAAQ,CACT,CAAA;IAED,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ;QAC5E,IAAI,EAAE,CAAC;KACR,EACD,YAAY,CACb,CAAA;IAED,QAAQ,CAAC,QAAQ,CACf;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO;QAC3E,IAAI,EAAE,CAAC;KACR,EACD,YAAY,CACb,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { TextInput } from './TextInput.js';
|
|
2
|
+
export { NumberInput } from './NumberInput.js';
|
|
3
|
+
export { Checkbox } from './Checkbox.js';
|
|
4
|
+
export { Select } from './Select.js';
|
|
5
|
+
export { Textarea } from './Textarea.js';
|
|
6
|
+
export { ObjectLayout } from './ObjectLayout.js';
|
|
7
|
+
export { ArrayControl } from './ArrayControl.js';
|
|
8
|
+
export { createDefaultRegistry } from './default-registry.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { TextInput } from './TextInput.js';
|
|
2
|
+
export { NumberInput } from './NumberInput.js';
|
|
3
|
+
export { Checkbox } from './Checkbox.js';
|
|
4
|
+
export { Select } from './Select.js';
|
|
5
|
+
export { Textarea } from './Textarea.js';
|
|
6
|
+
export { ObjectLayout } from './ObjectLayout.js';
|
|
7
|
+
export { ArrayControl } from './ArrayControl.js';
|
|
8
|
+
export { createDefaultRegistry } from './default-registry.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@texaryn/react",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "React bindings, hooks, prop getters, and default widgets for Texaryn",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/texaryn/texaryn.git",
|
|
10
|
+
"directory": "packages/react"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/texaryn/texaryn#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/texaryn/texaryn/issues"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"import": "./dist/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist"
|
|
29
|
+
],
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@texaryn/core": "0.0.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"react": ">=18.0.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@testing-library/react": "^16.0.0",
|
|
38
|
+
"@types/react": "^19.0.0",
|
|
39
|
+
"jsdom": "^25.0.0",
|
|
40
|
+
"react": "^19.0.0",
|
|
41
|
+
"react-dom": "^19.0.0",
|
|
42
|
+
"@texaryn/schema-json": "0.0.0"
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "tsc --build"
|
|
46
|
+
}
|
|
47
|
+
}
|