@satoshibits/react-json-schema-builder 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -37
- package/dist/index.cjs100.js.map +1 -1
- package/dist/index.cjs101.js.map +1 -1
- package/dist/index.cjs102.js.map +1 -1
- package/dist/index.cjs103.js.map +1 -1
- package/dist/index.cjs104.js.map +1 -1
- package/dist/index.cjs105.js.map +1 -1
- package/dist/index.cjs106.js.map +1 -1
- package/dist/index.cjs107.js.map +1 -1
- package/dist/index.cjs108.js.map +1 -1
- package/dist/index.cjs109.js.map +1 -1
- package/dist/index.cjs11.js +1 -1
- package/dist/index.cjs12.js +1 -1
- package/dist/index.cjs13.js +1 -1
- package/dist/index.cjs14.js +1 -1
- package/dist/index.cjs15.js +1 -1
- package/dist/index.cjs16.js +1 -1
- package/dist/index.cjs17.js +1 -1
- package/dist/index.cjs18.js +1 -1
- package/dist/index.cjs20.js +1 -1
- package/dist/index.cjs21.js +1 -1
- package/dist/index.cjs22.js +1 -6
- package/dist/index.cjs22.js.map +1 -1
- package/dist/index.cjs23.js +1 -1
- package/dist/index.cjs23.js.map +1 -1
- package/dist/index.cjs24.js +1 -1
- package/dist/index.cjs24.js.map +1 -1
- package/dist/index.cjs25.js +1 -1
- package/dist/index.cjs25.js.map +1 -1
- package/dist/index.cjs26.js +1 -1
- package/dist/index.cjs26.js.map +1 -1
- package/dist/index.cjs27.js +6 -1
- package/dist/index.cjs27.js.map +1 -1
- package/dist/index.cjs28.js +1 -1
- package/dist/index.cjs28.js.map +1 -1
- package/dist/index.cjs29.js +1 -1
- package/dist/index.cjs29.js.map +1 -1
- package/dist/index.cjs3.js +1 -1
- package/dist/index.cjs3.js.map +1 -1
- package/dist/index.cjs30.js.map +1 -1
- package/dist/index.cjs31.js +1 -1
- package/dist/index.cjs31.js.map +1 -1
- package/dist/index.cjs33.js +4 -4
- package/dist/index.cjs33.js.map +1 -1
- package/dist/index.cjs34.js +12 -13
- package/dist/index.cjs34.js.map +1 -1
- package/dist/index.cjs35.js +1 -1
- package/dist/index.cjs35.js.map +1 -1
- package/dist/index.cjs38.js +1 -1
- package/dist/index.cjs38.js.map +1 -1
- package/dist/index.cjs40.js +1 -1
- package/dist/index.cjs40.js.map +1 -1
- package/dist/index.cjs41.js +1 -1
- package/dist/index.cjs41.js.map +1 -1
- package/dist/index.cjs42.js +6 -1
- package/dist/index.cjs42.js.map +1 -1
- package/dist/index.cjs43.js +6 -1
- package/dist/index.cjs43.js.map +1 -1
- package/dist/index.cjs44.js +6 -1
- package/dist/index.cjs44.js.map +1 -1
- package/dist/index.cjs45.js +1 -1
- package/dist/index.cjs45.js.map +1 -1
- package/dist/index.cjs46.js +1 -1
- package/dist/index.cjs46.js.map +1 -1
- package/dist/index.cjs47.js +1 -1
- package/dist/index.cjs47.js.map +1 -1
- package/dist/index.cjs48.js +1 -6
- package/dist/index.cjs48.js.map +1 -1
- package/dist/index.cjs49.js +1 -6
- package/dist/index.cjs49.js.map +1 -1
- package/dist/index.cjs5.js +1 -1
- package/dist/index.cjs50.js +1 -6
- package/dist/index.cjs50.js.map +1 -1
- package/dist/index.cjs51.js +1 -1
- package/dist/index.cjs51.js.map +1 -1
- package/dist/index.cjs52.js.map +1 -1
- package/dist/index.cjs55.js.map +1 -1
- package/dist/index.cjs56.js.map +1 -1
- package/dist/index.cjs57.js.map +1 -1
- package/dist/index.cjs58.js.map +1 -1
- package/dist/index.cjs6.js +1 -1
- package/dist/index.cjs61.js +1 -1
- package/dist/index.cjs61.js.map +1 -1
- package/dist/index.cjs62.js +1 -1
- package/dist/index.cjs62.js.map +1 -1
- package/dist/index.cjs63.js +1 -1
- package/dist/index.cjs63.js.map +1 -1
- package/dist/index.cjs65.js +1 -1
- package/dist/index.cjs65.js.map +1 -1
- package/dist/index.cjs66.js +1 -1
- package/dist/index.cjs66.js.map +1 -1
- package/dist/index.cjs67.js +1 -1
- package/dist/index.cjs67.js.map +1 -1
- package/dist/index.cjs68.js +1 -1
- package/dist/index.cjs68.js.map +1 -1
- package/dist/index.cjs69.js +1 -1
- package/dist/index.cjs69.js.map +1 -1
- package/dist/index.cjs7.js +1 -1
- package/dist/index.cjs70.js +1 -1
- package/dist/index.cjs70.js.map +1 -1
- package/dist/index.cjs71.js +1 -1
- package/dist/index.cjs71.js.map +1 -1
- package/dist/index.cjs72.js +1 -1
- package/dist/index.cjs72.js.map +1 -1
- package/dist/index.cjs73.js +1 -1
- package/dist/index.cjs73.js.map +1 -1
- package/dist/index.cjs74.js +1 -1
- package/dist/index.cjs74.js.map +1 -1
- package/dist/index.cjs75.js +1 -1
- package/dist/index.cjs75.js.map +1 -1
- package/dist/index.cjs76.js +1 -1
- package/dist/index.cjs76.js.map +1 -1
- package/dist/index.cjs77.js +1 -1
- package/dist/index.cjs77.js.map +1 -1
- package/dist/index.cjs78.js +1 -1
- package/dist/index.cjs78.js.map +1 -1
- package/dist/index.cjs79.js +1 -1
- package/dist/index.cjs79.js.map +1 -1
- package/dist/index.cjs8.js +1 -1
- package/dist/index.cjs80.js +1 -1
- package/dist/index.cjs80.js.map +1 -1
- package/dist/index.cjs81.js +1 -1
- package/dist/index.cjs81.js.map +1 -1
- package/dist/index.cjs82.js +1 -1
- package/dist/index.cjs82.js.map +1 -1
- package/dist/index.cjs83.js +1 -1
- package/dist/index.cjs83.js.map +1 -1
- package/dist/index.cjs84.js +1 -1
- package/dist/index.cjs84.js.map +1 -1
- package/dist/index.cjs85.js +1 -1
- package/dist/index.cjs85.js.map +1 -1
- package/dist/index.cjs86.js.map +1 -1
- package/dist/index.cjs87.js +1 -1
- package/dist/index.cjs87.js.map +1 -1
- package/dist/index.cjs90.js.map +1 -1
- package/dist/index.cjs91.js.map +1 -1
- package/dist/index.cjs92.js.map +1 -1
- package/dist/index.cjs93.js.map +1 -1
- package/dist/index.cjs94.js.map +1 -1
- package/dist/index.cjs95.js.map +1 -1
- package/dist/index.cjs96.js.map +1 -1
- package/dist/index.es100.js.map +1 -1
- package/dist/index.es101.js.map +1 -1
- package/dist/index.es102.js.map +1 -1
- package/dist/index.es103.js.map +1 -1
- package/dist/index.es104.js.map +1 -1
- package/dist/index.es105.js.map +1 -1
- package/dist/index.es106.js.map +1 -1
- package/dist/index.es107.js.map +1 -1
- package/dist/index.es108.js.map +1 -1
- package/dist/index.es109.js.map +1 -1
- package/dist/index.es11.js +1 -1
- package/dist/index.es12.js +2 -2
- package/dist/index.es13.js +1 -1
- package/dist/index.es14.js +5 -5
- package/dist/index.es15.js +1 -1
- package/dist/index.es16.js +5 -5
- package/dist/index.es17.js +1 -1
- package/dist/index.es18.js +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es21.js +7 -7
- package/dist/index.es22.js +6 -13
- package/dist/index.es22.js.map +1 -1
- package/dist/index.es23.js +6 -9
- package/dist/index.es23.js.map +1 -1
- package/dist/index.es24.js +9 -6
- package/dist/index.es24.js.map +1 -1
- package/dist/index.es25.js +6 -12
- package/dist/index.es25.js.map +1 -1
- package/dist/index.es26.js +13 -4
- package/dist/index.es26.js.map +1 -1
- package/dist/index.es27.js +10 -19
- package/dist/index.es27.js.map +1 -1
- package/dist/index.es28.js +17 -21
- package/dist/index.es28.js.map +1 -1
- package/dist/index.es29.js +22 -5
- package/dist/index.es29.js.map +1 -1
- package/dist/index.es3.js +212 -185
- package/dist/index.es3.js.map +1 -1
- package/dist/index.es30.js.map +1 -1
- package/dist/index.es31.js +3 -3
- package/dist/index.es31.js.map +1 -1
- package/dist/index.es33.js +17 -24
- package/dist/index.es33.js.map +1 -1
- package/dist/index.es34.js +527 -331
- package/dist/index.es34.js.map +1 -1
- package/dist/index.es35.js +1 -1
- package/dist/index.es35.js.map +1 -1
- package/dist/index.es38.js +1 -1
- package/dist/index.es38.js.map +1 -1
- package/dist/index.es40.js +6 -6
- package/dist/index.es40.js.map +1 -1
- package/dist/index.es41.js +815 -97
- package/dist/index.es41.js.map +1 -1
- package/dist/index.es42.js +10 -56
- package/dist/index.es42.js.map +1 -1
- package/dist/index.es43.js +10 -24
- package/dist/index.es43.js.map +1 -1
- package/dist/index.es44.js +10 -45
- package/dist/index.es44.js.map +1 -1
- package/dist/index.es45.js +97 -69
- package/dist/index.es45.js.map +1 -1
- package/dist/index.es46.js +52 -56
- package/dist/index.es46.js.map +1 -1
- package/dist/index.es47.js +19 -827
- package/dist/index.es47.js.map +1 -1
- package/dist/index.es48.js +45 -10
- package/dist/index.es48.js.map +1 -1
- package/dist/index.es49.js +86 -10
- package/dist/index.es49.js.map +1 -1
- package/dist/index.es5.js +3 -3
- package/dist/index.es50.js +60 -10
- package/dist/index.es50.js.map +1 -1
- package/dist/index.es51.js +2 -2
- package/dist/index.es51.js.map +1 -1
- package/dist/index.es52.js.map +1 -1
- package/dist/index.es55.js.map +1 -1
- package/dist/index.es56.js.map +1 -1
- package/dist/index.es57.js.map +1 -1
- package/dist/index.es58.js.map +1 -1
- package/dist/index.es6.js +3 -3
- package/dist/index.es61.js +11 -11
- package/dist/index.es61.js.map +1 -1
- package/dist/index.es62.js +1 -1
- package/dist/index.es62.js.map +1 -1
- package/dist/index.es63.js +26 -3
- package/dist/index.es63.js.map +1 -1
- package/dist/index.es65.js +62 -42
- package/dist/index.es65.js.map +1 -1
- package/dist/index.es66.js +28 -25
- package/dist/index.es66.js.map +1 -1
- package/dist/index.es67.js +4 -64
- package/dist/index.es67.js.map +1 -1
- package/dist/index.es68.js +24 -7
- package/dist/index.es68.js.map +1 -1
- package/dist/index.es69.js +31 -123
- package/dist/index.es69.js.map +1 -1
- package/dist/index.es7.js +3 -3
- package/dist/index.es70.js +3 -14
- package/dist/index.es70.js.map +1 -1
- package/dist/index.es71.js +41 -129
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +7 -10
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +112 -203
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +15 -13
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +132 -31
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +10 -7
- package/dist/index.es76.js.map +1 -1
- package/dist/index.es77.js +212 -26
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +13 -4
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +7 -5
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es8.js +3 -3
- package/dist/index.es80.js +3 -27
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +28 -50
- package/dist/index.es81.js.map +1 -1
- package/dist/index.es82.js +50 -9
- package/dist/index.es82.js.map +1 -1
- package/dist/index.es83.js +9 -25
- package/dist/index.es83.js.map +1 -1
- package/dist/index.es84.js +2 -2
- package/dist/index.es84.js.map +1 -1
- package/dist/index.es85.js +1 -1
- package/dist/index.es85.js.map +1 -1
- package/dist/index.es86.js.map +1 -1
- package/dist/index.es87.js +1 -1
- package/dist/index.es87.js.map +1 -1
- package/dist/index.es90.js.map +1 -1
- package/dist/index.es91.js.map +1 -1
- package/dist/index.es92.js.map +1 -1
- package/dist/index.es93.js.map +1 -1
- package/dist/index.es94.js.map +1 -1
- package/dist/index.es95.js.map +1 -1
- package/dist/index.es96.js.map +1 -1
- package/dist/packages/builder/schema-builder.d.ts +20 -1
- package/dist/packages/builder/schema-builder.d.ts.map +1 -1
- package/dist/style.css +0 -3
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@ A powerful React component for visually building and editing [JSON Schema](https
|
|
|
12
12
|
- 🎨 Customizable property rendering
|
|
13
13
|
- 🧠 Built-in schema validation
|
|
14
14
|
- 🌲 Navigation through nested object structures
|
|
15
|
+
- ✨ Customizable UI elements (navigation, property list, add button)
|
|
15
16
|
|
|
16
17
|
## Installation
|
|
17
18
|
|
|
@@ -28,12 +29,16 @@ pnpm add @satoshibits/react-json-schema-builder
|
|
|
28
29
|
Here's a simple example of how to use the SchemaBuilder component:
|
|
29
30
|
|
|
30
31
|
```tsx
|
|
31
|
-
import {
|
|
32
|
+
import {
|
|
33
|
+
SchemaBuilder,
|
|
34
|
+
SchemaProvider,
|
|
35
|
+
PluginsProvider,
|
|
36
|
+
} from "@satoshibits/react-json-schema-builder";
|
|
32
37
|
import { useState } from "react";
|
|
33
38
|
import type { JSONSchema7 } from "json-schema";
|
|
34
39
|
|
|
35
40
|
// Import the styles
|
|
36
|
-
import "@satoshibits/react-json-schema-builder/index.css"
|
|
41
|
+
import "@satoshibits/react-json-schema-builder/index.css";
|
|
37
42
|
|
|
38
43
|
// Import plugins for constraint support
|
|
39
44
|
import numberPlugin from "@satoshibits/react-json-schema-builder/plugins/number";
|
|
@@ -42,25 +47,29 @@ import arrayPlugin from "@satoshibits/react-json-schema-builder/plugins/array";
|
|
|
42
47
|
import objectPlugin from "@satoshibits/react-json-schema-builder/plugins/object";
|
|
43
48
|
|
|
44
49
|
function SchemaEditorApp() {
|
|
45
|
-
const [
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
const [currentSchema, setCurrentSchema] = useState<JSONSchema7>();
|
|
51
|
+
|
|
52
|
+
const initialSchema = useMemo(() => {
|
|
53
|
+
return {
|
|
54
|
+
type: "object",
|
|
55
|
+
properties: {
|
|
56
|
+
name: {
|
|
57
|
+
type: "string",
|
|
58
|
+
title: "Name",
|
|
59
|
+
description: "The user's full name",
|
|
60
|
+
},
|
|
61
|
+
age: {
|
|
62
|
+
type: "integer",
|
|
63
|
+
title: "Age",
|
|
64
|
+
description: "The user's age in years",
|
|
65
|
+
},
|
|
57
66
|
},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
});
|
|
67
|
+
required: ["name"],
|
|
68
|
+
} satisfies JSONSchema7;
|
|
69
|
+
}, []);
|
|
61
70
|
|
|
62
71
|
const handleSchemaChange = (newSchema: JSONSchema7) => {
|
|
63
|
-
|
|
72
|
+
setCurrentSchema(newSchema);
|
|
64
73
|
console.log("Schema updated:", newSchema);
|
|
65
74
|
};
|
|
66
75
|
|
|
@@ -72,11 +81,11 @@ function SchemaEditorApp() {
|
|
|
72
81
|
<SchemaProvider>
|
|
73
82
|
<PluginsProvider>
|
|
74
83
|
<SchemaBuilder
|
|
75
|
-
|
|
84
|
+
initialSchema={initialSchema}
|
|
76
85
|
onSchemaChange={handleSchemaChange}
|
|
77
86
|
plugins={[numberPlugin, stringPlugin, arrayPlugin, objectPlugin]}
|
|
78
87
|
/>
|
|
79
|
-
</
|
|
88
|
+
</PluginsProvider>
|
|
80
89
|
</SchemaProvider>
|
|
81
90
|
</div>
|
|
82
91
|
|
|
@@ -97,25 +106,40 @@ export default SchemaEditorApp;
|
|
|
97
106
|
|
|
98
107
|
### `SchemaBuilder` Component Props
|
|
99
108
|
|
|
100
|
-
| Prop
|
|
101
|
-
|
|
|
102
|
-
| `schema`
|
|
103
|
-
| `plugins`
|
|
104
|
-
| `propertyComponent`
|
|
105
|
-
| `onSchemaChange`
|
|
106
|
-
| `onPropertyAddSuccess`
|
|
107
|
-
| `onPropertyAddError`
|
|
108
|
-
| `onPropertyChangeError`
|
|
109
|
-
| `onPropertyChangeSuccess`
|
|
109
|
+
| Prop | Type | Description |
|
|
110
|
+
| ---------------------------- | --------------------------------------------- | ---------------------------------------------------------------- |
|
|
111
|
+
| `schema` | `JSONSchema7` | The JSON Schema to edit. Should be an object schema. |
|
|
112
|
+
| `plugins` | `BaseJSONSchemaPlugin[]` | Array of constraint plugins to support different property types. |
|
|
113
|
+
| `propertyComponent` | `React.ComponentType<PropertyComponentProps>` | Optional custom component to render properties. |
|
|
114
|
+
| `onSchemaChange` | `(schema: JSONSchema7) => void` | Called whenever the schema changes. |
|
|
115
|
+
| `onPropertyAddSuccess` | `(props: PropertyAddSuccess) => void` | Called when a property is successfully added. |
|
|
116
|
+
| `onPropertyAddError` | `(props: PropertyAddError) => void` | Called when there's an error adding a property. |
|
|
117
|
+
| `onPropertyChangeError` | `(prop: Error) => void` | Called when there's an error changing a property. |
|
|
118
|
+
| `onPropertyChangeSuccess` | `() => void` | Called when a property is successfully changed. |
|
|
119
|
+
| `backButtonClassName` | `string` | Class name for the navigation bar's back button. |
|
|
120
|
+
| `propertiesListClassName` | `string` | Class name for the properties list container. |
|
|
121
|
+
| `addPropertyButtonClassName` | `string` | Class name for the Add Property button. |
|
|
122
|
+
| `navigationComponent` | `React.ComponentType<NavigationProps>` | Custom component for the navigation bar. |
|
|
123
|
+
| `addPropertyButtonComponent` | `React.ComponentType<AddPropertyButtonProps>` | Custom component for the Add Property button. |
|
|
124
|
+
|
|
125
|
+
### Navigation and Add Button Props
|
|
126
|
+
|
|
127
|
+
When providing custom navigation or add button components, they will receive these props:
|
|
110
128
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
129
|
+
```tsx
|
|
130
|
+
// For custom navigation
|
|
131
|
+
interface NavigationProps {
|
|
132
|
+
currentPath: string[];
|
|
133
|
+
onNavigateUp: () => void;
|
|
134
|
+
onNavigateTo: (newPath: string[]) => void;
|
|
135
|
+
isRootPath: boolean;
|
|
136
|
+
}
|
|
114
137
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
138
|
+
// For custom add property button
|
|
139
|
+
interface AddPropertyButtonProps {
|
|
140
|
+
onClick: () => void;
|
|
141
|
+
}
|
|
142
|
+
```
|
|
119
143
|
|
|
120
144
|
### PropertyComponentProps Interface
|
|
121
145
|
|
|
@@ -136,8 +160,78 @@ interface PropertyComponentProps {
|
|
|
136
160
|
}
|
|
137
161
|
```
|
|
138
162
|
|
|
163
|
+
### Plugins
|
|
164
|
+
|
|
165
|
+
The SchemaBuilder supports different types of constraints for properties through plugins:
|
|
166
|
+
|
|
167
|
+
- `numberPlugin`: Adds constraints like minimum, maximum, and multipleOf for number properties
|
|
168
|
+
- `stringPlugin`: Adds constraints like minLength, maxLength, pattern for string properties
|
|
169
|
+
- `arrayPlugin`: Adds constraints like minItems, maxItems, uniqueItems for array properties
|
|
170
|
+
- `objectPlugin`: Adds constraints like minProperties, maxProperties for object properties
|
|
171
|
+
|
|
139
172
|
## Advanced Usage
|
|
140
173
|
|
|
174
|
+
### Customizing UI Elements
|
|
175
|
+
|
|
176
|
+
You can customize the appearance or completely replace key UI elements:
|
|
177
|
+
|
|
178
|
+
```tsx
|
|
179
|
+
import { SchemaBuilder } from "@satoshibits/react-json-schema-builder";
|
|
180
|
+
import type {
|
|
181
|
+
NavigationProps,
|
|
182
|
+
AddPropertyButtonProps,
|
|
183
|
+
} from "@satoshibits/react-json-schema-builder";
|
|
184
|
+
|
|
185
|
+
// Custom navigation component
|
|
186
|
+
const CustomNavigation = ({
|
|
187
|
+
currentPath,
|
|
188
|
+
onNavigateUp,
|
|
189
|
+
onNavigateTo,
|
|
190
|
+
isRootPath,
|
|
191
|
+
}: NavigationProps) => (
|
|
192
|
+
<div className="my-custom-nav">
|
|
193
|
+
<button onClick={onNavigateUp} disabled={isRootPath}>
|
|
194
|
+
Go Back
|
|
195
|
+
</button>
|
|
196
|
+
<div className="breadcrumbs">
|
|
197
|
+
<span onClick={() => onNavigateTo([])}>Root</span>
|
|
198
|
+
{currentPath.map((path, index) => (
|
|
199
|
+
<span
|
|
200
|
+
key={index}
|
|
201
|
+
onClick={() => onNavigateTo(currentPath.slice(0, index + 1))}
|
|
202
|
+
>
|
|
203
|
+
/ {path}
|
|
204
|
+
</span>
|
|
205
|
+
))}
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
);
|
|
209
|
+
|
|
210
|
+
// Custom add property button
|
|
211
|
+
const CustomAddButton = ({ onClick }: AddPropertyButtonProps) => (
|
|
212
|
+
<button className="my-add-button" onClick={onClick}>
|
|
213
|
+
Add New Property
|
|
214
|
+
</button>
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
// Using custom components and class names
|
|
218
|
+
function CustomizedSchemaBuilder() {
|
|
219
|
+
return (
|
|
220
|
+
<SchemaBuilder
|
|
221
|
+
schema={initialSchema}
|
|
222
|
+
onSchemaChange={handleSchemaChange}
|
|
223
|
+
// Custom class names
|
|
224
|
+
backButtonClassName="my-back-button"
|
|
225
|
+
propertiesListClassName="my-properties-container"
|
|
226
|
+
addPropertyButtonClassName="my-add-btn"
|
|
227
|
+
// Custom components
|
|
228
|
+
navigationComponent={CustomNavigation}
|
|
229
|
+
addPropertyButtonComponent={CustomAddButton}
|
|
230
|
+
/>
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
141
235
|
### Custom Property Component
|
|
142
236
|
|
|
143
237
|
You can provide a custom component to render properties:
|
|
@@ -255,6 +349,17 @@ With the appropriate plugins, you can configure various constraints:
|
|
|
255
349
|
- **Array**: minItems, maxItems, uniqueItems
|
|
256
350
|
- **Object**: required properties, minProperties, maxProperties
|
|
257
351
|
|
|
352
|
+
### UI Customization
|
|
353
|
+
|
|
354
|
+
Customize the appearance of key UI elements:
|
|
355
|
+
|
|
356
|
+
- Change styles of the navigation back button with `backButtonClassName`
|
|
357
|
+
- Customize the properties container with `propertiesListClassName`
|
|
358
|
+
- Style the Add Property button with `addPropertyButtonClassName`
|
|
359
|
+
- Replace the entire navigation UI with a custom component via `navigationComponent`
|
|
360
|
+
- Replace the Add Property button with a custom component via `addPropertyButtonComponent`
|
|
361
|
+
- Customize how properties are rendered with the `propertyComponent` prop
|
|
362
|
+
|
|
258
363
|
## License
|
|
259
364
|
|
|
260
365
|
Apache 2.0
|
package/dist/index.cjs100.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs100.js","sources":["../../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs100.js","sources":["../../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.18_react@18.3.1/node_modules/use-sidecar/dist/es2015/medium.js"],"sourcesContent":["import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n"],"names":["ItoI","a","innerCreateMedium","defaults","middleware","buffer","assigned","medium","data","item","x","cb","cbs","pendingQueue","executeQueue","cycle","filter","createSidecarMedium","options","__assign"],"mappings":"oHACA,SAASA,EAAKC,EAAG,CACb,OAAOA,CACX,CACA,SAASC,EAAkBC,EAAUC,EAAY,CACzCA,IAAe,SAAUA,EAAaJ,GAC1C,IAAIK,EAAS,CAAE,EACXC,EAAW,GACXC,EAAS,CACT,KAAM,UAAY,CACd,GAAID,EACA,MAAM,IAAI,MAAM,kGAAkG,EAEtH,OAAID,EAAO,OACAA,EAAOA,EAAO,OAAS,CAAC,EAE5BF,CACV,EACD,UAAW,SAAUK,EAAM,CACvB,IAAIC,EAAOL,EAAWI,EAAMF,CAAQ,EACpC,OAAAD,EAAO,KAAKI,CAAI,EACT,UAAY,CACfJ,EAASA,EAAO,OAAO,SAAUK,EAAG,CAAE,OAAOA,IAAMD,EAAO,CAC7D,CACJ,EACD,iBAAkB,SAAUE,EAAI,CAE5B,IADAL,EAAW,GACJD,EAAO,QAAQ,CAClB,IAAIO,EAAMP,EACVA,EAAS,CAAE,EACXO,EAAI,QAAQD,CAAE,CAC9B,CACYN,EAAS,CACL,KAAM,SAAUK,EAAG,CAAE,OAAOC,EAAGD,CAAC,CAAI,EACpC,OAAQ,UAAY,CAAE,OAAOL,CAAS,CACzC,CACJ,EACD,aAAc,SAAUM,EAAI,CACxBL,EAAW,GACX,IAAIO,EAAe,CAAE,EACrB,GAAIR,EAAO,OAAQ,CACf,IAAIO,EAAMP,EACVA,EAAS,CAAE,EACXO,EAAI,QAAQD,CAAE,EACdE,EAAeR,CAC/B,CACY,IAAIS,EAAe,UAAY,CAC3B,IAAIF,EAAMC,EACVA,EAAe,CAAE,EACjBD,EAAI,QAAQD,CAAE,CACjB,EACGI,EAAQ,UAAY,CAAE,OAAO,QAAQ,QAAO,EAAG,KAAKD,CAAY,CAAI,EACxEC,EAAO,EACPV,EAAS,CACL,KAAM,SAAUK,EAAG,CACfG,EAAa,KAAKH,CAAC,EACnBK,EAAO,CACV,EACD,OAAQ,SAAUC,EAAQ,CACtB,OAAAH,EAAeA,EAAa,OAAOG,CAAM,EAClCX,CACV,CACJ,CACJ,CACJ,EACD,OAAOE,CACX,CAMO,SAASU,EAAoBC,EAAS,CACrCA,IAAY,SAAUA,EAAU,CAAA,GACpC,IAAIX,EAASL,EAAkB,IAAI,EACnC,OAAAK,EAAO,QAAUY,EAAAA,SAAS,CAAE,MAAO,GAAM,IAAK,EAAO,EAAED,CAAO,EACvDX,CACX","x_google_ignoreList":[0]}
|
package/dist/index.cjs101.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs101.js","sources":["../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs101.js","sources":["../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/component.js"],"sourcesContent":["import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n"],"names":["Style","styleSingleton","lockAttribute","getStyles","_a","allowRelative","gapMode","important","left","top","right","gap","noScrollbarsClassName","zeroRightClassName","fullWidthClassName","removedBarSizeVariable","getCurrentUseCounter","counter","useLockAttribute","React","newCounter","RemoveScrollBar","noRelative","noImportant","_b","getGapWidth"],"mappings":"+dAIA,IAAIA,EAAQC,EAAAA,eAAgB,EACjBC,EAAgB,qBAIvBC,EAAY,SAAUC,EAAIC,EAAeC,EAASC,EAAW,CAC7D,IAAIC,EAAOJ,EAAG,KAAMK,EAAML,EAAG,IAAKM,EAAQN,EAAG,MAAOO,EAAMP,EAAG,IAC7D,OAAIE,IAAY,SAAUA,EAAU,UAC7B;AAAA,KAAQ,OAAOM,EAAqB,sBAAE;AAAA,qBAA0B,EAAE,OAAOL,EAAW;AAAA,mBAAuB,EAAE,OAAOI,EAAK,KAAK,EAAE,OAAOJ,EAAW;AAAA;AAAA,QAAiB,EAAE,OAAOL,EAAe;AAAA,sBAA4B,EAAE,OAAOK,EAAW;AAAA;AAAA,KAA4C,EAAE,OAAO,CACnSF,GAAiB,sBAAsB,OAAOE,EAAW,GAAG,EAC5DD,IAAY,UACR;AAAA,oBAAuB,OAAOE,EAAM;AAAA,kBAAwB,EAAE,OAAOC,EAAK;AAAA,oBAA0B,EAAE,OAAOC,EAAO;AAAA;AAAA;AAAA,mBAAgE,EAAE,OAAOC,EAAK,KAAK,EAAE,OAAOJ,EAAW;AAAA,KAAS,EACxOD,IAAY,WAAa,kBAAkB,OAAOK,EAAK,KAAK,EAAE,OAAOJ,EAAW,GAAG,CAC3F,EACS,OAAO,OAAO,EACd,KAAK,EAAE,EAAG;AAAA;AAAA;AAAA,IAAgB,EAAE,OAAOM,EAAkB,mBAAE;AAAA,YAAiB,EAAE,OAAOF,EAAK,KAAK,EAAE,OAAOJ,EAAW;AAAA;AAAA;AAAA,IAAiB,EAAE,OAAOO,EAAkB,mBAAE;AAAA,mBAAwB,EAAE,OAAOH,EAAK,KAAK,EAAE,OAAOJ,EAAW;AAAA;AAAA;AAAA,IAAiB,EAAE,OAAOM,EAAAA,mBAAoB,IAAI,EAAE,OAAOA,EAAAA,mBAAoB;AAAA,cAAmB,EAAE,OAAON,EAAW;AAAA;AAAA;AAAA,IAAiB,EAAE,OAAOO,EAAAA,mBAAoB,IAAI,EAAE,OAAOA,EAAkB,mBAAE;AAAA,qBAA0B,EAAE,OAAOP,EAAW;AAAA;AAAA;AAAA,QAAqB,EAAE,OAAOL,EAAe;AAAA,KAAW,EAAE,OAAOa,EAAsB,uBAAE,IAAI,EAAE,OAAOJ,EAAK;AAAA;AAAA,CAAY,CAC/kB,EACIK,EAAuB,UAAY,CACnC,IAAIC,EAAU,SAAS,SAAS,KAAK,aAAaf,CAAa,GAAK,IAAK,EAAE,EAC3E,OAAO,SAASe,CAAO,EAAIA,EAAU,CACzC,EACWC,EAAmB,UAAY,CACtCC,EAAM,UAAU,UAAY,CACxB,gBAAS,KAAK,aAAajB,GAAgBc,IAAyB,GAAG,UAAU,EAC1E,UAAY,CACf,IAAII,EAAaJ,EAAoB,EAAK,EACtCI,GAAc,EACd,SAAS,KAAK,gBAAgBlB,CAAa,EAG3C,SAAS,KAAK,aAAaA,EAAekB,EAAW,SAAQ,CAAE,CAEtE,CACJ,EAAE,EAAE,CACT,EAIWC,EAAkB,SAAUjB,EAAI,CACvC,IAAIkB,EAAalB,EAAG,WAAYmB,EAAcnB,EAAG,YAAaoB,EAAKpB,EAAG,QAASE,EAAUkB,IAAO,OAAS,SAAWA,EACpHN,EAAkB,EAMlB,IAAIP,EAAMQ,EAAM,QAAQ,UAAY,CAAE,OAAOM,cAAYnB,CAAO,CAAE,EAAI,CAACA,CAAO,CAAC,EAC/E,OAAOa,EAAM,cAAcnB,EAAO,CAAE,OAAQG,EAAUQ,EAAK,CAACW,EAAYhB,EAAUiB,EAA6B,GAAf,YAAiB,CAAC,CAAE,CACxH","x_google_ignoreList":[0]}
|
package/dist/index.cjs102.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs102.js","sources":["../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs102.js","sources":["../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/component.js"],"sourcesContent":["import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n"],"names":["styleSingleton","useStyle","styleHookSingleton","Sheet","_a","styles","dynamic"],"mappings":"qHAOU,IAACA,EAAiB,UAAY,CACpC,IAAIC,EAAWC,EAAAA,mBAAoB,EAC/BC,EAAQ,SAAUC,EAAI,CACtB,IAAIC,EAASD,EAAG,OAAQE,EAAUF,EAAG,QACrC,OAAAH,EAASI,EAAQC,CAAO,EACjB,IACV,EACD,OAAOH,CACX","x_google_ignoreList":[0]}
|
package/dist/index.cjs103.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs103.js","sources":["../../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs103.js","sources":["../../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js"],"sourcesContent":["var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n"],"names":["passiveSupported","options","nonPassive"],"mappings":"gFAAA,IAAIA,EAAmB,GACvB,GAAI,OAAO,OAAW,IAClB,GAAI,CACA,IAAIC,EAAU,OAAO,eAAe,CAAA,EAAI,UAAW,CAC/C,IAAK,UAAY,CACb,OAAAD,EAAmB,GACZ,EACV,CACb,CAAS,EAED,OAAO,iBAAiB,OAAQC,EAASA,CAAO,EAEhD,OAAO,oBAAoB,OAAQA,EAASA,CAAO,CAC3D,MACgB,CACRD,EAAmB,EAC3B,CAEU,IAACE,EAAaF,EAAmB,CAAE,QAAS,EAAK,EAAK","x_google_ignoreList":[0]}
|
package/dist/index.cjs104.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs104.js","sources":["../../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs104.js","sources":["../../../node_modules/.pnpm/react-remove-scroll@2.6.3_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll/dist/es2015/handleScroll.js"],"sourcesContent":["var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n"],"names":["alwaysContainsScroll","node","elementCanBeScrolled","overflow","styles","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","axis","ownerDocument","current","isScrollable","elementCouldBeScrolled","_a","getScrollVariables","scrollHeight","clientHeight","getVScrollVariables","scrollTop","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","direction","handleScroll","endTarget","event","sourceDelta","noOverscroll","directionFactor","delta","target","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","position","scroll_1","capacity","elementScroll"],"mappings":"gFAAA,IAAIA,EAAuB,SAAUC,EAAM,CAEvC,OAAOA,EAAK,UAAY,UAC5B,EACIC,EAAuB,SAAUD,EAAME,EAAU,CACjD,GAAI,EAAEF,aAAgB,SAClB,MAAO,GAEX,IAAIG,EAAS,OAAO,iBAAiBH,CAAI,EACzC,OAEAG,EAAOD,CAAQ,IAAM,UAEjB,EAAEC,EAAO,YAAcA,EAAO,WAAa,CAACJ,EAAqBC,CAAI,GAAKG,EAAOD,CAAQ,IAAM,UACvG,EACIE,EAA0B,SAAUJ,EAAM,CAAE,OAAOC,EAAqBD,EAAM,WAAW,CAAI,EAC7FK,EAA0B,SAAUL,EAAM,CAAE,OAAOC,EAAqBD,EAAM,WAAW,CAAI,EACtFM,EAA0B,SAAUC,EAAMP,EAAM,CACvD,IAAIQ,EAAgBR,EAAK,cACrBS,EAAUT,EACd,EAAG,CAEK,OAAO,WAAe,KAAeS,aAAmB,aACxDA,EAAUA,EAAQ,MAEtB,IAAIC,EAAeC,EAAuBJ,EAAME,CAAO,EACvD,GAAIC,EAAc,CACd,IAAIE,EAAKC,EAAmBN,EAAME,CAAO,EAAGK,EAAeF,EAAG,CAAC,EAAGG,EAAeH,EAAG,CAAC,EACrF,GAAIE,EAAeC,EACf,MAAO,EAEvB,CACQN,EAAUA,EAAQ,UAC1B,OAAaA,GAAWA,IAAYD,EAAc,MAC9C,MAAO,EACX,EACIQ,EAAsB,SAAUJ,EAAI,CACpC,IAAIK,EAAYL,EAAG,UAAWE,EAAeF,EAAG,aAAcG,EAAeH,EAAG,aAChF,MAAO,CACHK,EACAH,EACAC,CACH,CACL,EACIG,EAAsB,SAAUN,EAAI,CACpC,IAAIO,EAAaP,EAAG,WAAYQ,EAAcR,EAAG,YAAaS,EAAcT,EAAG,YAC/E,MAAO,CACHO,EACAC,EACAC,CACH,CACL,EACIV,EAAyB,SAAUJ,EAAMP,EAAM,CAC/C,OAAOO,IAAS,IAAMH,EAAwBJ,CAAI,EAAIK,EAAwBL,CAAI,CACtF,EACIa,EAAqB,SAAUN,EAAMP,EAAM,CAC3C,OAAOO,IAAS,IAAMS,EAAoBhB,CAAI,EAAIkB,EAAoBlB,CAAI,CAC9E,EACIsB,EAAqB,SAAUf,EAAMgB,EAAW,CAMhD,OAAOhB,IAAS,KAAOgB,IAAc,MAAQ,GAAK,CACtD,EACWC,EAAe,SAAUjB,EAAMkB,EAAWC,EAAOC,EAAaC,EAAc,CACnF,IAAIC,EAAkBP,EAAmBf,EAAM,OAAO,iBAAiBkB,CAAS,EAAE,SAAS,EACvFK,EAAQD,EAAkBF,EAE1BI,EAASL,EAAM,OACfM,EAAeP,EAAU,SAASM,CAAM,EACxCE,EAAqB,GACrBC,EAAkBJ,EAAQ,EAC1BK,EAAkB,EAClBC,EAAqB,EACzB,EAAG,CACC,IAAIxB,EAAKC,EAAmBN,EAAMwB,CAAM,EAAGM,EAAWzB,EAAG,CAAC,EAAG0B,EAAW1B,EAAG,CAAC,EAAG2B,EAAW3B,EAAG,CAAC,EAC1F4B,EAAgBF,EAAWC,EAAWV,EAAkBQ,GACxDA,GAAYG,IACR7B,EAAuBJ,EAAMwB,CAAM,IACnCI,GAAmBK,EACnBJ,GAAsBC,GAG1BN,aAAkB,WAClBA,EAASA,EAAO,KAGhBA,EAASA,EAAO,UAEvB,OAEA,CAACC,GAAgBD,IAAW,SAAS,MAEjCC,IAAiBP,EAAU,SAASM,CAAM,GAAKN,IAAcM,IAElE,OAAIG,GACkB,KAAK,IAAIC,CAAe,EAAI,GAGzC,CAACD,GACY,KAAK,IAAIE,CAAkB,EAAI,KACjDH,EAAqB,IAElBA,CACX","x_google_ignoreList":[0]}
|
package/dist/index.cjs105.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs105.js","sources":["../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs105.js","sources":["../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@18.3.1/node_modules/use-callback-ref/dist/es2015/assignRef.js"],"sourcesContent":["/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n"],"names":["assignRef","ref","value"],"mappings":"gFAaO,SAASA,EAAUC,EAAKC,EAAO,CAClC,OAAI,OAAOD,GAAQ,WACfA,EAAIC,CAAK,EAEJD,IACLA,EAAI,QAAUC,GAEXD,CACX","x_google_ignoreList":[0]}
|
package/dist/index.cjs106.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs106.js","sources":["../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs106.js","sources":["../../../node_modules/.pnpm/use-callback-ref@1.3.3_@types+react@18.3.18_react@18.3.1/node_modules/use-callback-ref/dist/es2015/useRef.js"],"sourcesContent":["import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n"],"names":["useCallbackRef","initialValue","callback","ref","useState","value","last"],"mappings":"yGAeO,SAASA,EAAeC,EAAcC,EAAU,CACnD,IAAIC,EAAMC,WAAS,UAAY,CAAE,MAAQ,CAErC,MAAOH,EAEP,SAAUC,EAEV,OAAQ,CACJ,IAAI,SAAU,CACV,OAAOC,EAAI,KACd,EACD,IAAI,QAAQE,EAAO,CACf,IAAIC,EAAOH,EAAI,MACXG,IAASD,IACTF,EAAI,MAAQE,EACZF,EAAI,SAASE,EAAOC,CAAI,EAE/B,CACJ,CACT,CAAO,CAAE,EAAE,CAAC,EAER,OAAAH,EAAI,SAAWD,EACRC,EAAI,MACf","x_google_ignoreList":[0]}
|
package/dist/index.cjs107.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs107.js","sources":["../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs107.js","sources":["../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.8_@types+react@18.3.18_react@18.3.1/node_modules/react-remove-scroll-bar/dist/es2015/utils.js"],"sourcesContent":["export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n"],"names":["zeroGap","parse","x","getOffset","gapMode","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth"],"mappings":"gFAAU,IAACA,EAAU,CACjB,KAAM,EACN,IAAK,EACL,MAAO,EACP,IAAK,CACT,EACIC,EAAQ,SAAUC,EAAG,CAAE,OAAO,SAASA,GAAK,GAAI,EAAE,GAAK,CAAI,EAC3DC,EAAY,SAAUC,EAAS,CAC/B,IAAIC,EAAK,OAAO,iBAAiB,SAAS,IAAI,EAC1CC,EAAOD,EAAGD,IAAY,UAAY,cAAgB,YAAY,EAC9DG,EAAMF,EAAGD,IAAY,UAAY,aAAe,WAAW,EAC3DI,EAAQH,EAAGD,IAAY,UAAY,eAAiB,aAAa,EACrE,MAAO,CAACH,EAAMK,CAAI,EAAGL,EAAMM,CAAG,EAAGN,EAAMO,CAAK,CAAC,CACjD,EACWC,EAAc,SAAUL,EAAS,CAExC,GADIA,IAAY,SAAUA,EAAU,UAChC,OAAO,OAAW,IAClB,OAAOJ,EAEX,IAAIU,EAAUP,EAAUC,CAAO,EAC3BO,EAAgB,SAAS,gBAAgB,YACzCC,EAAc,OAAO,WACzB,MAAO,CACH,KAAMF,EAAQ,CAAC,EACf,IAAKA,EAAQ,CAAC,EACd,MAAOA,EAAQ,CAAC,EAChB,IAAK,KAAK,IAAI,EAAGE,EAAcD,EAAgBD,EAAQ,CAAC,EAAIA,EAAQ,CAAC,CAAC,CACzE,CACL","x_google_ignoreList":[0]}
|
package/dist/index.cjs108.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs108.js","sources":["../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs108.js","sources":["../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/hook.js"],"sourcesContent":["import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n"],"names":["styleHookSingleton","sheet","stylesheetSingleton","styles","isDynamic","React"],"mappings":"kaAWU,IAACA,EAAqB,UAAY,CACxC,IAAIC,EAAQC,EAAAA,oBAAqB,EACjC,OAAO,SAAUC,EAAQC,EAAW,CAChCC,EAAM,UAAU,UAAY,CACxB,OAAAJ,EAAM,IAAIE,CAAM,EACT,UAAY,CACfF,EAAM,OAAQ,CACjB,CACb,EAAW,CAACE,GAAUC,CAAS,CAAC,CAC3B,CACL","x_google_ignoreList":[0]}
|
package/dist/index.cjs109.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs109.js","sources":["../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@
|
|
1
|
+
{"version":3,"file":"index.cjs109.js","sources":["../../../node_modules/.pnpm/react-style-singleton@2.2.3_@types+react@18.3.18_react@18.3.1/node_modules/react-style-singleton/dist/es2015/singleton.js"],"sourcesContent":["import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n"],"names":["makeStyleTag","tag","nonce","getNonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style"],"mappings":"qHACA,SAASA,GAAe,CACpB,GAAI,CAAC,SACD,OAAO,KACX,IAAIC,EAAM,SAAS,cAAc,OAAO,EACxCA,EAAI,KAAO,WACX,IAAIC,EAAQC,EAAAA,SAAU,EACtB,OAAID,GACAD,EAAI,aAAa,QAASC,CAAK,EAE5BD,CACX,CACA,SAASG,EAAaH,EAAKI,EAAK,CAExBJ,EAAI,WAEJA,EAAI,WAAW,QAAUI,EAGzBJ,EAAI,YAAY,SAAS,eAAeI,CAAG,CAAC,CAEpD,CACA,SAASC,EAAeL,EAAK,CACzB,IAAIM,EAAO,SAAS,MAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC,EACnEA,EAAK,YAAYN,CAAG,CACxB,CACU,IAACO,EAAsB,UAAY,CACzC,IAAIC,EAAU,EACVC,EAAa,KACjB,MAAO,CACH,IAAK,SAAUC,EAAO,CACdF,GAAW,IACNC,EAAaV,OACdI,EAAaM,EAAYC,CAAK,EAC9BL,EAAeI,CAAU,GAGjCD,GACH,EACD,OAAQ,UAAY,CAChBA,IACI,CAACA,GAAWC,IACZA,EAAW,YAAcA,EAAW,WAAW,YAAYA,CAAU,EACrEA,EAAa,KAEpB,CACJ,CACL","x_google_ignoreList":[0]}
|
package/dist/index.cjs11.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index.cjs9.js"),d=require("./index.cjs38.js"),u=require("./index.cjs39.js"),c=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index.cjs9.js"),d=require("./index.cjs38.js"),u=require("./index.cjs39.js"),c=require("./index.cjs22.js"),e=u.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",outline:"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function v({className:t,variant:r,size:i,asChild:n=!1,...s}){const o=n?d.Slot:"button";return a.jsxRuntimeExports.jsx(o,{"data-slot":"button",className:c.cn(e({variant:r,size:i,className:t})),...s})}exports.Button=v;exports.buttonVariants=e;
|
|
2
2
|
//# sourceMappingURL=index.cjs11.js.map
|
package/dist/index.cjs12.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs9.js"),u=require("./index.cjs38.js"),a=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs9.js"),u=require("./index.cjs38.js"),a=require("./index.cjs22.js"),i=require("./index.cjs27.js");function o({...r}){return t.jsxRuntimeExports.jsx("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...r})}function c({className:r,...e}){return t.jsxRuntimeExports.jsx("ol",{"data-slot":"breadcrumb-list",className:a.cn("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",r),...e})}function m({className:r,...e}){return t.jsxRuntimeExports.jsx("li",{"data-slot":"breadcrumb-item",className:a.cn("inline-flex items-center gap-1.5",r),...e})}function d({asChild:r,className:e,...s}){const n=r?u.Slot:"a";return t.jsxRuntimeExports.jsx(n,{"data-slot":"breadcrumb-link",className:a.cn("hover:text-foreground transition-colors",e),...s})}function l({children:r,className:e,...s}){return t.jsxRuntimeExports.jsx("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:a.cn("[&>svg]:size-3.5",e),...s,children:r??t.jsxRuntimeExports.jsx(i.default,{})})}exports.Breadcrumb=o;exports.BreadcrumbItem=m;exports.BreadcrumbLink=d;exports.BreadcrumbList=c;exports.BreadcrumbSeparator=l;
|
|
2
2
|
//# sourceMappingURL=index.cjs12.js.map
|
package/dist/index.cjs13.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),t=require("./index.cjs40.js"),n=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),t=require("./index.cjs40.js"),n=require("./index.cjs22.js");function i({className:s,...r}){return e.jsxRuntimeExports.jsx(t.Root,{"data-slot":"switch",className:n.cn("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",s),...r,children:e.jsxRuntimeExports.jsx(t.Thumb,{"data-slot":"switch-thumb",className:n.cn("bg-background pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})}exports.Switch=i;
|
|
2
2
|
//# sourceMappingURL=index.cjs13.js.map
|
package/dist/index.cjs14.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),s=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),s=require("./index.cjs41.js"),a=require("./index.cjs22.js"),o=require("./index.cjs42.js"),d=require("./index.cjs43.js"),u=require("./index.cjs44.js");function x({...t}){return e.jsxRuntimeExports.jsx(s.Root,{"data-slot":"select",...t})}function p({...t}){return e.jsxRuntimeExports.jsx(s.Value,{"data-slot":"select-value",...t})}function m({className:t,children:r,...n}){return e.jsxRuntimeExports.jsxs(s.Trigger,{"data-slot":"select-trigger","data-testid":"select-trigger",className:a.cn("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex h-9 w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...n,children:[r,e.jsxRuntimeExports.jsx(s.Icon,{asChild:!0,children:e.jsxRuntimeExports.jsx(o.default,{className:"size-4 opacity-50"})})]})}function f({className:t,children:r,position:n="popper",...c}){return e.jsxRuntimeExports.jsx(s.Portal,{children:e.jsxRuntimeExports.jsxs(s.Content,{"data-slot":"select-content",className:a.cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,...c,children:[e.jsxRuntimeExports.jsx(l,{}),e.jsxRuntimeExports.jsx(s.Viewport,{className:a.cn("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:r}),e.jsxRuntimeExports.jsx(i,{})]})})}function g({className:t,children:r,...n}){return e.jsxRuntimeExports.jsxs(s.Item,{"data-slot":"select-item",className:a.cn("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...n,children:[e.jsxRuntimeExports.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsxRuntimeExports.jsx(s.ItemIndicator,{children:e.jsxRuntimeExports.jsx(d.default,{className:"size-4"})})}),e.jsxRuntimeExports.jsx(s.ItemText,{children:r})]})}function l({className:t,...r}){return e.jsxRuntimeExports.jsx(s.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:a.cn("flex cursor-default items-center justify-center py-1",t),...r,children:e.jsxRuntimeExports.jsx(u.default,{className:"size-4"})})}function i({className:t,...r}){return e.jsxRuntimeExports.jsx(s.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:a.cn("flex cursor-default items-center justify-center py-1",t),...r,children:e.jsxRuntimeExports.jsx(o.default,{className:"size-4"})})}exports.Select=x;exports.SelectContent=f;exports.SelectItem=g;exports.SelectScrollDownButton=i;exports.SelectScrollUpButton=l;exports.SelectTrigger=m;exports.SelectValue=p;
|
|
2
2
|
//# sourceMappingURL=index.cjs14.js.map
|
package/dist/index.cjs15.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index.cjs9.js"),o=require("./index.cjs35.js"),r=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index.cjs9.js"),o=require("./index.cjs35.js"),r=require("./index.cjs22.js");function a({className:e,...t}){return n.jsxRuntimeExports.jsx(o.Root,{"data-slot":"label",className:r.cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}exports.Label=a;
|
|
2
2
|
//# sourceMappingURL=index.cjs15.js.map
|
package/dist/index.cjs16.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs9.js"),d=require("react"),q=require("./index.cjs11.js"),c=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs9.js"),d=require("react"),q=require("./index.cjs11.js"),c=require("./index.cjs45.js"),b=require("./index.cjs15.js"),p=require("./index.cjs10.js"),S=require("./index.cjs4.js"),F=require("./index.cjs46.js"),V=require("./index.cjs47.js"),$=require("./index.cjs21.js"),A=require("react-hook-form"),N=require("./index.cjs48.js"),k=require("./index.cjs49.js"),w=$.AddFormSchema.pick({constraints:!0,property:!0});function B({open:x,onOpenChange:j,onSubmit:f,property:i,propertyKey:h}){const s=A.useForm({resolver:N.zodResolver(w),defaultValues:{property:i}}),u=s.watch("constraints"),{getConstraintDefinitionsForType:g,getRendererForConstraint:R,validateConstraintValue:y}=S.useConstraints(),C=e=>{const{constraints:r}=e,a={...r?.reduce((n,o)=>({...n,[o.name]:o.value}),{})};f([h,a]),s.reset()},E=(e,r)=>{const a=p.a(u),n=a?.[e];if(!n){s.setError(`constraints.${e}`,{message:"The constraint was not found",type:"constraint_not_found"});return}const o=y(n.name,r);if(o.status==="error"){let l=o.message;o.code==="invalid"&&(l=`${l}: ${o.error?.map(D=>D.message).join(", ")}`),s.setError(`constraints.${e}`,{type:o.code,message:l});return}n.value=r,s.setValue("constraints",a),s.clearErrors(`constraints.${e}`)},v=e=>{if(!u)return;const a=p.a(u).filter(n=>n.name!==e);s.setValue("constraints",a)},m=d.useMemo(()=>g(typeof i?.type=="string"?i.type:""),[i.type]);return d.useEffect(()=>{const e=[];for(const r of m)r.name in i&&e.push({name:r.name,value:i[r.name]});s.setValue("constraints",e)},[m]),t.jsxRuntimeExports.jsx(c.Dialog,{open:x,onOpenChange:j,children:t.jsxRuntimeExports.jsxs(c.DialogContent,{children:[t.jsxRuntimeExports.jsxs(c.DialogHeader,{children:[t.jsxRuntimeExports.jsx(c.DialogTitle,{children:"Edit"}),t.jsxRuntimeExports.jsx(c.DialogDescription,{children:"Constraints and other properties"})]}),t.jsxRuntimeExports.jsx(k.Form,{...s,children:t.jsxRuntimeExports.jsxs("form",{onSubmit:s.handleSubmit(C),className:"space-y-4","data-testid":"edit-property-form",children:[m.length?t.jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[t.jsxRuntimeExports.jsx(b.Label,{children:"Constraints"}),t.jsxRuntimeExports.jsx(F.default,{addedConstraints:u??[],availableDefinitions:m,onAdd:e=>{s.setValue("constraints",e)}}),t.jsxRuntimeExports.jsx(V.Separator,{}),u?.map((e,r)=>{const a=R(e.name);if(!a)return null;const n=s.formState.errors.constraints?.[r];let o;return n&&(o={code:n?.type??"INVALID",message:n.message??"An error occurred"}),t.jsxRuntimeExports.jsx(a,{constraintName:e.name,value:e.value,onConstraintChange:l=>{E(r,l)},onRemoveConstraint:()=>{v(e.name)},error:o},e.name)})]}):null,t.jsxRuntimeExports.jsx(c.DialogFooter,{children:t.jsxRuntimeExports.jsx(q.Button,{type:"submit",children:"Save"})})]})})]})})}exports.EditPropertyDialog=B;
|
|
2
2
|
//# sourceMappingURL=index.cjs16.js.map
|
package/dist/index.cjs17.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index.cjs9.js"),o=require("./index.cjs51.js"),l=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./index.cjs9.js"),o=require("./index.cjs51.js"),l=require("./index.cjs22.js"),r=require("./index.cjs11.js");function i({...t}){return a.jsxRuntimeExports.jsx(o.Root,{"data-slot":"alert-dialog",...t})}function n({...t}){return a.jsxRuntimeExports.jsx(o.Portal,{"data-slot":"alert-dialog-portal",...t})}function s({className:t,...e}){return a.jsxRuntimeExports.jsx(o.Overlay,{"data-slot":"alert-dialog-overlay",className:l.cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",t),...e})}function d({className:t,...e}){return a.jsxRuntimeExports.jsxs(n,{children:[a.jsxRuntimeExports.jsx(s,{}),a.jsxRuntimeExports.jsx(o.Content,{"data-slot":"alert-dialog-content",className:l.cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...e})]})}function u({className:t,...e}){return a.jsxRuntimeExports.jsx("div",{"data-slot":"alert-dialog-header",className:l.cn("flex flex-col gap-2 text-center sm:text-left",t),...e})}function c({className:t,...e}){return a.jsxRuntimeExports.jsx("div",{"data-slot":"alert-dialog-footer",className:l.cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...e})}function x({className:t,...e}){return a.jsxRuntimeExports.jsx(o.Title,{"data-slot":"alert-dialog-title",className:l.cn("text-lg font-semibold",t),...e})}function g({className:t,...e}){return a.jsxRuntimeExports.jsx(o.Description,{"data-slot":"alert-dialog-description",className:l.cn("text-muted-foreground text-sm",t),...e})}function m({className:t,...e}){return a.jsxRuntimeExports.jsx(o.Action,{className:l.cn(r.buttonVariants(),t),...e})}function f({className:t,...e}){return a.jsxRuntimeExports.jsx(o.Cancel,{className:l.cn(r.buttonVariants({variant:"outline"}),t),...e})}exports.AlertDialog=i;exports.AlertDialogAction=m;exports.AlertDialogCancel=f;exports.AlertDialogContent=d;exports.AlertDialogDescription=g;exports.AlertDialogFooter=c;exports.AlertDialogHeader=u;exports.AlertDialogOverlay=s;exports.AlertDialogPortal=n;exports.AlertDialogTitle=x;
|
|
2
2
|
//# sourceMappingURL=index.cjs17.js.map
|
package/dist/index.cjs18.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index.cjs9.js"),i=require("./index.cjs39.js"),s=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index.cjs9.js"),i=require("./index.cjs39.js"),s=require("./index.cjs22.js"),n=i.cva("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-background text-foreground",destructive:"text-destructive-foreground [&>svg]:text-current *:data-[slot=alert-description]:text-destructive-foreground/80"}},defaultVariants:{variant:"default"}});function l({className:t,variant:e,...a}){return r.jsxRuntimeExports.jsx("div",{"data-slot":"alert",role:"alert",className:s.cn(n({variant:e}),t),...a})}function o({className:t,...e}){return r.jsxRuntimeExports.jsx("div",{"data-slot":"alert-title",className:s.cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",t),...e})}function c({className:t,...e}){return r.jsxRuntimeExports.jsx("div",{"data-slot":"alert-description",className:s.cn("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...e})}exports.Alert=l;exports.AlertDescription=c;exports.AlertTitle=o;
|
|
2
2
|
//# sourceMappingURL=index.cjs18.js.map
|
package/dist/index.cjs20.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index.cjs9.js"),t=require("react"),b=require("./index.cjs52.js"),f=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index.cjs9.js"),t=require("react"),b=require("./index.cjs52.js"),f=require("./index.cjs28.js"),o=t.forwardRef(({onDebounce:r,type:s,delay:c=200,value:u,...i},a)=>{const[n,d]=t.useState(u),[e]=b.useDebounce(n,c);return t.useEffect(()=>{typeof e=="string"&&e!==u&&r?.(e)},[e]),l.jsxRuntimeExports.jsx(f.Input,{...i,type:s,value:n,ref:a,onChange:p=>{d(p.target.value)}})});o.displayName="DebouncedInput";exports.DebouncedInput=o;
|
|
2
2
|
//# sourceMappingURL=index.cjs20.js.map
|
package/dist/index.cjs21.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),V=require("./index.cjs11.js"),T=require("./index.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),V=require("./index.cjs11.js"),T=require("./index.cjs48.js"),m=require("./index.cjs45.js"),N=require("./index.cjs28.js"),L=require("./index.cjs15.js"),i=require("./index.cjs14.js"),k=require("./index.cjs13.js"),y=require("./index.cjs20.js"),d=require("./index.cjs10.js"),w=require("./index.cjs50.js"),M=require("./index.cjs4.js"),P=require("./index.cjs46.js"),$=require("./index.cjs47.js"),n=require("zod"),B=require("react-hook-form"),r=require("./index.cjs49.js"),c=n.z.enum(["string","number","integer","boolean","object","array","null"]),g=n.z.object({key:n.z.string().trim().min(1,{message:"Key must be at least 1 character long"}),property:n.z.object({title:n.z.string().trim().min(1,{message:"Title must be at least 1 character long"}),type:c.or(n.z.array(c)),description:n.z.string().optional(),enum:n.z.array(n.z.string().or(n.z.number()).or(n.z.null()).or(n.z.boolean()).or(n.z.record(n.z.string(),n.z.any()))).optional(),items:n.z.object({type:c.or(n.z.array(c))}).or(n.z.array(n.z.object({type:c.or(n.z.array(c))}).or(n.z.boolean()))).or(n.z.boolean()).optional()}),required:n.z.boolean().default(!1),constraints:n.z.array(n.z.custom(()=>({name:n.z.string().trim().min(1),value:n.z.any()}))).optional()});function _({open:v,onOpenChange:b,onSubmit:F}){const s=B.useForm({resolver:T.zodResolver(g),defaultValues:{key:"",property:{title:""}}}),p=s.watch("constraints"),h=s.watch("property"),C=s.watch("property.enum"),S=s.watch("property.type"),{getConstraintDefinitionsForType:z,getRendererForConstraint:I,validateConstraintValue:f}=M.useConstraints(),q=t=>{const{key:o,property:a,required:l,constraints:x}=t,u={...a,...x?.reduce((j,E)=>({...j,[E.name]:E.value}),{})};F(o,u,l),s.reset()},D=(t,o)=>{const a=d.a(p),l=a?.[t];if(!l){s.setError(`constraints.${t}`,{message:"The constraint was not found",type:"constraint_not_found"});return}const x=f(l.name,o);if(x.status==="error"){let u=x.message;x.code==="invalid"&&(u=`${u}: ${x.error?.map(j=>j.message).join(", ")}`),s.setError(`constraints.${t}`,{type:x.code,message:u});return}l.value=o,s.setValue("constraints",a),s.clearErrors(`constraints.${t}`)},A=t=>{if(!p)return;const a=d.a(p).filter(l=>l.name!==t);s.setValue("constraints",a)},R=z(typeof h?.type=="string"?h.type:"");return e.jsxRuntimeExports.jsx(m.Dialog,{open:v,onOpenChange:b,children:e.jsxRuntimeExports.jsxs(m.DialogContent,{"data-testid":"add-property-dialog",children:[e.jsxRuntimeExports.jsxs(m.DialogHeader,{children:[e.jsxRuntimeExports.jsx(m.DialogTitle,{children:"Add"}),e.jsxRuntimeExports.jsx(m.DialogDescription,{children:"Required property values and constraints"})]}),e.jsxRuntimeExports.jsx(r.Form,{...s,children:e.jsxRuntimeExports.jsxs("form",{onSubmit:s.handleSubmit(q),className:"space-y-4","data-testid":"add-property-form",children:[e.jsxRuntimeExports.jsx("div",{className:"space-y-2",children:e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"key",render:({field:t})=>{const{onChange:o,...a}=t;return e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Property Key"}),e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsx(y.DebouncedInput,{...a,onDebounce:l=>o(l)})}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})}})}),e.jsxRuntimeExports.jsx("div",{className:"space-y-2",children:e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"property.title",render:({field:t})=>{const{onChange:o,...a}=t;return e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Property Title"}),e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsx(y.DebouncedInput,{...a,onDebounce:l=>o(l)})}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})}})}),e.jsxRuntimeExports.jsx("div",{className:"space-y-2",children:e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"property.type",render:({field:t})=>e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Type"}),e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsxs(i.Select,{value:Array.isArray(t.value)?void 0:t.value,onValueChange:o=>{o==="enum"?s.setValue("property.enum",[]):s.setValue("property.enum",void 0),t.value==="array"&&o!=="array"&&(s.clearErrors("property.items"),s.setValue("property.items",void 0)),t.onChange(o)},children:[e.jsxRuntimeExports.jsx(i.SelectTrigger,{className:"w-full","aria-label":"Select type",children:e.jsxRuntimeExports.jsx(i.SelectValue,{})}),e.jsxRuntimeExports.jsxs(i.SelectContent,{children:[e.jsxRuntimeExports.jsx(i.SelectItem,{value:"string",children:"string"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"number",children:"number"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"integer",children:"integer"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"boolean",children:"boolean"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"object",children:"object"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"array",children:"array"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"null",children:"null"})]})]})}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})})}),S==="array"&&e.jsxRuntimeExports.jsx("div",{className:"space-y-2",children:e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"property.items.type",render:({field:t})=>e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Items of type"}),e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsxs(i.Select,{value:Array.isArray(t.value)?void 0:t.value,onValueChange:o=>{s.clearErrors("property.items.type"),s.setValue("property.items.type",o)},children:[e.jsxRuntimeExports.jsx(i.SelectTrigger,{className:"w-full","aria-label":"Select items of type",children:e.jsxRuntimeExports.jsx(i.SelectValue,{placeholder:"Select item type"})}),e.jsxRuntimeExports.jsxs(i.SelectContent,{children:[e.jsxRuntimeExports.jsx(i.SelectItem,{value:"string",children:"string"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"number",children:"number"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"integer",children:"integer"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"boolean",children:"boolean"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"object",children:"object"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"array",children:"array"}),e.jsxRuntimeExports.jsx(i.SelectItem,{value:"null",children:"null"})]})]})}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})})}),e.jsxRuntimeExports.jsx("div",{className:"flex items-center space-x-2",children:e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"required",render:({field:t})=>e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsx(k.Switch,{checked:t.value,onCheckedChange:o=>t.onChange(o)})}),e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Required"}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})})}),e.jsxRuntimeExports.jsx("div",{className:"space-y-2",children:e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"property.description",render:({field:t})=>e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Description"}),e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsx(N.Input,{...t})}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})})}),C?e.jsxRuntimeExports.jsx(r.FormField,{control:s.control,name:"property.enum",render:({field:t})=>e.jsxRuntimeExports.jsxs(r.FormItem,{children:[e.jsxRuntimeExports.jsx(r.FormLabel,{children:"Enum"}),e.jsxRuntimeExports.jsx(r.FormControl,{children:e.jsxRuntimeExports.jsx(w.default,{values:t.value?.filter(o=>typeof o=="string")??[],onAddValue:o=>{const a=[];t.value&&a.push(...t.value),a.push(o),t.onChange(a)},onRemoveValue:o=>{const a=d.a(t.value??[]);a.splice(o,1),t.onChange(a)}})}),e.jsxRuntimeExports.jsx(r.FormMessage,{})]})}):null,R.length?e.jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[e.jsxRuntimeExports.jsx(L.Label,{children:"Constraints"}),e.jsxRuntimeExports.jsx(P.default,{addedConstraints:p??[],availableDefinitions:R,onAdd:t=>{s.setValue("constraints",t)}}),e.jsxRuntimeExports.jsx($.Separator,{}),p?.map((t,o)=>{const a=I(t.name);if(!a)return null;const l=s.formState.errors.constraints?.[o];let x;return l&&(x={code:l?.type??"INVALID",message:l.message??"An error occurred"}),e.jsxRuntimeExports.jsx(a,{constraintName:t.name,value:t.value,onConstraintChange:u=>{D(o,u)},onRemoveConstraint:()=>{A(t.name)},error:x},t.name)})]}):null,e.jsxRuntimeExports.jsx(m.DialogFooter,{children:e.jsxRuntimeExports.jsx(V.Button,{type:"submit",children:"Add Property"})})]})})]})})}exports.AddFormSchema=g;exports.AddPropertyDialog=_;
|
|
2
2
|
//# sourceMappingURL=index.cjs21.js.map
|