@llmnative/react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +375 -0
  3. package/bin/cli.js +99 -0
  4. package/dist/index.css +1 -0
  5. package/dist/index.js +838 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/index.mjs +12161 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/types/src/App.d.ts +64 -0
  10. package/dist/types/src/Config.d.ts +65 -0
  11. package/dist/types/src/Global.d.ts +12 -0
  12. package/dist/types/src/Head.d.ts +193 -0
  13. package/dist/types/src/Theme.d.ts +335 -0
  14. package/dist/types/src/auth.d.ts +27 -0
  15. package/dist/types/src/components/Component.d.ts +55 -0
  16. package/dist/types/src/components/FormEnhancer.d.ts +26 -0
  17. package/dist/types/src/components/Template.d.ts +18 -0
  18. package/dist/types/src/components/blocks/Brand.d.ts +14 -0
  19. package/dist/types/src/components/blocks/Breadcrumbs.d.ts +8 -0
  20. package/dist/types/src/components/blocks/Carousel.d.ts +19 -0
  21. package/dist/types/src/components/blocks/Dropdown.d.ts +64 -0
  22. package/dist/types/src/components/blocks/Menu.d.ts +24 -0
  23. package/dist/types/src/components/blocks/Notifications.d.ts +15 -0
  24. package/dist/types/src/components/blocks/Search.d.ts +7 -0
  25. package/dist/types/src/components/index.d.ts +52 -0
  26. package/dist/types/src/components/types.d.ts +11 -0
  27. package/dist/types/src/components/ui/Alert.d.ts +13 -0
  28. package/dist/types/src/components/ui/Badge.d.ts +27 -0
  29. package/dist/types/src/components/ui/Buttons.d.ts +57 -0
  30. package/dist/types/src/components/ui/Card.d.ts +15 -0
  31. package/dist/types/src/components/ui/Code.d.ts +25 -0
  32. package/dist/types/src/components/ui/Gallery.d.ts +55 -0
  33. package/dist/types/src/components/ui/GridSystem.d.ts +21 -0
  34. package/dist/types/src/components/ui/Icon.d.ts +13 -0
  35. package/dist/types/src/components/ui/Image.d.ts +19 -0
  36. package/dist/types/src/components/ui/ImageAvatar.d.ts +16 -0
  37. package/dist/types/src/components/ui/LayoutBuilder.d.ts +19 -0
  38. package/dist/types/src/components/ui/Loader.d.ts +11 -0
  39. package/dist/types/src/components/ui/Modal.d.ts +39 -0
  40. package/dist/types/src/components/ui/Pagination.d.ts +18 -0
  41. package/dist/types/src/components/ui/Percentage.d.ts +19 -0
  42. package/dist/types/src/components/ui/Repeat.d.ts +18 -0
  43. package/dist/types/src/components/ui/Tab.d.ts +20 -0
  44. package/dist/types/src/components/ui/TabDynamic.d.ts +20 -0
  45. package/dist/types/src/components/ui/Table.d.ts +43 -0
  46. package/dist/types/src/components/ui/fields/AssistantAI.d.ts +23 -0
  47. package/dist/types/src/components/ui/fields/Command.d.ts +15 -0
  48. package/dist/types/src/components/ui/fields/Crop.d.ts +27 -0
  49. package/dist/types/src/components/ui/fields/ImageUrl.d.ts +7 -0
  50. package/dist/types/src/components/ui/fields/Input.d.ts +62 -0
  51. package/dist/types/src/components/ui/fields/Prompt.d.ts +31 -0
  52. package/dist/types/src/components/ui/fields/Select.d.ts +38 -0
  53. package/dist/types/src/components/ui/fields/Upload.d.ts +25 -0
  54. package/dist/types/src/components/ui/fields/UploadCSV.d.ts +26 -0
  55. package/dist/types/src/components/ui/useRecordSelection.d.ts +20 -0
  56. package/dist/types/src/components/ui/useStableRecordKey.d.ts +5 -0
  57. package/dist/types/src/components/widgets/Form.d.ts +129 -0
  58. package/dist/types/src/components/widgets/Grid.d.ts +6 -0
  59. package/dist/types/src/components/widgets/ImageEditor.d.ts +14 -0
  60. package/dist/types/src/components/widgets/MarkdownReader.d.ts +14 -0
  61. package/dist/types/src/components/widgets/Prompt.d.ts +31 -0
  62. package/dist/types/src/components/widgets/TabDynamic.d.ts +20 -0
  63. package/dist/types/src/components/widgets/grid-core/GridArray.d.ts +5 -0
  64. package/dist/types/src/components/widgets/grid-core/GridCore.d.ts +5 -0
  65. package/dist/types/src/components/widgets/grid-core/GridDB.d.ts +5 -0
  66. package/dist/types/src/components/widgets/grid-core/GridGalleryView.d.ts +5 -0
  67. package/dist/types/src/components/widgets/grid-core/GridTableView.d.ts +5 -0
  68. package/dist/types/src/components/widgets/grid-core/index.d.ts +7 -0
  69. package/dist/types/src/components/widgets/grid-core/resolveGridPathFromUrl.d.ts +1 -0
  70. package/dist/types/src/components/widgets/grid-core/types.d.ts +227 -0
  71. package/dist/types/src/components/widgets/grid-core/useGridActions.d.ts +49 -0
  72. package/dist/types/src/components/widgets/grid-core/useGridColumns.d.ts +10 -0
  73. package/dist/types/src/components/widgets/grid-core/useGridDBRecords.d.ts +10 -0
  74. package/dist/types/src/components/widgets/grid-core/useGridPreparedRecords.d.ts +10 -0
  75. package/dist/types/src/components/widgets/grid-core/useGridSelection.d.ts +13 -0
  76. package/dist/types/src/components/widgets/grid-core/utils.d.ts +14 -0
  77. package/dist/types/src/conf/Prompt.d.ts +84 -0
  78. package/dist/types/src/constant.d.ts +96 -0
  79. package/dist/types/src/index.d.ts +56 -0
  80. package/dist/types/src/libs/cache.d.ts +9 -0
  81. package/dist/types/src/libs/cn.d.ts +2 -0
  82. package/dist/types/src/libs/converter.d.ts +28 -0
  83. package/dist/types/src/libs/database.d.ts +3 -0
  84. package/dist/types/src/libs/email.d.ts +16 -0
  85. package/dist/types/src/libs/fetch.d.ts +9 -0
  86. package/dist/types/src/libs/imageBuilder.d.ts +112 -0
  87. package/dist/types/src/libs/index.d.ts +14 -0
  88. package/dist/types/src/libs/locale.d.ts +24 -0
  89. package/dist/types/src/libs/log.d.ts +2 -0
  90. package/dist/types/src/libs/order.d.ts +14 -0
  91. package/dist/types/src/libs/path.d.ts +26 -0
  92. package/dist/types/src/libs/sanitizer.d.ts +38 -0
  93. package/dist/types/src/libs/seo.d.ts +8 -0
  94. package/dist/types/src/libs/storage.d.ts +2 -0
  95. package/dist/types/src/libs/utils.d.ts +57 -0
  96. package/dist/types/src/motion.d.ts +38 -0
  97. package/dist/types/src/pages/Blog.d.ts +3 -0
  98. package/dist/types/src/pages/BlogPost.d.ts +16 -0
  99. package/dist/types/src/pages/Helper.d.ts +8 -0
  100. package/dist/types/src/pages/NotFound.d.ts +3 -0
  101. package/dist/types/src/pages/Users.d.ts +3 -0
  102. package/dist/types/src/pages/index.d.ts +3 -0
  103. package/dist/types/src/providers/ProviderConfiguration.d.ts +12 -0
  104. package/dist/types/src/providers/ai/index.d.ts +134 -0
  105. package/dist/types/src/providers/auth/AuthProvider.d.ts +22 -0
  106. package/dist/types/src/providers/auth/AuthProviderContext.d.ts +12 -0
  107. package/dist/types/src/providers/auth/dropbox/DropboxAuthProvider.d.ts +16 -0
  108. package/dist/types/src/providers/auth/google/GoogleAuth.d.ts +44 -0
  109. package/dist/types/src/providers/auth/google/GoogleAuthProvider.d.ts +12 -0
  110. package/dist/types/src/providers/auth/google/apis/auth.d.ts +4 -0
  111. package/dist/types/src/providers/auth/google/auth.d.ts +3 -0
  112. package/dist/types/src/providers/data/DataProvider.d.ts +58 -0
  113. package/dist/types/src/providers/data/DataProviderContext.d.ts +12 -0
  114. package/dist/types/src/providers/data/firebase.d.ts +21 -0
  115. package/dist/types/src/providers/data/mock.d.ts +20 -0
  116. package/dist/types/src/providers/data/supabase.d.ts +19 -0
  117. package/dist/types/src/providers/email/EmailProvider.d.ts +10 -0
  118. package/dist/types/src/providers/email/EmailProviderContext.d.ts +12 -0
  119. package/dist/types/src/providers/email/google/GmailEmailProvider.d.ts +7 -0
  120. package/dist/types/src/providers/email/google/apis/email.d.ts +7 -0
  121. package/dist/types/src/providers/email/google/email.d.ts +13 -0
  122. package/dist/types/src/providers/firebase-init.d.ts +10 -0
  123. package/dist/types/src/providers/icon/IconProvider.d.ts +10 -0
  124. package/dist/types/src/providers/icon/IconProviderContext.d.ts +48 -0
  125. package/dist/types/src/providers/icon/LucideIconProvider.d.ts +5 -0
  126. package/dist/types/src/providers/icon/PhosphorIconProvider.d.ts +10 -0
  127. package/dist/types/src/providers/icon/index.d.ts +6 -0
  128. package/dist/types/src/providers/manifest.d.ts +42 -0
  129. package/dist/types/src/providers/scrape/index.d.ts +10 -0
  130. package/dist/types/src/providers/seo/google/keyword.d.ts +14 -0
  131. package/dist/types/src/providers/seo/google/trend.d.ts +25 -0
  132. package/dist/types/src/providers/storage/StorageProvider.d.ts +7 -0
  133. package/dist/types/src/providers/storage/StorageProviderContext.d.ts +12 -0
  134. package/dist/types/src/providers/storage/dropbox.d.ts +48 -0
  135. package/dist/types/src/providers/storage/firebase.d.ts +13 -0
  136. package/dist/types/src/providers/storage/supabase.d.ts +19 -0
  137. package/dist/types/src/types/Block.d.ts +4 -0
  138. package/dist/types/src/types/FormFields.d.ts +33 -0
  139. package/dist/types/src/types/Layout.d.ts +9 -0
  140. package/dist/types/src/types/Section.d.ts +4 -0
  141. package/dist/types/themes/cyber.d.ts +7 -0
  142. package/dist/types/themes/default.d.ts +7 -0
  143. package/dist/types/themes/flat.d.ts +7 -0
  144. package/package.json +126 -0
  145. package/scripts/cli/create-section.js +65 -0
  146. package/scripts/cli/setup-devtools.js +85 -0
  147. package/scripts/cli/setup-project.js +484 -0
  148. package/themes/cyber.ts +405 -0
  149. package/themes/default.ts +405 -0
  150. package/themes/flat.ts +405 -0
package/dist/index.js ADDED
@@ -0,0 +1,838 @@
1
+ "use strict";var xl=Object.create;var Cr=Object.defineProperty;var Nl=Object.getOwnPropertyDescriptor;var kl=Object.getOwnPropertyNames;var Al=Object.getPrototypeOf,Sl=Object.prototype.hasOwnProperty;var Tl=(e,a,n,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of kl(a))!Sl.call(e,o)&&o!==n&&Cr(e,o,{get:()=>a[o],enumerable:!(r=Nl(a,o))||r.enumerable});return e};var re=(e,a,n)=>(n=e!=null?xl(Al(e)):{},Tl(a||!e||!e.__esModule?Cr(n,"default",{value:e,enumerable:!0}):n,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),ve=require("react-router-dom"),Il=require("clsx"),Dl=require("tailwind-merge"),jt=require("lucide-react"),Pl=require("@phosphor-icons/react"),Ra=require("react-dom"),Rl=require("prismjs"),rt=require("firebase/compat/app");require("firebase/compat/database");const ze=require("firebase/auth");require("firebase/compat/storage");const Ml=require("buffer");require("react-dom/server");const Ol=require("papaparse"),_l=require("tui-image-editor");require("tui-image-editor/dist/tui-image-editor.css");const Ll=require("react-markdown"),Fl=require("remark-gfm"),$l=require("rehype-slug"),jl=require("rehype-autolink-headings"),Bl=require("rehype-sanitize");function Qr(e){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(a,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return a.default=e,Object.freeze(a)}const Gl=Qr(jt),Yl=Qr(Pl);function Ul(e){const a=new Date(typeof e=="number"||/^\d+$/.test(String(e))?Number(e):e);if(isNaN(a.getTime()))return{year:"",shortYear:"",month:"",day:"",hours:"",minutes:"",seconds:"",hour:"",minute:"",second:""};const n=r=>r.toString().padStart(2,"0");return{year:a.getFullYear().toString(),shortYear:a.getFullYear().toString().slice(-2),month:n(a.getMonth()+1),day:n(a.getDate()),hours:n(a.getHours()),minutes:n(a.getMinutes()),seconds:n(a.getSeconds()),hour:a.getHours().toString(),minute:a.getMinutes().toString(),second:a.getSeconds().toString()}}function Nt(e,a){const{year:n,shortYear:r,month:o,day:s,hours:l,minutes:i,seconds:c,hour:m,minute:d,second:p}=Ul(e),u={YYYY:n,YY:r,MM:o,DD:s,hh:l,mm:i,ss:c,h:m,m:d,s:p};return a.replace(/YYYY|YY|MM|DD|hh|mm|ss|h|m|s/g,f=>u[f]||f)}function xr(){const e=new Date;return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e).map(r=>{switch(r.type){case"year":return"YYYY";case"month":return"MM";case"day":return"DD";default:return r.value}}).join("")}function Nr(){const e=new Date;return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e).map(r=>{switch(r.type){case"hour":return"hh";case"minute":return"mm";case"second":return"ss";default:return r.value}}).join("")}const eo=(e,a,n,r)=>{if(!e||!a)return"";const o=a.split(".");let s=e;for(let l=0;l<o.length;l++){const i=o[l];if(s==null)return"";if(i.endsWith("[]")){const c=i.slice(0,-2),m=s==null?void 0:s[c];if(!Array.isArray(m))return"";const d=o.slice(l+1).join(".");if(!d)return n?(n.key&&(n.value[n.key]=m)||(n.value=m),""):m;const p=(n==null?void 0:n.value)??{};for(const u in m){const f=(()=>{const x=eo(m[u],d);return(r==null?void 0:r(x))??x})();n&&(!n.hideEmpty||f!=="")&&(p[u]=n.key?{...(p==null?void 0:p[u])??{},[n.key]:f}:f)}return n?"":p}s=s[i]}return s=(r==null?void 0:r(s))??s,n&&(!n.hideEmpty||s!=="")?(n.key&&(n.value[n.key]=s)||(n.value=s),""):s},we={parse:(e,a,n=void 0,r=void 0)=>{if(typeof a!="string")return a;const o=a.replace(/{([^}:]+)(?::([^}:]+))?(?::([^}:]+))?}/g,(s,l,i,c)=>{const[m,d]=(l||"").indexOf("(")===-1?["",l]:l.split("(",2),[p,u]=(i||"").indexOf(")")===-1?[i,""]:i.split(")",2),f=eo(e,d,n,r);return!(we!=null&&we[p])||!f?f||"":m+we[p](f,c)+u});return Hl(zl(o))},toDate:(e,a=void 0)=>{const n=xr();return a==="ISO"?Nt(e,"YYYY-MM-DD"):Nt(e,a||n)},toTime:(e,a=void 0)=>{const n=Nr();return a==="ISO"?Nt(e,"hh:mm:ss"):Nt(e,a||n)},toDateTime:(e,a=void 0)=>{const n=xr(),r=Nr(),o=`${n} ${r}`;return a==="ISO"?Nt(e,"YYYY-MM-DD hh:mm:ss"):Nt(e,a||o)},toCamel:(e,a="",n=["-","_"," "])=>{const r=e.split("/"),o=r.pop()||"",s=n.map(c=>"\\"+c).join(""),l=new RegExp(`(?:[${s}]+|^)(.)`,"g"),i=o.toLowerCase().replace(l,(c,m)=>a+m.toUpperCase());return[...r,i].join("/")},toUpper:e=>e.toUpperCase(),toLower:e=>e.toLowerCase(),toSlug:e=>yt(e),toNumberFormat:(e,a=navigator.language)=>new Intl.NumberFormat(a).format(Number(e)),splitLast:(e,a,n=void 0)=>{const r=s=>{const l=e.split(s);if(l.length<=1)return null;let i=l.pop()||"";for(;l.length&&(n!=null&&n.test(l[l.length-1]));)i=l.pop()+s+i;return[l.join(s),i]},o=typeof a=="string"?[a]:Array.isArray(a)?a:[];for(const s of o){const l=r(s);if(l)return l}return[e,""]},splitFirst:(e,a,n=void 0)=>{const r=s=>{const l=e.split(s);if(l.length<=1)return null;let i=l.shift()||"";for(;l.length&&(n!=null&&n.test(l[0]));)i+=s+l.shift();return[i,l.join(s)]},o=typeof a=="string"?[a]:Array.isArray(a)?a:[];for(const s of o){const l=r(s);if(l)return l}return[e,""]},padLeft:(e,a,n=" ",r=void 0)=>r?e.replace(r,o=>o.padStart(a,n)):e.padStart(a,n),padRight:(e,a,n=" ",r=void 0)=>r?e.replace(r,o=>o.padEnd(a,n)):e.padEnd(a,n),toQueryString:(e,a="?",n=void 0)=>{const r=Object.keys(e);return(r.length>0?a:"")+r.map(o=>`${encodeURIComponent(o)}=${encodeURIComponent(n===void 0?e[o]:n)}`).join("&")},fillObject:(e,a=null)=>{const n={};for(const r in e)n[r]=a;return n},subStringCount:(e,a)=>a===""?0:e.split(a).length-1,truncate:(e,a=100)=>e.length>a?e.substring(0,a):e};function zl(e){return e.replace(/replace\(([^,]+),([^,]+),([^)]+)\)/gi,(a,n,r,o)=>n.replaceAll(r,o))}function Hl(e){return e.replace(/split\(([^,]+),([^,]+),([^)]+)\)/gi,(a,n,r,o=0)=>n.split(r)[o])}const Kl={mode:"light",radius:.5,colors:{background:"0 0% 100%",foreground:"222.2 84% 4.9%",card:"0 0% 100%",cardForeground:"222.2 84% 4.9%",popover:"0 0% 100%",popoverForeground:"222.2 84% 4.9%",primary:"221.2 83.2% 53.3%",primaryForeground:"210 40% 98%",secondary:"210 40% 96.1%",secondaryForeground:"222.2 47.4% 11.2%",muted:"210 40% 96.1%",mutedForeground:"215.4 16.3% 46.9%",accent:"210 40% 96.1%",accentForeground:"222.2 47.4% 11.2%",destructive:"0 84.2% 60.2%",destructiveForeground:"210 40% 98%",success:"142.1 76.2% 36.3%",successForeground:"0 0% 100%",warning:"32.1 94.6% 43.7%",warningForeground:"0 0% 100%",info:"198.6 88.7% 48.4%",infoForeground:"0 0% 100%",border:"214.3 31.8% 91.4%",input:"214.3 31.8% 91.4%",ring:"221.2 83.2% 53.3%"},dark:{background:"222.2 84% 4.9%",foreground:"210 40% 98%",card:"222.2 84% 4.9%",cardForeground:"210 40% 98%",popover:"222.2 84% 4.9%",popoverForeground:"210 40% 98%",primary:"217.2 91.2% 59.8%",primaryForeground:"222.2 47.4% 11.2%",secondary:"217.2 32.6% 17.5%",secondaryForeground:"210 40% 98%",muted:"217.2 32.6% 17.5%",mutedForeground:"215 20.2% 65.1%",accent:"217.2 32.6% 17.5%",accentForeground:"210 40% 98%",destructive:"0 62.8% 30.6%",destructiveForeground:"210 40% 98%",success:"142.1 70.6% 45.3%",successForeground:"0 0% 100%",warning:"32.1 94.6% 55%",warningForeground:"0 0% 100%",info:"198.6 88.7% 60%",infoForeground:"0 0% 100%",border:"217.2 32.6% 17.5%",input:"217.2 32.6% 17.5%",ring:"224.3 76.3% 48%"}},Wl={none:{from:{},to:{},transition:{duration:0,easing:"linear",properties:["opacity","transform","box-shadow"]},reducedMotion:"always"},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:160,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["opacity"]},reducedMotion:"respect-user"},fadeUp:{from:{opacity:0,transform:"translateY(8px)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:160,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},fadeDown:{from:{opacity:0,transform:"translateY(-8px)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:140,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["opacity","transform","visibility"]},reducedMotion:"respect-user"},slideFromRight:{from:{opacity:0,transform:"translateX(100%)"},to:{opacity:1,transform:"translateX(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromLeft:{from:{opacity:0,transform:"translateX(-100%)"},to:{opacity:1,transform:"translateX(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromTop:{from:{opacity:0,transform:"translateY(-100%)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromBottom:{from:{opacity:0,transform:"translateY(100%)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},press:{from:{},to:{transform:"scale(0.98)"},transition:{duration:100,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["transform","box-shadow"]},reducedMotion:"respect-user"},imageZoom:{from:{transform:"scale(1)"},to:{transform:"scale(1.06)"},transition:{duration:300,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["transform"]},reducedMotion:"respect-user"}},to={Grid:{Card:{wrapClass:"",className:"",headerClass:"flex justify-between",bodyClass:"p-0",footerClass:"",showArrow:!1,showLoader:!1},Table:{wrapClass:"",className:"table-striped",headerClass:"",bodyClass:"",footerClass:"",scrollClass:"fixed-table-container",selectedClass:"table-info"},Gallery:{wrapClass:"",className:"",scrollClass:"",headerClass:"",bodyClass:"",footerClass:"",selectedClass:"bg-primary/20",gutterSize:1,rowCols:4},Modal:{mode:"form",size:"lg",position:"center",wrapClass:"",className:"",headerClass:"",titleClass:"",subTitleClass:"pr-1 text-muted-foreground",bodyClass:"",footerClass:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},i18n:{headerAdd:"Aggiungi",headerEdit:"Modifica",buttonAdd:"Aggiungi"}},Table:{wrapClass:"bootstrap-table",className:"table-striped",headerClass:"",bodyClass:"",footerClass:"",scrollClass:"fixed-table-container",selectedClass:"table-info"},Gallery:{wrapClass:"",className:"",scrollClass:"",headerClass:"",bodyClass:"",footerClass:"",selectedClass:"bg-primary/20",gutterSize:4,rowCols:2},Pagination:{wrapClass:"",className:"",stickyClass:"fixed-bottom mx-5",scrollToTop:!1,scrollBehavior:"auto",maxItems:5,sticky:!0,align:"end"},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,layoutDark:!1,autoPlay:!0},Card:{wrapClass:"",className:"",headerClass:"flex justify-between bg-white/[.15] font-normal",bodyClass:"flex flex-col",footerClass:"",showLoader:!1,showArrow:!1},Loader:{wrapClass:"",className:"",icon:"custom-loader",title:"Loading..",description:""},ActionButton:{className:"btn-primary",badgeClass:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LoadingButton:{className:"btn-primary",badgeClass:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LinkButton:{className:"btn-outline-secondary"},Alert:{className:""},Badge:{className:""},Modal:{size:"lg",position:"center",wrapClass:"",className:"",headerClass:"",titleClass:"",subTitleClass:"pr-1 text-muted-foreground",bodyClass:"",footerClass:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},Dropdown:{wrapClass:"",className:"",buttonClass:"btn btn-outline-primary",badgeClass:"",menuClass:"",menuHeaderClass:"",menuItemClass:"",menuDividerClass:"",headerClass:"",footerClass:"",Menu:{wrapClass:"",className:"list-none p-0 m-0",headerClass:"",itemClass:"",linkClass:"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent",iconClass:"text-muted-foreground",textClass:"",badgeClass:"",arrowClass:"",submenuClass:""},motion:{open:"fadeDown",close:"fadeDown",press:"press"}},Notifications:{wrapClass:"menu-item",Dropdown:{className:"",buttonClass:"btn btn-link",menuClass:"mt-1 fs-11px w-300px pt-1"}},Select:{wrapClass:"",className:""},Autocomplete:{wrapClass:"",className:""},Form:{wrapClass:"",buttonSaveClass:"btn-outline-primary",buttonDeleteClass:"btn-outline-danger",buttonBackClass:"btn-link",Card:{headerClass:"",bodyClass:"",footerClass:"text-right"},i18n:{headerAdd:"Aggiungi",headerEdit:"Modifica",headerNewRecord:"Nuovo Record",buttonSave:"Salva",buttonDelete:"Elimina",buttonBack:"Indietro",noticeRequiredFields:"Per favore, compila tutti i campi obbligatori"}},Menu:{wrapClass:"flex-1 overflow-auto p-4",className:"navbar-nav flex-col mb-auto",headerClass:"",itemClass:"nav-item",linkClass:"nav-link",iconClass:"mr-1",textClass:"flex-grow-1",badgeClass:"ml-1",arrowClass:"",submenuClass:"nav flex-col ml-4"},Brand:{wrapClass:"",className:"brand",logoClass:"navbar-brand",labelClass:"navbar-text"},SignIn:{className:"flex items-center",avatarClass:"avatar rounded-full mx-2"},Image:{wrapClass:"",className:"",motion:{enter:"fade",hover:!1}},ImageAvatar:{wrapClass:"",className:"",motion:{enter:"fade",hover:!1}},Percentage:{wrapClass:"",className:""},Tab:{wrapClass:"",className:"",motion:{enter:"fadeUp"}},Code:{wrapClass:"",className:""},Prompt:{wrapClass:"",className:""}},ao={preset:Kl,motion:Wl,components:to},ql={mode:"light",radius:.125,colors:{background:"0 0% 98%",foreground:"215 25% 16%",card:"0 0% 100%",cardForeground:"215 25% 16%",popover:"0 0% 100%",popoverForeground:"215 25% 16%",primary:"215 25% 27%",primaryForeground:"210 40% 98%",secondary:"215 15% 93%",secondaryForeground:"215 25% 27%",muted:"215 15% 93%",mutedForeground:"215 15% 50%",accent:"215 15% 90%",accentForeground:"215 25% 27%",destructive:"0 72% 51%",destructiveForeground:"0 0% 100%",success:"142.1 76.2% 36.3%",successForeground:"0 0% 100%",warning:"32.1 94.6% 43.7%",warningForeground:"0 0% 100%",info:"198.6 88.7% 48.4%",infoForeground:"0 0% 100%",border:"215 15% 85%",input:"215 15% 85%",ring:"215 25% 27%"},dark:{background:"215 20% 12%",foreground:"215 10% 85%",card:"215 20% 15%",cardForeground:"215 10% 85%",popover:"215 20% 15%",popoverForeground:"215 10% 85%",primary:"215 35% 55%",primaryForeground:"0 0% 100%",secondary:"215 20% 20%",secondaryForeground:"215 10% 75%",muted:"215 20% 20%",mutedForeground:"215 10% 55%",accent:"215 20% 22%",accentForeground:"215 10% 85%",destructive:"0 62% 40%",destructiveForeground:"0 0% 100%",success:"142.1 70.6% 45.3%",successForeground:"0 0% 100%",warning:"32.1 94.6% 55%",warningForeground:"0 0% 100%",info:"198.6 88.7% 60%",infoForeground:"0 0% 100%",border:"215 20% 22%",input:"215 20% 22%",ring:"215 35% 55%"}},Vl={none:{from:{},to:{},transition:{duration:0,easing:"linear",properties:["opacity","transform","box-shadow"]},reducedMotion:"always"},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:140,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["opacity"]},reducedMotion:"respect-user"},fadeUp:{from:{opacity:0,transform:"translateY(4px)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:140,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},fadeDown:{from:{opacity:0,transform:"translateY(-4px)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:120,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["opacity","transform","visibility"]},reducedMotion:"respect-user"},slideFromRight:{from:{opacity:0,transform:"translateX(100%)"},to:{opacity:1,transform:"translateX(0)"},transition:{duration:180,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromLeft:{from:{opacity:0,transform:"translateX(-100%)"},to:{opacity:1,transform:"translateX(0)"},transition:{duration:180,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromTop:{from:{opacity:0,transform:"translateY(-100%)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:180,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromBottom:{from:{opacity:0,transform:"translateY(100%)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:180,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},press:{from:{},to:{transform:"scale(0.99)"},transition:{duration:90,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["transform","box-shadow"]},reducedMotion:"respect-user"},imageZoom:{from:{transform:"scale(1)"},to:{transform:"scale(1.06)"},transition:{duration:300,easing:"cubic-bezier(0.2, 0, 0, 1)",properties:["transform"]},reducedMotion:"respect-user"}},Jl={Grid:{Card:{wrapClass:"",className:"",headerClass:"flex justify-between",bodyClass:"p-0",footerClass:"",showArrow:!1,showLoader:!1},Table:{wrapClass:"",className:"table-striped",headerClass:"",bodyClass:"",footerClass:"",scrollClass:"fixed-table-container",selectedClass:"table-info"},Gallery:{wrapClass:"",className:"",scrollClass:"",headerClass:"",bodyClass:"",footerClass:"",selectedClass:"bg-primary/20",gutterSize:1,rowCols:4},Modal:{mode:"form",size:"lg",position:"center",wrapClass:"",className:"",headerClass:"",titleClass:"",subTitleClass:"pr-1 text-muted-foreground",bodyClass:"",footerClass:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},i18n:{headerAdd:"Aggiungi",headerEdit:"Modifica",buttonAdd:"Aggiungi"}},Table:{wrapClass:"bootstrap-table",className:"table-striped",headerClass:"",bodyClass:"",footerClass:"",scrollClass:"fixed-table-container",selectedClass:"table-info"},Gallery:{wrapClass:"",className:"",scrollClass:"",headerClass:"",bodyClass:"",footerClass:"",selectedClass:"bg-primary/20",gutterSize:4,rowCols:2},Pagination:{wrapClass:"",className:"",stickyClass:"fixed-bottom mx-5",scrollToTop:!1,scrollBehavior:"auto",maxItems:5,sticky:!0,align:"end"},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,layoutDark:!1,autoPlay:!0},Card:{wrapClass:"",className:"",headerClass:"flex justify-between bg-white/[.15] font-normal",bodyClass:"flex flex-col",footerClass:"",showLoader:!1,showArrow:!1},Loader:{wrapClass:"",className:"",icon:"custom-loader",title:"Loading..",description:""},ActionButton:{className:"btn-primary",badgeClass:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LoadingButton:{className:"btn-primary",badgeClass:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LinkButton:{className:"btn-outline-secondary"},Alert:{className:""},Badge:{className:""},Modal:{size:"lg",position:"center",wrapClass:"",className:"",headerClass:"",titleClass:"",subTitleClass:"pr-1 text-muted-foreground",bodyClass:"",footerClass:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},Dropdown:{wrapClass:"",className:"",buttonClass:"btn btn-outline-primary",badgeClass:"",menuClass:"",menuHeaderClass:"",menuItemClass:"",menuDividerClass:"",headerClass:"",footerClass:"",Menu:{wrapClass:"",className:"list-none p-0 m-0",headerClass:"",itemClass:"",linkClass:"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent",iconClass:"text-muted-foreground",textClass:"",badgeClass:"",arrowClass:"",submenuClass:""},motion:{open:"fadeDown",close:"fadeDown",press:"press"}},Notifications:{wrapClass:"menu-item",Dropdown:{className:"",buttonClass:"btn btn-link",menuClass:"mt-1 fs-11px w-300px pt-1"}},Select:{wrapClass:"",className:""},Autocomplete:{wrapClass:"",className:""},Form:{wrapClass:"",buttonSaveClass:"btn-outline-primary",buttonDeleteClass:"btn-outline-danger",buttonBackClass:"btn-link",Card:{headerClass:"",bodyClass:"",footerClass:"text-right"},i18n:{headerAdd:"Aggiungi",headerEdit:"Modifica",headerNewRecord:"Nuovo Record",buttonSave:"Salva",buttonDelete:"Elimina",buttonBack:"Indietro",noticeRequiredFields:"Per favore, compila tutti i campi obbligatori"}},Menu:{wrapClass:"flex-1 overflow-auto p-4",className:"navbar-nav flex-col mb-auto",headerClass:"",itemClass:"nav-item",linkClass:"nav-link",iconClass:"mr-1",textClass:"flex-grow-1",badgeClass:"ml-1",arrowClass:"",submenuClass:"nav flex-col ml-4"},Brand:{wrapClass:"",className:"brand",logoClass:"navbar-brand",labelClass:"navbar-text"},SignIn:{className:"flex items-center",avatarClass:"avatar rounded-full mx-2"},Image:{wrapClass:"",className:"",motion:{enter:"fade",hover:!1}},ImageAvatar:{wrapClass:"",className:"",motion:{enter:"fade",hover:!1}},Percentage:{wrapClass:"",className:""},Tab:{wrapClass:"",className:"",motion:{enter:"fadeUp"}},Code:{wrapClass:"",className:""},Prompt:{wrapClass:"",className:""}},Xl={preset:ql,motion:Vl,components:Jl},Zl={mode:"dark",radius:0,colors:{background:"0 0% 98%",foreground:"215 25% 16%",card:"0 0% 100%",cardForeground:"215 25% 16%",popover:"0 0% 100%",popoverForeground:"215 25% 16%",primary:"160 84% 39%",primaryForeground:"0 0% 0%",secondary:"160 20% 92%",secondaryForeground:"160 25% 20%",muted:"160 15% 93%",mutedForeground:"215 15% 50%",accent:"160 30% 90%",accentForeground:"160 84% 25%",destructive:"0 72% 51%",destructiveForeground:"0 0% 100%",success:"160 84% 39%",successForeground:"0 0% 0%",warning:"45 96% 48%",warningForeground:"0 0% 0%",info:"199 89% 48%",infoForeground:"0 0% 0%",border:"160 20% 85%",input:"160 20% 85%",ring:"160 84% 39%"},dark:{background:"220 20% 7%",foreground:"160 10% 90%",card:"220 20% 10%",cardForeground:"160 10% 90%",popover:"220 20% 10%",popoverForeground:"160 10% 90%",primary:"160 84% 39%",primaryForeground:"0 0% 0%",secondary:"220 20% 15%",secondaryForeground:"160 10% 75%",muted:"220 20% 14%",mutedForeground:"220 10% 55%",accent:"160 60% 15%",accentForeground:"160 84% 70%",destructive:"0 72% 51%",destructiveForeground:"0 0% 100%",success:"160 84% 45%",successForeground:"0 0% 0%",warning:"45 96% 55%",warningForeground:"0 0% 0%",info:"199 89% 55%",infoForeground:"0 0% 0%",border:"220 20% 18%",input:"220 20% 18%",ring:"160 84% 39%"}},Ql={none:{from:{},to:{},transition:{duration:0,easing:"linear",properties:["opacity","transform","box-shadow"]},reducedMotion:"always"},fade:{from:{opacity:0},to:{opacity:1},transition:{duration:180,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity"]},reducedMotion:"respect-user"},fadeUp:{from:{opacity:0,transform:"translateY(10px)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:200,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},fadeDown:{from:{opacity:0,transform:"translateY(-10px)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:180,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform","visibility"]},reducedMotion:"respect-user"},slideFromRight:{from:{opacity:0,transform:"translateX(100%)"},to:{opacity:1,transform:"translateX(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromLeft:{from:{opacity:0,transform:"translateX(-100%)"},to:{opacity:1,transform:"translateX(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromTop:{from:{opacity:0,transform:"translateY(-100%)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},slideFromBottom:{from:{opacity:0,transform:"translateY(100%)"},to:{opacity:1,transform:"translateY(0)"},transition:{duration:220,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["opacity","transform"]},reducedMotion:"respect-user"},press:{from:{},to:{transform:"scale(0.97)"},transition:{duration:110,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["transform","box-shadow"]},reducedMotion:"respect-user"},imageZoom:{from:{transform:"scale(1)"},to:{transform:"scale(1.06)"},transition:{duration:280,easing:"cubic-bezier(0.16, 1, 0.3, 1)",properties:["transform"]},reducedMotion:"respect-user"}},ei={Grid:{Card:{wrapClass:"",className:"",headerClass:"flex justify-between",bodyClass:"p-0",footerClass:"",showArrow:!1,showLoader:!1},Table:{wrapClass:"",className:"table-striped",headerClass:"",bodyClass:"",footerClass:"",scrollClass:"fixed-table-container",selectedClass:"table-info"},Gallery:{wrapClass:"",className:"",scrollClass:"",headerClass:"",bodyClass:"",footerClass:"",selectedClass:"bg-primary/20",gutterSize:1,rowCols:4},Modal:{mode:"form",size:"lg",position:"center",wrapClass:"",className:"",headerClass:"",titleClass:"",subTitleClass:"pr-1 text-muted-foreground",bodyClass:"",footerClass:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},i18n:{headerAdd:"Aggiungi",headerEdit:"Modifica",buttonAdd:"Aggiungi"}},Table:{wrapClass:"bootstrap-table",className:"table-striped",headerClass:"",bodyClass:"",footerClass:"",scrollClass:"fixed-table-container",selectedClass:"table-info"},Gallery:{wrapClass:"",className:"",scrollClass:"",headerClass:"",bodyClass:"",footerClass:"",selectedClass:"bg-primary/20",gutterSize:4,rowCols:2},Pagination:{wrapClass:"",className:"",stickyClass:"fixed-bottom mx-5",scrollToTop:!1,scrollBehavior:"auto",maxItems:5,sticky:!0,align:"end"},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,layoutDark:!1,autoPlay:!0},Card:{wrapClass:"",className:"",headerClass:"flex justify-between bg-white/[.15] font-normal",bodyClass:"flex flex-col",footerClass:"",showLoader:!1,showArrow:!1},Loader:{wrapClass:"",className:"",icon:"custom-loader",title:"Loading..",description:""},ActionButton:{className:"btn-primary",badgeClass:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LoadingButton:{className:"btn-primary",badgeClass:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LinkButton:{className:"btn-outline-secondary"},Alert:{className:""},Badge:{className:""},Modal:{size:"lg",position:"center",wrapClass:"",className:"",headerClass:"",titleClass:"",subTitleClass:"pr-1 text-muted-foreground",bodyClass:"",footerClass:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},Dropdown:{wrapClass:"",className:"",buttonClass:"btn btn-outline-primary",badgeClass:"",menuClass:"",menuHeaderClass:"",menuItemClass:"",menuDividerClass:"",headerClass:"",footerClass:"",Menu:{wrapClass:"",className:"list-none p-0 m-0",headerClass:"",itemClass:"",linkClass:"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent",iconClass:"text-muted-foreground",textClass:"",badgeClass:"",arrowClass:"",submenuClass:""},motion:{open:"fadeDown",close:"fadeDown",press:"press"}},Notifications:{wrapClass:"menu-item",Dropdown:{className:"",buttonClass:"btn btn-link",menuClass:"mt-1 fs-11px w-300px pt-1"}},Select:{wrapClass:"",className:""},Autocomplete:{wrapClass:"",className:""},Form:{wrapClass:"",buttonSaveClass:"btn-outline-primary",buttonDeleteClass:"btn-outline-danger",buttonBackClass:"btn-link",Card:{headerClass:"",bodyClass:"",footerClass:"text-right"},i18n:{headerAdd:"Aggiungi",headerEdit:"Modifica",headerNewRecord:"Nuovo Record",buttonSave:"Salva",buttonDelete:"Elimina",buttonBack:"Indietro",noticeRequiredFields:"Per favore, compila tutti i campi obbligatori"}},Menu:{wrapClass:"flex-1 overflow-auto p-4",className:"navbar-nav flex-col mb-auto",headerClass:"",itemClass:"nav-item",linkClass:"nav-link",iconClass:"mr-1",textClass:"flex-grow-1",badgeClass:"ml-1",arrowClass:"",submenuClass:"nav flex-col ml-4"},Brand:{wrapClass:"",className:"brand",logoClass:"navbar-brand",labelClass:"navbar-text"},SignIn:{className:"flex items-center",avatarClass:"avatar rounded-full mx-2"},Image:{wrapClass:"",className:"",motion:{enter:"fade",hover:"imageZoom"}},ImageAvatar:{wrapClass:"",className:"",motion:{enter:"fade",hover:"imageZoom"}},Percentage:{wrapClass:"",className:""},Tab:{wrapClass:"",className:"",motion:{enter:"fadeUp"}},Code:{wrapClass:"",className:""},Prompt:{wrapClass:"",className:""}},ti={preset:Zl,motion:Ql,components:ei},ai=["default","flat","cyber"],no=t.createContext(to),ro=t.createContext(ao.motion),oo=t.createContext(null),Qe={default:ao,flat:Xl,cyber:ti},In=(e,a)=>{for(const n in a)a.hasOwnProperty(n)&&(typeof a[n]=="object"&&a[n]!==null?(e[n]||(e[n]={}),In(e[n],a[n])):a[n]!==null&&(e[n]=a[n]));return e},kr=e=>In({},e);function ni(e){return typeof e=="object"&&e!==null&&"preset"in e&&"motion"in e&&"components"in e}function ri(e){return typeof e=="string"||typeof e>"u"?{theme:e??"default",themes:{...Qe}}:ni(e)?{theme:"custom",themes:{...Qe,custom:e}}:{defaultMode:e.defaultMode,theme:e.theme??"default",themes:{...Qe,...e.themes??{}},themeOverride:e.themeOverride}}function cn(e){return e!=="system"?e:typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ar(e){return"--rf-"+e.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}function oi({mode:e,radius:a,fontSans:n,fontMono:r,colors:o,dark:s,variables:l}){if(typeof document>"u")return;document.documentElement.classList.toggle("dark",cn(e)==="dark");const i={},c={};for(const[p,u]of Object.entries(o??{}))u!==void 0&&(i[Ar(p)]=u);for(const[p,u]of Object.entries(s??{}))u!==void 0&&(c[Ar(p)]=u);i["--radius"]=`${a}rem`,i["--radius-sm"]=`${(a*.5).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-md"]=`${(a*.75).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-lg"]=`${a}rem`,i["--radius-xl"]=`${(a*1.5).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-2xl"]=`${(a*2).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-3xl"]=`${(a*3).toFixed(4).replace(/\.?0+$/,"")}rem`,n&&(i["--font-sans"]=n),r&&(i["--font-mono"]=r);for(const[p,u]of Object.entries(l??{}))i[p.startsWith("--")?p:`--${p}`]=u;let m=document.getElementById("rf-theme-vars");m||(m=document.createElement("style"),m.id="rf-theme-vars",document.head.appendChild(m));const d=p=>Object.entries(p).map(([u,f])=>` ${u}: ${f};`).join(`
2
+ `);m.textContent=[Object.keys(i).length?`:root {
3
+ ${d(i)}
4
+ }`:"",Object.keys(c).length?`.dark {
5
+ ${d(c)}
6
+ }`:""].filter(Boolean).join(`
7
+ `)}const Ce="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==",Bt="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%23eef2f7'/%3E%3Ccircle cx='50' cy='38' r='16' fill='%2364758b'/%3E%3Cpath d='M22 84c3.8-20 19-31 28-31s24.2 11 28 31c.5 2.8-1.7 5-4.5 5h-47c-2.8 0-5-2.2-4.5-5z' fill='%2364758b'/%3E%3C/svg%3E",mn="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZD0iTTUwIDE1IEw4NSA1MCBMNTAgODUgTDE1IDUwIFoiIGZpbGw9IiNjY2MiIG9wYWNpdHk9IjAuMiIvPjxwYXRoIGQ9Ik01MCAzMCBMNzAgNTAgTDUwIDcwIEwzMCA1MCBaIiBmaWxsPSIjY2NjIi8+PC9zdmc+",si=({children:e,config:a=void 0})=>{const n=t.useMemo(()=>ri(a),[a]),r=n.themes[n.theme]??n.themes.default,o=r.preset,[s,l]=t.useState(n.themes),[i,c]=t.useState(n.theme),[m,d]=t.useState(n.defaultMode??o.mode??"light"),[p,u]=t.useState(o.radius??Qe.default.preset.radius),[f,x]=t.useState(o.fontSans??""),[y,E]=t.useState(o.fontMono??""),[h,g]=t.useState(o.colors),[S,v]=t.useState(o.dark),[C,b]=t.useState(()=>kr(r.components)),[T,P]=t.useState(r.motion);t.useEffect(()=>{const k=n.themes[n.theme]??n.themes.default,w=k.preset;l(n.themes),c(n.theme),d(n.defaultMode??w.mode??"light"),u(w.radius??Qe.default.preset.radius),x(w.fontSans??""),E(w.fontMono??""),g(w.colors),v(w.dark),P(k.motion)},[n]),t.useEffect(()=>{const k=s[i]??s.default,w=kr(k.components);In(w,n.themeOverride??{}),b(w),P(k.motion)},[i,n.themeOverride,s]),t.useEffect(()=>{const k=(s[i]??s.default).preset;oi({mode:m,radius:p,fontSans:f,fontMono:y,colors:h,dark:S,variables:k.variables})},[m,s,i,p,f,y,h,S]);const M=t.useMemo(()=>({mode:m,resolvedMode:cn(m),theme:i,primary:(h==null?void 0:h.primary)??Qe.default.preset.colors.primary,primaryForeground:(h==null?void 0:h.primaryForeground)??Qe.default.preset.colors.primaryForeground,radius:p,fontSans:f,fontMono:y,colors:h,dark:S,themes:s,setMode:d,toggleMode(){d(k=>cn(k)==="dark"?"light":"dark")},applyTheme(k){s[k]||(process.env.NODE_ENV!=="production"&&console.warn(`[ThemeProvider] Unknown theme "${k}", falling back to "default".`),k="default");const N=(s[k]??s.default).preset;c(k),d(N.mode??"light"),u(N.radius??Qe.default.preset.radius),x(N.fontSans??""),E(N.fontMono??""),g(N.colors),v(N.dark)},setPrimary(k){const w=k.split(" ")[0];g(N=>({...N,primary:k,ring:k,secondary:`${w} 40% 96%`,secondaryForeground:`${w} 47% 11%`,accent:`${w} 40% 94%`,accentForeground:`${w} 47% 11%`})),v(N=>({...N,primary:k,ring:k,secondary:`${w} 30% 18%`,secondaryForeground:`${w} 10% 96%`,accent:`${w} 30% 18%`,accentForeground:`${w} 10% 96%`}))},setRadius:u,setFont(k,w){x(k),w!==void 0&&E(w)},setColors(k){g(k)},setTokens(k){g(w=>({...w,...k})),v(w=>({...w,...k}))}}),[m,i,p,f,y,h,S,s]);return t.createElement(oo.Provider,{value:M},t.createElement(ro.Provider,{value:T},t.createElement(no.Provider,{value:C},e)))},J=e=>t.useContext(no),li=()=>t.useContext(ro),ii=()=>{const e=t.useContext(oo);if(!e)throw new Error("useThemeController must be used inside <App> or <ThemeProvider>.");return e},z=({children:e=void 0,className:a=void 0,style:n=void 0,onClick:r=void 0})=>a?t.createElement("div",{className:a,style:n,onClick:r},e):t.createElement(t.Fragment,null,e),Sa=({children:e=void 0,className:a=void 0,style:n=void 0})=>{const r=a?`container ${a}`:"container";return t.createElement("div",{className:r,style:n},e)},$e=({children:e=void 0,className:a=void 0,style:n=void 0})=>{const r=a?`row ${a}`:"row";return t.createElement("div",{className:r,style:n},e)},F=({children:e=void 0,className:a=void 0,style:n=void 0,xxl:r=void 0,xl:o=void 0,lg:s=void 0,md:l=void 0,sm:i=void 0,xs:c=void 0})=>{const m=[["",c],["-sm",i],["-md",l],["-lg",s],["-xl",o],["-xxl",r]].filter(([,u])=>u!==void 0),p=(m.reduce((u,[f,x],y)=>((y===0||x!==m[y-1][1])&&u.push(`col${f}-${x}`),u),[]).join(" ")||"col")+(a?` ${a}`:"");return t.createElement("div",{className:p,style:n},e)};function R(...e){return Dl.twMerge(Il.clsx(e))}function Dn(e){return typeof e=="object"&&e!==null&&!t.isValidElement(e)&&"content"in e}function so(e,a="info",n){if(!(e==null||e===!1))return Dn(e)?{...e,type:e.type||a,className:R(e.className,n)}:{content:e,type:a,className:n}}const ca=({badge:e,content:a=void 0,type:n=void 0,defaultType:r="info",className:o=void 0,descriptorOnly:s=!1,children:l=void 0})=>{const i=a!==void 0?{content:a,type:n,className:o}:e;if(s&&a===void 0&&!Dn(e))return e??null;const c=so(i,n||r,o);return c?l!==void 0?t.createElement(je,{type:c.type,post:c.content,className:c.className},l):t.createElement(je,{type:c.type,className:c.className},c.content):l??null},je=({children:e,type:a="info",pre:n=void 0,post:r=void 0,wrapClass:o=void 0,className:s=void 0})=>{const l=J();if(t.isValidElement(e)){const i=R("badge badge-overlay badge-"+a,"absolute top-0 z-10",s||l.Badge.className);return t.createElement("span",{className:R("relative inline-flex",o)},e,n!==void 0&&t.createElement("span",{className:R(i,"left-0 -translate-x-1/2 -translate-y-1/2")},n),r!==void 0&&t.createElement("span",{className:R(i,"right-0 translate-x-1/2 -translate-y-1/2")},r),n===void 0&&r===void 0&&t.createElement("span",{className:R(i,"right-0 translate-x-1/2 -translate-y-1/2 !p-0 !min-w-0 w-2.5 h-2.5 rounded-full")}))}return t.createElement(z,{className:o},n,t.createElement("span",{className:R("badge badge-"+a,s||l.Badge.className)},e),r)},ci={add:"Plus","arrow-arc-left":"Undo2","arrow-arc-right":"Redo2","arrow-line-down":"FlipVertical","arrow-line-right":"FlipHorizontal","camera-rotate":"RotateCw","caret-down":"ChevronDown","caret-right":"ChevronRight",close:"X",dashboard:"LayoutDashboard",edit:"Pencil",file:"FileText","floppy-disk":"Save",fullscreen:"Maximize","fullscreen-exit":"Minimize",github:"GitBranch","house-door":"Home","link-break":"Unlink","magnifying-glass-minus":"ZoomOut","magnifying-glass-plus":"ZoomIn",rectangle:"Square","text-t":"Type",trash:"Trash2",warning:"TriangleAlert"};function mi(e){return e.split("-").map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join("")}class Pn{constructor(){this.id="lucide"}resolve(a){const n=ci[a]??mi(a);return Gl[n]??null}}const di={add:"Plus","arrow-arc-left":"ArrowArcLeft","arrow-arc-right":"ArrowArcRight","arrow-line-down":"ArrowLineDown","arrow-line-right":"ArrowLineRight","camera-rotate":"CameraRotate","caret-down":"CaretDown","caret-right":"CaretRight",close:"X",dashboard:"SquaresFour",edit:"PencilSimple","external-link":"ArrowSquareOut",file:"FileText","floppy-disk":"FloppyDisk",fullscreen:"CornersOut","fullscreen-exit":"CornersIn",github:"GithubLogo","house-door":"House","link-break":"LinkBreak","magnifying-glass-minus":"MagnifyingGlassMinus","magnifying-glass-plus":"MagnifyingGlassPlus",menu:"List",rectangle:"Rectangle",search:"MagnifyingGlass",settings:"Gear","text-t":"TextT",trash:"Trash",warning:"Warning",layers:"Stack"};function ui(e){return e.split("-").map(a=>a.charAt(0).toUpperCase()+a.slice(1)).join("")}class lo{constructor(a="regular"){this.weight=a,this.id="phosphor",this._cache=new Map}resolve(a){const n=this._cache.get(a);if(n)return n;const r=di[a]??ui(a),o=Yl[r];if(!o)return null;const s=this.weight==="regular"?o:l=>t.createElement(o,{weight:this.weight,...l});return this._cache.set(a,s),s}}const io=t.createContext(null),co=t.createContext(null),Lt={lucide:new Pn,phosphor:new lo},Gt="lucide";function pi(e){return!!e&&typeof e=="object"&&typeof e.id=="string"&&typeof e.resolve=="function"}function fi(e){if(!e)return{defaultId:Gt,providers:{...Lt},aliases:{}};if(typeof e=="string")return{defaultId:e,providers:{...Lt},aliases:{}};if(pi(e))return{defaultId:e.id,providers:{...Lt,[e.id]:e},aliases:{}};if("default"in e&&"providers"in e){const a=e;return{defaultId:a.default,providers:{...Lt,...a.providers},aliases:a.aliases??{}}}return{defaultId:e.provider.id,providers:{...Lt,[e.provider.id]:e.provider},aliases:e.aliases??{}}}function gi(e,a){return Object.keys(a).length===0?e:{id:e.id,resolve(n){return e.resolve(a[n]??n)}}}function mo({provider:e,config:a,children:n}){const r=t.useMemo(()=>fi(a??e),[a,e]),[o,s]=t.useState(r.providers),[l,i]=t.useState(r.defaultId);t.useEffect(()=>{s(r.providers),i(r.defaultId)},[r]);const c=o[l]??o[Gt],m=t.useMemo(()=>c?gi(c,r.aliases):null,[c,r.aliases]),d=t.useMemo(()=>({providerId:(c==null?void 0:c.id)??Gt,providers:o,aliases:r.aliases,setProvider(p){if(o[p]){i(p);return}process.env.NODE_ENV!=="production"&&console.warn(`[IconProvider] Unknown provider "${p}", falling back to "${Gt}".`),i(Gt)},registerProvider(p,u){s(f=>({...f,[p]:u}))},resolve(p){return(m==null?void 0:m.resolve(p))??null}}),[c,o,r.aliases,m]);return t.createElement(co.Provider,{value:d},t.createElement(io.Provider,{value:m},n))}function uo(){return t.useContext(io)}function hi(){const e=t.useContext(co);if(!e)throw new Error("useIconController must be used inside <App> or <IconProvider>.");return e}const bi=new Pn,Q=({name:e,size:a=16,className:n,style:r,provider:o,label:s})=>{const l=uo(),i=o??l??bi;if(!i||typeof e!="string"||!e.trim())return null;const c=i.resolve(e);return c?t.createElement(c,{size:a,className:n,style:r,"aria-label":s,"aria-hidden":s?void 0:!0}):null},Rn=({context:e,Type:a="ul",badges:n={},pre:r=void 0,post:o=void 0,wrapClass:s=void 0,className:l=void 0,headerClass:i=void 0,itemClass:c=void 0,linkClass:m=void 0,iconClass:d=void 0,textClass:p=void 0,badgeClass:u=void 0,arrowClass:f=void 0,submenuClass:x=void 0})=>{const y=fl(e),E=J(),h=({item:g,index:S})=>{var M;const[v,C]=t.useState(g.active);t.useEffect(()=>{C(g.active)},[g]);const b=((M=g.children)==null?void 0:M.length)>0,T=g.title.toLowerCase(),P=()=>t.createElement("span",{className:d??E.Menu.iconClass},t.createElement(Q,{name:g.icon}));return g.path?t.createElement("li",{className:`${g.active?"active ":""}${c??E.Menu.itemClass}`},t.createElement(ve.Link,{to:g.path.split("*")[0],className:m??E.Menu.linkClass,...b&&{},onClick:k=>{b&&!Ln(k,"a")&&(k.preventDefault(),C(w=>!w))}},g.icon&&t.createElement(P,null),t.createElement("span",{className:p??E.Menu.textClass},g.title),n[T]&&t.createElement(je,{type:n[T].type,className:u??E.Menu.badgeClass},n[T].children),b&&t.createElement(Q,{name:v?"caret-down":"caret-right"})),b&&t.createElement("div",{className:`collapse ${v?"show":""}`},t.createElement(a,{className:x??E.Menu.submenuClass},g.children.map((k,w)=>t.createElement(h,{key:w,item:k,index:w}))))):t.createElement("li",{key:S,className:i??E.Menu.headerClass},g.icon&&t.createElement(P,null),g.title&&(/^-+$/.test(g.title)?t.createElement("hr",{className:"m-0"}):t.createElement("span",null,g.title)))};return t.createElement(z,{className:s??E.Menu.wrapClass},r,t.createElement(a,{className:l??E.Menu.className},y.map((g,S)=>t.createElement(h,{key:S,item:g,index:S}))),o)},Sr={from:{},to:{},transition:{duration:0,easing:"linear",delay:0,properties:["opacity","transform","box-shadow"]},reducedMotion:"always"},Tr={transition:{duration:160,easing:"cubic-bezier(0.2, 0, 0, 1)",delay:0,properties:["opacity","transform","box-shadow"]},reducedMotion:"respect-user"},yi=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,Ir=(e,a,n="fade")=>{const r=e===void 0?n:e;return r===!1?Sr:typeof r=="string"?a[r]??a.none??Sr:r},po=e=>e.properties.map(a=>`${a} ${e.duration}ms ${e.easing} ${e.delay}ms`).join(", "),fo=(e,a={},n)=>{const r=Ir(n,a,"fade"),o=Ir(e,a,n),s={...Tr.transition,...r.transition,...o.transition},l=o.reducedMotion??r.reducedMotion??Tr.reducedMotion,i=l==="always"||l==="respect-user"&&yi(),c={duration:i?0:s.duration,easing:i?"linear":s.easing,delay:i?0:s.delay,properties:s.properties};return{from:i?{}:{...r.from??{},...o.from??{}},to:i?{}:{...r.to??{},...o.to??{}},transition:c,reducedMotion:l,transitionValue:po(c)}},Ma=(e,a)=>{const n=li();return t.useMemo(()=>fo(e,n,a),[e,n,a])},bt=(e,a,n,r)=>{const o=Ma(a,n);return t.useMemo(()=>({...r,...e?o.to:o.from,transition:[r==null?void 0:r.transition,o.transitionValue].filter(Boolean).join(", ")}),[e,r,o])},Oa=(e=!1,a,n,r="press")=>{const o=Ma(n,r),[s,l]=t.useState(!1);return{style:t.useMemo(()=>({...a,...s&&!e?o.to:o.from,transition:[a==null?void 0:a.transition,o.transitionValue].filter(Boolean).join(", ")}),[a,e,o,s]),pressHandlers:{onMouseDown:()=>!e&&l(!0),onMouseUp:()=>l(!1),onMouseLeave:()=>l(!1),onBlur:()=>l(!1)}}},_a=(e,a,n="fadeUp")=>{const[r,o]=t.useState(!1);return t.useEffect(()=>{o(!1);const s=window.requestAnimationFrame(()=>o(!0));return()=>window.cancelAnimationFrame(s)},[a,n]),bt(r,a,n,e)},ma=({children:e,toggleButton:a,badge:n=void 0,header:r=void 0,footer:o=void 0,defaultOpen:s=!1,open:l=void 0,onOpenChange:i=void 0,alwaysOpen:c=!1,position:m=void 0,wrapClass:d=void 0,className:p=void 0,buttonClass:u=void 0,menuClass:f=void 0,badgeClass:x=void 0,headerClass:y=void 0,footerClass:E=void 0,motion:h=void 0})=>{var D,I;const g=J(),[S,v]=t.useState(s),C=t.useRef(null),b=t.useId(),T=c?!0:l??S,P=!c&&a!==void 0,M=bt(T,h??((D=g.Dropdown.motion)==null?void 0:D.open)??"fadeDown",((I=g.Dropdown.motion)==null?void 0:I.open)??"fadeDown"),k=t.useCallback(A=>{c||(l===void 0&&v(A),i==null||i(A))},[c,l,i]);t.useEffect(()=>{if(!T||c)return;const A=O=>{var L;(L=C.current)!=null&&L.contains(O.target)||k(!1)},_=O=>{O.key==="Escape"&&k(!1)};return window.document.addEventListener("pointerdown",A),window.document.addEventListener("keydown",_),()=>{window.document.removeEventListener("pointerdown",A),window.document.removeEventListener("keydown",_)}},[c,T,k]);function w(A){return typeof A=="object"&&A!==null&&!t.isValidElement(A)&&("icon"in A||"text"in A)}const N=P?t.createElement(go,{className:u,badge:n,badgeClass:x,motion:h,onToggle:()=>k(!T),open:T,menuId:b},w(a)?t.createElement(t.Fragment,null,a.icon&&t.createElement(Q,{name:a.icon,className:a.text?"mr-2":void 0}),a.text):a):null;return t.createElement(z,{className:d||g.Dropdown.wrapClass},t.createElement("div",{ref:C,className:R(c?"inline-block text-left":"relative inline-block text-left",p||g.Dropdown.className)},N,t.createElement("div",{id:b,role:"menu","aria-hidden":!T,className:R("min-w-56 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md outline-none",c?"relative":"absolute z-50 mt-2",!c&&m==="end"&&"right-0",!c&&m==="start"&&"left-0",f||g.Dropdown.menuClass),style:c?void 0:{...M,opacity:T?1:0,visibility:T?"visible":"hidden",pointerEvents:T?void 0:"none"},onClick:A=>{A.stopPropagation()}},r&&t.createElement("div",{className:R("px-2 py-1.5 text-sm font-semibold",y||g.Dropdown.headerClass)},r,t.createElement(dn,null)),e,o&&t.createElement("div",{className:E||g.Dropdown.footerClass},t.createElement(dn,null),o))))},go=({children:e,badge:a=void 0,display:n="dynamic",className:r=void 0,badgeClass:o=void 0,motion:s=void 0,onToggle:l=void 0,open:i=!1,menuId:c=void 0})=>{var u;const m=J(),d=Oa(!1,{cursor:"pointer"},s??((u=m.Dropdown.motion)==null?void 0:u.press)??"press"),p=t.createElement("button",{type:"button",className:R("inline-flex items-center justify-center gap-2",r||m.Dropdown.buttonClass),style:d.style,"aria-haspopup":"menu","aria-expanded":i,"aria-controls":c,onClick:l,...d.pressHandlers,onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),l==null||l())},"data-display":n},e);return t.createElement(ca,{badge:a,className:o||m.Dropdown.badgeClass},p)},Ae=({children:e,url:a=void 0,onClick:n=void 0,icon:r=void 0,className:o=void 0})=>{const s=J(),l=r?t.createElement("span",{className:"inline-flex min-w-0 items-center gap-2"},t.createElement("span",{className:"inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground"},t.createElement(Q,{name:r,size:16})),t.createElement("span",{className:"min-w-0"},e)):e;return a?t.createElement(ve.Link,{to:a,role:"menuitem",className:R("flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",o||s.Dropdown.menuItemClass)},l):n?t.createElement("button",{onClick:n,role:"menuitem",className:R("flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",o||s.Dropdown.menuItemClass)},l):t.createElement("span",{role:"menuitem",className:R("flex w-full select-none items-center rounded-sm px-2 py-1.5 text-sm",o||s.Dropdown.menuItemClass)},l)},Ei=({children:e,className:a})=>{const n=J();return t.createElement("div",{className:R("px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground",a||n.Dropdown.menuHeaderClass)},e)},dn=({className:e})=>{const a=J();return t.createElement("div",{className:R("-mx-1 my-1 h-px bg-border",e||a.Dropdown.menuDividerClass)})},vi=({context:e,Type:a="ul",badges:n={},pre:r=void 0,post:o=void 0})=>{const s=J();return t.createElement(Rn,{context:e,Type:a,badges:n,pre:r,post:o,wrapClass:s.Dropdown.Menu.wrapClass,className:s.Dropdown.Menu.className,headerClass:s.Dropdown.Menu.headerClass,itemClass:s.Dropdown.Menu.itemClass,linkClass:s.Dropdown.Menu.linkClass,iconClass:s.Dropdown.Menu.iconClass,textClass:s.Dropdown.Menu.textClass,badgeClass:s.Dropdown.Menu.badgeClass,arrowClass:s.Dropdown.Menu.arrowClass,submenuClass:s.Dropdown.Menu.submenuClass})},Zt="globalVars",ho=t.createContext(void 0),Qt=()=>JSON.parse(localStorage.getItem(Zt)||"{}"),wi=({children:e})=>{const[a,n]=t.useState(()=>Qt());t.useEffect(()=>{const l=i=>{i.storageArea===localStorage&&i.key===Zt&&n(Qt())};return window.addEventListener("storage",l),()=>{window.removeEventListener("storage",l)}},[]);const r=l=>{localStorage.setItem(Zt,JSON.stringify(l)),n(l)},o=(l,i)=>{const c={...a,[i]:l};r(c)},s=l=>{const i={...a};delete i[l],r(i)};return t.createElement(ho.Provider,{value:{globalVars:a,setGlobalVars:o,removeGlobalVars:s}},e)},bo=e=>{const a=t.useContext(ho);if(!a)throw new Error("useGlobalVars must be used within a GlobalProvider");const{globalVars:n,setGlobalVars:r,removeGlobalVars:o}=a;return[n[e]??null,s=>r(s,e),()=>o(e)]},gt=(e=null)=>{const a=Qt();return e?a[e]||{}:a},La=(e,a)=>{const n={...Qt(),[a]:e};localStorage.setItem(Zt,JSON.stringify(n))},yo=e=>{const a={...Qt()};delete a[e],localStorage.setItem(Zt,JSON.stringify(a))};let Ha=[],Pt;const Ci=t.createContext(null),xi=t.createContext(()=>{}),Eo=new Set,_e=e=>{Eo.add(e),Pt&&e(Pt,null)},Ni=({children:e,defaultConfig:a,tenantsURI:n})=>{const[r,o]=t.useState(ki(a,n)),s=t.useRef(null);return t.useEffect(()=>{const l=s.current;if(l!==r){Pt=r;for(const i of Eo)i(r,l)}s.current=r},[r]),t.createElement(Ci.Provider,{value:r},t.createElement(xi.Provider,{value:o},t.createElement(wi,null,e)))},ki=(e,a)=>{const n=async()=>{if(a)try{const r=await Fn(a);Ha=[e,...r],localStorage.setItem("tenants",JSON.stringify(Ha))}catch{console.warn("No tenants found at",a)}};return Ha=[e],Pt=e,n(),Pt},Ca=()=>Pt,Mn=e=>{try{const a=e.split("."),n=atob(a[1]);return JSON.parse(n)}catch(a){console.error("Errore durante la decodifica del token:",a)}},On=e=>{try{navigator.clipboard.writeText(e).then(()=>{console.log("Selettore HTML copiato negli appunti:",e)}).catch(a=>{console.error("Errore durante la copia del selettore HTML negli appunti:",a)})}catch(a){console.error("Clipboard API non supportata:",a)}},Ai=e=>Ta(e).replace(/\/$/,"").replace(/^\//,""),Ta=e=>e?e.replaceAll(" ","-").replaceAll("'","-").replaceAll('"',"-").toLowerCase().replace(/[^a-z0-9\-/]+/g,"").replace(/-+/g,"-").replace(/\/+/g,"/"):"",ea=e=>typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":e?e.startsWith("/")?e.substring(1):e:"",yt=e=>ea(e).replaceAll("/","|").replaceAll(" ","-").replaceAll("'","-").replaceAll('"',"-").replaceAll(".","-").replaceAll("@","-").replaceAll("#","-").replaceAll("$","-").replaceAll("[","-").replaceAll("]","-").replaceAll("_","-").toLowerCase().replace(/[^a-z0-9\-|]+/g,"").replace(/^-+|-+$/g,"").replace(/-+/g,"-"),Si=e=>{if(!e)return"";e=e.replace(/\/$/,"");const a=e.split("/");return a.pop(),a.join("/")};async function da(e){return new Promise(a=>setTimeout(a,e))}function vo(e,a="json"){const n=Ca();return n!=null&&n.proxyURI?n.proxyURI+encodeURIComponent(e)+"&f="+a:e}function wo(e=null){const a=Date.now().toString(36),n=e||Math.random().toString(36).substring(2);return`${a}-${n}`}function Ti(e,a){let n=e.target;if(n.tagName.toLowerCase()===a.toLowerCase())return n;for(;n.parentNode;){const r=n.parentNode;if(r.tagName.toLowerCase()===a.toLowerCase())return r;n=r}return null}const Ii=(e,a)=>e.split(a).length-1,Co=(e,a)=>e.replace(/\$(\d+)/g,(n,r)=>{const o=parseInt(r);return a[o]||""}).trim(),Di=(e,a,n)=>{for(const r of e){const o=Ta(un(r.key,a)),s=Ta(Co(un(r.value,a),n));if((r.operator==="=="||r.operator==="=")&&o===s||r.operator==="!="&&o!==s||r.operator===">"&&o>s||r.operator==="<"&&o<s||r.operator===">="&&o>=s||r.operator==="<="&&o<=s||r.operator==="contains"&&o.includes(s)||r.operator==="not contains"&&!o.includes(s))return!0}return!1},Pi=e=>{const a=[];for(let r=0;r<256;r++){let o=r;for(let s=0;s<8;s++)o&1?o=3988292384^o>>>1:o=o>>>1;a[r]=o}let n=-1;for(let r=0;r<e.length;r++)n=n>>>8^a[(n^e.charCodeAt(r))&255];return(n^-1)>>>0},Ri=e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",xo=e=>{if(!e.length)return;const a=document.createDocumentFragment();e.forEach(({src:n,clean:r,...o})=>{if(!n)return;const s=document.createElement("script");s.setAttribute("src",n),Object.entries(o).forEach(([l,i])=>{s.setAttribute(l,i)}),r&&(s.onload=()=>document.body.removeChild(s)),a.appendChild(s)}),document.body.appendChild(a)},Mi=(e,a)=>{const n={};for(const r in e)e.hasOwnProperty(r)&&r in a&&(n[r]=e[r]);return n},un=(e,a)=>((e.match(/{[^}]*}/g)||[]).forEach(r=>{const o=r.slice(1,-1).split(":"),s=o[0],l=o[1],i=(l&&typeof we[l]=="function"?we[l](a[s]):a[s])||"";e=e.replaceAll(r,i)}),e),Fa=(e,a)=>{if(a){const n=new Set;return e.filter(r=>{const o=r[a];return n.has(o)?!1:(n.add(o),!0)})}else return[...new Set(e)]},ua=e=>e==null||e===""||e===!1||e==="0"||e===0||typeof e=="object"&&Object.keys(e).length===0;function dt(e,a=new WeakMap){if(e==null||typeof e!="object"||t.isValidElement(e))return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(a.has(e))return a.get(e);if(Array.isArray(e)){const o=[];return a.set(e,o),e.forEach((s,l)=>{o[l]=dt(s,a)}),o}if(e instanceof Map){const o=new Map;return a.set(e,o),e.forEach((s,l)=>{o.set(dt(l,a),dt(s,a))}),o}if(e instanceof Set){const o=new Set;return a.set(e,o),e.forEach(s=>{o.add(dt(s,a))}),o}const n=Object.getPrototypeOf(e);if(n&&n!==Object.prototype)return e;const r={};return a.set(e,r),Object.entries(e).forEach(([o,s])=>{r[o]=dt(s,a)}),r}function No(e){if(typeof structuredClone!="function")return dt(e);try{return structuredClone(e)}catch{return dt(e)}}function Oi(e){return(typeof e=="string"?Buffer.from(e,"utf8"):e instanceof ArrayBuffer?Buffer.from(new Uint8Array(e)):Buffer.from(e)).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function _n(e,a){if(e===a)return!0;if(e.length!==a.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==a[n])return!1;return!0}function ko(e){return e.replace(/[^a-zA-Z0-9-_:.]/g,"_")}function Ln(e,a){const n=e.target,r=!!(n.closest("a")||n.closest("button")||n.closest("input")||n.closest("textarea")||n.closest("select"));return a?r&&!n.closest(a):r}const Ao=e=>{const a=new Uint8Array(e);let n="";for(let r=0;r<a.byteLength;r++)n+=String.fromCharCode(a[r]);return btoa(n)},So=(e,a)=>{try{const n=atob(e.split(",")[1]),r=new Array(n.length);for(let s=0;s<n.length;s++)r[s]=n.charCodeAt(s);const o=new Uint8Array(r);return new Blob([o],{type:a})}catch(n){console.warn("Failed to create blob from base64:",n);return}},To=(e,a)=>{const n=So(e,a);return n?URL.createObjectURL(n):void 0},ta=(e,a)=>{if(!(!e||!a))return a.split(".").reduce((n,r)=>n==null?void 0:n[r],e)},aa=e=>{const a={};if(!e)return a;if(e instanceof File)return{name:e.name,type:e.type,size:e.size,lastModified:e.lastModified};for(const[n,r]of Object.entries(e))n&&(Array.isArray(r)?a[n]=r.map(o=>typeof o=="object"?aa(o):o).filter(o=>o!==void 0):r&&typeof r=="object"?a[n]=aa(r):r!==void 0&&(a[n]=r));return a},Ia=e=>e==null||e===""||typeof e!="string"?e:/^(true|false)$/i.test(e)?e.toLowerCase()==="true":/^0\d+$/.test(e)?e:/^-?\d+(\.\d+)?$/.test(e)?Number(e):e.trim();function _i(e){const{body:a,headers:n}=e,r=(n==null?void 0:n["Content-Type"])||"";return(Array.isArray(a)||typeof a=="object"?["application/json","application/x-www-form-urlencoded","multipart/form-data"]:["text/plain","text/html"]).includes(r)?r:typeof a=="object"?"application/json":typeof a=="string"&&a.startsWith("<")?"text/html":"text/plain"}async function vt(e,a=null){var r;const n={redirect:"follow",method:((r=a==null?void 0:a.method)==null?void 0:r.toUpperCase())||"GET",headers:(a==null?void 0:a.headers)||{}};if(a!=null&&a.body)if(["GET","HEAD"].includes(n.method))e+=(e.includes("?")?"&":"?")+new URLSearchParams(a.body);else switch(_i(a)){case"application/json":n.body=JSON.stringify(a.body);break;case"application/x-www-form-urlencoded":n.body=new URLSearchParams(a.body);break;case"multipart/form-data":{const o=new FormData,s=a.body;for(const l in s)o.append(l,s[l]);n.body=o;break}case"text/html":case"text/plain":if(typeof a.body!="string")throw new Error("Fetch: Body must be a string for text/plain or text/html content types.");n.body=a.body;break;default:throw new Error("Fetch: Unsupported Content-Type")}return fetch(e,n).then(o=>{var i,c;if(!o.ok)return o.text().then(m=>{throw{response:o,text:m}});const s=(i=a==null?void 0:a.headers)==null?void 0:i.Accept,l=(c=o.headers.get("Content-Type"))==null?void 0:c.split(";")[0];return s&&s.split(";")[0]!==l?o.text().then(m=>{throw{response:o,text:m}}):o!=null&&o.headers&&o.headers.get("Content-Type")==="application/json"?o.json():o.text()}).catch(o=>{if(o.message)return console.warn(`fetch: ${o.message}`,e,n),null;const{response:s,text:l}=o;function i(){var m,d,p;const c=((m=s==null?void 0:s.headers.get("Content-Type"))==null?void 0:m.split(";")[0])||"";if(c==="application/json"&&(l.startsWith("{")||l.startsWith("["))){const u=JSON.parse(l);return console.warn("fetch: Error",e,n,s.status,u),u}else{const u=((p=(d=a==null?void 0:a.headers)==null?void 0:d.Accept)==null?void 0:p.split(";")[0])||"",f=u!==c?"Request Accept header does not match response Content-Type (Accept: "+u+", Content-Type: "+c+")":u==="application/json"?"Request Accept header is application/json but response is not JSON":null;return console.warn(`fetch: ${f}`,e,n,s.status,l),f&&u==="application/json"?{error:l,status:520}:l}}throw i()})}async function Fn(e,a=null){return vt(e,{...a,headers:{Accept:"application/json","Content-Type":"application/json",...a==null?void 0:a.headers}}).then(n=>{if(n!=null&&n.error)throw n;return n})}async function $n(e,a={},n=3,r=[429]){return fetch(e,a).then(o=>o.ok?o.json():!r.includes(o.status)&&n>0?(console.log("Retrying...",n,e,a),da(500).then(()=>$n(e,a,n-1))):(console.error(o),o)).catch(o=>console.error(o,"BBBBBBBBBBBBBBBBBBBBBBB"))}const $a="btn",jn="btn-primary",Io="btn-secondary",Do="btn-danger",Po="btn-success",Ro="btn-warning",Mo="btn-info",Oo="btn-light",_o="btn-dark",Lo="btn-outline-primary",Fo="btn-outline-secondary",$o="btn-outline-danger",jo="btn-outline-success",Bo="btn-link",Go=e=>{switch(e){case"primary":return jn;case"secondary":return Io;case"danger":return Do;case"success":return Po;case"warning":return Ro;case"info":return Mo;case"light":return Oo;case"dark":return _o;case"outline-primary":return Lo;case"outline-secondary":return Fo;case"outline-danger":return $o;case"outline-success":return jo;case"link":return Bo;default:return}},He=({onClick:e,icon:a=void 0,label:n=void 0,badge:r=void 0,title:o=void 0,disabled:s=!1,showLoader:l=!1,pre:i=void 0,post:c=void 0,wrapClass:m=void 0,className:d=void 0,iconClass:p=void 0,style:u=void 0,loadingLabel:f=void 0,variant:x=void 0,motion:y=void 0}={})=>{var w;const[E,h]=t.useState(l),[g,S]=t.useState(s),[v,C]=t.useState(""),b=N=>{C(N.message??"")},T=J(),P=Oa(g||E,u,y??((w=T.LoadingButton.motion)==null?void 0:w.press)??"press"),M=f??(v||(typeof n=="string"?`${n}...`:n));t.useEffect(()=>{h(l),S(s)},[l,s]);const k=t.createElement("button",{title:o,className:R($a,x?Go(x):d||T.LoadingButton.className,x?d:void 0,E&&"whitespace-nowrap"),style:P.style,disabled:g||E,...P.pressHandlers,onClick:async N=>{N.stopPropagation(),S(!0),h(!0),await(e==null?void 0:e(N,b)),h(!1),S(!1)}},E&&t.createElement(t.Fragment,null,t.createElement("span",{className:R(M&&"mr-1","inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent")}),M&&t.createElement("span",null,M)),a&&!E&&t.createElement(Q,{name:a,className:R(n&&"mr-1",p)}),!E&&n);return t.createElement(z,{className:m},i,t.createElement(ca,{badge:E?void 0:r},k),c)},fe=({onClick:e,icon:a=void 0,label:n=void 0,badge:r=void 0,title:o=void 0,disabled:s=!1,pre:l=void 0,post:i=void 0,wrapClass:c=void 0,className:m=void 0,iconClass:d=void 0,style:p=void 0,variant:u=void 0,motion:f=void 0}={})=>{var h;const x=J(),y=Oa(s,p,f??((h=x.ActionButton.motion)==null?void 0:h.press)??"press"),E=t.createElement("button",{title:o,className:R($a,u?Go(u):m||x.ActionButton.className,u?m:void 0),style:y.style,disabled:s,...y.pressHandlers,onClick:g=>{g.preventDefault(),g.stopPropagation(),e==null||e(g)}},a&&t.createElement(Q,{name:a,className:R(n&&"mr-1",d)}),n);return t.createElement(z,{className:c},l,t.createElement("span",{title:s?o:void 0,style:s?{cursor:"not-allowed",display:"inline-flex"}:void 0},t.createElement(ca,{badge:r},E)),i)},Yo=({label:e="<- Back",pre:a=void 0,post:n=void 0,wrapClass:r=void 0,className:o=void 0})=>{const s=ve.useNavigate(),l=J();return t.createElement(z,{className:r},a,t.createElement("a",{href:"#",className:R($a,o||l.LinkButton.className),onClick:i=>{i.preventDefault(),s(-1)}},e),n)},Uo=({label:e,url:a,pre:n=void 0,post:r=void 0,wrapClass:o=void 0,className:s=void 0})=>(J(),t.createElement(z,{className:o},n,t.createElement("h1",{className:R("m-0 text-2xl font-bold",s)},e+" ",t.createElement("a",{href:a,target:"_blank",rel:"noopener noreferrer"},t.createElement(Q,{name:"external-link"}))),r)),zo=({title:e,url:a,imageUrl:n,width:r,pre:o=void 0,post:s=void 0,wrapClass:l=void 0,className:i=void 0})=>t.createElement(z,{className:l},o,t.createElement("a",{href:a,className:R("mr-1",i),target:"_blank",title:e,rel:"noopener noreferrer"},t.createElement("img",{src:n,width:r||"100",height:"30",alt:e})),s),Ho=t.createContext(null),Ko=({registry:e,defaultKey:a,children:n})=>t.createElement(Ho.Provider,{value:{registry:e,defaultKey:a}},n),Wo=e=>{const a=t.useContext(Ho);if(!a)throw new Error("useAuthProvider must be used inside <App providers={...} />.");const n=e??a.defaultKey,r=a.registry[n];if(!r)throw new Error(`AuthProvider '${n}' is not registered. Available: ${Object.keys(a.registry).join(", ")}`);return r},Tt={basename:e=>e.split("/").filter(Boolean).pop()||"",extname:e=>{const a=e.lastIndexOf(".");return a>0?e.slice(a):""},dirname:e=>{const a=e.split("/").filter(Boolean);return a.pop(),"/"+a.join("/")},filename:e=>{const a=e.split("/").pop()||"",n=a.includes(".")?a.slice(a.lastIndexOf(".")):"";return a.replace(n,"")},parentBasename:e=>{const a=e.split("/").filter(Boolean);return a.pop(),a.pop()||""},parentDirname:e=>{const a=e.split("/").filter(Boolean);return a.pop(),a.pop(),"/"+a.join("/")},parentFilename:e=>{const a=e.split("/").filter(Boolean);a.pop();const n=a.pop()||"",r=n.includes(".")?n.slice(n.lastIndexOf(".")):"";return n.replace(r,"")},append:(e,a)=>{const n=e.split("/").slice(0,-1).join("/"),r=e.split("/").pop()||"",o=r.includes(".")?r.slice(r.lastIndexOf(".")):"",s=r.replace(o,"");return(n?n+"/":"")+s+a+o},prepend:(e,a)=>{const n=e.split("/").slice(0,-1).join("/"),r=e.split("/").pop()||"",o=r.includes(".")?r.slice(r.lastIndexOf(".")):"",s=r.replace(o,"");return(n?n+"/":"")+a+s+o},changeFilename:(e,{prefix:a="",suffix:n="",ext:r=null}={})=>{const o=e.split("/").slice(0,-1).join("/"),s=e.split("/").pop()||"",l=s.includes(".")?s.slice(s.lastIndexOf(".")):"",i=s.replace(l,""),c=r!==null?r?r.startsWith(".")?r:"."+r:"":l;return(o?o+"/":"")+a+i+n+c},join:(...e)=>e.join("/").replace(/\/+/g,"/"),parse:e=>{const a=Tt.extname(e),n=Tt.basename(e),r=Tt.dirname(e),o=e.startsWith("/")?"/":"",s=n.replace(a,"");return{root:o,dir:r,base:n,ext:a,name:s}}},qo=({src:e,width:a=void 0,height:n=void 0,title:r=void 0,alt:o=void 0,fit:s="cover",badge:l=void 0,feedback:i=void 0,pre:c=void 0,post:m=void 0,wrapClass:d=void 0,className:p=void 0})=>{var N,D,I,A,_,O;const u=J(),[f,x]=t.useState(Bt),y=((D=(N=u.ImageAvatar)==null?void 0:N.motion)==null?void 0:D.enter)??!1,E=((A=(I=u.ImageAvatar)==null?void 0:I.motion)==null?void 0:A.hover)??!1,h=E!==!1,g=_a(void 0,y,!1),[S,v]=t.useState(!1),C=bt(S,E,!1),b=e&&e.split("?")[0],T=`avatar::${b}`,P=`avatar-fetch-failed::${b}`,M=o||r||Tt.filename(e||Bt);t.useEffect(()=>{if(!e||e.startsWith("data:")){x(e||Bt);return}const L=localStorage.getItem(T);if(L){x(L);return}x(e);const $=Number(localStorage.getItem(P)||0);$&&Date.now()-$<24*60*60*1e3||fetch(e).then(j=>{if(!j.ok)throw new Error(`HTTP ${j.status}`);return j.blob()}).then(j=>{const V=new FileReader;V.onloadend=()=>{const H=V.result;localStorage.setItem(T,H),localStorage.removeItem(P),x(H)},V.readAsDataURL(j)}).catch(j=>{console.warn("ImageAvatar:",j.message),localStorage.setItem(P,String(Date.now()))})},[e,T,P]);const k=a??n??void 0,w={...a&&n?{width:a,height:n,objectFit:s}:k?{width:k,height:k,objectFit:s}:{objectFit:s},...h?C:{}};return t.createElement(z,{className:R("flex items-center gap-3",d||((_=u.ImageAvatar)==null?void 0:_.wrapClass))},c&&t.createElement("div",{className:"shrink-0 self-center"},c),t.createElement("div",{className:R("relative shrink-0",h&&"overflow-hidden"),style:g,onMouseEnter:h?()=>v(!0):void 0,onMouseLeave:h?()=>v(!1):void 0},t.createElement("img",{src:f,alt:M,width:a??k,height:n??k,className:R(p||((O=u.ImageAvatar)==null?void 0:O.className)),title:r,style:w,onError:()=>x(Bt)}),l&&t.createElement("span",{className:R("badge badge-overlay absolute top-0 right-0 translate-x-1/4 -translate-y-1/4 z-10","badge-"+(l.type||"success"),!l.content&&"!p-0 !min-w-0 w-3 h-3 rounded-full",l.className)},l.content),i&&t.createElement("div",{className:"mt-1 text-xs text-center"},i)),m&&t.createElement("div",{className:"min-w-0 self-center"},m))},wt=(e,a,n="")=>a.filter(r=>{const o=e==null?void 0:e[r];return o==null||o===""}).map(r=>`${n}${r}`),Ct=(e,a)=>({configured:a.length===0,missingKeys:a,reason:a.length?`${e} is not configured. Missing: ${a.join(", ")}.`:void 0}),Vo=(e,a="Provider")=>{if(!e)return{configured:!1,reason:`${a} is not registered.`};if(e.getConfigurationState)return e.getConfigurationState();if(e.isConfigured){const n=e.isConfigured();return{configured:n,reason:n?void 0:`${a} is not configured.`}}return{configured:!0}},Bn="/__/authorize",Rt="auths";function Li(){const e=new Uint32Array(28);return window.crypto.getRandomValues(e),Array.from(e,a=>`0${a.toString(16)}`.substr(-2)).join("")}async function Fi(e){const n=new TextEncoder().encode(e),r=await window.crypto.subtle.digest("SHA-256",n);return btoa(String.fromCharCode(...new Uint8Array(r))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const $i=(e,a,n)=>{const r=window.screen.width/2-n/2,o=window.screen.height/2-n/2,s=`width=${n},height=${n},top=${o},left=${r}`;return window.open(e,a,s)};function ji({authServer:e,clientID:a,scopes:n=void 0,refreshParamName:r="access_type"}){const o=Li();localStorage.setItem("authChallenge",JSON.stringify({authServer:e,clientID:a,codeVerifier:o})),Fi(o).then(s=>{const l=new URLSearchParams({response_type:"code",client_id:a,redirect_uri:`${window.location.origin}${Bn}`,scope:n?n.join(" "):"",code_challenge:s,code_challenge_method:"S256",[r]:"offline"});$i(`https://${e}/authorize?${l.toString()}`,"auth",600)})}const Jo=(e,a,n)=>{La({[a]:{...n,server:e,client_id:a,iat:Math.floor(Date.now()/1e3)}},Rt)},Bi=()=>{const e=ve.useLocation().search;return t.useEffect(()=>{const n=new URLSearchParams(e).get("code"),o=((c,m)=>{try{return JSON.parse(localStorage.getItem(c)||"")||m}catch{return m}})("authChallenge");if(!n||!o)return;const{authServer:s,clientID:l,codeVerifier:i}=o;vt(`https://${s}/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:{grant_type:"authorization_code",client_id:l,code:n,redirect_uri:`${window.location.origin}${Bn}`,code_verifier:i}}).then(c=>{Jo(s,l,c),localStorage.removeItem("authChallenge"),window.close()}).catch(c=>console.error("Error:",c))},[e]),t.createElement("div",null,"Loading...")},Xo=(e,a,n)=>vt(`https://${e}/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:{grant_type:"refresh_token",client_id:a,refresh_token:n}}).then(r=>(Jo(e,a,r),r.access_token)).catch(r=>(console.error("Error:",r),localStorage.removeItem(Rt),null)),Zo=(e,a=!0)=>{const[n]=bo(Rt),r=(n==null?void 0:n[e])||{},o=Math.floor(Date.now()/1e3)>=(r==null?void 0:r.iat)+(r==null?void 0:r.expires_in);return!!(r&&(r!=null&&r.access_token)&&(!o||a&&o&&r.refresh_token&&(Xo(r.server,r.client_id,r.refresh_token)||!0)))},pn=e=>{const a=gt(Rt);return a==null?void 0:a[e]},Gi=e=>{const a=gt(Rt)||{};a[e]&&(delete a[e],La(a,Rt))},ja=e=>{const a=pn(e),n=Math.floor(Date.now()/1e3)>(a==null?void 0:a.iat)+(a==null?void 0:a.expires_in);return!n&&(a!=null&&a.access_token)?Promise.resolve(a.access_token):n&&(a!=null&&a.refresh_token)?Xo(a.server,a.client_id,a.refresh_token):Promise.resolve(null)},Yi=e=>e==="signOut"||e==="disconnect",Qo=({provider:e,intent:a="signIn",aspect:n="button",scopes:r=void 0,iconLogout:o="log-out",avatarClass:s=void 0,options:l={},label:i=void 0,icon:c=void 0,title:m=void 0,className:d=void 0,disabled:p=!1,...u})=>{const f=Wo(e),x=J(),y=e||"AuthProvider",E=t.useCallback(()=>Vo(f,y),[f,y]),h=t.useMemo(()=>E(),[E]),g=h.configured,[S,v]=t.useState(()=>g?f.getUser():null),[C,b]=t.useState(()=>{var D;return g&&(((D=f.isAuthenticated)==null?void 0:D.call(f))??!!f.getUser())}),[T,P]=t.useState(!1),M=h.reason||`Auth provider "${y}" is not configured. Add the required client key before using this action.`;t.useEffect(()=>{var I;return E().configured?(v(f.getUser()),b(((I=f.isAuthenticated)==null?void 0:I.call(f))??!!f.getUser()),f.onAuthChange(A=>{var _;v(A),b(((_=f.isAuthenticated)==null?void 0:_.call(f))??!!A)})):(v(null),b(!1),P(!1),()=>{})},[f,E]);const k=()=>{var I;if(!E().configured){v(null),b(!1);return}const D=f.getUser();v(D),b(((I=f.isAuthenticated)==null?void 0:I.call(f))??!!D)},w=async()=>{if(E().configured){if(Yi(a)){await f.signOut(),k();return}if(!f.signIn)throw new Error("AuthProvider does not implement signIn().");await f.signIn({scopes:r,intent:a}),k()}},N={...u,...l,label:l.label??i??(C?"Connected":a==="signIn"?"Sign in":"Connect"),icon:l.icon??c??(C?"link":"link-break"),title:g?l.title??m:M,className:l.className??d,disabled:!g||(l.disabled??p),style:g?l.style??u.style:{...u.style||{},...l.style||{},opacity:.55,cursor:"not-allowed"}};if(n==="avatar"){const D=(S==null?void 0:S.displayName)??(S==null?void 0:S.email)??(C?"Authenticated":"Sign in");return t.createElement("div",{className:d||x.SignIn.className,style:{position:"relative",display:"inline-flex"},title:g?void 0:M},t.createElement("button",{type:"button",className:"border-0 bg-transparent p-0",title:g?D:M,"aria-label":D,disabled:!g||p,"aria-disabled":!g||p,style:g?void 0:{opacity:.55,cursor:"not-allowed"},onClick:I=>{I.preventDefault(),I.stopPropagation(),!(!g||p)&&P(A=>!A)}},t.createElement(qo,{src:(S==null?void 0:S.photoURL)??Bt,title:g?D:M,height:36,className:s||x.SignIn.avatarClass})),T&&t.createElement("div",{role:"menu",className:"absolute right-0 top-full z-50 mt-2 min-w-40 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md"},!C&&t.createElement("button",{type:"button",role:"menuitem",className:"flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",onClick:w},i??"SIGN IN"),C&&t.createElement("button",{type:"button",role:"menuitem",className:"flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-left text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",onClick:async()=>{await f.signOut(),k(),P(!1)}},o&&t.createElement(Q,{name:o,className:"mr-2"}),"LOGOUT")))}return t.createElement(fe,{...N,onClick:w})},es=t.createContext(null),ts=({registry:e,defaultKey:a,children:n})=>t.createElement(es.Provider,{value:{registry:e,defaultKey:a}},n),ot=e=>{const a=t.useContext(es);if(!a)throw new Error("useDataProvider must be used inside <App>.");const n=e??a.defaultKey,r=a.registry[n];if(!r)throw new Error(`DataProvider '${n}' is not registered. Available: ${Object.keys(a.registry).join(", ")}`);return r};function Ba({children:e,show:a=!1,icon:n=void 0,title:r=void 0,description:o=void 0,pre:s=void 0,post:l=void 0,wrapClass:i=void 0,className:c=void 0}){const m=J();return n=n||m.Loader.icon,r=r||m.Loader.title,o=o||m.Loader.description,a?t.createElement(z,{className:i||m.Loader.wrapClass},t.createElement("div",{className:"relative "+(c||m.Loader.className),style:{minHeight:"200px"}},t.createElement("div",{className:"absolute top-0 bottom-0 left-0 right-0",style:{zIndex:10,backdropFilter:"blur(2px)",background:"rgba(255, 255, 255, 0.5)"}},s,(n||r||o)&&t.createElement("div",{className:"p-4 text-center position-sticky top-50"},n&&t.createElement("div",{className:n}),r&&t.createElement("h2",{className:"my-3 f-w-400"},r),o&&t.createElement("p",{className:"mb-0"},o)),l),e)):e}const te=({children:e,title:a=void 0,header:n=void 0,footer:r=void 0,showLoader:o=void 0,showArrow:s=void 0,wrapClass:l=void 0,className:i=void 0,headerClass:c=void 0,bodyClass:m=void 0,footerClass:d=void 0})=>{const p=J();return t.createElement(z,{className:l||p.Card.wrapClass},t.createElement("div",{className:R("card",i||p.Card.className)},(n||a)&&t.createElement("div",{className:R("card-header",c||p.Card.headerClass)},a?t.createElement("h5",{className:"m-0 text-base font-semibold leading-none whitespace-nowrap"},a):"",n),t.createElement("div",{className:R("card-body",m||p.Card.bodyClass)},t.createElement(Ba,{show:o||p.Card.showLoader},e)),r&&t.createElement("div",{className:R("card-footer",d||p.Card.footerClass)},r),(s||p.Card.showArrow)&&t.createElement("div",{className:"card-arrow"},t.createElement("div",{className:"card-arrow-top-left"}),t.createElement("div",{className:"card-arrow-top-right"}),t.createElement("div",{className:"card-arrow-bottom-left"}),t.createElement("div",{className:"card-arrow-bottom-right"}))))},pa=e=>t.createElement(Gn,{...e}),Gn=({children:e,title:a=void 0,header:n=void 0,footer:r=void 0,onClose:o=void 0,onSave:s=void 0,onDelete:l=void 0,size:i=void 0,position:c=void 0,buttonFullscreen:m=!0,buttonCancel:d=!0,pre:p=void 0,post:u=void 0,wrapClass:f=void 0,className:x=void 0,headerClass:y=void 0,titleClass:E=void 0,subTitleClass:h=void 0,bodyClass:g=void 0,footerClass:S=void 0,closeOnBackdrop:v=!0,motion:C=void 0})=>{var pe,Ke,Le;const b=J(),[T,P]=t.useState(!1),M=t.useRef(!1),k=t.useRef(void 0),[w,N]=t.useState(i),D={sm:"max-w-sm",md:"max-w-md",lg:"max-w-2xl",xl:"max-w-4xl",fullscreen:"max-w-none w-screen h-dvh rounded-none"}[w||b.Modal.size||"lg"],I={sm:"w-72",md:"w-96",lg:"w-[36rem]",xl:"w-[48rem]",fullscreen:"w-screen"}[w||b.Modal.size||"lg"],A={sm:"max-h-[30vh]",md:"max-h-[45vh]",lg:"max-h-[60vh]",xl:"max-h-[85vh]",fullscreen:"h-dvh max-h-none"}[w||b.Modal.size||"lg"],_={center:{coverClass:"fixed inset-0 z-50 flex items-center justify-center overflow-y-auto p-4",dialogClass:R("relative z-50 flex w-full flex-col overflow-hidden rounded-lg border bg-card shadow-xl",D,f||b.Modal.wrapClass),contentClass:R("flex min-h-0 flex-1 flex-col",x||b.Modal.className),headerClass:R("flex items-center justify-between gap-3 border-b px-4 py-3",y||b.Modal.headerClass),titleClass:R("text-lg font-semibold leading-none",E||b.Modal.titleClass),subTitleClass:R("mt-1 text-sm text-muted-foreground",h||b.Modal.subTitleClass),bodyClass:R("min-h-0 flex-1 overflow-auto p-4",g||b.Modal.bodyClass),footerClass:R("flex items-center justify-end gap-2 border-t px-4 py-3",S||b.Modal.footerClass)},top:{coverClass:"",dialogClass:R("fixed left-0 right-0 top-0 z-50 flex flex-col border-b bg-card shadow-xl",A,f||b.Modal.wrapClass),contentClass:R("flex min-h-0 flex-1 flex-col",x||b.Modal.className),headerClass:R("flex items-center justify-between gap-3 border-b px-4 py-3",y||b.Modal.headerClass),titleClass:R("text-lg font-semibold leading-none",E||b.Modal.titleClass),subTitleClass:R("mt-1 text-sm text-muted-foreground",h||b.Modal.subTitleClass),bodyClass:R("min-h-0 flex-1 overflow-auto p-4",g||b.Modal.bodyClass),footerClass:R("flex items-center justify-end gap-2 border-t px-4 py-3",S||b.Modal.footerClass)},left:{coverClass:"",dialogClass:R("fixed bottom-0 left-0 top-0 z-50 flex max-w-full flex-col border-r bg-card shadow-xl",I,f||b.Modal.wrapClass),contentClass:R("flex min-h-0 flex-1 flex-col",x||b.Modal.className),headerClass:R("flex items-center justify-between gap-3 border-b px-4 py-3",y||b.Modal.headerClass),titleClass:R("text-lg font-semibold leading-none",E||b.Modal.titleClass),subTitleClass:R("mt-1 text-sm text-muted-foreground",h||b.Modal.subTitleClass),bodyClass:R("min-h-0 flex-1 overflow-auto p-4",g||b.Modal.bodyClass),footerClass:R("flex items-center justify-end gap-2 border-t px-4 py-3",S||b.Modal.footerClass)},right:{coverClass:"",dialogClass:R("fixed bottom-0 right-0 top-0 z-50 flex max-w-full flex-col border-l bg-card shadow-xl",I,f||b.Modal.wrapClass),contentClass:R("flex min-h-0 flex-1 flex-col",x||b.Modal.className),headerClass:R("flex items-center justify-between gap-3 border-b px-4 py-3",y||b.Modal.headerClass),titleClass:R("text-lg font-semibold leading-none",E||b.Modal.titleClass),subTitleClass:R("mt-1 text-sm text-muted-foreground",h||b.Modal.subTitleClass),bodyClass:R("min-h-0 flex-1 overflow-auto p-4",g||b.Modal.bodyClass),footerClass:R("flex items-center justify-end gap-2 border-t px-4 py-3",S||b.Modal.footerClass)},bottom:{coverClass:"",dialogClass:R("fixed bottom-0 left-0 right-0 z-50 flex flex-col border-t bg-card shadow-xl",A,f||b.Modal.wrapClass),contentClass:R("flex min-h-0 flex-1 flex-col",x||b.Modal.className),headerClass:R("flex items-center justify-between gap-3 border-b px-4 py-3",y||b.Modal.headerClass),titleClass:R("text-lg font-semibold leading-none",E||b.Modal.titleClass),subTitleClass:R("mt-1 text-sm text-muted-foreground",h||b.Modal.subTitleClass),bodyClass:R("min-h-0 flex-1 overflow-auto p-4",g||b.Modal.bodyClass),footerClass:R("flex items-center justify-end gap-2 border-t px-4 py-3",S||b.Modal.footerClass)}},O=w==="fullscreen"?"center":c||b.Modal.position,L=_[O],$=w==="fullscreen"?R(L.coverClass,"!overflow-hidden !p-0"):L.coverClass;t.useEffect(()=>{const ne=window.document.body.style.overflow;window.document.body.style.overflow="hidden";const Ve=window.requestAnimationFrame(()=>P(!0));return()=>{window.cancelAnimationFrame(Ve),k.current!==void 0&&window.clearTimeout(k.current),window.document.body.style.overflow=ne||"auto"}},[]);const j=C??((pe=b.Modal.motion)==null?void 0:pe[O])??"fade",V=Ma(j,j),H=()=>{if(M.current)return;M.current=!0,P(!1),window.document.body.style.overflow="auto";const ne=V.transition.duration+V.transition.delay;k.current=window.setTimeout(()=>{o==null||o()},ne)},K=bt(T,j,j),B={...bt(T,((Ke=b.Modal.motion)==null?void 0:Ke.backdrop)??"fade",((Le=b.Modal.motion)==null?void 0:Le.backdrop)??"fade"),cursor:v&&o?"pointer":"default"},ee={cursor:O==="center"&&v&&o?"pointer":"default"},ie=r!==!1&&(r||s||l||d&&o),X="inline-flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";return Ra.createPortal(t.createElement(t.Fragment,null,t.createElement("div",{className:$,style:ee,onClick:()=>{O==="center"&&v&&o&&H()}},t.createElement("div",{className:L.dialogClass,style:K,onClick:ne=>ne.stopPropagation()},p,t.createElement("div",{className:L.contentClass},(n||a||m||o)&&t.createElement("div",{className:L.headerClass},t.createElement("div",{className:"min-w-0"},a&&t.createElement("h3",{className:L.titleClass},a),a&&n&&t.createElement("div",{className:L.subTitleClass},n),!a&&n&&(typeof n=="string"?t.createElement("h3",{className:L.titleClass},n):n)),(m||o)&&t.createElement("div",{className:"ml-auto flex shrink-0 items-center gap-1"},m&&t.createElement("button",{type:"button",title:w==="fullscreen"?"Exit fullscreen":"Enter fullscreen","aria-label":w==="fullscreen"?"Exit fullscreen":"Enter fullscreen",className:X,onClick:ne=>{ne.preventDefault(),ne.stopPropagation(),N(Ve=>Ve==="fullscreen"?i==="fullscreen"?"lg":i:"fullscreen")}},t.createElement(Q,{name:w==="fullscreen"?b.Modal.iconCollapse:b.Modal.iconExpand,size:18})),o&&t.createElement("button",{type:"button",title:"Close","aria-label":"Close",className:X,onClick:ne=>{ne.preventDefault(),ne.stopPropagation(),H()}},t.createElement(Q,{name:"x",size:20})))),t.createElement("div",{className:L.bodyClass},e),ie&&t.createElement("div",{className:L.footerClass},r,s&&t.createElement(He,{className:"btn-primary",label:"Save",onClick:async ne=>{ne.preventDefault(),await s(ne)&&H()}}),l&&t.createElement(He,{className:"btn-danger",label:"Delete",onClick:async ne=>{ne.preventDefault(),await l(ne),H()}}),d&&o&&t.createElement(fe,{className:"btn-link",label:"Cancel",onClick:H}))),u)),t.createElement("div",{"data-rf-modal-backdrop":"","aria-hidden":"true",className:"fixed inset-0 z-40 bg-black/60 backdrop-blur-sm",style:B,onClick:()=>{v&&o&&H()}})),document.body)},Ui=({children:e,title:a=void 0,onYes:n=void 0,onNo:r=void 0,onClose:o=void 0})=>t.createElement(Gn,{title:a,onClose:o,buttonFullscreen:!1,footer:t.createElement(t.Fragment,null,n&&t.createElement(He,{className:"btn-primary",label:"Yes",onClick:async s=>{s.preventDefault(),await n(s),o==null||o()}}),r&&t.createElement(He,{className:"btn-secondary",label:"No",onClick:async s=>{s.preventDefault(),await r(s),o==null||o()}}))},e),zi=({children:e,title:a=void 0,onClose:n=void 0})=>t.createElement(Gn,{title:a,onClose:n,buttonFullscreen:!1,footer:t.createElement(t.Fragment,null,t.createElement(fe,{className:"btn-primary",label:"Ok",onClick:n}))},e),na=({src:e,placeholder:a=void 0,label:n=void 0,title:r=void 0,fit:o=void 0,position:s=void 0,feedback:l=void 0,width:i=void 0,height:c=void 0,srcset:m=void 0,sizes:d=void 0,pre:p=void 0,post:u=void 0,wrapClass:f=void 0,className:x=void 0})=>{var T,P;const y=J(),E=((T=y.Image.motion)==null?void 0:T.enter)??!1,h=((P=y.Image.motion)==null?void 0:P.hover)??!1,g=h!==!1,S=_a(void 0,E,!1),[v,C]=t.useState(!1),b=bt(v,h,!1);return t.createElement(z,{className:R("flex items-center gap-4",f||y.Image.wrapClass)},p&&t.createElement("div",{className:"shrink-0 self-center"},p),t.createElement("div",{className:R("flex min-w-0 flex-col",g&&"overflow-hidden"),style:S,onMouseEnter:g?()=>C(!0):void 0,onMouseLeave:g?()=>C(!1):void 0},t.createElement("img",{src:e||a||Ce,alt:n||r||e,title:r,className:x||y.Image.className,style:{...i&&c?{maxWidth:i,aspectRatio:`${i} / ${c}`,width:"100%"}:i?{maxWidth:i,width:"100%"}:c?{height:c}:{},...o?{objectFit:o}:{},...s?{objectPosition:s}:{},...g?b:{}},width:i,height:c,srcSet:m,sizes:d}),l&&t.createElement("div",{className:"feedback"},l)),u&&t.createElement("div",{className:"shrink-0 self-center"},u))},as=({url:e=void 0,label:a=void 0,logo:n=void 0,width:r=void 0,height:o=36,wrapClass:s=void 0,className:l=void 0,logoClass:i=void 0,labelClass:c=void 0})=>{const m=J(),d=t.createElement(t.Fragment,null,t.createElement(na,{src:n||mn,width:r,height:o}),a&&t.createElement("span",{className:c||m.Brand.labelClass},a));return t.createElement(z,{className:s},t.createElement("div",{className:l||m.Brand.className},e?t.createElement(ve.Link,{to:e,className:i||m.Brand.logoClass},d):t.createElement("span",{className:i||m.Brand.logoClass},d)))},Yn=({path:e=void 0,pre:a=void 0,className:n=void 0})=>{const r=ve.useLocation(),o=ea(e||r.pathname),s=o.split("/"),l=s.pop();let i=[],c="";for(const m of s)c+=`/${m}`,i.push({label:m,url:c});return(i.length||a)&&o?t.createElement("ol",{className:`breadcrumb ${n}`},a&&t.createElement("li",{className:"breadcrumb-item"},a),i.map((m,d)=>t.createElement("li",{className:"breadcrumb-item",key:d},t.createElement(ve.Link,{to:m.url},m.label))),t.createElement("li",{className:"breadcrumb-item active"},l)):t.createElement(t.Fragment,null,l)},Un=({children:e,showIndicators:a=!1,showControls:n=!1,showCaption:r=!1,layoutDark:o=!1,autoPlay:s=void 0,startSlide:l=0,onParseCaption:i=void 0,onClick:c=void 0})=>{const m=J();a=a||m.Carousel.showIndicators,n=n||m.Carousel.showControls,r=r||m.Carousel.showCaption,o=o||m.Carousel.layoutDark,s=s||m.Carousel.autoPlay;const[d,p]=t.useState(!1),u=wo(),f=o?"bg-white":"bg-dark",x=o?"text-gray":"text-white",y=E=>{if(!r)return null;if(i)return i(E);const{alt:h,description:g}=E.props;return h||g?t.createElement("div",{className:"carousel-caption hidden md:block opacity-75 bottom-0"},h&&t.createElement("h5",{className:x},h),g&&t.createElement("p",null,g)):null};return t.createElement("div",{id:u,className:"carousel slide"+(o?" carousel-dark":""),"data-bs-ride":s?"carousel":"false","data-bs-interval":(s==null?void 0:s.interval)||2e3,"data-bs-pause":(s==null?void 0:s.pause)||"hover","data-bs-wrap":(s==null?void 0:s.wrap)||"true",onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1)},e.length>1&&t.createElement("ol",{className:"carousel-indicators mb-0"},a&&e.map((E,h)=>t.createElement("li",{key:h,"data-bs-target":"#"+u,"data-bs-slide-to":h,className:h===l?"active":""}))),t.createElement("div",{className:"carousel-inner",onClick:c,style:{cursor:c?"pointer":"default"}},e.map((E,h)=>t.createElement("div",{key:h,className:`carousel-item${h===l?" active":""}`},E,(a||n||r)&&d&&t.createElement("div",{className:"pointer-events-none absolute top-0 bottom-0 left-0 right-0 opacity-25 "+f}),d&&y(E)))),n&&d&&e.length>1&&t.createElement(t.Fragment,null,t.createElement("a",{className:"carousel-control-prev",href:"#"+u,role:"button","data-bs-slide":"prev"},t.createElement("span",{className:"carousel-control-prev-icon","aria-hidden":"true"}),t.createElement("span",{className:"sr-only"},"Previous")),t.createElement("a",{className:"carousel-control-next",href:"#"+u,role:"button","data-bs-slide":"next"},t.createElement("span",{className:"carousel-control-next-icon","aria-hidden":"true"}),t.createElement("span",{className:"sr-only"},"Next"))))};function ns({children:e=[],badge:a=void 0,wrapClass:n=void 0}){const r=J();return t.createElement(z,{className:n||r.Notifications.wrapClass},t.createElement(ma,{toggleButton:{icon:"bell"},className:"flex items-center "+r.Notifications.Dropdown.className,buttonClass:"fs-20px "+r.Notifications.Dropdown.buttonClass,menuClass:r.Notifications.Dropdown.menuClass,badge:a,header:"NOTIFICATIONS",footer:"SEE ALL"},(e||[]).map((o,s)=>{const l=s===0?"fs-20px":"fs-20px w-20px";return t.createElement(Ae,{key:s,className:"py-10px text-wrap",url:o.url},t.createElement("div",{className:l},t.createElement(Q,{name:o.icon,className:"text-theme"})),t.createElement("div",{className:"flex-1 flex-wrap pl-3"},t.createElement("div",{className:"mb-1 text-white"},o.title),t.createElement("div",{className:"small"},o.time)),t.createElement("div",{className:"pl-2 fs-16px"},t.createElement(Q,{name:"chevron-right"})))})))}const Hi=()=>t.createElement("div",{className:"menu-item dropdown"},t.createElement(ve.Link,{to:"/#","data-toggle-class":"app-header-menu-search-toggled","data-toggle-target":".app",className:"menu-link"},t.createElement("div",{className:"menu-icon"},t.createElement(Q,{name:"search",className:"nav-icon"}))));function rs({handleSearch:e=void 0}){return t.createElement("div",null,t.createElement(Hi,null),t.createElement("input",{className:"hidden",type:"text",placeholder:"Search",onChange:e}))}const Ue=({children:e,type:a="info",isFixed:n=void 0,timeout:r=void 0,onClose:o=void 0,icon:s=!0,pre:l=void 0,post:i=void 0,wrapClass:c=void 0,className:m=void 0})=>{const d=J(),u=s===!1?null:s===!0?{info:"info",success:"check",warning:"warning",danger:"x-circle",primary:"",secondary:"",light:"",dark:""}[a]||null:s||null;t.useEffect(()=>{if(typeof o=="function"){const y=setTimeout(()=>{o()},r||5e3);return()=>clearTimeout(y)}},[o,r]);const f=()=>t.createElement(z,{className:c},l,t.createElement("div",{role:"alert",className:R("alert alert-"+a,m||d.Alert.className,n&&"fixed left-1/2 z-[1100] w-[calc(100%-2rem)] max-w-3xl -translate-x-1/2 shadow-lg"),style:n?{[n]:50}:void 0},u&&t.createElement(Q,{name:u,size:16,className:"shrink-0"}),e),i);return n?Ra.createPortal(f(),document.body):f()},Yt={markup:()=>import("prismjs/components/prism-markup"),html:()=>import("prismjs/components/prism-markup"),xml:()=>import("prismjs/components/prism-markup"),svg:()=>import("prismjs/components/prism-markup"),mathml:()=>import("prismjs/components/prism-markup"),css:()=>import("prismjs/components/prism-css"),clike:()=>import("prismjs/components/prism-clike"),javascript:()=>import("prismjs/components/prism-javascript"),js:()=>import("prismjs/components/prism-javascript"),jsx:()=>import("prismjs/components/prism-jsx"),typescript:()=>import("prismjs/components/prism-typescript"),tsx:()=>import("prismjs/components/prism-tsx"),json:()=>import("prismjs/components/prism-json"),bash:()=>import("prismjs/components/prism-bash"),shell:()=>import("prismjs/components/prism-bash"),python:()=>import("prismjs/components/prism-python"),java:()=>import("prismjs/components/prism-java"),c:()=>import("prismjs/components/prism-c"),cpp:()=>import("prismjs/components/prism-cpp"),csharp:()=>import("prismjs/components/prism-csharp"),go:()=>import("prismjs/components/prism-go"),sql:()=>import("prismjs/components/prism-sql"),php:()=>import("prismjs/components/prism-php"),ruby:()=>import("prismjs/components/prism-ruby"),yaml:()=>import("prismjs/components/prism-yaml"),ini:()=>import("prismjs/components/prism-ini"),docker:()=>import("prismjs/components/prism-docker"),powershell:()=>import("prismjs/components/prism-powershell"),git:()=>import("prismjs/components/prism-git"),graphql:()=>import("prismjs/components/prism-graphql")},Ki={html:["markup"],xml:["markup"],svg:["markup"],mathml:["markup"],javascript:["clike"],js:["clike","javascript"],jsx:["markup","clike","javascript"],typescript:["clike","javascript"],tsx:["markup","clike","javascript","jsx","typescript"],c:["clike"],cpp:["c"],csharp:["clike"],java:["clike"],php:["markup"]},Dr={prism:"rf-code-theme-prism",dark:"rf-code-theme-dark",coy:"rf-code-theme-coy",funky:"rf-code-theme-funky",okaidia:"rf-code-theme-okaidia",solarizedlight:"rf-code-theme-solarizedlight",tomorrow:"rf-code-theme-tomorrow",twilight:"rf-code-theme-twilight"},Pr={primary:"bg-primary text-primary-foreground",secondary:"bg-secondary text-secondary-foreground",success:"bg-success text-success-foreground",danger:"bg-destructive text-destructive-foreground",warning:"bg-warning text-warning-foreground",info:"bg-info text-info-foreground",light:"bg-muted text-muted-foreground",dark:"bg-foreground text-background",white:"bg-white text-slate-950",black:"bg-black text-white",transparent:"bg-transparent",default:void 0};function xa(e,a){return typeof a=="string"&&a in e}async function os(e,a=new Set){var n;if(!a.has(e)){for(const r of Ki[e]??[])xa(Yt,r)&&await os(r,a);await((n=Yt[e])==null?void 0:n.call(Yt)),a.add(e)}}const le=({language:e,children:a,pre:n,post:r,wrapClass:o,className:s,showCopy:l=!0,theme:i="tomorrow",background:c="default"})=>{const m=t.useRef(null),d=J(),p=typeof a=="string"?a:String(a??""),u=xa(Yt,e)?e:"tsx",f=xa(Dr,i)?i:"tomorrow",x=xa(Pr,c)?c:"transparent";return t.useEffect(()=>{let y=!1;return(async()=>{try{await os(u)}catch(h){console.warn(`Errore nel caricare il linguaggio Prism "${u}"`,h)}if(!y&&m.current)try{Rl.highlightElement(m.current)}catch(h){console.warn(`Errore nell'evidenziare il blocco Prism "${u}"`,h)}})(),()=>{y=!0}},[p,u]),t.createElement(z,{className:o||d.Code.wrapClass},t.createElement("div",{className:R("flex w-full items-stretch gap-2",(n||r)&&"overflow-x-auto")},n&&t.createElement("div",{className:"flex shrink-0 items-center text-sm text-muted-foreground"},n),t.createElement("pre",{"data-rf-code-theme":f,"data-rf-code-background":x,className:R("relative min-w-0 flex-1 overflow-auto rounded-md border border-border p-4 text-sm",Dr[f],Pr[x],s||d.Code.className)},l&&t.createElement("button",{onClick:()=>On(p),className:"absolute right-2 top-2 inline-flex items-center justify-center rounded-md bg-secondary px-2 py-1 text-xs font-medium text-secondary-foreground transition-colors hover:bg-secondary/80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",title:"Copy code","aria-label":"Copy code"},t.createElement(Q,{name:"clipboard",size:14})),t.createElement("code",{ref:m,className:`language-${u}`},p)),r&&t.createElement("div",{className:"flex shrink-0 items-center text-sm text-muted-foreground"},r)))},Da={primary:"primary",secondary:"secondary",success:"success",warning:"warning",danger:"destructive",info:"info",light:"muted",dark:"foreground"},Wi={primary:"primary-foreground",secondary:"secondary-foreground",success:"success-foreground",warning:"warning-foreground",danger:"destructive-foreground",info:"info-foreground",light:"muted-foreground",dark:"background"},pt=(e,a)=>`hsl(var(--rf-${e})${a===void 0?"":` / ${a}`})`,qi=({progress:e,type:a,thickness:n,showText:r,background:o,size:s,fontSize:l,className:i})=>{const c=pt(Da[o],o==="secondary"||o==="light"?.55:.16),m=pt(Da[a]),d=e>=12?pt(Wi[a]):pt("foreground");return t.createElement("div",{className:R("relative overflow-hidden rounded-full border border-border shadow-sm",i),style:{height:`${n}px`,width:`${s}%`,minWidth:s<100?120:void 0,backgroundColor:c},role:"progressbar","aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},t.createElement("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${e}%`,backgroundColor:m}}),r&&t.createElement("span",{className:"pointer-events-none absolute inset-0 flex items-center justify-center font-medium tabular-nums",style:{fontSize:`${l}px`,color:d}},e,"%"))},Vi=({progress:e,type:a,thickness:n,showText:r,background:o,size:s,fontSize:l,className:i})=>{const c=s/2,m=c-n/2,d=2*Math.PI*m,p=d*((100-e)/100),u=-90,f=pt(Da[o],o==="secondary"||o==="light"?.55:.18),x=pt(Da[a]),y=pt("foreground");return t.createElement("span",{className:R("inline-flex items-center justify-center",i),role:"progressbar","aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},t.createElement("svg",{width:s,height:s,viewBox:`0 0 ${s} ${s}`},t.createElement("circle",{r:m,cx:c,cy:c,fill:"none",stroke:f,strokeWidth:n}),t.createElement("circle",{r:m,cx:c,cy:c,fill:"none",stroke:x,strokeWidth:n,strokeLinecap:"round",strokeDasharray:d,strokeDashoffset:p,style:{transform:`rotate(${u}deg)`,transformOrigin:"center",transition:"stroke-dashoffset 300ms ease"}}),r&&t.createElement("text",{x:"50%",y:"50%",textAnchor:"middle",dominantBaseline:"middle",fontWeight:700,fontSize:l,fill:y},`${e}%`)))},Fe=({val:e=0,max:a=100,min:n=0,shape:r="bar",type:o="primary",background:s="secondary",thickness:l=10,showText:i=!0,size:c=100,fontSize:m=16,label:d=void 0,pre:p=void 0,post:u=void 0,wrapClass:f=void 0,className:x=void 0})=>{var S,v;const y=J(),E=a-n,h=E<=0?0:Math.round(Math.max(0,Math.min(100,(e-n)/E*100))),g=x||((S=y.Percentage)==null?void 0:S.className)||"";return t.createElement(z,{className:f||((v=y.Percentage)==null?void 0:v.wrapClass)},p,d&&t.createElement(Re,{label:d}),r==="bar"?t.createElement(qi,{progress:h,type:o,thickness:l,showText:i,background:s,size:c,fontSize:m,className:g}):t.createElement(Vi,{progress:h,type:o,thickness:l,showText:i,background:s,size:c,fontSize:m,className:g}),u)},Ji="scrape",ba=(...e)=>{};var Zr;let Na=(Zr=Ca==null?void 0:Ca())==null?void 0:Zr.google;typeof _e=="function"&&_e(e=>{Na=e.google});const qt=e=>Na==null?void 0:Na[e],Xi=()=>{const e=localStorage.getItem("googleCredentialToken");if(!e)return console.error("Google credential token not found"),null;if(Mn(e).exp<Date.now()/1e3)return console.error("Google credential token expired"),null;try{return ze.GoogleAuthProvider.credential(e)}catch(n){console.error(n)}return null};let ss;const Zi=e=>{ss=e},ls=()=>Ct("FirebaseProvider",wt(ss,["apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId"],"firebase.")),It=()=>{try{return ze.getAuth()}catch(e){return console.error("FirebaseAuthorization",(e==null?void 0:e.message)||"Error: check Configuration"),null}},Qi=e=>new Promise((a,n)=>{const r=ze.onAuthStateChanged(e,o=>{r(),a(o)},n)}),Ka=async()=>{console.log("Requesting user login.");const e=Xi();if(!e)return console.error("Firebase: Google credential not found."),!1;try{const a=await ze.signInWithCredential(ze.getAuth(),e),n=ze.getAdditionalUserInfo(a);return n!=null&&n.isNewUser,console.log("Firebase: User logged in successfully."),!0}catch(a){return console.error("Firebase getAuthorization: ",a),!1}};function ec(e){const{stsTokenManager:a}=e.toJSON(),n=(a==null?void 0:a.expirationTime)??0;return{accessToken:a==null?void 0:a.accessToken,refreshToken:a==null?void 0:a.refreshToken,expirationTime:a==null?void 0:a.expirationTime,isExpired:n<Date.now()}}const tc=async()=>{const e=It();if(!e)return!1;const a=await Qi(e);if(!a)return Ka();const n=ec(a);if(!n.accessToken)return console.error("Firebase access token not found"),Ka();if(n.isExpired)try{return await a.getIdToken(!0),console.log("Token refreshed successfully."),!0}catch(r){return console.error("Firebase token refresh error: ",r),Ka()}return console.log("Using valid Firebase access token."),!0},is=async e=>{var n;Zi(e);const a=rt.apps.length?rt.app():void 0;if(a){if(((n=a.options)==null?void 0:n.appId)===e.appId)return console.log("[firebase] Already initialized with same appId, skipping re-init"),a;await a.delete()}return rt.initializeApp(e),await tc(),rt.app()},at={key:"@key",value:"@value"};let Wa;typeof _e=="function"&&_e(e=>{e.firebase&&is(e.firebase)});const mt=()=>(!Wa&&rt.apps.length&&(Wa=rt.app().database()),Wa),lt=(e,a,n)=>{const r=`Error during ${e}: ${a}`;if(n)throw new Error(r);console.error(r)},qa=(e,a)=>{if(!e||!(a in e))return e;const{[a]:n,...r}=e;return Object.keys(r).length?r:void 0},ac=e=>{const a=typeof e=="object"&&e!==null&&!Array.isArray(e)?e:Array.isArray(e)?{in:e}:{eq:e};let n;return a.gt!==void 0&&(n={...n,gt:a.gt}),a.lt!==void 0&&(n={...n,lt:a.lt}),a.in!==void 0&&(n={...n,in:a.in}),a.nin!==void 0&&(n={...n,nin:a.nin}),{condition:a,clientCondition:n}},nc=(e,a)=>{switch(a){case at.key:return e.orderByKey();case at.value:return e.orderByValue();default:return e.orderByChild(a)}},Rr=(e,a,n)=>{const[r]=Object.entries(a||{});if(!r)return{dbRef:e,clientWhere:n};const[o]=r;let s=nc(e,o);const l=n==null?void 0:n[o];if(l==null)return{dbRef:s,clientWhere:n};const{condition:i,clientCondition:c}=ac(l);switch(!0){case i.eq!==void 0:return{dbRef:s.equalTo(i.eq),clientWhere:qa(n,o)};case(i.gte!==void 0&&i.lte!==void 0):s=s.startAt(i.gte).endAt(i.lte);break;case(i.gte!==void 0&&i.lt!==void 0):s=s.startAt(i.gte).endAt(i.lt);break;case(i.gt!==void 0&&i.lte!==void 0):s=s.startAt(i.gt).endAt(i.lte);break;case(i.gt!==void 0&&i.lt!==void 0):s=s.startAt(i.gt).endAt(i.lt);break;case i.gte!==void 0:s=s.startAt(i.gte);break;case i.gt!==void 0:s=s.startAt(i.gt);break;case i.lte!==void 0:s=s.endAt(i.lte);break;case i.lt!==void 0:s=s.endAt(i.lt);break}return{dbRef:s,clientWhere:c?{...qa(n,o)||{},[o]:c}:qa(n,o)}},Va=(e,a)=>{if(!a)return e;const n=a.split(".");let r=e;for(const o of n){if(r==null)return;r=r[o]}return r},rc=(e,a)=>e===a?0:e==null?-1:a==null?1:typeof e=="number"&&typeof a=="number"?e-a:typeof e=="boolean"&&typeof a=="boolean"?Number(e)-Number(a):globalThis.String(e).localeCompare(globalThis.String(a),void 0,{numeric:!0,sensitivity:"base"}),oc=(e,a)=>{const n=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{eq:a};for(const[r,o]of Object.entries(n))switch(r){case"eq":if(e!==o)return!1;break;case"gt":if(!(e>o))return!1;break;case"gte":if(!(e>=o))return!1;break;case"lt":if(!(e<o))return!1;break;case"lte":if(!(e<=o))return!1;break;case"in":if(!Array.isArray(o)||!o.includes(e))return!1;break;case"nin":if(Array.isArray(o)&&o.includes(e))return!1;break;default:return!1}return!0},Ja=(e,a,n)=>{const[r,...o]=Object.entries(n||{}),s=Object.entries(a||{});let l=Object.entries(e);if(s.length&&(l=l.filter(([,i])=>s.every(([c,m])=>oc(Va(i,c),m)))),r){const i=[r,...o];l.sort((c,m)=>{for(const[d,p]of i){const u=rc(Va(c[1],d),Va(m[1],d));if(u)return p==="desc"?-u:u}return 0})}return Object.fromEntries(l)},sc=(e,a)=>{const n=new URL(`${e}.json`,mt().ref().toString());return n.searchParams.set("shallow","true"),a&&n.searchParams.set("auth",a),n.toString()};class zn{constructor(){this.readShallow=async(a,n=!1)=>{var r;try{const o=It();if(!o)return[];const s=await((r=o.currentUser)==null?void 0:r.getIdToken().catch(()=>{})),l=sc(a,s),i=await fetch(l);if(!i.ok)throw new Error(`${i.status} ${i.statusText}`);const c=await i.json();return c?Object.keys(c):[]}catch(o){return lt(`reading SHALLOW data in Firebase for ${a}`,o,n),[]}},this.read=async(a,{where:n,order:r,toArray:o=!1,exception:s=!1}={})=>{const{dbRef:l,clientWhere:i}=Rr(mt().ref(a),r,n);try{const c=await l.get();if(c.exists()){ba(`Info: Data found in Firebase for path ${a}`);const m=Ja(c.val(),i,r);return o?Object.values(m):m}else s&&lt(`Data not found in Firebase for path ${a}`,null,s)}catch(c){lt(`reading data in Firebase for ${a}`,c,s)}},this.update=async(a,n,r=!1)=>{try{await mt().ref(a).update(n),ba(`Data successfully merged in Firebase for ${a}`)}catch(o){lt(`updating data in Firebase for ${a}`,o,r)}},this.set=async(a,n,r=!1)=>{try{await mt().ref(a).set(n),ba(`Data successfully updated in Firebase for ${a}`)}catch(o){lt(`updating data in Firebase for ${a}`,o,r)}},this.setChunks=async(a,n,{chunkSize:r=1e3,purge:o=!1,onProgress:s}={})=>{const l=mt().ref(a);try{o&&(await l.remove(),s==null||s(0,0,`Purging existing data at ${a}`));const i=Object.entries(aa(n)),c=Math.ceil(i.length/r);for(let m=0;m<i.length;m+=r){const d=Object.fromEntries(i.slice(m,m+r));await l.update(d);const p=Math.floor(m/r)+1;s==null||s(p,c,`Saving chunk ${p}/${c}`)}}catch(i){lt(`setting data in chunks in Firebase for ${a}`,i,!1)}},this.remove=async(a,n=!1)=>{try{await mt().ref(a).remove(),ba(`Data successfully removed from Firebase for ${a}`)}catch(r){lt(`removing data from Firebase for ${a}`,r,n)}},this.count=async a=>(await this.readShallow(a)).length,this.subscribe=(a,n,{where:r,order:o,fieldMap:s,onLoad:l}={})=>{const i=It();if(!i||!a)return()=>{};const c=()=>{const{dbRef:p,clientWhere:u}=Rr(mt().ref(a),o,r),f=x=>{const y=x.val();if(!y){n([]);return}const E=l?l(Ja(y,u,o)):Ja(y,u,o),h=Object.entries(E);if(!s){const v=h.map(([C,b],T)=>typeof b=="object"&&b!==null?{_index:T,_key:C,...b}:{_index:T,_key:C,[at.value]:b});n(v);return}const g=Object.keys(s),S=h.map(([v,C],b)=>{const T=typeof C=="object"&&C!==null?{[at.key]:v,...C}:{[at.key]:v,[at.value]:C},P={};for(const M of g){const k=s[M];P[M]=k.includes("{")?we.parse(T,k):k===at.key?v:k===at.value?C:T[k]}return{_key:v,_index:b,...P}});n(S)};return p.on("value",f),()=>{p.off("value",f)}};let m;const d=ze.onAuthStateChanged(i,p=>{m==null||m(),m=void 0,p?m=c():n([])});return()=>{m==null||m(),d()}}}getConfigurationState(){return ls()}isConfigured(){return this.getConfigurationState().configured}}const ra=new zn,cs=async(e,a,n,r)=>{const o=new Date().toISOString(),l={user:gt("user").email??"unknown",when:o,action:a,record:n,recordKey:r};await ra.set(`/log/${e}/${yt(o)}`,l)},ms={container:Sa,wrapper:z,row:$e,col:F},Ge=({name:e,onChange:a=void 0,defaultValue:n=void 0,placeholder:r=void 0,label:o=void 0,type:s="text",required:l=!1,updatable:i=!0,disabled:c=!1,pre:m=void 0,post:d=void 0,feedback:p=void 0,min:u=void 0,max:f=void 0,step:x=void 0,wrapClass:y=void 0,className:E=void 0})=>{const{value:h,handleChange:g,formWrapClass:S}=Se({name:e,onChange:a,wrapClass:y,inputType:s,defaultValue:n}),v=t.useId(),C=Hs({name:e,value:h,handleChange:g});return t.createElement(z,{className:S},o&&t.createElement(Re,{label:o,required:l,htmlFor:v}),t.createElement(z,{className:m||d?"input-group":""},m&&t.createElement("span",{className:"input-group-text"},m),t.createElement("input",{id:v,type:s,name:e,className:`form-control${E?" "+E:""}`,placeholder:r,required:l,disabled:c||!i&&!ua(h),value:h,onChange:g,min:u,max:f,step:x,onDragOver:b=>b.preventDefault(),onDrop:C}),d&&t.createElement("span",{className:"input-group-text"},d)),p&&t.createElement("div",{className:"feedback"},p))},De=e=>t.createElement(Ge,{...e,type:"text"}),Mt=e=>t.createElement(Ge,{...e,type:"number"}),oa=e=>t.createElement(Ge,{...e,type:"email"}),Hn=e=>{const[a,n]=t.useState(!1);return t.createElement(Ge,{...e,type:a?"text":"password",post:t.createElement(fe,{className:"p-0 border-0",icon:a?"eye":"eye-slash",onClick:()=>n(!a)})})},Kn=e=>t.createElement(Ge,{...e,type:"color"}),Wn=e=>t.createElement(Ge,{...e,type:"date"}),qn=e=>t.createElement(Ge,{...e,type:"time"}),Vn=e=>t.createElement(Ge,{...e,type:"datetime-local"}),Jn=e=>t.createElement(Ge,{...e,type:"week"}),Xn=e=>t.createElement(Ge,{...e,type:"month"}),Ga=e=>t.createElement(Ge,{...e,type:"range"}),ds=e=>t.createElement(Ge,{...e,type:"url"}),sa=({name:e,onChange:a=void 0,defaultValue:n=void 0,label:r=void 0,title:o=void 0,required:s=!1,valueChecked:l="on",pre:i=void 0,post:c=void 0,wrapClass:m=void 0,className:d=void 0})=>{const p=h=>h==null?"":`${h}`,{value:u,handleChange:f,formWrapClass:x}=Se({name:e,onChange:a,wrapClass:m,inputType:typeof l=="number"?"number":"text",defaultValue:n!==void 0?p(n)===p(l)?p(l):"":void 0}),y=t.useId(),E=h=>{const g=h.target.checked?l:"";f==null||f({target:{name:e,value:g}}),console.log("Checkbox",e,u,"valueChecked:",l,"typeof",typeof u,typeof l,"savedType",typeof g)};return!m&&r&&(m="checkbox"),t.createElement(z,{className:x},i,t.createElement("input",{type:"checkbox",id:y,name:e,title:o,className:`form-check-input${d?" "+d:""}`,checked:p(u)===p(l),onChange:E}),r&&t.createElement("label",{className:"form-check-label pl-1",htmlFor:y},r,s&&t.createElement("span",{className:"text-danger"}," *")),c)},Et=e=>t.createElement(z,{className:e==null?void 0:e.wrapClass},t.createElement(sa,{...e,wrapClass:"form-check form-switch"})),Re=({label:e,required:a=!1,htmlFor:n=void 0,className:r=void 0})=>t.createElement("label",{htmlFor:n,className:`form-label${r?" "+r:""}`},e," ",a&&t.createElement("span",{className:"text-danger"},"*")),be=({name:e,onChange:a=void 0,defaultValue:n=void 0,placeholder:r=void 0,label:o=void 0,required:s=!1,updatable:l=!0,disabled:i=!1,rows:c=void 0,useRef:m={},pre:d=void 0,post:p=void 0,feedback:u=void 0,className:f=void 0,wrapClass:x=void 0})=>{const{value:y,handleChange:E,formWrapClass:h}=Se({name:e,onChange:a,wrapClass:x,defaultValue:n}),g=t.useId(),S=Hs({name:e,value:y,handleChange:E});return t.createElement(z,{className:h},o&&t.createElement(Re,{required:s,label:o,htmlFor:g}),t.createElement(z,{className:d||p?"input-group":""},d&&t.createElement("span",{className:"input-group-text"},d),t.createElement("textarea",{id:g,name:e,className:`form-control${f?" "+f:""}`,ref:v=>m=v,rows:c,placeholder:r,required:s,disabled:i||!l&&!ua(y),value:y,onChange:E,onDragOver:v=>v.preventDefault(),onDrop:S}),p&&t.createElement("span",{className:"input-group-text"},p)),u&&t.createElement("div",{className:"feedback"},u))},la=({children:e,onClick:a=void 0,label:n=void 0,actives:r=void 0,draggable:o=void 0,onDrop:s=void 0,disables:l=void 0,loaders:i=void 0,pre:c=void 0,post:m=void 0,wrapClass:d=void 0,className:p=void 0,itemClass:u=void 0})=>{const f=`list-group${p?" "+p:""}`,x=E=>{const h=g=>g==null||typeof g=="boolean"?"":typeof g=="string"||typeof g=="number"?`${g}`:Array.isArray(g)?g.map(h).join(" "):t.isValidElement(g)?h(g.props.children):"";return h(E).replace(/\s+/g," ").trim()},y=(E,h)=>{E.dataTransfer.setData("text/plain",(s==null?void 0:s(h))??h)};return t.createElement(z,{className:d},c,n&&t.createElement("div",null,n),t.createElement("div",{className:f},e.map((E,h)=>{const g=r==null?void 0:r.includes(h),S=l==null?void 0:l.includes(h),v=i==null?void 0:i.includes(h),C=`list-group-item pl-1 ${u?" "+u:""}${a?" list-group-item-action":""}${g?" active":""}${S?" disabled":""}${v?" loading":""}`;return a?t.createElement("div",{key:h,onClick:b=>{!v&&!Ln(b)&&a(b,h)},className:C,style:{cursor:"pointer"}},E):t.createElement("span",{key:h,className:C,draggable:o,onDragStart:o?b=>y(b,x(E)):void 0,style:{cursor:o?"grab":"default"}},o&&t.createElement(Q,{name:"grip-vertical"}),E)})),m)},us={field:"",dir:"asc"},Mr=e=>typeof e=="string"&&!Number.isNaN(Date.parse(e)),lc=(e,a)=>e==null&&a==null?0:e==null?1:a==null?-1:typeof e=="number"&&typeof a=="number"?e-a:typeof e=="boolean"&&typeof a=="boolean"?Number(e)-Number(a):e instanceof Date&&a instanceof Date?e.getTime()-a.getTime():Mr(e)&&Mr(a)?Date.parse(e)-Date.parse(a):String(e).localeCompare(String(a),void 0,{numeric:!0,sensitivity:"base"}),Dt={normalize(e){if(e!=null&&e.field)return{field:e.field,dir:e.dir==="desc"?"desc":"asc"}},toggle(e,a){return!e||e.field!==a?{field:a,dir:"asc"}:{field:a,dir:e.dir==="asc"?"desc":"asc"}},compareValues(e,a,n="asc"){const r=lc(e,a);return n==="desc"?-r:r},compareRecords(e,a,n){const r=this.normalize(n);if(!r)return 0;const o=ta(e,r.field),s=ta(a,r.field);return this.compareValues(o,s,r.dir)},records(e,a){if(!e)return e;const n=this.normalize(a);return n?[...e].sort((r,o)=>this.compareRecords(r,o,n)):[...e]}},ps=e=>e?typeof e=="string"||typeof e=="number"?e.toString().split(","):e:[],Zn=e=>{var a,n;return e?typeof e!="object"?{label:(e==null?void 0:e.toString())||"",value:(e==null?void 0:e.toString())||""}:{label:((a=e==null?void 0:e.label)==null?void 0:a.toString())||"",value:((n=e==null?void 0:e.value)==null?void 0:n.toString())||""}:{label:"@value",value:"@value"}},Qn=e=>e.map(a=>Zn({label:a.label??a.name??a.title??a._key??"",value:a.value??a._key??a.label??a.name??""}));function er(e){return{fieldMap:e!=null&&e.fieldMap?Zn(e.fieldMap):void 0,where:e==null?void 0:e.where,order:e==null?void 0:e.order,onLoad:e==null?void 0:e.onLoad}}const ic=(e,a,n)=>{const r=e==null?void 0:e[n.field],[o]=Object.entries(a||{});if(!o||!r)return!1;const[s,l]=o;return s===r&&l===n.dir},tr=(e,a,n,r,o)=>{const s=n||{...us,field:"label"},l=[...e.map(Zn),...a];return e.length===0&&ic(o,r,s)?l:Dt.records(l,s)||[]},Ne=({name:e,onChange:a=void 0,defaultValue:n=void 0,required:r=!1,updatable:o=!0,disabled:s=!1,optionEmpty:l={label:"Select...",value:""},label:i=void 0,title:c=void 0,pre:m=void 0,post:d=void 0,feedback:p=void 0,options:u=[],db:f=void 0,order:x=void 0,wrapClass:y=void 0,className:E=void 0})=>{const{value:h,handleChange:g,formWrapClass:S}=Se({name:e,onChange:a,wrapClass:y,defaultValue:n}),v=J(),C=t.useMemo(()=>er(f),[f==null?void 0:f.fieldMap,f==null?void 0:f.where,f==null?void 0:f.order,f==null?void 0:f.onLoad]),b=ot(),[T,P]=t.useState([]);t.useEffect(()=>b.subscribe(f==null?void 0:f.path,w=>P(Qn(w)),C),[b,f==null?void 0:f.path,C]);const M=t.useMemo(()=>{const w=tr(u,T,x,f==null?void 0:f.order,C.fieldMap);return Fa(h&&!w.length?[...w,{label:`❌ ${h.toString()}`,value:h.toString()}]:w)},[u,T,x,f==null?void 0:f.order,C.fieldMap,h]);!h&&!l&&M.length>0&&(g==null||g({target:{name:e,value:M[0].value}}));const k=t.useId();return t.createElement(z,{className:S||v.Select.wrapClass},i&&t.createElement(Re,{label:i,required:r,htmlFor:k}),t.createElement(z,{className:m||d?"input-group flex-nowrap":""},m&&t.createElement("span",{className:"input-group-text"},m),t.createElement("select",{id:k,name:e,className:R("form-select",E||v.Select.className),value:h??"",required:r,disabled:s||!o&&!ua(h),onChange:g,title:c},l&&t.createElement("option",{key:`${k}-empty`,value:l.value},l.label),M.map((w,N)=>t.createElement("option",{key:`${k}-${N}`,value:w.value},w.label))),d&&t.createElement("span",{className:"input-group-text"},d)),p&&t.createElement("div",{className:"feedback"},p))},ar=({name:e,defaultValue:a=void 0,min:n=void 0,max:r=void 0,onChange:o=void 0,required:s=!1,updatable:l=!0,disabled:i=!1,label:c=void 0,title:m=void 0,placeholder:d=void 0,pre:p=void 0,post:u=void 0,feedback:f=void 0,options:x=[],db:y=void 0,order:E=void 0,wrapClass:h=void 0,className:g=void 0,creatable:S=!1,onCreate:v=void 0})=>{const{value:C,handleChange:b,formWrapClass:T}=Se({name:e,onChange:o,wrapClass:h,defaultValue:a}),P=J(),M=t.useMemo(()=>ps(C),[C]),[k,w]=t.useState(()=>M);t.useEffect(()=>{_n(M,k)||w(M)},[M]);const N=t.useMemo(()=>er(y),[y==null?void 0:y.fieldMap,y==null?void 0:y.where,y==null?void 0:y.order,y==null?void 0:y.onLoad]),D=ot(),[I,A]=t.useState([]);t.useEffect(()=>D.subscribe(y==null?void 0:y.path,ee=>A(Qn(ee)),N),[D,y==null?void 0:y.path,N]);const[_,O]=t.useState([]),L=t.useMemo(()=>{const ee=tr([...x,..._],I,E,y==null?void 0:y.order,N.fieldMap);return Fa(ee,"value")},[x,_,I,E,y==null?void 0:y.order,N.fieldMap]),$=(ee,ie)=>{if(ee){if(k.includes(ee)||r&&k.length>=r){ie.value="";return}w(X=>{const pe=[...X,ee];return setTimeout(()=>{b==null||b({target:{name:e,value:pe}})},0),pe}),ie.value=""}},j=ee=>{const ie=ee.target.value;L.some(pe=>pe.value===ie)&&$(ie,ee.target)},V=ee=>{if(ee.key!=="Enter")return;ee.preventDefault();const ie=ee.target.value.trim();if(!ie)return;if(!L.some(pe=>pe.value===ie)){if(!S)return;O(pe=>[...pe,{label:ie,value:ie}]),v==null||v(ie)}$(ie,ee.target)},H=ee=>{w(ie=>{const X=ie.filter(pe=>pe!==ee);return setTimeout(()=>{b==null||b({target:{name:e,value:X}})},0),X})},K=t.useId(),B=`${K}-options`;return t.createElement(z,{className:T||P.Autocomplete.wrapClass},c&&t.createElement(Re,{label:c,required:s,htmlFor:K}),t.createElement(z,{className:p||u?"input-group flex-nowrap":""},p&&t.createElement("span",{className:"input-group-text"},p),t.createElement("div",{className:"flex flex-wrap items-center gap-1 form-control !h-auto min-h-9 py-1.5 px-2"},k.map(ee=>t.createElement("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-xs font-medium bg-primary/10 text-primary border border-primary/20 rounded-full",key:ee},ee,t.createElement("button",{type:"button",className:"opacity-60 hover:opacity-100 transition-opacity ml-0.5",onClick:()=>H(ee)},"×"))),(!r||k.length<r)&&t.createElement("input",{id:K,type:"text",className:R("flex-1 min-w-[120px] border-none outline-none bg-transparent text-sm placeholder:text-muted-foreground",g||P.Autocomplete.className),required:s&&k.length<(n||0),disabled:i||!l&&!ua(C),placeholder:S?d??"Type or press Enter to create…":d,title:m,list:B,onChange:j,onKeyDown:V})),t.createElement("datalist",{id:B},L.map((ee,ie)=>t.createElement("option",{value:ee.value,key:`${K}-${ie}`},ee.label))),u&&t.createElement("span",{className:"input-group-text"},u)),f&&t.createElement("div",{className:"feedback"},f))},nr=({name:e,defaultValue:a=void 0,onChange:n=void 0,required:r=!1,updatable:o=!0,disabled:s=!1,label:l=void 0,title:i=void 0,pre:c=void 0,post:m=void 0,feedback:d=void 0,options:p=[],db:u=void 0,order:f=void 0,wrapClass:x=void 0,className:y=void 0,checkClass:E=void 0})=>{const{value:h,handleChange:g,formWrapClass:S}=Se({name:e,onChange:n,wrapClass:x,defaultValue:a}),v=t.useMemo(()=>ps(h),[h]),[C,b]=t.useState(()=>v);t.useEffect(()=>{_n(v,C)||b(v)},[v]);const T=t.useMemo(()=>er(u),[u==null?void 0:u.fieldMap,u==null?void 0:u.where,u==null?void 0:u.order,u==null?void 0:u.onLoad]),P=ot(),[M,k]=t.useState([]);t.useEffect(()=>P.subscribe(u==null?void 0:u.path,O=>k(Qn(O)),T),[P,u==null?void 0:u.path,T]);const w=t.useMemo(()=>{const O=tr(p,M,f,u==null?void 0:u.order,T.fieldMap);return Fa(O,"value")},[p,M,f,u==null?void 0:u.order,T.fieldMap]),N=O=>{b(L=>{const $=L.filter(j=>j!==O);return setTimeout(()=>{g==null||g({target:{name:e,value:$}})},0),$})},D=O=>{const L=O.target.value;if(!O.target.checked){N(L);return}w.filter($=>$.value===L).length!==0&&(C.includes(L)||b($=>{const j=[...$,L];return setTimeout(()=>{g==null||g({target:{name:e,value:j}})},0),j}))},I=t.useId(),A=s||!o&&C.length>0,_=t.createElement(z,{className:R(c||m?"form-control !h-auto min-h-9 w-full min-w-0 flex-col items-start py-2 px-3":"","space-y-1")},w.map(O=>{const L=ko(`cl-${I}-${e}-${O.value}`);return t.createElement("div",{key:L,className:R("form-check flex w-full items-center gap-2",E)},t.createElement("input",{className:"form-check-input shrink-0",type:"checkbox",id:L,name:e,value:O.value,onChange:D,checked:C.includes(O.value),disabled:A,title:i}),t.createElement("label",{htmlFor:L,className:"form-check-label"},O.label))}));return t.createElement(z,{className:R(S,y)},l&&t.createElement(t.Fragment,null,t.createElement(Re,{label:l,className:"form-check-label",required:r}),t.createElement("hr",{className:"mt-0"})),c||m?t.createElement(z,{className:"input-group flex-nowrap items-stretch"},c&&t.createElement("span",{className:"input-group-text"},c),_,m&&t.createElement("span",{className:"input-group-text"},m)):_,d&&t.createElement("div",{className:"feedback"},d))},fs={US:"United States",CN:"中国",IT:"Italia",FR:"France",DE:"Deutschland",ES:"España",PT:"Portugal",RU:"Россия",JP:"日本"},rr={it:"Italiano",en:"English",fr:"Français",de:"Deutsch",es:"Español",pt:"Português",ru:"Русский",ja:"日本語",ko:"한국어"},or=(e=!1)=>{const a=localStorage.getItem("user.country")||navigator.language.split("-")[1]||"US";return e?a:fs[a]},gs=(e=!1)=>{const a=localStorage.getItem("user.lang")||navigator.language.split("-")[0]||"en";return e?a:rr[a]},Ie="Please ignore all previous instructions.",Oe="Do not repeat yourself. Do not self reference. Do not explain what you are doing.",cc={SEARCH_INTENT_FROM_KEYWORDS:`
8
+ ${Ie}
9
+ Please respond only in the {language} language.
10
+ You are a keyword research expert that speaks and writes fluent {language}.
11
+ I will give you a long list of keywords, and I want you to classify them by the search intent, whether commercial, transactional, navigational, informational, local or investigational.
12
+ Once done, please print them out in a {output} with "Keyword" as the first column, and "Search Intent" as the second.
13
+ Here are the keywords - {search}
14
+ `,RELATED_KEYWORD_GENERATOR:`
15
+ ${Ie}
16
+ Please respond only in the {language} language.
17
+ You are a keyword research expert that speaks and writes fluent {language}.
18
+ I want you to generate a list of {limit} keywords closely related to "{search}" without duplicating any words.
19
+ Please create a {output} with two columns "Keyword" and "Search Intent".
20
+ The first column should be the keyword you generated, and the second column should be the search intent of the keyword (commercial, transactional, navigational, informational, local or investigational).
21
+ ${Oe}
22
+ `,LONG_TAIL_KEYWORD_GENERATOR:`
23
+ ${Ie}
24
+ Please respond only in the {language} language.
25
+ You are a keyword research expert that speaks and writes fluent {language}.
26
+ I want you to generate a list of {limit} long-tail keywords for "{search}".
27
+ Please create a {output} with two columns "Keyword" and "Search Intent".
28
+ The first column should be the keyword you generated, and the second column should be the search intent of the keyword (commercial, transactional, navigational, informational, local or investigational).
29
+ ${Oe}
30
+ `,KEYWORD_STRATEGY:`
31
+ ${Ie}
32
+ Please respond only in the {language} language.
33
+ You are a market research expert that speaks and writes fluent {language}.
34
+ You are an expert in keyword research and can develop a full SEO content plan in fluent {language}.
35
+ "{search}" is the target keyword for which you need to create a Keyword Strategy & Content Plan.
36
+ Create a {output} with a list of {limit} closely related keywords for an SEO strategy plan for the main keyword "{search}".
37
+ Cluster the keywords according to the top 10 super categories and name the super category in the first column as "category".
38
+ There should be a maximum of 6 keywords in a super category.
39
+ The second column should be called "keyword" and contain the suggested keyword.
40
+ The third column will be called "searchIntent" and will show the search intent of the suggested keyword from the following list of intents (commercial, transactional, navigational, informational, local or investigational).
41
+ The fourth column will be called "title" and will be catchy and click-bait title to use for an article or blog post about that keyword.
42
+ The fifth column will be called "description: and will be a catchy meta description with a maximum length of 160 words.
43
+ The meta description should ideally have a call to action.
44
+ Do not use markdown, line breaks, single quotes, double quotes or any other enclosing characters in any of the columns you fill in.
45
+ ${Oe}
46
+ Please return the responses in a valid JSON object following this prototype: [{ category: "", keyword: "", searchIntent: "", title: "", description: "" }, {...}].
47
+ `,GENERATE_BLOG_POST_TITLES:`
48
+ ${Ie}
49
+ You are an expert copywriter who writes catchy titles for blog posts.
50
+ You have a {voice} tone of voice.
51
+ You have a {style} writing style.
52
+ Write {limit} catchy blog post titles with a hook for the topic "{search}".
53
+ The titles should be written in the {language} language.
54
+ The titles should be less than 60 characters.
55
+ The titles should include the words from the topic "{search}".
56
+ Please create a {output} where each object has a single column named "Title."
57
+ Do not use markdown, line breaks, single quotes, double quotes or any other enclosing characters.
58
+ ${Oe}
59
+ `,GENERATE_BLOG_POST_DESCRIPTIONS:`
60
+ ${Ie}
61
+ You are an expert copywriter who writes catchy descriptions for blog posts.
62
+ You have a {voice} tone of voice.
63
+ You have a {style} writing style.
64
+ Write {limit} catchy blog post descriptions with a hook for the blog post titled "{search}".
65
+ The descriptions should be written in the {language} language.
66
+ The descriptions should be less than 160 characters.
67
+ The descriptions should include the words from the title "{search}".
68
+ Please create a {output} where each object has a single column named "Description."
69
+ Do not use markdown, line breaks, single quotes, double quotes or any other enclosing characters.
70
+ ${Oe}
71
+ `,GENERATE_BLOG_POST_OUTLINE:`
72
+ ${Ie}
73
+ You are an expert copywriter who creates content outlines.
74
+ You have a {voice} tone of voice.
75
+ You have a {style} writing style.
76
+ Create {limit} alternative long form content outlines in the {language} language for the blog post titled {search}.
77
+ Each outline should include a minimum of 3-4 headings, and each heading should have 4-5 subheadings.
78
+ Each outline should be extensive and should cover the entire topic.
79
+ Create detailed subheadings that are engaging and catchy.
80
+ Do not write the blog post, only the outlines.
81
+ Write the output as an array of outlines, where each outline is an array of sections.
82
+ The response should have this exact structure:
83
+ [
84
+ {
85
+ "outline": [
86
+ {
87
+ "headline": "First Section Title",
88
+ "subheadings": ["Point 1", "Point 2", "Point 3", "Point 4"]
89
+ },
90
+ {
91
+ "headline": "Second Section Title",
92
+ "subheadings": ["Point 1", "Point 2", "Point 3", "Point 4"]
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "outline": [
98
+ // next alternative outline sections...
99
+ ]
100
+ }
101
+ ]
102
+ Each outline array should contain 3-4 different sections.
103
+ Avoid self-reference and the inclusion of explanatory notes, crafting outlines that speak directly to the essence of the blog post.
104
+ ${Oe}
105
+ `,GENERATE_COMPLETE_BLOG_POST_FROM_OUTLINE:`
106
+ ${Ie}
107
+ You are an expert copywriter who writes detailed and thoughtful blog articles.
108
+ You have a {voice} tone of voice.
109
+ You have a {style} writing style.
110
+ I will give you an outline for an article and I want you to expand in the {language} language on each of the subheadings to create a complete article from it.
111
+ Please intersperse short and long sentences.
112
+ Utilize uncommon terminology to enhance the originality of the content.
113
+ Please format the content in a professional format.
114
+ Do not use markdown, line breaks, single quotes, double quotes or any other enclosing characters in any of the columns you fill in.
115
+ ${Oe}
116
+ Please return the responses in a valid JSON object following this prototype: { intro: { title: "", paragraphs: [...] }, sections: [{ title: "", paragraphs: [...] }, {...}], conclusion: { title: "", paragraphs: [...] } }.
117
+ The blog article outline is - "{search}"
118
+ `,GENERATE_COMPLETE_BLOG_POST_FROM_TOPIC:`
119
+ ${Ie}
120
+ You are an expert copywriter who writes detailed and thoughtful blog articles.
121
+ You have a {voice} tone of voice.
122
+ You have a {style} writing style.
123
+ I will give you a topic for an article and I want you to create an outline for the topic with a minimum of 20 headings and subheadings.
124
+ I then want you to expand in the {language} language on each of the individual subheadings in the outline to create a complete article from it.
125
+ Please intersperse short and long sentences.
126
+ Utilize uncommon terminology to enhance the originality of the content.
127
+ Please format the content in a professional format.
128
+ ${Oe}
129
+ Send me the outline and then immediately start writing the complete article.
130
+ The blog article topic is - "{search}".
131
+ `,GENERATE_INTRODUCTION_USING_FRAMEWORK:`
132
+ ${Ie}
133
+ You are an expert copywriter who writes detailed and compelling blog articles.
134
+ You have a {voice} tone of voice.
135
+ You have a {style} writing style.
136
+ I want you to write a compelling blog introduction paragraph of around {limit} words on "{search}" in the {language} language.
137
+ Please use the {framework} copywriting framework to hook and grab the attention of the blog readers.
138
+ Please intersperse short and long sentences.
139
+ Utilize uncommon terminology to enhance the originality of the content.
140
+ Please format the content in a professional format.
141
+ ${Oe}
142
+ I will give you a list of keywords below and it would be great if you can add them into the text wherever appropriate.
143
+ Please do highlight these keywords in bold in the text using markdown if you have them in the text.
144
+ Here are the keywords - "{keywords}". Remember that the topic is "{search}"
145
+ `,GENERATE_PARAGRAPH_OF_TEXT:`
146
+ ${Ie}
147
+ You are an expert copywriter who writes detailed and thoughtful blog articles.
148
+ You have a {voice} tone of voice.
149
+ You have a {style} writing style.
150
+ I want you to write around {limit} words on "{search}" in the {language} language.
151
+ I will give you a list of keywords that need to be in the text that you create.
152
+ Please intersperse short and long sentences.
153
+ Utilize uncommon terminology to enhance the originality of the content.
154
+ Please format the content in a professional format.
155
+ ${Oe}
156
+ Here are the keywords - "{keywords}".
157
+ Please highlight these keywords in bold in the text using markdown.
158
+ `,GENERATE_DICTIONARY:`
159
+ ${Ie}
160
+ Generate a simple list of all {search} in the {output_array} format.
161
+ Kindly respond only in the {language} language.
162
+ ${Oe}
163
+ `,GENERATE_FREE:`
164
+ ${Ie}
165
+ {search}
166
+ Please respond only in the {language} language.
167
+ ${Oe}
168
+ `},mc={SEARCH_INTENT_FROM_KEYWORDS:["You are a keyword research expert that speaks and writes fluent {language}."],RELATED_KEYWORD_GENERATOR:["You are a keyword research expert that speaks and writes fluent {language}."],LONG_TAIL_KEYWORD_GENERATOR:["You are a keyword research expert that speaks and writes fluent {language}."],KEYWORD_STRATEGY:["You are a market research expert that speaks and writes fluent {language}.","You are an expert in keyword research and can develop a full SEO content plan in fluent {language}."],GENERATE_BLOG_POST_TITLES:["You are an expert copywriter who writes catchy titles for blog posts and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_BLOG_POST_DESCRIPTIONS:["You are an expert copywriter who writes catchy descriptions for blog posts and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_BLOG_POST_OUTLINE:["You are an expert copywriter who creates content outlines and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_COMPLETE_BLOG_POST_FROM_OUTLINE:["You are an expert copywriter who writes detailed and thoughtful blog articles and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_COMPLETE_BLOG_POST_FROM_TOPIC:["You are an expert copywriter who writes detailed and thoughtful blog articles and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_INTRODUCTION_USING_FRAMEWORK:["You are an expert copywriter who writes detailed and compelling blog articles and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_PARAGRAPH_OF_TEXT:["You are an expert copywriter who writes detailed and thoughtful blog articles and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_DICTIONARY:["You are an expert copywriter who writes detailed and thoughtful blog articles and writes fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."],GENERATE_FREE:["You are an expert copywriter who writes catchy text in fluent {language}.","You have a {voice} tone of voice.","You have a {style} writing style."]},dc={SEARCH_INTENT_FROM_KEYWORDS:"Enter the list of keywords to classify by search intent.",RELATED_KEYWORD_GENERATOR:"What is the main keyword you want related suggestions for?",LONG_TAIL_KEYWORD_GENERATOR:"What is the main keyword you want long-tail keywords for?",KEYWORD_STRATEGY:"What is the main keyword to build your SEO strategy around?",GENERATE_BLOG_POST_TITLES:"What is the main topic you want to generate titles about?",GENERATE_BLOG_POST_DESCRIPTIONS:"What is the title of the blog post to generate descriptions for?",GENERATE_BLOG_POST_OUTLINE:"What is the blog post title you want an outline for?",GENERATE_COMPLETE_BLOG_POST_FROM_OUTLINE:"What is the outline or blog topic to expand into a full article?",GENERATE_COMPLETE_BLOG_POST_FROM_TOPIC:"What is the topic for the blog article?",GENERATE_INTRODUCTION_USING_FRAMEWORK:"What is the topic of the blog post you want an introduction for?",GENERATE_PARAGRAPH_OF_TEXT:"What is the topic you want to write a paragraph about?",GENERATE_DICTIONARY:"What items do you want to list in a dictionary format?",GENERATE_FREE:"What custom prompt would you like to run?"},uc=()=>Object.values(rr),pc=()=>hs,fc=()=>bs,ya=e=>({prompt:cc[e]??"",label:dc[e]??""}),gc=(e,a,n)=>{const{lang:r,voice:o,style:s,limit:l}=a;return e.replaceAll("{search}",n||"").replaceAll("{language}",r||"").replaceAll("{voice}",o||"").replaceAll("{style}",s||"").replaceAll("{limit}",l||"")},hc="default",bc="Informative",yc="Argumentative",hs=["Authoritative","Caring","Casual","Cheerful","Coarse","Conservative","Conversational","Creative","Dry","Edgy","Enthusiastic","Expository","Formal","Frank","Friendly","Fun","Funny","Humorous","Informative","Irreverent","Journalistic","Matter of fact","Nostalgic","Objective","Passionate","Poetic","Playful","Professional","Provocative","Quirky","Respectful","Romantic","Sarcastic","Serious","Smart","Snarky","Subjective","Sympathetic","Trendy","Trustworthy","Unapologetic","Upbeat","Witty"],bs=["Academic","Analytical","Argumentative","Conversational","Creative","Critical","Descriptive","Epigrammatic","Epistolary","Expository","Informative","Instructive","Journalistic","Metaphorical","Narrative","Persuasive","Poetic","Satirical","Technical"],Or={default:"You are a highly skilled and versatile AI assistant who can adapt to any task or context. You write in fluent {language}, using a {voice} tone of voice and a {style} writing style. You provide clear, concise, and well-structured responses, ensuring both accuracy and creativity according to the user's needs.",copywriter:"You are an expert copywriter who writes catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",seo_expert:"You are an experienced SEO specialist who writes optimized, keyword-rich content in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",storyteller:"You are a talented storyteller who crafts engaging narratives in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",translator:"You are a professional translator who accurately translates content into {language}, maintaining meaning, nuance, and cultural relevance. You have a {voice} tone of voice. You have a {style} writing style.",marketing_strategist:"You are a skilled marketing strategist who creates persuasive campaigns in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",teacher:"You are a knowledgeable teacher who explains concepts clearly and simply in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",technical_writer:"You are a precise and detail-oriented technical writer who produces clear documentation in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",interviewer:"You are a skilled interviewer who formulates relevant and engaging questions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",product_describer:"You are an e-commerce product description specialist who writes compelling, benefit-focused descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",social_media_manager:"You are a creative social media manager who writes engaging, platform-specific posts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",ux_writer:"You are a UX writer who creates clear, concise, and user-friendly interface text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",press_officer:"You are an experienced press officer who writes impactful press releases in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",legal_drafter:"You are a legal expert who drafts precise and compliant legal texts in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",recruiter:"You are a professional recruiter who writes compelling job descriptions and outreach messages in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",news_reporter:"You are a news reporter who writes objective and concise news articles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",search_intent_analyst:"You are a keyword research expert who analyzes search intent from given keywords and writes in fluent {language}.",keyword_generator:"You are a keyword research expert who generates related keywords in fluent {language}.",long_tail_keyword_generator:"You are a keyword research expert who generates long-tail keywords in fluent {language}.",seo_content_planner:"You are a market research expert and SEO strategist who develops a full SEO content plan in fluent {language}.",blog_title_specialist:"You are an expert copywriter who writes catchy blog post titles in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",blog_description_specialist:"You are an expert copywriter who writes compelling blog post descriptions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",blog_outline_specialist:"You are an expert copywriter who creates structured content outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",blog_writer_from_outline:"You are an expert copywriter who writes complete blog posts from outlines in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",blog_writer_from_topic:"You are an expert copywriter who writes complete blog posts from topics in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",blog_intro_specialist:"You are an expert copywriter who writes engaging introductions using known copywriting frameworks in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",paragraph_writer:"You are an expert copywriter who writes single, impactful paragraphs in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",dictionary_writer:"You are a copywriter who writes concise and clear definitions in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style.",creative_free_writer:"You are an expert copywriter who writes any kind of catchy text in fluent {language}. You have a {voice} tone of voice. You have a {style} writing style."};let Ec=class{static getRoles(){return Object.keys(Or)}static getLangs(){return Object.values(rr)}static getCountries(){return Object.values(fs)}static getVoices(){return hs}static getStyles(){return bs}static defaults(){return{role:hc,language:gs(),country:or(),voice:localStorage.getItem("prompt.voice")||bc,style:localStorage.getItem("prompt.style")||yc}}static parseRole(a,n={}){return we.parse({...this.defaults(),...n},Or[a??this.defaults().role])}static parsePrompt(a,n={}){return we.parse({...this.defaults(),...n},a)}};const ys="https://api.openai.com/v1/chat/completions",Es=.5,vs="gpt-5";let ge;typeof _e=="function"&&_e(e=>{ge=e.ai});const ws=e=>{try{return e.startsWith("{")||e.startsWith("[")?JSON.parse(e):e}catch{console.error("Errore di sintassi JSON");return}},vc=(e,a,n)=>a,Cs=async(e,a,n=0)=>{if(!(ge!=null&&ge.openaiApiKey)){console.error(`
169
+ ❌ OpenAI API Key not configured.
170
+
171
+ To use ChatGPT, you must configure a valid OpenAI API key.
172
+
173
+ 🛠 How to get your API key:
174
+ 1. Go to https://platform.openai.com/
175
+ 2. Log in or create a free account
176
+ 3. From your dashboard, click on your profile (top right) > "View API keys"
177
+ 4. Click "Create new secret key"
178
+ 5. Copy the key and store it securely
179
+
180
+ 📌 Add it to your tenant configuration under:
181
+ config.ai.chatGptApiKey = "<your-api-key>"
182
+
183
+ ⚠️ Without this key, ChatGPT features will not work.
184
+ `);return}if(n++,n>3)return;const r=[...a,{role:"user",content:"Please continue: "+e}];return console.log("Retry: "+n,"<------------------------------------------------------------------------------------"),vt(ys,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+ge.openaiApiKey},body:{engine:vs,messages:r,temperature:Es}}).then(o=>{if(!(o!=null&&o.choices))return console.log("<<<<<<<<impossible>>>>>>>>"),null;const s=e+o.choices[0].message.content;return ws(s)||Cs(s,a,n)})},wc=async(e,a={},n)=>{const o=(n!==void 0?mc[n]??[]:[]).map(l=>({role:"system",content:l})),s={model:a.model||vs,messages:[...o,{role:"user",content:e}],temperature:a.temperature||Es};return vt(ys,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+(ge==null?void 0:ge.openaiApiKey)},body:s}).then(l=>(console.log("Laaaaaaaaaaaa"),console.log(l),vc(ft,l))).then(l=>l!=null&&l.choices?ws(l.choices[0].message.content)||Cs(l.choices[0].message.content,o):null)};function Cc(e=Vt){return wc}const ft="openai",Ut="gemini",zt="anthropic",Ht="mistral",Vt=ft,xc={[ft]:"openaiApiKey",[Ut]:"geminiApiKey",[zt]:"anthropicApiKey",[Ht]:"mistralApiKey"},Nc=(e=Vt)=>Ct(`AIProvider:${e}`,wt(ge,[xc[e]],"ai.")),We={[ft]:{name:ft,url:"https://api.openai.com/v1/chat/completions",model:"gpt-5.2",models:["gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","gpt-5","gpt-5-mini","gpt-5-nano"],framework:"AIDA (Attention Interest Desire Action)",frameworks:["AIDA (Attention Interest Desire Action)","PAS (Problem Agitate Solution)","BAB (Before After Bridge)","FAB (Features Advantages Benefits)"],temperature:.7,parseHeaders:()=>({"Content-Type":"application/json",Authorization:"Bearer "+(ge==null?void 0:ge.openaiApiKey)}),parseBody:(e,a,n)=>({model:n.model||We[ft].model,messages:[...a?[{role:"system",content:a}]:[],{role:"user",content:e}],temperature:n.temperature??We[ft].temperature}),parseResponse:e=>e!=null&&e.choices?e.choices[0].message.content:null},[Ut]:{name:Ut,url:"https://api.gemini.com/v1/predict",model:"gemini-2.5-pro",models:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite","gemini-2.5-deep-think"],temperature:.7,parseHeaders:()=>({"Content-Type":"application/json",Authorization:"Bearer "+(ge==null?void 0:ge.geminiApiKey)}),parseBody:(e,a,n)=>({model:n.model||We[Ut].model,instances:[{content:a?a+`
185
+
186
+ `+e:e}],temperature:n.temperature??We[Ut].temperature}),parseResponse:e=>e!=null&&e.predictions?e.predictions[0].text:null},[zt]:{name:zt,url:"https://api.anthropic.com/v1/completions",model:"claude-3.5",models:["claude-3.5","claude-3.7-sonnet","claude-4","claude-opus-4.1"],temperature:.7,parseHeaders:()=>({"Content-Type":"application/json",Authorization:"Bearer "+(ge==null?void 0:ge.anthropicApiKey)}),parseBody:(e,a,n)=>({model:n.model||We[zt].model,messages:[...a?[{role:"system",content:a}]:[],{role:"user",content:e}],temperature:n.temperature??We[zt].temperature}),parseResponse:e=>e!=null&&e.choices?e.choices[0].message.content:null},[Ht]:{name:Ht,url:"https://api.mistral.com/v1/completions",model:"mistral-small-3.1",models:["mistral-small-3.1","mistral-medium-3","magistral-small","magistral-medium","devstral-small","codestral-22B","mixtral-8x22B","mistral-large-2"],temperature:.7,parseHeaders:()=>({"Content-Type":"application/json",Authorization:"Bearer "+(ge==null?void 0:ge.mistralApiKey)}),parseBody:(e,a,n)=>({model:n.model||We[Ht].model,messages:[...a?[{role:"system",content:a}]:[],{role:"user",content:e}],temperature:n.temperature??We[Ht].temperature}),parseResponse:e=>e!=null&&e.choices?e.choices[0].message.content:null}};class Ee extends Ec{static fetch(a,n,r){const{provider:o,...s}=n;return new Ee(o).setOptions(s).setData(r).fetchAPI(a)}static getModels(a){return We[a??Vt].models}constructor(a=Vt){super(),this.config=We[a],this.options={}}setOptions(a){return this.options=a,this}setData(a){return this.data=a,this}static defaults(){return{...super.defaults(),model:localStorage.getItem("prompt.model")||We[Vt].model}}async fetchAPI(a){const n=this.config.parseBody(Ee.parsePrompt(a,{...this.options,...this.data}),Ee.parseRole(this.options.role,this.options),this.options);return console.log(this.config.name+"->request",n),vt(this.config.url,{method:"POST",headers:this.config.parseHeaders(),body:n}).then(r=>(console.log(this.config.name+"->response",r),this.config.parseResponse(r))).then(r=>{if(r===null)return console.error("fetchAI->warning: Response is null"),null;try{return r.startsWith("{")||r.startsWith("[")?JSON.parse(r):r}catch(o){return console.error("fetchAI->error: Failed to parse response",o),null}}).catch(r=>(console.error("fetchAI->error: Failed to fetch",r),null))}}const xs="Prompt: ",Ns="relative border-l-4 pl-2 border-secondary",ks="absolute top-0 right-0 flex gap-2",kc=({mode:e="editor",onRunPrompt:a,renderPromptDisabled:n,...r})=>{var s;const{value:o}=Se({name:r.name});return e==="editor"?t.createElement(Ac,{...r,value:o}):(s=o==null?void 0:o.prompt)!=null&&s.enabled?t.createElement(Sc,{...r,value:o,onRunPrompt:a}):t.createElement(Tc,{...r,renderPromptDisabled:n})},Ac=({name:e,label:a=void 0,value:n=void 0,required:r=!1,onChange:o=void 0,defaultValue:s=void 0,rows:l=10,pre:i=void 0,post:c=void 0,wrapClass:m=void 0,className:d=void 0})=>{var x,y,E,h;const{handleChange:p}=Se({name:e}),u=J(),f=a||e;return console.log("PromptEditorAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",e,n,s),t.createElement(z,{className:m||u.Prompt.wrapClass},i,t.createElement("div",{className:(x=n==null?void 0:n.prompt)!=null&&x.enabled?Ns:"relative"},t.createElement("div",{className:ks},t.createElement(Et,{name:e+".prompt.enabled",label:"prompt",defaultValue:s==null?void 0:s.enabled,onChange:({event:g})=>{p({target:{name:e+".prompt.value",value:g.target.value&&(s==null?void 0:s.value)}})}})),t.createElement(be,{className:d||u.Prompt.className,name:e+((y=n==null?void 0:n.prompt)!=null&&y.enabled?".prompt.value":".value"),label:(E=n==null?void 0:n.prompt)!=null&&E.enabled?xs+f:f,defaultValue:((h=n==null?void 0:n.prompt)==null?void 0:h.enabled)&&(s==null?void 0:s.value),onChange:o,required:r,rows:l})),c)},Sc=({name:e,label:a,value:n,required:r,onChange:o,defaultValue:s,rows:l=10,pre:i,post:c,wrapClass:m,className:d,onRunPrompt:p})=>{var S;const{handleChange:u,record:f}=Se({name:e}),x=J(),y=a||e,[E,h]=t.useState(!1),g=Ee.defaults();return t.createElement(z,{className:m||x.Prompt.wrapClass},i,t.createElement("div",{className:E?Ns:"relative"},t.createElement("div",{className:ks},t.createElement(fe,{className:(S=n==null?void 0:n.prompt)!=null&&S.value?"border-0 text-primary hover:bg-primary/10":"border-0 text-warning hover:bg-warning/10",icon:E?"terminal-fill":"terminal",title:E?"Mode: Prompt Editor":"Mode: Run Prompt",onClick:()=>{h(!E)}})),t.createElement(be,{className:d||x.Prompt.className,name:e+".prompt.value",label:xs+y,defaultValue:s==null?void 0:s.value,onChange:o,required:!0,post:t.createElement(ma,{position:"end",toggleButton:{icon:"gear"}},t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.role",pre:"Role",defaultValue:s==null?void 0:s.role,options:Ee.getRoles(),optionEmpty:{label:"Default ("+g.role+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.language",pre:"Language",defaultValue:s==null?void 0:s.language,options:Ee.getLangs(),optionEmpty:{label:"Default ("+g.language+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.voice",pre:"Voice",defaultValue:s==null?void 0:s.voice,options:Ee.getVoices(),optionEmpty:{label:"Default ("+g.voice+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.style",pre:"Style",defaultValue:s==null?void 0:s.style,options:Ee.getStyles(),optionEmpty:{label:"Default ("+g.style+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.model",pre:"Model",defaultValue:s==null?void 0:s.model,options:Ee.getModels(),optionEmpty:{label:"Default ("+g.model+")",value:""}})),t.createElement(Ae,null,t.createElement(Ga,{name:e+".prompt.temperature",label:"Temperature",defaultValue:s==null?void 0:s.temperature,min:0,max:1,step:.1}))),wrapClass:E?"":" hidden",rows:l}),t.createElement(be,{className:d||x.Prompt.className,name:e+".value",label:y,onChange:o,required:r,post:t.createElement(He,{icon:"stars",onClick:async()=>{u==null||u({target:{name:e+".value",value:await Ic(n==null?void 0:n.prompt,f,p)}})}}),wrapClass:E?" hidden":"",rows:l})),c)},Tc=({name:e,label:a,required:n,onChange:r,rows:o,pre:s,post:l,wrapClass:i,className:c,renderPromptDisabled:m})=>{const d=J();return t.createElement(z,{className:i||d.Prompt.wrapClass},s,(m==null?void 0:m({name:e,label:a,required:n,onChange:r}))??t.createElement(be,{className:c||d.Prompt.className,name:e+".value",label:a,onChange:r,required:n,rows:o}),l)},Ic=async(e,a,n)=>{const{value:r,...o}=e,s=await Ee.fetch([Ie,(n==null?void 0:n(r,o,a))??r,Oe].join(`
187
+ `),o,a);return console.log(s),s},As=({name:e,label:a,required:n,onChange:r,defaultValue:o,pre:s,post:l,wrapClass:i,className:c,mode:m})=>{const{value:d}=Se({name:e,defaultValue:o,onChange:r});return t.createElement(z,{className:i},s,t.createElement($e,null,t.createElement(ds,{name:`${e}.url`,label:a,pre:"URL",required:n,className:c,onChange:r,defaultValue:o}),t.createElement(F,{className:"pt-2"},t.createElement(kc,{name:`${e}.alt`,label:"Alt text",mode:m,required:n,defaultValue:o,rows:2}),t.createElement($e,null,t.createElement(F,null,t.createElement(Mt,{name:`${e}.width`,pre:"Width",required:n,defaultValue:o})),t.createElement(F,null,t.createElement(Mt,{name:`${e}.height`,pre:"Height",required:n,defaultValue:o})))),t.createElement(F,{xs:4},t.createElement(na,{className:"img-thumbnail w-full h-full",src:d==null?void 0:d.url,label:d==null?void 0:d.alt,width:d==null?void 0:d.width,height:d==null?void 0:d.height}))),l)};function Ss({records:e,selectedKeys:a,legacySelectedKeys:n,onSelectionChange:r,getRecordKey:o}){const s=a??n,l=s!==void 0&&!!r,[i,c]=t.useState(s??[]);t.useEffect(()=>{s!==void 0&&!l&&c(s)},[s,l]);const m=l?s||[]:i,d=!!r||s!==void 0,p=t.useCallback(y=>{const E=new Set(y),h=e.filter((g,S)=>E.has(o(g,S)));return{keys:y,records:h,hasSelection:y.length>0}},[o,e]),u=t.useCallback(y=>{l||c(y);const E=p(y);r==null||r({...E,clear:()=>u([])})},[p,l,r]),f=t.useCallback(()=>{u([])},[u]),x=t.useMemo(()=>({...p(m),clear:f}),[m,p,f]);return{activeSelectedKeys:m,selectionState:x,showSelection:d,updateSelection:u}}function Ts(e){const a=t.useRef(new WeakMap),n=t.useRef(0);return t.useCallback((r,o)=>{if(r._key)return r._key;const s=r,l=a.current.get(s);if(l)return l;const i=`${e}-${n.current++}`;return a.current.set(s,i),i},[e])}function Ya({header:e=void 0,body:a=void 0,Footer:n=void 0,onClick:r=void 0,onReorder:o=void 0,onSelectionChange:s=void 0,selectionMode:l="multiple",sortable:i=!1,pagination:c=void 0,activeKey:m=void 0,selectedKeys:d=void 0,selectedRowKeys:p=void 0,pre:u=void 0,post:f=void 0,wrapClass:x=void 0,className:y=void 0,headerClass:E=void 0,bodyClass:h=void 0,footerClass:g=void 0,heightClass:S=void 0,scrollClass:v=void 0,selectedClass:C=void 0}){const b=J(),T=C||b.Table.selectedClass,[P,M]=t.useState(a||[]),k=t.useMemo(()=>{if(!(!i||typeof i=="boolean"))return i},[typeof i=="object"?i==null?void 0:i.dir:void 0,typeof i=="object"?i==null?void 0:i.field:void 0]),w=i!==!1,[N,D]=t.useState(k),[I,A]=t.useState(null),[_,O]=t.useState(null),[L,$]=t.useState(null),[j,V]=t.useState(null),[H,K]=t.useState(null),B=t.useRef(!1),ee=t.useCallback(U=>{U&&A(U)},[]),ie=t.useId(),X=!!o,pe=w||!!Dt.normalize(k),Ke=X&&pe,Le=Ke?!1:w,ne=Ke?void 0:k;t.useEffect(()=>{M(a||[])},[a]),t.useEffect(()=>{D(ne)},[ne==null?void 0:ne.field,ne==null?void 0:ne.dir]),t.useEffect(()=>{!Ke||B.current||(console.warn("Table: `onReorder` cannot be combined with sortable sorting on the same view. Manual reorder takes precedence and sorting is ignored."),B.current=!0)},[Ke]);const Ve=Ts("row"),he=t.useCallback((U,Z)=>Ve(U,Z),[Ve]),{activeSelectedKeys:Ye,selectionState:st,showSelection:Je,updateSelection:G}=Ss({records:P,selectedKeys:d,legacySelectedKeys:p,onSelectionChange:s,getRecordKey:he});t.useEffect(()=>{if(!H)return;P.some((Z,W)=>he(Z,W)===H)||K(null)},[H,he,P]),t.useEffect(()=>{if(N||!(e!=null&&e.length)||X)return;const U=e.find(Z=>Le&&Z.sort!==!1);U&&D({field:U.key,dir:"asc"})},[N,Le,e,X]);const q=t.useMemo(()=>Dt.records(P,N)||[],[P,N]),Y=(U,Z,W)=>{let ue=U.target;for(;ue&&ue.tagName!=="TR";){if(["A","BUTTON","INPUT","LABEL"].includes(ue.tagName))return;ue=ue.parentNode}const de=he(Z,W);T&&m===void 0&&K(me=>me===de?null:de),r==null||r(Z)},ce=(U,Z)=>{var ue,de;const W=((ue=U[Z])==null?void 0:ue.prompt)&&((de=U[Z])==null?void 0:de.value)||U[Z];return t.isValidElement(W)||W==null||typeof W!="object"?W:Array.isArray(W)&&!W.some(me=>typeof me=="object"&&me)?W.join(", "):""},ae=t.useCallback((U,Z)=>{const W=he(U,Z),ue=Ye.includes(W)?Ye.filter(de=>de!==W):[...Ye,W];G(ue)},[Ye,he,G]),se=t.useCallback((U,Z)=>{const W=he(U,Z);G(Ye.includes(W)?[]:[W])},[Ye,he,G]),Me=t.useCallback((U,Z)=>{if(!_)return;const W=q.findIndex((Ot,ha)=>he(Ot,ha)===_),ue=q.findIndex((Ot,ha)=>he(Ot,ha)===he(U,Z));$(null),O(null);const de=(j==null?void 0:j.position)||"after";if(V(null),W<0||ue<0||W===ue)return;const me=[...q],[fa]=me.splice(W,1),ga=W<ue?ue+(de==="after"?0:-1):ue+(de==="after"?1:0);me.splice(ga,0,fa),D(void 0),M(me),o==null||o(me,{fromIndex:W,toIndex:ga,record:fa})},[_,j==null?void 0:j.position,he,o,q]);if(q.length===0)return t.createElement("p",{className:"p-4"},"Nessun dato trovato");const Ze=e||Object.keys(q[0]).map(U=>({key:U,label:U,sort:w})),xt=["fixed-table-container",b.Table.scrollClass,S?`${S} overflow-auto`:"",v||""].filter(Boolean).join(" "),oe=Ze.length+(Je?1:0)+(X?1:0),ke=(U,Z,W,ue)=>!j||j.key!==U||j.position!==Z?null:t.createElement("tr",{"aria-hidden":"true",onDragOver:de=>{X&&(de.preventDefault(),L!==U&&$(U),V({key:U,position:Z}))},onDrop:de=>{X&&(de.preventDefault(),V({key:U,position:Z}),Me(W,ue))}},t.createElement("td",{colSpan:oe,className:"border-0 p-0"},t.createElement("div",{className:"relative h-5 cursor-grab"},t.createElement("div",{className:"absolute inset-x-2 top-1/2 -translate-y-1/2"},t.createElement("div",{className:"h-0 rounded-full border-t-2 border-primary/80"}),t.createElement("div",{className:"absolute left-0 top-1/2 h-2 w-2 -translate-y-1/2 rounded-full bg-primary shadow-sm"})))));return t.createElement("div",{ref:ee,className:"table-responsive "+(x||b.Table.wrapClass)},t.createElement("div",{className:xt},u&&t.createElement("div",{className:"mb-3"},u),t.createElement("table",{className:"table "+(y||b.Table.className)},t.createElement("thead",{className:E||b.Table.headerClass},t.createElement("tr",null,Je&&t.createElement("th",{style:{width:"1%",whiteSpace:"nowrap"}},l!=="single"?t.createElement("div",{className:"th-inner py-1"},t.createElement("input",{type:"checkbox","aria-label":"Select all rows",checked:st.records.length>0&&st.records.length===P.length,onChange:U=>{const Z=U.target.checked?q.map((W,ue)=>he(W,ue)):[];G(Z)}})):t.createElement("div",{className:"th-inner py-1"})),X&&t.createElement("th",{style:{width:"1%",whiteSpace:"nowrap"}},t.createElement("div",{className:"th-inner py-1"})),Ze.map(U=>U.label?(()=>{const Z=Le&&U.sort!==!1,W=Z&&(N==null?void 0:N.field)===U.key,ue=W?(N==null?void 0:N.dir)==="desc"?"descending":"ascending":"none";return t.createElement("th",{key:U.key,className:U.className,"aria-sort":ue},Z?t.createElement("button",{type:"button",className:"th-inner group inline-flex w-full cursor-pointer items-center gap-2 rounded-sm border-0 bg-transparent px-0 py-1 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 "+(W?"font-semibold text-foreground":"text-muted-foreground hover:text-foreground"),onClick:()=>D(de=>Dt.toggle(de,U.key)),"aria-label":W?`Sort by ${U.label}, currently ${(N==null?void 0:N.dir)==="desc"?"descending":"ascending"}`:`Sort by ${U.label}`,title:W?`${U.label}: ${(N==null?void 0:N.dir)==="desc"?"descending":"ascending"}`:`Sort by ${U.label}`},t.createElement("span",{className:"inline-flex h-4 w-4 flex-none items-center justify-center transition-colors "+(W?"text-primary":"text-muted-foreground/70 group-hover:text-foreground/80"),"aria-hidden":"true"},W?(N==null?void 0:N.dir)==="desc"?t.createElement(jt.ArrowDown,{size:14}):t.createElement(jt.ArrowUp,{size:14}):t.createElement(jt.ArrowUpDown,{size:14})),t.createElement("span",null,U.label)):t.createElement("div",{className:"th-inner py-1"},U.label))})():t.createElement("th",{key:U.key,style:{width:"1%",whiteSpace:"nowrap"}})))),t.createElement("tbody",{className:h||b.Table.bodyClass},t.createElement(dr,{recordSet:q,appendTo:I,wrapClass:"px-3 pt-4 pb-2",...c||{}},(U,Z)=>U.map((W,ue)=>{const de=Z+ue,me=he(W,de),fa=Ye.includes(me),ga=L===me,Ot=_===me,Cl=T&&(m===void 0?H:m)===me;return t.createElement(t.Fragment,{key:me},ke(me,"before",W,de),t.createElement("tr",{draggable:X,className:[ga?"bg-muted/30":"",Cl?T:""].filter(Boolean).join(" ")||void 0,style:{cursor:r?"pointer":X?"grab":"default",opacity:Ot?.45:1},onClick:ye=>{r&&Y(ye,W,de)},onDragStart:()=>{O(me)},onDragOver:ye=>{if(!X)return;ye.preventDefault();const vr=ye.currentTarget.getBoundingClientRect(),wr=ye.clientY<vr.top+vr.height/2?"before":"after";L!==me&&$(me),_!==me&&V(_t=>(_t==null?void 0:_t.key)===me&&_t.position===wr?_t:{key:me,position:wr})},onDragLeave:()=>{L===me&&$(null)},onDragEnd:()=>{O(null),$(null),V(null)},onDrop:ye=>{X&&(ye.preventDefault(),Me(W,de))}},Je&&t.createElement("td",{style:{width:"1%",whiteSpace:"nowrap"}},t.createElement("input",{type:l==="single"?"radio":"checkbox",name:l==="single"?ie:void 0,"aria-label":`Select row ${me}`,checked:fa,onChange:()=>{if(l==="single"){se(W,de);return}ae(W,de)},onClick:ye=>{ye.stopPropagation(),l==="single"&&(ye.preventDefault(),se(W,de))}})),X&&t.createElement("td",{style:{width:"1%",whiteSpace:"nowrap"}},t.createElement("button",{type:"button",draggable:X,className:"inline-flex cursor-grab items-center justify-center rounded-sm border-0 bg-transparent p-0 text-muted-foreground","aria-label":`Reorder row ${me}`,onClick:ye=>ye.preventDefault(),onDragStart:ye=>{ye.stopPropagation(),O(me)},onDragEnd:ye=>{ye.stopPropagation(),O(null),$(null),V(null)}},t.createElement(jt.GripVertical,{size:14}))),Ze.map(ye=>t.createElement("td",{key:ye.key},ce(W,ye.key)))),ke(me,"after",W,de))}))),n&&t.createElement("tfoot",{className:g||b.Table.footerClass},n)),f&&t.createElement("div",{className:"mt-3"},f)))}const Ft={"1:1":1/1,"3:4":3/4,"4:3":4/3},Is=t.forwardRef(({img:e,title:a},n)=>{const r=t.useRef(null),o=t.useRef({}),[s,l]=t.useState({});t.useImperativeHandle(n,()=>({handleSave:()=>{const k=r.current,w=k==null?void 0:k.getContext("2d");if(!k||!w)return;const N={};for(const D of i){const I=o.current[D],A=s[D],_=p[D];if(!I||!A||!_)return;const O=I.naturalWidth/A.width,{top:L,left:$,width:j,height:V}=_;k.width=j,k.height=V,w.clearRect(0,0,j,V),w.drawImage(I,($-A.offsetX)*O,(L-A.offsetY)*O,j*O,V*O,0,0,j,V),N[D]={fileName:p[D].fileName,type:p[D].type,scale:D,top:L,left:$,width:j,height:V,base64:k.toDataURL(p[D].type)}}return{fileName:m,variants:N}}}));const[i,c]=t.useState(()=>Object.keys(e.variants??Ft).filter(k=>k!=="original")),[m,d]=t.useState(e.fileName),[p,u]=t.useState(e.variants??{}),[f,x]=t.useState({}),[y,E]=t.useState({}),[h,g]=t.useState({}),[S,v]=t.useState({}),C=(k,w)=>{const N=k.currentTarget;l(D=>({...D,[w]:{width:N.width,height:N.height,offsetX:0,offsetY:0}})),u(D=>{if(D[w])return D;const I=Ft[w],A=Math.min(N.width,N.height*I),_=Math.min(N.height,N.width/I);return{...D,[w]:{fileName:e.fileName,type:e.type,scale:w,top:(N.height-_)/2,left:(N.width-A)/2,width:A,height:_,base64:""}}})},b=(k,w,N)=>{const{width:D,height:I}=w.getBoundingClientRect(),A=Ft[k],_=N[k];if(!_)return null;const O=Math.min(D,I*A);let L=Math.min(_.width,O),$=L/A,j=Math.min(Math.max(_.left,0),D-L),V=Math.min(Math.max(_.top,0),I-$);return{..._,width:L,height:$,left:j,top:V}};t.useEffect(()=>{const k=()=>{u(w=>{const N={...w};return Object.keys(s).forEach(D=>{const I=o.current[D];if(!I)return;const A=b(D,I,N);A&&(N[D]=A)}),N}),Object.keys(s).forEach(w=>{const N=o.current[w];if(!N)return;const{width:D,height:I}=N.getBoundingClientRect();l(A=>({...A,[w]:{width:D,height:I,offsetX:0,offsetY:0}}))})};return window.addEventListener("resize",k),()=>window.removeEventListener("resize",k)},[s]);const T=(k,w,N)=>{k.stopPropagation();const{left:D,top:I,width:A,height:_}=p[w];N==="move"?(x(O=>({...O,[w]:!0})),g(O=>({...O,[w]:{x:k.clientX-D,y:k.clientY-I}}))):(E(O=>({...O,[w]:!0})),v(O=>({...O,[w]:{mouseX:k.clientX,mouseY:k.clientY,width:A,height:_}})))},P=k=>{i.forEach(w=>{const N=s[w],D=p[w],I=h[w],A=S[w],_=Ft[w];if(!(!N||!D)){if(f[w]&&I){const O=Math.max(N.offsetX,Math.min(k.clientX-I.x,N.offsetX+N.width-D.width)),L=Math.max(N.offsetY,Math.min(k.clientY-I.y,N.offsetY+N.height-D.height));u($=>({...$,[w]:{...$[w],left:O,top:L}}))}if(y[w]&&A){let O=A.width+(k.clientX-A.mouseX),L=O/_;const $=N.width-(D.left-N.offsetX),j=N.height-(D.top-N.offsetY);O>$&&(O=$,L=O/_),L>j&&(L=j,O=L*_);const V=50;O>=V&&L>=V&&u(H=>({...H,[w]:{...H[w],width:O,height:L}}))}}})},M=()=>{x({}),E({})};return t.createElement("div",{onMouseMove:P,onMouseUp:M,onMouseLeave:M},a&&t.createElement("h3",null,a),t.createElement("div",{className:"mb-2"},t.createElement("h6",null,"Original Image"),t.createElement(_r,{img:{src:ht(e),alt:"Original Image"},file:{value:m,onChange:d,label:"Original File Name"}})),t.createElement("div",{className:"mb-2"},Object.keys(Ft).map(k=>{var w;return t.createElement(te,{key:k},t.createElement(Et,{name:k,label:k,value:i.includes(k),onChange:({event:N})=>{c(D=>N.target.checked?[...D,k]:D.filter(I=>I!==k))}}),i.includes(k)&&t.createElement(_r,{img:{src:ht(e),alt:`Crop ${k}`,ref:N=>o.current[k]=N,onLoad:N=>C(N,k),post:t.createElement(Dc,{cropData:p,scale:k,handleMouseDown:T})},file:{value:((w=p[k])==null?void 0:w.fileName)??e.fileName,scale:k,onChange:N=>u(D=>({...D,[k]:{...D[k],fileName:N}})),label:`Nome file per ${k}`}}))})),t.createElement("canvas",{ref:r,style:{display:"none"}}))}),Dc=({cropData:e,scale:a,handleMouseDown:n})=>t.createElement(t.Fragment,null,e[a]&&t.createElement("div",{onMouseDown:r=>n(r,a,"move"),className:"absolute",style:{top:e[a].top,left:e[a].left,width:e[a].width,height:e[a].height,border:"2px dashed rgba(0, 0, 0, 0.8)",backgroundColor:"rgba(0, 0, 0, 0.2)",cursor:"move"}},t.createElement("div",{onMouseDown:r=>n(r,a,"resize"),className:"absolute bottom-0 right-0",style:{width:15,height:15,backgroundColor:"rgba(0,0,0,0.8)",cursor:"nwse-resize"}}))),_r=({img:e,file:a})=>t.createElement(t.Fragment,null,t.createElement("div",{className:"relative"},t.createElement("img",{src:e.src,alt:e.alt,ref:e.ref,onLoad:e.onLoad,className:"relative img-fluid",draggable:!1}),e.post),t.createElement(sr,{...a})),sr=({value:e,onChange:a,label:n=void 0,scale:r=void 0})=>{const o=(e==null?void 0:e.split(".").pop())??"",s=r&&`_${r.replace(":","x")}`,i=(m=>{const d=m.replace(/\.[^/.]+$/,"");return s&&d.endsWith(s)?d.slice(0,-s.length):d})(e||""),c=({value:m})=>{const d=m.trim();a(`${d}${s??""}.${o}`)};return t.createElement(De,{name:"fileName",label:n,value:i,onChange:c,post:r})},Ds=(e,a,n)=>{const{value:r,handleChange:o,formWrapClass:s}=Se({name:e,onChange:a,wrapClass:n}),[l,i]=t.useState(r||[]),[c,m]=t.useState(null),d=t.useRef(null),p=(h,g)=>{i(S=>{const v=S.map(C=>C.key===h?{...C,...g}:C);return o({target:{name:e,value:v}}),v})},u=h=>{i(g=>{const S=g.filter(v=>v.key!==h);return o({target:{name:e,value:S}}),S})};return{files:l,currentFile:c,fileInputRef:d,formWrapClass:s,handleUploadChange:h=>{const g=Array.from(h.target.files||[]);i(S=>{const v=[...S];return g.forEach(C=>{const b={key:C.name,fileName:C.name,size:C.size,type:C.type,progress:0,base64:"",variants:{}},T=v.findIndex(M=>M.key===C.name);T!==-1?v[T]=b:v.push(b);const P=new FileReader;P.onprogress=M=>{if(M.lengthComputable){const k=Math.round(M.loaded/M.total*100);p(b.key,{progress:k})}},P.onloadend=()=>{p(b.key,{progress:99}),setTimeout(()=>{p(b.key,{progress:100,base64:`data:${C.type};base64,${Ao(P.result)}`})},500)},P.readAsArrayBuffer(C)}),v}),d.current&&(d.current.value="")},handleUpload:()=>{var h;return(h=d.current)==null?void 0:h.click()},handleRemove:h=>{u(h)},handleSave:h=>{c&&(p(c.key,h),m(null))},handleEdit:h=>m(h),handleClose:()=>m(null)}},Ps=({name:e,fileInputRef:a,accept:n="*/*",onUpload:r,onChange:o=void 0,label:s=void 0,icon:l=void 0,required:i=!1,multiple:c=!1,height:m=void 0,width:d=void 0,iconClass:p=void 0})=>t.createElement(t.Fragment,null,t.createElement(fe,{icon:l,label:s,onClick:r,iconClass:p,style:{height:m,width:d}}),t.createElement("input",{name:e,type:"file",accept:n,ref:a,multiple:c,required:i,className:"hidden",onChange:o})),Rs=({title:e,file:a,type:n,onSave:r=void 0,onClose:o=void 0})=>{const[s,l]=t.useState(a.fileName),i=t.useRef(null),c=async()=>(i.current?r==null||r(i.current.handleSave()):r==null||r({fileName:s,variants:{}}),!0);return t.createElement(pa,{title:e,onSave:c,onClose:o,size:n==="img"?"fullscreen":void 0},n==="document"&&t.createElement(sr,{value:s,onChange:l,label:"File name"}),n==="img"&&t.createElement(Is,{ref:i,img:a}))},Ms=(e,a,n)=>e.length<a&&(n||e.length===0),Xa=new Map,ht=(e,a="origin")=>{if(e.base64){const n=`${e.fileName} ${a}`;return Xa.has(n)||Xa.set(n,To(e.base64,e.type)??Ce),Xa.get(n)??Ce}return e.url},Pa=({name:e,onChange:a=void 0,label:n=void 0,required:r=!1,editable:o=!1,multiple:s=!1,max:l=100,accept:i=".pdf,.doc,.docx,.txt,.iso",pre:c=void 0,post:m=void 0,wrapClass:d=void 0,className:p=void 0})=>{const{files:u,currentFile:f,fileInputRef:x,formWrapClass:y,handleUploadChange:E,handleUpload:h,handleRemove:g,handleSave:S,handleEdit:v,handleClose:C}=Ds(e,a,d);return t.createElement(z,{className:y},c,t.createElement("div",{className:p},t.createElement("div",{className:`flex items-center ${n?"justify-between":"justify-end"}`},n&&t.createElement(Re,{label:n,required:r}),Ms(u,l,s)&&t.createElement(Ps,{name:e,fileInputRef:x,accept:i,onUpload:h,onChange:E,label:"Upload",icon:"upload",required:r,multiple:s})),u.length>0&&t.createElement(Ya,{onClick:b=>o&&v(b),header:[{label:"Name",key:"name"},{label:"Kilobyte",key:"kilobyte"},{label:"Actions",key:"actions"}],body:u.map(b=>({...b,name:b.progress===100?t.createElement("a",{href:ht(b),target:"_blank",rel:"noopener noreferrer"},b.fileName):b.fileName,kilobyte:b.progress===100?(b.size/1024).toFixed(2)+" KB":t.createElement(Fe,{max:100,min:0,val:b.progress,shape:"bar"}),actions:t.createElement(t.Fragment,null,t.createElement(fe,{onClick:()=>g(b.key),icon:"x",className:"p-1"}))}))})),o&&f&&t.createElement(Rs,{title:"Editor Document",file:f,type:"document",onSave:S,onClose:C}),m)},Jt=({name:e,onChange:a=void 0,label:n=void 0,editable:r=!1,multiple:o=!1,accept:s="image/*",required:l=!1,max:i=100,previewHeight:c=100,previewWidth:m=100,pre:d=void 0,post:p=void 0,wrapClass:u=void 0,className:f=void 0})=>{const{files:x,currentFile:y,fileInputRef:E,formWrapClass:h,handleUploadChange:g,handleUpload:S,handleRemove:v,handleSave:C,handleEdit:b,handleClose:T}=Ds(e,a,u),[P,M]=t.useState(null),k=({scales:w})=>{if(!w)return;const N=Object.keys(w);return N.length===0?null:N.map(D=>t.createElement(je,{key:D},t.createElement("a",{href:ht(w[D],D),className:"text-white",target:"_blank",rel:"noopener noreferrer"},D)))};return t.createElement(z,{className:h},d,t.createElement(z,{className:f},n&&t.createElement(Re,{label:n,required:l}),t.createElement("div",{className:"flex gap-2 flex-wrap"},x.map((w,N)=>t.createElement("div",{key:N,className:"relative overflow-hidden",style:{width:c,height:m},onMouseEnter:()=>M(N),onMouseLeave:()=>M(null)},w.progress===100?t.createElement(t.Fragment,null,t.createElement("img",{src:ht(w),alt:`preview-${N}`,className:"img-thumbnail h-full w-full"}),t.createElement("div",{className:"bg-dark opacity-75 absolute top-0 left-0 bottom-0 right-0 justify-end items-start",style:{display:P===N?"flex":"none"}},t.createElement("a",{href:ht(w),target:"_blank",className:"p-1 text-white",rel:"noopener noreferrer"},t.createElement(Q,{name:"eye"})),r&&t.createElement(fe,{onClick:()=>b(w),icon:"pencil",className:"p-1"}),t.createElement(fe,{onClick:()=>v(w.key),icon:"x",className:"p-1"}),r&&t.createElement("div",{className:"absolute bottom-0 left-0 w-full p-1 flex items-center justify-between"},t.createElement(k,{scales:w.variants})))):t.createElement(Fe,{max:100,min:0,val:w.progress,shape:"circle"}))),Ms(x,i,o)&&t.createElement(Ps,{name:e,fileInputRef:E,accept:s,onUpload:S,onChange:g,icon:"upload",required:l,multiple:o,height:c,width:m,iconClass:"fs-1"}))),r&&y&&t.createElement(Rs,{title:"Editor Image",file:y,type:"img",onSave:C,onClose:T}),p)};var Os=(e=>(e.EDITOR="editor",e.LIVE="live",e))(Os||{});const _s="Prompt: ",Ls="relative border-l-4 pl-2 border-secondary",Fs="absolute top-0 right-0 flex gap-2",$s=({mode:e="editor",onRunPrompt:a,renderPromptDisabled:n,...r})=>{var s;const{value:o}=Se({name:r.name});return e==="editor"?t.createElement(Pc,{...r,value:o}):(s=o==null?void 0:o.prompt)!=null&&s.enabled?t.createElement(Rc,{...r,value:o,onRunPrompt:a}):t.createElement(Mc,{...r,renderPromptDisabled:n})},Pc=({name:e,label:a=void 0,value:n=void 0,required:r=!1,onChange:o=void 0,defaultValue:s=void 0,rows:l=10,pre:i=void 0,post:c=void 0,wrapClass:m=void 0,className:d=void 0})=>{var x,y,E,h;const{handleChange:p}=Se({name:e}),u=J(),f=a||e;return t.createElement(z,{className:m||u.Prompt.wrapClass},i,t.createElement("div",{className:(x=n==null?void 0:n.prompt)!=null&&x.enabled?Ls:"relative"},t.createElement("div",{className:Fs},t.createElement(Et,{name:e+".prompt.enabled",label:"prompt",defaultValue:s==null?void 0:s.enabled,onChange:({event:g})=>{p({target:{name:e+".prompt.value",value:g.target.value&&(s==null?void 0:s.value)}})}})),t.createElement(be,{className:d||u.Prompt.className,name:e+((y=n==null?void 0:n.prompt)!=null&&y.enabled?".prompt.value":".value"),label:(E=n==null?void 0:n.prompt)!=null&&E.enabled?_s+f:f,defaultValue:((h=n==null?void 0:n.prompt)==null?void 0:h.enabled)&&(s==null?void 0:s.value),onChange:o,required:r,rows:l})),c)},Rc=({name:e,label:a,value:n,required:r,onChange:o,defaultValue:s,rows:l=10,pre:i,post:c,wrapClass:m,className:d,onRunPrompt:p})=>{var S;const{handleChange:u,record:f}=Se({name:e}),x=J(),y=a||e,[E,h]=t.useState(!1),g=Ee.defaults();return t.createElement(z,{className:m||x.Prompt.wrapClass},i,t.createElement("div",{className:E?Ls:"relative"},t.createElement("div",{className:Fs},t.createElement(fe,{className:(S=n==null?void 0:n.prompt)!=null&&S.value?"border-0 text-primary hover:bg-primary/10":"border-0 text-warning hover:bg-warning/10",icon:E?"terminal-fill":"terminal",title:E?"Mode: Prompt Editor":"Mode: Run Prompt",onClick:()=>{h(!E)}})),t.createElement(be,{className:d||x.Prompt.className,name:e+".prompt.value",label:_s+y,defaultValue:s==null?void 0:s.value,onChange:o,required:!0,post:t.createElement(ma,{position:"end",toggleButton:{icon:"gear"}},t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.role",pre:"Role",defaultValue:s==null?void 0:s.role,options:Ee.getRoles(),optionEmpty:{label:"Default ("+g.role+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.language",pre:"Language",defaultValue:s==null?void 0:s.language,options:Ee.getLangs(),optionEmpty:{label:"Default ("+g.language+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.voice",pre:"Voice",defaultValue:s==null?void 0:s.voice,options:Ee.getVoices(),optionEmpty:{label:"Default ("+g.voice+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.style",pre:"Style",defaultValue:s==null?void 0:s.style,options:Ee.getStyles(),optionEmpty:{label:"Default ("+g.style+")",value:""}})),t.createElement(Ae,null,t.createElement(Ne,{name:e+".prompt.model",pre:"Model",defaultValue:s==null?void 0:s.model,options:Ee.getModels(),optionEmpty:{label:"Default ("+g.model+")",value:""}})),t.createElement(Ae,null,t.createElement(Ga,{name:e+".prompt.temperature",label:"Temperature",defaultValue:s==null?void 0:s.temperature,min:0,max:1,step:.1}))),wrapClass:E?"":" hidden",rows:l}),t.createElement(be,{className:d||x.Prompt.className,name:e+".value",label:y,onChange:o,required:r,post:t.createElement(He,{icon:"stars",onClick:async()=>{u==null||u({target:{name:e+".value",value:await js(n==null?void 0:n.prompt,f,p)}})}}),wrapClass:E?" hidden":"",rows:l})),c)},Mc=({name:e,label:a,required:n,onChange:r,rows:o,pre:s,post:l,wrapClass:i,className:c,renderPromptDisabled:m})=>{const d=J();return t.createElement(z,{className:i||d.Prompt.wrapClass},s,(m==null?void 0:m({name:e,label:a,required:n,onChange:r}))??t.createElement(be,{className:c||d.Prompt.className,name:e+".value",label:a,onChange:r,required:n,rows:o}),l)},js=async(e,a,n)=>{const{value:r,...o}=e,s=await Ee.fetch([Ie,(n==null?void 0:n(r,o,a))??r,Oe].join(`
188
+ `),o,a);return console.log(s),s},Bs={string:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(De,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),number:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Mt,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),email:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(oa,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),password:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Hn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),color:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Kn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),date:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Wn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),time:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(qn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),datetime:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Vn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),week:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Jn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),month:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Xn,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),textarea:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(be,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),checkbox:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(sa,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),switch:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Et,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),select:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Ne,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),autocomplete:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(ar,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),checklist:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(nr,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),uploadImage:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Jt,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),uploadDocument:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Pa,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),prompt:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement($s,{key:a??e.name,name:a??e.name,label:n??e.label??a,...e,...r})}),imageUrl:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(As,{name:a,label:n??a,...e,...r})}),menu:(e={})=>({__props:e,getDefaults:a=>({[a]:e.defaultValue}),render:({name:a,label:n,...r}={})=>t.createElement(Ne,{key:a,name:a,label:n??a,...e,...r})})},Oc={},_c={},Lc={layout:ms,input:Bs,block:Oc,section:_c};class Gs{verifyRequiredMethods(){if(!this.model||typeof this.model!="object")throw new Error('[ComponentBlock] Missing property: "model"');for(const a of["html","form"])if(typeof this[a]!="function")throw new Error(`[ComponentBlock] Missing method: "${a}()"`)}static default(a){const n=new this;return n.verifyRequiredMethods(),()=>{const[r,o]=t.useMemo(()=>ka(n.model),[n.model]);return t.createElement(Te,{defaultValues:o,dataStoragePath:a==null?void 0:a.dataStoragePath},n.form(r))}}}function Ys(e){return typeof(e==null?void 0:e.render)=="function"&&typeof(e==null?void 0:e.getDefaults)=="function"}function Fc(e){return typeof e=="function"&&e.prototype instanceof Gs}function $c(e){return e&&typeof e=="object"&&!Array.isArray(e)&&!t.isValidElement(e)&&!Ys(e)}function ka(e){const a={},n={};function r(o){for(const[s,l]of Object.entries(o))n[s]=l}for(const[o,s]of Object.entries(e))if(Ys(s))a[o]=s.render({name:o}),r(s.getDefaults(o));else if(Fc(s)){const l=new s,[i,c]=ka(l.model);a[o]=l.form(i),r(c)}else if(Array.isArray(s)){console.warn(`[buildFormFields] ⚠️ The field "${o}" is defined as an array. It has been automatically converted into an object with generated keys (e.g., "${o}_0"). Consider refactoring your model to use an explicit object instead of an array.`);const l={};s.forEach((m,d)=>{const p=`${o}_${d}`;l[p]=m});const[i,c]=ka(l);r(c),a[o]=i}else if($c(s)){const[l,i]=ka(s);a[o]=l,r(i)}else a[o]=s;return[a,n]}const Lr=e=>Array.isArray(e)?[...e]:e&&typeof e=="object"?{...e}:{},Us=e=>!Number.isNaN(Number(e)),jc=(e,a)=>["number","range"].includes(a)?e===""||e==null?"":Number(e):e,Bc=e=>e!==void 0&&Us(e)?[]:{},Gc=(e,a,n)=>{const r=a.target.name.split("."),o=jc(a.target.value,n),s=Lr(e??{});let l=s;for(let c=0;c<r.length-1;c++){const m=r[c],d=r[c+1],p=l[m];l[m]=p!=null&&typeof p=="object"?Lr(p):Bc(d),l=l[m]}const i=r[r.length-1];return o==null||o===""?Array.isArray(l)&&Us(i)?l.splice(Number(i),1):delete l[i]:l[i]=o,s},zs=t.createContext(null),Se=({name:e,onChange:a,wrapClass:n,inputType:r="text",defaultValue:o})=>{const s=t.useContext(zs);if(!s)throw new Error("useFormContext must be used within a FormContext.Provider");if(!e)throw new Error("useFormContext: name is required");const l=(c,m)=>Gc(m??s.record,c,r);return{value:t.useMemo(()=>{const c=e.split(".").reduce((m,d)=>m===void 0?void 0:m[d],s.record);return c===void 0&&o!==void 0?o??"":c??""},[e,s.record,o]),handleChange:c=>{let m=s.record;s.setRecord(d=>(m=l(c,d),m)),a==null||a({event:c,name:e,value:c.target.value,record:m??{},onChange:d=>{s.setRecord(p=>l(d,p))}})},formWrapClass:[n,s.wrapClass].filter(Boolean).join(" "),record:s.record??{}}},Hs=({name:e,value:a,handleChange:n})=>t.useCallback(r=>{r.preventDefault();const o=r.target,l=`${r.dataTransfer.getData("text/plain")}`;o.focus();const i=(()=>{var d,p;const m=((d=document.caretPositionFromPoint)==null?void 0:d.call(document,r.clientX,r.clientY))??((p=document.caretRangeFromPoint)==null?void 0:p.call(document,r.clientX,r.clientY));return m&&"offset"in m?m.offset:o.value.length})(),c=(a??"").slice(0,i)+l+(a??"").slice(i);n==null||n({target:{value:c.trim(),name:e}}),requestAnimationFrame(()=>{const m=i+l.length;o.setSelectionRange(m,m)})},[e,a,n]);function Yc(e,a){if(e.indexOf(".")===-1||a.indexOf(".")===-1)return`${a}.${e}`;const n=Math.min(e.length,a.length);let r=0;for(;r<n&&e.charCodeAt(r)===a.charCodeAt(r);)r++;const o=e.lastIndexOf(".",r-1);return o===-1?`${a}.${e}`:`${a}.${e.slice(o+1)}`}const Xt=({children:e,parentName:a,parentKey:n,wrapClass:r})=>t.Children.map(e,o=>{if(!a||!t.isValidElement(o))return o;const{name:s,children:l}=o.props,i={};return s&&(i.name=Yc(s,a),i.key=n??i.name,i.wrapClass=o.props.wrapClass??r,o.props.pre&&t.isValidElement(o.props.pre)&&(i.pre=Xt({children:o.props.pre,parentName:a,parentKey:`${i.key}.pre`})),o.props.post&&t.isValidElement(o.props.post)&&(i.post=Xt({children:o.props.post,parentName:a,parentKey:`${i.key}.post`}))),l&&(i.children=Xt({children:l,parentName:a,parentKey:n})),t.cloneElement(o,i)});function Uc(e,a){const n=ve.useLocation(),{dataStoragePath:r,setPrimaryKey:o,handlers:s,defaultValues:l,children:i,...c}=e,m=f=>`${r??ea(n.pathname)}/${(o==null?void 0:o(f))??Date.now()}`,p=(f=>f??(n.hash?`${ea(n.pathname)}/${n.hash.slice(1)}`:void 0))(r),u=({record:f,storagePath:x})=>x??m(f);return l||!p||s&&!r?t.createElement(Ks,{children:i,defaultValues:l,handlers:s,savePath:u,dataStoragePath:p,...c,ref:a}):t.createElement(lr,{children:i,defaultValues:l,handlers:s,savePath:u,dataStoragePath:p,...c,ref:a})}const lr=t.forwardRef((e,a)=>{const{dataStoragePath:n,defaultValues:r,...o}=e,s=ot(),[l,i]=t.useState(void 0);return t.useEffect(()=>{s.read(n).then(c=>{i({...r,...c})}).catch(c=>{console.error(c),i({})})},[n]),l?t.createElement(Ks,{...o,defaultValues:l,dataStoragePath:n,ref:a}):t.createElement("p",{className:"p-4"},t.createElement("span",{className:"mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"Caricamento in corso...")}),Ks=t.forwardRef(({children:e,aspect:a=void 0,header:n=void 0,footer:r=void 0,dataStoragePath:o=void 0,handlers:s=void 0,defaultValues:l=void 0,savePath:i=void 0,onLoad:c=void 0,onChange:m=void 0,onSave:d=void 0,onDelete:p=void 0,onFinally:u=void 0,log:f=!1,showNotice:x=!0,showBack:y=!1,wrapClass:E=void 0,headerClass:h=void 0,className:g=void 0,footerClass:S=void 0},v)=>{const C=J(),b=ot(),[T,P]=t.useState(l),M=!o;t.useEffect(()=>{l&&(P({...l}),c==null||c({...l}))},[JSON.stringify(l)]);const k=t.useRef(T);t.useEffect(()=>{k.current=T,T!==void 0&&(m==null||m(T))},[T]);const[w,N]=t.useState(void 0),D=t.useCallback(({message:$,type:j="danger"})=>{x&&N({type:j,message:$})},[x]),I=t.useCallback(async $=>{$.preventDefault(),x&&N(void 0),document.querySelectorAll('[required]:not([value]), [required][value=""]').length>0&&x&&N({message:C.Form.i18n.noticeRequiredFields,type:"warning"});const V=M?"create":"update",H=(d&&await d({record:k.current,prevRecord:l,action:V,storagePath:o}))??(i==null?void 0:i({record:k.current??{},storagePath:o}))??o;return H&&await b.set(H,aa(k.current)),await _(V)},[o,d,u,x,i]),A=t.useCallback(async $=>{$.preventDefault(),x&&N(void 0);const j=p?await p({record:k.current}):(i==null?void 0:i({record:k.current??{},storagePath:o}))??o;return j&&await b.remove(j),await _("delete")},[o,p,u,x,i]),_=t.useCallback(async $=>(f&&o&&cs(o,$,k.current),D({message:`Record ${$}ed successfully`,type:"success"}),await(u==null?void 0:u({record:k.current,action:$}))??!0),[f,o,u,D]);t.useImperativeHandle(v,()=>({handleSave:(s==null?void 0:s.handleSave)??I,handleDelete:(s==null?void 0:s.handleDelete)??A,getHeader:(s==null?void 0:s.getHeader)??(()=>n),getRecord:(s==null?void 0:s.getRecord)??(()=>({record:k.current??{},isNewRecord:M})),getFooter:(s==null?void 0:s.getFooter)??(()=>r)}),[I,A,s]);const O=t.createElement(zs.Provider,{value:{record:T,setRecord:P,wrapClass:"mb-3"}},typeof e=="function"?e({record:T}):e),L=t.useMemo(()=>{if(!a&&v)return O;switch(a){case"empty":return O;case"card":default:return t.createElement(te,{header:n||t.createElement(Yn,{pre:M?C.Form.i18n.headerAdd:C.Form.i18n.headerEdit,path:o??C.Form.i18n.headerNewRecord}),footer:(r||!M||d||p||y)&&t.createElement(t.Fragment,null,r,(d||!M)&&t.createElement(He,{className:C.Form.buttonSaveClass,label:C.Form.i18n.buttonSave,onClick:$=>I($)}),(p||!M)&&t.createElement(He,{className:C.Form.buttonDeleteClass,label:C.Form.i18n.buttonDelete,onClick:A}),y&&t.createElement(Yo,{className:C.Form.buttonBackClass,label:C.Form.i18n.buttonBack})),headerClass:h||C.Form.Card.headerClass,bodyClass:g||C.Form.Card.bodyClass,footerClass:S||C.Form.Card.footerClass},O)}},[a,n,r,d,p,y,T,O,v]);return t.createElement(z,{className:E||C.Form.wrapClass},w&&t.createElement(Ue,{type:w.type,onClose:()=>N(void 0)},w.message),L)}),Te=t.forwardRef(Uc),Ws=({name:e,children:a,onChange:n,onAdd:r,onRemove:o,className:s,layout:l="horizontal",min:i=void 0,max:c=void 0,label:m=void 0,readOnly:d=!1})=>{var S;const{value:p,handleChange:u}=Se({name:e,onChange:n}),f=(v,C)=>Xt({children:typeof a=="function"?a({record:p==null?void 0:p[v],records:p,index:v}):a,parentName:`${e}.${v}`,wrapClass:C}),x=(v,C)=>{switch(l){case"horizontal":return t.createElement(t.Fragment,null,C&&t.createElement("div",{className:"flex justify-between pl-1 mb-2"},t.createElement("h6",null,"#",v+1),t.createElement(fe,{className:"h-6 w-6 rounded-md bg-transparent p-0 text-muted-foreground hover:bg-accent hover:text-foreground",icon:"x",onClick:()=>h(v)})),t.createElement("div",{className:"pl-2"},f(v)),t.createElement("hr",{className:"mb-2"}));case"vertical":return t.createElement(t.Fragment,null);case"inline":return t.createElement($e,{className:"pl-2"},f(v,"col"),C&&t.createElement(F,{xs:"auto",className:"flex items-start justify-end pt-1"},t.createElement(fe,{className:"h-6 w-6 rounded-md bg-transparent p-0 text-muted-foreground hover:bg-accent hover:text-foreground",icon:"x",onClick:()=>h(v)})))}},y=(S=Array.isArray(p)?p:Array.from({length:i||0},()=>({})))==null?void 0:S.map((v,C)=>{const b=!d&&C>=(i||0);return t.createElement(t.Fragment,{key:`${e}-${C}`},x(C,b))}),E=()=>{const v=Array.isArray(p)?[...p,{}]:Array.from({length:y.length+1},()=>({}));r==null||r(v),u({target:{name:`${e}.${v.length-1}`,value:{}}})},h=v=>{o==null||o(v),u({target:{name:`${e}.${v}`}})},g=t.useMemo(()=>d?null:!c||y.length<c?t.createElement(fe,{wrapClass:"text-end",icon:"plus",label:m?void 0:"Add",onClick:E}):null,[d,c,y.length]);return t.createElement("div",{className:s},m&&t.createElement(t.Fragment,null,t.createElement("h6",{className:"flex items-center justify-between"},m,g),t.createElement("hr",null)),y,!m&&g)},ir={default:({menu:e,content:a})=>t.createElement(t.Fragment,null,t.createElement("ul",{className:"nav nav-tabs mb-2"},e),t.createElement("div",{className:"tab-content"},a)),top:({menu:e,content:a})=>t.createElement(t.Fragment,null,t.createElement("ul",{className:"nav nav-pills mb-2"},e),t.createElement("div",{className:"tab-content"},a)),left:({menu:e,content:a})=>t.createElement("div",{className:"flex"},t.createElement("ul",{className:"nav nav-pills flex-col mr-2"},e),t.createElement("div",{className:"tab-content flex-fill"},a)),right:({menu:e,content:a})=>t.createElement("div",{className:"flex"},t.createElement("div",{className:"tab-content flex-fill"},a),t.createElement("ul",{className:"nav nav-pills flex-col ml-2"},e)),bottom:({menu:e,content:a})=>t.createElement(t.Fragment,null,t.createElement("div",{className:"tab-content"},a),t.createElement("ul",{className:"nav nav-pills"},e))},xe=()=>null,zc=({children:e,motion:a})=>{var o,s;const n=J(),r=_a(void 0,a??((o=n.Tab.motion)==null?void 0:o.enter)??"fadeUp",((s=n.Tab.motion)==null?void 0:s.enter)??"fadeUp");return t.createElement("div",{className:"tab-pane fade show active",style:r},e)},ut=({children:e,defaultTab:a=0,tabPosition:n="default",pre:r=void 0,post:o=void 0,wrapClass:s=void 0,className:l=void 0,motion:i=void 0})=>{var u,f;const[c,m]=t.useState(a),d=t.Children.toArray(e).filter(x=>t.isValidElement(x)&&x.type===xe),p=ir[n];return t.createElement(z,{className:s},r,t.createElement("div",{className:l},t.createElement(p,{menu:d.map((x,y)=>t.createElement("li",{key:y,className:"nav-item mr-1"},t.createElement("button",{onClick:()=>m(y),className:`nav-link ${y===c?"active":""}`},x.props.label))),content:t.createElement(zc,{key:c,motion:i},(f=(u=d[c])==null?void 0:u.props)==null?void 0:f.children)})),o)},Pe=12,Fr=12,ia=(e,a,n)=>Math.max(a,Math.min(n,e)),Hc=e=>{if(!e)return"";const a=e.trim().replace(/^\{/,"").replace(/\}$/,"").trim(),n=a.split(".");return(n[n.length-1]||a).trim()},$r=(e,a)=>{const n=e-a.left,r=a.width/Pe;return ia(Math.floor(n/r),0,Pe-1)},jr=()=>`${Date.now()}_${Math.random().toString(16).slice(2)}`,qs=(e,a,n)=>{const r=o=>{const s=o+a;return s>Pe?!1:!n.some(l=>{const i=o,c=s,m=l.colStart,d=l.colStart+l.colSpan;return i<d&&m<c})};for(let o=e;o<=Pe-a;o++)if(r(o))return o;for(let o=0;o<=Pe-a;o++)if(r(o))return o;return null},Kc=(e,a,n)=>{const r=e.find(i=>i.id===a);if(!r)return e;const o=e.filter(i=>i.id!==a),s=ia(n,0,Pe-r.colSpan),l=qs(s,r.colSpan,o);return l===null?e:e.map(i=>i.id===a?{...i,colStart:l}:i)},Wc=(e,a,n)=>{const r=e.find(c=>c.id===a);if(!r)return e;const o=e.filter(c=>c.id!==a),s=Pe-r.colStart;let l=ia(n,1,s);const i=c=>{const m=r.colStart,d=r.colStart+c;return o.some(p=>{const u=p.colStart,f=p.colStart+p.colSpan;return m<f&&u<d})};for(;l>1&&i(l);)l--;return i(l)?e:e.map(c=>c.id===a?{...c,colSpan:l}:c)},Br=(e,a,n)=>{if(n<=0)return null;const r=e.map(o=>{const s=o.colStart+o.colSpan/2,l=Math.abs(s-(a+.5));return{it:o,dist:l}}).sort((o,s)=>o.dist-s.dist).map(o=>o.it);for(const o of r){if(o.colSpan-1<n)continue;const l=o.colSpan-n,i=o.colStart+l;if(i<0||i+n>Pe)continue;return{nextItems:e.map(m=>m.id===o.id?{...m,colSpan:l}:m),insertCol:i}}return null},qc=t.forwardRef(({name:e,defaultSpan:a=1,heightPx:n=100},r)=>{const o=t.useRef(null),{value:s,handleChange:l}=Se({name:e,defaultValue:[]}),i=Array.isArray(s)?s:[],c=w=>{const D=typeof w=="function"?w(i):w;l({target:{name:e,value:D}})},[m,d]=t.useState(null),[p,u]=t.useState(null),[f,x]=t.useState(""),y=t.useRef(null),E=w=>{x(w),y.current&&window.clearTimeout(y.current),y.current=window.setTimeout(()=>x(""),2500)};t.useEffect(()=>()=>{y.current&&window.clearTimeout(y.current)},[]),t.useImperativeHandle(r,()=>({getValue:()=>i,setValue:w=>c(w),clear:()=>c([])}));const h=t.useMemo(()=>Array.from({length:Pe},(w,N)=>N),[]),g=w=>{w.preventDefault()},S=w=>{if(w.preventDefault(),w.dataTransfer.getData("application/x-layoutbuilder-internal")){d(null);return}if(i.length>=Fr){E("Hai già 12 elementi nella row: rimuovine uno prima di aggiungerne un altro.");return}const D=o.current;if(!D)return;const I=D.getBoundingClientRect(),A=$r(w.clientX,I),_=w.dataTransfer.getData("text/plain")||w.dataTransfer.getData("label")||"",O=Hc(_)||"unknown",L=ia(a,1,Pe),$=ia(A,0,Pe-L),j=qs($,L,i);if(j!==null){c(H=>[...H,{id:jr(),fieldName:O,colStart:j,colSpan:L}]);return}if(!Br(i,A,L)){E("Nessuno spazio: non posso restringere abbastanza gli elementi per inserire questo campo.");return}c(H=>{if(H.length>=Fr)return E("Hai già 12 elementi nella row: rimuovine uno prima di aggiungerne un altro."),H;const K=Br(H,A,L);if(!K)return E("Nessuno spazio: non posso restringere abbastanza gli elementi per inserire questo campo."),H;const B={id:jr(),fieldName:O,colStart:K.insertCol,colSpan:L};return[...K.nextItems,B]})},v=w=>N=>{d(w),N.dataTransfer.setData("application/x-layoutbuilder-internal",w),N.dataTransfer.effectAllowed="move"},C=w=>{if(w.preventDefault(),!m)return;const N=o.current;if(!N)return;const D=N.getBoundingClientRect(),I=$r(w.clientX,D);c(A=>Kc(A,m,I))},b=()=>d(null),T=w=>N=>{N.stopPropagation(),N.preventDefault();const D=i.find(I=>I.id===w);D&&u({id:w,startClientX:N.clientX,startSpan:D.colSpan})},P=w=>{if(!p)return;const N=o.current;if(!N)return;const I=N.getBoundingClientRect().width/Pe,A=w.clientX-p.startClientX,_=Math.round(A/I),O=p.startSpan+_;c(L=>Wc(L,p.id,O))},M=()=>{p&&u(null)},k=w=>c(N=>N.filter(D=>D.id!==w));return t.createElement("div",{onMouseMove:P,onMouseUp:M,onMouseLeave:M},f&&t.createElement("div",{style:{marginBottom:8,padding:"8px 10px",borderRadius:10,border:"1px solid rgba(255,255,255,0.15)",background:"rgba(255,255,255,0.04)",fontSize:12,opacity:.95}},f),t.createElement("div",{ref:o,onDragOver:w=>{g(w),C(w)},onDrop:S,onDragEnd:b,style:{position:"relative",height:n,borderRadius:12,border:"2px dashed rgba(255, 255, 255, 0.25)",background:"rgba(0,0,0,0.02)",overflow:"hidden"}},h.map(w=>t.createElement("div",{key:w,style:{position:"absolute",top:0,bottom:0,left:`${w/Pe*100}%`,width:1,background:"rgba(255, 255, 255, 0.06)",pointerEvents:"none"}})),i.map(w=>t.createElement("div",{key:w.id,draggable:!0,onDragStart:v(w.id),style:{position:"absolute",top:12,bottom:12,left:`${w.colStart/Pe*100}%`,width:`${w.colSpan/Pe*100}%`,padding:10,borderRadius:12,border:"1px solid rgba(255, 255, 255, 0.18)",boxShadow:"0 1px 2px rgba(0,0,0,0.06)",cursor:m===w.id?"grabbing":"grab",display:"flex",alignItems:"center",justifyContent:"center",userSelect:"none"},title:"Trascina per spostare"},t.createElement("div",{style:{fontSize:10,fontWeight:400,opacity:.9}},w.fieldName),t.createElement("button",{type:"button",onClick:()=>k(w.id),style:{position:"absolute",border:"none",top:3,right:3,color:"white",background:"rgba(255, 255, 255, 0.03)",fontSize:12,cursor:"pointer"},title:"Rimuovi"},"×"),t.createElement("div",{onMouseDown:T(w.id),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",width:10,height:30,borderRadius:6,background:"rgba(255, 255, 255, 0.12)",cursor:"ew-resize"},title:"Trascina per ridimensionare"}))),i.length===0&&t.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"}},"Trascina un elemento qui dentro")))}),Vc=({name:e,onDataLoaded:a,onParseField:n=void 0,label:r=void 0,icon:o="upload",delimiter:s=void 0,normalizeKeys:l=!1,removeEmptyFields:i=!1,pre:c=void 0,post:m=void 0,wrapClass:d=void 0,className:p=void 0})=>{const[u,f]=t.useState(null),x=([v,C])=>{if(!["",null,void 0].includes(v)&&C!==void 0&&!(i&&["",null].includes(C)))return l&&(v=yt(v)),n?n([v,C]):[v.trim(),Ia(C)]},y=v=>{v&&Ol.parse(v,{header:!0,skipEmptyLines:!0,delimiter:s,dynamicTyping:!1,complete:C=>{var b;f(null),a({data:C.data.map(T=>Object.fromEntries(Object.entries(T).reduce((P,[M,k])=>{const w=x([M,k]);return w&&P.push(w),P},[]))),fields:(((b=C.meta)==null?void 0:b.fields)||[]).reduce((T,P)=>(P&&T.push(l?yt(P):P),T),[]),file:v})},error:C=>{f(C.message)}})},E=v=>{var b;const C=((b=v.target.files)==null?void 0:b[0])??null;C&&y(C)},h=v=>{v.preventDefault(),v.stopPropagation()},g=v=>{var b;v.preventDefault(),v.stopPropagation();const C=((b=v.dataTransfer.files)==null?void 0:b[0])??null;y(C)},S=v=>{v.preventDefault(),v.stopPropagation()};return t.createElement(z,{className:d},c,t.createElement("div",{"data-name":e,className:R("fileinput-button",p),onDragOver:h,onDrop:g,onDragLeave:S},t.createElement("input",{type:"file",onChange:E,accept:".csv,.tsv,text/csv,text/plain"}),t.createElement(Q,{name:o,label:r||"Drag or click to upload"})),u&&t.createElement("p",{style:{color:"red"}},"Errore: ",u),m)},Jc=e=>typeof e=="object"&&e!==null&&e.$$typeof===Symbol.for("react.forward_ref"),Vs=({children:e,record:a,handleChange:n,parentName:r=void 0,dataStoragePath:o=void 0,formRef:s=void 0,wrapClass:l=void 0})=>t.Children.map(e,i=>{if(console.log("SIAMO TUTTI",i),!t.isValidElement(i))return i;const{type:c,props:m}=i,d=m.name,p=n&&(f=>{var x;console.log("ONCHANGE",r,d,f,a),(x=m.onChange)==null||x.call(m,f),n==null||n(f)});if(c!=null&&c.__form)return console.log("ENHANCE",i,a,r,d,(d?a==null?void 0:a[d]:a)??m.value??void 0),t.cloneElement(i,{wrapClass:`${l}${m.wrapClass?" "+m.wrapClass:""}`,name:r?`${r}.${d}`:d,value:(a==null?void 0:a[d])??a??m.value??void 0,dataStoragePath:m.dataStoragePath??o??void 0,onChange:p,...Jc(c)?{ref:s}:{}});if(m.children)return t.cloneElement(i,{children:Vs({children:m.children,record:a,handleChange:n,parentName:r,dataStoragePath:o,formRef:s,wrapClass:l})});const u=ta(a,d);return d&&u===void 0&&console.warn(`The property "${d}" is not present in the record`,i),d&&console.log("CLONE ELEMENT",i,r,d,a,a==null?void 0:a[d]),t.cloneElement(i,m.onChange||d?{wrapClass:`${l}${m.wrapClass?" "+m.wrapClass:""}`,name:r?`${r}.${d}`:d,value:u??m.value??void 0,onChange:p}:{className:`${l}${m.className?" "+m.className:""}`})}),Xc=({components:e,record:a,handleChange:n,parentName:r=void 0,dataStoragePath:o=void 0,formRef:s=void 0,wrapClass:l="mb-3"})=>{const i=Array.isArray(e)?e:[e];return t.createElement(t.Fragment,null,Vs({children:i,record:a,handleChange:n,parentName:r,dataStoragePath:o,formRef:s,wrapClass:l}))};function Zc(e,a){const n=Array.isArray(e)?e:[e],r=[],o=s=>{t.Children.forEach(s,l=>{if(!t.isValidElement(l))return;const{props:i}=l;i.name?r.push(a(i)):i.children&&o(i.children)})};return o(n),r}const Qc=e=>e.replace(/^Outline \d+:\s*\n*/i,"").replace(/([•\-]\s*[^\n]+)/g,`$1
189
+ `).trim(),Gr=(e,a)=>a==="carousel"?"outline"in e&&Array.isArray(e.outline)?(console.log(e),e.outline.map(r=>{const o=r.subheadings.map(s=>` - ${s}`).join(`
190
+ `);return`Heading: ${r.headline}
191
+ ${o}`}).join(`
192
+
193
+ `).split(`
194
+ `).map((r,o)=>t.createElement("div",{key:o},r))):"Title"in e?e.Title:"Description"in e?e.Description:"[Nessun valore]":Object.values(e).find(r=>typeof r=="string")??"[Nessun valore]",Kt=({name:e,promptTopic:a,configVariables:n,initialValue:r,children:o,onChange:s=()=>{},viewMode:l="list",autoStart:i=!1,onReset:c=void 0,pre:m=void 0,post:d=void 0,wrapClass:p=void 0,className:u=void 0})=>{const[f,x]=t.useState(r??""),[y,E]=t.useState([]),[h,g]=t.useState(""),[S,v]=t.useState(!1),[C,b]=t.useState(null),T=Cc();t.useEffect(()=>{r&&i&&P()},[r,i]);const P=async()=>{E([]),g(""),v(!0),b(null),c==null||c();try{const w=gc(a.prompt,n,f),N=await T(w,{model:"gpt-5.2",temperature:.7});if(!N)throw new Error("Failed to get response");M(N)}catch(w){b("Failed to generate content. Please try again."),console.error("AI Error:",w)}finally{v(!1)}},M=w=>{let N=[];if(!Array.isArray(w)&&typeof w=="object")if(w.output)N=Array.isArray(w.output)?w.output:[w.output];else{g(w),s(w),v(!1);return}else N=Array.isArray(w)?w:[w];E(N)},k=(w,N)=>{const D=w.currentTarget.textContent||"",I=Qc(D);let A=D;if(N!==void 0){const _=y[N];A="outline"in _?_.outline:D}g(I),s(A)};return t.createElement(z,{className:p},m,t.createElement(te,{title:e,className:`my-3 ${u}`,header:t.createElement("div",{className:"flex justify-end items-center gap-2"},S&&t.createElement(Ba,null,"Thinking..."),C&&t.createElement("span",{className:"text-danger"},C),(h||y.length>0||C)&&t.createElement(fe,{icon:"arrow-clockwise",onClick:P}))},(!i||!r)&&!h&&!C&&t.createElement(be,{name:"inputUser",label:a.label,value:r??f,onChange:({value:w})=>x(w),post:t.createElement(He,{icon:"robot",onClick:P,disabled:!f}),wrapClass:"my-3"}),(y==null?void 0:y.length)>0&&!h&&!C&&(l==="carousel"?t.createElement(Un,null,y.map((w,N)=>{const D=Gr(w,l);return t.createElement(t.Fragment,null,"Outline ",N+1,t.createElement(la,{key:N,"data-index":N,className:"carousel-item-content",onClick:I=>k(I,N)},Array.isArray(D)?D.map((I,A)=>I):[{lines:D}]))})):t.createElement(la,{onClick:k},y.map((w,N)=>Gr(w,l)))),h&&!C&&t.createElement(Xc,{components:o,record:{[e]:h}})),d)};function em({path:e,where:a,order:n,fieldMap:r,onLoad:o}){const s=ot(),[l,i]=t.useState([]),c=t.useMemo(()=>{if(!(!a&&!n&&!r&&!o))return{where:a,order:n,fieldMap:r,onLoad:o}},[r,o,n,a]);return t.useEffect(()=>s.subscribe(e,i,c),[s,c,e]),l}function tm(e){if(e)return e}function Js({path:e,where:a,order:n,fieldMap:r,onLoad:o,recordId:s="_key",...l}){const i=ve.useLocation(),c=e==="fromUrl"?tm(i.pathname):e,m=em({path:c,where:a,order:n,fieldMap:r,onLoad:o}),d=t.useMemo(()=>{if(!n)return;const u=Object.entries(n)[0];if(!u)return;const[f,x]=u;return{field:f,dir:x}},[n]),p=l.sortable===void 0||l.sortable===!0?d??l.sortable:l.sortable;return t.createElement(pr,{...l,records:m,recordId:s,sourcePath:c,sortable:p})}const Yr=e=>e.replace(/[^a-zA-Z0-9_-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),cr=e=>a=>{if(typeof e=="function")return String(e(a));const n=a[e];return n==null||n===""?"":String(n)},am=(e,a)=>{if(e==null||e==="text")return a;if(e==="boolean")return a?"Yes":"No";if(e==="json")return a==null?"":JSON.stringify(a,null,2);if(e==="badge"||e==="image"||e==="email")return a;const r=we[e==="datetime"?"dateTime":e];return r?r(a):a},nm=(e,a,n)=>e.map((r,o)=>{const s={...r,_index:o};for(const l of a){const i=String(l.key),c=ta(r,i),m={record:r,value:c,key:i,rowIndex:o,runAction:d=>n(d,r)};s[i]=typeof l.render=="function"?l.render(m):am(l.render,c)}return s}),Ur=e=>({key:e,label:we.toCamel(e," "),sortable:!0}),rm=(e,a,n)=>{if(e!=null&&e.length)return e;if(t.isValidElement(n))return Zc(n,o=>Ur(o.name));const r=a[0];return r?Object.entries(r).reduce((o,[s,l])=>(s.startsWith("_")||(t.isValidElement(l)||typeof l!="object"||Array.isArray(l))&&o.push(Ur(s)),o),[]):[]},om=(e,a)=>Array.isArray(e)?e.reduce((n,r)=>(r==="delete"?n[r]={kind:"delete"}:n[r]={kind:"modal"},n),{}):e?Object.entries(e).reduce((n,[r,o])=>(o&&(n[r]=o),n),{}):a?{add:{kind:"modal"},edit:{kind:"modal"},delete:{kind:"delete"}}:{},fn=(e,a)=>e!=null&&e.visible?typeof e.visible=="function"?e.visible(a):e.visible:!0,Xs=(e,a)=>e!=null&&e.disabled?typeof e.disabled=="function"?e.disabled(a):e.disabled:!1,gn=(e,a)=>a!=null&&a.label?a.label:e==="add"?"Add":e==="edit"?"Edit":e==="delete"?"Delete":we.toCamel(e," "),sm=e=>{if(!(!e||typeof e=="boolean"))return e};function Zs({records:e,recordId:a,columns:n,runAction:r,sortable:o,pagination:s,selection:l=!1,selectedKeys:i,onSelectionChange:c,onClickRow:m,reorderable:d=!1,onReorder:p,activeKey:u,wrapClass:f}){const x=t.useMemo(()=>cr(a),[a]),y=t.useMemo(()=>e.reduce((h,g)=>(h.set(x(g),g),h),new Map),[x,e]),E=t.useMemo(()=>nm(e,n,r),[n,e,r]);return t.createElement(Ya,{header:n.map(h=>({key:String(h.key),label:h.label,className:h.className,sort:h.sortable})),body:E,sortable:o,pagination:s,selectionMode:l==="single"?"single":"multiple",selectedKeys:l?i:void 0,onSelectionChange:l?h=>{const g=new Set(h.keys);let v=e.filter(T=>g.has(x(T))),C=h.keys;if(l==="single"&&h.keys.length>1){const T=h.keys[h.keys.length-1];C=T?[T]:[],v=T?y.get(T)?[y.get(T)]:[]:[]}const b={keys:C,records:v,hasSelection:C.length>0,clear:()=>c==null?void 0:c({keys:[],records:[],hasSelection:!1,clear:()=>{}})};c==null||c(b)}:void 0,onClick:m?h=>{const g=x(h),S=y.get(g);S&&m(S)}:void 0,onReorder:d&&p?(h,g)=>{const S=h.map(C=>y.get(x(C))).filter(Boolean),v=y.get(x(g.record));v&&p(S,{fromIndex:g.fromIndex,toIndex:g.toIndex,record:v})}:void 0,activeKey:u,wrapClass:f})}const lm=({imageUrl:e,title:a=void 0,width:n=700,height:r=500,modal:o=!1,onImageLoad:s=void 0,onClose:l=void 0,onSave:i=void 0})=>{const c=t.useRef(null),m=t.useRef(null),d={width:10,color:"rgba(255,0,0,0.5)",fill:"transparent"},[p,u]=t.useState(1);t.useEffect(()=>{if(!c.current)return;const v=new _l(c.current,{cssMaxWidth:n,cssMaxHeight:r,selectionStyle:{cornerSize:10,rotatingPointOffset:70,cornerColor:"white",cornerStrokeColor:"red",borderColor:"red"}});return m.current=v,v.on("objectAdded",C=>{console.log("objectAdded",C),v.stopDrawingMode()}),v.on("addText",C=>{v.stopDrawingMode(),v.addText("init text",{styles:{fill:"#FF0000",fontSize:30,fontWeight:"bold"},position:{x:C.originPosition.x,y:C.originPosition.y}})}),()=>{v.destroy(),m.current=null}},[n,r]);const f=t.useCallback(()=>{const v=m.current;!e||!v||v.loadImageFromURL(e,"Sample Image").then(()=>{s==null||s(),v.clearUndoStack(),v.clearRedoStack()}).catch(C=>{console.error("Error loading image:",C)})},[e,s]);t.useEffect(()=>{f()},[f]);const x=(v,C)=>{v.preventDefault();const b=m.current;if(!b)return;const T=3,P=1;switch(C){case"ZOOMIN":p<T&&u(M=>M*1.2);break;case"ZOOMOUT":p>P&&u(M=>Math.max(M*.8,P));break;case"UNDO":b.isEmptyUndoStack()||b.undo();break;case"REDO":b.isEmptyRedoStack()||b.redo();break;case"FLIPX":b.flipX();break;case"FLIPY":b.flipY();break;case"ROTATE":b.rotate(90);break;case"CROPPER":b.startDrawingMode(C);break;case"FREE_DRAWING":b.startDrawingMode(C,{width:d.width,color:d.color});break;case"LINE_DRAWING":b.startDrawingMode(C,{width:d.width,color:d.color,arrowType:{tail:"chevron"}});break;case"TEXT":b.startDrawingMode(C);break;case"circle":case"rect":case"triangle":b.setDrawingShape(C,{fill:d.fill,stroke:d.color,strokeWidth:3}),b.startDrawingMode("SHAPE");break}},y=async()=>{const v=m.current;v&&(await(i==null?void 0:i(v.toDataURL())),document.body.style.overflow="")},E=()=>{document.body.style.overflow="",l==null||l()};window.document.body.style.overflow="hidden";const h="inline-flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",g=t.createElement("div",{className:"flex border-b"},t.createElement("div",{className:"border-end"},t.createElement("button",{className:h,title:"Undo",onClick:v=>x(v,"UNDO")},t.createElement(Q,{name:"arrow-arc-left"})),t.createElement("button",{className:h,title:"Redo",onClick:v=>x(v,"REDO")},t.createElement(Q,{name:"arrow-arc-right"})),t.createElement("button",{className:h,title:"Zoom In",onClick:v=>x(v,"ZOOMOUT")},t.createElement(Q,{name:"magnifying-glass-minus"})),t.createElement("button",{className:h,title:"Zoom Out",onClick:v=>x(v,"ZOOMIN")},t.createElement(Q,{name:"magnifying-glass-plus"}))),t.createElement("div",{className:"border-end"},t.createElement("button",{className:h,title:"Crop",onClick:v=>x(v,"CROPPER")},t.createElement(Q,{name:"crop"})),t.createElement("button",{className:h,title:"Flip X",onClick:v=>x(v,"FLIPX")},t.createElement(Q,{name:"arrow-line-right"})),t.createElement("button",{className:h,title:"Flip Y",onClick:v=>x(v,"FLIPY")},t.createElement(Q,{name:"arrow-line-down"})),t.createElement("button",{className:h,title:"Rotate",onClick:v=>x(v,"ROTATE")},t.createElement(Q,{name:"camera-rotate"}))),t.createElement("div",{className:"border-end"},t.createElement("button",{className:h,title:"Free Drawing",onClick:v=>x(v,"FREE_DRAWING")},t.createElement(Q,{name:"pencil"})),t.createElement("button",{className:h,title:"Line",onClick:v=>x(v,"LINE_DRAWING")},t.createElement(Q,{name:"arrow-right"})),t.createElement("button",{className:h,title:"Text",onClick:v=>x(v,"TEXT")},t.createElement(Q,{name:"text-t"})),t.createElement("button",{className:h,title:"Rect",onClick:v=>x(v,"rect")},t.createElement(Q,{name:"rectangle"})),t.createElement("button",{className:h,title:"Circle",onClick:v=>x(v,"circle")},t.createElement(Q,{name:"circle"})),t.createElement("button",{className:h,title:"Triangle",onClick:v=>x(v,"triangle")},t.createElement(Q,{name:"triangle"}))),i&&t.createElement("div",{className:"ml-auto"},t.createElement(He,{className:"btn-primary",onClick:y,icon:"floppy-disk",label:"Save"}))),S=t.createElement("div",{ref:c,className:"flex justify-center",style:{transform:`scale(${p})`,transformOrigin:"top center",display:"inline-block",userSelect:"none",width:"100%",height:r*p+"px"}});return o?t.createElement(pa,{size:"xl",title:a||"Image Editor",header:g,className:"bg-secondary",bodyClass:"overflow-hidden",onClose:E,footer:!1},S):t.createElement(t.Fragment,null,g,S)},Qs=t.createContext(null);let zr=0;const hn="LLM Native",bn={charset:"UTF-8",viewport:"width=device-width, initial-scale=1.0"},yn={lang:"en"};function el(e,a){return a.includes(":")?a:`${e}:${a}`}function im(e){return Array.isArray(e)?e.join(", "):e}function cm(e){return e==="siteName"?"og:site_name":el("og",e)}function mm(e){return[...e.canonical?[{rel:"canonical",href:e.canonical}]:[],...e.ampHtml?[{rel:"amphtml",href:e.ampHtml}]:[],...e.sitemap?[{rel:"sitemap",href:e.sitemap,type:"application/xml"}]:[],...e.links??[]]}function dm(e){return[...e.prev?[{rel:"prev",href:e.prev}]:[],...e.next?[{rel:"next",href:e.next}]:[]]}function um(e){return(e.alternates??[]).map(a=>({rel:"alternate",href:a.href,hrefLang:a.hrefLang,media:a.media,type:a.type,title:a.title}))}function pm(e,a,n){var r;return{name:{description:e.description,...e.meta??{},robots:n.robots??((r=e.meta)==null?void 0:r.robots),googlebot:n.googlebot,keywords:im(n.keywords),author:n.author,publisher:n.publisher,referrer:n.referrer,...n.meta??{},...Object.fromEntries(Object.entries(a.twitter??{}).map(([o,s])=>[el("twitter",o),s]))},property:Object.fromEntries(Object.entries(a.openGraph??{}).map(([o,s])=>[cm(o),s]))}}function fm(e,a,n,r){return[...mm(a),...dm(r),...um(n),...e.canonical&&!a.canonical?[{rel:"canonical",href:e.canonical}]:[],...e.links??[]]}function gm(e){return[...(e.fonts??[]).flatMap(a=>[...(a.dnsPrefetch??[]).map(n=>({rel:"dns-prefetch",href:n})),...(a.preconnect??[]).map(n=>({rel:"preconnect",href:n,crossOrigin:a.crossOrigin})),...a.preload?[{rel:"preload",href:a.href,as:a.as??"font",type:a.type,media:a.media,crossOrigin:a.crossOrigin}]:[],{rel:"stylesheet",href:a.href,media:a.media,crossOrigin:a.crossOrigin}])]}function hm(e){return[...e.manifest?[{rel:"manifest",href:e.manifest}]:[],...e.favicon?[{rel:"icon",href:e.favicon}]:[],...e.appleTouchIcon?[{rel:"apple-touch-icon",href:e.appleTouchIcon}]:[],...e.icons??[]]}function bm(e){return{"theme-color":e.themeColor,"msapplication-TileColor":e.backgroundColor,"color-scheme":e.colorScheme,"application-name":e.applicationName,"mobile-web-app-capable":e.mobileWebAppCapable===void 0?void 0:String(e.mobileWebAppCapable),"apple-mobile-web-app-capable":e.appleMobileWebAppCapable===void 0?void 0:String(e.appleMobileWebAppCapable),"apple-mobile-web-app-title":e.appleMobileWebAppTitle,"apple-mobile-web-app-status-bar-style":e.appleMobileWebAppStatusBarStyle}}function ym(e){return Array.isArray(e.jsonLd)?e.jsonLd:e.jsonLd?[e.jsonLd]:[]}function Em(e){return Object.fromEntries(Object.entries(e).filter(([,a])=>!!a))}function vm(e){const{inline:a,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,r])=>r!==void 0&&r!==!1))}function wm(e){const{inline:a,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,r])=>r!==void 0&&r!==!1))}function Cm({appName:e,metadata:a,social:n,links:r,pagination:o,language:s,document:l,assets:i,pwa:c,schemaOrg:m}){var x,y;if(typeof globalThis.document>"u")return null;const d=pm(a,n,l),p=bm(c),u=[...fm(r,l,s,o),...gm(i),...hm(c)],f=ym(m);return Ra.createPortal(t.createElement(t.Fragment,null,l.charset?t.createElement("meta",{charSet:l.charset,"data-rfs-head":"document"}):null,(x=l.base)!=null&&x.href||(y=l.base)!=null&&y.target?t.createElement("base",{href:l.base.href,target:l.base.target,"data-rfs-head":"document"}):null,t.createElement("title",{"data-rfs-head":"title"},a.title??e),l.viewport?t.createElement("meta",{name:"viewport",content:l.viewport,"data-rfs-head":"document"}):null,Object.entries(l.httpEquiv??{}).map(([E,h])=>h?t.createElement("meta",{key:`http-equiv:${E}`,httpEquiv:E,content:h,"data-rfs-head":"document"}):null),Object.entries(d.name).map(([E,h])=>h?t.createElement("meta",{key:`name:${E}`,name:E,content:h,"data-rfs-head":"meta"}):null),Object.entries(d.property).map(([E,h])=>h?t.createElement("meta",{key:`property:${E}`,property:E,content:h,"data-rfs-head":"meta"}):null),Object.entries(p).map(([E,h])=>h?t.createElement("meta",{key:`pwa:${E}`,name:E,content:h,"data-rfs-head":"pwa"}):null),u.map((E,h)=>t.createElement("link",{key:`${E.rel}:${E.href??h}`,...Em(E),"data-rfs-head":"link"})),(i.styles??[]).map((E,h)=>t.createElement(t.Fragment,{key:`style:${E.href??h}`},E.href?t.createElement("link",{rel:"stylesheet",href:E.href,...wm(E),"data-rfs-head":"asset-style"}):null,E.inline?t.createElement("style",{id:E.id,nonce:E.nonce,media:E.media,title:E.title,"data-rfs-head":"asset-style"},E.inline):null)),(i.scripts??[]).map((E,h)=>t.createElement(t.Fragment,{key:`script:${E.src??h}`},E.src?t.createElement("script",{...vm(E),"data-rfs-head":"asset-script"}):null,E.inline?t.createElement("script",{type:E.type,id:E.id,nonce:E.nonce,"data-rfs-head":"asset-script"},E.inline):null)),f.map((E,h)=>t.createElement("script",{key:`schema-org:${h}`,type:"application/ld+json","data-rfs-head":"schema-org"},JSON.stringify(E)))),globalThis.document.head)}function tl({appName:e=hn,children:a}){const n=e||hn,r=t.useRef(typeof globalThis.document>"u"?"":globalThis.document.documentElement.lang),o=t.useRef(typeof globalThis.document>"u"?"":globalThis.document.documentElement.dir),[s,l]=t.useState({}),[i,c]=t.useState([]),[m,d]=t.useState({}),[p,u]=t.useState({}),[f,x]=t.useState({}),[y,E]=t.useState(yn),[h,g]=t.useState(bn),[S,v]=t.useState({}),[C,b]=t.useState({}),[T,P]=t.useState({}),M=t.useCallback(()=>l({}),[]),k=t.useCallback((H,K)=>{c(B=>[...B.filter(ie=>ie.id!==H),{id:H,metadata:K}])},[]),w=t.useCallback(H=>{c(K=>K.filter(B=>B.id!==H))},[]),N=t.useCallback(()=>d({}),[]),D=t.useCallback(()=>u({}),[]),I=t.useCallback(()=>x({}),[]),A=t.useCallback(()=>E(yn),[]),_=t.useCallback(()=>g(bn),[]),O=t.useCallback(()=>v({}),[]),L=t.useCallback(()=>b({}),[]),$=t.useCallback(()=>P({}),[]);t.useEffect(()=>{typeof globalThis.document>"u"||(globalThis.document.documentElement.lang=y.lang??r.current,globalThis.document.documentElement.dir=y.dir??o.current)},[y.lang,y.dir]);const j=i.length>0?i[i.length-1].metadata:s;t.useEffect(()=>{typeof globalThis.document>"u"||(globalThis.document.title=j.title??n)},[j.title,n]);const V=t.useMemo(()=>({metadata:j,social:m,links:p,pagination:f,language:y,document:h,assets:S,pwa:C,schemaOrg:T,setPageMetadata:l,clearPageMetadata:M,setPageMetadataEntry:k,clearPageMetadataEntry:w,setSocialHead:d,clearSocialHead:N,setHeadLinks:u,clearHeadLinks:D,setPaginationHead:x,clearPaginationHead:I,setLanguageHead:E,clearLanguageHead:A,setDocumentHead:g,clearDocumentHead:_,setAssetsHead:v,clearAssetsHead:O,setPwaHead:b,clearPwaHead:L,setSchemaOrg:P,clearSchemaOrg:$}),[j,m,p,f,y,h,S,C,T,M,k,w,N,D,I,A,_,O,L,$]);return t.createElement(Qs.Provider,{value:V},a,t.createElement(Cm,{appName:n,metadata:j,social:m,links:p,pagination:f,language:y,document:h,assets:S,pwa:C,schemaOrg:T}))}function et(){return t.useContext(Qs)}function tt(e){return JSON.stringify(e??{})}function mr(e){const a=et(),n=t.useRef(null);n.current||(zr+=1,n.current=`metadata-${zr}`);const r=tt(e);return t.useEffect(()=>{if(!a||!e)return;const o=n.current;return a.setPageMetadataEntry(o,e),()=>a.clearPageMetadataEntry(o)},[a==null?void 0:a.setPageMetadataEntry,a==null?void 0:a.clearPageMetadataEntry,r]),a}function xm(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.social;return a.setSocialHead(e),()=>a.setSocialHead(r)},[a==null?void 0:a.setSocialHead,n]),a}function Nm(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.links;return a.setHeadLinks(e),()=>a.setHeadLinks(r)},[a==null?void 0:a.setHeadLinks,n]),a}function km(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.pagination;return a.setPaginationHead(e),()=>a.setPaginationHead(r)},[a==null?void 0:a.setPaginationHead,n]),a}function Am(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.language;return a.setLanguageHead(e),()=>a.setLanguageHead(r)},[a==null?void 0:a.setLanguageHead,n]),a}function Sm(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.document;return a.setDocumentHead(e),()=>a.setDocumentHead(r)},[a==null?void 0:a.setDocumentHead,n]),a}function Tm(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.assets;return a.setAssetsHead(e),()=>a.setAssetsHead(r)},[a==null?void 0:a.setAssetsHead,n]),a}function Im(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.pwa;return a.setPwaHead(e),()=>a.setPwaHead(r)},[a==null?void 0:a.setPwaHead,n]),a}function Dm(e){const a=et(),n=tt(e);return t.useEffect(()=>{if(!a||!e)return;const r=a.schemaOrg;return a.setSchemaOrg(e),()=>a.setSchemaOrg(r)},[a==null?void 0:a.setSchemaOrg,n]),a}function Pm(e){return mr(e),null}const En=e=>/^(https?:)?\/\//.test(e)||e.startsWith("mailto:")||e.startsWith("tel:"),Rm=e=>!!e&&!En(e)&&!e.startsWith("#"),Mm=e=>e.startsWith("#"),vn=e=>typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(vn).join(""):t.isValidElement(e)?vn(e.props.children):"",Om=e=>{if(!t.isValidElement(e))return;const a=/language-([\w-]+)/.exec(e.props.className||"");return a==null?void 0:a[1]};function _m({code:e,language:a}){const[n,r]=t.useState(!1),o=()=>{On(e),r(!0),window.setTimeout(()=>r(!1),1600)};return t.createElement("div",{className:"relative my-4 overflow-hidden rounded-md border bg-muted/50"},t.createElement("div",{className:"flex h-9 items-center justify-between border-b px-3"},t.createElement("span",{className:"text-xs font-medium text-muted-foreground"},a||"text"),t.createElement("button",{type:"button",className:"rounded border bg-background px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",onClick:o},n?"Copied":"Copy")),t.createElement("pre",{className:"m-0 overflow-x-auto p-4 text-xs leading-relaxed"},t.createElement("code",{className:a?`language-${a}`:void 0},e)))}const Lm=e=>({h1:({className:a,...n})=>t.createElement("h1",{className:R("mt-8 scroll-m-20 text-3xl font-bold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80",a),...n}),h2:({className:a,...n})=>t.createElement("h2",{className:R("mt-8 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80",a),...n}),h3:({className:a,...n})=>t.createElement("h3",{className:R("mt-6 scroll-m-20 text-xl font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80",a),...n}),h4:({className:a,...n})=>t.createElement("h4",{className:R("mt-5 scroll-m-20 text-base font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80",a),...n}),p:({className:a,...n})=>t.createElement("p",{className:R("my-4 leading-7 text-foreground",a),...n}),ul:({className:a,...n})=>t.createElement("ul",{className:R("my-4 ml-6 list-disc space-y-2",a),...n}),ol:({className:a,...n})=>t.createElement("ol",{className:R("my-4 ml-6 list-decimal space-y-2",a),...n}),li:({className:a,...n})=>t.createElement("li",{className:R("leading-7",a),...n}),blockquote:({className:a,...n})=>t.createElement("blockquote",{className:R("my-4 border-l-4 border-primary bg-muted/40 px-4 py-3 text-sm text-muted-foreground",a),...n}),table:({className:a,...n})=>t.createElement("div",{className:"my-4 w-full overflow-x-auto"},t.createElement("table",{className:R("w-full border-collapse text-sm",a),...n})),th:({className:a,...n})=>t.createElement("th",{className:R("border bg-muted px-3 py-2 text-left font-semibold",a),...n}),td:({className:a,...n})=>t.createElement("td",{className:R("border px-3 py-2 align-top",a),...n}),hr:({className:a,...n})=>t.createElement("hr",{className:R("my-8 border-border",a),...n}),a:({className:a,href:n="",onClick:r,...o})=>t.createElement("a",{className:R(Mm(n)?"text-primary no-underline transition-opacity hover:opacity-80":"font-medium text-primary no-underline transition-opacity hover:opacity-80",a),href:n,target:En(n)?"_blank":void 0,rel:En(n)?"noreferrer":void 0,onClick:s=>{r==null||r(s),!s.defaultPrevented&&e&&Rm(n)&&(s.preventDefault(),e(n,s))},...o}),pre:({children:a})=>t.createElement(_m,{code:vn(a).replace(/\n$/,""),language:Om(a)}),code:({className:a,children:n,...r})=>typeof a=="string"&&a.startsWith("language-")?t.createElement("code",{className:a,...r},n):t.createElement("code",{className:R("rounded bg-muted px-1.5 py-0.5 text-[0.9em]",a),...r},n),input:({className:a,...n})=>t.createElement("input",{className:R("mr-2 align-middle",a),disabled:!0,...n})});function Fm({content:e,components:a,className:n,wrapClass:r,head:o,onNavigateInternal:s}){const l=t.useMemo(()=>{var m,d;return(d=(m=e.match(/^#[ \t]+(.+)/m))==null?void 0:m[1])==null?void 0:d.trim()},[e]),i=o||l?{...o??{},title:(o==null?void 0:o.title)??l}:void 0;mr(i);const c=t.useMemo(()=>Lm(s),[s]);return t.createElement("div",{className:R("rf-markdown-reader max-w-none text-sm text-foreground",r,n)},t.createElement(Ll,{remarkPlugins:[Fl],rehypePlugins:[$l,[jl,{behavior:"wrap"}],Bl],components:{...c,...a}},e))}const St=({children:e,name:a,onChange:n=void 0,onAdd:r=void 0,onRemove:o=void 0,label:s="Tab",min:l=1,max:i=void 0,activeIndex:c=0,title:m=void 0,readOnly:d=!1,tabPosition:p="default"})=>{const{value:u,handleChange:f}=Se({name:a,onChange:n}),[x,y]=t.useState(c),[E,h]=t.useState(0),g=t.useMemo(()=>{var P;return(P=Array.isArray(u)?u:Array.from({length:l},()=>({})))==null?void 0:P.map((M,k)=>s.includes("{")?we.parse(u==null?void 0:u[k],s):s+" "+(k+1))},[u,s,l,E]),S=typeof e=="function"?e({record:u==null?void 0:u[x],records:u,currentIndex:x}):e,v=t.useMemo(()=>Xt({children:S,parentName:`${a}.${x}`,parentKey:`${a}-${x}-${E}`}),[x,S,a,E]),C=()=>{const P=Array.isArray(u)?[...u,{}]:Array.from({length:g.length+1},()=>({}));r==null||r(P),f({target:{name:`${a}.${P.length-1}`,value:{}}}),y(P.length-1),h(M=>M+1)},b=P=>{const M=g.length-1;o==null||o(P),f({target:{name:`${a}.${P}`}}),x>=M&&y(k=>k-1),h(k=>k+1)},T=ir[p];return t.createElement("div",null,m&&t.createElement("h3",null,m),t.createElement(T,{menu:t.createElement(t.Fragment,null,g==null?void 0:g.map((P,M)=>t.createElement("li",{key:`${a}-${M}`,className:"nav-item mr-1 relative"},t.createElement("button",{onClick:()=>y(M),className:`nav-link ${M===x?"active":""}`},P),!d&&g.length-1>=l&&M===x&&t.createElement(fe,{className:"absolute top-0 right-0 p-0",icon:"x",onClick:()=>b(M)}))),!d&&(!i||g.length<i)&&t.createElement("li",{key:g.length+1,className:"nav-item mr-1"},t.createElement(fe,{className:"nav-link",icon:"plus",onClick:C}))),content:t.createElement("div",{className:"tab-pane fade show active"},v)}))},Za=new Map,Qa=new Map;class Ua{constructor(a="",n){this.formFields={},this.defaultValues={},this.htmlString=a,n&&Object.entries(n).forEach(([r,o])=>{this.setFields(o,r)})}static async loadFromDatabase(a,n){const r=await ra.read(a),o=typeof r.html=="string"?r.html:"",s=typeof r.fields=="object"&&r.fields!==null?r.fields:{};return r.html||console.warn(`[Template] Attempted to load 'html' from database at path "${a}", but it was not found.`),r.fields||console.warn(`[Template] Attempted to load 'fields' from database at path "${a}", but they were not found.`),new Ua(o,s).use(n)}setHtml(a){return this.htmlString=a,this}use(a){return a&&!this.useFields(a)&&console.warn(`[Template] Bucket Fields "${a}" not found`),this}useFields(a){if(Qa.has(a)){const{formFields:n,defaultValues:r}=Qa.get(a);return this.formFields=n,this.defaultValues=r,!0}else return this.formFields={},this.defaultValues={},!1}buildFormField(a,n={}){const r=Bs[a];return r?r(n):null}setFields(a,n,r=!1){if(r||!this.useFields(n)){for(const[o,{tag:s,props:l={}}]of Object.entries(a)){const i=this.buildFormField(s,l);if(!i){console.warn(`[Template] Tipo di input non riconosciuto: "${s}" per la variabile "${o}"`);continue}this.formFields[o]=i.render({name:o}),Object.assign(this.defaultValues,i.getDefaults(o))}Qa.set(n,{formFields:this.formFields,defaultValues:this.defaultValues})}return this}toJSX(){return Za.has(this.htmlString)||Za.set(this.htmlString,this.parseXmlToReactTree()),Za.get(this.htmlString)}getDefaultValues(){return this.defaultValues}getFields(){return this.formFields}convertJsxAttrsToXml(a){return a.replace(/(\w+)\s*=\s*{([^}]+)}/g,(n,r,o)=>`${r}="${o.trim()}"`)}parseTextToFragments(a){const n=[];let r=0,o;const s=/{([^}]+)}/g;for(;o=s.exec(a);){const l=o.index,i=o[1];l>r&&n.push(a.substring(r,l)),r=l+o[0].length;const c=this.formFields[i];c!==void 0?n.push(c):console.warn(`[parseTextToFragments] component "${i}" not found`)}return r<a.length&&n.push(a.substring(r)),n}walk(a){switch(a.nodeType){case Node.TEXT_NODE:{const n=a.textContent;return n&&n.trim()?this.parseTextToFragments(n):[]}case Node.ELEMENT_NODE:{const n=a,r=n.tagName.toLowerCase(),o=ms[r]??r,s=Object.fromEntries(Array.from(n.attributes,i=>[i.name,i.value])),l=Array.from(n.childNodes).flatMap(i=>this.walk(i));return[t.createElement(o,s,...l)]}default:return[]}}parseXmlToReactTree(){const n=new DOMParser().parseFromString(this.convertJsxAttrsToXml(this.htmlString),"text/xml"),r=Array.from(n.childNodes).flatMap(o=>this.walk(o));return console.log("nodes",r),t.createElement(t.Fragment,null,...r)}}function $m({htmlString:e,components:a,dataStoragePath:n}){const r=t.useMemo(()=>{const o=new Ua(e).setFields(a,"default");return{RenderComponent:o.toJSX(),defaultValues:o.getDefaultValues()}},[e,a]);return t.createElement(lr,{dataStoragePath:n,defaultValues:r.defaultValues},r.RenderComponent)}function jm({template:e,fieldBucketKey:a,dataSource:n}){const[r,o]=t.useState(null);return t.useEffect(()=>{const s=new AbortController;return Ua.loadFromDatabase(e,a).then(l=>{s.signal.aborted||o({children:l.toJSX(),defaultValues:l.getDefaultValues()})}),()=>{s.abort()}},[e]),r?n?t.createElement(lr,{dataStoragePath:n,defaultValues:r.defaultValues},r.children):t.createElement("p",{className:"p-4"},t.createElement("span",{className:"mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"Caricamento in corso..."):t.createElement("p",{className:"p-4"},t.createElement("span",{className:"mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"Caricamento in corso...")}const dr=({recordSet:e,children:a,limit:n=void 0,page:r=void 0,navLimit:o=void 0,appendTo:s=void 0,pre:l=void 0,post:i=void 0,className:c=void 0,wrapClass:m=void 0,scrollToTopOnChange:d=void 0,scrollBehavior:p=void 0,align:u=void 0,sticky:f=void 0})=>{const x=J(),[y,E]=t.useState(r||1),h=n||e.length,g=Math.ceil(e.length/h),S=(y-1)*h,v=S+h,C=t.useMemo(()=>e.slice(S,v),[e,S,v]),b=D=>{D>=1&&D<=g&&E(D)};t.useEffect(()=>{(d||x.Pagination.scrollToTop)&&window.scrollTo({top:0,behavior:p||x.Pagination.scrollBehavior})},[y,d,p]);const T=t.useMemo(()=>{const D=Math.min(o||x.Pagination.maxItems,g);let I=Math.max(1,y-Math.floor(D/2)),A=I+D-1;return A>g&&(A=g,I=Math.max(1,A-D+1)),Array.from({length:A-I+1},(_,O)=>I+O)},[y,o,g]),P=y===1?"disabled":"",M=y===g?"disabled":"",k=u||x.Pagination.align,w={start:"justify-start",center:"justify-center",end:"justify-end"}[k]||"justify-end",N=t.createElement(z,{className:(m||x.Pagination.wrapClass)+(f||x.Pagination.sticky?` ${x.Pagination.stickyClass}`:""),style:f||x.Pagination.sticky?{backdropFilter:"blur(10px)",backgroundColor:"rgba(255, 255, 255, 0.1)"}:{}},l,e.length>h&&t.createElement("nav",{"aria-label":"Page navigation",className:`${c||x.Pagination.className} flex w-full ${w}`},t.createElement("ul",{className:"pagination"},t.createElement("li",{className:`page-item page-item-group-start ${P}`},t.createElement("button",{onClick:()=>b(1),className:"page-link"},t.createElement("span",null,"«"))),t.createElement("li",{className:`page-item ${P}`},t.createElement("button",{className:"page-link",onClick:()=>b(y-1)},t.createElement("span",null,"‹"))),T.map(D=>t.createElement("li",{key:D,className:`page-item ${y===D?"active":""}`},t.createElement("button",{onClick:()=>b(D),className:"page-link"},D))),t.createElement("li",{className:`page-item page-item-group-end ${M}`},t.createElement("button",{className:"page-link",onClick:()=>b(y+1)},t.createElement("span",null,"›"))),t.createElement("li",{className:`page-item ${M}`},t.createElement("button",{onClick:()=>b(g),className:"page-link"},t.createElement("span",null,"»"))))),i);return t.createElement(t.Fragment,null,a(C,S),s?Ra.createPortal(N,s):s===void 0&&N)},ur=({body:e=void 0,Header:a=void 0,Footer:n=void 0,overlays:r=void 0,onClick:o=void 0,onSelectionChange:s=void 0,sortable:l=!1,pagination:i=void 0,gutterSize:c=void 0,rowCols:m=void 0,groupBy:d=void 0,selectedKeys:p=void 0,selectedRowKeys:u=void 0,pre:f=void 0,post:x=void 0,wrapClass:y=void 0,className:E=void 0,headerClass:h=void 0,scrollClass:g=void 0,bodyClass:S=void 0,footerClass:v=void 0,selectedClass:C=void 0})=>{const b=J(),T=C||b.Gallery.selectedClass,[P,M]=t.useState(null),k=t.useCallback(G=>{G&&M(G)},[]),w=c??b.Gallery.gutterSize,N=m??b.Gallery.rowCols,D={0:"0",1:"0.25rem",2:"0.5rem",3:"1rem",4:"1.5rem",5:"3rem"},I=D[w]||D[2],A="0.75rem",_="calc(50% - 1rem)",O=`calc((100% - (${I} * ${N-1})) / ${N})`,L=e||[],$=t.useMemo(()=>{if(!l)return;if(typeof l=="object")return l;const G=e==null?void 0:e[0];if(!G)return;const q=Object.keys(G).find(Y=>!Y.startsWith("_"));if(q)return{field:q,dir:"asc"}},[e,typeof l=="object"?l==null?void 0:l.dir:void 0,typeof l=="object"?l==null?void 0:l.field:void 0,l]),j=Ts("item"),V=t.useCallback((G,q)=>j(G,q),[j]),{activeSelectedKeys:H,showSelection:K,updateSelection:B}=Ss({records:L,selectedKeys:p,legacySelectedKeys:u,onSelectionChange:s,getRecordKey:V}),ee=(G,q)=>{var Y;if(T){const ce=T.split(/\s+/).filter(Boolean);let ae=G.target;for(;ae&&!ae.classList.contains("item");){if(["A","BUTTON","INPUT","LABEL"].includes(ae.tagName))return;ae=ae.parentNode}ce.every(se=>ae.classList.contains(se))||(Array.from(((Y=ae.parentNode)==null?void 0:Y.children)||[]).forEach(se=>{se.classList.remove(...ce)}),ae.classList.add(...ce))}o==null||o(q)},ie=t.useCallback((G,q)=>{const Y=V(G,q),ce=H.includes(Y)?H.filter(ae=>ae!==Y):[...H,Y];B(ce)},[H,V,B]),X=(G,q)=>{var ce;const Y=G.img;return Y&&t.isValidElement(Y)?t.cloneElement(Y,{className:R("img-fluid w-full rounded-lg object-cover",Y.props.className),style:{...Y.props.style||{},aspectRatio:((ce=Y.props.style)==null?void 0:ce.aspectRatio)||"16 / 11",cursor:o?"pointer":"default"},onClick:o?ae=>{var se,Me;ee(ae,G),(Me=(se=Y.props).onClick)==null||Me.call(se,ae)}:Y.props.onClick}):t.createElement("img",{className:"img-fluid w-full rounded-lg object-cover",src:G.thumbnail?G.mimetype+G.thumbnail:"data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",alt:G.name,width:G.width,height:G.height,style:{aspectRatio:"16 / 11",cursor:o?"pointer":"default"},onClick:o?ae=>ee(ae,G):void 0})},pe=G=>t.isValidElement(G)?G:t.createElement("span",{className:"inline-block max-w-full overflow-hidden text-ellipsis align-top"},t.createElement(ca,{badge:G,className:"badge-overlay"})),Ke=(G,q,Y="left",ce)=>t.createElement("div",{className:R("absolute z-10 overflow-hidden text-ellipsis whitespace-nowrap leading-none",Y==="right"?"text-right":"text-left",ce),style:{width:_,maxWidth:_,pointerEvents:"none",...q}},pe(G)),Le={topLeft:{style:{left:A,top:A}},topRight:{style:{right:A,top:A},align:"right"},bottomLeft:{style:{bottom:A,left:A}},bottomRight:{style:{bottom:A,right:A},align:"right"},middleLeft:{style:{left:A,top:"50%",transform:"translateY(-50%)"}},middleRight:{style:{right:A,top:"50%",transform:"translateY(-50%)"},align:"right"}},ne=(G,q,Y)=>G.when?typeof G.when=="function"?G.when(q,Y):Object.entries(G.when).every(([ce,ae])=>q[ce]===ae):!0,Ve=(G,q,Y)=>G.render?G.render(q,Y):typeof G.badge=="function"?G.badge(q,Y):G.badge,he=(G,q)=>r!=null&&r.length?r.map((Y,ce)=>{if(!Y.position||!ne(Y,G,q))return null;const ae=Ve(Y,G,q);if(ae==null||ae===!1)return null;const se=Le[Y.position];return se?t.createElement(t.Fragment,{key:`${Y.position}-${ce}`},Ke(ae,se.style,se.align,Y.className)):null}):null,Ye=(G,q,Y)=>{const ce=V(Y,q),ae=H.includes(ce),se=(T==null?void 0:T.split(/\s+/).filter(Boolean))||[];return t.createElement("div",{key:q,className:R("item min-w-0",ae&&se),style:{flex:`0 0 ${O}`,maxWidth:O}},t.createElement("div",{className:"relative overflow-hidden rounded-lg"},K&&t.createElement("label",{className:"absolute left-3 top-3 z-20 inline-flex items-center rounded bg-background/90 px-2 py-1 shadow-sm"},t.createElement("input",{type:"checkbox","aria-label":`Select item ${ce}`,checked:ae,onChange:()=>ie(Y,q),onClick:Me=>Me.stopPropagation()})),G,he(Y,q)))},st=(G,q)=>{const Y={};return G.forEach((ce,ae)=>{const se=X(ce),Me=se.props.alt||"",Ze=se.props.src||"";if(!Me||!Ze)return;const[xt]=we.splitFirst(Me.toUpperCase(),q,/^\d/g),oe=xt||"GROUP";Y[oe]||(Y[oe]=[]),Y[oe].push({image:se,item:ce,index:ae})}),Object.entries(Y).map(([ce,ae])=>({kind:"group",element:t.createElement("section",{key:ce,className:"gallery-group rounded-lg border bg-card p-3 text-left"},t.createElement("h3",{className:"mb-3 text-sm font-semibold uppercase tracking-wide text-muted-foreground"},ce.toLowerCase()),t.createElement("div",{className:R("flex flex-wrap items-center","row-cols-"+N),style:{gap:I}},ae.map(({image:se,item:Me,index:Ze})=>Ye(se,Ze,Me))))}))},Je=t.useMemo(()=>{if(!Array.isArray(e))return;const G=Dt.records(e,$)||[];return d?st(G,d):G.map((q,Y)=>({kind:"item",image:X(q),item:q,index:Y}))},[H,e,d,r,$,ie]);return Je===void 0?t.createElement("p",{className:"p-4"},t.createElement("span",{className:"mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"Caricamento in corso..."):Je.length===0?t.createElement("p",{className:"p-4"},"Nessun dato trovato"):t.createElement("div",{className:R("flex items-stretch gap-3",y||b.Gallery.wrapClass)},f&&t.createElement("div",{className:"gallery-pre flex shrink-0 items-center self-stretch"},f),t.createElement(z,{className:R("min-w-0 flex-1 flex flex-col",E||b.Gallery.className)},a&&t.createElement("div",{className:h||b.Gallery.headerClass},a),t.createElement(z,{className:R("min-w-0 flex-1",g||b.Gallery.scrollClass)},t.createElement(dr,{recordSet:Je,appendTo:P,wrapClass:"px-3 pt-4 pb-2",...i||{}},(G,q)=>t.createElement("div",{className:"p-3"},t.createElement("div",{className:"flex flex-wrap text-center items-center row-cols-"+N+" "+(S||b.Gallery.bodyClass),style:{gap:I}},G.map(Y=>Y.kind==="group"?Y.element:Ye(Y.image,Y.index,Y.item)))))),t.createElement("div",{ref:k,className:"mt-auto"}),n&&t.createElement("div",{className:v||b.Gallery.footerClass},n)),x&&t.createElement("div",{className:"gallery-post flex shrink-0 items-center self-stretch"},x))};function al({records:e,recordId:a,sortable:n,pagination:r,selection:o=!1,selectedKeys:s,onSelectionChange:l,onClickRow:i,groupBy:c,wrapClass:m}){const d=t.useMemo(()=>cr(a),[a]),p=t.useMemo(()=>e.reduce((u,f)=>(u.set(d(f),f),u),new Map),[d,e]);return t.createElement(ur,{body:e,sortable:n,pagination:r,selectedKeys:o?s:void 0,onSelectionChange:o?u=>{let f=u.keys,x=u.records;if(o==="single"&&u.keys.length>1){const E=u.keys[u.keys.length-1];f=E?[E]:[],x=E?p.get(E)?[p.get(E)]:[]:[]}const y={keys:f,records:x,hasSelection:f.length>0,clear:()=>l==null?void 0:l({keys:[],records:[],hasSelection:!1,clear:()=>{}})};l==null||l(y)}:void 0,onClick:i?u=>i(u):void 0,groupBy:c,wrapClass:m})}function Bm({actions:e,form:a,routeSync:n,preparedRecords:r,recordId:o,sourcePath:s,db:l,onSave:i,onDelete:c,onAfterAction:m,createRecordKey:d,audit:p=!1}){const u=ve.useLocation(),f=ve.useNavigate(),x=t.useId(),y=t.useRef(void 0),E=t.useMemo(()=>cr(o),[o]),h=t.useMemo(()=>om(e,!!a),[e,a]),[g,S]=t.useState(null),v=t.useMemo(()=>`${Yr(s||"grid-records")}-${Yr(x)}`,[x,s]),C=t.useCallback(()=>{S(null),y.current=void 0,n!=null&&n.edit&&u.hash.startsWith(`#${v}:`)&&f({pathname:u.pathname,search:u.search,hash:""},{replace:!0})},[v,u.hash,u.pathname,u.search,f,n==null?void 0:n.edit]),b=t.useCallback(async(I,A=!0)=>{const _=c?await c({record:I}):s?`${s}/${E(I)}`:void 0;if(!_&&!c)return!1;_&&await l.remove(_);const O=await(m==null?void 0:m({record:I,action:"delete"}))??!0;return O&&A&&C(),O},[C,l,E,m,c,s]),T=t.useCallback(async()=>{var I;return((I=y.current)==null?void 0:I.handleSave({preventDefault:()=>{}}))??!1},[]),P=t.useCallback(async(I,A)=>{const _=h[I];if(!_||!fn(_,A)||Xs(_,A))return;const O={actionKey:I,record:A,recordKey:A?E(A):void 0,rowIndex:A==null?void 0:A._index,isNewRecord:!A,close:C,save:T,remove:async()=>A?b(A,!0):!1,runAction:(L,$)=>P(L,$)};if(_.kind==="route"){const L=typeof _.to=="function"?_.to(O):_.to;f(L);return}if(_.kind==="external"){const L=typeof _.href=="function"?_.href(O):_.href;window.open(L,"_blank","noopener,noreferrer");return}if(_.kind==="inline"){await _.run(O);return}I==="edit"&&(n!=null&&n.edit)&&A&&f({hash:`${v}:${encodeURIComponent(E(A))}`},{replace:!1}),S({actionKey:I,record:A})},[C,E,v,f,h,b,n==null?void 0:n.edit,T]),M=t.useCallback((I,A)=>({actionKey:I,record:A,recordKey:A?E(A):void 0,rowIndex:A==null?void 0:A._index,isNewRecord:!A,runAction:(_,O)=>P(_,O)}),[E,P]),k=t.useCallback(async I=>{const A=g==null?void 0:g.record;if(I==="cancel"){C();return}if(I==="save"){await T();return}if(I==="remove"){if(!A)return;await b(A,!0);return}await P(I,A)},[g==null?void 0:g.record,C,b,P,T]),w=t.useCallback((I,A)=>({actionKey:I,record:A,recordKey:A?E(A):void 0,rowIndex:A==null?void 0:A._index,isNewRecord:!A,runAction:_=>{k(_)}}),[E,k]);t.useEffect(()=>{if(!(n!=null&&n.edit))return;const I=u.hash.replace(/^#/,""),A=`${v}:`;if(!I.startsWith(A)){(g==null?void 0:g.actionKey)==="edit"&&S(null);return}const _=decodeURIComponent(I.slice(A.length)),O=r.find(L=>E(L)===_);O&&S(L=>(L==null?void 0:L.actionKey)==="edit"&&L.record&&E(L.record)===_?L:{actionKey:"edit",record:O})},[g==null?void 0:g.actionKey,E,v,u.hash,r,n==null?void 0:n.edit]);const N=g?h[g.actionKey]:void 0,D=t.useMemo(()=>{if(!g||!N)return null;const I=M(g.actionKey,g.record),A=w(g.actionKey,g.record);if(N.kind==="delete")return typeof N.body=="function"?N.body(A):N.body!==void 0?N.body:t.createElement("div",{className:"space-y-2"},t.createElement("p",null,"Delete this record?"),g.record&&t.createElement("p",{className:"text-sm text-muted-foreground"},E(g.record)));if((g.actionKey==="add"||g.actionKey==="edit")&&a){const _=N.kind==="modal"&&N.body!==void 0?typeof N.body=="function"?N.body(A):N.body:typeof a=="function"?a({...I,record:g.record}):a;return t.isValidElement(_)?t.createElement(Te,{aspect:"empty",defaultValues:g.record,log:p,onSave:i?async({record:O,action:L,storagePath:$})=>i({record:O,action:L,storagePath:$}):void 0,onDelete:c?async({record:O})=>c({record:O}):void 0,onFinally:async({record:O,action:L})=>{const $=await(m==null?void 0:m({record:O,action:L}))??!0;return $&&C(),$},savePath:({record:O})=>{if(!s)return;const L=O,$=(d==null?void 0:d(L))||E(L)||`${Date.now()}`;return`${s}/${$}`},ref:O=>{y.current=O??void 0}},_):_}return N.kind==="modal"&&N.body!==void 0?typeof N.body=="function"?N.body(A):N.body:null},[g,N,p,C,d,a,M,w,E,m,c,i,s]);return{normalizedActions:h,activeAction:g,activeActionConfig:N,activeActionBody:D,activeKey:(g==null?void 0:g.actionKey)==="edit"&&g.record?E(g.record):null,runAction:P,runModalAction:k,close:C,getActionContext:M,getModalActionContext:w,getRecordKey:E,formRef:y,gridHashId:v}}function Gm({columns:e,records:a,form:n}){return t.useMemo(()=>rm(e,a,n),[e,n,a])}function Ym({records:e,transformRecords:a}){const[n,r]=t.useState(e),[o,s]=t.useState(!1);return t.useEffect(()=>{if(!a){r(e),s(!1);return}let l=!0;const i=a(No(e));if(i instanceof Promise)return s(!0),i.then(c=>{l&&r(c)}).finally(()=>{l&&s(!1)}),()=>{l=!1};r(i),s(!1)},[e,a]),{preparedRecords:n,loading:o}}function Um({selectedKeys:e,defaultSelectedKeys:a,onSelectionChange:n}){const[r,o]=t.useState(a||[]),[s,l]=t.useState([]);t.useEffect(()=>{e!==void 0&&o(e)},[e]);const i=e??r,c=t.useCallback(()=>{e===void 0&&o([]),l([]),n==null||n({keys:[],records:[],hasSelection:!1,clear:()=>{}})},[n,e]),m=t.useMemo(()=>({keys:i,records:s,hasSelection:i.length>0,clear:c}),[i,c,s]),d=t.useCallback(p=>{e===void 0&&o(p.keys),l(p.records),n==null||n(p)},[n,e]);return{activeSelectionKeys:i,selectionState:m,handleSelectionChange:d}}const zm=(e,a,n)=>(a==null?void 0:a.kind)==="delete"?typeof a.title=="function"?a.title(n):a.title||"Delete record":(a==null?void 0:a.kind)==="modal"?typeof a.title=="function"?a.title(n):a.title||gn(e,a):gn(e,a);function pr({records:e,recordId:a,sourcePath:n,columns:r,actions:o,form:s,routeSync:l,header:i,footer:c,layout:m="table",sticky:d,wrapClass:p,loading:u=!1,title:f,sortable:x=!0,pagination:y,selection:E=!1,selectedKeys:h,defaultSelectedKeys:g,onSelectionChange:S,onClickRow:v,reorderable:C=!1,onReorder:b,groupBy:T,onSave:P,onDelete:M,onAfterAction:k,createRecordKey:w,audit:N=!1,transformRecords:D}){const I=J(),A=ot(),{preparedRecords:_,loading:O}=Ym({records:e,transformRecords:D}),L=Gm({columns:r,records:_,form:s}),{activeSelectionKeys:$,selectionState:j,handleSelectionChange:V}=Um({selectedKeys:h,defaultSelectedKeys:g,onSelectionChange:S}),{normalizedActions:H,activeAction:K,activeActionConfig:B,activeActionBody:ee,activeKey:ie,runAction:X,close:pe,getActionContext:Ke,getModalActionContext:Le,getRecordKey:ne,formRef:Ve}=Bm({actions:o,form:s,routeSync:l,preparedRecords:_,recordId:a,sourcePath:n,db:A,onSave:P,onDelete:M,onAfterAction:k,createRecordKey:w,audit:N}),he=!!H.edit&&!!s,Ye=t.useCallback(oe=>{if(v==null||v(oe),!he)return;const ke=ne(oe);if((K==null?void 0:K.actionKey)==="edit"&&K.record&&ne(K.record)===ke){pe();return}X("edit",oe)},[K==null?void 0:K.actionKey,K==null?void 0:K.record,he,pe,ne,v,X]),st=v||he?Ye:void 0,Je=t.useCallback((oe,ke,U)=>{const Z=H[oe];return!Z||!fn(Z,ke)?null:t.createElement(fe,{className:U||(oe==="add"?jn:void 0),icon:Z.icon,label:gn(oe,Z),disabled:Xs(Z,ke),onClick:()=>X(oe,ke)})},[H,X]),G=t.useMemo(()=>Object.entries(H).filter(([oe,ke])=>oe!=="edit"&&oe!=="delete"&&fn(ke,void 0)).map(([oe])=>oe),[H]),q=t.useMemo(()=>({title:f,records:_,selection:j,runAction:X}),[_,X,j,f]),Y=t.useMemo(()=>({records:_,selection:j,runAction:X}),[_,X,j]),ce=t.useMemo(()=>{if(i!==void 0)return typeof i=="function"?i(q):i;if(!(!f&&!G.length))return t.createElement(t.Fragment,null,f||t.createElement("span",null),G.length?t.createElement("span",{className:"flex flex-wrap items-center gap-2"},G.map(oe=>t.createElement(t.Fragment,{key:oe},Je(oe)))):null)},[Je,i,G,q,f]),ae=t.useMemo(()=>{if(c!==void 0)return typeof c=="function"?c(Y):c},[c,Y]),se=t.useMemo(()=>{if(!(!K||!B||B.kind!=="modal"&&B.kind!=="delete"))return Le(K.actionKey,K.record)},[K,B,Le]),Me=t.useMemo(()=>{if(!(!B||B.kind!=="modal"&&B.kind!=="delete"||B.header===void 0||!se))return typeof B.header=="function"?B.header(se):B.header},[B,se]),Ze=t.useMemo(()=>{if(!(!B||B.kind!=="modal"&&B.kind!=="delete")){if(B.footer===!1)return!1;if(!(B.footer===void 0||!se))return typeof B.footer=="function"?B.footer(se):B.footer}},[B,se]),xt=sm(x);return t.createElement(t.Fragment,null,t.createElement(te,{wrapClass:p,header:ce,footer:ae,className:(I.Grid.Card.className+(d?` sticky-${d}`:"")).trim(),headerClass:I.Grid.Card.headerClass,bodyClass:I.Grid.Card.bodyClass,footerClass:I.Grid.Card.footerClass,showLoader:u||O,showArrow:I.Grid.Card.showArrow},m==="gallery"?t.createElement(al,{records:_,recordId:a,sortable:xt||x,pagination:y,selection:E,selectedKeys:$,onSelectionChange:V,onClickRow:st,groupBy:T,wrapClass:I.Grid.Gallery.wrapClass}):t.createElement(Zs,{records:_,recordId:a,columns:L,runAction:X,sortable:xt||x,pagination:y,selection:E,selectedKeys:$,onSelectionChange:V,onClickRow:st,reorderable:C,onReorder:b,activeKey:ie,wrapClass:I.Grid.Table.wrapClass})),K&&B&&(B.kind==="modal"||B.kind==="delete")&&t.createElement(pa,{size:(B.kind==="modal"||B.kind==="delete")&&B.size||I.Grid.Modal.size,position:(B.kind==="modal"||B.kind==="delete")&&B.position||I.Grid.Modal.position,header:Me,title:zm(K.actionKey,B,B.kind==="modal"||B.kind==="delete"?Le(K.actionKey,K.record):Ke(K.actionKey,K.record)),onClose:pe,onSave:B.kind==="modal"&&B.footer===void 0&&(K.actionKey==="add"||K.actionKey==="edit")?oe=>{var ke;return((ke=Ve.current)==null?void 0:ke.handleSave(oe))??Promise.resolve(!1)}:void 0,onDelete:B.kind==="delete"?async()=>{const oe=K.record;if(!oe)return!1;const ke=M?await M({record:oe}):n?`${n}/${ne(oe)}`:void 0;if(!ke&&!M)return!1;ke&&await A.remove(ke);const U=await(k==null?void 0:k({record:oe,action:"delete"}))??!0;return U&&pe(),U}:B.kind==="modal"&&B.footer===void 0&&K.actionKey==="edit"&&K.record&&H.delete?async()=>(await Le(K.actionKey,K.record).runAction("remove"),!1):void 0,footer:Ze,buttonCancel:B.kind==="modal"||B.kind==="delete"?B.footer===void 0:!0,buttonFullscreen:B.kind==="modal"||B.kind==="delete"?B.buttonFullscreen:!0,wrapClass:I.Grid.Modal.wrapClass,className:I.Grid.Modal.className,headerClass:I.Grid.Modal.headerClass,titleClass:I.Grid.Modal.titleClass,bodyClass:I.Grid.Modal.bodyClass,footerClass:I.Grid.Modal.footerClass},ee))}function nl(e){return t.createElement(pr,{...e})}function za(e){return"records"in e?t.createElement(nl,{...e}):t.createElement(Js,{...e})}function rl(){return t.createElement(za,{path:"/users",createRecordKey:e=>e.email.replace("@","-"),form:t.createElement(t.Fragment,null,t.createElement(De,{name:"username",label:"Username"}),t.createElement(oa,{name:"email",label:"Email",required:!0,updatable:!1}),t.createElement(Ne,{name:"permission",label:"Permission",options:[{value:"admin",label:"Admin"},{value:"user",label:"User"}],required:!0}))})}const Hm=()=>t.createElement("div",{className:"flex flex-col justify-center items-center vh-100"},t.createElement("h1",null,"404"),t.createElement("p",null,"Oops! Page not found."),t.createElement(ve.Link,{to:"/"},t.createElement(Q,{name:"house-door"})," Go to Home")),ol=t.createContext(null),sl=({registry:e,defaultKey:a,children:n})=>t.createElement(ol.Provider,{value:{registry:e,defaultKey:a}},n),Km=e=>{const a=t.useContext(ol);if(!a)return null;const n=e??a.defaultKey;return a.registry[n]??null},kt={key:"@key",value:"@value"};function en(e,a){if(!a)return e;const n=a.split(".");let r=e;for(const o of n){if(r==null)return;r=r[o]}return r}function Wm(e,a){return e===a?0:e==null?-1:a==null?1:typeof e=="number"&&typeof a=="number"?e-a:typeof e=="boolean"&&typeof a=="boolean"?Number(e)-Number(a):globalThis.String(e).localeCompare(globalThis.String(a),void 0,{numeric:!0,sensitivity:"base"})}function qm(e,a){const n=typeof a=="object"&&a!==null&&!Array.isArray(a)?a:{eq:a};for(const[r,o]of Object.entries(n))switch(r){case"eq":if(e!==o)return!1;break;case"gt":if(!(e>o))return!1;break;case"gte":if(!(e>=o))return!1;break;case"lt":if(!(e<o))return!1;break;case"lte":if(!(e<=o))return!1;break;case"in":if(!Array.isArray(o)||!o.includes(e))return!1;break;case"nin":if(Array.isArray(o)&&o.includes(e))return!1;break;default:return!1}return!0}function Hr(e,a,n){const r=Object.entries(n||{}),o=Object.entries(a||{});let s=Object.entries(e);return o.length&&(s=s.filter(([,l])=>o.every(([i,c])=>qm(en(l,i),c)))),r.length&&s.sort((l,i)=>{for(const[c,m]of r){const d=Wm(en(l[1],c),en(i[1],c));if(d)return m==="desc"?-d:d}return 0}),Object.fromEntries(s)}function Vm(e,a){const n=Object.entries(e);if(!a)return n.map(([o,s],l)=>typeof s=="object"&&s!==null?{_index:l,_key:o,...s}:{_index:l,_key:o,[kt.value]:s});const r=Object.keys(a);return n.map(([o,s],l)=>{const i=typeof s=="object"&&s!==null?{[kt.key]:o,...s}:{[kt.key]:o,[kt.value]:s},c={};for(const m of r){const d=a[m];c[m]=d.includes("{")?we.parse(i,d):d===kt.key?o:d===kt.value?s:i[d]}return{_key:o,_index:l,...c}})}class fr{constructor(a){if(this.store={},this.listeners=new Map,this.read=async(n,r={})=>{const{collection:o,id:s}=this.resolvePath(n),l=this.getCollection(o);if(s)return l[s]?{...l[s]}:void 0;const i=Hr(l,r.where,r.order);return r.toArray?Object.values(i).map(c=>({...c})):Object.fromEntries(Object.entries(i).map(([c,m])=>[c,{...m}]))},this.set=async(n,r)=>{const{collection:o,id:s}=this.resolvePath(n),l=this.getCollection(o);s?l[s]={...r}:this.store[o]={...r},this.notify(o)},this.update=async(n,r)=>{const{collection:o,id:s}=this.resolvePath(n),l=this.getCollection(o);s?l[s]={...l[s]||{},...r}:this.store[o]={...l,...r},this.notify(o)},this.remove=async n=>{const{collection:r,id:o}=this.resolvePath(n);o?delete this.getCollection(r)[o]:delete this.store[r],this.notify(r)},this.subscribe=(n,r,o)=>{if(!n)return()=>{};const s=n.startsWith("/")?n:`/${n}`,l=()=>{const i=Hr(this.getCollection(s),o==null?void 0:o.where,o==null?void 0:o.order),c=o!=null&&o.onLoad?o.onLoad(i):i;r(Vm(c,o==null?void 0:o.fieldMap))};return l(),this.listeners.has(s)||this.listeners.set(s,new Set),this.listeners.get(s).add(l),()=>{var i;(i=this.listeners.get(s))==null||i.delete(l)}},a)for(const[n,r]of Object.entries(a)){const o=n.startsWith("/")?n:`/${n}`;this.store[o]={...r}}}isConfigured(){return!0}getConfigurationState(){return{configured:!0}}getCollection(a){return this.store[a]||(this.store[a]={}),this.store[a]}resolvePath(a){const n=a.startsWith("/")?a:`/${a}`;if(this.store[n])return{collection:n};const o=Object.keys(this.store).filter(l=>n.startsWith(`${l}/`)).sort((l,i)=>i.length-l.length)[0];if(o)return{collection:o,id:n.slice(o.length+1)};const s=n.replace(/^\/+/,"").split("/").filter(Boolean);return s.length<=1?{collection:n}:{collection:`/${s.slice(0,-1).join("/")}`,id:s[s.length-1]}}notify(a){var n;(n=this.listeners.get(a))==null||n.forEach(r=>r())}}const Jm=async()=>{var e,a;(a=(e=window.google)==null?void 0:e.accounts)!=null&&a.id||(xo([{src:"https://accounts.google.com/gsi/client",async:!0,clean:!0}]),await new Promise(n=>setTimeout(n,0)))};class gr{getConfigurationState(){return Ct("GoogleAuthProvider",wt(qt("oAuth2"),["clientId"],"google.oAuth2."))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;const a=gt("user");if(!a)return null;const n=a.profile??{};return{...n,uid:a.uid,email:a.email??n.email,displayName:a.displayName??n.name,photoURL:a.photoURL??n.picture}}async signIn(a={}){const n=qt("oAuth2");if(!this.isConfigured()||!(n!=null&&n.clientId))throw new Error("GoogleAuthProvider: missing google.oAuth2.clientId configuration.");return await Jm(),new Promise((r,o)=>{var s,l;if(!((l=(s=window.google)==null?void 0:s.accounts)!=null&&l.id)){o(new Error("GoogleAuthProvider: Google Identity Services script is not available."));return}window.handleGoogleSignIn=async({credential:i})=>{var c;try{const m=Mn(i);localStorage.setItem("googleCredentialToken",i);const d=It();if(!d){o(new Error("GoogleAuthProvider: Firebase auth is not initialized."));return}const p=ze.GoogleAuthProvider.credential(i),u=await ze.signInWithCredential(d,p),f=ze.getAdditionalUserInfo(u);La({...u.user,profile:(f==null?void 0:f.profile)??m},"user"),(c=a.scopes)!=null&&c.length&&await this.getAccessToken(a.scopes),r(this.getUser())}catch(m){o(m)}},window.google.accounts.id.initialize({client_id:n.clientId,callback:window.handleGoogleSignIn,auto_select:!1,cancel_on_tap_outside:!0}),window.google.accounts.id.prompt()})}async signOut(){var r,o,s,l;const a=gt("user");(r=a==null?void 0:a.profile)!=null&&r.sub&&((l=(s=(o=window.google)==null?void 0:o.accounts)==null?void 0:s.id)==null||l.revoke(a.profile.sub)),localStorage.removeItem("googleCredentialToken"),yo("user");const n=It();n&&await ze.signOut(n)}onAuthChange(a){const n=It();return n?ze.onAuthStateChanged(n,r=>{const o=this.getUser();if(!r){a(o);return}const s=gt("user"),l=(s==null?void 0:s.profile)??{};a({...l,uid:r.uid,email:r.email??l.email,displayName:r.displayName??l.name,photoURL:r.photoURL??l.picture})}):(a(this.getUser()),()=>{})}getAccessToken(a=[]){const n=qt("oAuth2");if(!this.isConfigured()||!(n!=null&&n.clientId))return Promise.reject("Google client ID not found");const r=a.join(" "),o=`googleAccessToken::${r}`,s=`googleExpiresAt::${r}`;return new Promise((l,i)=>{var u,f,x;const c=localStorage.getItem(o),m=localStorage.getItem(s),d=!m||new Date(m).getTime()<Date.now();if(c&&!d){l(c);return}const p=(x=(f=(u=window.google)==null?void 0:u.accounts)==null?void 0:f.oauth2)==null?void 0:x.initTokenClient({client_id:n.clientId,scope:r,callback:y=>{y.access_token?(localStorage.setItem(o,y.access_token),localStorage.setItem(s,new Date(Date.now()+y.expires_in*1e3).toISOString()),l(y.access_token)):i("Failed to obtain access token")}});if(!p){i("Google token client is not available");return}p.requestAccessToken()})}isAuthenticated(){return!!this.getUser()}}const ll=t.createContext(null),il=({registry:e,defaultKey:a,children:n})=>t.createElement(ll.Provider,{value:{registry:e,defaultKey:a}},n),Xm=e=>{const a=t.useContext(ll);if(!a)return null;const n=e??a.defaultKey;return a.registry[n]??null};let tn;typeof _e=="function"&&_e(e=>{e.firebase&&is(e.firebase)});const an=()=>(!tn&&rt.apps.length&&(tn=rt.app().storage()),tn);class hr{constructor(){this.upload=async(a,n)=>{var o;if(!a)return;const r=(o=an())==null?void 0:o.ref(n);if(!r){console.error("Firebase Storage not initialized");return}try{return await(await r.putString(a,"data_url")).ref.getDownloadURL()}catch(s){console.error("Upload error:",s)}},this.getURL=async a=>{var r;const n=(r=an())==null?void 0:r.ref(a);if(n)try{return await n.getDownloadURL()}catch(o){console.error(`Error getting download URL for ${a}:`,o)}},this.download=async a=>{const n=await this.getURL(a);if(n)try{const r=await fetch(n);if(!r.ok)throw new Error("Failed to fetch the file");return await r.blob()}catch(r){console.error("Error downloading file:",r)}},this.delete=async a=>{var r;const n=(r=an())==null?void 0:r.ref(a);if(!n)return!1;try{return await n.delete(),!0}catch(o){return console.error(`Error deleting file ${a}:`,o),!1}}}getConfigurationState(){return ls()}isConfigured(){return this.getConfigurationState().configured}}const Zm=new hr,Qm="www.dropbox.com/oauth2";class cl{constructor(a){this.config=a}getConfigurationState(){return Ct("DropboxAuthProvider",wt(this.config,["clientId"],"dropbox."))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;const a=pn(this.config.clientId);return a!=null&&a.access_token?{uid:a.account_id??this.config.clientId,displayName:"Dropbox",provider:"dropbox",accountId:a.account_id}:null}async signIn(a={}){if(!this.isConfigured())throw new Error("DropboxAuthProvider: missing dropbox.clientId configuration.");return ji({authServer:Qm,clientID:this.config.clientId,scopes:a.scopes,refreshParamName:"token_access_type"}),this.getUser()}async signOut(){Gi(this.config.clientId)}onAuthChange(a){return a(this.getUser()),()=>{}}async getAccessToken(){if(!this.isConfigured())throw new Error("DropboxAuthProvider: missing dropbox.clientId configuration.");const a=await ja(this.config.clientId);if(!a)throw new Error("DropboxAuthProvider: access token not found.");return a}isAuthenticated(){var a;return this.isConfigured()?!!((a=pn(this.config.clientId))!=null&&a.access_token):!1}}const br=e=>{const a=qt("oAuth2");if(!a)return console.warn("GoogleAuth: Missing oAuth2.clientId in configuration"),Promise.reject("Google client ID not found");const n=e.join(" "),r=`googleAccessToken::${n}`,o=`googleExpiresAt::${n}`;return new Promise((s,l)=>{const i=localStorage.getItem(r),c=localStorage.getItem(o),m=!c||new Date(c).getTime()<Date.now();i&&!m?s(i):window.google.accounts.oauth2.initTokenClient({client_id:a.clientId,scope:n,callback:p=>{p.access_token?(localStorage.setItem(r,p.access_token),localStorage.setItem(o,new Date(Date.now()+p.expires_in*1e3).toISOString()),s(p.access_token)):l("Failed to obtain access token")}}).requestAccessToken()})};async function ml({to:e,bcc:a,subject:n,message:r}){const o=await br(["https://www.googleapis.com/auth/gmail.send"]),s=[`To: ${e.join(", ")}`];a&&a.length&&s.push(`Bcc: ${a.join(", ")}`);const l=[...s,"Content-Type: text/html; charset=utf-8","MIME-Version: 1.0",`Subject: ${n}`,"",r].join(`
195
+ `),i=Ml.Buffer.from(l).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),c=await fetch("https://gmail.googleapis.com/gmail/v1/users/me/messages/send",{method:"POST",headers:{Authorization:`Bearer ${o}`,"Content-Type":"application/json"},body:JSON.stringify({raw:i})});if(!c.ok)throw new Error("Failed to send email");const m=await c.json();return console.log("Email sent:",m),m}class dl{getConfigurationState(){return Ct("GmailEmailProvider",wt(qt("oAuth2"),["clientId"],"google.oAuth2."))}isConfigured(){return this.getConfigurationState().configured}async send(a){if(!this.isConfigured())throw new Error(this.getConfigurationState().reason||"GmailEmailProvider is not configured.");await ml({to:Array.isArray(a.to)?a.to:[a.to],bcc:a.bcc?Array.isArray(a.bcc)?a.bcc:[a.bcc]:void 0,subject:a.subject,message:a.message})}}const At=e=>console.warn(`SupabaseDataProvider.${e}: not fully implemented yet.`);class ul{constructor(a){this.read=async(n,r)=>{At("read");const[,o,s]=n.split("/"),l=`${this.config.url}/rest/v1/${o}${s?`?id=eq.${s}`:""}`,c=await(await fetch(l,{headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`}})).json();return s?c[0]??null:Object.fromEntries(c.map(m=>[m.id,m]))},this.set=async(n,r)=>{At("set");const[,o,s]=n.split("/"),l=`${this.config.url}/rest/v1/${o}`;await fetch(l,{method:s?"PUT":"POST",headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`,"Content-Type":"application/json",Prefer:"return=minimal"},body:JSON.stringify(s?{...r,id:s}:r)})},this.update=async(n,r)=>{At("update"),await this.set(n,r)},this.remove=async n=>{At("remove");const[,r,o]=n.split("/");if(!o){console.error("SupabaseDataProvider.remove: id required");return}await fetch(`${this.config.url}/rest/v1/${r}?id=eq.${o}`,{method:"DELETE",headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`}})},this.subscribe=(n,r,o)=>{if(!n)return()=>{};At("subscribe — polling every 5s (no real-time)");const[,s]=n.split("/"),l=async()=>{const m=await(await fetch(`${this.config.url}/rest/v1/${s}`,{headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`}})).json();r(m.map((d,p)=>({...d,_key:String(d.id??p),_index:p})))};l();const i=setInterval(l,5e3);return()=>clearInterval(i)},this.count=async n=>{var l;At("count");const[,r]=n.split("/"),s=(l=(await fetch(`${this.config.url}/rest/v1/${r}?select=id`,{headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`,Prefer:"count=exact"}})).headers.get("content-range"))==null?void 0:l.split("/")[1];return s?parseInt(s,10):0},this.config=a}getConfigurationState(){return Ct("SupabaseDataProvider",wt(this.config,["url","anonKey"],"supabase."))}isConfigured(){return this.getConfigurationState().configured}}const nn=e=>console.warn(`SupabaseStorageProvider.${e}: not fully implemented yet.`);class pl{constructor(a){this.upload=async(n,r)=>{nn("upload");const o=n.split(",")[1],s=atob(o),l=new Uint8Array(s.length);for(let m=0;m<s.length;m++)l[m]=s.charCodeAt(m);const i=new Blob([l]),c=await fetch(`${this.config.url}/storage/v1/object/${this.bucket}/${r}`,{method:"POST",headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`},body:i});if(!c.ok){console.error("Supabase upload error:",await c.text());return}return this.getURL(r)},this.getURL=async n=>`${this.config.url}/storage/v1/object/public/${this.bucket}/${n}`,this.download=async n=>{nn("download");const r=await this.getURL(n);if(r)try{const o=await fetch(r);if(!o.ok)throw new Error("Failed to fetch");return await o.blob()}catch(o){console.error("Supabase download error:",o)}},this.delete=async n=>(nn("delete"),(await fetch(`${this.config.url}/storage/v1/object/${this.bucket}/${n}`,{method:"DELETE",headers:{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.anonKey}`}})).ok),this.config=a}getConfigurationState(){return Ct("SupabaseStorageProvider",wt(this.config,["url","anonKey"],"supabase."))}isConfigured(){return this.getConfigurationState().configured}get bucket(){return this.config.bucket??"public"}}const ed={dbRealtime:{service:"data",create:()=>new zn},firestorage:{service:"storage",create:()=>new hr}},td={googleAuth:{service:"auth",create:()=>new gr},gmail:{service:"email",create:()=>new dl}},ad={dropboxAuth:{service:"auth",create:e=>new cl(e)}},nd={supabaseDb:{service:"data",create:e=>new ul(e)},supabaseStorage:{service:"storage",create:e=>new pl(e)}},rd={mock:{service:"data",create:e=>new fr(e==null?void 0:e.data)}},od={firebase:ed,google:td,dropbox:ad,supabase:nd,mock:rd};function Ea(e,a){if(!a)return;const n=a,r=typeof a=="object"&&!Array.isArray(a)?Object.entries(n):[];if(r.length>0&&r.every(([,s])=>typeof s=="object"&&s!==null)){Object.assign(e,n);return}e.custom=a}function va(e,a,n){return a&&e[a]?a:Object.keys(e)[0]??"default"}function sd(e={}){var i,c,m,d;const a={},n={},r={},o={},s={data:a,storage:n,auth:r,email:o};for(const[p,u]of Object.entries(od)){const f=e[p];if(f!==void 0)for(const[x,y]of Object.entries(u))s[y.service][x]=y.create(f)}Ea(a,(i=e.custom)==null?void 0:i.data),Ea(n,(c=e.custom)==null?void 0:c.storage),Ea(r,(m=e.custom)==null?void 0:m.auth),Ea(o,(d=e.custom)==null?void 0:d.email),Object.keys(a).length===0&&(a.mock=new fr),Object.keys(r).length===0&&(r.googleAuth=new gr);const l=e.services;return{data:{registry:a,defaultKey:va(a,l==null?void 0:l.data)},storage:{registry:n,defaultKey:va(n,l==null?void 0:l.storage)},auth:{registry:r,defaultKey:va(r,l==null?void 0:l.auth)},email:{registry:o,defaultKey:va(o,l==null?void 0:l.email)}}}const ld=({registry:e,defaultKey:a,children:n})=>Object.keys(e).length>0?t.createElement(il,{registry:e,defaultKey:a},n):t.createElement(t.Fragment,null,n);let yr={};const id=e=>{yr=e},cd=e=>yr[e]||[];function md({importPage:e,LayoutDefault:a=void 0,aiConfig:n=void 0,scrapeConfig:r=void 0,tenantsURI:o=void 0,proxyURI:s=void 0,appName:l="LLM Native",menuConfig:i={},providers:c={},iconProvider:m,themeProvider:d,children:p}){const u=sd(c),f=u.data,x=u.storage,y=u.auth,E=u.email;id(i);const h=({children:C})=>t.createElement(t.Fragment,null,C),g=({pageSource:C,message:b})=>t.createElement(Ue,{type:"warning"},"Missing Page: ",C,b&&t.createElement("code",{className:"ml-2"},b));function S(C,b,T){const M=`./pages${b.component?"/"+b.component:b.path==="/"?"/Home":we.toCamel(b.path.split("*")[0])}.js`,k=b.page||t.lazy(()=>e(M).then(N=>typeof N.default!="function"?(console.warn(`⚠️ Invalid default export in ${M}`),{default:()=>t.createElement(g,{pageSource:M})}):{default:N.default}).catch(N=>(console.error(`❌ Failed to load ${M}:`,N),{default:()=>t.createElement(g,{pageSource:M,message:N.message})}))),w=b.layout||a||h;return t.createElement(ve.Route,{key:`${C}-${T}`,path:b.path,element:t.createElement(w,null,t.createElement(t.Suspense,{fallback:t.createElement("div",null,"Loading...")},t.createElement(k,null)))})}const v=C=>Object.keys(C).flatMap(b=>C[b].flatMap((T,P)=>[T.path&&S(b,T,P),T.children&&v({children:T.children})].filter(Boolean)));return t.createElement(ve.BrowserRouter,{future:{v7_relativeSplatPath:!0,v7_startTransition:!0}},t.createElement(Ni,{defaultConfig:{title:l,firebase:c.firebase,google:c.google?{oAuth2:{clientId:c.google.clientId,scope:c.google.scope},serviceAccount:c.google.serviceAccount,developerToken:c.google.developerToken}:void 0,dropbox:c.dropbox,ai:n,scrape:r,proxyURI:s},tenantsURI:o},t.createElement(Ko,{...y},t.createElement(ts,{...f},t.createElement(sl,{...x},t.createElement(ld,{registry:E.registry,defaultKey:E.defaultKey},t.createElement(mo,{config:m},t.createElement(tl,{appName:l},t.createElement(si,{config:d},p,t.createElement(ve.Routes,null,t.createElement(ve.Route,{path:Bn,element:t.createElement(Bi,null)}),t.createElement(t.Fragment,null,v({default:[{path:"/"}],...yr,_auth:[{path:"/users",page:rl,layout:a}]})),t.createElement(ve.Route,{path:"*",element:t.createElement(Hm,null)})))))))))))}const fl=e=>{const a=cd(e),n=ve.useLocation(),r=o=>o.map(s=>{const l=n.pathname===s.path,i=s.children?r(s.children):[],c=l||i.some(m=>m.active);return{...s,active:c,children:i}});return t.useMemo(()=>r(a),[n.pathname])};let Wt;typeof _e=="function"&&_e(e=>{Wt=e.google});const dd="geoTargetConstants/2380",ud="languageConstants/1000",pd={ita:"geoTargetConstants/2380",rome:"geoTargetConstants/1033236",mil:"geoTargetConstants/1033239",nap:"geoTargetConstants/1033245",tor:"geoTargetConstants/1033247"},fd={it:"languageConstants/1000",en:"languageConstants/1001",fr:"languageConstants/1002",es:"languageConstants/1003",de:"languageConstants/1005"};function gd(e){return pd[e.toLowerCase()]||dd}function hd(e){return fd[e.toLowerCase()]||ud}async function gl({keyword:e,googleAdsAccountId:a,geoCode:n="ita",languageCode:r="it"}){var p;if(!(Wt!=null&&Wt.developerToken))return console.error(`
196
+ ❌ Google Ads API: developerToken non configurato.
197
+
198
+ Per ottenere un developerToken segui questi passaggi:
199
+
200
+ 1️⃣ Vai su https://ads.google.com/aw/apicenter
201
+ 2️⃣ Seleziona o crea un account Google Ads Manager (MCC) se non ne hai uno.
202
+ 3️⃣ Vai alla sezione "Strumenti e impostazioni" → "Accesso API" (o "API Center").
203
+ 4️⃣ Clicca su "Richiedi accesso API" se non l'hai ancora fatto.
204
+ 5️⃣ Copia il valore del tuo Developer Token (è un identificatore simile a: 'ABc123456789xyz').
205
+ 6️⃣ Inseriscilo nel tuo file di configurazione, nella sezione:
206
+ config.google.developerToken
207
+
208
+ ℹ️ Attenzione: Inizialmente il token sarà in modalità di test. Per usarlo in produzione, dovrai richiedere l'approvazione da Google Ads.
209
+ `),[];const o=await br(["https://www.googleapis.com/auth/adwords"]),s=gd(n),l=hd(r),i=`https://googleads.googleapis.com/v13/customers/${a}:generateKeywordIdeas`,c={keywordSeed:{keywords:[e]},geoTargetConstants:[s],language:l},m=await fetch(i,{method:"POST",headers:{Authorization:`Bearer ${o}`,"developer-token":Wt.developerToken,"Content-Type":"application/json"},body:JSON.stringify(c)});if(!m.ok){const u=await m.text();throw new Error(`Keyword planner error: ${m.status} – ${u}`)}return((p=(await m.json()).results)==null?void 0:p.map(u=>{var f,x,y,E;return{keyword:u.text,avgMonthlySearches:((f=u.keywordIdeaMetrics)==null?void 0:f.avgMonthlySearches)||0,competition:((x=u.keywordIdeaMetrics)==null?void 0:x.competition)||"UNSPECIFIED",cpc:(E=(y=u.keywordIdeaMetrics)==null?void 0:y.averageCpc)!=null&&E.micros?u.keywordIdeaMetrics.averageCpc.micros/1e6:null}}))||[]}async function hl(e,a="IT",n="today 12-m"){const r=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:a,time:n}],category:0,property:""}))}&_=${Date.now()}`,s=await(await fetch(r)).text(),i=JSON.parse(s.replace(")]}',","")).widgets.find(y=>y.id==="TIMESERIES");if(!i)throw new Error("Timeline widget not found");const c=i.token,m=i.request,d=`https://trends.google.com/trends/api/widgetdata/multiline?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(m))}&token=${c}&_=${Date.now()}`,u=await(await fetch(d)).text(),x=JSON.parse(u.replace(")]}',","")).default.timelineData.map(y=>({date:y.formattedTime,value:y.value[0]}));return{keyword:e,timeline:x}}async function bd(e,a="IT",n="today 12-m"){var x,y,E,h,g,S;const r=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:a,time:n}],category:0,property:""}))}&_=${Date.now()}`,s=await(await fetch(r)).text(),i=JSON.parse(s.replace(")]}',","")).widgets.find(v=>v.id==="RELATED_QUERIES");if(!i)throw new Error("Related queries widget not found");const c=`https://trends.google.com/trends/api/widgetdata/relatedsearches?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(i.request))}&token=${i.token}&_=${Date.now()}`,d=await(await fetch(c)).text(),p=JSON.parse(d.replace(")]}',","")),u=((E=(y=(x=p.default.rankedList)==null?void 0:x[0])==null?void 0:y.rankedKeyword)==null?void 0:E.map(v=>({query:v.query,value:v.value})))||[],f=((S=(g=(h=p.default.rankedList)==null?void 0:h[1])==null?void 0:g.rankedKeyword)==null?void 0:S.map(v=>({query:v.query,value:v.value})))||[];return{keyword:e,top:u,rising:f}}const yd=5e3,Ed="https://www.dropbox.com/home";let Be;typeof _e=="function"&&_e(e=>{Be=e.dropbox});const vd=async(e,a,n={})=>{if(!Be)return console.error("DropBox: Config not found"),null;const r=await ja(Be.clientId);if(!r)throw new Error("DropBox: Access token not found");return await fetch(e,{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/octet-stream",...n},body:a}).catch(o=>(console.error("There was a problem with the fetch operation:",o),null)).finally(()=>{console.log("DropBox: Fetch operation completed")})},Xe=async(e,a,n={})=>{if(!Be){console.error("DropBox: Config not found");return}const r=await ja(Be.clientId);if(!r){console.error("DropBox: Access token not found");return}return await $n(e,{method:"POST",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json",...n},body:JSON.stringify(a)}).then(async o=>{if(o.status===409){const s=await o.json();(!s.error_summary||!s.error_summary.includes("not_found"))&&console.error("DropBox: Fetch operation failed:",s,e,a);return}return o}).catch(o=>{console.error("There was a problem with the fetch operation:",o,e,a)}).finally(()=>{console.log("DropBox: Fetch operation completed",e,a)})},qe=(e,a=!1)=>{const n=(Be==null?void 0:Be.rootPath)||"";return(a?Ed:"")+(e.startsWith(n)?e:n+e)},wd=async(e,a="",n=!1)=>{const r={};return(await El.listFolders({path:`${e+a}`,recursive:!0})).forEach(s=>{s[".tag"]!=="folder"&&(r[n?Tt.changeFilename(s.path_display,{ext:""}):s.path_display]=s.name)}),r},bl=async(e,a)=>{if(!e.async_job_id)return Promise.reject(e);let n,r=!0;for(;r;)await da(100),n=await Xe(`https://api.dropboxapi.com/2/${a}/check`,{async_job_id:e.async_job_id}),console.log("DropBox: Check folders response: ",n),(n==null?void 0:n[".tag"])!=="in_progress"&&(r=!1);return(n==null?void 0:n[".tag"])==="complete"?Promise.resolve(n.entries):Promise.reject(n)},Cd=async(e,a="")=>{const n="files/create_folder_batch",r=await Xe(`https://api.dropboxapi.com/2/${n}`,{autorename:!1,force_async:!0,paths:e.map(o=>qe(a+o))});return r?bl(r,n):void 0},xd=async(e,a="")=>{const n="files/create_folder_batch",r=Xe(`https://api.dropboxapi.com/2/${n}`,{entries:e.map(o=>({path:qe(a+o)}))});return r?bl(r,n):void 0},Nd=async(e,a)=>Xe("https://api.dropboxapi.com/2/files/tags/add",{path:e,tag_text:a.toLowerCase().replaceAll(/[^a-z0-9]/g,"")}),kd=async(e,a="")=>{for(const n in e)for(const r of e[n])await Nd(qe(a+n),r)},Ad=async({path:e="",recursive:a=!1}={})=>{const n=[],r=async({path:s,cursor:l,recursive:i})=>s?await Xe("https://api.dropboxapi.com/2/files/list_folder",{include_deleted:!1,include_has_explicit_shared_members:!1,include_media_info:!1,include_mounted_folders:!0,include_non_downloadable_files:!0,path:qe(s),recursive:i}):await Xe("https://api.dropboxapi.com/2/files/list_folder/continue",{cursor:l});let o={has_more:!0,cursor:"",entries:[]};for(;o!=null&&o.has_more;)o=await r(o.cursor?{cursor:o.cursor,recursive:a}:{path:e,recursive:a}),o&&n.push(...o.entries);return n},Sd=async e=>{const n=async l=>await Xe("https://api.dropboxapi.com/2/files/copy_batch_v2",{entries:l,autorename:!1}),r=async l=>await Xe("https://api.dropboxapi.com/2/files/copy_batch/check_v2",{async_job_id:l}),o=[];let s=[];for(let l=0;l<e.length;l+=900){s=e.slice(l,l+900).map(m=>({from_path:qe(m.from),to_path:qe(m.to)}));const i=await n(s);if(i.error)throw new Error(`Error starting copy: ${i.error}`);let c=i;for(;(c==null?void 0:c[".tag"])==="async_job_id"||(c==null?void 0:c[".tag"])==="in_progress";)await da(yd),c=await r(i.async_job_id);if((c==null?void 0:c[".tag"])==="failed")throw new Error(`Copy operation failed: ${c[".tag"]}`);(c==null?void 0:c[".tag"])==="complete"&&o.push(...c.entries)}return o.filter(l=>l[".tag"]==="failure").map(l=>l.failure)},Td=async e=>{const a=async n=>await Xe("https://api.dropboxapi.com/2/files/move_v2",{...n,autorename:!0});for(const n of e)await a({from_path:qe(n.from),to_path:qe(n.to)})},Id=async({thumbnailsRequest:e=[],size:a="w64h64",format:n="jpeg",mode:r="strict"},o)=>{const l="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==";let i={};const c=[];for(let m=0;m<e.length;m+=25){const d=e.slice(m,m+25),p=d.map(u=>({path:qe(u.path),format:n,size:a,mode:r}));await da(100),c.push(Xe("https://content.dropboxapi.com/2/files/get_thumbnail_batch",{entries:p}).then(u=>{if(!u)return;const f=u.entries.reduce((x,y,E)=>{const h=d[E].path,[g,S]=a.replace("w","").split("h").map(Number);return x[h]={...d[E],thumbnail:(y==null?void 0:y[".tag"])==="success"?y.thumbnail:l,mimetype:"data:image/jpeg;base64,",width:g,height:S},x},{});console.log("DropBox: setThumbnails",f),o==null||o(f),i={...i,...f}}))}return Promise.all(c).then(()=>i)},Dd=(e,a="application/octet-stream",n=512)=>{const r=atob(e),o=[];for(let s=0;s<r.length;s+=n){const l=r.slice(s,s+n),i=new Array(l.length);for(let m=0;m<l.length;m++)i[m]=l.charCodeAt(m);const c=new Uint8Array(i);o.push(c)}return new Blob(o,{type:a})},Pd=async(e,a)=>{try{const n=a.split(",")[1],r=Dd(n,"application/octet-stream");vd("https://content.dropboxapi.com/2/files/upload",r,{"Dropbox-API-Arg":JSON.stringify({path:qe(e),mode:"overwrite",autorename:!0,mute:!1})}).then(o=>{console.log("DropBox: Upload response",o)})}catch(n){console.error("Errore durante il caricamento su Dropbox:",n)}},yl=(e=!1)=>Be?Zo(Be.clientId,e):!1,Rd=(e={})=>{if(!Be)return t.createElement("div",{title:`DropBox: configurazione mancante. Recupera il "Client ID" accedendo a https://www.dropbox.com/developers, vai su "App Console", seleziona un'app esistente o chiedi il Client ID a chi ha configurato il sistema.`,className:"text-danger flex items-center gap-2"},t.createElement(Q,{name:"warning"}),t.createElement("span",null,"Dropbox non configurato"));const a=yl(!0);return t.createElement(Qo,{provider:"dropboxAuth",intent:"connect",aspect:"button",options:{...e,className:(e==null?void 0:e.className)+(a?" text-success":" text-danger"),icon:a?"link":"link-break",title:a?"DropBox Connected":"DropBox Disconnected"}})},El={setRootPath:e=>{Be&&(Be.rootPath=e)},resolvePath:qe,createFolders:Cd,deleteBulk:xd,addTags:kd,listFolders:Ad,getThumbnails:Id,search:wd,upload:Pd,copy:Sd,move:Td},Md=async(e,a,{callLabel:n,callKey:r,callBasePath:o,callService:s,callFunc:l,callOptions:i},c=null,m=[])=>{const d=`${o}/${yt(a)}/${r}`;return await ra.read(d)||await l(e,a,i).then(p=>(p?ra.set(d,p).then(()=>{}):(console.warn(`${n} ${a}: No Result`),p={}),p))},Kr="https://api.serpapi.com/search",wn="google",Cn="google_images",xn="google_autocomplete",Nn="google_trends",kn="google_maps",An="google_maps_photos",Sn="google_maps_reviews",$t={q:null},vl=or(),Wr=or(!0),Tn=gs(!0),it={engine:null,device:null,no_cache:!1,async:!1,output:"json"},rn={location:vl,uule:null},Od={geo:vl,region:null},wa={google_domain:"google.com",gl:Wr.toLowerCase(),hl:Tn,cr:"country"+Wr,lr:"lang_"+Tn},on={tbs:null,safe:"active",nfpr:0,filter:1},qr={data_id:null,hl:Tn},_d={[wn]:{...it,...rn,...wa,...on,...$t,engine:wn,ludocid:null,lsig:null,kgmid:null,si:null,tbm:null,start:null,num:null},[Cn]:{...it,...rn,...wa,...on,...$t,engine:Cn,chips:null,ijn:null},[xn]:{...it,...wa,...$t,engine:xn,cp:null,client:null},[Nn]:{...it,...Od,...$t,engine:Nn,data_type:null,tz:null,cat:null,gprop:null,date:null,csv:null},[kn]:{...it,...rn,...wa,...on,...$t,engine:kn},[An]:{...it,...qr,engine:An},[Sn]:{...it,...qr,engine:Sn}};let Aa;typeof _e=="function"&&_e(e=>{Aa=e.scrape});function Ld(e){const a={};for(const n in e)e[n]!==null&&(a[n]=e[n]);return a}let sn=0;function Vr(e=!1){var n;const a=((n=Aa==null?void 0:Aa.serpApiKey)==null?void 0:n.split(",").map(r=>r.trim()).filter(Boolean))||[];return a.length===0?null:(e&&sn++,sn<a.length?a[sn]:null)}const Fd=async(e,a)=>{const n=o=>{const s=Ld({..._d[a],api_key:o,q:e});console.log(Kr,s);const l=new URLSearchParams(s),i=`${Kr}?${l}`;return vo(i)};let r=Vr();for(;r;)try{return await Fn(n(r))}catch(o){if(o.error==="quota_exceeded"){console.warn(`SerpApi: invalid api key: ${r}`,o),r=Vr(!0);continue}throw console.error(`SerpApi: ${r}`,o),o}return null},ct=async(e,a,{caller:n=null,storePaths:r=[]}={})=>await Md(e,a,{callLabel:"Serp Api",callKey:yt(e),callBasePath:Ji,callService:"serpApi",callFunc:Fd,callOptions:{}},n,r),$d=(e=null,a=[])=>({googleSearch:async n=>await ct(n,wn,{caller:e,storePaths:a}),googleImages:async n=>await ct(n,Cn,{caller:e,storePaths:a}),googleAutocomplete:async n=>await ct(n,xn,{caller:e,storePaths:a}),googleTrends:async n=>await ct(n,Nn,{caller:e,storePaths:a}),googleMaps:async n=>await ct(n,kn,{caller:e,storePaths:a}),googleMapsPhotos:async n=>await ct(n,An,{caller:e,storePaths:a}),googleMapsReviews:async n=>await ct(n,Sn,{caller:e,storePaths:a})}),jd={keyword:gl,trend:hl,serp:null},Er={"+":"+","﹢":"+","-":"-","﹣":"-","–":"-","—":"-","@":"@","#":"#","$":"$","%":"%","&":"&","*":"*","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9",A:"A",B:"B",C:"C",D:"D",E:"E",F:"F",G:"G",H:"H",I:"I",J:"J",K:"K",L:"L",M:"M",N:"N",O:"O",P:"P",Q:"Q",R:"R",S:"S",T:"T",U:"U",V:"V",W:"W",X:"X",Y:"Y",Z:"Z",a:"a",b:"b",c:"c",d:"d",e:"e",f:"f",g:"g",h:"h",i:"i",j:"j",k:"k",l:"l",m:"m",n:"n",o:"o",p:"p",q:"q",r:"r",s:"s",t:"t",u:"u",v:"v",w:"w",x:"x",y:"y",z:"z"},Bd={email:{description:"Email: no spaces -> Lower/Trim",transformations:[{pattern:"\\s+",replace:""}],mask:["toLower","trim"]},phone:{description:"Phone: Digits only",transformations:[{pattern:"\\D",replace:""}],mask:[]},price:{description:"Price: Digits/Dot/Comma/Minus -> toCurrency",transformations:[{pattern:"[^0-9.-]",replace:""},{pattern:",",replace:"."}],mask:["toCurrency"]},name:{description:"Name: All chars -> UcWords/Trim",transformations:[],mask:["ucwords","trim"]},date:{description:"Date: All chars -> toDate (YYYY-MM-DD)",transformations:[],mask:[{func:"toDate",arg:"YYYY-MM-DD"}]},slug:{description:"Slug: All chars -> toSlug",transformations:[],mask:["toSlug"]}},Gd=[{pattern:"email*",use:"email"},{pattern:"*_price",use:"price"},{pattern:"name*",use:"name"},{pattern:"date*",use:"date"}],Yd=new RegExp(Object.keys(Er).join("|"),"g");function wl(e){return e?e.normalize("NFKC").replace(Yd,a=>Er[a]??a):""}class Ud{constructor(a={},n=[]){this.config={...Bd,...a},this.matches=[...Gd,...n]}apply(a,n,r=!1){const o=this.config[a];if(!o)return r?Ia(n):n;let s=n;s=wl(s);const l=o.exclusions;if(Array.isArray(l)&&l.length){const i=String(s).toLowerCase();for(const c of l){const m=((c==null?void 0:c.phrase)??"").trim().toLowerCase();if(m&&i.includes(m)){s="";break}}}for(const{pattern:i,replace:c=""}of o.transformations||[])try{s=String(s).replace(new RegExp(i,"g"),String(c))}catch{console.warn(`Invalid regex in rule ${String(a)}: ${i}`)}for(const i of o.mask||[]){let c,m;typeof i=="object"&&i!==null&&"func"in i?(c=i.func,m=i.arg):c=i;const d=we[c];if(typeof d=="function")try{s=d(s,m)}catch(p){console.warn(`Error applying mask ${c} for rule ${a}:`,p)}}return r?Ia(s):s}applyMatches(a,n=!1){const r={...a};for(const[o,s]of Object.entries(a))for(const l of this.matches)if(this.wildcardToRegExp(l.pattern).test(o)){r[o]=this.apply(l.use,s,n);break}return r}getOptions(){return Object.keys(this.config).sort().map(a=>({label:this.config[a].description??we.toCamel(a),value:a}))}addRule(a,n){this.config[a]=n}addMatch(a,n){this.matches.push({pattern:a,use:n})}wildcardToRegExp(a){const n=a.replace(/[.+^${}()|[\]\\]/g,"\\$&");return new RegExp(`^${n.replace(/\*/g,".*")}$`,"i")}}function Jr(e,a){if(!a)return e;const n=e.indexOf("?"),r=n!==-1?e.slice(0,n):e,o=n!==-1?e.slice(n):"",s=r.lastIndexOf(".");return s===-1?`${r}${a}${o}`:`${r.slice(0,s)}${a}${r.slice(s)}${o}`}function zd(e,a){return a.mode==="density"?(a.densities??[1,2]).map(r=>{const o=a.suffix?a.suffix(r):r===1?"":`@${r}x`;return`${Jr(e,o)} ${r}x`}).join(", "):a.widths.map(n=>{const r=a.suffix?a.suffix(n):`-${n}w`;return`${Jr(e,r)} ${n}w`}).join(", ")}function ln(e,a){const n=e.priority?"eager":e.loading??"lazy",r={src:e.src,alt:e.alt,width:e.width,height:e.height,loading:n,decoding:e.decoding??"async",...e.priority&&{fetchpriority:"high"},...e.title&&{title:e.title},...e.className&&{class:e.className},...e.crossorigin&&{crossorigin:e.crossorigin},...e.referrerpolicy&&{referrerpolicy:e.referrerpolicy}},o=[];return e.fit&&o.push(`object-fit: ${e.fit}`),e.position&&o.push(`object-position: ${e.position}`),o.length&&(r.style=o.join("; ")),a&&(r.srcset=zd(e.src,a),a.mode==="width"&&a.sizes&&(r.sizes=a.sizes)),Object.fromEntries(Object.entries(r).filter(([,s])=>s!==void 0))}function Hd(e){const n=["src","srcset","sizes","alt","title","width","height","style","class","loading","decoding","fetchpriority","crossorigin","referrerpolicy"].filter(s=>e[s]!==void 0).map(s=>`${s}="${String(e[s])}"`);if(n.length===0)return"<img />";const[r,...o]=n;return o.length===0?`<img ${r} />`:`<img ${r}
210
+ ${o.join(`
211
+ `)} />`}function Kd(e){return{toHtml:a=>Hd(ln(e,a)),toJson:a=>JSON.stringify(ln(e,a),null,2),params:a=>ln(e,a)}}function Wd(){const[e,a]=t.useState(!1),[n,r]=t.useState(!1),o=t.useRef(null);t.useEffect(()=>{window.bootstrap&&o.current&&window.bootstrap.ScrollSpy.getOrCreateInstance(o.current,{target:"#sidebar-bootstrap",smoothScroll:!0})},[]),t.useEffect(()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"}),[]);const s=[];for(let l=1;l<=30;l++)s.push({id:l,name:"Valore "+l});return t.createElement(Sa,{className:"mb-5"},t.createElement($e,{className:"justify-content-center"},t.createElement(F,{xl:10},t.createElement($e,null,t.createElement(F,{xl:9},t.createElement("div",{ref:o,"data-bs-spy":"scroll","data-bs-target":"#sidebar-bootstrap","data-bs-smooth-scroll":"true",className:"p-2",tabIndex:0,style:{height:"80vh",overflowY:"auto"}},t.createElement("h1",null,"Helper"),t.createElement("p",null,"Helper is a component that helps you to create a form."),t.createElement($e,{className:"pb-3"},t.createElement(F,{lg:5},t.createElement("h2",{id:"input"},"Input"),t.createElement(Te,{dataStoragePath:"",header:"Input"},t.createElement(De,{name:"text",label:"String",placeholder:"Lorem ipsum."}),t.createElement(Mt,{name:"number",label:"Number",value:10}),t.createElement(oa,{name:"email",label:"Email",placeholder:"test@example.com"}),t.createElement(Hn,{name:"password",label:"Password",placeholder:"my passowrd"}),t.createElement(Kn,{name:"color",label:"Color",placeholder:"Pick a Color"}),t.createElement(be,{name:"textarea",label:"Text Area",placeholder:"Lorem ipsum."}))),t.createElement(F,{lg:7},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Form dataStoragePath='' header="Input">
212
+
213
+ {/* String */}
214
+ <String name='text' label='String' placeholder='Lorem ipsum.' />
215
+
216
+ {/* Number */}
217
+ <Number name='number' label='Number' value={10} />
218
+
219
+ {/* Email */}
220
+ <Email name='email' label='Email' placeholder='test@example.com' />
221
+
222
+ {/* Password */}
223
+ <Password name='password' label='Password' placeholder='my passowrd' />
224
+
225
+ {/* Color */}
226
+ <Color name='color' label='Color' placeholder='Pick a Color' />
227
+
228
+ {/* TextArea */}
229
+ <TextArea name='textarea' label='Text Area' placeholder='Lorem ipsum.' />
230
+
231
+ </Form>`))),t.createElement($e,{className:"pb-3"},t.createElement(F,{lg:5},t.createElement(Te,{dataStoragePath:"",header:"Date Input"},t.createElement(Wn,{name:"date",label:"Date"}),t.createElement(qn,{name:"time",label:"Time"}),t.createElement(Vn,{name:"datetime",label:"DateTime"}),t.createElement(Jn,{name:"week",label:"Week"}),t.createElement(Xn,{name:"month",label:"Month"}),t.createElement(Ga,{name:"range",label:"Range",min:0,max:100,step:1}))),t.createElement(F,{lg:7},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Form dataStoragePath='' header="Date Input">
232
+
233
+ {/* Date */}
234
+ <Date name='date' label='Date'/>
235
+
236
+ {/* Time */}
237
+ <Time name='time' label='Time' />
238
+
239
+ {/* DateTime */}
240
+ <DateTime name='datetime' label='DateTime' />
241
+
242
+ {/* Week */}
243
+ <Week name='week' label='Week'/>
244
+
245
+ {/* Month */}
246
+ <Month name='month' label='Month' />
247
+
248
+ {/* Range */}
249
+ <Range name='range' label='Range' min={0} max={100} step={1} />
250
+
251
+ </Form>`))),t.createElement($e,null,t.createElement(F,{lg:5},t.createElement(Te,{dataStoragePath:"",header:"Boolean Input"},t.createElement(Re,{label:"Checkboxes"}),t.createElement(sa,{name:"checkbox1",label:"Checkbox1"}),t.createElement(sa,{name:"checkbox2",label:"Checkbox2",value:!0}),t.createElement(Re,{label:"Switches"}),t.createElement(Et,{name:"switch1",label:"Switch input",onChange:()=>{},value:!1}),t.createElement(Et,{name:"switch2",onChange:()=>{},label:"Switch input",value:!0})),t.createElement(Te,{dataStoragePath:"",header:"List Group"},t.createElement(la,{actives:[0],disables:[1],itemClass:"p-1"},t.createElement("span",{className:"text-danger"},"Element1"),t.createElement("span",{className:"text-success"},"Element2"),t.createElement("span",{className:"text-warning"},"Element3")),t.createElement(la,{label:"List Group with onClick",onClick:(l,i)=>{console.log("List Group click",i,l.currentTarget.innerHTML)},actives:[0],disables:[1]},t.createElement("span",{className:"text-danger"},"Element1"),t.createElement("span",{className:"text-success"},"Element2"),t.createElement("span",{className:"text-warning"},"Element3")))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`{/* Boolean */}
252
+ <Form dataStoragePath='' header="Boolean Input">
253
+
254
+ {/* Checkbox */}
255
+ <Label label='Checkboxes' />
256
+ <Checkbox name='checkbox1' label='Checkbox1' />
257
+ <Checkbox name='checkbox2' label='Checkbox2' className='mb-3' value={true} />
258
+
259
+ {/* Switch */}
260
+ <Label label='Switches' />
261
+ <Switch name='switch1' label='Switch input' onChange={() => { }} value={false} />
262
+ <Switch name='switch2' onChange={() => { }} label='Switch input' className='mb-3' value={true} />
263
+ </Form>
264
+
265
+
266
+ {/* List */}
267
+ <Form dataStoragePath='' header="List Group">
268
+
269
+ <ListGroup actives={[0]} disables={[1]} className='mb-3' itemClass='p-1'>
270
+ <span className='text-danger'>Element1</span>
271
+ <span className='text-success'>Element2</span>
272
+ <span className='text-warning'>Element3</span>
273
+ </ListGroup>
274
+
275
+ <ListGroup label='List Group with onClick' onClick={(e, index) => { console.log("List Group click", index, e.currentTarget.innerHTML) }} actives={[0]} disables={[1]}>
276
+ <span className='text-danger'>Element1</span>
277
+ <span className='text-success'>Element2</span>
278
+ <span className='text-warning'>Element3</span>
279
+ </ListGroup>
280
+ </Form>
281
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"selectors"},"Selectors"),t.createElement(te,{className:"mb-3"},t.createElement(Te,{dataStoragePath:"",header:"Selectors"},t.createElement(Ne,{name:"select",label:"Select",value:"Option1",options:["Option1","Option2","Option3"]}),t.createElement(ar,{name:"autocomplete",label:"Autocomplete",options:["Option1","Option2","Option3"]}),t.createElement(nr,{name:"checklist",label:"Checklist",options:["Option1","Option2","Option3"]})))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Form dataStoragePath='' className='Selectors'>
282
+
283
+ {/* Select */}
284
+ <Select name='select' label='Select' value={'Option1'} options={['Option1', 'Option2', 'Option3']} />
285
+
286
+ {/* Autocomplete */}
287
+ <Autocomplete name='autocomplete' label='Autocomplete' options={['Option1', 'Option2', 'Option3']} />
288
+
289
+ {/* Checklist */}
290
+ <Checklist name='checklist' label='Checklist' options={['Option1', 'Option2', 'Option3']} />
291
+
292
+ </Form>
293
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"upload"},"Upload"),t.createElement(Te,{dataStoragePath:"",header:"Documents Upload"},t.createElement(Pa,{name:"uploadDocument",label:"Upload Multiple Documents",editable:!0,multiple:!0}),t.createElement(Pa,{name:"uploadDocument",label:"Upload Document not Editable"})),t.createElement(Te,{dataStoragePath:"",header:"Images Upload"},t.createElement(Jt,{name:"uploadImage",label:"Upload Multiple Images",previewWidth:150,previewHeight:150,multiple:!0,editable:!0}),t.createElement(Jt,{name:"uploadImage",label:"Upload Single Image",editable:!0}),t.createElement(Jt,{name:"uploadImage",label:"Upload Single Image not Editable Images"}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Form dataStoragePath='' header="Documents Upload">
294
+
295
+ {/* Multiple Documents */}
296
+ <UploadDocument name='uploadDocument' label="Upload Multiple Documents" editable multiple />
297
+
298
+ {/* Single Document */}
299
+ <UploadDocument name='uploadDocument' label="Upload Document not Editable" />
300
+
301
+ </Form>
302
+
303
+ <Form dataStoragePath='' header="Images Upload">
304
+
305
+ {/* Multiple Editable Images */}
306
+ <UploadImage name='uploadImage' label='Upload Multiple Images' previewWidth={150} previewHeight={150} multiple editable />
307
+
308
+ {/* Single Editable Image */}
309
+ <UploadImage name='uploadImage' label='Upload Single Image' editable />
310
+
311
+ {/* Single Not Editable Image */}
312
+ <UploadImage name='uploadImage' label='Upload Single Image not Editable Images' />
313
+ </Form>
314
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"alert"},"Alert"),t.createElement(te,{className:"mb-3"},t.createElement(Ue,{type:"info",children:"Info"}),t.createElement(Ue,{type:"success",children:"Success"}),t.createElement(Ue,{type:"warning",children:"Warning"}),t.createElement(Ue,{type:"danger",children:"Danger"}),t.createElement(Ue,{type:"primary",children:"Primary"}),t.createElement(Ue,{type:"secondary",children:"Secondary"}),t.createElement(Ue,{type:"light",children:"Light"}),t.createElement(Ue,{type:"dark",children:"Dark"}),t.createElement(fe,{onClick:()=>r(!0),label:"click alert fixed"}),n&&t.createElement(Ue,{isFixed:"top",onClose:()=>r(!1)},"Prova Alert fixedTop con timeout 5s"))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Card className='mb-3'>
315
+
316
+ <Alert type="info" children="Info" />
317
+ <Alert type="success" children="Success" />
318
+ <Alert type="warning" children="Warning" />
319
+ <Alert type="danger" children="Danger" />
320
+ <Alert type="primary" children="Primary" />
321
+ <Alert type="secondary" children="Secondary" />
322
+ <Alert type="light" children="Light" />
323
+ <Alert type="dark" children="Dark" />
324
+
325
+ <ActionButton onClick={() => setShowAlert(true)} label='click alert fixed' />
326
+ {showAlert && <Alert isFixed='top' onClose={() => setShowAlert(false)}>Prova Alert fixedTop con timeout 5s</Alert>}
327
+ </Card>
328
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"badge"},"Badge"),t.createElement(te,{className:"mb-3"},t.createElement($e,{className:"gap-2 d-flex justify-content-center"},t.createElement(F,{sm:5},t.createElement(je,{type:"info",children:"Info",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"success",children:"Success",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"warning",children:"Warning",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"danger",children:"Danger",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"primary",children:"Primary",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"secondary",children:"Secondary",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"light",children:"Light",className:"mb-3 w-100"})),t.createElement(F,{sm:5},t.createElement(je,{type:"dark",children:"Dark",className:"mb-3 w-100"}))))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Row className='gap-2 d-flex justify-content-center'>
329
+ <Col sm={5}>
330
+ <Badge type="info" children="Info" className='mb-3 w-100' />
331
+ </Col>
332
+ <Col sm={5}>
333
+ <Badge type="success" children="Success" className='mb-3 w-100' />
334
+ </Col>
335
+ <Col sm={5}>
336
+ <Badge type="warning" children="Warning" className='mb-3 w-100' />
337
+ </Col>
338
+ <Col sm={5}>
339
+ <Badge type="danger" children="Danger" className='mb-3 w-100' />
340
+ </Col>
341
+ <Col sm={5}>
342
+ <Badge type="primary" children="Primary" className='mb-3 w-100' />
343
+ </Col>
344
+ <Col sm={5}>
345
+ <Badge type="secondary" children="Secondary" className='mb-3 w-100' />
346
+ </Col>
347
+ <Col sm={5}>
348
+ <Badge type="light" children="Light" className='mb-3 w-100' />
349
+ </Col>
350
+ <Col sm={5}>
351
+ <Badge type="dark" children="Dark" className='mb-3 w-100' />
352
+ </Col>
353
+ </Row>
354
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"buttons"},"Buttons"),t.createElement(te,{className:"mb-3"},t.createElement($e,null,t.createElement(F,{xs:12,className:"d-flex gap-3 mb-3"},t.createElement(Re,{label:"Loading Button"}),t.createElement(He,{label:"Loading Button",icon:"save",showLoader:!1,onClick:async()=>{await new Promise(l=>setTimeout(l,1e3)),alert("Dati salvati!")}})),t.createElement(F,{xs:12,className:"d-flex gap-3 mb-3"},t.createElement(Re,{label:"Action Button"}),t.createElement(fe,{label:"Action Button",icon:"box-arrow-up-right",title:"Apri finestra",onClick:()=>console.log("Azione eseguita!")})),t.createElement(F,{xs:12,className:"d-flex gap-3 mb-3"},t.createElement(Re,{label:"Go Site"}),t.createElement(Uo,{label:"Go site Button",url:"https://www.example.com"})),t.createElement(F,{xs:12,className:"d-flex gap-3 mb-3"},t.createElement(Re,{label:"Refer Site"}),t.createElement(zo,{title:"OpenAI",url:"https://www.openai.com",imageUrl:mn,width:120}))))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Row>
355
+ <Col xs={12} className='d-flex gap-3 mb-3'>
356
+ {/* Loading Button */}
357
+ <Label label='Loading Button' />
358
+ <LoadingButton
359
+ label="Loading Button"
360
+ icon="save"
361
+ showLoader={false}
362
+ onClick={async () => {
363
+ // Simula una chiamata async
364
+ await new Promise((res) => setTimeout(res, 1000));
365
+ alert("Dati salvati!");
366
+ }}
367
+ />
368
+
369
+ </Col>
370
+ <Col xs={12} className='d-flex gap-3 mb-3'>
371
+ {/* Action Button */}
372
+ <Label label='Action Button' />
373
+ <ActionButton
374
+ label="Action Button"
375
+ icon="box-arrow-up-right"
376
+ title="Apri finestra"
377
+ toggle="modal"
378
+ target="#myModal"
379
+ onClick={() => console.log("Azione eseguita!")}
380
+ />
381
+ </Col>
382
+ <Col xs={12} className='d-flex gap-3 mb-3'>
383
+ {/* Go Site */}
384
+ <Label label='Go Site' />
385
+ <GoSite
386
+ label="Go site Button"
387
+ url="https://www.example.com"
388
+ />
389
+ </Col>
390
+ <Col xs={12} className='d-flex gap-3 mb-3'>
391
+ {/* Refer Site */}
392
+ <Label label='Refer Site' />
393
+ <ReferSite
394
+ title="OpenAI"
395
+ url="https://www.openai.com"
396
+ imageUrl={PLACEHOLDER_BRAND}
397
+ width={120}
398
+ />
399
+ </Col>
400
+ </Row>
401
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"card"},"Card"),t.createElement(te,{className:"mb-3"},t.createElement(te,{className:"shadow-sm",wrapClass:"my-3",title:"Card Title",header:t.createElement("span",{className:"text-muted"},"Header"),footer:t.createElement("div",null,"Footer with actions."),showLoader:!1,showArrow:!0},t.createElement("p",null,"Main content.")),t.createElement(te,{title:"Data loading",showLoader:!0},t.createElement("p",null,"Data will be show when loaded.")))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Card
402
+ className="shadow-sm"
403
+ wrapClass="my-3"
404
+ title="Card Title"
405
+ header={<span className="text-muted">Header</span>}
406
+ footer={<div>Footer with actions.</div>}
407
+ showLoader={false}
408
+ showArrow={true}
409
+
410
+ >
411
+ <p>Main content.</p>
412
+ </Card>
413
+
414
+ <Card
415
+ title="Data loading"
416
+ showLoader={true}
417
+ >
418
+ <p>Data will be show when loaded.</p>
419
+ </Card>
420
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"gallery"},"Gallery"),t.createElement(te,{className:"mb-3"},t.createElement(ur,{body:[{thumbnail:Ce,name:"Foto 1",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 2",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 3",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 4",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 5",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 6",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 7",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 8",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 9",mimetype:"",width:100,height:100},{thumbnail:Ce,name:"Foto 10",mimetype:"",width:100,height:100}],Header:t.createElement("h5",null,"Galleria immagini")}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Gallery
421
+ body={
422
+ [
423
+ {
424
+ thumbnail: PLACEHOLDER_IMAGE,
425
+ name: 'Foto 1',
426
+ mimetype: '',
427
+ width: 100,
428
+ height: 100,
429
+ },
430
+ {
431
+ thumbnail: PLACEHOLDER_IMAGE,
432
+ name: 'Foto 2',
433
+ mimetype: '',
434
+ width: 100,
435
+ height: 100,
436
+ },
437
+ {
438
+ thumbnail: PLACEHOLDER_IMAGE,
439
+ name: 'Foto 3',
440
+ mimetype: '',
441
+ width: 100,
442
+ height: 100,
443
+ },
444
+ {
445
+ thumbnail: PLACEHOLDER_IMAGE,
446
+ name: 'Foto 4',
447
+ mimetype: '',
448
+ width: 100,
449
+ height: 100,
450
+ },
451
+ {
452
+ thumbnail: PLACEHOLDER_IMAGE,
453
+ name: 'Foto 5',
454
+ mimetype: '',
455
+ width: 100,
456
+ height: 100,
457
+ },
458
+ {
459
+ thumbnail: PLACEHOLDER_IMAGE,
460
+ name: 'Foto 6',
461
+ mimetype: '',
462
+ width: 100,
463
+ height: 100,
464
+ },
465
+ {
466
+ thumbnail: PLACEHOLDER_IMAGE,
467
+ name: 'Foto 7',
468
+ mimetype: '',
469
+ width: 100,
470
+ height: 100,
471
+ },
472
+ {
473
+ thumbnail: PLACEHOLDER_IMAGE,
474
+ name: 'Foto 8',
475
+ mimetype: '',
476
+ width: 100,
477
+ height: 100,
478
+ },
479
+ {
480
+ thumbnail: PLACEHOLDER_IMAGE,
481
+ name: 'Foto 9',
482
+ mimetype: '',
483
+ width: 100,
484
+ height: 100,
485
+ },
486
+ {
487
+ thumbnail: PLACEHOLDER_IMAGE,
488
+ name: 'Foto 10',
489
+ mimetype: '',
490
+ width: 100,
491
+ height: 100,
492
+ }
493
+ ]
494
+ }
495
+ Header={<h5>Galleria immagini</h5>}
496
+ />
497
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"gridSystem"},"GridSystem"),t.createElement(te,{className:"mb-3"},t.createElement(z,null,t.createElement(Sa,null,t.createElement($e,null,t.createElement(F,{xs:12,sm:6,md:4,className:"bg-primary py-3"},"Colonna 1"),t.createElement(F,{xs:12,sm:6,md:4,className:"bg-secondary py-3"},"Colonna 2"),t.createElement(F,{xs:12,sm:12,md:4,className:"bg-dark py-3"},"Colonna 3")))))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Wrapper>
498
+
499
+ <Container>
500
+
501
+ <Row>
502
+
503
+ <Col xs={12} sm={6} md={4} className='bg-primary py-3'>
504
+ Colonna 1
505
+ </Col>
506
+
507
+ <Col xs={12} sm={6} md={4} className='bg-secondary py-3'>
508
+ Colonna 2
509
+ </Col>
510
+
511
+ <Col xs={12} sm={12} md={4} className='bg-dark py-3'>
512
+ Colonna 3
513
+ </Col>
514
+
515
+
516
+ </Row>
517
+
518
+ </Container>
519
+ </Wrapper>
520
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"images"},"Images"),t.createElement(te,{className:"mb-3",title:"Image"},t.createElement("p",null,"This is the standard HTML tag for displaying an image. It is simple and easy to use, but it doesn't handle errors, fallbacks, or custom caching. If the image fails to load, the user will see a broken image icon."),t.createElement(na,{src:Ce,className:"img-fluid",width:150,height:150})),t.createElement(te,{className:"mb-3",title:"Image Avatar"},t.createElement("p",null,"ImageAvatar is a React component that:",t.createElement("ul",null,t.createElement("li",null,"Displays a default placeholder if the image fails to load"),t.createElement("li",null,"Converts the image to base64 and stores it in localStorage for local caching"),t.createElement("li",null,"Reuses cached images to improve performance"),t.createElement("li",null,"Handles alternate text smartly using alt, title, or the filename"),t.createElement("li",null,"Provides robust error handling and a better user experience"))),t.createElement(na,{src:Ce,className:"img-fluid",width:150,height:150}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`
521
+ <Image
522
+ src={PLACEHOLDER_IMAGE}
523
+ className="img-fluid"
524
+ width={150}
525
+ height={150}
526
+ />
527
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"loader"},"Loader"),t.createElement(te,{className:"mb-3"},t.createElement(Ba,{children:"Loading...",show:!0}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`
528
+ <Loader
529
+ children="Loading..."
530
+ show={true}
531
+ />
532
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"modal"},"Modal"),t.createElement(te,{className:"mb-3",title:""},t.createElement(fe,{label:"Open modal",onClick:async()=>{a(!0)}}),e&&t.createElement(pa,{title:"Modal Title",header:"Header Subtitle",footer:t.createElement("div",null,"Footer with actions."),size:"lg",onClose:()=>{a(!1)}},t.createElement("p",null,"Main content.")))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`
533
+ <ActionButton label='Open modal' onClick={async () => { setShowModal(true) }} />
534
+ {showModal &&
535
+ <Modal
536
+ title="Modal Title"
537
+ header={"Header Subtitle"}
538
+ footer={<div>Footer with actions.</div>}
539
+ size="lg"
540
+ onClose={() => { setShowModal(false) }}
541
+ >
542
+ <p>Main content.</p>
543
+ </Modal>
544
+ }
545
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"percentage"},"Percentage"),t.createElement(te,{className:"mb-3",header:"Percentage"},t.createElement("div",{className:"mb-2"},t.createElement(Fe,{className:"me-2",min:0,max:100,val:30,shape:"circle",label:"Circle",fontSize:30}),t.createElement(Fe,{className:"me-2",min:0,max:100,val:40,shape:"circle",size:100,thickness:15,type:"success"}),t.createElement(Fe,{className:"me-2",min:0,max:100,val:50,shape:"circle",size:80,thickness:20,type:"danger"}),t.createElement(Fe,{className:"me-2",min:0,max:100,val:60,shape:"circle",size:60,thickness:25,type:"warning",showText:!1}),t.createElement(Fe,{className:"me-2",min:0,max:100,val:70,shape:"circle",size:40,thickness:30,type:"info",showText:!1})),t.createElement(Fe,{label:"Bar",className:"mb-2",min:0,max:10,val:3,shape:"bar",size:40,thickness:30,type:"info"}),t.createElement(Fe,{className:"mb-2",min:0,max:10,val:4,shape:"bar",size:60,thickness:25,type:"warning"}),t.createElement(Fe,{className:"mb-2",min:0,max:10,val:5,shape:"bar",size:80,thickness:20,type:"danger"}),t.createElement(Fe,{className:"mb-2",min:0,max:10,val:6,shape:"bar",size:100,thickness:15,type:"success",showText:!1}),t.createElement(Fe,{className:"mb-2",min:0,max:10,val:7,shape:"bar",thickness:2,showText:!1}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`
546
+ <div className='mb-2'>
547
+ <Percentage min={0} max={100} val={30} shape='circle' label='Circle' fontSize={30} />
548
+ <Percentage min={0} max={100} val={40} shape='circle' size={100} thickness={15} type='success' />
549
+ <Percentage min={0} max={100} val={50} shape='circle' size={80} thickness={20} type='danger' />
550
+ <Percentage min={0} max={100} val={60} shape='circle' size={60} thickness={25} type='warning' showText={false} />
551
+ <Percentage min={0} max={100} val={70} shape='circle' size={40} thickness={30} type='info' showText={false} />
552
+ </div>
553
+
554
+ <Percentage label='Bar' min={0} max={10} val={3} shape='bar' size={40} thickness={30} type='info' />
555
+ <Percentage min={0} max={10} val={4} shape='bar' size={60} thickness={25} type='warning' />
556
+ <Percentage min={0} max={10} val={5} shape='bar' size={80} thickness={20} type='danger' />
557
+ <Percentage min={0} max={10} val={6} shape='bar' size={100} thickness={15} type='success' showText={false} />
558
+ <Percentage min={0} max={10} val={7} shape='bar' thickness={2} showText={false} />
559
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"repeat"},"Repeat"),t.createElement(te,{className:"mb-3",title:""},t.createElement(Te,{dataStoragePath:"",header:"Repeat Demo"},t.createElement(Ws,{name:"repeatGroup"},t.createElement(De,{name:"repeat1",label:"Repeat 1",className:"mb-3",placeholder:"Lorem ipsum."}),t.createElement(De,{name:"repeat2",label:"Repeat 2",className:"mb-3",placeholder:"Lorem ipsum."}),t.createElement(De,{name:"repeat3",label:"Repeat 3",className:"mb-3",placeholder:"Lorem ipsum."}))))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Form dataStoragePath='' header="Repeat Demo">
560
+
561
+ <Repeat name='repeatGroup'>
562
+ <String name='repeat1' label='Repeat 1' className='mb-3' placeholder='Lorem ipsum.' />
563
+ <String name='repeat2' label='Repeat 2' className='mb-3' placeholder='Lorem ipsum.' />
564
+ <String name='repeat3' label='Repeat 3' className='mb-3' placeholder='Lorem ipsum.' />
565
+ </Repeat>
566
+
567
+ </Form>
568
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"tab"},"Tab"),t.createElement(te,{className:"mb-3",title:"Tabs"},t.createElement("h3",null,"Default"),t.createElement(ut,{tabPosition:"default"},t.createElement(xe,{label:"Intro"},t.createElement("p",null,"Lorem ipsum. Content 1 or Component Nested 1"),t.createElement("p",null,"Lorem ipsum. Content 2 or Component Nested 2"),t.createElement("p",null,"Lorem ipsum. Content 3 or Component Nested 3")),t.createElement(xe,{label:"Tab 2"},t.createElement(Te,{dataStoragePath:""},t.createElement(De,{name:"example1",label:"Example Tab 2"}),t.createElement(be,{name:"example2",label:"Example Tab 2"}))),t.createElement(xe,{label:"End"},t.createElement(te,{title:"Card Example Tab 3",header:"Lorem ipsum. Content 1 or Component Nested 1",footer:"Lorem ipsum. Content 2 or Component Nested 2",showLoader:!1,showArrow:!0},t.createElement("p",null,"Main content."),t.createElement("hr",null),t.createElement(Te,{dataStoragePath:""},t.createElement(be,{name:"example",label:"Example Tab 3"}))))),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Top"),t.createElement(ut,{tabPosition:"top"},t.createElement(xe,{label:"Tab1"},t.createElement("p",null,"Lorem ipsum. Content 1 or Component Nested 1")),t.createElement(xe,{label:"Tab2"},t.createElement("p",null,"Lorem ipsum. Content 2 or Component Nested 2")),t.createElement(xe,{label:"Tab3"},t.createElement("p",null,"Lorem ipsum. Content 3 or Component Nested 3"))),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Left"),t.createElement(ut,{tabPosition:"left"},t.createElement(xe,{label:"Tab1"},t.createElement("p",null,"Lorem ipsum. Content 1 or Component Nested 1")),t.createElement(xe,{label:"Tab2"},t.createElement("p",null,"Lorem ipsum. Content 2 or Component Nested 2")),t.createElement(xe,{label:"Tab3"},t.createElement("p",null,"Lorem ipsum. Content 3 or Component Nested 3"))),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Right"),t.createElement(ut,{tabPosition:"right"},t.createElement(xe,{label:"Tab1"},t.createElement("p",null,"Lorem ipsum. Content 1 or Component Nested 1")),t.createElement(xe,{label:"Tab2"},t.createElement("p",null,"Lorem ipsum. Content 2 or Component Nested 2")),t.createElement(xe,{label:"Tab3"},t.createElement("p",null,"Lorem ipsum. Content 3 or Component Nested 3"))),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Bottom"),t.createElement(ut,{tabPosition:"bottom"},t.createElement(xe,{label:"Tab1"},t.createElement("p",null,"Lorem ipsum. Content 1 or Component Nested 1")),t.createElement(xe,{label:"Tab2"},t.createElement("p",null,"Lorem ipsum. Content 2 or Component Nested 2")),t.createElement(xe,{label:"Tab3"},t.createElement("p",null,"Lorem ipsum. Content 3 or Component Nested 3")))),t.createElement(te,{className:"mb-3",title:"Dynamic Tabs (TabDynamic)"},t.createElement("h3",null,"Default"),t.createElement(Te,{dataStoragePath:"",header:"TabDynamic Demo"},t.createElement(St,{name:"tabDynamic",min:1,label:"Tab"},t.createElement(De,{name:"example",label:"Example Tab 1"})),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Top"),t.createElement(St,{name:"tabDynamic2",min:2,label:"Tab",tabPosition:"top"},t.createElement(De,{name:"example",label:"Example Tab 2"})),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Left"),t.createElement(St,{name:"tabDynamic3",min:3,label:"Tab",tabPosition:"left"},t.createElement(De,{name:"example",label:"Example Tab 3"})),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Right"),t.createElement(St,{name:"tabDynamic4",min:4,max:4,label:"Tab",tabPosition:"right"},t.createElement(De,{name:"example",label:"Example Tab 4"})),t.createElement("br",null),t.createElement("hr",null),t.createElement("br",null),t.createElement("h3",null,"Bottom"),t.createElement(St,{name:"tabDynamic5",min:0,readOnly:!0,value:[{example:"first Tab"},{example:"second Tab"},{example:"third Tab"}],label:"Tab",tabPosition:"bottom"},t.createElement(De,{name:"example",label:"Example Tab 5"}))))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Card>
569
+ /* Default */
570
+ <Tab tabPosition='default'>
571
+
572
+ <TabItem label='Intro'>
573
+ <p>Lorem ipsum. Content 1 or Component Nested 1</p>
574
+ <p>Lorem ipsum. Content 2 or Component Nested 2</p>
575
+ <p>Lorem ipsum. Content 3 or Component Nested 3</p>
576
+ </TabItem>
577
+
578
+ <TabItem label='Tab 2'>
579
+ <Form dataStoragePath=''>
580
+ <String name='example1' label='Example Tab 2' />
581
+ <TextArea name='example2' label='Example Tab 2' />
582
+ </Form>
583
+ </TabItem>
584
+
585
+ <TabItem label='End'>
586
+ <Card
587
+ title='Card Example Tab 3'
588
+ header={"Lorem ipsum. Content 1 or Component Nested 1"}
589
+ footer={"Lorem ipsum. Content 2 or Component Nested 2"}
590
+ showLoader={false}
591
+ showArrow={true}
592
+ >
593
+ <p>Main content.</p>
594
+ <hr />
595
+ <Form dataStoragePath=''>
596
+ <TextArea name='example' label='Example Tab 3' />
597
+ </Form>
598
+ </Card>
599
+ </TabItem>
600
+
601
+ </Tab>
602
+
603
+ /* Top */
604
+ <Tab tabPosition='top'>
605
+
606
+ <TabItem label='Tab1'>
607
+ <p>Lorem ipsum. Content 1 or Component Nested 1</p>
608
+ </TabItem>
609
+
610
+ <TabItem label='Tab2'>
611
+ <p>Lorem ipsum. Content 2 or Component Nested 2</p>
612
+ </TabItem>
613
+
614
+ <TabItem label='Tab3'>
615
+ <p>Lorem ipsum. Content 3 or Component Nested 3</p>
616
+ </TabItem>
617
+
618
+ </Tab>
619
+
620
+ /* Left */
621
+ <Tab tabPosition='left'>
622
+
623
+ <TabItem label='Tab1'>
624
+ <p>Lorem ipsum. Content 1 or Component Nested 1</p>
625
+ </TabItem>
626
+
627
+ <TabItem label='Tab2'>
628
+ <p>Lorem ipsum. Content 2 or Component Nested 2</p>
629
+ </TabItem>
630
+
631
+ <TabItem label='Tab3'>
632
+ <p>Lorem ipsum. Content 3 or Component Nested 3</p>
633
+ </TabItem>
634
+
635
+ </Tab>
636
+
637
+ /* Right */
638
+ <Tab tabPosition='right'>
639
+
640
+ <TabItem label='Tab1'>
641
+ <p>Lorem ipsum. Content 1 or Component Nested 1</p>
642
+ </TabItem>
643
+
644
+ <TabItem label='Tab2'>
645
+ <p>Lorem ipsum. Content 2 or Component Nested 2</p>
646
+ </TabItem>
647
+
648
+ <TabItem label='Tab3'>
649
+ <p>Lorem ipsum. Content 3 or Component Nested 3</p>
650
+ </TabItem>
651
+
652
+ </Tab>
653
+
654
+ /* Bottom */
655
+ <Tab tabPosition='bottom'>
656
+
657
+ <TabItem label='Tab1'>
658
+ <p>Lorem ipsum. Content 1 or Component Nested 1</p>
659
+ </TabItem>
660
+
661
+ <TabItem label='Tab2'>
662
+ <p>Lorem ipsum. Content 2 or Component Nested 2</p>
663
+ </TabItem>
664
+
665
+ <TabItem label='Tab3'>
666
+ <p>Lorem ipsum. Content 3 or Component Nested 3</p>
667
+ </TabItem>
668
+
669
+ </Tab>
670
+
671
+ </Card>
672
+
673
+ /* Dynamic Tabs */
674
+ <Card className='mb-3' title='Dynamic Tabs (TabDynamic)'>
675
+ /* Default */
676
+ <Form dataStoragePath='' header="TabDynamic Demo">
677
+
678
+ <TabDynamic name='tabDynamic' min={1} label='Tab'>
679
+ <String name='example' label='Example Tab 1' />
680
+ </TabDynamic>
681
+
682
+ /* Top */
683
+ <TabDynamic name='tabDynamic2' min={2} label='Tab' tabPosition='top'>
684
+ <String name='example' label='Example Tab 2' />
685
+ </TabDynamic>
686
+
687
+ /* Left */
688
+ <TabDynamic name='tabDynamic3' min={3} label='Tab' tabPosition='left'>
689
+ <String name='example' label='Example Tab 3' />
690
+ </TabDynamic>
691
+
692
+ /* Right */
693
+ <TabDynamic name='tabDynamic4' min={4} max={4} label='Tab' tabPosition='right'>
694
+ <String name='example' label='Example Tab 4' />
695
+ </TabDynamic>
696
+
697
+ /* Bottom */
698
+ <TabDynamic name='tabDynamic5' min={0} readOnly={true} value={[{ example: 'first Tab' }, { example: 'second Tab' }, { example: 'third Tab' }]} label='Tab' tabPosition='bottom'>
699
+ <String name='example' label='Example Tab 5' />
700
+ </TabDynamic>
701
+
702
+ </Form>
703
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"table"},"Table"),t.createElement(te,{className:"mb-3",title:""},t.createElement(Ya,{header:[{label:"ID",key:"id"},{label:"Name",key:"name"},{label:"Email",key:"email"}],body:[{id:1,name:"John Doe",email:"john@doe.com"},{id:2,name:"Jane Doe",email:"jane@doe.com"},{id:3,name:"Alice Smith",email:"alice@smith.com"},{id:4,name:"Bob Johnson",email:"bob@johnson.com"},{id:5,name:"Charlie Brown",email:"charlie@brown.com"}],onClick:l=>{console.log(l)}}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Table
704
+ header={[
705
+ { label: 'ID', key: 'id' },
706
+ { label: 'Name', key: 'name' },
707
+ { label: 'Email', key: 'email' },
708
+ ]}
709
+ body={[
710
+ { id: 1, name: 'John Doe', email: 'john@doe.com' },
711
+ { id: 2, name: 'Jane Doe', email: 'jane@doe.com' },
712
+ { id: 3, name: 'Alice Smith', email: 'alice@smith.com' },
713
+ { id: 4, name: 'Bob Johnson', email: 'bob@johnson.com' },
714
+ { id: 5, name: 'Charlie Brown', email: 'charlie@brown.com' }
715
+ ]}
716
+ onClick={(index) => {
717
+ console.log(index);
718
+ }}
719
+ />
720
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"brand"},"Brand"),t.createElement(te,{className:"mb-3",title:""},t.createElement(as,{url:"https://it.wikipedia.org/wiki/Sicurezza_informatica",logo:mn,label:"Cyber"}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},` <Brand url='https://it.wikipedia.org/wiki/Sicurezza_informatica' logo={PLACEHOLDER_BRAND} label='Cyber' />
721
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"breadcrumb"},"Breadcrumbs"),t.createElement(te,{className:"mb-3",title:""},t.createElement(Yn,{className:"mb-3",pre:t.createElement("i",{className:"bi bi-house-door-fill"})}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},` <Breadcrumbs className="mb-3" pre={<i className="bi bi-house-door-fill" />} />
722
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"carousel"},"Carousel"),t.createElement(te,{className:"mb-3",title:""},t.createElement(Un,{showIndicators:!0,showControls:!0,showCaption:!0,layoutDark:!0,autoPlay:{interval:3e3,pause:"hover",wrap:!0},startSlide:0},[t.createElement("img",{key:"1",src:Ce,alt:"First slide",className:"d-block w-50 m-auto"}),t.createElement("img",{key:"2",src:Ce,alt:"Second slide",className:"d-block w-50 m-auto"}),t.createElement("img",{key:"3",src:Ce,alt:"Third slide",className:"d-block w-50 m-auto"})]))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},` <Carousel
723
+ showIndicators={true}
724
+ showControls={true}
725
+ showCaption={true}
726
+ layoutDark={true}
727
+ autoPlay={{ interval: 3000, pause: "hover", wrap: true }}
728
+ startSlide={0}
729
+ >
730
+ {[
731
+ <img key="1" src={PLACEHOLDER_IMAGE} alt="First slide" className="d-block w-50 m-auto" />,
732
+ <img key="2" src={PLACEHOLDER_IMAGE} alt="Second slide" className="d-block w-50 m-auto" />,
733
+ <img key="3" src={PLACEHOLDER_IMAGE} alt="Third slide" className="d-block w-50 m-auto" />
734
+ ]}
735
+ </Carousel>
736
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"dropdown"},"Dropdown"),t.createElement(te,{className:"mb-3",title:""},t.createElement(ma,{toggleButton:{icon:"list",text:"Dropdown with Links"},header:"Account",footer:t.createElement("a",{href:"/logout",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-sm text-destructive hover:bg-accent"},"Logout")},t.createElement(Ae,{url:"/profile"},"My Profile"),t.createElement(Ae,{url:"/settings"},"Settings"),t.createElement(Ae,{onClick:()=>alert("Clicked Help")},"Help")))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},` <Dropdown
737
+ toggleButton={{
738
+ icon: "list",
739
+ text: "Dropdown with Links"
740
+ }}
741
+ header="Account"
742
+ footer={<a href="/logout" className="flex w-full items-center rounded-sm px-2 py-1.5 text-sm text-destructive hover:bg-accent">Logout</a>}
743
+ >
744
+ <DropdownItem url="/profile">My Profile</DropdownItem>
745
+ <DropdownItem url="/settings">Settings</DropdownItem>
746
+ <DropdownItem onClick={() => alert("Clicked Help")}>Help</DropdownItem>
747
+ </Dropdown>
748
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"notification"},"Notifications"),t.createElement(te,{className:"mb-3",title:""},t.createElement(ns,{badge:t.createElement("span",{className:"badge "},"3")},[{title:"New comment on your post",url:"/comments/1",time:"2m ago",icon:"message"},{title:"New follower: Jane Smith",url:"/profile/jane-smith",time:"10m ago",icon:"user"},{title:"Server downtime alert",url:"/status",time:"1h ago",icon:"alert-triangle"}]))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},` <Notifications badge={<span className="badge ">3</span>}>
749
+ {[
750
+ {
751
+ title: "New comment on your post",
752
+ url: "/comments/1",
753
+ time: "2m ago",
754
+ icon: "message"
755
+ },
756
+ {
757
+ title: "New follower: Jane Smith",
758
+ url: "/profile/jane-smith",
759
+ time: "10m ago",
760
+ icon: "user"
761
+ },
762
+ {
763
+ title: "Server downtime alert",
764
+ url: "/status",
765
+ time: "1h ago",
766
+ icon: "alert-triangle"
767
+ }
768
+ ]}
769
+ </Notifications>
770
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"search"},"Search"),t.createElement(te,{className:"mb-3",title:""},t.createElement(rs,null))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},` <Search />
771
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"form"},"Form"),t.createElement(te,{className:"mb-3",title:"Basic Form with Manual Fields"},t.createElement("p",{className:"text-muted"},"A simple form manually composed using standard field components. Suitable when you need full control over layout and fields."),t.createElement(Te,{dataStoragePath:"/demo/form/manual"},t.createElement(De,{name:"name",label:"Name"}),t.createElement(oa,{name:"email",label:"Email"}),t.createElement(be,{name:"notes",label:"Notes"}))),t.createElement(te,{className:"mb-3",title:"Dynamic Form via Form using model"},t.createElement("p",{className:"text-muted"},"Automatically generates form fields from a model object. Ideal for dynamic UIs, low-code interfaces, or admin panels."),"Work in progress...")),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Card className="mb-3" title="Basic Form with Manual Fields">
772
+
773
+ <Form dataStoragePath="/demo/form/manual">
774
+ <String name="name" label="Name" />
775
+ <Email name="email" label="Email" />
776
+ <TextArea name="notes" label="Notes" />
777
+ </Form>
778
+
779
+ </Card>
780
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"grid"},"Grid"),t.createElement(te,{className:"mb-3",title:""},t.createElement(za,{records:[{id:1,name:"Alice Johnson",email:"alice.johnson@example.com",role:"Admin",status:"Active"},{id:2,name:"David Miller",email:"david.miller@example.com",role:"Editor",status:"Inactive"},{id:3,name:"Emma Wilson",email:"emma.wilson@example.com",role:"Viewer",status:"Active"},{id:4,name:"James Taylor",email:"james.taylor@example.com",role:"Admin",status:"Suspended"}],columns:[{key:"id",label:"ID"},{key:"name",label:"Name"},{key:"email",label:"Email"},{key:"role",label:"Role"},{key:"status",label:"Status"}],recordId:"id",onClickRow:()=>{}}))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Grid
781
+ records={[
782
+ {
783
+ id: 1,
784
+ name: "Alice Johnson",
785
+ email: "alice.johnson@example.com",
786
+ role: "Admin",
787
+ status: "Active"
788
+ },
789
+ {
790
+ id: 2,
791
+ name: "David Miller",
792
+ email: "david.miller@example.com",
793
+ role: "Editor",
794
+ status: "Inactive"
795
+ },
796
+ {
797
+ id: 3,
798
+ name: "Emma Wilson",
799
+ email: "emma.wilson@example.com",
800
+ role: "Viewer",
801
+ status: "Active"
802
+ },
803
+ {
804
+ id: 4,
805
+ name: "James Taylor",
806
+ email: "james.taylor@example.com",
807
+ role: "Admin",
808
+ status: "Suspended"
809
+ }
810
+ ]}
811
+ columns={[
812
+ { key: 'id', label: 'ID' },
813
+ { key: 'name', label: 'Name' },
814
+ { key: 'email', label: 'Email' },
815
+ { key: 'role', label: 'Role' },
816
+ { key: 'status', label: 'Status' }
817
+ ]}
818
+ recordId="id"
819
+ onClickRow={() => { }}
820
+ />
821
+ `)),t.createElement(F,{lg:5,className:"mb-5"},t.createElement("h2",{id:"pagination"},"Pagination"),t.createElement(te,{className:"mb-3",title:"Basic Form with Manual Fields"},t.createElement(dr,{recordSet:s,limit:10},l=>l.map((i,c)=>t.createElement("p",{key:c},i.name))))),t.createElement(F,{lg:7,className:"mb-5"},t.createElement(le,{language:"jsx",className:"h-100 d-flex flex-grow-1 m-0"},`<Pagination recordSet={recordSet} limit={10}>
822
+ {(pageRecords: any) => pageRecords.map((component: any, index: number) => (
823
+ <p key={index}>{component.name}</p>
824
+ ))}
825
+ </Pagination>
826
+ `)),t.createElement(Rn,{context:"header"})))),t.createElement(F,{xl:3},t.createElement("nav",{id:"sidebar-bootstrap",className:"navbar d-none d-xl-block",style:{height:"80vh",overflowY:"auto"}},t.createElement("ul",{className:"nav nav-pills flex-column"},t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#input",className:"nav-link","data-toggle":"scroll-to"},"Input")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#selectors",className:"nav-link","data-toggle":"scroll-to"},"Selectors")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#upload",className:"nav-link","data-toggle":"scroll-to"},"Upload")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#alert",className:"nav-link","data-toggle":"scroll-to"},"Alert")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#badge",className:"nav-link","data-toggle":"scroll-to"},"Badge")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#buttons",className:"nav-link","data-toggle":"scroll-to"},"Buttons")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#card",className:"nav-link","data-toggle":"scroll-to"},"Card")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#gallery",className:"nav-link","data-toggle":"scroll-to"},"Gallery")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#gridSystem",className:"nav-link","data-toggle":"scroll-to"},"Grid System")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#images",className:"nav-link","data-toggle":"scroll-to"},"Images")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#loader",className:"nav-link","data-toggle":"scroll-to"},"Loader")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#modal",className:"nav-link","data-toggle":"scroll-to"},"Modal")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#percentage",className:"nav-link","data-toggle":"scroll-to"},"Percentage")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#repeat",className:"nav-link","data-toggle":"scroll-to"},"Repeat")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#tab",className:"nav-link","data-toggle":"scroll-to"},"Tab")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#table",className:"nav-link","data-toggle":"scroll-to"},"Table")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#brand",className:"nav-link","data-toggle":"scroll-to"},"Brand")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#breadcrumb",className:"nav-link","data-toggle":"scroll-to"},"Breadcrumb")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#carousel",className:"nav-link","data-toggle":"scroll-to"},"Carousel")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#dropdown",className:"nav-link","data-toggle":"scroll-to"},"Dropdown")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#notification",className:"nav-link","data-toggle":"scroll-to"},"Notifications")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#search",className:"nav-link","data-toggle":"scroll-to"},"Search")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#form",className:"nav-link","data-toggle":"scroll-to"},"Form")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#grid",className:"nav-link","data-toggle":"scroll-to"},"Grid")),t.createElement("li",{className:"nav-item"},t.createElement("a",{href:"#pagination",className:"nav-link","data-toggle":"scroll-to"},"Pagination")))))))))}const nt={title:"",paragraphs:[]},Xr={title:"",outline:[],sections:{intro:nt,sections:[],conclusion:nt},description:""};function qd({data:e={lang:"Italiano",voice:"Informative",style:"Descriptive",limit:"3"},promptTopic:a="GENERATE_BLOG_POST_TITLES",onChange:n=()=>{},value:r=void 0}){const o=uc(),s=pc(),l=fc(),[i,c]=t.useState(0),[m,d]=t.useState(Xr),[p,u]=t.useState({lang:e.lang,voice:e.voice,style:e.style,limit:e.limit}),[f,x]=t.useState(!1);t.useEffect(()=>{m.title&&x(!0)},[m.title]);const y=({name:C,value:b})=>{u(T=>({...T,[C]:b}))},E=C=>b=>{d(T=>({...T,[C]:b})),n(m)},h=(C,b,T)=>{d(P=>({...P,sections:{...P.sections,[C]:{...P.sections[C],[b]:b==="paragraphs"?T.split(`
827
+ `):T}}}))},g=(C,b,T)=>{d(P=>({...P,sections:{...P.sections,sections:P.sections.sections.map((M,k)=>k===C?{...M,[b]:b==="paragraphs"?T.split(`
828
+ `):T}:M)}}))},S=(C="all")=>{if(C==="all"){x(!1),c(b=>b+1),d(Xr);return}d(b=>{switch(C){case"fromTitle":return{...b,title:"",outline:[],sections:{intro:nt,sections:[],conclusion:nt},description:""};case"fromOutline":return{...b,outline:[],sections:{intro:nt,sections:[],conclusion:nt},description:""};case"fromSections":return{...b,sections:{intro:nt,sections:[],conclusion:nt},description:""};case"fromDescription":return{...b,description:""};default:return b}})},v=C=>C.map(b=>`Section: ${b.headline}
829
+ Topics to cover:
830
+ ${b.subheadings.map(T=>`- ${T}`).join(`
831
+ `)}`).join(`
832
+
833
+ `);return t.createElement(t.Fragment,null,t.createElement("h1",null,"Create Blog Post"),t.createElement(Te,null,t.createElement("div",{className:"flex flex-col gap-2 mb-3"},t.createElement(Ne,{name:"lang",pre:"Language",value:p.lang,options:o,onChange:y,disabled:f}),t.createElement(Ne,{name:"voice",pre:"Voice",value:p.voice,options:s,onChange:y,disabled:f}),t.createElement(Ne,{name:"style",pre:"Style",value:p.style,options:l,onChange:y,disabled:f}),t.createElement(Mt,{name:"limit",pre:"Limit",value:p.limit,onChange:y,disabled:f})),m.title&&t.createElement("div",{className:"flex justify-end my-3"},t.createElement(fe,{label:"refresh",onClick:()=>S("all")})),t.createElement(Kt,{name:"title",key:i+"-title",promptTopic:ya(a),configVariables:p,onChange:E("title"),onReset:()=>S("fromTitle")},t.createElement(be,{name:"title",label:"Title",value:m.title,rows:2})),m.title&&t.createElement(Kt,{key:i+"-outline",name:"outline",initialValue:m.title||"",promptTopic:ya("GENERATE_BLOG_POST_OUTLINE"),configVariables:p,onChange:E("outline"),viewMode:"carousel",onReset:()=>S("fromOutline")},t.createElement(be,{name:"postOutline",label:"Outline",value:m.outline.map(C=>C.headline+`
834
+ `+C.subheadings.join(`
835
+ `)).join(`
836
+ `),rows:10})),m.outline.length>0&&t.createElement(Kt,{key:i+"-outlines",name:"sections",initialValue:m.outline.length>0?v(m.outline):"",promptTopic:ya("GENERATE_COMPLETE_BLOG_POST_FROM_OUTLINE"),configVariables:p,onChange:E("sections"),onReset:()=>S("fromSections"),viewMode:"carousel"},t.createElement(ut,null,[{type:"intro",label:"Intro",section:m.sections.intro},...m.sections.sections.map((C,b)=>({type:"section",label:`Section ${b+1}`,section:C,index:b})),{type:"conclusion",label:"Conclusion",section:m.sections.conclusion}].map(C=>t.createElement(xe,{key:C.label,label:C.label},t.createElement(be,{name:`post${C.label}Title`,label:`${C.label} Title`,value:C.section.title,onChange:({value:b})=>C.type==="section"?g(C.index,"title",b):h(C.type,"title",b),rows:2}),t.createElement(be,{name:`post${C.label}`,label:C.label,value:C.section.paragraphs.join(`
837
+ `),onChange:({value:b})=>C.type==="section"?g(C.index,"paragraphs",b):h(C.type,"paragraphs",b),rows:5}))))),m.sections.intro.title&&t.createElement(Kt,{key:i+"-desc",name:"description",initialValue:m.title||"",promptTopic:ya("GENERATE_BLOG_POST_DESCRIPTIONS"),configVariables:p,onChange:E("description"),onReset:()=>S("fromDescription"),autoStart:!0},t.createElement(be,{name:"description",label:"Description",value:m.description,rows:3}))))}function Vd(){const[e,a]=t.useState([]),n=[{key:"topic",label:"topic"},{key:"title",label:"Titolo"},{key:"description",label:"Descrizione"},{key:"sections",label:"N Sezioni"}];return t.createElement(t.Fragment,null,t.createElement("h1",null,"Blog"),t.createElement(za,{records:e,recordId:"title",columns:n,form:t.createElement(qd,{data:{lang:"Italiano",voice:"Informative",style:"Descriptive",limit:"3"}})}))}exports.AI=Ee;exports.ActionButton=fe;exports.Alert=Ue;exports.App=md;exports.AssistantAI=Kt;exports.AuthButton=Qo;exports.AuthProvider=Ko;exports.Autocomplete=ar;exports.BUILT_IN_THEMES=Qe;exports.BUILT_IN_THEME_IDS=ai;exports.BackLink=Yo;exports.Badge=je;exports.BadgeOverlay=ca;exports.Brand=as;exports.Breadcrumbs=Yn;exports.Card=te;exports.Carousel=Un;exports.Checkbox=sa;exports.Checklist=nr;exports.Code=le;exports.Col=F;exports.Color=Kn;exports.Component=Lc;exports.ComponentBlock=Gs;exports.Container=Sa;exports.CropImage=Is;exports.DEFAULT_DOCUMENT_HEAD=bn;exports.DEFAULT_HEAD_APP_NAME=hn;exports.DEFAULT_LANGUAGE_HEAD=yn;exports.DEFAULT_ORDER=us;exports.DataProvider=ts;exports.Date=Wn;exports.DateTime=Vn;exports.DropBoxConnectButton=Rd;exports.DropboxAuthProvider=cl;exports.Dropdown=ma;exports.DropdownButton=go;exports.DropdownDivider=dn;exports.DropdownHeader=Ei;exports.DropdownItem=Ae;exports.DropdownMenu=vi;exports.Email=oa;exports.EmailProvider=il;exports.FileNameEditor=sr;exports.FirebaseDataProvider=zn;exports.FirebaseStorageProvider=hr;exports.Form=Te;exports.FormTemplate=$m;exports.FormTemplate2=jm;exports.Gallery=ur;exports.GmailEmailProvider=dl;exports.GoSite=Uo;exports.GoogleAuthProvider=gr;exports.Grid=za;exports.GridArray=nl;exports.GridCore=pr;exports.GridDB=Js;exports.GridGalleryView=al;exports.GridTableView=Zs;exports.Head=Pm;exports.HeadProvider=tl;exports.Icon=Q;exports.IconProvider=mo;exports.Image=na;exports.ImageAvatar=qo;exports.ImageEditor=lm;exports.ImageUrl=As;exports.Input=Ge;exports.Label=Re;exports.LayoutBuilder=qc;exports.ListGroup=la;exports.Loader=Ba;exports.LoadingButton=He;exports.LucideIconProvider=Pn;exports.MarkdownReader=Fm;exports.Menu=Rn;exports.MockDataProvider=fr;exports.Modal=pa;exports.ModalOk=zi;exports.ModalYesNo=Ui;exports.Month=Xn;exports.NORMALIZE_MAP=Er;exports.Notifications=ns;exports.Number=Mt;exports.Order=Dt;exports.PageBlog=Vd;exports.PageHelper=Wd;exports.PageUsers=rl;exports.Password=Hn;exports.Percentage=Fe;exports.PhosphorIconProvider=lo;exports.Prompt=$s;exports.PromptMode=Os;exports.Range=Ga;exports.ReferSite=zo;exports.Repeat=Ws;exports.Row=$e;exports.Sanitizer=Ud;exports.Search=rs;exports.Select=Ne;exports.StorageProvider=sl;exports.String=De;exports.SupabaseDataProvider=ul;exports.SupabaseStorageProvider=pl;exports.Switch=Et;exports.Tab=ut;exports.TabDynamic=St;exports.TabItem=xe;exports.TabLayouts=ir;exports.Table=Ya;exports.TextArea=be;exports.Time=qn;exports.UploadCSV=Vc;exports.UploadDocument=Pa;exports.UploadImage=Jt;exports.Url=ds;exports.Week=Jn;exports.Wrapper=z;exports.arrayUnique=Fa;exports.arraysEqual=_n;exports.base64Encode=Oi;exports.base64ToBlob=So;exports.base64ToUrl=To;exports.buttonBaseClass=$a;exports.buttonDangerClass=Do;exports.buttonDarkClass=_o;exports.buttonInfoClass=Mo;exports.buttonLightClass=Oo;exports.buttonLinkClass=Bo;exports.buttonOutlineDangerClass=$o;exports.buttonOutlinePrimaryClass=Lo;exports.buttonOutlineSecondaryClass=Fo;exports.buttonOutlineSuccessClass=jo;exports.buttonPrimaryClass=jn;exports.buttonSecondaryClass=Io;exports.buttonSuccessClass=Po;exports.buttonWarningClass=Ro;exports.checkConditions=Di;exports.cleanRecord=aa;exports.cn=R;exports.converter=we;exports.copyToClipboard=On;exports.crc32=Pi;exports.createMotionTransition=po;exports.db=ra;exports.decodeJWT=Mn;exports.dirname=Si;exports.dropBox=El;exports.eventClosest=Ti;exports.fetchJson=Fn;exports.fetchRest=vt;exports.fetchWithRetry=$n;exports.generateUniqueId=wo;exports.getAIProviderConfigurationState=Nc;exports.getAccessToken=ja;exports.getFileUrl=ht;exports.getGlobalVars=gt;exports.getGoogleTrendsData=hl;exports.getGoogleTrendsRelated=bd;exports.getKeywordIdeas=gl;exports.getProviderConfigurationState=Vo;exports.getRecordValue=ta;exports.googleGetAccessToken=br;exports.intersectObjects=Mi;exports.isBadgeDescriptor=Dn;exports.isEmpty=ua;exports.isInteractiveElement=Ln;exports.loadScripts=xo;exports.log=cs;exports.normalizeBadgeProps=so;exports.normalizeKey=yt;exports.normalizePath=Ta;exports.normalizeVisualChars=wl;exports.path=Tt;exports.proxy=vo;exports.removeGlobalVars=yo;exports.render2Base64=Ao;exports.replacePlaceholders=Co;exports.replaceVariables=un;exports.resolveMotionEffect=fo;exports.runPrompt=js;exports.safeClone=No;exports.sanitizeKey=ko;exports.scrape=$d;exports.sendEmail=ml;exports.seo=jd;exports.setGlobalVars=La;exports.sleep=da;exports.smartTypeCast=Ia;exports.storage=Zm;exports.substrCount=Ii;exports.trimPath=Ai;exports.trimSlash=ea;exports.ucfirst=Ri;exports.useAccessToken=Zo;exports.useAssetsHead=Tm;exports.useAuthProvider=Wo;exports.useDataProvider=ot;exports.useDocumentHead=Sm;exports.useDropBoxConnect=yl;exports.useEmailProvider=Xm;exports.useEnterMotion=_a;exports.useGlobalVars=bo;exports.useHead=mr;exports.useHeadLinks=Nm;exports.useIconController=hi;exports.useIconProvider=uo;exports.useImage=Kd;exports.useLanguageHead=Am;exports.useMenu=fl;exports.useMotionEffect=Ma;exports.useMotionState=bt;exports.usePaginationHead=km;exports.usePressMotion=Oa;exports.usePwaHead=Im;exports.useSchemaOrgHead=Dm;exports.useSocialHead=xm;exports.useStorageProvider=Km;exports.useTheme=J;exports.useThemeController=ii;
838
+ //# sourceMappingURL=index.js.map