@satoshibits/react-json-schema-builder 1.1.3 → 1.1.5

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 (196) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.cjs10.js +1 -1
  3. package/dist/index.cjs10.js.map +1 -1
  4. package/dist/index.cjs11.js +1 -1
  5. package/dist/index.cjs11.js.map +1 -1
  6. package/dist/index.cjs12.js +1 -1
  7. package/dist/index.cjs12.js.map +1 -1
  8. package/dist/index.cjs13.js +1 -1
  9. package/dist/index.cjs13.js.map +1 -1
  10. package/dist/index.cjs14.js +1 -1
  11. package/dist/index.cjs14.js.map +1 -1
  12. package/dist/index.cjs15.js +6 -1
  13. package/dist/index.cjs15.js.map +1 -1
  14. package/dist/index.cjs16.js +1 -1
  15. package/dist/index.cjs16.js.map +1 -1
  16. package/dist/index.cjs17.js +1 -1
  17. package/dist/index.cjs17.js.map +1 -1
  18. package/dist/index.cjs18.js +1 -1
  19. package/dist/index.cjs18.js.map +1 -1
  20. package/dist/index.cjs19.js +1 -1
  21. package/dist/index.cjs19.js.map +1 -1
  22. package/dist/index.cjs2.js +1 -1
  23. package/dist/index.cjs2.js.map +1 -1
  24. package/dist/index.cjs20.js +1 -1
  25. package/dist/index.cjs20.js.map +1 -1
  26. package/dist/index.cjs21.js +1 -1
  27. package/dist/index.cjs21.js.map +1 -1
  28. package/dist/index.cjs22.js +1 -1
  29. package/dist/index.cjs22.js.map +1 -1
  30. package/dist/index.cjs23.js +1 -6
  31. package/dist/index.cjs23.js.map +1 -1
  32. package/dist/index.cjs24.js +1 -6
  33. package/dist/index.cjs24.js.map +1 -1
  34. package/dist/index.cjs25.js +1 -6
  35. package/dist/index.cjs25.js.map +1 -1
  36. package/dist/index.cjs26.js +1 -1
  37. package/dist/index.cjs26.js.map +1 -1
  38. package/dist/index.cjs27.js +1 -1
  39. package/dist/index.cjs27.js.map +1 -1
  40. package/dist/index.cjs28.js +6 -1
  41. package/dist/index.cjs28.js.map +1 -1
  42. package/dist/index.cjs29.js +6 -1
  43. package/dist/index.cjs29.js.map +1 -1
  44. package/dist/index.cjs3.js +1 -1
  45. package/dist/index.cjs3.js.map +1 -1
  46. package/dist/index.cjs30.js +1 -1
  47. package/dist/index.cjs30.js.map +1 -1
  48. package/dist/index.cjs31.js +1 -1
  49. package/dist/index.cjs34.js +1 -1
  50. package/dist/index.cjs36.js +1 -1
  51. package/dist/index.cjs37.js +1 -1
  52. package/dist/index.cjs38.js +1 -1
  53. package/dist/index.cjs39.js +1 -1
  54. package/dist/index.cjs4.js +1 -1
  55. package/dist/index.cjs4.js.map +1 -1
  56. package/dist/index.cjs41.js +1 -1
  57. package/dist/index.cjs42.js +1 -1
  58. package/dist/index.cjs42.js.map +1 -1
  59. package/dist/index.cjs43.js +1 -1
  60. package/dist/index.cjs47.js +1 -1
  61. package/dist/index.cjs5.js +1 -1
  62. package/dist/index.cjs5.js.map +1 -1
  63. package/dist/index.cjs55.js +1 -5
  64. package/dist/index.cjs55.js.map +1 -1
  65. package/dist/index.cjs56.js +1 -1
  66. package/dist/index.cjs56.js.map +1 -1
  67. package/dist/index.cjs57.js +1 -1
  68. package/dist/index.cjs57.js.map +1 -1
  69. package/dist/index.cjs58.js +1 -1
  70. package/dist/index.cjs58.js.map +1 -1
  71. package/dist/index.cjs59.js +1 -1
  72. package/dist/index.cjs59.js.map +1 -1
  73. package/dist/index.cjs6.js +1 -1
  74. package/dist/index.cjs6.js.map +1 -1
  75. package/dist/index.cjs60.js +1 -1
  76. package/dist/index.cjs60.js.map +1 -1
  77. package/dist/index.cjs61.js +1 -1
  78. package/dist/index.cjs61.js.map +1 -1
  79. package/dist/index.cjs62.js +5 -1
  80. package/dist/index.cjs62.js.map +1 -1
  81. package/dist/index.cjs63.js +1 -1
  82. package/dist/index.cjs63.js.map +1 -1
  83. package/dist/index.cjs65.js +1 -1
  84. package/dist/index.cjs67.js +1 -1
  85. package/dist/index.cjs69.js +1 -1
  86. package/dist/index.cjs7.js +1 -1
  87. package/dist/index.cjs7.js.map +1 -1
  88. package/dist/index.cjs71.js +1 -1
  89. package/dist/index.cjs72.js +1 -1
  90. package/dist/index.cjs75.js +1 -1
  91. package/dist/index.cjs78.js +1 -1
  92. package/dist/index.cjs8.js +1 -1
  93. package/dist/index.cjs8.js.map +1 -1
  94. package/dist/index.cjs81.js +1 -1
  95. package/dist/index.cjs9.js +1 -1
  96. package/dist/index.cjs9.js.map +1 -1
  97. package/dist/index.d.mts +5 -4
  98. package/dist/index.d.mts.map +1 -1
  99. package/dist/index.es.js +18 -28
  100. package/dist/index.es10.js +22 -22
  101. package/dist/index.es10.js.map +1 -1
  102. package/dist/index.es11.js +14 -42
  103. package/dist/index.es11.js.map +1 -1
  104. package/dist/index.es12.js +5 -65
  105. package/dist/index.es12.js.map +1 -1
  106. package/dist/index.es13.js +43 -24
  107. package/dist/index.es13.js.map +1 -1
  108. package/dist/index.es14.js +21 -126
  109. package/dist/index.es14.js.map +1 -1
  110. package/dist/index.es15.js +13 -20
  111. package/dist/index.es15.js.map +1 -1
  112. package/dist/index.es16.js +129 -130
  113. package/dist/index.es16.js.map +1 -1
  114. package/dist/index.es17.js +3 -137
  115. package/dist/index.es17.js.map +1 -1
  116. package/dist/index.es18.js +20 -61
  117. package/dist/index.es18.js.map +1 -1
  118. package/dist/index.es19.js +65 -10
  119. package/dist/index.es19.js.map +1 -1
  120. package/dist/index.es2.js +156 -113
  121. package/dist/index.es2.js.map +1 -1
  122. package/dist/index.es20.js +134 -22
  123. package/dist/index.es20.js.map +1 -1
  124. package/dist/index.es21.js +131 -421
  125. package/dist/index.es21.js.map +1 -1
  126. package/dist/index.es22.js +63 -5
  127. package/dist/index.es22.js.map +1 -1
  128. package/dist/index.es23.js +11 -13
  129. package/dist/index.es23.js.map +1 -1
  130. package/dist/index.es24.js +23 -16
  131. package/dist/index.es24.js.map +1 -1
  132. package/dist/index.es25.js +428 -13
  133. package/dist/index.es25.js.map +1 -1
  134. package/dist/index.es26.js +7 -13
  135. package/dist/index.es26.js.map +1 -1
  136. package/dist/index.es27.js +9 -3
  137. package/dist/index.es27.js.map +1 -1
  138. package/dist/index.es28.js +13 -19
  139. package/dist/index.es28.js.map +1 -1
  140. package/dist/index.es29.js +19 -23
  141. package/dist/index.es29.js.map +1 -1
  142. package/dist/index.es3.js +129 -340
  143. package/dist/index.es3.js.map +1 -1
  144. package/dist/index.es30.js +4 -7
  145. package/dist/index.es30.js.map +1 -1
  146. package/dist/index.es31.js +1 -1
  147. package/dist/index.es34.js +1 -1
  148. package/dist/index.es36.js +7 -7
  149. package/dist/index.es37.js +3 -3
  150. package/dist/index.es38.js +3 -3
  151. package/dist/index.es39.js +2 -2
  152. package/dist/index.es4.js +92 -70
  153. package/dist/index.es4.js.map +1 -1
  154. package/dist/index.es41.js +2 -2
  155. package/dist/index.es42.js +4 -4
  156. package/dist/index.es43.js +6 -6
  157. package/dist/index.es47.js +4 -4
  158. package/dist/index.es5.js +225 -79
  159. package/dist/index.es5.js.map +1 -1
  160. package/dist/index.es55.js +30 -252
  161. package/dist/index.es55.js.map +1 -1
  162. package/dist/index.es56.js +26 -21
  163. package/dist/index.es56.js.map +1 -1
  164. package/dist/index.es57.js +6 -32
  165. package/dist/index.es57.js.map +1 -1
  166. package/dist/index.es58.js +62 -23
  167. package/dist/index.es58.js.map +1 -1
  168. package/dist/index.es59.js +29 -6
  169. package/dist/index.es59.js.map +1 -1
  170. package/dist/index.es6.js +117 -57
  171. package/dist/index.es6.js.map +1 -1
  172. package/dist/index.es60.js +4 -64
  173. package/dist/index.es60.js.map +1 -1
  174. package/dist/index.es61.js +24 -29
  175. package/dist/index.es61.js.map +1 -1
  176. package/dist/index.es62.js +254 -5
  177. package/dist/index.es62.js.map +1 -1
  178. package/dist/index.es63.js +21 -24
  179. package/dist/index.es63.js.map +1 -1
  180. package/dist/index.es65.js +2 -2
  181. package/dist/index.es67.js +3 -3
  182. package/dist/index.es69.js +2 -2
  183. package/dist/index.es7.js +345 -48
  184. package/dist/index.es7.js.map +1 -1
  185. package/dist/index.es71.js +4 -4
  186. package/dist/index.es72.js +1 -1
  187. package/dist/index.es75.js +1 -1
  188. package/dist/index.es78.js +1 -1
  189. package/dist/index.es8.js +73 -163
  190. package/dist/index.es8.js.map +1 -1
  191. package/dist/index.es81.js +1 -1
  192. package/dist/index.es9.js +18 -3
  193. package/dist/index.es9.js.map +1 -1
  194. package/dist/packages/builder/add-dialog.d.ts +5 -5
  195. package/dist/packages/builder/context.d.ts.map +1 -1
  196. package/package.json +1 -1
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index.cjs2.js"),m=require("./index.cjs3.js"),t=require("./index.cjs4.js"),i=require("./index.cjs5.js"),e=require("./index.cjs6.js"),u=require("./index.cjs7.js"),r=require("./index.cjs8.js");exports.SchemaContext=n.SchemaContext;exports.SchemaProvider=n.SchemaProvider;exports.useSchema=n.useSchema;exports.SchemaBuilder=m.SchemaBuilder;exports.PluginsProvider=t.PluginsProvider;exports.useConstraints=t.useConstraints;exports.usePluginSystem=t.usePluginSystem;exports.ArrayMaxItemsRenderer=i.ArrayMaxItemsRenderer;exports.ArrayMinItemsRenderer=i.ArrayMinItemsRenderer;exports.ArrayUniqueItemsRenderer=i.ArrayUniqueItemsRenderer;exports.NumberExclusiveMaximumRenderer=e.NumberExclusiveMaximumRenderer;exports.NumberExclusiveMinimumRenderer=e.NumberExclusiveMinimumRenderer;exports.NumberMaximumRenderer=e.NumberMaximumRenderer;exports.NumberMinimumRenderer=e.NumberMinimumRenderer;exports.NumberMultipleOfRenderer=e.NumberMultipleOfRenderer;exports.ObjectMaxPropertiesRenderer=u.ObjectMaxPropertiesRenderer;exports.ObjectMinPropertiesRenderer=u.ObjectMinPropertiesRenderer;exports.StringFormatRenderer=r.StringFormatRenderer;exports.StringMaxLengthRenderer=r.StringMaxLengthRenderer;exports.StringMinLengthRenderer=r.StringMinLengthRenderer;exports.StringPatternRenderer=r.StringPatternRenderer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs2.js"),u=require("./index.cjs3.js"),i=require("./index.cjs4.js"),n=require("./index.cjs5.js"),e=require("./index.cjs6.js"),s=require("./index.cjs7.js"),r=require("./index.cjs8.js");exports.arrayPlugin=t.default;exports.numberPlugin=u.default;exports.objectPlugin=i.default;exports.stringPlugin=n.default;exports.SchemaContext=e.SchemaContext;exports.SchemaProvider=e.SchemaProvider;exports.useSchema=e.useSchema;exports.SchemaBuilder=s.SchemaBuilder;exports.PluginsProvider=r.PluginsProvider;exports.useConstraints=r.useConstraints;exports.usePluginSystem=r.usePluginSystem;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index.cjs53.js");function c(...e){return i.a(f,e)}function f(e,o=[],r=[]){if(typeof e=="function")return e;if(typeof e!="object"||e===null||e instanceof Date||e instanceof RegExp)return structuredClone(e);let t=o.indexOf(e);return t!==-1?r[t]:(o.push(e),Array.isArray(e)?l(e,o,r):s(e,o,r))}function s(e,o,r){let t={};r.push(t);for(let[u,n]of Object.entries(e))t[u]=f(n,o,r);return t}function l(e,o,r){let t=[];r.push(t);for(let[u,n]of e.entries())t[u]=f(n,o,r);return t}exports.a=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("./index.cjs12.js");function c({children:r,errorCode:t,errorDescription:i,showError:s=!1,className:a}){return e.jsxs("div",{className:l.cn("space-y-2",a),children:[s&&t&&e.jsx("div",{className:"text-sm font-medium text-destructive","aria-live":"polite",children:t}),r,s&&i&&e.jsx("div",{className:"text-sm text-destructive","aria-live":"polite",children:i})]})}exports.InputErrorWrapper=c;
2
2
  //# sourceMappingURL=index.cjs10.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs10.js","sources":["../../../node_modules/.pnpm/remeda@2.20.2/node_modules/remeda/dist/chunk-2OQBQB3V.js"],"sourcesContent":["import{a as i}from\"./chunk-WIMGWYZL.js\";function p(...n){return i(u,n)}function u(n,t=[],r=[]){if(typeof n==\"function\")return n;if(typeof n!=\"object\"||n===null||n instanceof Date||n instanceof RegExp)return structuredClone(n);let o=t.indexOf(n);return o!==-1?r[o]:(t.push(n),Array.isArray(n)?y(n,t,r):s(n,t,r))}function s(n,t,r){let o={};r.push(o);for(let[e,c]of Object.entries(n))o[e]=u(c,t,r);return o}function y(n,t,r){let o=[];r.push(o);for(let[e,c]of n.entries())o[e]=u(c,t,r);return o}export{p as a};\n"],"names":["p","n","i","u","t","o","y","e","c"],"mappings":"oHAAwC,SAASA,KAAKC,EAAE,CAAC,OAAOC,EAAC,EAACC,EAAEF,CAAC,CAAC,CAAC,SAASE,EAAEF,EAAEG,EAAE,CAAE,EAAC,EAAE,GAAG,CAAC,GAAG,OAAOH,GAAG,WAAW,OAAOA,EAAE,GAAG,OAAOA,GAAG,UAAUA,IAAI,MAAMA,aAAa,MAAMA,aAAa,OAAO,OAAO,gBAAgBA,CAAC,EAAE,IAAII,EAAED,EAAE,QAAQH,CAAC,EAAE,OAAOI,IAAI,GAAG,EAAEA,CAAC,GAAGD,EAAE,KAAKH,CAAC,EAAE,MAAM,QAAQA,CAAC,EAAEK,EAAEL,EAAEG,EAAE,CAAC,EAAE,EAAEH,EAAEG,EAAE,CAAC,EAAE,CAAC,SAAS,EAAEH,EAAEG,EAAE,EAAE,CAAC,IAAIC,EAAE,CAAE,EAAC,EAAE,KAAKA,CAAC,EAAE,OAAO,CAACE,EAAEC,CAAC,IAAI,OAAO,QAAQP,CAAC,EAAEI,EAAEE,CAAC,EAAEJ,EAAEK,EAAEJ,EAAE,CAAC,EAAE,OAAOC,CAAC,CAAC,SAASC,EAAEL,EAAEG,EAAE,EAAE,CAAC,IAAIC,EAAE,CAAE,EAAC,EAAE,KAAKA,CAAC,EAAE,OAAO,CAACE,EAAEC,CAAC,IAAIP,EAAE,QAAO,EAAGI,EAAEE,CAAC,EAAEJ,EAAEK,EAAEJ,EAAE,CAAC,EAAE,OAAOC,CAAC","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs10.js","sources":["../src/components/input-error.tsx"],"sourcesContent":["import type React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface InputErrorWrapperProps {\n children: React.ReactNode;\n errorCode?: string;\n errorDescription?: string;\n showError?: boolean;\n className?: string;\n}\n\nexport function InputErrorWrapper({\n children,\n errorCode,\n errorDescription,\n showError = false,\n className,\n}: InputErrorWrapperProps) {\n return (\n <div className={cn(\"space-y-2\", className)}>\n {showError && errorCode && (\n <div\n className=\"text-sm font-medium text-destructive\"\n aria-live=\"polite\"\n >\n {errorCode}\n </div>\n )}\n\n {children}\n\n {showError && errorDescription && (\n <div className=\"text-sm text-destructive\" aria-live=\"polite\">\n {errorDescription}\n </div>\n )}\n </div>\n );\n}\n"],"names":["InputErrorWrapper","children","errorCode","errorDescription","showError","className","cn","jsx"],"mappings":"mJAWO,SAASA,EAAkB,CAChC,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,UAAAC,EAAY,GACZ,UAAAC,CACF,EAA2B,CACzB,cACG,MAAI,CAAA,UAAWC,EAAG,GAAA,YAAaD,CAAS,EACtC,SAAA,CAAAD,GAAaF,GACZK,EAAA,IAAC,MAAA,CACC,UAAU,uCACV,YAAU,SAET,SAAAL,CAAA,CACH,EAGDD,EAEAG,GAAaD,GACXI,MAAA,MAAA,CAAI,UAAU,2BAA2B,YAAU,SACjD,SACHJ,CAAA,CAAA,CAAA,EAEJ,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),d=require("./index.cjs34.js"),u=require("./index.cjs35.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.jsx(o,{"data-slot":"button",className:c.cn(e({variant:r,size:i,className:t})),type:"button",...s})}exports.Button=v;exports.buttonVariants=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),o=require("./index.cjs31.js"),a=require("./index.cjs12.js");function r({className:e,...t}){return n.jsx(o.Root,{"data-slot":"label",className:a.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=r;
2
2
  //# sourceMappingURL=index.cjs11.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs11.js","sources":["../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"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\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40\",\n outline:\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n type=\"button\"\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"+MAMMA,EAAiBC,EAAA,IACrB,6cACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mEACF,YACE,uIACF,QACE,2FACF,UACE,yEACF,MAAO,+CACP,KAAM,iDACR,EACA,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,QAAA,CAEV,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACG,MAAAC,EAAOF,EAAUG,EAAAA,KAAO,SAG5B,OAAAC,EAAA,IAACF,EAAA,CACC,YAAU,SACV,UAAWG,KAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EAC1D,KAAK,SACJ,GAAGI,CAAA,CACN,CAEJ"}
1
+ {"version":3,"file":"index.cjs11.js","sources":["../src/components/ui/label.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"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\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"names":["Label","className","props","jsx","LabelPrimitive.Root","cn"],"mappings":"iLAOA,SAASA,EAAM,CACb,UAAAC,EACA,GAAGC,CACL,EAAqD,CAEjD,OAAAC,EAAA,IAACC,EAAe,KAAf,CACC,YAAU,QACV,UAAWC,EAAA,GACT,sNACAJ,CACF,EACC,GAAGC,CAAA,CACN,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),c=require("./index.cjs34.js"),a=require("./index.cjs22.js"),u=require("./index.cjs27.js");function i({...r}){return t.jsx("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...r})}function o({className:r,...e}){return t.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 d({className:r,...e}){return t.jsx("li",{"data-slot":"breadcrumb-item",className:a.cn("inline-flex items-center gap-1.5",r),...e})}function m({asChild:r,className:e,...n}){const s=r?c.Slot:"a";return t.jsx(s,{"data-slot":"breadcrumb-link",className:a.cn("hover:text-foreground transition-colors",e),...n})}function l({children:r,className:e,...n}){return t.jsx("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:a.cn("[&>svg]:size-3.5",e),...n,children:r??t.jsx(u.default,{})})}exports.Breadcrumb=i;exports.BreadcrumbItem=d;exports.BreadcrumbLink=m;exports.BreadcrumbList=o;exports.BreadcrumbSeparator=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index.cjs32.js"),t=require("./index.cjs33.js");function n(...e){return t.twMerge(r.clsx(e))}exports.cn=n;
2
2
  //# sourceMappingURL=index.cjs12.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs12.js","sources":["../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","props","BreadcrumbList","className","jsx","cn","BreadcrumbItem","BreadcrumbLink","asChild","Comp","Slot","BreadcrumbSeparator","children","ChevronRight"],"mappings":"+MAMA,SAASA,EAAW,CAAE,GAAGC,GAAsC,CAC7D,aAAQ,MAAI,CAAA,aAAW,aAAa,YAAU,aAAc,GAAGA,EAAO,CACxE,CAEA,SAASC,EAAe,CAAE,UAAAC,EAAW,GAAGF,GAAqC,CAEzE,OAAAG,EAAA,IAAC,KAAA,CACC,YAAU,kBACV,UAAWC,EAAA,GACT,2FACAF,CACF,EACC,GAAGF,CAAA,CACN,CAEJ,CAEA,SAASK,EAAe,CAAE,UAAAH,EAAW,GAAGF,GAAqC,CAEzE,OAAAG,EAAA,IAAC,KAAA,CACC,YAAU,kBACV,UAAWC,EAAAA,GAAG,mCAAoCF,CAAS,EAC1D,GAAGF,CAAA,CACN,CAEJ,CAEA,SAASM,EAAe,CACtB,QAAAC,EACA,UAAAL,EACA,GAAGF,CACL,EAEG,CACK,MAAAQ,EAAOD,EAAUE,EAAAA,KAAO,IAG5B,OAAAN,EAAA,IAACK,EAAA,CACC,YAAU,kBACV,UAAWJ,EAAAA,GAAG,0CAA2CF,CAAS,EACjE,GAAGF,CAAA,CACN,CAEJ,CAeA,SAASU,EAAoB,CAC3B,SAAAC,EACA,UAAAT,EACA,GAAGF,CACL,EAA+B,CAE3B,OAAAG,EAAA,IAAC,KAAA,CACC,YAAU,uBACV,KAAK,eACL,cAAY,OACZ,UAAWC,EAAAA,GAAG,mBAAoBF,CAAS,EAC1C,GAAGF,EAEH,SAAAW,SAAaC,EAAAA,QAAa,CAAA,CAAA,CAAA,CAC7B,CAEJ"}
1
+ {"version":3,"file":"index.cjs12.js","sources":["../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":"kJAGO,SAASA,KAAMC,EAAsB,CACnC,OAAAC,EAAA,QAAQC,OAAKF,CAAM,CAAC,CAC7B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("./index.cjs36.js"),n=require("./index.cjs22.js");function i({className:r,...s}){return e.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",r),...s,children:e.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 a=require("react/jsx-runtime"),d=require("./index.cjs34.js"),u=require("./index.cjs35.js"),c=require("./index.cjs12.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.jsx(o,{"data-slot":"button",className:c.cn(e({variant:r,size:i,className:t})),type:"button",...s})}exports.Button=v;exports.buttonVariants=e;
2
2
  //# sourceMappingURL=index.cjs13.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs13.js","sources":["../src/components/ui/switch.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"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\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"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\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"names":["Switch","className","props","jsx","SwitchPrimitive.Root","cn","SwitchPrimitive.Thumb"],"mappings":"iLAKA,SAASA,EAAO,CACd,UAAAC,EACA,GAAGC,CACL,EAAsD,CAElD,OAAAC,EAAA,IAACC,EAAgB,KAAhB,CACC,YAAU,SACV,UAAWC,EAAA,GACT,8TACAJ,CACF,EACC,GAAGC,EAEJ,SAAAC,EAAA,IAACG,EAAgB,MAAhB,CACC,YAAU,eACV,UAAWD,EAAA,GACT,2KAAA,CACF,CAAA,CACF,CACF,CAEJ"}
1
+ {"version":3,"file":"index.cjs13.js","sources":["../src/components/ui/button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"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\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40\",\n outline:\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n type=\"button\"\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"+MAMMA,EAAiBC,EAAA,IACrB,6cACA,CACE,SAAU,CACR,QAAS,CACP,QACE,mEACF,YACE,uIACF,QACE,2FACF,UACE,yEACF,MAAO,+CACP,KAAM,iDACR,EACA,KAAM,CACJ,QAAS,gCACT,GAAI,gDACJ,GAAI,uCACJ,KAAM,QAAA,CAEV,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACG,MAAAC,EAAOF,EAAUG,EAAAA,KAAO,SAG5B,OAAAC,EAAA,IAACF,EAAA,CACC,YAAU,SACV,UAAWG,KAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EAC1D,KAAK,SACJ,GAAGI,CAAA,CACN,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("./index.cjs43.js"),l=require("./index.cjs22.js"),n=require("./index.cjs44.js"),d=require("./index.cjs45.js"),u=require("./index.cjs46.js");function p({...t}){return e.jsx(s.Root,{"data-slot":"select",...t})}function m({...t}){return e.jsx(s.Value,{"data-slot":"select-value",...t})}function f({className:t,children:a,...r}){return e.jsxs(s.Trigger,{"data-slot":"select-trigger","data-testid":"select-trigger",className:l.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),...r,children:[a,e.jsx(s.Icon,{asChild:!0,children:e.jsx(n.default,{className:"size-4 opacity-50"})})]})}function g({className:t,children:a,position:r="popper",...c}){return e.jsx(s.Portal,{children:e.jsxs(s.Content,{"data-slot":"select-content",className:l.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",r==="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:r,...c,children:[e.jsx(o,{}),e.jsx(s.Viewport,{className:l.cn("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),e.jsx(i,{})]})})}function x({className:t,children:a,...r}){return e.jsxs(s.Item,{"data-slot":"select-item",className:l.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),...r,children:[e.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsx(s.ItemIndicator,{children:e.jsx(d.default,{className:"size-4"})})}),e.jsx(s.ItemText,{children:a})]})}function o({className:t,...a}){return e.jsx(s.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:l.cn("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(u.default,{className:"size-4"})})}function i({className:t,...a}){return e.jsx(s.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:l.cn("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(n.default,{className:"size-4"})})}exports.Select=p;exports.SelectContent=g;exports.SelectItem=x;exports.SelectScrollDownButton=i;exports.SelectScrollUpButton=o;exports.SelectTrigger=f;exports.SelectValue=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("./index.cjs36.js"),n=require("./index.cjs12.js");function i({className:r,...s}){return e.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",r),...s,children:e.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.cjs14.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs14.js","sources":["../src/components/ui/select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-testid=\"select-trigger\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"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 position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-2 py-1.5 text-sm font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["Select","props","SelectPrimitive.Root","SelectValue","SelectPrimitive.Value","SelectTrigger","className","children","jsxs","SelectPrimitive.Trigger","cn","jsx","SelectPrimitive.Icon","ChevronDownIcon","SelectContent","position","SelectPrimitive.Portal","SelectPrimitive.Content","SelectScrollUpButton","SelectPrimitive.Viewport","SelectScrollDownButton","SelectItem","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","CheckIcon","SelectPrimitive.ItemText","SelectPrimitive.ScrollUpButton","ChevronUpIcon","SelectPrimitive.ScrollDownButton"],"mappings":"2QAQA,SAASA,EAAO,CACd,GAAGC,CACL,EAAsD,CACpD,aAAQC,EAAAA,KAAA,CAAqB,YAAU,SAAU,GAAGD,EAAO,CAC7D,CAQA,SAASE,EAAY,CACnB,GAAGF,CACL,EAAuD,CACrD,aAAQG,EAAAA,MAAA,CAAsB,YAAU,eAAgB,GAAGH,EAAO,CACpE,CAEA,SAASI,EAAc,CACrB,UAAAC,EACA,SAAAC,EACA,GAAGN,CACL,EAAyD,CAErD,OAAAO,EAAA,KAACC,EAAgB,QAAhB,CACC,YAAU,iBACV,cAAY,iBACZ,UAAWC,EAAA,GACT,guBACAJ,CACF,EACC,GAAGL,EAEH,SAAA,CAAAM,EACDI,EAAAA,IAACC,EAAgB,KAAhB,CAAqB,QAAO,GAC3B,SAACD,EAAA,IAAAE,UAAA,CAAgB,UAAU,mBAAoB,CAAA,CACjD,CAAA,CAAA,CAAA,CACF,CAEJ,CAEA,SAASC,EAAc,CACrB,UAAAR,EACA,SAAAC,EACA,SAAAQ,EAAW,SACX,GAAGd,CACL,EAAyD,CAErD,OAAAU,MAACK,EAAAA,OAAA,CACC,SAAAR,EAAA,KAACS,EAAgB,QAAhB,CACC,YAAU,iBACV,UAAWP,EAAA,GACT,scACAK,IAAa,UACX,kIACFT,CACF,EACA,SAAAS,EACC,GAAGd,EAEJ,SAAA,CAAAU,EAAA,IAACO,EAAqB,EAAA,EACtBP,EAAA,IAACQ,EAAgB,SAAhB,CACC,UAAWT,EAAA,GACT,MACAK,IAAa,UACX,qGACJ,EAEC,SAAAR,CAAA,CACH,QACCa,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,EAE5B,CAEJ,CAeA,SAASC,EAAW,CAClB,UAAAf,EACA,SAAAC,EACA,GAAGN,CACL,EAAsD,CAElD,OAAAO,EAAA,KAACc,EAAgB,KAAhB,CACC,YAAU,cACV,UAAWZ,EAAA,GACT,4aACAJ,CACF,EACC,GAAGL,EAEJ,SAAA,CAAAU,EAAA,IAAC,OAAK,CAAA,UAAU,6DACd,SAAAA,EAAAA,IAACY,EAAgB,cAAhB,CACC,SAAAZ,EAAAA,IAACa,EAAAA,QAAU,CAAA,UAAU,QAAS,CAAA,CAChC,CAAA,EACF,EACCb,MAAAc,EAAAA,SAAA,CAA0B,SAAAlB,CAAS,CAAA,CAAA,CAAA,CACtC,CAEJ,CAeA,SAASW,EAAqB,CAC5B,UAAAZ,EACA,GAAGL,CACL,EAAgE,CAE5D,OAAAU,EAAA,IAACe,EAAgB,eAAhB,CACC,YAAU,0BACV,UAAWhB,EAAA,GACT,uDACAJ,CACF,EACC,GAAGL,EAEJ,SAAAU,EAAAA,IAACgB,EAAAA,QAAc,CAAA,UAAU,QAAS,CAAA,CAAA,CACpC,CAEJ,CAEA,SAASP,EAAuB,CAC9B,UAAAd,EACA,GAAGL,CACL,EAAkE,CAE9D,OAAAU,EAAA,IAACiB,EAAgB,iBAAhB,CACC,YAAU,4BACV,UAAWlB,EAAA,GACT,uDACAJ,CACF,EACC,GAAGL,EAEJ,SAAAU,EAAAA,IAACE,EAAAA,QAAgB,CAAA,UAAU,QAAS,CAAA,CAAA,CACtC,CAEJ"}
1
+ {"version":3,"file":"index.cjs14.js","sources":["../src/components/ui/switch.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"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\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"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\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"names":["Switch","className","props","jsx","SwitchPrimitive.Root","cn","SwitchPrimitive.Thumb"],"mappings":"iLAKA,SAASA,EAAO,CACd,UAAAC,EACA,GAAGC,CACL,EAAsD,CAElD,OAAAC,EAAA,IAACC,EAAgB,KAAhB,CACC,YAAU,SACV,UAAWC,EAAA,GACT,8TACAJ,CACF,EACC,GAAGC,EAEJ,SAAAC,EAAA,IAACG,EAAgB,MAAhB,CACC,YAAU,eACV,UAAWD,EAAA,GACT,2KAAA,CACF,CAAA,CACF,CACF,CAEJ"}
@@ -1,2 +1,7 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),o=require("./index.cjs31.js"),a=require("./index.cjs22.js");function r({className:e,...t}){return n.jsx(o.Root,{"data-slot":"label",className:a.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=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./index.cjs49.js");/**
2
+ * @license lucide-react v0.477.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const e=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],o=t.default("X",e);exports.__iconNode=e;exports.default=o;
2
7
  //# sourceMappingURL=index.cjs15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs15.js","sources":["../src/components/ui/label.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"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\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"names":["Label","className","props","jsx","LabelPrimitive.Root","cn"],"mappings":"iLAOA,SAASA,EAAM,CACb,UAAAC,EACA,GAAGC,CACL,EAAqD,CAEjD,OAAAC,EAAA,IAACC,EAAe,KAAf,CACC,YAAU,QACV,UAAWC,EAAA,GACT,sNACAJ,CACF,EACC,GAAGC,CAAA,CACN,CAEJ"}
1
+ {"version":3,"file":"index.cjs15.js","sources":["../../../node_modules/.pnpm/lucide-react@0.477.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/x.js"],"sourcesContent":["/**\n * @license lucide-react v0.477.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"X\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n"],"names":["__iconNode","X","createLucideIcon"],"mappings":"gJAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASK,MAACA,EAAa,CACjB,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,EAC3C,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAU,CAAA,CAC7C,EACMC,EAAIC,EAAAA,QAAiB,IAAKF,CAAU","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),m=require("react"),S=require("./index.cjs11.js"),c=require("./index.cjs37.js"),F=require("./index.cjs15.js"),p=require("./index.cjs10.js"),R=require("./index.cjs4.js"),V=require("./index.cjs38.js"),$=require("./index.cjs39.js"),A=require("./index.cjs21.js"),E=require("react-hook-form"),N=require("./index.cjs40.js"),k=require("./index.cjs41.js"),w=A.AddFormSchema.pick({constraints:!0,property:!0});function B({open:f,onOpenChange:h,onSubmit:g,property:i,propertyKey:y}){const r=E.useForm({resolver:N.zodResolver(w),defaultValues:{property:i}}),l=r.watch("constraints"),{getConstraintDefinitionsForType:C,getRendererForConstraint:j,validateConstraintValue:v}=R.useConstraints(),D=e=>{const{constraints:n}=e,a={...n?.reduce((s,o)=>({...s,[o.name]:o.value}),{})};g([y,a]),r.reset()},q=(e,n)=>{const a=p.a(l),s=a?.[e];if(!s){r.setError(`constraints.${e}`,{message:"The constraint was not found",type:"constraint_not_found"});return}const o=v(s.name,n);if(o.status==="error"){let u=o.message;o.code==="invalid"&&(u=`${u}: ${o.error?.map(b=>b.message).join(", ")}`),r.setError(`constraints.${e}`,{type:o.code,message:u});return}s.value=n,r.setValue("constraints",a),r.clearErrors(`constraints.${e}`)},x=e=>{if(!l)return;const a=p.a(l).filter(s=>s.name!==e);r.setValue("constraints",a)},d=m.useMemo(()=>C(typeof i?.type=="string"?i.type:""),[i.type]);return m.useEffect(()=>{const e=[];for(const n of d)n.name in i&&e.push({name:n.name,value:i[n.name]});r.setValue("constraints",e)},[d]),t.jsx(c.Dialog,{open:f,onOpenChange:h,children:t.jsxs(c.DialogContent,{children:[t.jsxs(c.DialogHeader,{children:[t.jsx(c.DialogTitle,{children:"Edit"}),t.jsx(c.DialogDescription,{children:"Constraints and other properties"})]}),t.jsx(k.Form,{...r,children:t.jsxs("form",{onSubmit:r.handleSubmit(D),className:"space-y-4","data-testid":"edit-property-form",children:[d.length?t.jsxs("div",{className:"space-y-2",children:[t.jsx(F.Label,{children:"Constraints"}),t.jsx(V.default,{addedConstraints:l??[],availableDefinitions:d,onAdd:e=>{r.setValue("constraints",e)}}),t.jsx($.Separator,{}),l?.map((e,n)=>{const a=j(e.name);if(!a)return null;const s=r.formState.errors.constraints?.[n];let o;return s&&(o={code:s?.type??"INVALID",message:s.message??"An error occurred"}),t.jsx(a,{constraintName:e.name,value:e.value,onConstraintChange:u=>{q(n,u)},onRemoveConstraint:()=>{x(e.name)},error:o},e.name)})]}):null,t.jsx(c.DialogFooter,{children:t.jsx(S.Button,{type:"submit",children:"Save"})})]})})]})})}exports.EditPropertyDialog=B;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("./index.cjs43.js"),l=require("./index.cjs12.js"),n=require("./index.cjs44.js"),d=require("./index.cjs45.js"),u=require("./index.cjs46.js");function p({...t}){return e.jsx(s.Root,{"data-slot":"select",...t})}function m({...t}){return e.jsx(s.Value,{"data-slot":"select-value",...t})}function f({className:t,children:a,...r}){return e.jsxs(s.Trigger,{"data-slot":"select-trigger","data-testid":"select-trigger",className:l.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),...r,children:[a,e.jsx(s.Icon,{asChild:!0,children:e.jsx(n.default,{className:"size-4 opacity-50"})})]})}function g({className:t,children:a,position:r="popper",...c}){return e.jsx(s.Portal,{children:e.jsxs(s.Content,{"data-slot":"select-content",className:l.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",r==="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:r,...c,children:[e.jsx(o,{}),e.jsx(s.Viewport,{className:l.cn("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:a}),e.jsx(i,{})]})})}function x({className:t,children:a,...r}){return e.jsxs(s.Item,{"data-slot":"select-item",className:l.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),...r,children:[e.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsx(s.ItemIndicator,{children:e.jsx(d.default,{className:"size-4"})})}),e.jsx(s.ItemText,{children:a})]})}function o({className:t,...a}){return e.jsx(s.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:l.cn("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(u.default,{className:"size-4"})})}function i({className:t,...a}){return e.jsx(s.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:l.cn("flex cursor-default items-center justify-center py-1",t),...a,children:e.jsx(n.default,{className:"size-4"})})}exports.Select=p;exports.SelectContent=g;exports.SelectItem=x;exports.SelectScrollDownButton=i;exports.SelectScrollUpButton=o;exports.SelectTrigger=f;exports.SelectValue=m;
2
2
  //# sourceMappingURL=index.cjs16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs16.js","sources":["../src/packages/builder/edit-dialog.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n DialogDescription,\n} from \"@/components/ui/dialog\";\nimport { Label } from \"@/components/ui/label\";\n\nimport type { JSONSchema7 } from \"json-schema\";\nimport { clone } from \"remeda\";\nimport { Constraint, useConstraints } from \"@/packages/constraints/context\";\nimport ConstraintsAdd from \"@/packages/constraints/constraint-add\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { z } from \"zod\";\nimport { AddFormSchema } from \"./add-dialog\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { OperationError } from \"./shared-types\";\nimport { Form } from \"@/components/ui/form\";\nimport { useSchema } from \"./context\";\n\nexport interface EditPropertyDialogProps {\n property: JSONSchema7;\n propertyKey: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSubmit: (\n params: Parameters<ReturnType<typeof useSchema>[\"handlePropertyChange\"]>,\n ) => void;\n}\n\nconst EditFormSchema = AddFormSchema.pick({\n constraints: true,\n property: true,\n});\n\n/**\n * Handles editing a constraints and other properties of a JSON schema property\n * that aren't shown in the main UI.\n */\nexport function EditPropertyDialog({\n open,\n onOpenChange,\n onSubmit,\n property: propertyToEdit,\n propertyKey,\n}: EditPropertyDialogProps) {\n const form = useForm<z.infer<typeof EditFormSchema>>({\n resolver: zodResolver(EditFormSchema),\n defaultValues: {\n property: propertyToEdit,\n },\n });\n\n const currentConstraints = form.watch(\"constraints\");\n\n const {\n getConstraintDefinitionsForType,\n getRendererForConstraint,\n validateConstraintValue,\n } = useConstraints();\n\n const handleSubmit = (data: z.infer<typeof EditFormSchema>) => {\n const { constraints } = data;\n const propertyUpdatesOnly: JSONSchema7 = {\n ...constraints?.reduce((acc, constraint) => {\n return {\n ...acc,\n [constraint.name]: constraint.value,\n } satisfies JSONSchema7;\n }, {}),\n };\n onSubmit([propertyKey, propertyUpdatesOnly]);\n form.reset();\n };\n\n const handleConstraintChange = (\n index: number,\n newVal: Constraint[\"value\"],\n ) => {\n const constraintsCopy = clone(currentConstraints);\n\n const constraintToChange = constraintsCopy?.[index];\n\n if (!constraintToChange) {\n form.setError(`constraints.${index}`, {\n message: \"The constraint was not found\",\n type: \"constraint_not_found\",\n });\n return;\n }\n\n const validationResult = validateConstraintValue(\n constraintToChange.name,\n newVal,\n );\n\n if (validationResult.status === \"error\") {\n let message = validationResult.message;\n if (validationResult.code === \"invalid\") {\n message = `${message}: ${validationResult.error?.map((i) => i.message).join(\", \")}`;\n }\n form.setError(`constraints.${index}`, {\n type: validationResult.code,\n message,\n });\n return;\n }\n\n //edit reference\n constraintToChange.value = newVal;\n form.setValue(\"constraints\", constraintsCopy);\n form.clearErrors(`constraints.${index}`);\n };\n\n const handleRemoveConstraint = (constraintName: Constraint[\"name\"]) => {\n if (!currentConstraints) return;\n const copy = clone(currentConstraints);\n const newConstraints = copy.filter((c) => c.name !== constraintName);\n form.setValue(\"constraints\", newConstraints);\n };\n\n const availableDefinitions = useMemo(() => {\n return getConstraintDefinitionsForType(\n typeof propertyToEdit?.type === \"string\" ? propertyToEdit.type : \"\",\n );\n }, [propertyToEdit.type]);\n\n useEffect(() => {\n //get the current constraints from the property based on the available definitions\n const newConstraints: Constraint[] = [];\n for (const constraintDef of availableDefinitions) {\n if (constraintDef.name in propertyToEdit) {\n newConstraints.push({\n name: constraintDef.name,\n value: propertyToEdit[constraintDef.name],\n });\n }\n }\n form.setValue(\"constraints\", newConstraints);\n }, [availableDefinitions]);\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Edit</DialogTitle>\n <DialogDescription>\n Constraints and other properties\n </DialogDescription>\n </DialogHeader>\n <Form {...form}>\n <form\n onSubmit={form.handleSubmit(handleSubmit)}\n className=\"space-y-4\"\n data-testid=\"edit-property-form\"\n >\n {availableDefinitions.length ? (\n <div className=\"space-y-2\">\n <Label>Constraints</Label>\n <ConstraintsAdd\n addedConstraints={currentConstraints ?? []}\n availableDefinitions={availableDefinitions}\n onAdd={(newConstraints) => {\n form.setValue(\"constraints\", newConstraints);\n }}\n />\n <Separator />\n {currentConstraints?.map((constraint, i) => {\n const Renderer = getRendererForConstraint(constraint.name);\n if (!Renderer) return null;\n\n const error = form.formState.errors.constraints?.[i];\n let mappedError: OperationError | undefined;\n\n if (error) {\n mappedError = {\n code: error?.type ?? \"INVALID\",\n message: error.message ?? \"An error occurred\",\n };\n }\n\n return (\n <Renderer\n key={constraint.name}\n constraintName={constraint.name}\n value={constraint.value}\n onConstraintChange={(newVal) => {\n handleConstraintChange(i, newVal);\n }}\n onRemoveConstraint={() => {\n handleRemoveConstraint(constraint.name);\n }}\n error={mappedError}\n />\n );\n })}\n </div>\n ) : null}\n\n <DialogFooter>\n <Button type=\"submit\">Save</Button>\n </DialogFooter>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["EditFormSchema","AddFormSchema","EditPropertyDialog","open","onOpenChange","onSubmit","propertyToEdit","propertyKey","form","useForm","zodResolver","currentConstraints","getConstraintDefinitionsForType","getRendererForConstraint","validateConstraintValue","useConstraints","handleSubmit","data","constraints","propertyUpdatesOnly","acc","constraint","handleConstraintChange","index","newVal","constraintsCopy","clone","constraintToChange","validationResult","message","i","handleRemoveConstraint","constraintName","newConstraints","c","availableDefinitions","useMemo","useEffect","constraintDef","jsx","Dialog","DialogContent","jsxs","DialogHeader","DialogTitle","DialogDescription","Form","Label","ConstraintsAdd","Separator","Renderer","error","mappedError","DialogFooter","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs16.js","sources":["../src/components/ui/select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-testid=\"select-trigger\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"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 position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-2 py-1.5 text-sm font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["Select","props","SelectPrimitive.Root","SelectValue","SelectPrimitive.Value","SelectTrigger","className","children","jsxs","SelectPrimitive.Trigger","cn","jsx","SelectPrimitive.Icon","ChevronDownIcon","SelectContent","position","SelectPrimitive.Portal","SelectPrimitive.Content","SelectScrollUpButton","SelectPrimitive.Viewport","SelectScrollDownButton","SelectItem","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","CheckIcon","SelectPrimitive.ItemText","SelectPrimitive.ScrollUpButton","ChevronUpIcon","SelectPrimitive.ScrollDownButton"],"mappings":"2QAQA,SAASA,EAAO,CACd,GAAGC,CACL,EAAsD,CACpD,aAAQC,EAAAA,KAAA,CAAqB,YAAU,SAAU,GAAGD,EAAO,CAC7D,CAQA,SAASE,EAAY,CACnB,GAAGF,CACL,EAAuD,CACrD,aAAQG,EAAAA,MAAA,CAAsB,YAAU,eAAgB,GAAGH,EAAO,CACpE,CAEA,SAASI,EAAc,CACrB,UAAAC,EACA,SAAAC,EACA,GAAGN,CACL,EAAyD,CAErD,OAAAO,EAAA,KAACC,EAAgB,QAAhB,CACC,YAAU,iBACV,cAAY,iBACZ,UAAWC,EAAA,GACT,guBACAJ,CACF,EACC,GAAGL,EAEH,SAAA,CAAAM,EACDI,EAAAA,IAACC,EAAgB,KAAhB,CAAqB,QAAO,GAC3B,SAACD,EAAA,IAAAE,UAAA,CAAgB,UAAU,mBAAoB,CAAA,CACjD,CAAA,CAAA,CAAA,CACF,CAEJ,CAEA,SAASC,EAAc,CACrB,UAAAR,EACA,SAAAC,EACA,SAAAQ,EAAW,SACX,GAAGd,CACL,EAAyD,CAErD,OAAAU,MAACK,EAAAA,OAAA,CACC,SAAAR,EAAA,KAACS,EAAgB,QAAhB,CACC,YAAU,iBACV,UAAWP,EAAA,GACT,scACAK,IAAa,UACX,kIACFT,CACF,EACA,SAAAS,EACC,GAAGd,EAEJ,SAAA,CAAAU,EAAA,IAACO,EAAqB,EAAA,EACtBP,EAAA,IAACQ,EAAgB,SAAhB,CACC,UAAWT,EAAA,GACT,MACAK,IAAa,UACX,qGACJ,EAEC,SAAAR,CAAA,CACH,QACCa,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,EAE5B,CAEJ,CAeA,SAASC,EAAW,CAClB,UAAAf,EACA,SAAAC,EACA,GAAGN,CACL,EAAsD,CAElD,OAAAO,EAAA,KAACc,EAAgB,KAAhB,CACC,YAAU,cACV,UAAWZ,EAAA,GACT,4aACAJ,CACF,EACC,GAAGL,EAEJ,SAAA,CAAAU,EAAA,IAAC,OAAK,CAAA,UAAU,6DACd,SAAAA,EAAAA,IAACY,EAAgB,cAAhB,CACC,SAAAZ,EAAAA,IAACa,EAAAA,QAAU,CAAA,UAAU,QAAS,CAAA,CAChC,CAAA,EACF,EACCb,MAAAc,EAAAA,SAAA,CAA0B,SAAAlB,CAAS,CAAA,CAAA,CAAA,CACtC,CAEJ,CAeA,SAASW,EAAqB,CAC5B,UAAAZ,EACA,GAAGL,CACL,EAAgE,CAE5D,OAAAU,EAAA,IAACe,EAAgB,eAAhB,CACC,YAAU,0BACV,UAAWhB,EAAA,GACT,uDACAJ,CACF,EACC,GAAGL,EAEJ,SAAAU,EAAAA,IAACgB,EAAAA,QAAc,CAAA,UAAU,QAAS,CAAA,CAAA,CACpC,CAEJ,CAEA,SAASP,EAAuB,CAC9B,UAAAd,EACA,GAAGL,CACL,EAAkE,CAE9D,OAAAU,EAAA,IAACiB,EAAgB,iBAAhB,CACC,YAAU,4BACV,UAAWlB,EAAA,GACT,uDACAJ,CACF,EACC,GAAGL,EAEJ,SAAAU,EAAAA,IAACE,EAAAA,QAAgB,CAAA,UAAU,QAAS,CAAA,CAAA,CACtC,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),l=require("./index.cjs47.js"),o=require("./index.cjs22.js"),r=require("./index.cjs11.js");function s({...t}){return a.jsx(l.Root,{"data-slot":"alert-dialog",...t})}function n({...t}){return a.jsx(l.Portal,{"data-slot":"alert-dialog-portal",...t})}function i({className:t,...e}){return a.jsx(l.Overlay,{"data-slot":"alert-dialog-overlay",className:o.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.jsxs(n,{children:[a.jsx(i,{}),a.jsx(l.Content,{"data-slot":"alert-dialog-content",className:o.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 c({className:t,...e}){return a.jsx("div",{"data-slot":"alert-dialog-header",className:o.cn("flex flex-col gap-2 text-center sm:text-left",t),...e})}function u({className:t,...e}){return a.jsx("div",{"data-slot":"alert-dialog-footer",className:o.cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...e})}function g({className:t,...e}){return a.jsx(l.Title,{"data-slot":"alert-dialog-title",className:o.cn("text-lg font-semibold",t),...e})}function f({className:t,...e}){return a.jsx(l.Description,{"data-slot":"alert-dialog-description",className:o.cn("text-muted-foreground text-sm",t),...e})}function x({className:t,...e}){return a.jsx(l.Action,{className:o.cn(r.buttonVariants(),t),...e})}function m({className:t,...e}){return a.jsx(l.Cancel,{className:o.cn(r.buttonVariants({variant:"outline"}),t),...e})}exports.AlertDialog=s;exports.AlertDialogAction=x;exports.AlertDialogCancel=m;exports.AlertDialogContent=d;exports.AlertDialogDescription=f;exports.AlertDialogFooter=u;exports.AlertDialogHeader=c;exports.AlertDialogOverlay=i;exports.AlertDialogPortal=n;exports.AlertDialogTitle=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function r(t){return t===void 0?!0:typeof t=="string"||Array.isArray(t)?t.length===0:Object.keys(t).length===0}exports.a=r;
2
2
  //# sourceMappingURL=index.cjs17.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs17.js","sources":["../src/components/ui/alert-dialog.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"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\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"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\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"],"names":["AlertDialog","props","AlertDialogPrimitive.Root","AlertDialogPortal","AlertDialogPrimitive.Portal","AlertDialogOverlay","className","jsx","AlertDialogPrimitive.Overlay","cn","AlertDialogContent","AlertDialogPrimitive.Content","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogPrimitive.Title","AlertDialogDescription","AlertDialogPrimitive.Description","AlertDialogAction","AlertDialogPrimitive.Action","buttonVariants","AlertDialogCancel","AlertDialogPrimitive.Cancel"],"mappings":"+MAMA,SAASA,EAAY,CACnB,GAAGC,CACL,EAA2D,CACzD,aAAQC,EAAAA,KAAA,CAA0B,YAAU,eAAgB,GAAGD,EAAO,CACxE,CAUA,SAASE,EAAkB,CACzB,GAAGF,CACL,EAA6D,CAC3D,aACGG,EAAAA,OAAA,CAA4B,YAAU,sBAAuB,GAAGH,EAAO,CAE5E,CAEA,SAASI,EAAmB,CAC1B,UAAAC,EACA,GAAGL,CACL,EAA8D,CAE1D,OAAAM,EAAA,IAACC,EAAqB,QAArB,CACC,YAAU,uBACV,UAAWC,EAAA,GACT,yJACAH,CACF,EACC,GAAGL,CAAA,CACN,CAEJ,CAEA,SAASS,EAAmB,CAC1B,UAAAJ,EACA,GAAGL,CACL,EAA8D,CAC5D,cACGE,EACC,CAAA,SAAA,CAAAI,EAAA,IAACF,EAAmB,EAAA,EACpBE,EAAA,IAACI,EAAqB,QAArB,CACC,YAAU,uBACV,UAAWF,EAAA,GACT,8WACAH,CACF,EACC,GAAGL,CAAA,CAAA,CACN,EACF,CAEJ,CAEA,SAASW,EAAkB,CACzB,UAAAN,EACA,GAAGL,CACL,EAAgC,CAE5B,OAAAM,EAAA,IAAC,MAAA,CACC,YAAU,sBACV,UAAWE,EAAAA,GAAG,+CAAgDH,CAAS,EACtE,GAAGL,CAAA,CACN,CAEJ,CAEA,SAASY,EAAkB,CACzB,UAAAP,EACA,GAAGL,CACL,EAAgC,CAE5B,OAAAM,EAAA,IAAC,MAAA,CACC,YAAU,sBACV,UAAWE,EAAA,GACT,yDACAH,CACF,EACC,GAAGL,CAAA,CACN,CAEJ,CAEA,SAASa,EAAiB,CACxB,UAAAR,EACA,GAAGL,CACL,EAA4D,CAExD,OAAAM,EAAA,IAACQ,EAAqB,MAArB,CACC,YAAU,qBACV,UAAWN,EAAAA,GAAG,wBAAyBH,CAAS,EAC/C,GAAGL,CAAA,CACN,CAEJ,CAEA,SAASe,EAAuB,CAC9B,UAAAV,EACA,GAAGL,CACL,EAAkE,CAE9D,OAAAM,EAAA,IAACU,EAAqB,YAArB,CACC,YAAU,2BACV,UAAWR,EAAAA,GAAG,gCAAiCH,CAAS,EACvD,GAAGL,CAAA,CACN,CAEJ,CAEA,SAASiB,EAAkB,CACzB,UAAAZ,EACA,GAAGL,CACL,EAA6D,CAEzD,OAAAM,EAAA,IAACY,EAAqB,OAArB,CACC,UAAWV,EAAA,GAAGW,iBAAe,EAAGd,CAAS,EACxC,GAAGL,CAAA,CACN,CAEJ,CAEA,SAASoB,EAAkB,CACzB,UAAAf,EACA,GAAGL,CACL,EAA6D,CAEzD,OAAAM,EAAA,IAACe,EAAqB,OAArB,CACC,UAAWb,KAAGW,iBAAe,CAAE,QAAS,SAAU,CAAC,EAAGd,CAAS,EAC9D,GAAGL,CAAA,CACN,CAEJ"}
1
+ {"version":3,"file":"index.cjs17.js","sources":["../../../node_modules/.pnpm/remeda@2.20.2/node_modules/remeda/dist/chunk-VCYTMP4D.js"],"sourcesContent":["function n(e){return e===void 0?!0:typeof e==\"string\"||Array.isArray(e)?e.length===0:Object.keys(e).length===0}export{n as a};\n"],"names":["n","e"],"mappings":"gFAAA,SAASA,EAAEC,EAAE,CAAC,OAAOA,IAAI,OAAO,GAAG,OAAOA,GAAG,UAAU,MAAM,QAAQA,CAAC,EAAEA,EAAE,SAAS,EAAE,OAAO,KAAKA,CAAC,EAAE,SAAS,CAAC","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("./index.cjs35.js"),a=require("./index.cjs22.js"),l=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 n({className:t,variant:e,...s}){return r.jsx("div",{"data-slot":"alert",role:"alert",className:a.cn(l({variant:e}),t),...s})}function o({className:t,...e}){return r.jsx("div",{"data-slot":"alert-title",className:a.cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",t),...e})}function c({className:t,...e}){return r.jsx("div",{"data-slot":"alert-description",className:a.cn("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...e})}exports.Alert=n;exports.AlertDescription=c;exports.AlertTitle=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index.cjs53.js");function c(...e){return i.a(f,e)}function f(e,o=[],r=[]){if(typeof e=="function")return e;if(typeof e!="object"||e===null||e instanceof Date||e instanceof RegExp)return structuredClone(e);let t=o.indexOf(e);return t!==-1?r[t]:(o.push(e),Array.isArray(e)?l(e,o,r):s(e,o,r))}function s(e,o,r){let t={};r.push(t);for(let[u,n]of Object.entries(e))t[u]=f(n,o,r);return t}function l(e,o,r){let t=[];r.push(t);for(let[u,n]of e.entries())t[u]=f(n,o,r);return t}exports.a=c;
2
2
  //# sourceMappingURL=index.cjs18.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs18.js","sources":["../src/components/ui/alert.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"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\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"text-destructive-foreground [&>svg]:text-current *:data-[slot=alert-description]:text-destructive-foreground/80\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n"],"names":["alertVariants","cva","Alert","className","variant","props","jsx","cn","AlertTitle","AlertDescription"],"mappings":"iLAKMA,EAAgBC,EAAA,IACpB,oOACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,gCACT,YACE,iHAAA,CAEN,EACA,gBAAiB,CACf,QAAS,SAAA,CACX,CAEJ,EAEA,SAASC,EAAM,CACb,UAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAqE,CAEjE,OAAAC,EAAA,IAAC,MAAA,CACC,YAAU,QACV,KAAK,QACL,UAAWC,EAAG,GAAAP,EAAc,CAAE,QAAAI,CAAS,CAAA,EAAGD,CAAS,EAClD,GAAGE,CAAA,CACN,CAEJ,CAEA,SAASG,EAAW,CAAE,UAAAL,EAAW,GAAGE,GAAsC,CAEtE,OAAAC,EAAA,IAAC,MAAA,CACC,YAAU,cACV,UAAWC,EAAA,GACT,8DACAJ,CACF,EACC,GAAGE,CAAA,CACN,CAEJ,CAEA,SAASI,EAAiB,CACxB,UAAAN,EACA,GAAGE,CACL,EAAgC,CAE5B,OAAAC,EAAA,IAAC,MAAA,CACC,YAAU,oBACV,UAAWC,EAAA,GACT,iGACAJ,CACF,EACC,GAAGE,CAAA,CACN,CAEJ"}
1
+ {"version":3,"file":"index.cjs18.js","sources":["../../../node_modules/.pnpm/remeda@2.20.2/node_modules/remeda/dist/chunk-2OQBQB3V.js"],"sourcesContent":["import{a as i}from\"./chunk-WIMGWYZL.js\";function p(...n){return i(u,n)}function u(n,t=[],r=[]){if(typeof n==\"function\")return n;if(typeof n!=\"object\"||n===null||n instanceof Date||n instanceof RegExp)return structuredClone(n);let o=t.indexOf(n);return o!==-1?r[o]:(t.push(n),Array.isArray(n)?y(n,t,r):s(n,t,r))}function s(n,t,r){let o={};r.push(o);for(let[e,c]of Object.entries(n))o[e]=u(c,t,r);return o}function y(n,t,r){let o=[];r.push(o);for(let[e,c]of n.entries())o[e]=u(c,t,r);return o}export{p as a};\n"],"names":["p","n","i","u","t","o","y","e","c"],"mappings":"oHAAwC,SAASA,KAAKC,EAAE,CAAC,OAAOC,EAAC,EAACC,EAAEF,CAAC,CAAC,CAAC,SAASE,EAAEF,EAAEG,EAAE,CAAE,EAAC,EAAE,GAAG,CAAC,GAAG,OAAOH,GAAG,WAAW,OAAOA,EAAE,GAAG,OAAOA,GAAG,UAAUA,IAAI,MAAMA,aAAa,MAAMA,aAAa,OAAO,OAAO,gBAAgBA,CAAC,EAAE,IAAII,EAAED,EAAE,QAAQH,CAAC,EAAE,OAAOI,IAAI,GAAG,EAAEA,CAAC,GAAGD,EAAE,KAAKH,CAAC,EAAE,MAAM,QAAQA,CAAC,EAAEK,EAAEL,EAAEG,EAAE,CAAC,EAAE,EAAEH,EAAEG,EAAE,CAAC,EAAE,CAAC,SAAS,EAAEH,EAAEG,EAAE,EAAE,CAAC,IAAIC,EAAE,CAAE,EAAC,EAAE,KAAKA,CAAC,EAAE,OAAO,CAACE,EAAEC,CAAC,IAAI,OAAO,QAAQP,CAAC,EAAEI,EAAEE,CAAC,EAAEJ,EAAEK,EAAEJ,EAAE,CAAC,EAAE,OAAOC,CAAC,CAAC,SAASC,EAAEL,EAAEG,EAAE,EAAE,CAAC,IAAIC,EAAE,CAAE,EAAC,EAAE,KAAKA,CAAC,EAAE,OAAO,CAACE,EAAEC,CAAC,IAAIP,EAAE,QAAO,EAAGI,EAAEE,CAAC,EAAEJ,EAAEK,EAAEJ,EAAE,CAAC,EAAE,OAAOC,CAAC","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("ajv"),t=new s({allErrors:!0});function n(r){const e=t.getSchema("http://json-schema.org/draft-07/schema#");if(!e?.(r)){const o=e?.errors?.map(a=>`${a.instancePath} ${a.message}`).join(", ");throw new Error(`Schema validation error: ${o}`)}}exports.ajv=t;exports.validateSchema=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),c=require("./index.cjs34.js"),a=require("./index.cjs12.js"),u=require("./index.cjs30.js");function i({...r}){return t.jsx("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...r})}function o({className:r,...e}){return t.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 d({className:r,...e}){return t.jsx("li",{"data-slot":"breadcrumb-item",className:a.cn("inline-flex items-center gap-1.5",r),...e})}function m({asChild:r,className:e,...n}){const s=r?c.Slot:"a";return t.jsx(s,{"data-slot":"breadcrumb-link",className:a.cn("hover:text-foreground transition-colors",e),...n})}function l({children:r,className:e,...n}){return t.jsx("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:a.cn("[&>svg]:size-3.5",e),...n,children:r??t.jsx(u.default,{})})}exports.Breadcrumb=i;exports.BreadcrumbItem=d;exports.BreadcrumbLink=m;exports.BreadcrumbList=o;exports.BreadcrumbSeparator=l;
2
2
  //# sourceMappingURL=index.cjs19.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs19.js","sources":["../src/packages/builder/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { faker } from \"@faker-js/faker\";\nimport Ajv from \"ajv\";\n\nimport type { JSONSchema7 } from \"json-schema\";\n\n// Export AJV instance for reuse\nexport const ajv = new Ajv({ allErrors: true });\n\n/**\n * Validates a JSON schema against the JSON Schema Draft 7 specification\n * @param schema Schema to validate\n * @throws Error if the schema is invalid\n */\nexport function validateSchema(schema: JSONSchema7) {\n const validate = ajv.getSchema(\"http://json-schema.org/draft-07/schema#\");\n const valid = validate?.(schema);\n\n if (!valid) {\n const errorMessages = validate?.errors\n ?.map((err) => `${err.instancePath} ${err.message}`)\n .join(\", \");\n\n throw new Error(`Schema validation error: ${errorMessages}`);\n }\n}\n\n// Test helpers\nexport const createTestSchema = (overrides = {}): JSONSchema7 => ({\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n title: \"Test Schema\",\n properties: {\n name: {\n type: \"string\",\n title: \"Name\",\n },\n age: {\n type: \"integer\",\n title: \"Age\",\n },\n address: {\n type: \"object\",\n title: \"Address\",\n properties: {\n street: {\n type: \"string\",\n title: \"Street\",\n },\n city: {\n type: \"string\",\n title: \"City\",\n },\n },\n },\n tags: {\n type: \"array\",\n title: \"Tags\",\n items: {\n type: \"string\",\n },\n },\n },\n required: [\"name\"],\n ...overrides,\n});\n\ntype SampleDataType =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, any>;\n\n/**\n * Generate sample data for a JSON schema\n * @param schema JSON Schema to generate data for\n * @returns Sample data that conforms to the schema\n */\nexport const generateSampleData = (\n schema: JSONSchema7,\n): SampleDataType | SampleDataType[] => {\n if (!schema) return undefined;\n\n // Handle schema references (not implemented in this basic version)\n if (schema.$ref) {\n // In a complete implementation, this would resolve the reference\n return \"Reference not resolved\";\n }\n\n // Handle different types\n switch (schema.type) {\n case \"object\":\n return generateObjectData(schema);\n case \"array\":\n return generateArrayData(schema);\n case \"string\":\n return generateStringData(schema);\n case \"number\":\n case \"integer\":\n return generateNumberData(schema);\n case \"boolean\":\n return generateBooleanData();\n case \"null\":\n return null;\n default:\n // Handle schemas with multiple types or no type specified\n if (Array.isArray(schema.type) && schema.type.length > 0) {\n // Use the first type as default\n const primaryType = schema.type[0];\n const newSchema = { ...schema, type: primaryType };\n return generateSampleData(newSchema);\n }\n // If no type is specified, default to object\n if (schema.properties) {\n return generateObjectData({ ...schema, type: \"object\" });\n }\n // Fall back to a string if we can't determine the type\n return faker.lorem.word();\n }\n};\n\n/**\n * Generate sample data for an object schema\n */\nconst generateObjectData = (schema: JSONSchema7): Record<string, any> => {\n const result: Record<string, any> = {};\n\n if (!schema.properties) return result;\n\n // Process each property in the schema\n Object.entries(schema.properties).forEach(([key, propSchema]) => {\n // Only include required fields and some random non-required fields\n const isRequired =\n Array.isArray(schema.required) && schema.required.includes(key);\n const includeField = isRequired ?? Math.random() > 0.3; // 70% chance to include non-required fields\n\n if (includeField && typeof propSchema !== \"boolean\") {\n // Handle default values\n if (propSchema.default !== undefined) {\n result[key] = propSchema.default;\n } else {\n result[key] = generateSampleData(propSchema);\n }\n }\n });\n\n return result;\n};\n\n/**\n * Generate sample data for an array schema\n */\nconst generateArrayData = (schema: JSONSchema7) => {\n if (!schema.items) return [];\n\n // Determine array length\n const minItems = schema.minItems ?? 1;\n const maxItems = schema.maxItems ?? minItems + 3;\n const count = faker.number.int({ min: minItems, max: maxItems });\n\n const result = [];\n const itemSchema = Array.isArray(schema.items)\n ? schema.items[0]\n : schema.items;\n\n // Generate items\n if (typeof itemSchema !== \"boolean\" && itemSchema) {\n for (let i = 0; i < count; i++) {\n result.push(generateSampleData(itemSchema));\n }\n }\n\n return result;\n};\n\n/**\n * Generate sample data for a string schema\n */\nconst generateStringData = (schema: JSONSchema7): string => {\n if (schema.enum && Array.isArray(schema.enum)) {\n // Pick a random value from the enum\n return schema.enum[\n Math.floor(Math.random() * schema.enum.length)\n ] as string;\n }\n\n // Handle string formats\n if (schema.format) {\n switch (schema.format) {\n case \"email\":\n return faker.internet.email();\n case \"uri\":\n case \"url\":\n return faker.internet.url();\n case \"date\":\n return faker.date.past().toISOString().split(\"T\")[0]!;\n case \"date-time\":\n return faker.date.past().toISOString();\n case \"uuid\":\n return faker.string.uuid();\n case \"hostname\":\n return faker.internet.domainName();\n case \"ipv4\":\n return faker.internet.ip();\n case \"ipv6\":\n return faker.internet.ipv6();\n case \"phone\":\n return faker.phone.number();\n default:\n return faker.lorem.word();\n }\n }\n\n // Handle patterns\n if (schema.pattern) {\n try {\n // Basic implementation for simple patterns\n // For complex patterns, consider using a library like randexp\n if (schema.pattern.includes(\"\\\\d\")) {\n return faker.string.alphanumeric(10);\n }\n return faker.lorem.word();\n } catch {\n return faker.lorem.word();\n }\n }\n\n // Handle length constraints\n const minLength = schema.minLength ?? 3;\n const maxLength = schema.maxLength ?? 12;\n\n return faker.string.alphanumeric({\n length: { min: minLength, max: maxLength },\n });\n};\n\n/**\n * Generate sample data for a number schema\n */\nconst generateNumberData = (schema: JSONSchema7): number => {\n if (schema.enum && Array.isArray(schema.enum)) {\n return schema.enum[\n Math.floor(Math.random() * schema.enum.length)\n ] as number;\n }\n\n const isInteger = schema.type === \"integer\";\n const minimum =\n typeof schema.minimum === \"number\" ? schema.minimum : isInteger ? 0 : 0.0;\n const maximum =\n typeof schema.maximum === \"number\"\n ? schema.maximum\n : isInteger\n ? 100\n : 100.0;\n\n if (isInteger) {\n return faker.number.int({ min: minimum, max: maximum });\n }\n\n return faker.number.float({ min: minimum, max: maximum, fractionDigits: 2 });\n};\n\n/**\n * Generate sample data for a boolean schema\n */\nconst generateBooleanData = (): boolean => {\n return faker.datatype.boolean();\n};\n"],"names":["ajv","Ajv","validateSchema","schema","validate","errorMessages","err"],"mappings":"uGAOaA,EAAM,IAAIC,EAAI,CAAE,UAAW,EAAM,CAAA,EAOvC,SAASC,EAAeC,EAAqB,CAC5C,MAAAC,EAAWJ,EAAI,UAAU,yCAAyC,EAGxE,GAAI,CAFUI,IAAWD,CAAM,EAEnB,CACV,MAAME,EAAgBD,GAAU,QAC5B,IAAKE,GAAQ,GAAGA,EAAI,YAAY,IAAIA,EAAI,OAAO,EAAE,EAClD,KAAK,IAAI,EAEZ,MAAM,IAAI,MAAM,4BAA4BD,CAAa,EAAE,CAAA,CAE/D"}
1
+ {"version":3,"file":"index.cjs19.js","sources":["../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","props","BreadcrumbList","className","jsx","cn","BreadcrumbItem","BreadcrumbLink","asChild","Comp","Slot","BreadcrumbSeparator","children","ChevronRight"],"mappings":"+MAMA,SAASA,EAAW,CAAE,GAAGC,GAAsC,CAC7D,aAAQ,MAAI,CAAA,aAAW,aAAa,YAAU,aAAc,GAAGA,EAAO,CACxE,CAEA,SAASC,EAAe,CAAE,UAAAC,EAAW,GAAGF,GAAqC,CAEzE,OAAAG,EAAA,IAAC,KAAA,CACC,YAAU,kBACV,UAAWC,EAAA,GACT,2FACAF,CACF,EACC,GAAGF,CAAA,CACN,CAEJ,CAEA,SAASK,EAAe,CAAE,UAAAH,EAAW,GAAGF,GAAqC,CAEzE,OAAAG,EAAA,IAAC,KAAA,CACC,YAAU,kBACV,UAAWC,EAAAA,GAAG,mCAAoCF,CAAS,EAC1D,GAAGF,CAAA,CACN,CAEJ,CAEA,SAASM,EAAe,CACtB,QAAAC,EACA,UAAAL,EACA,GAAGF,CACL,EAEG,CACK,MAAAQ,EAAOD,EAAUE,EAAAA,KAAO,IAG5B,OAAAN,EAAA,IAACK,EAAA,CACC,YAAU,kBACV,UAAWJ,EAAAA,GAAG,0CAA2CF,CAAS,EACjE,GAAGF,CAAA,CACN,CAEJ,CAeA,SAASU,EAAoB,CAC3B,SAAAC,EACA,UAAAT,EACA,GAAGF,CACL,EAA+B,CAE3B,OAAAG,EAAA,IAAC,KAAA,CACC,YAAU,uBACV,KAAK,eACL,cAAY,OACZ,UAAWC,EAAAA,GAAG,mBAAoBF,CAAS,EAC1C,GAAGF,EAEH,SAAAW,SAAaC,EAAAA,QAAa,CAAA,CAAA,CAAA,CAC7B,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react/jsx-runtime"),d=require("react"),x=require("./index.cjs9.js"),m=require("./index.cjs10.js"),h=d.createContext(void 0),C={$schema:"http://json-schema.org/draft-07/schema#",type:"object",title:"title",description:"",properties:{},required:[]};function R({children:c,initialSchema:f}){const[p,n]=d.useState(f??C),[u,a]=d.useState([]);return v.jsx(h.Provider,{value:{schema:p,setSchema:n,path:u,setPath:a},children:c})}function B({onSchemaChange:c}={}){const f=d.useContext(h);if(f===void 0)throw new Error("useSchema must be used within a SchemaProvider");const{path:p,schema:n,setSchema:u}=f,a=(t,e)=>{let r=t,i=null,o=null;for(const s of e)r.type==="array"&&r.items&&!Array.isArray(r.items)&&typeof r.items=="object"&&r.items.type==="object"&&typeof r.items.properties?.[s]=="object"?(o=r.items,i=r.items.properties[s],r=r.items):r.type==="object"&&r.properties&&!Array.isArray(r.properties)&&typeof r.properties[s]=="object"&&(o=r,i=r.properties[s],r=r.properties[s]);return{propertySchema:i,parentSchema:o}},l=t=>{const{propertySchema:e}=a(t??n,p);return e?e.type==="array"?e.items:e:t??n},b=()=>{const{propertySchema:t}=a(n,p);return t},S=(t,e)=>{const r=m.a(n),i=l(r);if(i.properties?.[t]){const o=Object.entries(i.properties).map(([s,w])=>[s===t?e:s,w]);i.properties=Object.fromEntries(o)}i.required?.includes(t)&&(i.required=i.required.map(o=>o===t?e:o)),u(r),c?.(r)},j=(t,e)=>{const r=m.a(n),i=l(r);typeof e=="object"&&"isRequired"in e&&(i.type==="object"&&(i.required||(i.required=[]),e.isRequired?i.required.includes(t)||i.required.push(t):i.required=i.required.filter(s=>s!==t)),delete e.isRequired);let o=!1;if(i.type==="object"&&i.properties){const s=i.properties[t];typeof s!="boolean"&&s&&typeof e!="boolean"&&(e.type&&e.type!==s.type?e={title:s.title,description:s.description,default:s.default,...e}:e.enum?(delete e.type,delete e.items,delete e.properties,e={title:s.title,description:s.description,...e}):e={...s,...e},i.properties[t]=e),o=!0}if(u(r),c?.(r),o)return{status:"success",property:i.properties[t]}},y=(t,e,r)=>{const i=m.a(n),o=l(i);return o.type!=="object"&&(o.type="object"),o.properties||(o.properties={}),o.properties[t]?{status:"error",code:"key-exists",message:`Property with key ${t} already exists`}:(e.enum&&(delete e.type,delete e.items,delete e.properties),o.properties[t]=e,r&&(o.required||(o.required=[]),o.required.includes(t)||o.required.push(t)),u(i),c?.(i),{status:"success",property:o.properties[t]})},P=t=>{const e=m.a(n),r=l(e);r.type==="object"&&r.required&&(r.required=r.required.filter(i=>i!==t)),r.type==="object"&&r.properties&&delete r.properties[t],u(e),c?.(e)},g=t=>{const e=l().properties;if(!e||x.a(e)||typeof e[t]=="boolean")return;const r=e[t],i=`${t}_copy`,o=m.a(r);return y(i,o,q(t))},q=t=>{if(p.length){const{propertySchema:e}=a(n,p);return e?.type==="array"&&e.items&&typeof e.items!="boolean"&&!Array.isArray(e.items)&&e.items?.type==="object"?!!e.items?.required?.includes(t):!!e?.required?.includes(t)}return!!n?.required?.includes(t)};return{...f,getCurrentSchema:l,getCurrentProperty:b,handlePropertyChange:j,handleAddProperty:y,handleKeyChange:S,navigateToCorrectNesting:a,handleDeleteProperty:P,isPropertyRequired:q,getValue:()=>n,handleDuplicateProperty:g}}exports.SchemaContext=h;exports.SchemaProvider=R;exports.useSchema=B;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),g=require("./index.cjs9.js"),u=require("./index.cjs10.js"),l=require("./index.cjs11.js"),d=require("./index.cjs12.js"),h=require("./index.cjs8.js"),p=require("./index.cjs13.js"),j=require("./index.cjs14.js"),x=require("./index.cjs15.js"),y=({constraintName:n,value:s,onConstraintChange:i,disabled:a,error:r,onRemoveConstraint:m})=>{const{getConstraintDefinition:o}=h.useConstraints(),t=o(n);return t?e.jsx(u.InputErrorWrapper,{errorCode:r?.code,errorDescription:r?.message,showError:!!r,children:e.jsxs("div",{children:[e.jsx(l.Label,{className:"mb-2",htmlFor:t.name,children:t.name}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(g.Input,{id:t.name,type:"number",value:s,onChange:c=>i(Number(c.target.value)),disabled:a,min:0,className:d.cn({"border-destructive":r})}),e.jsx(p.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>m(),children:e.jsx(x.default,{className:"size-4"})})]}),t.description&&e.jsx("div",{className:"mt-2 text-sm text-gray-500",children:t.description})]})}):null},q=({constraintName:n,value:s,onConstraintChange:i,disabled:a,error:r,onRemoveConstraint:m})=>{const{getConstraintDefinition:o}=h.useConstraints(),t=o(n);return t?e.jsx(u.InputErrorWrapper,{errorCode:r?.code,errorDescription:r?.message,showError:!!r,children:e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx(l.Label,{htmlFor:t.name,children:t.name}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j.Switch,{id:t.name,checked:s,onCheckedChange:c=>i(c),disabled:a,className:d.cn({"border-destructive":r})}),e.jsx(p.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>m(),children:e.jsx(x.default,{className:"size-4"})})]})]}),t.description&&e.jsx("div",{className:"mt-2 text-sm text-gray-500",children:t.description})]})}):null},b=y,f=y,I=q,C={id:"array-constraints",hooks:{registerConstraints(){return[{name:"minItems",label:"Min Items",appliesTo:["array"],schema:{type:"integer",title:"Minimum Items Constraint",description:"The minimum number of items the array must contain",examples:[1,2,5],minimum:0},description:"Specifies the minimum number of items in the array",defaultValue:0},{name:"maxItems",label:"Max Items",appliesTo:["array"],schema:{type:"integer",title:"Maximum Items Constraint",description:"The maximum number of items the array can contain",examples:[10,20,100],minimum:0},description:"Specifies the maximum number of items in the array",defaultValue:10},{name:"uniqueItems",label:"Unique Items",appliesTo:["array"],schema:{type:"boolean",title:"Unique Items Constraint",description:"Whether array items must be unique"},description:"When true, all items in the array must be unique",defaultValue:!1}]},registerRenderers(){return{minItems:b,maxItems:f,uniqueItems:I}}}};exports.ArrayMaxItemsRenderer=f;exports.ArrayMinItemsRenderer=b;exports.ArrayUniqueItemsRenderer=I;exports.default=C;
2
2
  //# sourceMappingURL=index.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs2.js","sources":["../src/packages/builder/context.tsx"],"sourcesContent":["import { createContext, useContext, useState } from \"react\";\n\nimport type { PropsWithChildren, SetStateAction } from \"react\";\nimport type { JSONSchema7, JSONSchema7Definition } from \"json-schema\";\nimport { clone, isEmpty } from \"remeda\";\nimport type { OperationError } from \"./shared-types\";\n\ninterface ContextState<T extends JSONSchema7> {\n schema: T;\n setSchema: React.Dispatch<T>;\n path: string[];\n setPath: React.Dispatch<SetStateAction<string[]>>;\n}\n\nexport const SchemaContext = createContext<\n ContextState<JSONSchema7> | undefined\n>(undefined);\n\nconst defaultSchema: JSONSchema7 = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n title: \"title\",\n description: \"\",\n properties: {},\n required: [],\n};\n\nfunction SchemaProvider({\n children,\n initialSchema,\n}: PropsWithChildren<{ initialSchema?: JSONSchema7 }>) {\n const [schema, setSchema] = useState<JSONSchema7>(\n initialSchema ?? defaultSchema,\n );\n\n /**\n * Path represents the path to a nested property in the schema.\n * It should only contain property keys.\n * An empty path means the current schema is the root schema since\n * the path only represents nested properties.\n */\n const [path, setPath] = useState<string[]>([]);\n\n // NOTE: you *might* need to memoize your values\n // Learn more in http://kcd.im/optimize-context\n\n return (\n <SchemaContext.Provider value={{ schema, setSchema, path, setPath }}>\n {children}\n </SchemaContext.Provider>\n );\n}\n\nexport type PropertyAddError = OperationError & {\n status: \"error\";\n};\n\nexport interface PropertyAddSuccess {\n status: \"success\";\n property: JSONSchema7;\n}\n\nexport interface PropertyChangeSuccess {\n status: \"success\";\n property: JSONSchema7Definition;\n}\n\nfunction useSchema({\n onSchemaChange,\n}: {\n onSchemaChange?: (schema: JSONSchema7) => void;\n} = {}) {\n const context = useContext(SchemaContext);\n\n if (context === undefined) {\n throw new Error(\"useSchema must be used within a SchemaProvider\");\n }\n\n const { path, schema, setSchema } = context;\n\n /**\n * Navigates to the correct property schema of the latest key in the provided path.\n *\n * It will traverse both \"properties\" and \"items\" to find the correct property schema.\n *\n * It will only return a property schema if the provided path is valid i.e. it\n * correctly follows the schema's nesting structure.\n *\n * It will only return a parent schema if the provided path is valid i.e. it\n * correctly follows the schema's nesting structure.\n */\n const navigateToCorrectNesting = (\n providedSchema: JSONSchema7,\n providedPath: string[],\n ) => {\n let current = providedSchema;\n let propertySchema: JSONSchema7 | null = null;\n // Should be the schema of type \"object\" containing the property in its properties key\n let parentSchema: JSONSchema7 | null = null;\n\n for (const p of providedPath) {\n if (\n current.type === \"array\" &&\n current.items &&\n !Array.isArray(current.items) &&\n typeof current.items === \"object\" &&\n current.items.type === \"object\" &&\n typeof current.items.properties?.[p] === \"object\"\n ) {\n parentSchema = current.items;\n propertySchema = current.items.properties[p];\n current = current.items;\n } else if (\n current.type === \"object\" &&\n current.properties &&\n !Array.isArray(current.properties) &&\n typeof current.properties[p] === \"object\"\n ) {\n parentSchema = current;\n propertySchema = current.properties[p];\n current = current.properties[p];\n }\n }\n\n return { propertySchema, parentSchema };\n };\n\n /**\n * Gets the current schema of the latest key in the path.\n * If path is empty, it will return the root schema.\n *\n * It should always return the \"object\" schema of the current path.\n */\n const getCurrentSchema = (initialSchema?: JSONSchema7) => {\n // Gets the correct object schema if under nesting\n // Otherwise, return the root schema\n const { propertySchema } = navigateToCorrectNesting(\n initialSchema ?? schema,\n path,\n );\n\n if (propertySchema) {\n if (propertySchema.type === \"array\") {\n return propertySchema.items as JSONSchema7;\n }\n\n return propertySchema;\n }\n\n return initialSchema ?? schema;\n };\n\n /**\n * Gets the correct property schema of the latest key in the path.\n * If no path is provided, it will return null.\n */\n const getCurrentProperty = () => {\n const { propertySchema } = navigateToCorrectNesting(schema, path);\n\n return propertySchema;\n };\n\n /**\n * Change the key of a property in the schema. It expects\n * the find the key at the current path.\n */\n const handleKeyChange = (key: string, newKey: string) => {\n const newSchema = clone(schema);\n\n // The current schema containing the property to change\n const current: JSONSchema7 = getCurrentSchema(newSchema);\n\n if (current.properties?.[key]) {\n //Important: maintain order as to not confuse users\n const newProperties = Object.entries(current.properties).map(\n ([k, val]) => {\n return [k === key ? newKey : k, val];\n },\n );\n\n current.properties = Object.fromEntries(\n newProperties,\n ) as JSONSchema7[\"properties\"];\n }\n\n if (current.required?.includes(key)) {\n current.required = current.required.map((item) =>\n item === key ? newKey : item,\n );\n }\n\n setSchema(newSchema);\n onSchemaChange?.(newSchema);\n };\n\n const handlePropertyChange = (\n key: string,\n updates: Partial<JSONSchema7Definition> & { isRequired?: boolean },\n ): PropertyChangeSuccess | undefined => {\n const newSchema = clone(schema);\n\n // The current schema containing the property to change\n const current: JSONSchema7 = getCurrentSchema(newSchema);\n\n // Handle required field updates\n if (typeof updates === \"object\" && \"isRequired\" in updates) {\n if (current.type === \"object\") {\n if (!current.required) {\n current.required = [];\n }\n if (updates.isRequired) {\n if (!current.required.includes(key)) {\n current.required.push(key);\n }\n } else {\n current.required = current.required.filter((item) => item !== key);\n }\n }\n delete updates.isRequired;\n }\n\n let isUpdated = false;\n\n // Update the property\n if (current.type === \"object\" && current.properties) {\n const originalProperty = current.properties[key];\n // Ensure the property exists and is not a boolean\n if (typeof originalProperty !== \"boolean\" && originalProperty) {\n if (typeof updates !== \"boolean\") {\n //if updates changes the type of the property,\n //only the title, description, and default properties should remain\n //from the original property\n if (updates.type && updates.type !== originalProperty.type) {\n updates = {\n title: originalProperty.title,\n description: originalProperty.description,\n default: originalProperty.default,\n ...updates,\n };\n } else if (updates.enum) {\n //if the property is an enum, only the title and description should remain\n //from the original property\n delete updates.type;\n delete updates.items;\n delete updates.properties;\n updates = {\n title: originalProperty.title,\n description: originalProperty.description,\n ...updates,\n };\n } else {\n updates = { ...originalProperty, ...updates };\n }\n\n current.properties[key] = updates;\n }\n }\n isUpdated = true;\n }\n\n setSchema(newSchema);\n onSchemaChange?.(newSchema);\n\n if (isUpdated) {\n return { status: \"success\", property: current.properties![key]! };\n }\n };\n\n /**\n * Adds a sibling property to the current schema.\n */\n const handleAddProperty = (\n key: string,\n propertyToAdd: JSONSchema7,\n isRequired: boolean,\n ) => {\n const newSchema = clone(schema);\n\n // The current schema containing the property to add\n const current: JSONSchema7 = getCurrentSchema(newSchema);\n\n // Ensure the current schema has a properties object\n if (current.type !== \"object\") {\n current.type = \"object\";\n }\n if (!current.properties) {\n current.properties = {};\n }\n\n //Ensure there's no existing property with the same key\n if (current.properties[key]) {\n return {\n status: \"error\",\n code: \"key-exists\" as const,\n message: `Property with key ${key} already exists`,\n } satisfies PropertyAddError;\n }\n\n if (propertyToAdd.enum) {\n //ensure that only the enum property is present\n delete propertyToAdd.type;\n delete propertyToAdd.items;\n delete propertyToAdd.properties;\n }\n\n // Add the new property\n current.properties[key] = propertyToAdd;\n\n // Handle required field\n if (isRequired) {\n if (!current.required) {\n current.required = [];\n }\n if (!current.required.includes(key)) {\n current.required.push(key);\n }\n }\n\n setSchema(newSchema);\n onSchemaChange?.(newSchema);\n\n return {\n status: \"success\" as const,\n property: current.properties[key],\n } satisfies PropertyAddSuccess;\n };\n\n const handleDeleteProperty = (key: string) => {\n const newSchema = clone(schema);\n\n // The current schema containing the property to delete\n const current: JSONSchema7 = getCurrentSchema(newSchema);\n\n // Handle required field updates\n if (current.type === \"object\") {\n if (current.required) {\n current.required = current.required.filter((item) => item !== key);\n }\n }\n\n // Delete the property\n if (current.type === \"object\" && current.properties) {\n delete current.properties[key];\n }\n\n setSchema(newSchema);\n onSchemaChange?.(newSchema);\n };\n\n const handleDuplicateProperty = (key: string) => {\n const currentProperties = getCurrentSchema().properties;\n if (\n !currentProperties ||\n isEmpty(currentProperties) ||\n typeof currentProperties[key] === \"boolean\"\n ) {\n return;\n }\n\n const propertyToDuplicate = currentProperties[key]!;\n const newKey = `${key}_copy`;\n const newProperty = clone(propertyToDuplicate);\n\n // Add the duplicated property\n return handleAddProperty(newKey, newProperty, isPropertyRequired(key));\n };\n\n const isPropertyRequired = (key: string) => {\n if (path.length) {\n const { propertySchema } = navigateToCorrectNesting(schema, path);\n\n if (\n propertySchema?.type === \"array\" &&\n propertySchema.items &&\n typeof propertySchema.items !== \"boolean\" &&\n !Array.isArray(propertySchema.items) &&\n propertySchema.items?.type === \"object\"\n ) {\n return Boolean(propertySchema.items?.required?.includes(key));\n } else {\n return Boolean(propertySchema?.required?.includes(key));\n }\n }\n\n return Boolean(schema?.required?.includes(key));\n };\n\n /**\n * Programatically get the current schema value\n */\n const getValue = () => {\n return schema;\n };\n\n return {\n ...context,\n getCurrentSchema,\n getCurrentProperty,\n handlePropertyChange,\n handleAddProperty,\n handleKeyChange,\n navigateToCorrectNesting,\n handleDeleteProperty,\n isPropertyRequired,\n getValue,\n handleDuplicateProperty,\n };\n}\n\nexport { SchemaProvider, useSchema };\n"],"names":["SchemaContext","createContext","defaultSchema","SchemaProvider","children","initialSchema","schema","setSchema","useState","path","setPath","jsx","useSchema","onSchemaChange","context","useContext","navigateToCorrectNesting","providedSchema","providedPath","current","propertySchema","parentSchema","p","getCurrentSchema","getCurrentProperty","handleKeyChange","key","newKey","newSchema","clone","newProperties","k","val","item","handlePropertyChange","updates","isUpdated","originalProperty","handleAddProperty","propertyToAdd","isRequired","handleDeleteProperty","handleDuplicateProperty","currentProperties","isEmpty","propertyToDuplicate","newProperty","isPropertyRequired"],"mappings":"mMAcaA,EAAgBC,gBAE3B,MAAS,EAELC,EAA6B,CACjC,QAAS,0CACT,KAAM,SACN,MAAO,QACP,YAAa,GACb,WAAY,CAAC,EACb,SAAU,CAAA,CACZ,EAEA,SAASC,EAAe,CACtB,SAAAC,EACA,cAAAC,CACF,EAAuD,CAC/C,KAAA,CAACC,EAAQC,CAAS,EAAIC,EAAA,SAC1BH,GAAiBH,CACnB,EAQM,CAACO,EAAMC,CAAO,EAAIF,EAAAA,SAAmB,CAAA,CAAE,EAM3C,OAAAG,MAACX,EAAc,SAAd,CAAuB,MAAO,CAAE,OAAAM,EAAQ,UAAAC,EAAW,KAAAE,EAAM,QAAAC,CAAQ,EAC/D,SAAAN,CACH,CAAA,CAEJ,CAgBA,SAASQ,EAAU,CACjB,eAAAC,CACF,EAEI,GAAI,CACA,MAAAC,EAAUC,aAAWf,CAAa,EAExC,GAAIc,IAAY,OACR,MAAA,IAAI,MAAM,gDAAgD,EAGlE,KAAM,CAAE,KAAAL,EAAM,OAAAH,EAAQ,UAAAC,CAAc,EAAAO,EAa9BE,EAA2B,CAC/BC,EACAC,IACG,CACH,IAAIC,EAAUF,EACVG,EAAqC,KAErCC,EAAmC,KAEvC,UAAWC,KAAKJ,EAEZC,EAAQ,OAAS,SACjBA,EAAQ,OACR,CAAC,MAAM,QAAQA,EAAQ,KAAK,GAC5B,OAAOA,EAAQ,OAAU,UACzBA,EAAQ,MAAM,OAAS,UACvB,OAAOA,EAAQ,MAAM,aAAaG,CAAC,GAAM,UAEzCD,EAAeF,EAAQ,MACNC,EAAAD,EAAQ,MAAM,WAAWG,CAAC,EAC3CH,EAAUA,EAAQ,OAElBA,EAAQ,OAAS,UACjBA,EAAQ,YACR,CAAC,MAAM,QAAQA,EAAQ,UAAU,GACjC,OAAOA,EAAQ,WAAWG,CAAC,GAAM,WAElBD,EAAAF,EACEC,EAAAD,EAAQ,WAAWG,CAAC,EAC3BH,EAAAA,EAAQ,WAAWG,CAAC,GAI3B,MAAA,CAAE,eAAAF,EAAgB,aAAAC,CAAa,CACxC,EAQME,EAAoBlB,GAAgC,CAGlD,KAAA,CAAE,eAAAe,GAAmBJ,EACzBX,GAAiBC,EACjBG,CACF,EAEA,OAAIW,EACEA,EAAe,OAAS,QACnBA,EAAe,MAGjBA,EAGFf,GAAiBC,CAC1B,EAMMkB,EAAqB,IAAM,CAC/B,KAAM,CAAE,eAAAJ,CAAmB,EAAAJ,EAAyBV,EAAQG,CAAI,EAEzD,OAAAW,CACT,EAMMK,EAAkB,CAACC,EAAaC,IAAmB,CACjD,MAAAC,EAAYC,IAAMvB,CAAM,EAGxBa,EAAuBI,EAAiBK,CAAS,EAEnD,GAAAT,EAAQ,aAAaO,CAAG,EAAG,CAE7B,MAAMI,EAAgB,OAAO,QAAQX,EAAQ,UAAU,EAAE,IACvD,CAAC,CAACY,EAAGC,CAAG,IACC,CAACD,IAAML,EAAMC,EAASI,EAAGC,CAAG,CAEvC,EAEAb,EAAQ,WAAa,OAAO,YAC1BW,CACF,CAAA,CAGEX,EAAQ,UAAU,SAASO,CAAG,IACxBP,EAAA,SAAWA,EAAQ,SAAS,IAAKc,GACvCA,IAASP,EAAMC,EAASM,CAC1B,GAGF1B,EAAUqB,CAAS,EACnBf,IAAiBe,CAAS,CAC5B,EAEMM,EAAuB,CAC3BR,EACAS,IACsC,CAChC,MAAAP,EAAYC,IAAMvB,CAAM,EAGxBa,EAAuBI,EAAiBK,CAAS,EAGnD,OAAOO,GAAY,UAAY,eAAgBA,IAC7ChB,EAAQ,OAAS,WACdA,EAAQ,WACXA,EAAQ,SAAW,CAAC,GAElBgB,EAAQ,WACLhB,EAAQ,SAAS,SAASO,CAAG,GACxBP,EAAA,SAAS,KAAKO,CAAG,EAG3BP,EAAQ,SAAWA,EAAQ,SAAS,OAAQc,GAASA,IAASP,CAAG,GAGrE,OAAOS,EAAQ,YAGjB,IAAIC,EAAY,GAGhB,GAAIjB,EAAQ,OAAS,UAAYA,EAAQ,WAAY,CAC7C,MAAAkB,EAAmBlB,EAAQ,WAAWO,CAAG,EAE3C,OAAOW,GAAqB,WAAaA,GACvC,OAAOF,GAAY,YAIjBA,EAAQ,MAAQA,EAAQ,OAASE,EAAiB,KAC1CF,EAAA,CACR,MAAOE,EAAiB,MACxB,YAAaA,EAAiB,YAC9B,QAASA,EAAiB,QAC1B,GAAGF,CACL,EACSA,EAAQ,MAGjB,OAAOA,EAAQ,KACf,OAAOA,EAAQ,MACf,OAAOA,EAAQ,WACLA,EAAA,CACR,MAAOE,EAAiB,MACxB,YAAaA,EAAiB,YAC9B,GAAGF,CACL,GAEAA,EAAU,CAAE,GAAGE,EAAkB,GAAGF,CAAQ,EAGtChB,EAAA,WAAWO,CAAG,EAAIS,GAGlBC,EAAA,EAAA,CAMd,GAHA7B,EAAUqB,CAAS,EACnBf,IAAiBe,CAAS,EAEtBQ,EACF,MAAO,CAAE,OAAQ,UAAW,SAAUjB,EAAQ,WAAYO,CAAG,CAAG,CAEpE,EAKMY,EAAoB,CACxBZ,EACAa,EACAC,IACG,CACG,MAAAZ,EAAYC,IAAMvB,CAAM,EAGxBa,EAAuBI,EAAiBK,CAAS,EAWnD,OARAT,EAAQ,OAAS,WACnBA,EAAQ,KAAO,UAEZA,EAAQ,aACXA,EAAQ,WAAa,CAAC,GAIpBA,EAAQ,WAAWO,CAAG,EACjB,CACL,OAAQ,QACR,KAAM,aACN,QAAS,qBAAqBA,CAAG,iBACnC,GAGEa,EAAc,OAEhB,OAAOA,EAAc,KACrB,OAAOA,EAAc,MACrB,OAAOA,EAAc,YAIfpB,EAAA,WAAWO,CAAG,EAAIa,EAGtBC,IACGrB,EAAQ,WACXA,EAAQ,SAAW,CAAC,GAEjBA,EAAQ,SAAS,SAASO,CAAG,GACxBP,EAAA,SAAS,KAAKO,CAAG,GAI7BnB,EAAUqB,CAAS,EACnBf,IAAiBe,CAAS,EAEnB,CACL,OAAQ,UACR,SAAUT,EAAQ,WAAWO,CAAG,CAClC,EACF,EAEMe,EAAwBf,GAAgB,CACtC,MAAAE,EAAYC,IAAMvB,CAAM,EAGxBa,EAAuBI,EAAiBK,CAAS,EAGnDT,EAAQ,OAAS,UACfA,EAAQ,WACVA,EAAQ,SAAWA,EAAQ,SAAS,OAAQc,GAASA,IAASP,CAAG,GAKjEP,EAAQ,OAAS,UAAYA,EAAQ,YAChC,OAAAA,EAAQ,WAAWO,CAAG,EAG/BnB,EAAUqB,CAAS,EACnBf,IAAiBe,CAAS,CAC5B,EAEMc,EAA2BhB,GAAgB,CACzC,MAAAiB,EAAoBpB,IAAmB,WAE3C,GAAA,CAACoB,GACDC,EAAAA,EAAQD,CAAiB,GACzB,OAAOA,EAAkBjB,CAAG,GAAM,UAElC,OAGI,MAAAmB,EAAsBF,EAAkBjB,CAAG,EAC3CC,EAAS,GAAGD,CAAG,QACfoB,EAAcjB,IAAMgB,CAAmB,EAG7C,OAAOP,EAAkBX,EAAQmB,EAAaC,EAAmBrB,CAAG,CAAC,CACvE,EAEMqB,EAAsBrB,GAAgB,CAC1C,GAAIjB,EAAK,OAAQ,CACf,KAAM,CAAE,eAAAW,CAAmB,EAAAJ,EAAyBV,EAAQG,CAAI,EAEhE,OACEW,GAAgB,OAAS,SACzBA,EAAe,OACf,OAAOA,EAAe,OAAU,WAChC,CAAC,MAAM,QAAQA,EAAe,KAAK,GACnCA,EAAe,OAAO,OAAS,SAExB,EAAQA,EAAe,OAAO,UAAU,SAASM,CAAG,EAEpD,EAAQN,GAAgB,UAAU,SAASM,CAAG,CACvD,CAGF,MAAO,EAAQpB,GAAQ,UAAU,SAASoB,CAAG,CAC/C,EASO,MAAA,CACL,GAAGZ,EACH,iBAAAS,EACA,mBAAAC,EACA,qBAAAU,EACA,kBAAAI,EACA,gBAAAb,EACA,yBAAAT,EACA,qBAAAyB,EACA,mBAAAM,EACA,SAde,IACRzC,EAcP,wBAAAoC,CACF,CACF"}
1
+ {"version":3,"file":"index.cjs2.js","sources":["../src/packages/plugins/array.tsx"],"sourcesContent":["import { Input } from \"@/components/ui/input\";\nimport { InputErrorWrapper } from \"@/components/input-error\";\nimport { Label } from \"@/components/ui/label\";\nimport { cn } from \"@/lib/utils\";\nimport {\n BaseJSONSchemaPlugin,\n ConstraintRendererProps,\n useConstraints,\n} from \"@/packages/constraints/context\";\nimport { Button } from \"@/components/ui/button\";\nimport { X } from \"lucide-react\";\nimport { Switch } from \"@/components/ui/switch\";\n\n// Generic numeric constraint renderer for arrays (minItems, maxItems)\nconst ArrayNumberConstraintRenderer = ({\n constraintName,\n value,\n onConstraintChange,\n disabled,\n error,\n onRemoveConstraint,\n}: ConstraintRendererProps<number> & { disabled?: boolean }) => {\n const { getConstraintDefinition } = useConstraints();\n const constraintDef = getConstraintDefinition(constraintName);\n\n if (!constraintDef) {\n return null;\n }\n\n return (\n <InputErrorWrapper\n errorCode={error?.code}\n errorDescription={error?.message}\n showError={!!error}\n >\n <div>\n <Label className=\"mb-2\" htmlFor={constraintDef.name}>\n {constraintDef.name}\n </Label>\n <div className=\"flex items-center gap-2\">\n <Input\n id={constraintDef.name}\n type=\"number\"\n value={value}\n onChange={(e) => onConstraintChange(Number(e.target.value))}\n disabled={disabled}\n min={0}\n className={cn({ \"border-destructive\": error })}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => onRemoveConstraint()}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n {constraintDef.description && (\n <div className=\"mt-2 text-sm text-gray-500\">\n {constraintDef.description}\n </div>\n )}\n </div>\n </InputErrorWrapper>\n );\n};\n\n// Boolean constraint renderer for uniqueItems\nconst ArrayBooleanConstraintRenderer = ({\n constraintName,\n value,\n onConstraintChange,\n disabled,\n error,\n onRemoveConstraint,\n}: ConstraintRendererProps<boolean> & { disabled?: boolean }) => {\n const { getConstraintDefinition } = useConstraints();\n const constraintDef = getConstraintDefinition(constraintName);\n\n if (!constraintDef) {\n return null;\n }\n\n return (\n <InputErrorWrapper\n errorCode={error?.code}\n errorDescription={error?.message}\n showError={!!error}\n >\n <div>\n <div className=\"mb-2 flex items-center justify-between\">\n <Label htmlFor={constraintDef.name}>{constraintDef.name}</Label>\n <div className=\"flex items-center gap-2\">\n <Switch\n id={constraintDef.name}\n checked={value}\n onCheckedChange={(checked) => onConstraintChange(checked)}\n disabled={disabled}\n className={cn({ \"border-destructive\": error })}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => onRemoveConstraint()}\n >\n <X className=\"size-4\" />\n </Button>\n </div>\n </div>\n {constraintDef.description && (\n <div className=\"mt-2 text-sm text-gray-500\">\n {constraintDef.description}\n </div>\n )}\n </div>\n </InputErrorWrapper>\n );\n};\n\n// Export the renderers\nexport const ArrayMinItemsRenderer = ArrayNumberConstraintRenderer;\nexport const ArrayMaxItemsRenderer = ArrayNumberConstraintRenderer;\nexport const ArrayUniqueItemsRenderer = ArrayBooleanConstraintRenderer;\n\nconst plugin: BaseJSONSchemaPlugin = {\n id: \"array-constraints\",\n hooks: {\n registerConstraints() {\n return [\n {\n name: \"minItems\",\n label: \"Min Items\",\n appliesTo: [\"array\"],\n schema: {\n type: \"integer\",\n title: \"Minimum Items Constraint\",\n description: \"The minimum number of items the array must contain\",\n examples: [1, 2, 5],\n minimum: 0,\n },\n description: \"Specifies the minimum number of items in the array\",\n defaultValue: 0,\n },\n {\n name: \"maxItems\",\n label: \"Max Items\",\n appliesTo: [\"array\"],\n schema: {\n type: \"integer\",\n title: \"Maximum Items Constraint\",\n description: \"The maximum number of items the array can contain\",\n examples: [10, 20, 100],\n minimum: 0,\n },\n description: \"Specifies the maximum number of items in the array\",\n defaultValue: 10,\n },\n {\n name: \"uniqueItems\",\n label: \"Unique Items\",\n appliesTo: [\"array\"],\n schema: {\n type: \"boolean\",\n title: \"Unique Items Constraint\",\n description: \"Whether array items must be unique\",\n },\n description: \"When true, all items in the array must be unique\",\n defaultValue: false,\n },\n ];\n },\n registerRenderers() {\n return {\n minItems: ArrayMinItemsRenderer,\n maxItems: ArrayMaxItemsRenderer,\n uniqueItems: ArrayUniqueItemsRenderer,\n };\n },\n },\n};\n\nexport default plugin;\n"],"names":["ArrayNumberConstraintRenderer","constraintName","value","onConstraintChange","disabled","error","onRemoveConstraint","getConstraintDefinition","useConstraints","constraintDef","jsx","InputErrorWrapper","Label","jsxs","Input","e","cn","Button","X","ArrayBooleanConstraintRenderer","Switch","checked","ArrayMinItemsRenderer","ArrayMaxItemsRenderer","ArrayUniqueItemsRenderer","plugin"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),t=require("react"),b=require("./index.cjs48.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.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 t=require("react/jsx-runtime"),m=require("react"),S=require("./index.cjs13.js"),c=require("./index.cjs37.js"),F=require("./index.cjs11.js"),p=require("./index.cjs18.js"),R=require("./index.cjs8.js"),V=require("./index.cjs38.js"),$=require("./index.cjs39.js"),A=require("./index.cjs25.js"),E=require("react-hook-form"),N=require("./index.cjs40.js"),k=require("./index.cjs41.js"),w=A.AddFormSchema.pick({constraints:!0,property:!0});function B({open:f,onOpenChange:h,onSubmit:g,property:i,propertyKey:y}){const r=E.useForm({resolver:N.zodResolver(w),defaultValues:{property:i}}),l=r.watch("constraints"),{getConstraintDefinitionsForType:C,getRendererForConstraint:j,validateConstraintValue:v}=R.useConstraints(),D=e=>{const{constraints:n}=e,a={...n?.reduce((s,o)=>({...s,[o.name]:o.value}),{})};g([y,a]),r.reset()},q=(e,n)=>{const a=p.a(l),s=a?.[e];if(!s){r.setError(`constraints.${e}`,{message:"The constraint was not found",type:"constraint_not_found"});return}const o=v(s.name,n);if(o.status==="error"){let u=o.message;o.code==="invalid"&&(u=`${u}: ${o.error?.map(b=>b.message).join(", ")}`),r.setError(`constraints.${e}`,{type:o.code,message:u});return}s.value=n,r.setValue("constraints",a),r.clearErrors(`constraints.${e}`)},x=e=>{if(!l)return;const a=p.a(l).filter(s=>s.name!==e);r.setValue("constraints",a)},d=m.useMemo(()=>C(typeof i?.type=="string"?i.type:""),[i.type]);return m.useEffect(()=>{const e=[];for(const n of d)n.name in i&&e.push({name:n.name,value:i[n.name]});r.setValue("constraints",e)},[d]),t.jsx(c.Dialog,{open:f,onOpenChange:h,children:t.jsxs(c.DialogContent,{children:[t.jsxs(c.DialogHeader,{children:[t.jsx(c.DialogTitle,{children:"Edit"}),t.jsx(c.DialogDescription,{children:"Constraints and other properties"})]}),t.jsx(k.Form,{...r,children:t.jsxs("form",{onSubmit:r.handleSubmit(D),className:"space-y-4","data-testid":"edit-property-form",children:[d.length?t.jsxs("div",{className:"space-y-2",children:[t.jsx(F.Label,{children:"Constraints"}),t.jsx(V.default,{addedConstraints:l??[],availableDefinitions:d,onAdd:e=>{r.setValue("constraints",e)}}),t.jsx($.Separator,{}),l?.map((e,n)=>{const a=j(e.name);if(!a)return null;const s=r.formState.errors.constraints?.[n];let o;return s&&(o={code:s?.type??"INVALID",message:s.message??"An error occurred"}),t.jsx(a,{constraintName:e.name,value:e.value,onConstraintChange:u=>{q(n,u)},onRemoveConstraint:()=>{x(e.name)},error:o},e.name)})]}):null,t.jsx(c.DialogFooter,{children:t.jsx(S.Button,{type:"submit",children:"Save"})})]})})]})})}exports.EditPropertyDialog=B;
2
2
  //# sourceMappingURL=index.cjs20.js.map