@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.
Files changed (285) hide show
  1. package/README.md +142 -37
  2. package/dist/index.cjs100.js.map +1 -1
  3. package/dist/index.cjs101.js.map +1 -1
  4. package/dist/index.cjs102.js.map +1 -1
  5. package/dist/index.cjs103.js.map +1 -1
  6. package/dist/index.cjs104.js.map +1 -1
  7. package/dist/index.cjs105.js.map +1 -1
  8. package/dist/index.cjs106.js.map +1 -1
  9. package/dist/index.cjs107.js.map +1 -1
  10. package/dist/index.cjs108.js.map +1 -1
  11. package/dist/index.cjs109.js.map +1 -1
  12. package/dist/index.cjs11.js +1 -1
  13. package/dist/index.cjs12.js +1 -1
  14. package/dist/index.cjs13.js +1 -1
  15. package/dist/index.cjs14.js +1 -1
  16. package/dist/index.cjs15.js +1 -1
  17. package/dist/index.cjs16.js +1 -1
  18. package/dist/index.cjs17.js +1 -1
  19. package/dist/index.cjs18.js +1 -1
  20. package/dist/index.cjs20.js +1 -1
  21. package/dist/index.cjs21.js +1 -1
  22. package/dist/index.cjs22.js +1 -6
  23. package/dist/index.cjs22.js.map +1 -1
  24. package/dist/index.cjs23.js +1 -1
  25. package/dist/index.cjs23.js.map +1 -1
  26. package/dist/index.cjs24.js +1 -1
  27. package/dist/index.cjs24.js.map +1 -1
  28. package/dist/index.cjs25.js +1 -1
  29. package/dist/index.cjs25.js.map +1 -1
  30. package/dist/index.cjs26.js +1 -1
  31. package/dist/index.cjs26.js.map +1 -1
  32. package/dist/index.cjs27.js +6 -1
  33. package/dist/index.cjs27.js.map +1 -1
  34. package/dist/index.cjs28.js +1 -1
  35. package/dist/index.cjs28.js.map +1 -1
  36. package/dist/index.cjs29.js +1 -1
  37. package/dist/index.cjs29.js.map +1 -1
  38. package/dist/index.cjs3.js +1 -1
  39. package/dist/index.cjs3.js.map +1 -1
  40. package/dist/index.cjs30.js.map +1 -1
  41. package/dist/index.cjs31.js +1 -1
  42. package/dist/index.cjs31.js.map +1 -1
  43. package/dist/index.cjs33.js +4 -4
  44. package/dist/index.cjs33.js.map +1 -1
  45. package/dist/index.cjs34.js +12 -13
  46. package/dist/index.cjs34.js.map +1 -1
  47. package/dist/index.cjs35.js +1 -1
  48. package/dist/index.cjs35.js.map +1 -1
  49. package/dist/index.cjs38.js +1 -1
  50. package/dist/index.cjs38.js.map +1 -1
  51. package/dist/index.cjs40.js +1 -1
  52. package/dist/index.cjs40.js.map +1 -1
  53. package/dist/index.cjs41.js +1 -1
  54. package/dist/index.cjs41.js.map +1 -1
  55. package/dist/index.cjs42.js +6 -1
  56. package/dist/index.cjs42.js.map +1 -1
  57. package/dist/index.cjs43.js +6 -1
  58. package/dist/index.cjs43.js.map +1 -1
  59. package/dist/index.cjs44.js +6 -1
  60. package/dist/index.cjs44.js.map +1 -1
  61. package/dist/index.cjs45.js +1 -1
  62. package/dist/index.cjs45.js.map +1 -1
  63. package/dist/index.cjs46.js +1 -1
  64. package/dist/index.cjs46.js.map +1 -1
  65. package/dist/index.cjs47.js +1 -1
  66. package/dist/index.cjs47.js.map +1 -1
  67. package/dist/index.cjs48.js +1 -6
  68. package/dist/index.cjs48.js.map +1 -1
  69. package/dist/index.cjs49.js +1 -6
  70. package/dist/index.cjs49.js.map +1 -1
  71. package/dist/index.cjs5.js +1 -1
  72. package/dist/index.cjs50.js +1 -6
  73. package/dist/index.cjs50.js.map +1 -1
  74. package/dist/index.cjs51.js +1 -1
  75. package/dist/index.cjs51.js.map +1 -1
  76. package/dist/index.cjs52.js.map +1 -1
  77. package/dist/index.cjs55.js.map +1 -1
  78. package/dist/index.cjs56.js.map +1 -1
  79. package/dist/index.cjs57.js.map +1 -1
  80. package/dist/index.cjs58.js.map +1 -1
  81. package/dist/index.cjs6.js +1 -1
  82. package/dist/index.cjs61.js +1 -1
  83. package/dist/index.cjs61.js.map +1 -1
  84. package/dist/index.cjs62.js +1 -1
  85. package/dist/index.cjs62.js.map +1 -1
  86. package/dist/index.cjs63.js +1 -1
  87. package/dist/index.cjs63.js.map +1 -1
  88. package/dist/index.cjs65.js +1 -1
  89. package/dist/index.cjs65.js.map +1 -1
  90. package/dist/index.cjs66.js +1 -1
  91. package/dist/index.cjs66.js.map +1 -1
  92. package/dist/index.cjs67.js +1 -1
  93. package/dist/index.cjs67.js.map +1 -1
  94. package/dist/index.cjs68.js +1 -1
  95. package/dist/index.cjs68.js.map +1 -1
  96. package/dist/index.cjs69.js +1 -1
  97. package/dist/index.cjs69.js.map +1 -1
  98. package/dist/index.cjs7.js +1 -1
  99. package/dist/index.cjs70.js +1 -1
  100. package/dist/index.cjs70.js.map +1 -1
  101. package/dist/index.cjs71.js +1 -1
  102. package/dist/index.cjs71.js.map +1 -1
  103. package/dist/index.cjs72.js +1 -1
  104. package/dist/index.cjs72.js.map +1 -1
  105. package/dist/index.cjs73.js +1 -1
  106. package/dist/index.cjs73.js.map +1 -1
  107. package/dist/index.cjs74.js +1 -1
  108. package/dist/index.cjs74.js.map +1 -1
  109. package/dist/index.cjs75.js +1 -1
  110. package/dist/index.cjs75.js.map +1 -1
  111. package/dist/index.cjs76.js +1 -1
  112. package/dist/index.cjs76.js.map +1 -1
  113. package/dist/index.cjs77.js +1 -1
  114. package/dist/index.cjs77.js.map +1 -1
  115. package/dist/index.cjs78.js +1 -1
  116. package/dist/index.cjs78.js.map +1 -1
  117. package/dist/index.cjs79.js +1 -1
  118. package/dist/index.cjs79.js.map +1 -1
  119. package/dist/index.cjs8.js +1 -1
  120. package/dist/index.cjs80.js +1 -1
  121. package/dist/index.cjs80.js.map +1 -1
  122. package/dist/index.cjs81.js +1 -1
  123. package/dist/index.cjs81.js.map +1 -1
  124. package/dist/index.cjs82.js +1 -1
  125. package/dist/index.cjs82.js.map +1 -1
  126. package/dist/index.cjs83.js +1 -1
  127. package/dist/index.cjs83.js.map +1 -1
  128. package/dist/index.cjs84.js +1 -1
  129. package/dist/index.cjs84.js.map +1 -1
  130. package/dist/index.cjs85.js +1 -1
  131. package/dist/index.cjs85.js.map +1 -1
  132. package/dist/index.cjs86.js.map +1 -1
  133. package/dist/index.cjs87.js +1 -1
  134. package/dist/index.cjs87.js.map +1 -1
  135. package/dist/index.cjs90.js.map +1 -1
  136. package/dist/index.cjs91.js.map +1 -1
  137. package/dist/index.cjs92.js.map +1 -1
  138. package/dist/index.cjs93.js.map +1 -1
  139. package/dist/index.cjs94.js.map +1 -1
  140. package/dist/index.cjs95.js.map +1 -1
  141. package/dist/index.cjs96.js.map +1 -1
  142. package/dist/index.es100.js.map +1 -1
  143. package/dist/index.es101.js.map +1 -1
  144. package/dist/index.es102.js.map +1 -1
  145. package/dist/index.es103.js.map +1 -1
  146. package/dist/index.es104.js.map +1 -1
  147. package/dist/index.es105.js.map +1 -1
  148. package/dist/index.es106.js.map +1 -1
  149. package/dist/index.es107.js.map +1 -1
  150. package/dist/index.es108.js.map +1 -1
  151. package/dist/index.es109.js.map +1 -1
  152. package/dist/index.es11.js +1 -1
  153. package/dist/index.es12.js +2 -2
  154. package/dist/index.es13.js +1 -1
  155. package/dist/index.es14.js +5 -5
  156. package/dist/index.es15.js +1 -1
  157. package/dist/index.es16.js +5 -5
  158. package/dist/index.es17.js +1 -1
  159. package/dist/index.es18.js +1 -1
  160. package/dist/index.es20.js +1 -1
  161. package/dist/index.es21.js +7 -7
  162. package/dist/index.es22.js +6 -13
  163. package/dist/index.es22.js.map +1 -1
  164. package/dist/index.es23.js +6 -9
  165. package/dist/index.es23.js.map +1 -1
  166. package/dist/index.es24.js +9 -6
  167. package/dist/index.es24.js.map +1 -1
  168. package/dist/index.es25.js +6 -12
  169. package/dist/index.es25.js.map +1 -1
  170. package/dist/index.es26.js +13 -4
  171. package/dist/index.es26.js.map +1 -1
  172. package/dist/index.es27.js +10 -19
  173. package/dist/index.es27.js.map +1 -1
  174. package/dist/index.es28.js +17 -21
  175. package/dist/index.es28.js.map +1 -1
  176. package/dist/index.es29.js +22 -5
  177. package/dist/index.es29.js.map +1 -1
  178. package/dist/index.es3.js +212 -185
  179. package/dist/index.es3.js.map +1 -1
  180. package/dist/index.es30.js.map +1 -1
  181. package/dist/index.es31.js +3 -3
  182. package/dist/index.es31.js.map +1 -1
  183. package/dist/index.es33.js +17 -24
  184. package/dist/index.es33.js.map +1 -1
  185. package/dist/index.es34.js +527 -331
  186. package/dist/index.es34.js.map +1 -1
  187. package/dist/index.es35.js +1 -1
  188. package/dist/index.es35.js.map +1 -1
  189. package/dist/index.es38.js +1 -1
  190. package/dist/index.es38.js.map +1 -1
  191. package/dist/index.es40.js +6 -6
  192. package/dist/index.es40.js.map +1 -1
  193. package/dist/index.es41.js +815 -97
  194. package/dist/index.es41.js.map +1 -1
  195. package/dist/index.es42.js +10 -56
  196. package/dist/index.es42.js.map +1 -1
  197. package/dist/index.es43.js +10 -24
  198. package/dist/index.es43.js.map +1 -1
  199. package/dist/index.es44.js +10 -45
  200. package/dist/index.es44.js.map +1 -1
  201. package/dist/index.es45.js +97 -69
  202. package/dist/index.es45.js.map +1 -1
  203. package/dist/index.es46.js +52 -56
  204. package/dist/index.es46.js.map +1 -1
  205. package/dist/index.es47.js +19 -827
  206. package/dist/index.es47.js.map +1 -1
  207. package/dist/index.es48.js +45 -10
  208. package/dist/index.es48.js.map +1 -1
  209. package/dist/index.es49.js +86 -10
  210. package/dist/index.es49.js.map +1 -1
  211. package/dist/index.es5.js +3 -3
  212. package/dist/index.es50.js +60 -10
  213. package/dist/index.es50.js.map +1 -1
  214. package/dist/index.es51.js +2 -2
  215. package/dist/index.es51.js.map +1 -1
  216. package/dist/index.es52.js.map +1 -1
  217. package/dist/index.es55.js.map +1 -1
  218. package/dist/index.es56.js.map +1 -1
  219. package/dist/index.es57.js.map +1 -1
  220. package/dist/index.es58.js.map +1 -1
  221. package/dist/index.es6.js +3 -3
  222. package/dist/index.es61.js +11 -11
  223. package/dist/index.es61.js.map +1 -1
  224. package/dist/index.es62.js +1 -1
  225. package/dist/index.es62.js.map +1 -1
  226. package/dist/index.es63.js +26 -3
  227. package/dist/index.es63.js.map +1 -1
  228. package/dist/index.es65.js +62 -42
  229. package/dist/index.es65.js.map +1 -1
  230. package/dist/index.es66.js +28 -25
  231. package/dist/index.es66.js.map +1 -1
  232. package/dist/index.es67.js +4 -64
  233. package/dist/index.es67.js.map +1 -1
  234. package/dist/index.es68.js +24 -7
  235. package/dist/index.es68.js.map +1 -1
  236. package/dist/index.es69.js +31 -123
  237. package/dist/index.es69.js.map +1 -1
  238. package/dist/index.es7.js +3 -3
  239. package/dist/index.es70.js +3 -14
  240. package/dist/index.es70.js.map +1 -1
  241. package/dist/index.es71.js +41 -129
  242. package/dist/index.es71.js.map +1 -1
  243. package/dist/index.es72.js +7 -10
  244. package/dist/index.es72.js.map +1 -1
  245. package/dist/index.es73.js +112 -203
  246. package/dist/index.es73.js.map +1 -1
  247. package/dist/index.es74.js +15 -13
  248. package/dist/index.es74.js.map +1 -1
  249. package/dist/index.es75.js +132 -31
  250. package/dist/index.es75.js.map +1 -1
  251. package/dist/index.es76.js +10 -7
  252. package/dist/index.es76.js.map +1 -1
  253. package/dist/index.es77.js +212 -26
  254. package/dist/index.es77.js.map +1 -1
  255. package/dist/index.es78.js +13 -4
  256. package/dist/index.es78.js.map +1 -1
  257. package/dist/index.es79.js +7 -5
  258. package/dist/index.es79.js.map +1 -1
  259. package/dist/index.es8.js +3 -3
  260. package/dist/index.es80.js +3 -27
  261. package/dist/index.es80.js.map +1 -1
  262. package/dist/index.es81.js +28 -50
  263. package/dist/index.es81.js.map +1 -1
  264. package/dist/index.es82.js +50 -9
  265. package/dist/index.es82.js.map +1 -1
  266. package/dist/index.es83.js +9 -25
  267. package/dist/index.es83.js.map +1 -1
  268. package/dist/index.es84.js +2 -2
  269. package/dist/index.es84.js.map +1 -1
  270. package/dist/index.es85.js +1 -1
  271. package/dist/index.es85.js.map +1 -1
  272. package/dist/index.es86.js.map +1 -1
  273. package/dist/index.es87.js +1 -1
  274. package/dist/index.es87.js.map +1 -1
  275. package/dist/index.es90.js.map +1 -1
  276. package/dist/index.es91.js.map +1 -1
  277. package/dist/index.es92.js.map +1 -1
  278. package/dist/index.es93.js.map +1 -1
  279. package/dist/index.es94.js.map +1 -1
  280. package/dist/index.es95.js.map +1 -1
  281. package/dist/index.es96.js.map +1 -1
  282. package/dist/packages/builder/schema-builder.d.ts +20 -1
  283. package/dist/packages/builder/schema-builder.d.ts.map +1 -1
  284. package/dist/style.css +0 -3
  285. 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 { SchemaBuilder SchemaProvider, PluginsProvider } from "@satoshibits/react-json-schema-builder";
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 [schema, setSchema] = useState<JSONSchema7>({
46
- type: "object",
47
- properties: {
48
- name: {
49
- type: "string",
50
- title: "Name",
51
- description: "The user's full name",
52
- },
53
- age: {
54
- type: "integer",
55
- title: "Age",
56
- description: "The user's age in years",
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
- required: ["name"],
60
- });
67
+ required: ["name"],
68
+ } satisfies JSONSchema7;
69
+ }, []);
61
70
 
62
71
  const handleSchemaChange = (newSchema: JSONSchema7) => {
63
- setSchema(newSchema);
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
- schema={schema}
84
+ initialSchema={initialSchema}
76
85
  onSchemaChange={handleSchemaChange}
77
86
  plugins={[numberPlugin, stringPlugin, arrayPlugin, objectPlugin]}
78
87
  />
79
- </PluginsProver>
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 | Type | Description |
101
- | ------------------------- | --------------------------------------------- | ---------------------------------------------------------------- |
102
- | `schema` | `JSONSchema7` | The JSON Schema to edit. Should be an object schema. |
103
- | `plugins` | `BaseJSONSchemaPlugin[]` | Array of constraint plugins to support different property types. |
104
- | `propertyComponent` | `React.ComponentType<PropertyComponentProps>` | Optional custom component to render properties. |
105
- | `onSchemaChange` | `(schema: JSONSchema7) => void` | Called whenever the schema changes. |
106
- | `onPropertyAddSuccess` | `(props: PropertyAddSuccess) => void` | Called when a property is successfully added. |
107
- | `onPropertyAddError` | `(props: PropertyAddError) => void` | Called when there's an error adding a property. |
108
- | `onPropertyChangeError` | `(prop: Error) => void` | Called when there's an error changing a property. |
109
- | `onPropertyChangeSuccess` | `() => void` | Called when a property is successfully changed. |
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
- ### Plugins
112
-
113
- The SchemaBuilder supports different types of constraints for properties through plugins:
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
- - `numberPlugin`: Adds constraints like minimum, maximum, and multipleOf for number properties
116
- - `stringPlugin`: Adds constraints like minLength, maxLength, pattern for string properties
117
- - `arrayPlugin`: Adds constraints like minItems, maxItems, uniqueItems for array properties
118
- - `objectPlugin`: Adds constraints like minProperties, maxProperties for object properties
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs100.js","sources":["../../../node_modules/.pnpm/use-sidecar@1.1.3_@types+react@18.3.18_react@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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@19.0.0/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]}
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]}
@@ -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.cjs29.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;
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
@@ -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.cjs29.js"),i=require("./index.cjs26.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;
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
@@ -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.cjs29.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;
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
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs9.js"),s=require("./index.cjs47.js"),a=require("./index.cjs29.js"),o=require("./index.cjs48.js"),d=require("./index.cjs49.js"),u=require("./index.cjs50.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;
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
@@ -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.cjs29.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;
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
@@ -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.cjs41.js"),b=require("./index.cjs15.js"),p=require("./index.cjs10.js"),S=require("./index.cjs4.js"),F=require("./index.cjs42.js"),V=require("./index.cjs43.js"),$=require("./index.cjs21.js"),A=require("react-hook-form"),N=require("./index.cjs44.js"),k=require("./index.cjs45.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;
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
@@ -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.cjs29.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;
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
@@ -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.cjs29.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;
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
@@ -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.cjs27.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;
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
@@ -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.cjs44.js"),m=require("./index.cjs41.js"),N=require("./index.cjs27.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.cjs46.js"),M=require("./index.cjs4.js"),P=require("./index.cjs42.js"),$=require("./index.cjs43.js"),n=require("zod"),B=require("react-hook-form"),r=require("./index.cjs45.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=_;
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