@llmnative/react 0.1.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +387 -364
  2. package/bin/cli.js +117 -98
  3. package/dist/index.css +1 -1
  4. package/dist/index.js +21 -823
  5. package/dist/index.mjs +14246 -9296
  6. package/dist/style.css +1 -0
  7. package/dist/types/src/App.d.ts +72 -14
  8. package/dist/types/src/Config.d.ts +28 -5
  9. package/dist/types/src/Global.d.ts +2 -2
  10. package/dist/types/src/I18n.d.ts +185 -0
  11. package/dist/types/src/Theme.d.ts +153 -81
  12. package/dist/types/src/auth.d.ts +13 -1
  13. package/dist/types/src/components/Component.d.ts +13 -27
  14. package/dist/types/src/components/ErrorBoundary.d.ts +30 -0
  15. package/dist/types/src/components/blocks/Brand.d.ts +4 -4
  16. package/dist/types/src/components/blocks/Breadcrumbs.d.ts +50 -4
  17. package/dist/types/src/components/blocks/Carousel.d.ts +5 -5
  18. package/dist/types/src/components/blocks/Dropdown.d.ts +26 -20
  19. package/dist/types/src/components/blocks/ListCard.d.ts +31 -0
  20. package/dist/types/src/components/blocks/Menu.d.ts +13 -16
  21. package/dist/types/src/components/blocks/Notifications.d.ts +8 -3
  22. package/dist/types/src/components/blocks/ProviderSwitcher.d.ts +63 -0
  23. package/dist/types/src/components/blocks/Search.d.ts +2 -2
  24. package/dist/types/src/components/blocks/SideNav.d.ts +45 -0
  25. package/dist/types/src/components/blocks/ThemeSwitcher.d.ts +24 -0
  26. package/dist/types/src/components/blocks/Toolbar.d.ts +19 -0
  27. package/dist/types/src/components/index.d.ts +27 -6
  28. package/dist/types/src/components/types.d.ts +10 -3
  29. package/dist/types/src/components/ui/Alert.d.ts +16 -4
  30. package/dist/types/src/components/ui/Badge.d.ts +6 -5
  31. package/dist/types/src/components/ui/Buttons.d.ts +13 -12
  32. package/dist/types/src/components/ui/Card.d.ts +8 -7
  33. package/dist/types/src/components/ui/Code.d.ts +1 -1
  34. package/dist/types/src/components/ui/Gallery.d.ts +13 -14
  35. package/dist/types/src/components/ui/GridSystem.d.ts +1 -1
  36. package/dist/types/src/components/ui/Icon.d.ts +3 -1
  37. package/dist/types/src/components/ui/Image.d.ts +1 -1
  38. package/dist/types/src/components/ui/ImageAvatar.d.ts +1 -1
  39. package/dist/types/src/components/ui/Loader.d.ts +1 -1
  40. package/dist/types/src/components/ui/LocaleSwitcher.d.ts +14 -0
  41. package/dist/types/src/components/ui/Modal.d.ts +42 -15
  42. package/dist/types/src/components/ui/Pagination.d.ts +14 -3
  43. package/dist/types/src/components/ui/Percentage.d.ts +5 -5
  44. package/dist/types/src/components/ui/Repeat.d.ts +15 -6
  45. package/dist/types/src/components/ui/Tab.d.ts +29 -2
  46. package/dist/types/src/components/ui/TabDynamic.d.ts +4 -3
  47. package/dist/types/src/components/ui/Table.d.ts +15 -14
  48. package/dist/types/src/components/ui/fields/CodeEditor.d.ts +43 -0
  49. package/dist/types/src/components/ui/fields/ContextMenu.d.ts +38 -0
  50. package/dist/types/src/components/ui/fields/Crop.d.ts +4 -2
  51. package/dist/types/src/components/ui/fields/ImageField.d.ts +31 -0
  52. package/dist/types/src/components/ui/fields/Input.d.ts +43 -14
  53. package/dist/types/src/components/ui/fields/Prompt.d.ts +2 -31
  54. package/dist/types/src/components/ui/fields/RichText.d.ts +86 -0
  55. package/dist/types/src/components/ui/fields/Select.d.ts +13 -10
  56. package/dist/types/src/components/ui/fields/Upload.d.ts +37 -2
  57. package/dist/types/src/components/ui/fields/UploadCSV.d.ts +2 -0
  58. package/dist/types/src/components/ui/useRecordSelection.d.ts +1 -2
  59. package/dist/types/src/components/widgets/Form.d.ts +80 -43
  60. package/dist/types/src/components/widgets/ImageEditor.d.ts +4 -5
  61. package/dist/types/src/components/widgets/MarkdownReader.d.ts +4 -4
  62. package/dist/types/src/components/widgets/Prompt.d.ts +71 -23
  63. package/dist/types/src/components/widgets/TabDynamic.d.ts +4 -3
  64. package/dist/types/src/components/widgets/form-controller.d.ts +42 -0
  65. package/dist/types/src/components/widgets/grid-core/GridCore.d.ts +1 -1
  66. package/dist/types/src/components/widgets/grid-core/GridDB.d.ts +1 -1
  67. package/dist/types/src/components/widgets/grid-core/GridGalleryView.d.ts +1 -1
  68. package/dist/types/src/components/widgets/grid-core/GridTableView.d.ts +1 -1
  69. package/dist/types/src/components/widgets/grid-core/types.d.ts +77 -27
  70. package/dist/types/src/components/widgets/grid-core/useGridActions.d.ts +4 -8
  71. package/dist/types/src/components/widgets/grid-core/useGridColumns.d.ts +2 -2
  72. package/dist/types/src/components/widgets/grid-core/useGridDBRecords.d.ts +1 -2
  73. package/dist/types/src/components/widgets/grid-core/useGridPreparedRecords.d.ts +2 -2
  74. package/dist/types/src/components/widgets/grid-core/useGridSelection.d.ts +4 -5
  75. package/dist/types/src/components/widgets/grid-core/utils.d.ts +11 -3
  76. package/dist/types/src/conf/Prompt.d.ts +1 -1
  77. package/dist/types/src/conf/i18n/ar.d.ts +2 -0
  78. package/dist/types/src/conf/i18n/de.d.ts +2 -0
  79. package/dist/types/src/conf/i18n/en.d.ts +2 -0
  80. package/dist/types/src/conf/i18n/index.d.ts +6 -0
  81. package/dist/types/src/conf/i18n/it.d.ts +2 -0
  82. package/dist/types/src/conf/i18n/ru.d.ts +2 -0
  83. package/dist/types/src/conf/i18n/zh.d.ts +2 -0
  84. package/dist/types/src/constant.d.ts +1 -1
  85. package/dist/types/src/index.d.ts +38 -13
  86. package/dist/types/src/libs/converter.d.ts +4 -4
  87. package/dist/types/src/libs/editorHeight.d.ts +12 -0
  88. package/dist/types/src/libs/fetch.d.ts +4 -4
  89. package/dist/types/src/libs/imageBuilder.d.ts +63 -14
  90. package/dist/types/src/libs/imageVariants.d.ts +35 -0
  91. package/dist/types/src/libs/index.d.ts +1 -4
  92. package/dist/types/src/libs/promptUtils.d.ts +24 -0
  93. package/dist/types/src/libs/sanitizer.d.ts +2 -2
  94. package/dist/types/src/libs/utils.d.ts +9 -10
  95. package/dist/types/src/pages/index.d.ts +0 -2
  96. package/dist/types/src/providers/ProviderConfiguration.d.ts +6 -0
  97. package/dist/types/src/providers/ProviderRegistryContext.d.ts +51 -0
  98. package/dist/types/src/providers/ProviderSession.d.ts +68 -0
  99. package/dist/types/src/providers/ai/AIProvider.d.ts +57 -0
  100. package/dist/types/src/providers/ai/AIProviderContext.d.ts +13 -0
  101. package/dist/types/src/providers/ai/anthropic.d.ts +2 -0
  102. package/dist/types/src/providers/ai/deepseek.d.ts +1 -0
  103. package/dist/types/src/providers/ai/gemini.d.ts +2 -0
  104. package/dist/types/src/providers/ai/glm.d.ts +1 -0
  105. package/dist/types/src/providers/ai/index.d.ts +9 -134
  106. package/dist/types/src/providers/ai/mistral.d.ts +1 -0
  107. package/dist/types/src/providers/ai/openai.d.ts +1 -0
  108. package/dist/types/src/providers/ai/openaiCompatible.d.ts +17 -0
  109. package/dist/types/src/providers/ai/opencode.d.ts +2 -0
  110. package/dist/types/src/providers/ai/openrouter.d.ts +1 -0
  111. package/dist/types/src/providers/ai/shared.d.ts +46 -0
  112. package/dist/types/src/providers/api/ApiProvider.d.ts +43 -0
  113. package/dist/types/src/providers/api/direct.d.ts +14 -0
  114. package/dist/types/src/providers/api/firebase.d.ts +14 -0
  115. package/dist/types/src/providers/api/mock.d.ts +7 -0
  116. package/dist/types/src/providers/api/supabase.d.ts +14 -0
  117. package/dist/types/src/providers/auth/AuthProvider.d.ts +2 -2
  118. package/dist/types/src/providers/auth/firebase/FirebaseAuthProvider.d.ts +26 -0
  119. package/dist/types/src/providers/auth/google/GoogleAuth.d.ts +2 -2
  120. package/dist/types/src/providers/auth/supabase/SupabaseAuthProvider.d.ts +48 -0
  121. package/dist/types/src/providers/credentials/CredentialsProvider.d.ts +3 -0
  122. package/dist/types/src/providers/credentials/CredentialsProviderContext.d.ts +12 -0
  123. package/dist/types/src/providers/credentials/google/GoogleServiceAccountProvider.d.ts +8 -0
  124. package/dist/types/src/providers/data/DataProvider.d.ts +27 -1
  125. package/dist/types/src/providers/data/firebase.d.ts +5 -4
  126. package/dist/types/src/providers/data/firestore.d.ts +38 -0
  127. package/dist/types/src/providers/data/mock.d.ts +8 -1
  128. package/dist/types/src/providers/data/supabase.d.ts +36 -10
  129. package/dist/types/src/providers/firebase-init.d.ts +15 -4
  130. package/dist/types/src/providers/icon/PhosphorIconProvider.d.ts +1 -1
  131. package/dist/types/src/providers/manifest.d.ts +20 -14
  132. package/dist/types/src/providers/proxy/index.d.ts +7 -0
  133. package/dist/types/src/providers/proxy/vite.d.ts +3 -0
  134. package/dist/types/src/providers/scrape/index.d.ts +2 -1
  135. package/dist/types/src/providers/seo/google/keyword.d.ts +6 -1
  136. package/dist/types/src/providers/storage/StorageProvider.d.ts +155 -4
  137. package/dist/types/src/providers/storage/dropbox.d.ts +3 -3
  138. package/dist/types/src/providers/storage/firebase.d.ts +38 -7
  139. package/dist/types/src/providers/storage/supabase.d.ts +47 -7
  140. package/dist/types/src/providers/supabase-init.d.ts +35 -0
  141. package/dist/types/src/types/FormFields.d.ts +4 -2
  142. package/dist/types/src/types/FormSchema.d.ts +29 -0
  143. package/dist/types/themes/tokyo-night-light.d.ts +3 -0
  144. package/dist/types/themes/tokyo-night.d.ts +3 -0
  145. package/dist/types/themes/vscode-dark-plus.d.ts +3 -0
  146. package/dist/types/themes/vscode-light-plus.d.ts +3 -0
  147. package/dist/vite.js +1 -0
  148. package/dist/vite.mjs +54 -0
  149. package/package.json +40 -9
  150. package/scripts/cli/proxy-templates/cloudflare.ts +34 -0
  151. package/scripts/cli/proxy-templates/express.ts +77 -0
  152. package/scripts/cli/proxy-templates/nextjs-app.ts +42 -0
  153. package/scripts/cli/proxy-templates/nextjs-pages.ts +41 -0
  154. package/scripts/cli/proxy-templates/scaffold.json +33 -0
  155. package/scripts/cli/setup-devtools.js +155 -85
  156. package/scripts/cli/setup-project.js +618 -484
  157. package/themes/cyber.ts +469 -405
  158. package/themes/default.ts +469 -405
  159. package/themes/flat.ts +469 -405
  160. package/themes/tokyo-night-light.ts +38 -0
  161. package/themes/tokyo-night.ts +38 -0
  162. package/themes/vscode-dark-plus.ts +29 -0
  163. package/themes/vscode-light-plus.ts +29 -0
  164. package/dist/index.js.map +0 -1
  165. package/dist/index.mjs.map +0 -1
  166. package/dist/types/src/components/FormEnhancer.d.ts +0 -26
  167. package/dist/types/src/components/Template.d.ts +0 -18
  168. package/dist/types/src/components/ui/fields/AssistantAI.d.ts +0 -23
  169. package/dist/types/src/components/ui/fields/Command.d.ts +0 -15
  170. package/dist/types/src/components/ui/fields/ImageUrl.d.ts +0 -7
  171. package/dist/types/src/libs/cache.d.ts +0 -9
  172. package/dist/types/src/libs/database.d.ts +0 -3
  173. package/dist/types/src/libs/log.d.ts +0 -2
  174. package/dist/types/src/libs/seo.d.ts +0 -8
  175. package/dist/types/src/libs/storage.d.ts +0 -2
  176. package/dist/types/src/pages/Blog.d.ts +0 -3
  177. package/dist/types/src/pages/BlogPost.d.ts +0 -16
  178. package/dist/types/src/pages/Helper.d.ts +0 -8
  179. package/dist/types/src/providers/auth/google/apis/auth.d.ts +0 -4
  180. package/dist/types/src/types/Block.d.ts +0 -4
  181. package/dist/types/src/types/Section.d.ts +0 -4
package/dist/index.js CHANGED
@@ -1,198 +1,25 @@
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)}
1
+ "use strict";var Oc=Object.create;var Po=Object.defineProperty;var $c=Object.getOwnPropertyDescriptor;var Lc=Object.getOwnPropertyNames;var jc=Object.getPrototypeOf,Bc=Object.prototype.hasOwnProperty;var zc=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Lc(t))!Bc.call(e,o)&&o!==n&&Po(e,o,{get:()=>t[o],enumerable:!(a=$c(t,o))||a.enumerable});return e};var ce=(e,t,n)=>(n=e!=null?Oc(jc(e)):{},zc(t||!e||!e.__esModule?Po(n,"default",{value:e,enumerable:!0}):n,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),Te=require("react-router-dom"),Vc=require("clsx"),Uc=require("tailwind-merge"),Pr=require("lucide-react"),Hc=require("@phosphor-icons/react"),er=require("react-dom"),Tr=require("firebase/app"),Ge=require("firebase/auth"),ve=require("firebase/database"),Ss=require("@supabase/supabase-js"),Fe=require("firebase/storage"),Kc=require("papaparse"),Gc=require("react-markdown"),Yc=require("remark-gfm"),Wc=require("rehype-slug"),qc=require("rehype-autolink-headings"),Jc=require("rehype-sanitize"),Ne=require("firebase/firestore");require("react-dom/server");function As(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Xc=As(Pr),Zc=As(Hc);function Qc(e){const t=new Date(typeof e=="number"||/^\d+$/.test(String(e))?Number(e):e);if(isNaN(t.getTime()))return{year:"",shortYear:"",month:"",day:"",hours:"",minutes:"",seconds:"",hour:"",minute:"",second:""};const n=a=>a.toString().padStart(2,"0");return{year:t.getFullYear().toString(),shortYear:t.getFullYear().toString().slice(-2),month:n(t.getMonth()+1),day:n(t.getDate()),hours:n(t.getHours()),minutes:n(t.getMinutes()),seconds:n(t.getSeconds()),hour:t.getHours().toString(),minute:t.getMinutes().toString(),second:t.getSeconds().toString()}}function ir(e,t){const{year:n,shortYear:a,month:o,day:s,hours:l,minutes:i,seconds:c,hour:d,minute:u,second:m}=Qc(e),f={YYYY:n,YY:a,MM:o,DD:s,hh:l,mm:i,ss:c,h:d,m:u,s:m};return t.replace(/YYYY|YY|MM|DD|hh|mm|ss|h|m|s/g,g=>f[g]||g)}function To(){const e=new Date;return new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e).map(a=>{switch(a.type){case"year":return"YYYY";case"month":return"MM";case"day":return"DD";default:return a.value}}).join("")}function Do(){const e=new Date;return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e).map(a=>{switch(a.type){case"hour":return"hh";case"minute":return"mm";case"second":return"ss";default:return a.value}}).join("")}const Ms=(e,t,n,a)=>{if(!e||!t)return"";const o=t.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),d=s[c];if(!Array.isArray(d))return"";const u=o.slice(l+1).join(".");if(!u)return n?(n.key&&(n.value[n.key]=d)||(n.value=d),""):d;const m=(n==null?void 0:n.value)??{};for(const f in d){const g=(()=>{const y=Ms(d[f],u);return(a==null?void 0:a(y))??y})();n&&(!n.hideEmpty||g!=="")&&(m[f]=n.key?{...m[f]??{},[n.key]:g}:g)}return n?"":m}s=s[i]}return s=(a==null?void 0:a(s))??s,n&&(!n.hideEmpty||s!=="")?(n.key&&(n.value[n.key]=s)||(n.value=s),""):s},Ue={parse:(e,t,n=void 0,a=void 0)=>{if(typeof t!="string")return t;const o=t.replace(/{([^}:]+)(?::([^}:]+))?(?::([^}:]+))?}/g,(s,l,i,c)=>{const[d,u]=(l||"").indexOf("(")===-1?["",l]:l.split("(",2),[m,f]=(i||"").indexOf(")")===-1?[i,""]:i.split(")",2),g=Ms(e,u,n,a);return!(Ue!=null&&Ue[m])||!g?g||"":d+Ue[m](g,c)+f});return td(ed(o))},toDate:(e,t=void 0)=>{const n=To();return t==="ISO"?ir(e,"YYYY-MM-DD"):ir(e,t||n)},toTime:(e,t=void 0)=>{const n=Do();return t==="ISO"?ir(e,"hh:mm:ss"):ir(e,t||n)},toDateTime:(e,t=void 0)=>{const n=To(),a=Do(),o=`${n} ${a}`;return t==="ISO"?ir(e,"YYYY-MM-DD hh:mm:ss"):ir(e,t||o)},toCamel:(e,t="",n=["-","_"," "])=>{const a=e.split("/"),o=a.pop()||"",s=n.map(c=>"\\"+c).join(""),l=new RegExp(`(?:[${s}]+|^)(.)`,"g"),i=o.toLowerCase().replace(l,(c,d)=>t+d.toUpperCase());return[...a,i].join("/")},toUpper:e=>e.toUpperCase(),toLower:e=>e.toLowerCase(),toSlug:e=>Pt(e),toNumberFormat:(e,t=navigator.language)=>new Intl.NumberFormat(t).format(Number(e)),splitLast:(e,t,n=void 0)=>{const a=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 t=="string"?[t]:Array.isArray(t)?t:[];for(const s of o){const l=a(s);if(l)return l}return[e,""]},splitFirst:(e,t,n=void 0)=>{const a=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 t=="string"?[t]:Array.isArray(t)?t:[];for(const s of o){const l=a(s);if(l)return l}return[e,""]},padLeft:(e,t,n=" ",a=void 0)=>a?e.replace(a,o=>o.padStart(t,n)):e.padStart(t,n),padRight:(e,t,n=" ",a=void 0)=>a?e.replace(a,o=>o.padEnd(t,n)):e.padEnd(t,n),toQueryString:(e,t="?",n=void 0)=>{const a=Object.keys(e);return(a.length>0?t:"")+a.map(o=>`${encodeURIComponent(o)}=${encodeURIComponent(n===void 0?e[o]:n)}`).join("&")},fillObject:(e,t=void 0)=>{const n={};for(const a in e)n[a]=t;return n},subStringCount:(e,t)=>t===""?0:e.split(t).length-1,truncate:(e,t=100)=>e.length>t?e.substring(0,t):e};function ed(e){return e.replace(/replace\(([^,]+),([^,]+),([^)]+)\)/gi,(t,n,a,o)=>n.replaceAll(a,o))}function td(e){return e.replace(/split\(([^,]+),([^,]+),([^)]+)\)/gi,(t,n,a,o=0)=>n.split(a)[o])}const Is=e=>{try{const t=e.split("."),n=atob(t[1]);return JSON.parse(n)}catch(t){console.error("Errore durante la decodifica del token:",t)}},ka=e=>{try{navigator.clipboard.writeText(e).then(()=>{console.log("Selettore HTML copiato negli appunti:",e)}).catch(t=>{console.error("Errore durante la copia del selettore HTML negli appunti:",t)})}catch(t){console.error("Clipboard API non supportata:",t)}},rd=e=>dn(e).replace(/\/$/,"").replace(/^\//,""),dn=e=>e?e.replaceAll(" ","-").replaceAll("'","-").replaceAll('"',"-").toLowerCase().replace(/[^a-z0-9\-/]+/g,"").replace(/-+/g,"-").replace(/\/+/g,"/"):"",Wr=e=>typeof e=="number"?String(e):typeof e=="boolean"?e?"true":"false":e?e.startsWith("/")?e.substring(1):e:"",Pt=e=>Wr(e).replaceAll("/","|").replaceAll(" ","-").replaceAll("'","-").replaceAll('"',"-").replaceAll(".","-").replaceAll("@","-").replaceAll("#","-").replaceAll("$","-").replaceAll("[","-").replaceAll("]","-").replaceAll("_","-").toLowerCase().replace(/[^a-z0-9\-|]+/g,"").replace(/^-+|-+$/g,"").replace(/-+/g,"-"),nd=e=>{if(!e)return"";e=e.replace(/\/$/,"");const t=e.split("/");return t.pop(),t.join("/")};async function qr(e){return new Promise(t=>setTimeout(t,e))}function ad(e=null){const t=Date.now().toString(36),n=e||Math.random().toString(36).substring(2);return`${t}-${n}`}function od(e,t){let n=e.target;if(n.tagName.toLowerCase()===t.toLowerCase())return n;for(;n.parentNode;){const a=n.parentNode;if(a.tagName.toLowerCase()===t.toLowerCase())return a;n=a}return null}const sd=(e,t)=>e.split(t).length-1,Ps=(e,t)=>e.replace(/\$(\d+)/g,(n,a)=>{const o=parseInt(a);return t[o]||""}).trim(),ld=(e,t,n)=>{for(const a of e){const o=dn(ra(a.key,t)),s=dn(Ps(ra(a.value,t),n));if((a.operator==="=="||a.operator==="=")&&o===s||a.operator==="!="&&o!==s||a.operator===">"&&o>s||a.operator==="<"&&o<s||a.operator===">="&&o>=s||a.operator==="<="&&o<=s||a.operator==="contains"&&o.includes(s)||a.operator==="not contains"&&!o.includes(s))return!0}return!1},id=e=>{const t=[];for(let a=0;a<256;a++){let o=a;for(let s=0;s<8;s++)o&1?o=3988292384^o>>>1:o=o>>>1;t[a]=o}let n=-1;for(let a=0;a<e.length;a++)n=n>>>8^t[(n^e.charCodeAt(a))&255];return(n^-1)>>>0},cd=e=>e?e.charAt(0).toUpperCase()+e.slice(1):"",Ts=e=>{if(!e.length)return;const t=document.createDocumentFragment();e.forEach(({src:n,clean:a,...o})=>{if(!n)return;const s=document.createElement("script");s.setAttribute("src",String(n)),Object.entries(o).forEach(([l,i])=>{s.setAttribute(l,String(i))}),a&&(s.onload=()=>document.body.removeChild(s)),t.appendChild(s)}),document.body.appendChild(t)},dd=(e,t)=>{const n={};for(const a in e)e.hasOwnProperty(a)&&a in t&&(n[a]=e[a]);return n},ra=(e,t)=>((e.match(/{[^}]*}/g)||[]).forEach(a=>{const o=a.slice(1,-1).split(":"),s=o[0],l=o[1],i=(l&&typeof Ue[l]=="function"?Ue[l](t[s]):t[s])||"";e=e.replaceAll(a,i)}),e),xn=(e,t)=>{if(t){const n=new Set;return e.filter(a=>{const o=a[t];return n.has(o)?!1:(n.add(o),!0)})}else return[...new Set(e)]},Jr=e=>e==null||e===""||e===!1||e==="0"||e===0||typeof e=="object"&&e!==null&&Object.keys(e).length===0;function Yt(e,t=new WeakMap){if(e==null||typeof e!="object"||r.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(t.has(e))return t.get(e);if(Array.isArray(e)){const o=[];return t.set(e,o),e.forEach((s,l)=>{o[l]=Yt(s,t)}),o}if(e instanceof Map){const o=new Map;return t.set(e,o),e.forEach((s,l)=>{o.set(Yt(l,t),Yt(s,t))}),o}if(e instanceof Set){const o=new Set;return t.set(e,o),e.forEach(s=>{o.add(Yt(s,t))}),o}const n=Object.getPrototypeOf(e);if(n&&n!==Object.prototype)return e;const a={};return t.set(e,a),Object.entries(e).forEach(([o,s])=>{a[o]=Yt(s,t)}),a}function St(e){if(typeof structuredClone!="function")return Yt(e);try{return structuredClone(e)}catch{return Yt(e)}}function ud(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 Sa(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Ds(e){return e.replace(/[^a-zA-Z0-9-_:.]/g,"_")}function Aa(e,t){const n=e.target,a=!!(n.closest("a")||n.closest("button")||n.closest("input")||n.closest("textarea")||n.closest("select"));return t?a&&!n.closest(t):a}const Rs=e=>{const t=new Uint8Array(e);let n="";for(let a=0;a<t.byteLength;a++)n+=String.fromCharCode(t[a]);return btoa(n)},_s=(e,t)=>{try{const n=e.includes(",")?e.split(",")[1]:e,a=atob(n),o=new Array(a.length);for(let l=0;l<a.length;l++)o[l]=a.charCodeAt(l);const s=new Uint8Array(o);return new Blob([s],{type:t})}catch(n){console.warn("Failed to create blob from base64:",n);return}},Fs=(e,t)=>{const n=_s(e,t);return n?URL.createObjectURL(n):void 0},zr=(e,t)=>{if(!(!e||!t))return t.split(".").reduce((n,a)=>{if(n!=null&&!(typeof n!="object"||Array.isArray(n)))return n[a]},e)},tr=e=>{const t={};if(!e)return t;if(e instanceof File)return{name:e.name,type:e.type,size:e.size,lastModified:e.lastModified};for(const[n,a]of Object.entries(e))n&&(Array.isArray(a)?t[n]=a.map(o=>typeof o=="object"?tr(o):o).filter(o=>o!==void 0):a&&typeof a=="object"?t[n]=tr(a):a!==void 0&&(t[n]=a));return t},un=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 md(e){const{body:t,headers:n}=e,a=(n==null?void 0:n["Content-Type"])||"";return(Array.isArray(t)||typeof t=="object"?["application/json","application/x-www-form-urlencoded","multipart/form-data"]:["text/plain","text/html"]).includes(a)?a:typeof t=="object"?"application/json":typeof t=="string"&&t.startsWith("<")?"text/html":"text/plain"}async function wn(e,t=null,n=globalThis.fetch){var o;const a={redirect:"follow",method:((o=t==null?void 0:t.method)==null?void 0:o.toUpperCase())||"GET",headers:(t==null?void 0:t.headers)||{}};if(t!=null&&t.body)if(["GET","HEAD"].includes(a.method))e+=(e.includes("?")?"&":"?")+new URLSearchParams(t.body);else switch(md(t)){case"application/json":a.body=JSON.stringify(t.body);break;case"application/x-www-form-urlencoded":a.body=new URLSearchParams(t.body);break;case"multipart/form-data":{const s=new FormData,l=t.body;for(const i in l)s.append(i,l[i]);a.body=s;break}case"text/html":case"text/plain":if(typeof t.body!="string")throw new Error("Fetch: Body must be a string for text/plain or text/html content types.");a.body=t.body;break;default:throw new Error("Fetch: Unsupported Content-Type")}return n(e,a).then(s=>{var c,d;if(!s.ok)return s.text().then(u=>{throw{response:s,text:u}});const l=(c=t==null?void 0:t.headers)==null?void 0:c.Accept,i=(d=s.headers.get("Content-Type"))==null?void 0:d.split(";")[0];return l&&l.split(";")[0]!==i?s.text().then(u=>{throw{response:s,text:u}}):s!=null&&s.headers&&s.headers.get("Content-Type")==="application/json"?s.json():s.text()}).catch(s=>{if(s.message)return console.warn(`fetch: ${s.message}`,e,a),null;const{response:l,text:i}=s;function c(){var u,m,f;const d=((u=l==null?void 0:l.headers.get("Content-Type"))==null?void 0:u.split(";")[0])||"";if(d==="application/json"&&(i.startsWith("{")||i.startsWith("["))){const g=JSON.parse(i);return console.warn("fetch: Error",e,a,l.status,g),g}else{const g=((f=(m=t==null?void 0:t.headers)==null?void 0:m.Accept)==null?void 0:f.split(";")[0])||"",y=g!==d?"Request Accept header does not match response Content-Type (Accept: "+g+", Content-Type: "+d+")":g==="application/json"?"Request Accept header is application/json but response is not JSON":null;return console.warn(`fetch: ${y}`,e,a,l.status,i),y&&g==="application/json"?{error:i,status:520}:i}}throw c()})}async function ot(e,t=null,n=globalThis.fetch){return wn(e,{...t,headers:{Accept:"application/json","Content-Type":"application/json",...t==null?void 0:t.headers}},n).then(a=>{if(a!=null&&a.error)throw a;return a})}async function Ma(e,t={},n=3,a=[429],o=globalThis.fetch){return o(e,t).then(s=>s.ok?s.json():!a.includes(s.status)&&n>0?(console.log("Retrying...",n,e,t),qr(500).then(()=>Ma(e,t,n-1,a,o))):(console.error(s),s)).catch(s=>console.error(s,"BBBBBBBBBBBBBBBBBBBBBBB"))}const fd={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%"}},pd={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"}},Os={Grid:{Card:{wrapperClassName:"",className:"",headerClassName:"flex justify-between",bodyClassName:"p-0",footerClassName:"",loading:!1},Table:{wrapperClassName:"",className:"",headerClassName:"",bodyClassName:"",footerClassName:"",scrollClassName:"overflow-x-auto",selectedClassName:"bg-primary/10"},Gallery:{wrapperClassName:"",className:"",scrollClassName:"",headerClassName:"",bodyClassName:"",footerClassName:"",selectedClassName:"bg-primary/20",gap:1,rowCols:4},Modal:{mode:"form",size:"lg",position:"center",wrapperClassName:"",className:"",headerClassName:"",titleClassName:"",subtitleClassName:"pr-1 text-muted-foreground",bodyClassName:"",footerClassName:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}}},Table:{wrapperClassName:"",className:"",headerClassName:"",bodyClassName:"",footerClassName:"",scrollClassName:"overflow-x-auto",selectedClassName:"bg-primary/10"},Gallery:{wrapperClassName:"",className:"",scrollClassName:"",headerClassName:"",bodyClassName:"",footerClassName:"",selectedClassName:"bg-primary/20",gap:4,rowCols:2},Pagination:{wrapperClassName:"",className:"",stickyClassName:"fixed bottom-0 left-0 right-0 mx-5",scrollToTop:!1,scrollBehavior:"auto",maxItems:5,sticky:!0,align:"end"},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:"",className:"",headerClassName:"flex justify-between bg-white/[.15] font-normal",bodyClassName:"flex flex-col",footerClassName:"",loading:!1},Loader:{wrapperClassName:"",className:"",icon:"custom-loader",title:"Loading..",description:""},ActionButton:{className:"btn-primary",badgeClassName:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LoadingButton:{className:"btn-primary",badgeClassName:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LinkButton:{className:"btn-outline-secondary"},Alert:{className:""},Badge:{className:""},Modal:{size:"lg",position:"center",wrapperClassName:"",className:"",headerClassName:"",titleClassName:"",subtitleClassName:"pr-1 text-muted-foreground",bodyClassName:"",footerClassName:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},Dropdown:{wrapperClassName:"",className:"",triggerClassName:"btn btn-outline-primary",badgeClassName:"",menuClassName:"border-border/60 bg-popover/95 shadow-xl shadow-black/5 backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20",menuHeaderClass:"text-muted-foreground/70",menuItemClass:"",menuDividerClass:"bg-border/60",headerClassName:"",footerClassName:"",Menu:{wrapperClassName:"",className:"list-none p-0 m-0",headerClassName:"",itemClassName:"",linkClassName:"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent",iconClassName:"text-muted-foreground",textClassName:"",badgeClassName:"",arrowClassName:"",submenuClassName:""},motion:{open:"fadeDown",close:"fadeDown",press:"press"}},Notifications:{wrapperClassName:"",Dropdown:{className:"",triggerClassName:"btn btn-link",menuClassName:"mt-1 text-[11px] w-[300px] pt-1"}},Select:{wrapperClassName:"",className:""},Autocomplete:{wrapperClassName:"",className:""},Form:{wrapperClassName:"",buttonSaveClass:"btn-outline-primary",buttonDeleteClass:"btn-outline-danger",buttonBackClass:"btn-link",Card:{headerClassName:"",bodyClassName:"",footerClassName:"flex items-center justify-end gap-3"}},Menu:{wrapperClassName:"flex-1 overflow-auto p-4",className:"flex flex-col mb-auto",headerClassName:"",itemClassName:"",linkClassName:"flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground",iconClassName:"mr-1 shrink-0",textClassName:"flex-1",badgeClassName:"ml-1",arrowClassName:"",submenuClassName:"mt-1 flex flex-col gap-1 pl-4"},SideNav:{wrapperClassName:"",shellClassName:"border-r border-border bg-card/80 text-foreground backdrop-blur supports-[backdrop-filter]:bg-card/70",overlayClassName:"shadow-xl",headerClassName:"border-b border-border/60 px-1.5 py-2",navClassName:"px-1.5 py-2",footerClassName:"border-t border-border/60 px-1.5 py-2",groupLabelClassName:"text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/60 select-none",groupDividerClassName:"bg-border/50",itemClassName:"rounded-lg",itemActiveClassName:"bg-primary/10 text-primary font-medium shadow-sm",itemChildActiveClassName:"bg-accent/80 text-foreground font-medium",itemInactiveClassName:"text-muted-foreground hover:text-foreground hover:bg-accent/70",itemIconClassName:"",itemTextClassName:"",itemBadgeClassName:"ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary",itemCollapsedBadgeClassName:"absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-full bg-primary ring-1 ring-card",itemToggleClassName:"shrink-0 flex items-center justify-center w-6 h-6 rounded-md transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/70",subItemClassName:"rounded-md",subItemActiveClassName:"bg-primary/10 text-primary font-medium",subItemInactiveClassName:"text-muted-foreground hover:text-foreground hover:bg-accent/70",collapseButtonClassName:"shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/70"},Toolbar:{wrapperClassName:"z-20 w-full",stickyClassName:"sticky top-0",restingClassName:"bg-transparent border-transparent shadow-none",scrolledClassName:"border-b border-border/60 bg-background/85 backdrop-blur supports-[backdrop-filter]:bg-background/75",innerClassName:"flex min-h-14 items-center gap-3 px-4 md:px-6",leadingClassName:"flex min-w-0 items-center gap-2 shrink-0",centerClassName:"flex min-w-0 flex-1 items-center gap-3",trailingClassName:"flex items-center gap-2 shrink-0"},ListCard:{wrapperClassName:"",className:"shadow-sm",activeClassName:"border-primary/30 bg-primary/10 shadow-sm",inactiveClassName:"hover:bg-accent/40",disabledClassName:"cursor-not-allowed opacity-60",dashedClassName:"border-dashed",compactClassName:"p-3",leadingClassName:"",bodyClassName:"",headerClassName:"",titleClassName:"",descriptionClassName:"",metaClassName:"",badgeClassName:"",trailingClassName:"",footerClassName:"",motion:{press:"press"}},ProviderSwitcher:{wrapperClassName:"w-full",className:"w-full",triggerClassName:"flex w-full items-center gap-2 rounded-xl px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/40",disabledClassName:"pointer-events-none opacity-60",iconWrapperClassName:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",labelClassName:"block truncate",captionClassName:"block truncate text-[11px] font-normal text-muted-foreground/80",chevronClassName:"ml-auto shrink-0 text-muted-foreground/70",itemClassName:"",itemActiveClassName:"",itemInactiveClassName:"",itemMetaClassName:"text-xs text-muted-foreground",checkClassName:"text-primary"},Brand:{wrapperClassName:"",className:"flex items-center",logoClassName:"flex items-center gap-2 font-semibold",labelClassName:"text-sm font-medium"},SignIn:{className:"flex items-center",avatarClass:"mx-2 rounded-full object-cover"},Image:{wrapperClassName:"",className:"",motion:{enter:"fade",hover:!1}},ImageAvatar:{wrapperClassName:"",className:"",motion:{enter:"fade",hover:!1}},Percentage:{wrapperClassName:"",className:""},Tab:{wrapperClassName:"",className:"",menuClassName:"",itemClassName:"",contentClassName:"",triggerClassName:"",activeTriggerClassName:"",inactiveTriggerClassName:"",motion:{enter:"fadeUp"}},Code:{wrapperClassName:"",className:""},CodeEditor:{wrapperClassName:"",className:""},Prompt:{wrapperClassName:"",className:""}},Ke={preset:fd,motion:pd,components:Os},gd={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%"}},hd={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"}},bd={Grid:{Card:{wrapperClassName:"",className:"",headerClassName:"flex justify-between",bodyClassName:"p-0",footerClassName:"",loading:!1},Table:{wrapperClassName:"",className:"",headerClassName:"",bodyClassName:"",footerClassName:"",scrollClassName:"overflow-x-auto",selectedClassName:"bg-primary/10"},Gallery:{wrapperClassName:"",className:"",scrollClassName:"",headerClassName:"",bodyClassName:"",footerClassName:"",selectedClassName:"bg-primary/20",gap:1,rowCols:4},Modal:{mode:"form",size:"lg",position:"center",wrapperClassName:"",className:"",headerClassName:"",titleClassName:"",subtitleClassName:"pr-1 text-muted-foreground",bodyClassName:"",footerClassName:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}}},Table:{wrapperClassName:"",className:"",headerClassName:"",bodyClassName:"",footerClassName:"",scrollClassName:"overflow-x-auto",selectedClassName:"bg-primary/10"},Gallery:{wrapperClassName:"",className:"",scrollClassName:"",headerClassName:"",bodyClassName:"",footerClassName:"",selectedClassName:"bg-primary/20",gap:4,rowCols:2},Pagination:{wrapperClassName:"",className:"",stickyClassName:"fixed bottom-0 left-0 right-0 mx-5",scrollToTop:!1,scrollBehavior:"auto",maxItems:5,sticky:!0,align:"end"},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:"",className:"",headerClassName:"flex justify-between bg-white/[.15] font-normal",bodyClassName:"flex flex-col",footerClassName:"",loading:!1},Loader:{wrapperClassName:"",className:"",icon:"custom-loader",title:"Loading..",description:""},ActionButton:{className:"btn-primary",badgeClassName:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LoadingButton:{className:"btn-primary",badgeClassName:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LinkButton:{className:"btn-outline-secondary"},Alert:{className:""},Badge:{className:""},Modal:{size:"lg",position:"center",wrapperClassName:"",className:"",headerClassName:"",titleClassName:"",subtitleClassName:"pr-1 text-muted-foreground",bodyClassName:"",footerClassName:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},Dropdown:{wrapperClassName:"",className:"",triggerClassName:"btn btn-outline-primary",badgeClassName:"",menuClassName:"border-border/60 bg-popover/95 shadow-lg shadow-black/5 supports-[backdrop-filter]:bg-popover/92",menuHeaderClass:"text-muted-foreground/70",menuItemClass:"",menuDividerClass:"bg-border/60",headerClassName:"",footerClassName:"",Menu:{wrapperClassName:"",className:"list-none p-0 m-0",headerClassName:"",itemClassName:"",linkClassName:"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent",iconClassName:"text-muted-foreground",textClassName:"",badgeClassName:"",arrowClassName:"",submenuClassName:""},motion:{open:"fadeDown",close:"fadeDown",press:"press"}},Notifications:{wrapperClassName:"",Dropdown:{className:"",triggerClassName:"btn btn-link",menuClassName:"mt-1 text-[11px] w-[300px] pt-1"}},Select:{wrapperClassName:"",className:""},Autocomplete:{wrapperClassName:"",className:""},Form:{wrapperClassName:"",buttonSaveClass:"btn-outline-primary",buttonDeleteClass:"btn-outline-danger",buttonBackClass:"btn-link",Card:{headerClassName:"",bodyClassName:"",footerClassName:"flex items-center justify-end gap-3"}},Menu:{wrapperClassName:"flex-1 overflow-auto p-4",className:"flex flex-col mb-auto",headerClassName:"",itemClassName:"",linkClassName:"flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground",iconClassName:"mr-1 shrink-0",textClassName:"flex-1",badgeClassName:"ml-1",arrowClassName:"",submenuClassName:"mt-1 flex flex-col gap-1 pl-4"},SideNav:{wrapperClassName:"",shellClassName:"border-r border-border bg-card text-foreground",overlayClassName:"shadow-lg",headerClassName:"border-b border-border px-1.5 py-2",navClassName:"px-1.5 py-2",footerClassName:"border-t border-border px-1.5 py-2",groupLabelClassName:"text-[10px] font-semibold uppercase tracking-[0.16em] text-muted-foreground/70 select-none",groupDividerClassName:"bg-border/60",itemClassName:"rounded-md",itemActiveClassName:"bg-primary/10 text-primary font-medium",itemChildActiveClassName:"bg-accent text-foreground font-medium",itemInactiveClassName:"text-muted-foreground hover:text-foreground hover:bg-accent/80",itemIconClassName:"",itemTextClassName:"",itemBadgeClassName:"ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary",itemCollapsedBadgeClassName:"absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-full bg-primary ring-1 ring-card",itemToggleClassName:"shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/80",subItemClassName:"rounded-sm",subItemActiveClassName:"bg-primary/10 text-primary font-medium",subItemInactiveClassName:"text-muted-foreground hover:text-foreground hover:bg-accent/80",collapseButtonClassName:"shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/80"},Toolbar:{wrapperClassName:"z-20 w-full",stickyClassName:"sticky top-0",restingClassName:"bg-transparent border-transparent shadow-none",scrolledClassName:"border-b border-border bg-background/90 backdrop-blur supports-[backdrop-filter]:bg-background/85",innerClassName:"flex min-h-13 items-center gap-3 px-4 md:px-5",leadingClassName:"flex min-w-0 items-center gap-2 shrink-0",centerClassName:"flex min-w-0 flex-1 items-center gap-3",trailingClassName:"flex items-center gap-2 shrink-0"},ListCard:{wrapperClassName:"",className:"",activeClassName:"border-primary/30 bg-primary/10",inactiveClassName:"hover:bg-accent/60",disabledClassName:"cursor-not-allowed opacity-60",dashedClassName:"border-dashed",compactClassName:"p-3",leadingClassName:"",bodyClassName:"",headerClassName:"",titleClassName:"",descriptionClassName:"",metaClassName:"",badgeClassName:"",trailingClassName:"",footerClassName:"",motion:{press:"press"}},ProviderSwitcher:{wrapperClassName:"w-full",className:"w-full",triggerClassName:"flex w-full items-center gap-2 rounded-xl px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/60",disabledClassName:"pointer-events-none opacity-60",iconWrapperClassName:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",labelClassName:"block truncate",captionClassName:"block truncate text-[11px] font-normal text-muted-foreground/80",chevronClassName:"ml-auto shrink-0 text-muted-foreground/70",itemClassName:"",itemActiveClassName:"",itemInactiveClassName:"",itemMetaClassName:"text-xs text-muted-foreground",checkClassName:"text-primary"},Brand:{wrapperClassName:"",className:"flex items-center",logoClassName:"flex items-center gap-2 font-semibold",labelClassName:"text-sm font-medium"},SignIn:{className:"flex items-center",avatarClass:"mx-2 rounded-full object-cover"},Image:{wrapperClassName:"",className:"",motion:{enter:"fade",hover:!1}},ImageAvatar:{wrapperClassName:"",className:"",motion:{enter:"fade",hover:!1}},Percentage:{wrapperClassName:"",className:""},Tab:{wrapperClassName:"",className:"",menuClassName:"",itemClassName:"",contentClassName:"",triggerClassName:"",activeTriggerClassName:"",inactiveTriggerClassName:"",motion:{enter:"fadeUp"}},Code:{wrapperClassName:"",className:""},CodeEditor:{wrapperClassName:"",className:""},Prompt:{wrapperClassName:"",className:""}},vd={preset:gd,motion:hd,components:bd},yd={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%"}},xd={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"}},wd={Grid:{Card:{wrapperClassName:"",className:"",headerClassName:"flex justify-between",bodyClassName:"p-0",footerClassName:"",loading:!1},Table:{wrapperClassName:"",className:"",headerClassName:"",bodyClassName:"",footerClassName:"",scrollClassName:"overflow-x-auto",selectedClassName:"bg-primary/10"},Gallery:{wrapperClassName:"",className:"",scrollClassName:"",headerClassName:"",bodyClassName:"",footerClassName:"",selectedClassName:"bg-primary/20",gap:1,rowCols:4},Modal:{mode:"form",size:"lg",position:"center",wrapperClassName:"",className:"",headerClassName:"",titleClassName:"",subtitleClassName:"pr-1 text-muted-foreground",bodyClassName:"",footerClassName:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}}},Table:{wrapperClassName:"",className:"",headerClassName:"",bodyClassName:"",footerClassName:"",scrollClassName:"overflow-x-auto",selectedClassName:"bg-primary/10"},Gallery:{wrapperClassName:"",className:"",scrollClassName:"",headerClassName:"",bodyClassName:"",footerClassName:"",selectedClassName:"bg-primary/20",gap:4,rowCols:2},Pagination:{wrapperClassName:"",className:"",stickyClassName:"fixed bottom-0 left-0 right-0 mx-5",scrollToTop:!1,scrollBehavior:"auto",maxItems:5,sticky:!0,align:"end"},Carousel:{showIndicators:!0,showControls:!0,showCaption:!0,dark:!1,autoPlay:!0},Card:{wrapperClassName:"",className:"",headerClassName:"flex justify-between bg-white/[.15] font-normal",bodyClassName:"flex flex-col",footerClassName:"",loading:!1},Loader:{wrapperClassName:"",className:"",icon:"custom-loader",title:"Loading..",description:""},ActionButton:{className:"btn-primary",badgeClassName:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LoadingButton:{className:"btn-primary",badgeClassName:"rounded-full bg-destructive text-destructive-foreground",motion:{press:"press"}},LinkButton:{className:"btn-outline-secondary"},Alert:{className:""},Badge:{className:""},Modal:{size:"lg",position:"center",wrapperClassName:"",className:"",headerClassName:"",titleClassName:"",subtitleClassName:"pr-1 text-muted-foreground",bodyClassName:"",footerClassName:"",iconExpand:"fullscreen",iconCollapse:"fullscreen-exit",motion:{center:"fade",top:"slideFromTop",left:"slideFromLeft",right:"slideFromRight",bottom:"slideFromBottom",backdrop:"fade"}},Dropdown:{wrapperClassName:"",className:"",triggerClassName:"btn btn-outline-primary",badgeClassName:"",menuClassName:"rounded-none border-border/70 bg-popover/95 shadow-[0_0_0_1px_hsl(var(--border)/0.55),0_12px_32px_rgba(0,0,0,0.35)] supports-[backdrop-filter]:bg-popover/92",menuHeaderClass:"text-muted-foreground/75",menuItemClass:"",menuDividerClass:"bg-border/70",headerClassName:"",footerClassName:"",Menu:{wrapperClassName:"",className:"list-none p-0 m-0",headerClassName:"",itemClassName:"",linkClassName:"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent",iconClassName:"text-muted-foreground",textClassName:"",badgeClassName:"",arrowClassName:"",submenuClassName:""},motion:{open:"fadeDown",close:"fadeDown",press:"press"}},Notifications:{wrapperClassName:"",Dropdown:{className:"",triggerClassName:"btn btn-link",menuClassName:"mt-1 text-[11px] w-[300px] pt-1"}},Select:{wrapperClassName:"",className:""},Autocomplete:{wrapperClassName:"",className:""},Form:{wrapperClassName:"",buttonSaveClass:"btn-outline-primary",buttonDeleteClass:"btn-outline-danger",buttonBackClass:"btn-link",Card:{headerClassName:"",bodyClassName:"",footerClassName:"flex items-center justify-end gap-3"}},Menu:{wrapperClassName:"flex-1 overflow-auto p-4",className:"flex flex-col mb-auto",headerClassName:"",itemClassName:"",linkClassName:"flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent/50 hover:text-foreground",iconClassName:"mr-1 shrink-0",textClassName:"flex-1",badgeClassName:"ml-1",arrowClassName:"",submenuClassName:"mt-1 flex flex-col gap-1 pl-4"},SideNav:{wrapperClassName:"",shellClassName:"border-r border-border bg-card/95 text-foreground",overlayClassName:"shadow-[0_0_32px_rgba(16,185,129,0.18)]",headerClassName:"border-b border-border px-1.5 py-2",navClassName:"px-1.5 py-2",footerClassName:"border-t border-border px-1.5 py-2",groupLabelClassName:"text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground/70 select-none",groupDividerClassName:"bg-border/70",itemClassName:"rounded-none",itemActiveClassName:"bg-primary/12 text-primary font-medium",itemChildActiveClassName:"bg-accent/90 text-foreground font-medium",itemInactiveClassName:"text-muted-foreground hover:text-foreground hover:bg-accent/80",itemIconClassName:"",itemTextClassName:"",itemBadgeClassName:"ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-none bg-primary/15 text-primary",itemCollapsedBadgeClassName:"absolute -top-0.5 -right-1 h-[7px] w-[7px] rounded-none bg-primary ring-1 ring-card",itemToggleClassName:"shrink-0 flex items-center justify-center w-6 h-6 rounded-none transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent/80",subItemClassName:"rounded-none",subItemActiveClassName:"bg-primary/12 text-primary font-medium",subItemInactiveClassName:"text-muted-foreground hover:text-foreground hover:bg-accent/80",collapseButtonClassName:"shrink-0 flex items-center justify-center rounded-none w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/80"},Toolbar:{wrapperClassName:"z-20 w-full",stickyClassName:"sticky top-0",restingClassName:"bg-transparent border-transparent shadow-none",scrolledClassName:"border-b border-border bg-background/90 backdrop-blur supports-[backdrop-filter]:bg-background/85",innerClassName:"flex min-h-14 items-center gap-3 px-4 md:px-6",leadingClassName:"flex min-w-0 items-center gap-2 shrink-0",centerClassName:"flex min-w-0 flex-1 items-center gap-3",trailingClassName:"flex items-center gap-2 shrink-0"},ListCard:{wrapperClassName:"",className:"rounded-none shadow-[0_0_0_1px_hsl(var(--border)/0.7)]",activeClassName:"border-primary/50 bg-primary/10 text-foreground",inactiveClassName:"hover:bg-accent/70",disabledClassName:"cursor-not-allowed opacity-60",dashedClassName:"border-dashed",compactClassName:"p-3",leadingClassName:"rounded-none",bodyClassName:"",headerClassName:"",titleClassName:"",descriptionClassName:"",metaClassName:"",badgeClassName:"",trailingClassName:"",footerClassName:"",motion:{press:"press"}},ProviderSwitcher:{wrapperClassName:"w-full",className:"w-full",triggerClassName:"flex w-full items-center gap-2 rounded-none px-1.5 py-1.5 text-left text-sm font-semibold text-foreground transition-colors hover:bg-accent/70",disabledClassName:"pointer-events-none opacity-60",iconWrapperClassName:"flex h-8 w-8 shrink-0 items-center justify-center rounded-none bg-primary/10 text-primary",labelClassName:"block truncate",captionClassName:"block truncate text-[11px] font-normal text-muted-foreground/80",chevronClassName:"ml-auto shrink-0 text-muted-foreground/70",itemClassName:"rounded-none",itemActiveClassName:"",itemInactiveClassName:"",itemMetaClassName:"text-xs text-muted-foreground",checkClassName:"text-primary"},Brand:{wrapperClassName:"",className:"flex items-center",logoClassName:"flex items-center gap-2 font-semibold",labelClassName:"text-sm font-medium"},SignIn:{className:"flex items-center",avatarClass:"mx-2 rounded-full object-cover"},Image:{wrapperClassName:"",className:"",motion:{enter:"fade",hover:"imageZoom"}},ImageAvatar:{wrapperClassName:"",className:"",motion:{enter:"fade",hover:"imageZoom"}},Percentage:{wrapperClassName:"",className:""},Tab:{wrapperClassName:"",className:"",menuClassName:"",itemClassName:"",contentClassName:"",triggerClassName:"",activeTriggerClassName:"",inactiveTriggerClassName:"",motion:{enter:"fadeUp"}},Code:{wrapperClassName:"",className:""},CodeEditor:{wrapperClassName:"",className:""},Prompt:{wrapperClassName:"",className:""}},Ed={preset:yd,motion:xd,components:wd},Nd={...Ke,preset:{...Ke.preset,mode:"dark",colors:{...Ke.preset.colors},dark:{...Ke.preset.dark,background:"0 0% 11.8%",foreground:"0 0% 83.1%",cardForeground:"0 0% 83.1%",popover:"240 1.3% 14.7%",popoverForeground:"0 0% 80%",primaryForeground:"0 0% 11.8%",secondaryForeground:"0 0% 83.1%",accentForeground:"0 0% 83.1%"}}},Cd={...Ke,preset:{...Ke.preset,mode:"light",colors:{...Ke.preset.colors,background:"0 0% 100%",foreground:"0 0% 0%",cardForeground:"0 0% 0%",popoverForeground:"0 0% 0%",primaryForeground:"0 0% 100%",secondaryForeground:"0 0% 0%",accent:"0 0% 91%",accentForeground:"0 0% 0%"},dark:{...Ke.preset.dark}}},kd={...Ke,preset:{...Ke.preset,mode:"dark",colors:{...Ke.preset.colors},dark:{...Ke.preset.dark,background:"235 18.8% 12.5%",foreground:"229.3 35.4% 75.1%",card:"240 15.4% 10.2%",cardForeground:"232.7 13.9% 53.5%",popover:"240 14.9% 9.2%",popoverForeground:"232.7 13.9% 53.5%",primary:"217.3 39.8% 55.7%",primaryForeground:"0 0% 100%",secondary:"240 15.4% 10.2%",secondaryForeground:"232.7 13.9% 53.5%",muted:"235.4 18.8% 13.5%",mutedForeground:"230.3 16.1% 37.8%",accent:"228.8 20% 15.7%",accentForeground:"229.3 35.4% 75.1%",border:"240 11.1% 7.1%",input:"240 14.9% 9.2%",ring:"228.7 72.6% 85.7%"}}},Sd={...Ke,preset:{...Ke.preset,mode:"light",colors:{...Ke.preset.colors,background:"231.4 16.3% 91.6%",foreground:"228.6 26.2% 27.6%",card:"226.7 12.3% 85.7%",cardForeground:"224.3 17.6% 25.7%",popover:"231.4 16.3% 91.6%",popoverForeground:"224.3 17.6% 25.7%",primary:"217.7 61.1% 41.4%",primaryForeground:"0 0% 100%",secondary:"226.7 12.3% 85.7%",secondaryForeground:"224.3 17.6% 25.7%",muted:"231.4 16.3% 91.6%",mutedForeground:"232.5 6.7% 47.1%",accent:"231.4 16.3% 91.6%",accentForeground:"224.3 17.6% 25.7%",border:"230 5.1% 76.9%",input:"231.4 16.3% 91.6%",ring:"224.3 17.6% 25.7%"},dark:{...Ke.preset.dark}}},Ad=["default","flat","cyber","vscode-dark-plus","vscode-light-plus","tokyo-night","tokyo-night-light"],$s=r.createContext(Os),Ls=r.createContext(Ke.motion),js=r.createContext(null),xt={default:Ke,flat:vd,cyber:Ed,"vscode-dark-plus":Nd,"vscode-light-plus":Cd,"tokyo-night":kd,"tokyo-night-light":Sd},Ia=(e,t)=>{const n=e,a=t;for(const o in a)Object.prototype.hasOwnProperty.call(a,o)&&(typeof a[o]=="object"&&a[o]!==null?(n[o]||(n[o]={}),Ia(n[o],a[o])):a[o]!==null&&(n[o]=a[o]));return e},Ro=e=>Ia({},e);function Md(e){return typeof e=="object"&&e!==null&&"preset"in e&&"motion"in e&&"components"in e}function Id(e){return typeof e=="string"||typeof e>"u"?{theme:e??"default",themes:{...xt}}:Md(e)?{theme:"custom",themes:{...xt,custom:e}}:{defaultMode:e.defaultMode,theme:e.theme??"default",themes:{...xt,...e.themes??{}},themeOverride:e.themeOverride}}function na(e){return e!=="system"?e:typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function _o(e){return"--rf-"+e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}function Pd({mode:e,radius:t,fontSans:n,fontMono:a,colors:o,dark:s,variables:l}){if(typeof document>"u")return;document.documentElement.classList.toggle("dark",na(e)==="dark");const i={},c={};for(const[m,f]of Object.entries(o??{}))f!==void 0&&(i[_o(m)]=f);for(const[m,f]of Object.entries(s??{}))f!==void 0&&(c[_o(m)]=f);i["--radius"]=`${t}rem`,i["--radius-sm"]=`${(t*.5).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-md"]=`${(t*.75).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-lg"]=`${t}rem`,i["--radius-xl"]=`${(t*1.5).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-2xl"]=`${(t*2).toFixed(4).replace(/\.?0+$/,"")}rem`,i["--radius-3xl"]=`${(t*3).toFixed(4).replace(/\.?0+$/,"")}rem`,n&&(i["--font-sans"]=n),a&&(i["--font-mono"]=a);for(const[m,f]of Object.entries(l??{}))i[m.startsWith("--")?m:`--${m}`]=f;let d=document.getElementById("rf-theme-vars");d||(d=document.createElement("style"),d.id="rf-theme-vars",document.head.appendChild(d));const u=m=>Object.entries(m).map(([f,g])=>` ${f}: ${g};`).join(`
2
+ `);d.textContent=[Object.keys(i).length?`:root {
3
+ ${u(i)}
4
4
  }`:"",Object.keys(c).length?`.dark {
5
- ${d(c)}
5
+ ${u(c)}
6
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(`
7
+ `)}const aa="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InRyYW5zcGFyZW50Ii8+PGNpcmNsZSBjeD0iNjUiIGN5PSIzNSIgcj0iMTAiIGZpbGw9IiM5Y2EzYWYiLz48cGF0aCBkPSJNMTAsNzUgTDMyLDUwIEw1Miw3MCBMNjgsNTIgTDkwLDcyIEw5MCw4MCBIMTAgWiIgZmlsbD0iIzljYTNhZiIvPjwvc3ZnPg==",Dr="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",Td="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZD0iTTUwIDE1IEw4NSA1MCBMNTAgODUgTDE1IDUwIFoiIGZpbGw9IiNjY2MiIG9wYWNpdHk9IjAuMiIvPjxwYXRoIGQ9Ik01MCAzMCBMNzAgNTAgTDUwIDcwIEwzMCA1MCBaIiBmaWxsPSIjY2NjIi8+PC9zdmc+",Dd=({children:e,config:t=void 0})=>{const n=r.useMemo(()=>Id(t),[t]),a=n.themes[n.theme]??n.themes.default,o=a.preset,[s,l]=r.useState(n.themes),[i,c]=r.useState(n.theme),[d,u]=r.useState(n.defaultMode??o.mode??"light"),[m,f]=r.useState(o.radius??xt.default.preset.radius),[g,y]=r.useState(o.fontSans??""),[p,h]=r.useState(o.fontMono??""),[b,k]=r.useState(o.colors),[w,S]=r.useState(o.dark),[I,A]=r.useState(()=>Ro(a.components)),[x,v]=r.useState(a.motion);r.useEffect(()=>{const M=n.themes[n.theme]??n.themes.default,D=M.preset;l(n.themes),c(n.theme),u(n.defaultMode??D.mode??"light"),f(D.radius??xt.default.preset.radius),y(D.fontSans??""),h(D.fontMono??""),k(D.colors),S(D.dark),v(M.motion)},[n]),r.useEffect(()=>{const M=s[i]??s.default,D=Ro(M.components);Ia(D,n.themeOverride??{}),A(D),v(M.motion)},[i,n.themeOverride,s]),r.useEffect(()=>{const M=(s[i]??s.default).preset;Pd({mode:d,radius:m,fontSans:g,fontMono:p,colors:b,dark:w,variables:M.variables})},[d,s,i,m,g,p,b,w]);const R=r.useMemo(()=>({mode:d,resolvedMode:na(d),theme:i,primary:(b==null?void 0:b.primary)??xt.default.preset.colors.primary,primaryForeground:(b==null?void 0:b.primaryForeground)??xt.default.preset.colors.primaryForeground,radius:m,fontSans:g,fontMono:p,colors:b,dark:w,themes:s,setMode:u,toggleMode(){u(M=>na(M)==="dark"?"light":"dark")},applyTheme(M){s[M]||(process.env.NODE_ENV!=="production"&&console.warn(`[ThemeProvider] Unknown theme "${M}", falling back to "default".`),M="default");const C=(s[M]??s.default).preset;c(M),u(C.mode??"light"),f(C.radius??xt.default.preset.radius),y(C.fontSans??""),h(C.fontMono??""),k(C.colors),S(C.dark)},setPrimary(M){const D=M.split(" ")[0];k(C=>({...C,primary:M,ring:M,secondary:`${D} 40% 96%`,secondaryForeground:`${D} 47% 11%`,accent:`${D} 40% 94%`,accentForeground:`${D} 47% 11%`})),S(C=>({...C,primary:M,ring:M,secondary:`${D} 30% 18%`,secondaryForeground:`${D} 10% 96%`,accent:`${D} 30% 18%`,accentForeground:`${D} 10% 96%`}))},setRadius:f,setFont(M,D){y(M),D!==void 0&&h(D)},setColors(M){k(M)},setTokens(M){k(D=>({...D,...M})),S(D=>({...D,...M}))}}),[d,i,m,g,p,b,w,s]);return r.createElement(js.Provider,{value:R},r.createElement(Ls.Provider,{value:x},r.createElement($s.Provider,{value:I},e)))},me=e=>r.useContext($s),Rd=()=>r.useContext(Ls),Bs=()=>{const e=r.useContext(js);if(!e)throw new Error("useThemeController must be used inside <App> or <ThemeProvider>.");return e},zs={common:{save:"Save",cancel:"Cancel",delete:"Delete",close:"Close",back:"Back",search:"Search",loading:"Loading...",noDataFound:"No data found",pageNavigation:"Page navigation",previous:"Previous",next:"Next",notFoundMessage:"Oops! Page not found.",goHome:"Go to Home"},auth:{signIn:"Sign in",signOut:"Sign out",connect:"Connect",connected:"Connected",authenticated:"Authenticated",notConfigured:'Auth provider "{provider}" is not configured. Add the required client key before using this action.',notImplemented:"AuthProvider does not implement signIn()."},form:{headerAdd:"New record",headerEdit:"Edit record",buttonSave:"Save",buttonDelete:"Delete",buttonBack:"Back",requiredField:"{field} is required",requiredFieldGeneric:"Required field",saveSuccess:"Record saved successfully",deleteSuccess:"Record deleted successfully",noticeRequiredFields:"Please fill in all required fields",noChangesToSave:"No changes to save",draftRestoreTitle:"Unsaved changes found",draftRestoreMessage:"A local draft is available for this form. Restore it or discard it.",draftRestoreAction:"Restore",draftDiscardAction:"Discard",draftRestoredTitle:"Draft restored",draftRestoredMessage:"The local draft has been restored. You can still discard it for a few seconds."},grid:{buttonAdd:"Add",deleteConfirm:"Delete record",emptyState:"No records found"},select:{placeholder:"Select..."},modal:{save:"Save",delete:"Delete",cancel:"Cancel",close:"Close"},upload:{clickOrDrag:"Click to upload or drag and drop",dropToUpload:"Drop to upload",uploadMore:"Upload more files",editFileName:"Edit file name",editorImage:"Edit image",loaded:"Loaded",removeFile:"Remove",uploadAnother:"Upload another file",dropToParse:"Drop to parse"},notifications:{title:"Notifications",seeAll:"See all"},code:{copyCode:"Copy code",copy:"Copy",copied:"Copied",codeLanguageDefault:"text"},table:{noDataFound:"No data found",selectAllRows:"Select all rows",sortBy:"Sort by {label}",sortByCurrent:"Sort by {label}, currently {direction}",selectRow:"Select row {key}",reorderRow:"Reorder row {key}"},gallery:{selectItem:"Select item {key}"},crop:{enableCrop:"Click {scale} to enable this crop",variants:"Variants",outputFile:"Output file",active:"active",removeVariant:"Remove {scale} variant",fileName:"File name"},imageEditor:{title:"Image Editor",save:"Save",undo:"Undo",redo:"Redo",zoomOut:"Zoom Out",zoomIn:"Zoom In",crop:"Crop",flipHorizontal:"Flip horizontal",flipVertical:"Flip vertical",rotate:"Rotate 90°",freeDrawing:"Free drawing",arrow:"Arrow",text:"Text",rectangle:"Rectangle",circle:"Circle",triangle:"Triangle"},prompt:{noProviders:"No AI providers are registered.",aiNotConfiguredEdit:"AI is not configured. You can still edit and save this prompt.",aiNotConfiguredRun:"AI is not configured. Prompt execution is unavailable.",aiNotConfiguredShort:"AI not configured",toggleOnTitle:"Prompt ON. In PromptRun, this textarea is treated as the prompt template and can be executed against the current record. Turn OFF to skip the prompt system and use the plain fallback text instead.",toggleOffTitle:"Prompt OFF. In PromptRun, the prompt system is skipped and the plain fallback text is used directly. Turn ON to use this textarea as the prompt template.",closeEditor:"Close prompt editor",editSettings:"Edit prompt settings",attachFiles:"Attach files",attachmentsNotSupported:"The selected AI provider does not support image or document attachments.",run:"Run prompt",runFailed:"Prompt execution failed.",noMatchingCommands:"No matching commands",tokenUsage:"Token usage",tokenInput:"Input: {count} tok",tokenOutput:"Output: {count} tok",tokenContext:"Context: {percent}%",tokenCost:"Cost: ~${amount}",tokenTime:"Time: {seconds}s",tokenUsageEmpty:"Run the prompt to see token usage.",hidePreview:"Hide preview",showPreview:"Show resolved preview",noProvider:"No AI provider is available for this prompt.",noResponse:"The AI provider returned no response.",promptLabel:"Prompt: ",defaultOption:"Default"},layout:{maxElements:"You already have 12 items in the row: remove one before adding another.",noSpace:"No space available: cannot resize items enough to insert this field.",dragToMove:"Drag to move",remove:"Remove",dragToResize:"Drag to resize",dragHere:"Drag an element here"}};function _d(e){return e}function Fd(e){return e}function Ve(e,t){return e.replace(/\{(\w+)\}/g,(n,a)=>String(t[a]??`{${a}}`))}function _n(e,t){const n=o=>typeof o=="object"&&o!==null&&!Array.isArray(o),a=(o,s)=>{if(!n(o)||!n(s))return s??o;const l={...o};for(const i of Object.keys(s))l[i]=i in l?a(l[i],s[i]):s[i];return l};return a(e,t)}const Od="llmnative_locale",$d=60*60*24*365;function Ld(){if(typeof document>"u")return null;const e=document.cookie.match(/(?:^|;\s*)llmnative_locale=([^;]+)/);return e?decodeURIComponent(e[1]):null}function jd(e){typeof document>"u"||(document.cookie=`${Od}=${encodeURIComponent(e)}; max-age=${$d}; path=/; SameSite=Lax`)}const Vs=r.createContext(null),Us=({children:e,config:t})=>{const[n,a]=r.useState({}),o=r.useMemo(()=>{const m=[...Object.keys((t==null?void 0:t.translations)??{}),...Object.keys(n)];return Array.from(new Set(["en",...m.filter(f=>f!=="en")]))},[t==null?void 0:t.translations,n]),[s,l]=r.useState(()=>{const m=Ld();return m&&o.includes(m)?m:(t==null?void 0:t.locale)??"en"}),i=r.useMemo(()=>{var y;const m=(y=t==null?void 0:t.translations)==null?void 0:y[s],f=n[s];let g=zs;return m&&(g=_n(g,m)),f&&(g=_n(g,f)),g},[s,t==null?void 0:t.translations,n]),c=r.useCallback(m=>{jd(m),l(m)},[]),d=r.useCallback((m,f)=>{a(g=>{const y=g[m],p=y?_n(y,f):f;return{...g,[m]:p}})},[]),u=r.useMemo(()=>({dict:i,locale:s,availableLocales:o,setLocale:c,registerTranslations:d}),[i,s,o,c,d]);return r.createElement(Vs.Provider,{value:u},e)};function Me(e){const t=r.useContext(Vs);if(!t)throw new Error("useI18n must be used inside <App> or <I18nProvider>.");return e===void 0?t:e.split(".").reduce((n,a)=>n==null?void 0:n[a],t.dict)}function N(...e){return Uc.twMerge(Vc.clsx(e))}const Bd="mx-auto w-full px-3 sm:max-w-[540px] md:max-w-[720px] lg:max-w-[960px] xl:max-w-[1140px] 2xl:max-w-[1320px]",zd="rf-row",Vd="rf-col",Ud="rf-col-fill",Hd="rf-col-12",it=(e,t)=>e==="xs"?`rf-col-${t}`:`rf-col-${e}-${t}`,Kd=e=>e==="xs"?"rf-col-auto":`rf-col-${e}-auto`,cr=e=>({auto:Kd(e),1:it(e,1),2:it(e,2),3:it(e,3),4:it(e,4),5:it(e,5),6:it(e,6),7:it(e,7),8:it(e,8),9:it(e,9),10:it(e,10),11:it(e,11),12:it(e,12)}),Gd={xs:cr("xs"),sm:cr("sm"),md:cr("md"),lg:cr("lg"),xl:cr("xl"),xxl:cr("xxl")},dr=(e,t)=>{const n=String(t);return Gd[e][n]},pe=({children:e=void 0,className:t=void 0,style:n=void 0,onClick:a=void 0})=>t?r.createElement("div",{className:t,style:n,onClick:a},e):r.createElement(r.Fragment,null,e),Hs=({children:e=void 0,className:t=void 0,style:n=void 0})=>r.createElement("div",{className:N(Bd,t),style:n},e),Ks=({children:e=void 0,className:t=void 0,style:n=void 0})=>r.createElement("div",{className:N(zd,t),style:n},e),Gs=({children:e=void 0,className:t=void 0,style:n=void 0,defaultSize:a=void 0,xxl:o=void 0,xl:s=void 0,lg:l=void 0,md:i=void 0,sm:c=void 0,xs:d=void 0})=>{const u=d??a,f=[Vd,u!==void 0||c!==void 0||i!==void 0||l!==void 0||s!==void 0||o!==void 0?u!==void 0?dr("xs",u):Hd:Ud,c!==void 0?dr("sm",c):void 0,i!==void 0?dr("md",i):void 0,l!==void 0?dr("lg",l):void 0,s!==void 0?dr("xl",s):void 0,o!==void 0?dr("xxl",o):void 0,t];return r.createElement("div",{className:N(f),style:n},e)};function Pa(e){return typeof e=="object"&&e!==null&&!r.isValidElement(e)&&"content"in e}function Ys(e,t="info",n){if(!(e==null||e===!1))return Pa(e)?{...e,variant:e.variant||t,className:N(e.className,n)}:{content:e,variant:t,className:n}}const Xr=({badge:e,content:t=void 0,variant:n=void 0,defaultType:a="info",className:o=void 0,descriptorOnly:s=!1,children:l=void 0})=>{const i=t!==void 0?{content:t,variant:n,className:o}:e;if(s&&t===void 0&&!Pa(e))return e??null;const c=Ys(i,n||a,o);return c?l!==void 0?r.createElement(Vr,{variant:c.variant,after:c.content,className:c.className},l):r.createElement(Vr,{variant:c.variant,className:c.className},c.content):l??null},Vr=({children:e,variant:t="info",before:n=void 0,after:a=void 0,wrapperClassName:o=void 0,className:s=void 0})=>{const l=me();if(r.isValidElement(e)){const i=N("badge badge-overlay badge-"+t,"absolute top-0 z-10",s||l.Badge.className);return r.createElement("span",{className:N("relative inline-flex",o)},e,n!==void 0&&r.createElement("span",{className:N(i,"left-0 -translate-x-1/2 -translate-y-1/2")},n),a!==void 0&&r.createElement("span",{className:N(i,"right-0 translate-x-1/2 -translate-y-1/2")},a),n===void 0&&a===void 0&&r.createElement("span",{className:N(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 r.createElement(pe,{className:o},n,r.createElement("span",{className:N("badge badge-"+t,s||l.Badge.className)},e),a)},Fo={from:{},to:{},transition:{duration:0,easing:"linear",delay:0,properties:["opacity","transform","box-shadow"]},reducedMotion:"always"},Oo={transition:{duration:160,easing:"cubic-bezier(0.2, 0, 0, 1)",delay:0,properties:["opacity","transform","box-shadow"]},reducedMotion:"respect-user"},Yd=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,$o=(e,t,n="fade")=>{const a=e===void 0?n:e;return a===!1?Fo:typeof a=="string"?t[a]??t.none??Fo:a},Ws=e=>e.properties.map(t=>`${t} ${e.duration}ms ${e.easing} ${e.delay}ms`).join(", "),qs=(e,t={},n)=>{const a=$o(n,t,"fade"),o=$o(e,t,n),s={...Oo.transition,...a.transition,...o.transition},l=o.reducedMotion??a.reducedMotion??Oo.reducedMotion,i=l==="always"||l==="respect-user"&&Yd(),c={duration:i?0:s.duration,easing:i?"linear":s.easing,delay:i?0:s.delay,properties:s.properties};return{from:i?{}:{...a.from??{},...o.from??{}},to:i?{}:{...a.to??{},...o.to??{}},transition:c,reducedMotion:l,transitionValue:Ws(c)}},En=(e,t)=>{const n=Rd();return r.useMemo(()=>qs(e,n,t),[e,n,t])},rr=(e,t,n,a)=>{const o=En(t,n);return r.useMemo(()=>({...a,...e?o.to:o.from,transition:[a==null?void 0:a.transition,o.transitionValue].filter(Boolean).join(", ")}),[e,a,o])},Zr=(e=!1,t,n,a="press")=>{const o=En(n,a),[s,l]=r.useState(!1);return{style:r.useMemo(()=>({...t,...s&&!e?o.to:o.from,transition:[t==null?void 0:t.transition,o.transitionValue].filter(Boolean).join(", ")}),[t,e,o,s]),pressHandlers:{onMouseDown:()=>!e&&l(!0),onMouseUp:()=>l(!1),onMouseLeave:()=>l(!1),onBlur:()=>l(!1)}}},Nn=(e,t,n="fadeUp")=>{const[a,o]=r.useState(!1);return r.useEffect(()=>{o(!1);const s=window.requestAnimationFrame(()=>o(!0));return()=>window.cancelAnimationFrame(s)},[t,n]),rr(a,t,n,e)},Wd={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 qd(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}class Ta{constructor(){this.id="lucide"}resolve(t){const n=Wd[t]??qd(t);return Xc[n]??null}}const Jd={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 Xd(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}class Da{constructor(t="regular"){this.weight=t,this.id="phosphor",this._cache=new Map}resolve(t){const n=this._cache.get(t);if(n)return n;const a=Jd[t]??Xd(t),o=Zc[a];if(!o)return null;const s=this.weight,l=i=>r.createElement(o,{weight:s,...i});return this._cache.set(t,l),l}}const Js=r.createContext(null),Xs=r.createContext(null),kr={lucide:new Ta,phosphor:new Da},Rr="lucide";function Zd(e){return!!e&&typeof e=="object"&&typeof e.id=="string"&&typeof e.resolve=="function"}function Qd(e){if(!e)return{defaultId:Rr,providers:{...kr},aliases:{}};if(typeof e=="string")return{defaultId:e,providers:{...kr},aliases:{}};if(Zd(e))return{defaultId:e.id,providers:{...kr,[e.id]:e},aliases:{}};if("default"in e&&"providers"in e){const t=e;return{defaultId:t.default,providers:{...kr,...t.providers},aliases:t.aliases??{}}}return{defaultId:e.provider.id,providers:{...kr,[e.provider.id]:e.provider},aliases:e.aliases??{}}}function eu(e,t){return Object.keys(t).length===0?e:{id:e.id,resolve(n){return e.resolve(t[n]??n)}}}function Zs({provider:e,config:t,children:n}){const a=r.useMemo(()=>Qd(t??e),[t,e]),[o,s]=r.useState(a.providers),[l,i]=r.useState(a.defaultId);r.useEffect(()=>{s(a.providers),i(a.defaultId)},[a]);const c=o[l]??o[Rr],d=r.useMemo(()=>c?eu(c,a.aliases):null,[c,a.aliases]),u=r.useMemo(()=>({providerId:(c==null?void 0:c.id)??Rr,providers:o,aliases:a.aliases,setProvider(m){if(o[m]){i(m);return}process.env.NODE_ENV!=="production"&&console.warn(`[IconProvider] Unknown provider "${m}", falling back to "${Rr}".`),i(Rr)},registerProvider(m,f){s(g=>({...g,[m]:f}))},resolve(m){return(d==null?void 0:d.resolve(m))??null}}),[c,o,a.aliases,d]);return r.createElement(Xs.Provider,{value:u},r.createElement(Js.Provider,{value:d},n))}function Qs(){return r.useContext(Js)}function el(){const e=r.useContext(Xs);if(!e)throw new Error("useIconController must be used inside <App> or <IconProvider>.");return e}const tu=new Ta,W=({name:e,size:t=16,className:n,style:a,provider:o,label:s,weight:l})=>{const i=Qs(),c=o??i??tu;if(!c||typeof e!="string"||!e.trim())return null;const d=c.resolve(e);return d?r.createElement(d,{size:t,className:n,style:a,weight:l,"aria-label":s,"aria-hidden":s?void 0:!0}):null},Cn="btn",Ra="btn-primary",tl="btn-secondary",rl="btn-danger",nl="btn-success",al="btn-warning",ol="btn-info",sl="btn-light",ll="btn-dark",il="btn-outline-primary",cl="btn-outline-secondary",dl="btn-outline-danger",ul="btn-outline-success",ml="btn-link",fl=e=>{switch(e){case"primary":return Ra;case"secondary":return tl;case"danger":return rl;case"success":return nl;case"warning":return al;case"info":return ol;case"light":return sl;case"dark":return ll;case"outline-primary":return il;case"outline-secondary":return cl;case"outline-danger":return dl;case"outline-success":return ul;case"link":return ml;default:return}},bt=({onClick:e,icon:t=void 0,label:n=void 0,badge:a=void 0,title:o=void 0,ariaLabel:s=void 0,disabled:l=!1,loading:i=!1,before:c=void 0,after:d=void 0,wrapperClassName:u=void 0,className:m=void 0,iconClassName:f=void 0,style:g=void 0,loadingLabel:y=void 0,variant:p=void 0,motion:h=void 0}={})=>{var C;const[b,k]=r.useState(i),[w,S]=r.useState(l),[I,A]=r.useState(""),x=B=>{A(B.message??"")},v=me(),R=Zr(w||b,g,h??((C=v.LoadingButton.motion)==null?void 0:C.press)??"press"),M=y??(I||(typeof n=="string"?`${n}...`:n));r.useEffect(()=>{k(i),S(l)},[i,l]);const D=r.createElement("button",{type:"button",title:o,"aria-label":s,className:N(Cn,p?fl(p):m||v.LoadingButton.className,p?m:void 0,b&&"whitespace-nowrap"),style:R.style,disabled:w||b,...R.pressHandlers,onClick:async B=>{B.stopPropagation(),S(!0),k(!0),await(e==null?void 0:e(B,x)),k(!1),S(!1)}},b&&r.createElement(r.Fragment,null,r.createElement("span",{className:N(M&&"mr-1","inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent")}),M&&r.createElement("span",null,M)),t&&!b&&r.createElement(W,{name:t,className:N(n&&"mr-1",f)}),!b&&n);return r.createElement(pe,{className:u},c,r.createElement(Xr,{badge:b?void 0:a},D),d)},Ze=({onClick:e,icon:t=void 0,label:n=void 0,badge:a=void 0,title:o=void 0,disabled:s=!1,before:l=void 0,after:i=void 0,wrapperClassName:c=void 0,className:d=void 0,iconClassName:u=void 0,style:m=void 0,variant:f=void 0,motion:g=void 0}={})=>{var b;const y=me(),p=Zr(s,m,g??((b=y.ActionButton.motion)==null?void 0:b.press)??"press"),h=r.createElement("button",{type:"button",title:o,className:N(Cn,f?fl(f):d||y.ActionButton.className,f?d:void 0),style:p.style,disabled:s,...p.pressHandlers,onClick:k=>{k.preventDefault(),k.stopPropagation(),e==null||e(k)}},t&&r.createElement(W,{name:t,className:N(n&&"mr-1",u)}),n);return r.createElement(pe,{className:c},l,r.createElement("span",{title:s?o:void 0,style:s?{cursor:"not-allowed",display:"inline-flex"}:void 0},r.createElement(Xr,{badge:a},h)),i)},pl=({label:e=void 0,before:t=void 0,after:n=void 0,wrapperClassName:a=void 0,className:o=void 0})=>{const s=Te.useNavigate(),l=me(),i=Me("common");return r.createElement(pe,{className:a},t,r.createElement("a",{href:"#",className:N(Cn,o||l.LinkButton.className),onClick:c=>{c.preventDefault(),s(-1)}},e??i.back),n)},ru=({label:e,href:t,before:n=void 0,after:a=void 0,wrapperClassName:o=void 0,className:s=void 0})=>(me(),r.createElement(pe,{className:o},n,r.createElement("h1",{className:N("m-0 text-2xl font-bold",s)},e+" ",r.createElement("a",{href:t,target:"_blank",rel:"noopener noreferrer"},r.createElement(W,{name:"external-link"}))),a)),nu=({title:e,href:t,imageSrc:n,width:a,before:o=void 0,after:s=void 0,wrapperClassName:l=void 0,className:i=void 0})=>r.createElement(pe,{className:l},o,r.createElement("a",{href:t,className:N("mr-1",i),target:"_blank",title:e,rel:"noopener noreferrer"},r.createElement("img",{src:n,width:a||"100",height:"30",alt:e})),s),Ur="globalVars",gl=r.createContext(void 0),Hr=()=>JSON.parse(localStorage.getItem(Ur)||"{}"),au=({children:e})=>{const[t,n]=r.useState(()=>Hr());r.useEffect(()=>{const l=i=>{i.storageArea===localStorage&&i.key===Ur&&n(Hr())};return window.addEventListener("storage",l),()=>{window.removeEventListener("storage",l)}},[]);const a=l=>{localStorage.setItem(Ur,JSON.stringify(l)),n(l)},o=(l,i)=>{const c={...t,[i]:l};a(c)},s=l=>{const i={...t};delete i[l],a(i)};return r.createElement(gl.Provider,{value:{globalVars:t,setGlobalVars:o,removeGlobalVars:s}},e)},hl=e=>{const t=r.useContext(gl);if(!t)throw new Error("useGlobalVars must be used within a GlobalProvider");const{globalVars:n,setGlobalVars:a,removeGlobalVars:o}=t;return[n[e]??null,s=>a(s,e),()=>o(e)]},Jt=(e=null)=>{const t=Hr();return e?t[e]||{}:t},kn=(e,t)=>{const n={...Hr(),[t]:e};localStorage.setItem(Ur,JSON.stringify(n))},bl=e=>{const t={...Hr()};delete t[e],localStorage.setItem(Ur,JSON.stringify(t))},vl=r.createContext(null),yl=({registry:e,defaultKey:t,children:n})=>{const a=r.useMemo(()=>({registry:e,defaultKey:t}),[e,t]);return r.createElement(vl.Provider,{value:a},n)},_a=e=>{const t=r.useContext(vl);if(!t)throw new Error("useAuthProvider must be used inside <App providers={...} />.");const n=e??t.defaultKey,a=t.registry[n];if(!a)throw new Error(`AuthProvider '${n}' is not registered. Available: ${Object.keys(t.registry).join(", ")}`);return a},fr={basename:e=>e.split("/").filter(Boolean).pop()||"",extname:e=>{const t=e.lastIndexOf(".");return t>0?e.slice(t):""},dirname:e=>{const t=e.split("/").filter(Boolean);return t.pop(),"/"+t.join("/")},filename:e=>{const t=e.split("/").pop()||"",n=t.includes(".")?t.slice(t.lastIndexOf(".")):"";return t.replace(n,"")},parentBasename:e=>{const t=e.split("/").filter(Boolean);return t.pop(),t.pop()||""},parentDirname:e=>{const t=e.split("/").filter(Boolean);return t.pop(),t.pop(),"/"+t.join("/")},parentFilename:e=>{const t=e.split("/").filter(Boolean);t.pop();const n=t.pop()||"",a=n.includes(".")?n.slice(n.lastIndexOf(".")):"";return n.replace(a,"")},append:(e,t)=>{const n=e.split("/").slice(0,-1).join("/"),a=e.split("/").pop()||"",o=a.includes(".")?a.slice(a.lastIndexOf(".")):"",s=a.replace(o,"");return(n?n+"/":"")+s+t+o},prepend:(e,t)=>{const n=e.split("/").slice(0,-1).join("/"),a=e.split("/").pop()||"",o=a.includes(".")?a.slice(a.lastIndexOf(".")):"",s=a.replace(o,"");return(n?n+"/":"")+t+s+o},changeFilename:(e,{prefix:t="",suffix:n="",ext:a=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=a!==null?a?a.startsWith(".")?a:"."+a:"":l;return(o?o+"/":"")+t+i+n+c},join:(...e)=>e.join("/").replace(/\/+/g,"/"),parse:e=>{const t=fr.extname(e),n=fr.basename(e),a=fr.dirname(e),o=e.startsWith("/")?"/":"",s=n.replace(t,"");return{root:o,dir:a,base:n,ext:t,name:s}}},xl=({src:e,width:t=void 0,height:n=void 0,title:a=void 0,alt:o=void 0,fit:s="cover",badge:l=void 0,feedback:i=void 0,before:c=void 0,after:d=void 0,wrapperClassName:u=void 0,className:m=void 0})=>{var C,B,E,_,F,O;const f=me(),[g,y]=r.useState(Dr),p=((B=(C=f.ImageAvatar)==null?void 0:C.motion)==null?void 0:B.enter)??!1,h=((_=(E=f.ImageAvatar)==null?void 0:E.motion)==null?void 0:_.hover)??!1,b=h!==!1,k=Nn(void 0,p,!1),[w,S]=r.useState(!1),I=rr(w,h,!1),A=e&&e.split("?")[0],x=`avatar::${A}`,v=`avatar-fetch-failed::${A}`,R=o||a||fr.filename(e||Dr);r.useEffect(()=>{if(!e||e.startsWith("data:")){y(e||Dr);return}const V=localStorage.getItem(x);if(V){y(V);return}y(e);const j=Number(localStorage.getItem(v)||0);j&&Date.now()-j<24*60*60*1e3||fetch(e).then(z=>{if(!z.ok)throw new Error(`HTTP ${z.status}`);return z.blob()}).then(z=>{const P=new FileReader;P.onloadend=()=>{const $=P.result;localStorage.setItem(x,$),localStorage.removeItem(v),y($)},P.readAsDataURL(z)}).catch(z=>{console.warn("ImageAvatar:",z.message),localStorage.setItem(v,String(Date.now()))})},[e,x,v]);const M=t??n??void 0,D={...t&&n?{width:t,height:n,objectFit:s}:M?{width:M,height:M,objectFit:s}:{objectFit:s},...b?I:{}};return r.createElement(pe,{className:N("flex items-center gap-3",u||((F=f.ImageAvatar)==null?void 0:F.wrapperClassName))},c&&r.createElement("div",{className:"shrink-0 self-center"},c),r.createElement("div",{className:N("relative shrink-0",b&&"overflow-hidden"),style:k,onMouseEnter:b?()=>S(!0):void 0,onMouseLeave:b?()=>S(!1):void 0},r.createElement("img",{src:g,alt:R,width:t??M,height:n??M,className:N(m||((O=f.ImageAvatar)==null?void 0:O.className)),title:a,style:D,onError:()=>y(Dr)}),l&&r.createElement("span",{className:N("badge badge-overlay absolute top-0 right-0 translate-x-1/4 -translate-y-1/4 z-10","badge-"+(l.variant||"success"),!l.content&&"!p-0 !min-w-0 w-3 h-3 rounded-full",l.className)},l.content),i&&r.createElement("div",{className:"mt-1 text-xs text-center"},i)),d&&r.createElement("div",{className:"min-w-0 self-center"},d))},ar=(e,t,n="")=>t.filter(a=>{const o=e==null?void 0:e[a];return o==null||o===""}).map(a=>`${n}${a}`),Tt=(e,t)=>({configured:t.length===0,missingKeys:t,reason:t.length?`${e} is not configured. Missing: ${t.join(", ")}.`:void 0}),Fa=(e,t="Provider")=>{if(!e)return{configured:!1,reason:`${t} is not registered.`};if(e.getConfigurationState)return e.getConfigurationState();if(e.isConfigured){const n=e.isConfigured();return{configured:n,reason:n?void 0:`${t} is not configured.`}}return{configured:!0}},Oa="/__/authorize",hr="auths";function ou(){const e=new Uint32Array(28);return window.crypto.getRandomValues(e),Array.from(e,t=>`0${t.toString(16)}`.substr(-2)).join("")}async function su(e){const n=new TextEncoder().encode(e),a=await window.crypto.subtle.digest("SHA-256",n);return btoa(String.fromCharCode(...new Uint8Array(a))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}const lu=(e,t,n)=>{const a=window.screen.width/2-n/2,o=window.screen.height/2-n/2,s=`width=${n},height=${n},top=${o},left=${a}`;return window.open(e,t,s)};function iu({authServer:e,clientID:t,scopes:n=void 0,refreshParamName:a="access_type"}){const o=ou();localStorage.setItem("authChallenge",JSON.stringify({authServer:e,clientID:t,codeVerifier:o})),su(o).then(s=>{const l=new URLSearchParams({response_type:"code",client_id:t,redirect_uri:`${window.location.origin}${Oa}`,scope:n?n.join(" "):"",code_challenge:s,code_challenge_method:"S256",[a]:"offline"});lu(`https://${e}/authorize?${l.toString()}`,"auth",600)})}const wl=(e,t,n)=>{kn({[t]:{...n,server:e,client_id:t,iat:Math.floor(Date.now()/1e3)}},hr)},cu=()=>{const e=Te.useLocation().search,t=Me("common");return r.useEffect(()=>{const a=new URLSearchParams(e).get("code"),s=((d,u)=>{try{return JSON.parse(localStorage.getItem(d)||"")||u}catch{return u}})("authChallenge");if(!a||!s)return;const{authServer:l,clientID:i,codeVerifier:c}=s;wn(`https://${l}/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:{grant_type:"authorization_code",client_id:i,code:a,redirect_uri:`${window.location.origin}${Oa}`,code_verifier:c}}).then(d=>{wl(l,i,d),localStorage.removeItem("authChallenge"),window.close()}).catch(d=>console.error("Error:",d))},[e]),r.createElement("div",null,t.loading)},El=(e,t,n)=>wn(`https://${e}/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:{grant_type:"refresh_token",client_id:t,refresh_token:n}}).then(a=>(wl(e,t,a),a.access_token)).catch(a=>(console.error("Error:",a),localStorage.removeItem(hr),null)),Nl=(e,t=!0)=>{const[n]=hl(hr),a=(n==null?void 0:n[e])||{},o=Math.floor(Date.now()/1e3)>=((a==null?void 0:a.iat)??0)+((a==null?void 0:a.expires_in)??0);return!!(a&&(a!=null&&a.access_token)&&(!o||t&&o&&a.refresh_token&&(El(a.server??"",a.client_id??"",a.refresh_token)||!0)))},oa=e=>{const t=Jt(hr);return t==null?void 0:t[e]},du=e=>{const t=Jt(hr)||{};t[e]&&(delete t[e],kn(t,hr))},Sn=e=>{const t=oa(e),n=Math.floor(Date.now()/1e3)>((t==null?void 0:t.iat)??0)+((t==null?void 0:t.expires_in)??0);return!n&&(t!=null&&t.access_token)?Promise.resolve(t.access_token):n&&(t!=null&&t.refresh_token)?El(t.server??"",t.client_id??"",t.refresh_token):Promise.resolve(null)},uu=e=>e==="signOut"||e==="disconnect",Cl=({provider:e,intent:t="signIn",aspect:n="button",scopes:a=void 0,iconLogout:o="log-out",avatarClass:s=void 0,options:l={},label:i=void 0,icon:c=void 0,title:d=void 0,className:u=void 0,disabled:m=!1,...f})=>{const g=_a(e),y=me(),p=Me("auth"),h=e||"AuthProvider",b=r.useCallback(()=>Fa(g,h),[g,h]),k=r.useMemo(()=>b(),[b]),w=k.configured,[S,I]=r.useState(()=>w?g.getUser():null),[A,x]=r.useState(()=>{var E;return w&&(((E=g.isAuthenticated)==null?void 0:E.call(g))??!!g.getUser())}),[v,R]=r.useState(!1),M=k.reason||Ve(p.notConfigured,{provider:h});r.useEffect(()=>{var _;return b().configured?(I(g.getUser()),x(((_=g.isAuthenticated)==null?void 0:_.call(g))??!!g.getUser()),g.onAuthChange(F=>{var O;I(F),x(((O=g.isAuthenticated)==null?void 0:O.call(g))??!!F)})):(I(null),x(!1),R(!1),()=>{})},[g,b]);const D=()=>{var _;if(!b().configured){I(null),x(!1);return}const E=g.getUser();I(E),x(((_=g.isAuthenticated)==null?void 0:_.call(g))??!!E)},C=async()=>{if(b().configured){if(uu(t)){await g.signOut(),D();return}if(!g.signIn)throw new Error(p.notImplemented);await g.signIn({scopes:a,intent:t}),D()}},B={...f,...l,label:l.label??i??(A?p.connected:t==="signIn"?p.signIn:p.connect),icon:l.icon??c??(A?"link":"link-break"),title:w?l.title??d:M,className:l.className??u,disabled:!w||(l.disabled??m),style:w?l.style??f.style:{...f.style||{},...l.style||{},opacity:.55,cursor:"not-allowed"}};if(n==="avatar"){const E=(S==null?void 0:S.displayName)??(S==null?void 0:S.email)??(A?p.authenticated:p.signIn);return r.createElement("div",{className:u||y.SignIn.className,style:{position:"relative",display:"inline-flex"},title:w?void 0:M},r.createElement("button",{type:"button",className:"border-0 bg-transparent p-0",title:w?E:M,"aria-label":E,disabled:!w||m,"aria-disabled":!w||m,style:w?void 0:{opacity:.55,cursor:"not-allowed"},onClick:_=>{_.preventDefault(),_.stopPropagation(),!(!w||m)&&R(F=>!F)}},r.createElement(xl,{src:(S==null?void 0:S.photoURL)??Dr,title:w?E:M,height:36,className:s||y.SignIn.avatarClass})),v&&r.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"},!A&&r.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:C},i??p.signIn.toUpperCase()),A&&r.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 g.signOut(),D(),R(!1)}},o&&r.createElement(W,{name:o,className:"mr-2"}),p.signOut.toUpperCase())))}return r.createElement(Ze,{...B,onClick:C})},kl=r.createContext(null),Sl=({registry:e,defaultKey:t,children:n})=>{const a=r.useMemo(()=>({registry:e,defaultKey:t}),[e,t]);return r.createElement(kl.Provider,{value:a},n)},Dt=e=>{const t=r.useContext(kl);if(!t)throw new Error("useDataProvider must be used inside <App>.");const n=e??t.defaultKey,a=t.registry[n];if(!a)throw new Error(`DataProvider '${n}' is not registered. Available: ${Object.keys(t.registry).join(", ")}`);return a};function Al({children:e,show:t=!1,icon:n=void 0,title:a=void 0,description:o=void 0,before:s=void 0,after:l=void 0,wrapperClassName:i=void 0,className:c=void 0}){const d=me();return n=n||d.Loader.icon,a=a||d.Loader.title,o=o||d.Loader.description,t?r.createElement(pe,{className:i||d.Loader.wrapperClassName},r.createElement("div",{className:"relative "+(c||d.Loader.className),style:{minHeight:"200px"}},r.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||a||o)&&r.createElement("div",{className:"flex flex-col items-center justify-center gap-2 p-4 text-center"},n&&r.createElement(W,{name:n,size:32,className:"animate-spin text-primary"}),a&&r.createElement("p",{className:"text-sm font-semibold text-foreground"},a),o&&r.createElement("p",{className:"text-xs text-muted-foreground"},o)),l),e)):e}const mu="rounded-lg border border-border bg-card text-card-foreground shadow-sm",fu="flex items-center gap-3 border-b border-border px-4 py-3",pu="p-4",gu="border-t border-border px-4 py-3",$a=({children:e,title:t=void 0,header:n=void 0,footer:a=void 0,loading:o=void 0,wrapperClassName:s=void 0,className:l=void 0,headerClassName:i=void 0,bodyClassName:c=void 0,footerClassName:d=void 0,before:u=void 0,after:m=void 0})=>{const f=me(),g=s??f.Card.wrapperClassName??(u||m?"flex items-center gap-2":void 0);return r.createElement(pe,{className:g},u,r.createElement("div",{className:N(mu,f.Card.className,l)},n||t?r.createElement("div",{className:N(fu,f.Card.headerClassName,i)},t?r.createElement("h5",{className:"m-0 whitespace-nowrap text-base leading-none font-semibold"},t):null,n):null,r.createElement("div",{className:N(pu,f.Card.bodyClassName,c)},r.createElement(Al,{show:o??f.Card.loading},e)),a?r.createElement("div",{className:N(gu,f.Card.footerClassName,d)},a):null),m)},or=e=>r.createElement(La,{...e}),La=({children:e,title:t=void 0,header:n=void 0,footer:a=void 0,onClose:o=void 0,onSave:s=void 0,onDelete:l=void 0,size:i=void 0,position:c=void 0,allowFullscreen:d=!1,showCancel:u=!0,before:m=void 0,after:f=void 0,wrapperClassName:g=void 0,className:y=void 0,headerClassName:p=void 0,titleClassName:h=void 0,subtitleClassName:b=void 0,bodyClassName:k=void 0,footerClassName:w=void 0,closeOnBackdrop:S=!0,zIndex:I=void 0,stackedBehind:A=!1,motion:x=void 0})=>{var he,fe,_e;const v=me(),R=Me("modal"),[M,D]=r.useState(!1),C=r.useRef(!1),B=r.useRef(void 0),[E,_]=r.useState(i),F={sm:"max-w-sm",md:"max-w-md",lg:"max-w-2xl",xl:"max-w-4xl","2xl":"max-w-6xl",fullscreen:"max-w-none w-screen h-dvh rounded-none"}[E||v.Modal.size||"lg"],O={sm:"w-72",md:"w-96",lg:"w-[36rem]",xl:"w-[48rem]","2xl":"w-[64rem]",fullscreen:"w-screen"}[E||v.Modal.size||"lg"],V={sm:"max-h-[30vh]",md:"max-h-[45vh]",lg:"max-h-[60vh]",xl:"max-h-[85vh]","2xl":"max-h-[90vh]",fullscreen:"h-dvh max-h-none"}[E||v.Modal.size||"lg"],j={center:{coverClass:"fixed inset-0 z-50 flex items-center justify-center overflow-y-auto p-4",dialogClass:N("relative z-50 flex w-full flex-col overflow-hidden rounded-lg border border-border/60 bg-card shadow-xl",E!=="fullscreen"&&"max-h-[calc(100dvh-2rem)]",F,g||v.Modal.wrapperClassName),contentClass:N("flex min-h-0 flex-1 flex-col",y||v.Modal.className),headerClassName:N("flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3",p||v.Modal.headerClassName),titleClassName:N("text-lg font-semibold leading-none",h||v.Modal.titleClassName),subtitleClassName:N("mt-1 text-sm text-muted-foreground",b||v.Modal.subtitleClassName),bodyClassName:N("min-h-0 flex-1 overflow-auto p-4",k||v.Modal.bodyClassName),footerClassName:N("flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3",w||v.Modal.footerClassName)},top:{coverClass:"fixed inset-0 z-50",dialogClass:N("fixed left-0 right-0 top-0 z-50 flex flex-col border-b border-border/60 bg-card shadow-xl",V,g||v.Modal.wrapperClassName),contentClass:N("flex min-h-0 flex-1 flex-col",y||v.Modal.className),headerClassName:N("flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3",p||v.Modal.headerClassName),titleClassName:N("text-lg font-semibold leading-none",h||v.Modal.titleClassName),subtitleClassName:N("mt-1 text-sm text-muted-foreground",b||v.Modal.subtitleClassName),bodyClassName:N("min-h-0 flex-1 overflow-auto p-4",k||v.Modal.bodyClassName),footerClassName:N("flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3",w||v.Modal.footerClassName)},left:{coverClass:"fixed inset-0 z-50",dialogClass:N("fixed bottom-0 left-0 top-0 z-50 flex max-w-full flex-col border-r border-border/60 bg-card shadow-xl",O,g||v.Modal.wrapperClassName),contentClass:N("flex min-h-0 flex-1 flex-col",y||v.Modal.className),headerClassName:N("flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3",p||v.Modal.headerClassName),titleClassName:N("text-lg font-semibold leading-none",h||v.Modal.titleClassName),subtitleClassName:N("mt-1 text-sm text-muted-foreground",b||v.Modal.subtitleClassName),bodyClassName:N("min-h-0 flex-1 overflow-auto p-4",k||v.Modal.bodyClassName),footerClassName:N("flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3",w||v.Modal.footerClassName)},right:{coverClass:"fixed inset-0 z-50",dialogClass:N("fixed bottom-0 right-0 top-0 z-50 flex max-w-full flex-col border-l border-border/60 bg-card shadow-xl",O,g||v.Modal.wrapperClassName),contentClass:N("flex min-h-0 flex-1 flex-col",y||v.Modal.className),headerClassName:N("flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3",p||v.Modal.headerClassName),titleClassName:N("text-lg font-semibold leading-none",h||v.Modal.titleClassName),subtitleClassName:N("mt-1 text-sm text-muted-foreground",b||v.Modal.subtitleClassName),bodyClassName:N("min-h-0 flex-1 overflow-auto p-4",k||v.Modal.bodyClassName),footerClassName:N("flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3",w||v.Modal.footerClassName)},bottom:{coverClass:"fixed inset-0 z-50",dialogClass:N("fixed bottom-0 left-0 right-0 z-50 flex flex-col border-t border-border/60 bg-card shadow-xl",V,g||v.Modal.wrapperClassName),contentClass:N("flex min-h-0 flex-1 flex-col",y||v.Modal.className),headerClassName:N("flex items-center justify-between gap-3 border-b border-border/60 px-4 py-3",p||v.Modal.headerClassName),titleClassName:N("text-lg font-semibold leading-none",h||v.Modal.titleClassName),subtitleClassName:N("mt-1 text-sm text-muted-foreground",b||v.Modal.subtitleClassName),bodyClassName:N("min-h-0 flex-1 overflow-auto p-4",k||v.Modal.bodyClassName),footerClassName:N("flex items-center justify-end gap-3 border-t border-border/60 px-4 py-3",w||v.Modal.footerClassName)}},z=E==="fullscreen"?"center":c||v.Modal.position,P=j[z],$=E==="fullscreen"?N(P.coverClass,"!overflow-hidden !p-0"):P.coverClass;r.useEffect(()=>{const ue=window.document.body.style.overflow;window.document.body.style.overflow="hidden";const ke=window.requestAnimationFrame(()=>D(!0));return()=>{window.cancelAnimationFrame(ke),B.current!==void 0&&window.clearTimeout(B.current),window.document.body.style.overflow=ue||"auto"}},[]);const T=x??((he=v.Modal.motion)==null?void 0:he[z])??"fade",L=En(T,T),U=()=>{if(C.current)return;C.current=!0,D(!1),window.document.body.style.overflow="auto";const ue=L.transition.duration+L.transition.delay;B.current=window.setTimeout(()=>{o==null||o()},ue)},de=rr(M,T,T),Z={...rr(M,((fe=v.Modal.motion)==null?void 0:fe.backdrop)??"fade",((_e=v.Modal.motion)==null?void 0:_e.backdrop)??"fade"),cursor:S&&o?"pointer":"default",...I!==void 0?{zIndex:I-10}:{}},q={cursor:S&&o?"pointer":"default",...I!==void 0?{zIndex:I}:{},...A?{pointerEvents:"none"}:{}},se=A?{transform:c==="left"?"scale(0.94) translateX(-14px)":c==="right"?"scale(0.94) translateX(14px)":c==="bottom"?"scale(0.94) translateY(14px)":c==="top"?"scale(0.94) translateY(-14px)":"scale(0.94)",transformOrigin:c==="left"?"left center":c==="right"?"right center":c==="bottom"?"bottom center":c==="top"?"top center":"center",transition:"transform 200ms ease, filter 200ms ease",filter:"brightness(0.7)"}:{},re=a!==!1&&(a||s||l||u&&o),ye="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 er.createPortal(r.createElement(r.Fragment,null,r.createElement("div",{className:$,style:q,onClick:()=>{S&&o&&U()}},r.createElement("div",{className:P.dialogClass,style:{...de,...se,...I!==void 0?{zIndex:I}:{}},onClick:ue=>ue.stopPropagation()},m,r.createElement("div",{className:P.contentClass},(n||t||d||o)&&r.createElement("div",{className:P.headerClassName},r.createElement("div",{className:"min-w-0"},t&&r.createElement("h3",{className:P.titleClassName},t),t&&n&&r.createElement("div",{className:P.subtitleClassName},n),!t&&n&&(typeof n=="string"?r.createElement("h3",{className:P.titleClassName},n):n)),(d||o)&&r.createElement("div",{className:"ml-auto flex shrink-0 items-center gap-1"},d&&r.createElement("button",{type:"button",title:E==="fullscreen"?"Exit fullscreen":"Enter fullscreen","aria-label":E==="fullscreen"?"Exit fullscreen":"Enter fullscreen",className:ye,onClick:ue=>{ue.preventDefault(),ue.stopPropagation(),_(ke=>ke==="fullscreen"?i==="fullscreen"?"lg":i:"fullscreen")}},r.createElement(W,{name:E==="fullscreen"?v.Modal.iconCollapse:v.Modal.iconExpand,size:18})),o&&r.createElement("button",{type:"button",title:R.close,"aria-label":R.close,className:ye,onClick:ue=>{ue.preventDefault(),ue.stopPropagation(),U()}},r.createElement(W,{name:"x",size:20})))),r.createElement("div",{className:P.bodyClassName},e),re&&r.createElement("div",{className:P.footerClassName},a,!a&&s&&r.createElement(bt,{variant:"primary",label:R.save,onClick:async ue=>{ue.preventDefault(),await s(ue)&&U()}}),!a&&l&&r.createElement(bt,{variant:"danger",label:R.delete,onClick:async ue=>{ue.preventDefault(),await l(ue),U()}}),!a&&u&&o&&r.createElement(Ze,{variant:"link",label:R.cancel,onClick:U}))),f)),!A&&r.createElement("div",{"data-rf-modal-backdrop":"","aria-hidden":"true",className:"fixed inset-0 z-40 bg-black/60 backdrop-blur-sm",style:Z,onClick:()=>{S&&o&&U()}})),document.body)},hu=({children:e,title:t=void 0,onYes:n=void 0,onNo:a=void 0,onClose:o=void 0})=>r.createElement(La,{title:t,onClose:o,allowFullscreen:!1,footer:r.createElement(r.Fragment,null,n&&r.createElement(bt,{variant:"primary",label:"Yes",onClick:async s=>{s.preventDefault(),await n(s),o==null||o()}}),a&&r.createElement(bt,{variant:"secondary",label:"No",onClick:async s=>{s.preventDefault(),await a(s),o==null||o()}}))},e),bu=({children:e,title:t=void 0,onClose:n=void 0})=>r.createElement(La,{title:t,onClose:n,allowFullscreen:!1,footer:r.createElement(r.Fragment,null,r.createElement(Ze,{variant:"primary",label:"Ok",onClick:n}))},e),ja=({src:e,placeholder:t=void 0,label:n=void 0,title:a=void 0,fit:o=void 0,position:s=void 0,feedback:l=void 0,width:i=void 0,height:c=void 0,srcset:d=void 0,sizes:u=void 0,before:m=void 0,after:f=void 0,wrapperClassName:g=void 0,className:y=void 0})=>{var x,v;const p=me(),h=((x=p.Image.motion)==null?void 0:x.enter)??!1,b=((v=p.Image.motion)==null?void 0:v.hover)??!1,k=b!==!1,w=Nn(void 0,h,!1),[S,I]=r.useState(!1),A=rr(S,b,!1);return r.createElement(pe,{className:N("flex items-center gap-4",g||p.Image.wrapperClassName)},m&&r.createElement("div",{className:"shrink-0 self-center"},m),r.createElement("div",{className:N("flex min-w-0 flex-col",k&&"overflow-hidden"),style:w,onMouseEnter:k?()=>I(!0):void 0,onMouseLeave:k?()=>I(!1):void 0},r.createElement("img",{src:e||t||aa,alt:n||a||e,title:a,className:y||p.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}:{},...k?A:{}},width:i,height:c,srcSet:d,sizes:u}),l&&r.createElement("div",{className:"mt-2 text-sm text-muted-foreground"},l)),f&&r.createElement("div",{className:"shrink-0 self-center"},f))},vu=({url:e=void 0,label:t=void 0,logo:n=void 0,width:a=void 0,height:o=36,wrapperClassName:s=void 0,className:l=void 0,logoClassName:i=void 0,labelClassName:c=void 0})=>{const d=me(),u=r.createElement(r.Fragment,null,r.createElement(ja,{src:n||Td,width:a,height:o}),t&&r.createElement("span",{className:c||d.Brand.labelClassName},t));return r.createElement(pe,{className:s},r.createElement("div",{className:l||d.Brand.className},e?r.createElement(Te.Link,{to:e,className:i||d.Brand.logoClassName},u):r.createElement("span",{className:i||d.Brand.logoClassName},u)))};function Ml(e){const{items:t,rootItem:n,baseUrl:a,stringify:o=!1}=e,l={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[...n?[n]:[],...t].map((i,c)=>({"@type":"ListItem",position:c+1,name:i.label,...i.href?{item:`${a}${i.href}`}:{}}))};return o?JSON.stringify(l):l}function yu(e,t){if(Array.isArray(e))return e;const n=Wr(e||t).split("/").filter(Boolean);let a="";const o=n.map(s=>(a+=`/${s}`,{label:s,href:a}));return o.length===0?o:[...o.slice(0,-1),{label:o[o.length-1].label}]}function xu(e){if(e)return typeof e=="string"?{label:e}:e}const wu=()=>r.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},r.createElement("polyline",{points:"9 18 15 12 9 6"})),Eu=({value:e})=>r.createElement("span",{className:"text-muted-foreground/60 select-none flex items-center","aria-hidden":!0},e==="chevron"?r.createElement(wu,null):e),Lo=({href:e,label:t})=>r.createElement(Te.Link,{to:e,className:"text-muted-foreground hover:text-foreground transition-colors"},t),Nu=({label:e})=>r.createElement("span",{className:"text-foreground font-medium","aria-current":"page"},e),Il=({trail:e=void 0,rootItem:t=void 0,separator:n="/",jsonLd:a=!1,baseUrl:o=void 0,className:s=void 0})=>{const l=Te.useLocation(),i=yu(e,l.pathname),c=xu(t),d=[];if(c){const m=c.href?r.createElement(Lo,{href:c.href,label:c.label}):r.createElement("span",{className:"text-muted-foreground"},c.label);d.push({key:"__root",node:m})}if(i.forEach((m,f)=>{const g=`${m.href??"__item"}-${f}`,y=m.node?m.node:m.href?r.createElement(Lo,{href:m.href,label:m.label}):r.createElement(Nu,{label:m.label});d.push({key:g,node:y})}),!d.length)return null;const u=a?Ml({items:i,rootItem:c,baseUrl:o??(typeof window<"u"?window.location.origin:""),stringify:!0}):null;return r.createElement(r.Fragment,null,r.createElement("nav",{"aria-label":"Breadcrumb",className:s},r.createElement("ol",{className:"flex flex-wrap items-center gap-1.5 text-sm"},d.map((m,f)=>r.createElement(r.Fragment,{key:m.key},f>0&&r.createElement("li",null,r.createElement(Eu,{value:n})),r.createElement("li",null,m.node))))),u&&r.createElement("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:u}}))},Cu=({children:e,showIndicators:t=!1,showControls:n=!1,showCaption:a=!1,dark:o=!1,autoPlay:s=void 0,initialSlide:l=0,renderCaption:i=void 0,onSlideClick:c=void 0})=>{const d=me(),u=Me("common"),m=r.Children.toArray(e).filter(r.isValidElement),f=m.length;t=t||d.Carousel.showIndicators,n=n||d.Carousel.showControls,a=a||d.Carousel.showCaption,o=o||d.Carousel.dark;const g=d.Carousel.autoPlay;s=s||(typeof g=="object"?g:void 0);const y=f>0?Math.min(Math.max(l,0),f-1):0,[p,h]=r.useState(!1),[b,k]=r.useState(y);r.useEffect(()=>{k(y)},[y]);const w=r.useCallback(x=>{if(f<=0)return;if((s==null?void 0:s.wrap)??!0){const R=(x+f)%f;k(R);return}k(Math.min(Math.max(x,0),f-1))},[s==null?void 0:s.wrap,f]),S=r.useCallback(()=>w(b-1),[b,w]),I=r.useCallback(()=>w(b+1),[b,w]);r.useEffect(()=>{if(!s||f<=1||s.pause==="hover"&&p)return;const x=window.setInterval(()=>{k(v=>{const R=v+1;return R<f?R:s.wrap?0:v})},s.interval||2e3);return()=>window.clearInterval(x)},[s,p,f]);const A=x=>{if(!a)return null;if(i)return i(x);const{alt:v,description:R}=x.props;return!v&&!R?null:r.createElement("div",{className:N("absolute inset-x-4 bottom-4 hidden rounded-lg px-4 py-3 md:block",o?"bg-white/80 text-slate-900":"bg-black/60 text-white")},v&&r.createElement("h5",{className:"text-sm font-semibold"},v),R&&r.createElement("p",{className:"mt-1 text-sm opacity-90"},R))};return f===0?null:r.createElement("div",{className:"relative overflow-hidden rounded-xl",onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1)},r.createElement("div",{className:N("relative min-h-0",c&&"cursor-pointer"),onClick:c},m.map((x,v)=>{const R=v===b;return r.createElement("div",{key:v,"aria-hidden":!R,className:N("relative transition-opacity duration-300 ease-out",R?"opacity-100":"pointer-events-none absolute inset-0 opacity-0")},x,(t||n||a)&&p&&r.createElement("div",{className:N("pointer-events-none absolute inset-0 opacity-20",o?"bg-white":"bg-black")}),p&&A(x))})),t&&f>1&&r.createElement("ol",{className:"absolute inset-x-0 bottom-4 z-10 flex items-center justify-center gap-2 px-4"},m.map((x,v)=>r.createElement("li",{key:v},r.createElement("button",{type:"button","aria-label":`${u.pageNavigation} ${v+1}`,"aria-current":v===b?"true":void 0,onClick:()=>w(v),className:N("h-2.5 w-2.5 rounded-full border transition-all",v===b?"scale-110 border-white bg-white":"border-white/60 bg-white/30 hover:bg-white/60")})))),n&&p&&f>1&&r.createElement(r.Fragment,null,r.createElement("button",{type:"button","aria-label":u.previous,onClick:x=>{x.stopPropagation(),S()},className:"absolute left-3 top-1/2 z-10 inline-flex h-10 w-10 -translate-y-1/2 items-center justify-center rounded-full bg-background/85 text-foreground shadow-md transition-colors hover:bg-background"},r.createElement(W,{name:"chevron-left",size:18})),r.createElement("button",{type:"button","aria-label":u.next,onClick:x=>{x.stopPropagation(),I()},className:"absolute right-3 top-1/2 z-10 inline-flex h-10 w-10 -translate-y-1/2 items-center justify-center rounded-full bg-background/85 text-foreground shadow-md transition-colors hover:bg-background"},r.createElement(W,{name:"chevron-right",size:18}))))},Pl=({menuKey:e,as:t="ul",badges:n={},before:a=void 0,after:o=void 0,wrapperClassName:s=void 0,className:l=void 0,headerClassName:i=void 0,itemClassName:c=void 0,linkClassName:d=void 0,iconClassName:u=void 0,textClassName:m=void 0,badgeClassName:f=void 0,arrowClassName:g=void 0,submenuClassName:y=void 0})=>{const p=So(e),h=me(),b=({item:w,index:S})=>{var M;const[I,A]=r.useState(w.active);r.useEffect(()=>{A(w.active)},[w]);const x=(((M=w.children)==null?void 0:M.length)??0)>0,v=(w.title??"").toLowerCase(),R=()=>r.createElement("span",{className:u??h.Menu.iconClassName},r.createElement(W,{name:w.icon}));return w.path?r.createElement("li",{className:N(c??h.Menu.itemClassName)},r.createElement(Te.Link,{to:w.path.split("*")[0],className:N(d??h.Menu.linkClassName,w.active&&"bg-primary/10 text-primary"),...x&&{},onClick:D=>{x&&!Aa(D,"a")&&(D.preventDefault(),A(C=>!C))}},w.icon&&r.createElement(R,null),r.createElement("span",{className:m??h.Menu.textClassName},w.title),n[v]&&r.createElement(Vr,{variant:n[v].type,className:f??h.Menu.badgeClassName},n[v].children),x&&r.createElement("span",{className:N(g??h.Menu.arrowClassName,"ml-auto inline-flex shrink-0 items-center justify-center text-muted-foreground transition-transform duration-200",I&&"rotate-90")},r.createElement(W,{name:"chevron-right",size:14}))),x&&r.createElement("div",{className:N("grid transition-[grid-template-rows,opacity] duration-200 ease-out",I?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0")},r.createElement("div",{className:"min-h-0 overflow-hidden"},(()=>{const D=t;return r.createElement(D,{className:y??h.Menu.submenuClassName},w.children.map((C,B)=>r.createElement(b,{key:B,item:C,index:B})))})()))):r.createElement("li",{key:S,className:i??h.Menu.headerClassName},w.icon&&r.createElement(R,null),w.title&&(/^-+$/.test(w.title)?r.createElement("hr",{className:"m-0"}):r.createElement("span",null,w.title)))},k=t;return r.createElement(pe,{className:s??h.Menu.wrapperClassName},a,r.createElement(k,{className:l??h.Menu.className},p.map((w,S)=>r.createElement(b,{key:S,item:w,index:S}))),o)},mt=({children:e,trigger:t,badge:n=void 0,header:a=void 0,footer:o=void 0,defaultOpen:s=!1,open:l=void 0,onOpenChange:i=void 0,staticOpen:c=!1,position:d=void 0,placement:u="bottom",strategy:m="fixed",wrapperClassName:f=void 0,className:g=void 0,before:y=void 0,after:p=void 0,triggerClassName:h=void 0,menuClassName:b=void 0,badgeClassName:k=void 0,headerClassName:w=void 0,footerClassName:S=void 0,motion:I=void 0})=>{var q,se;const A=me(),[x,v]=r.useState(s),R=r.useRef(null),M=r.useRef(null),D=r.useRef(null),C=r.useId(),B=c?!0:l??x,[E,_]=r.useState("bottom"),[F,O]=r.useState(void 0),[V,j]=r.useState(null),z=!c&&t!==void 0,P=rr(B,I??((q=A.Dropdown.motion)==null?void 0:q.open)??"fadeDown",((se=A.Dropdown.motion)==null?void 0:se.open)??"fadeDown"),$=r.useCallback(re=>{c||(l===void 0&&v(re),i==null||i(re))},[c,l,i]);r.useEffect(()=>{if(!B||c)return;const re=he=>{var fe;(fe=R.current)!=null&&fe.contains(he.target)||$(!1)},ye=he=>{he.key==="Escape"&&$(!1)};return window.document.addEventListener("pointerdown",re),window.document.addEventListener("keydown",ye),()=>{window.document.removeEventListener("pointerdown",re),window.document.removeEventListener("keydown",ye)}},[c,B,$]),r.useEffect(()=>{if(!B||c||!M.current)return;const re=M.current.getBoundingClientRect(),ye=window.innerHeight-re.bottom-8,he=re.top-8;let fe;if(u==="auto"){const J=D.current?D.current.scrollHeight:240;fe=ye<J+8?"top":"bottom",_(fe)}else fe=u==="top"?"top":"bottom";if(O(Math.max(160,fe==="top"?he:ye)),m==="absolute")return;const ue=d==="end",ke=d==="start";j(fe==="top"?{bottom:window.innerHeight-re.top+4,...ue?{right:window.innerWidth-re.right}:ke?{left:re.left}:{left:re.left}}:{top:re.bottom+4,...ue?{right:window.innerWidth-re.right}:ke?{left:re.left}:{left:re.left}})},[B,u,d,c,m]);function T(re){return typeof re=="object"&&re!==null&&!r.isValidElement(re)&&("icon"in re||"text"in re)}const L=z?r.createElement(Tl,{className:h,badge:n,badgeClassName:k,motion:I,title:T(t)?t.title:void 0,onToggle:()=>$(!B),open:B,menuId:C,buttonRef:M},T(t)?r.createElement(r.Fragment,null,t.icon&&r.createElement(W,{name:t.icon,className:t.text?"mr-2":void 0}),t.text):t):null,U=f??A.Dropdown.wrapperClassName??(y||p?"flex items-center gap-2":void 0),de=E==="top"?"bottom-full mb-1":"top-full mt-1",Z=d==="end"?"right-0":"left-0";return r.createElement(pe,{className:U},y,r.createElement("div",{ref:R,className:N(c?"inline-block text-left":"relative inline-block text-left",g||A.Dropdown.className)},L,r.createElement("div",{ref:D,id:C,role:"menu","aria-hidden":!B,className:N("min-w-56 overflow-y-auto rounded-xl border border-border/60 bg-popover/95 p-1 text-popover-foreground shadow-xl shadow-black/5 outline-none backdrop-blur supports-[backdrop-filter]:bg-popover/90 dark:shadow-black/20",c?"relative":m==="absolute"?`absolute z-[200] ${de} ${Z}`:"fixed z-[200]",b||A.Dropdown.menuClassName),style:c?void 0:{...P,opacity:B?1:0,visibility:B?"visible":"hidden",pointerEvents:B?void 0:"none",maxHeight:F,minWidth:M.current?M.current.offsetWidth:void 0,...m==="fixed"?V??{}:{}},onClick:re=>{re.stopPropagation()}},a&&r.createElement("div",{className:N("px-2 py-1.5 text-sm font-semibold",w||A.Dropdown.headerClassName)},a,r.createElement(Kr,null)),e,o&&r.createElement("div",{className:S||A.Dropdown.footerClassName},r.createElement(Kr,null),o))),p)},Tl=({children:e,badge:t=void 0,display:n="dynamic",className:a=void 0,badgeClassName:o=void 0,motion:s=void 0,title:l=void 0,onToggle:i=void 0,open:c=!1,menuId:d=void 0,buttonRef:u=void 0})=>{var y;const m=me(),f=Zr(!1,{cursor:"pointer"},s??((y=m.Dropdown.motion)==null?void 0:y.press)??"press"),g=r.createElement("button",{ref:u,type:"button",title:l,className:N("inline-flex items-center justify-center gap-2",a||m.Dropdown.triggerClassName),style:f.style,"aria-haspopup":"menu","aria-expanded":c,"aria-controls":d,onClick:i,...f.pressHandlers,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),i==null||i())},"data-display":n},e);return r.createElement(Xr,{badge:t,className:o||m.Dropdown.badgeClassName},g)},We=({children:e,url:t=void 0,onClick:n=void 0,icon:a=void 0,className:o=void 0})=>{const s=me(),l=a?r.createElement("span",{className:"inline-flex min-w-0 items-center gap-2"},r.createElement("span",{className:"inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground"},r.createElement(W,{name:a,size:16})),r.createElement("span",{className:"min-w-0"},e)):e;return t?r.createElement(Te.Link,{to:t,role:"menuitem",className:N("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?r.createElement("button",{onClick:n,role:"menuitem",className:N("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):r.createElement("span",{role:"menuitem",className:N("flex w-full select-none items-center rounded-sm px-2 py-1.5 text-sm",o||s.Dropdown.menuItemClass)},l)},Dl=({children:e,className:t})=>{const n=me();return r.createElement("div",{className:N("px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground",t||n.Dropdown.menuHeaderClass)},e)},Kr=({className:e})=>{const t=me();return r.createElement("div",{className:N("-mx-1 my-1 h-px bg-border/60",e||t.Dropdown.menuDividerClass)})},ku=({menuKey:e,as:t="ul",badges:n={},before:a=void 0,after:o=void 0})=>{const s=me();return r.createElement(Pl,{menuKey:e,as:t,badges:n,before:a,after:o,wrapperClassName:s.Dropdown.Menu.wrapperClassName,className:s.Dropdown.Menu.className,headerClassName:s.Dropdown.Menu.headerClassName,itemClassName:s.Dropdown.Menu.itemClassName,linkClassName:s.Dropdown.Menu.linkClassName,iconClassName:s.Dropdown.Menu.iconClassName,textClassName:s.Dropdown.Menu.textClassName,badgeClassName:s.Dropdown.Menu.badgeClassName,arrowClassName:s.Dropdown.Menu.arrowClassName,submenuClassName:s.Dropdown.Menu.submenuClassName})};function Su({items:e=[],badge:t,seeAllUrl:n,onMarkAllRead:a,className:o}){const s=Me("notifications"),l=e.length>0;return r.createElement(mt,{trigger:r.createElement(W,{name:"bell",size:18}),triggerClassName:"flex items-center justify-center w-9 h-9 rounded-md text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",badge:t,position:"end",placement:"auto",menuClassName:"w-80",className:o},r.createElement("div",{className:"flex items-center justify-between px-3 py-2"},r.createElement("span",{className:"text-sm font-semibold text-foreground"},s.title||"Notifications"),l&&a&&r.createElement("button",{onClick:a,className:"text-xs text-primary hover:underline transition-colors"},"Mark all read")),r.createElement(Kr,null),!l&&r.createElement("div",{className:"flex flex-col items-center justify-center py-8 px-4 text-center"},r.createElement("div",{className:"w-10 h-10 rounded-full bg-muted flex items-center justify-center mb-3"},r.createElement(W,{name:"bell-off",size:18,className:"text-muted-foreground"})),r.createElement("p",{className:"text-sm font-medium text-foreground mb-1"},"No notifications"),r.createElement("p",{className:"text-xs text-muted-foreground"},"You're all caught up")),e.map((i,c)=>r.createElement(Te.Link,{key:c,to:i.url,className:"flex items-start gap-3 px-3 py-2.5 rounded-sm hover:bg-accent transition-colors"},r.createElement("div",{className:`mt-0.5 shrink-0 w-8 h-8 rounded-full flex items-center justify-center ${i.read?"bg-muted":"bg-primary/10"}`},r.createElement(W,{name:i.icon,size:15,className:i.read?"text-muted-foreground":"text-primary"})),r.createElement("div",{className:"flex-1 min-w-0"},r.createElement("p",{className:`text-sm leading-snug ${i.read?"text-muted-foreground":"text-foreground font-medium"}`},i.title),r.createElement("p",{className:"text-xs text-muted-foreground mt-0.5"},i.time)),!i.read&&r.createElement("span",{className:"mt-2 shrink-0 w-1.5 h-1.5 rounded-full bg-primary"}))),l&&n&&r.createElement(r.Fragment,null,r.createElement(Kr,null),r.createElement("div",{className:"px-1 py-1"},r.createElement(Te.Link,{to:n,className:"flex items-center justify-center w-full rounded-sm px-2 py-1.5 text-sm text-muted-foreground hover:text-foreground hover:bg-accent transition-colors"},s.seeAll||"See all notifications",r.createElement(W,{name:"arrow-right",size:13,className:"ml-1.5 opacity-60"})))))}const Au=()=>r.createElement("div",{className:"inline-flex"},r.createElement(Te.Link,{to:"/#","data-toggle-class":"app-header-menu-search-toggled","data-toggle-target":".app",className:"inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"},r.createElement("div",{className:"flex items-center justify-center"},r.createElement(W,{name:"search",className:"h-4 w-4"}))));function Mu({onQueryChange:e=void 0}){const t=Me("common");return r.createElement("div",null,r.createElement(Au,null),r.createElement("input",{className:"hidden",type:"text",placeholder:t.search,onChange:e}))}function Iu(e){return e?"current"in e?e.current??window:e:window}function Pu(e){return e instanceof Window?e.scrollY:e.scrollTop}function Tu({leading:e=void 0,center:t=void 0,trailing:n=void 0,children:a=void 0,sticky:o=!0,elevateOnScroll:s=!0,scrollTarget:l=void 0,scrollThreshold:i=8,className:c=void 0,innerClassName:d=void 0,leadingClassName:u=void 0,centerClassName:m=void 0,trailingClassName:f=void 0}){const g=me(),y=t??a,[p,h]=r.useState(!1);r.useEffect(()=>{if(!s||typeof window>"u"){h(!1);return}const k=Iu(l),w=()=>h(Pu(k)>i);return w(),k.addEventListener("scroll",w,{passive:!0}),()=>{k.removeEventListener("scroll",w)}},[s,l,i]);const b=r.useMemo(()=>N("w-full border-b border-transparent transition-[background-color,border-color,box-shadow,backdrop-filter] duration-200",g.Toolbar.wrapperClassName,o&&g.Toolbar.stickyClassName,s?p?g.Toolbar.scrolledClassName:g.Toolbar.restingClassName:g.Toolbar.scrolledClassName,c),[g,o,s,p,c]);return r.createElement("header",{className:b},r.createElement("div",{className:N("flex min-h-14 items-center gap-3 px-4",g.Toolbar.innerClassName,d)},e?r.createElement("div",{className:N("flex min-w-0 items-center gap-2 shrink-0",g.Toolbar.leadingClassName,u)},e):null,y?r.createElement("div",{className:N("flex min-w-0 flex-1 items-center gap-3",g.Toolbar.centerClassName,m)},y):r.createElement("div",{className:"flex-1"}),n?r.createElement("div",{className:N("flex shrink-0 items-center gap-2",g.Toolbar.trailingClassName,f)},n):null))}const Du=[{label:"Blue",value:"221.2 83.2% 53.3%",hex:"#3b82f6"},{label:"Violet",value:"262.1 83.3% 57.8%",hex:"#8b5cf6"},{label:"Green",value:"142.1 76.2% 36.3%",hex:"#16a34a"},{label:"Rose",value:"346.8 77.2% 49.8%",hex:"#e11d48"},{label:"Orange",value:"24.6 95% 53.1%",hex:"#f97316"},{label:"Slate",value:"215.4 16.3% 46.9%",hex:"#64748b"}],en=[{label:"System",fontSans:"-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",fontMono:"ui-monospace, 'SFMono-Regular', monospace"},{label:"Inter",fontSans:"'Inter', sans-serif",fontMono:"'JetBrains Mono', monospace"},{label:"Geist",fontSans:"'Geist', sans-serif",fontMono:"'Geist Mono', monospace"},{label:"Outfit",fontSans:"'Outfit', sans-serif",fontMono:"'JetBrains Mono', monospace"},{label:"Plus Jakarta Sans",fontSans:"'Plus Jakarta Sans', sans-serif",fontMono:"'Fira Code', monospace"},{label:"DM Sans",fontSans:"'DM Sans', sans-serif",fontMono:"'JetBrains Mono', monospace"},{label:"Nunito",fontSans:"'Nunito', sans-serif",fontMono:"'Fira Code', monospace"},{label:"Figtree",fontSans:"'Figtree', sans-serif",fontMono:"'Source Code Pro', monospace"},{label:"Poppins",fontSans:"'Poppins', sans-serif",fontMono:"'Fira Code', monospace"},{label:"Montserrat",fontSans:"'Montserrat', sans-serif",fontMono:"'Source Code Pro', monospace"}],Ru=[{label:"Success",key:"success",fgKey:"successForeground",swatches:[{value:"142.1 76.2% 36.3%",fgValue:"0 0% 100%",hex:"#16a34a"},{value:"160 84% 39%",fgValue:"0 0% 0%",hex:"#10b981"},{value:"84 55% 46%",fgValue:"0 0% 100%",hex:"#65a30d"}]},{label:"Warning",key:"warning",fgKey:"warningForeground",swatches:[{value:"32.1 94.6% 43.7%",fgValue:"0 0% 100%",hex:"#d97706"},{value:"24.6 95% 53.1%",fgValue:"0 0% 100%",hex:"#f97316"},{value:"45 96% 48%",fgValue:"0 0% 0%",hex:"#eab308"}]},{label:"Info",key:"info",fgKey:"infoForeground",swatches:[{value:"198.6 88.7% 48.4%",fgValue:"0 0% 100%",hex:"#0ea5e9"},{value:"221.2 83.2% 53.3%",fgValue:"0 0% 100%",hex:"#3b82f6"},{value:"262.1 83.3% 57.8%",fgValue:"0 0% 100%",hex:"#8b5cf6"}]},{label:"Danger",key:"destructive",fgKey:"destructiveForeground",swatches:[{value:"0 84.2% 60.2%",fgValue:"0 0% 100%",hex:"#ef4444"},{value:"346.8 77.2% 49.8%",fgValue:"0 0% 100%",hex:"#e11d48"},{value:"0 72% 51%",fgValue:"0 0% 100%",hex:"#dc2626"}]}],_u=[{label:"Lucide",value:"lucide",description:"Clean outline icon set"},{label:"Phosphor",value:"phosphor",description:"Flexible icon weights and styles"}],Fu=[{label:"Thin",value:"thin"},{label:"Light",value:"light"},{label:"Regular",value:"regular"},{label:"Bold",value:"bold"},{label:"Fill",value:"fill"}];function Ou(e){return e.split("-").map(t=>t&&t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function $u({open:e=!0,onClose:t=void 0,surface:n="flat",showHeader:a=void 0,title:o="Customize theme",subtitle:s="Live theme tokens and mode controls with no reload.",headerActions:l=void 0,themeOptions:i=void 0,showModeSection:c=!0,showPrimarySection:d=!0,showRadiusSection:u=!0,showFontSection:m=!0,showStatusSection:f=!0,showThemeSection:g=!0,showIconLibrarySection:y=!0,className:p=void 0,wrapperClassName:h=void 0}){const{resolvedMode:b,primary:k,radius:w,fontSans:S,theme:I,colors:A,themes:x,toggleMode:v,setPrimary:R,setRadius:M,setFont:D,applyTheme:C,setTokens:B}=Bs(),{providerId:E,setProvider:_,registerProvider:F}=el(),O=E==="phosphor"?"phosphor":"lucide",V=r.useMemo(()=>Object.keys(x).map(T=>{var L,U;return{value:T,label:((L=i==null?void 0:i[T])==null?void 0:L.label)??Ou(T),description:((U=i==null?void 0:i[T])==null?void 0:U.description)??"Theme available in the current registry."}}),[i,x]),j=a??n==="modal",z=r.createElement("div",{className:"flex min-w-0 items-center justify-between gap-3"},r.createElement("div",{className:"min-w-0"},r.createElement("h3",{className:"truncate text-lg font-semibold leading-none"},o),s?r.createElement("div",{className:"mt-1 truncate text-sm text-muted-foreground"},s):null),l?r.createElement("div",{className:"flex shrink-0 items-center gap-2"},l):null),P=r.createElement(r.Fragment,null,c?r.createElement("div",null,r.createElement("label",{className:"mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Color mode"),r.createElement("div",{className:"flex gap-2"},["light","dark"].map(T=>r.createElement("button",{key:T,type:"button",onClick:()=>b!==T&&v(),className:`flex flex-1 items-center justify-center gap-2 rounded-md border py-2 text-sm font-medium transition-colors ${b===T?"border-primary bg-primary/10 text-primary":"border-border text-muted-foreground hover:bg-accent"}`},r.createElement(W,{name:T==="light"?"sun":"moon",size:14}),T.charAt(0).toUpperCase()+T.slice(1))))):null,d?r.createElement("div",null,r.createElement("label",{className:"mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Primary color"),r.createElement("div",{className:"flex flex-wrap gap-2"},Du.map(T=>r.createElement("button",{key:T.label,type:"button",onClick:()=>R(T.value),title:T.label,className:`h-8 w-8 rounded-full border-2 transition-transform hover:scale-110 ${k===T.value?"scale-110 border-foreground":"border-transparent"}`,style:{backgroundColor:T.hex},"aria-label":T.label})))):null,u?r.createElement("div",null,r.createElement("div",{className:"mb-3 flex items-center justify-between"},r.createElement("label",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Border radius"),r.createElement("span",{className:"text-xs font-mono text-muted-foreground"},w.toFixed(2),"rem")),r.createElement("input",{type:"range",min:0,max:1,step:.05,value:w,onChange:T=>M(parseFloat(T.target.value)),className:"w-full accent-primary"}),r.createElement("div",{className:"mt-1 flex justify-between text-xs text-muted-foreground"},r.createElement("span",null,"Sharp"),r.createElement("span",null,"Rounded"))):null,m?r.createElement("div",null,r.createElement("label",{className:"mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Font"),r.createElement("div",{className:"relative"},r.createElement("select",{value:(en.find(T=>T.fontSans===S)??en[0]).fontSans,onChange:T=>{const L=en.find(U=>U.fontSans===T.target.value);L&&D(L.fontSans,L.fontMono)},className:"w-full appearance-none rounded-md border border-border bg-background px-3 py-2 pr-8 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring"},en.map(T=>r.createElement("option",{key:T.label,value:T.fontSans},T.label))),r.createElement(W,{name:"chevron-down",size:14,className:"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}))):null,f?r.createElement("div",null,r.createElement("label",{className:"mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Status colors"),r.createElement("div",{className:"space-y-2"},Ru.map(({label:T,key:L,fgKey:U,swatches:de})=>r.createElement("div",{key:L,className:"flex items-center gap-2"},r.createElement("span",{className:"w-14 shrink-0 text-xs text-muted-foreground"},T),r.createElement("div",{className:"flex gap-1.5"},de.map(Z=>r.createElement("button",{key:Z.hex,type:"button",onClick:()=>B({[L]:Z.value,[U]:Z.fgValue}),title:`${T} - ${Z.hex}`,className:`h-6 w-6 rounded-full border-2 transition-transform hover:scale-110 ${(A==null?void 0:A[L])===Z.value?"scale-110 border-foreground":"border-transparent"}`,style:{backgroundColor:Z.hex},"aria-label":`${T} ${Z.hex}`}))))))):null,g?r.createElement("div",null,r.createElement("label",{className:"mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Theme"),r.createElement("div",{className:"space-y-2"},V.map(T=>r.createElement("button",{key:T.value,type:"button",onClick:()=>C(T.value),className:`w-full rounded-md border px-3 py-2.5 text-left text-sm transition-colors ${I===T.value?"border-primary bg-primary/10":"border-border hover:bg-accent"}`},r.createElement("span",{className:`font-medium ${I===T.value?"text-primary":"text-foreground"}`},T.label),r.createElement("span",{className:"mt-0.5 block text-xs text-muted-foreground"},T.description))))):null,y?r.createElement("div",null,r.createElement("label",{className:"mb-3 block text-xs font-semibold uppercase tracking-wider text-muted-foreground"},"Icon library"),r.createElement("div",{className:"space-y-2"},_u.map(T=>r.createElement("button",{key:T.value,type:"button",onClick:()=>_(T.value),className:`w-full rounded-md border px-3 py-2.5 text-left text-sm transition-colors ${O===T.value?"border-primary bg-primary/10":"border-border hover:bg-accent"}`},r.createElement("span",{className:`flex items-center gap-2 font-medium ${O===T.value?"text-primary":"text-foreground"}`},r.createElement(W,{name:"palette",size:12}),T.label),r.createElement("span",{className:"mt-0.5 block text-xs text-muted-foreground"},T.description)))),O==="phosphor"?r.createElement("div",{className:"mt-3"},r.createElement("p",{className:"mb-2 text-xs text-muted-foreground"},"Weight"),r.createElement("div",{className:"flex flex-wrap gap-1"},Fu.map(T=>r.createElement("button",{key:T.value,type:"button",onClick:()=>{F("phosphor",new Da(T.value)),_("phosphor")},className:"rounded border border-border px-2 py-1 text-xs transition-colors hover:bg-accent"},T.label)))):null,r.createElement("div",{className:"mt-3 flex items-center gap-3 px-1"},["sun","moon","bell","settings","search","trash"].map(T=>r.createElement(W,{key:T,name:T,size:16,className:"text-muted-foreground"})))):null),$=r.createElement("div",{className:N("space-y-6",n==="flat"&&"rounded-xl border border-border/60 bg-card p-5",p)},n==="flat"&&j?r.createElement("div",{className:"border-b border-border/60 pb-4"},z):null,P);return n==="modal"?e?r.createElement(or,{position:"right",header:j?z:void 0,onClose:t,allowFullscreen:!1,headerClassName:"h-14 !py-0 px-4",className:p,wrapperClassName:h},r.createElement("div",{className:"space-y-6"},P)):null:r.createElement("div",{className:h},$)}const Rl=r.createContext(null),Lu=({registries:e,setProvider:t,children:n})=>r.createElement(Rl.Provider,{value:{registries:e,setProvider:t}},n),_l=()=>{const e=r.useContext(Rl);if(!e)throw new Error("useSetProvider/useProvider must be used inside <App>.");return e},Fl=()=>_l().setProvider,Ol=(e,t)=>{const{registries:n}=_l(),a=n[e],o=t??(a==null?void 0:a.defaultKey),s=o?a==null?void 0:a.registry[o]:void 0;if(!s)throw new Error(`Provider '${o??e}' is not registered in category '${e}'. Available: ${Object.keys((a==null?void 0:a.registry)??{}).join(", ")}`);return s};let Xt;const ju=r.createContext(null),Bu=r.createContext(()=>{}),Ba=new Set,Je=e=>{Ba.add(e),Xt&&e(Xt,null)},zu=({children:e,defaultConfig:t})=>{const[n,a]=r.useState(Vu(t)),o=r.useRef(null);return r.useEffect(()=>{const s=o.current;if(s!==n){Xt=n;for(const l of Ba)l(n,s)}o.current=n},[n]),r.createElement(ju.Provider,{value:n},r.createElement(Bu.Provider,{value:a},r.createElement(au,null,e)))},Vu=e=>{Xt=e;for(const t of Ba)t(Xt,null);return Xt},Fn=()=>Xt;var ks;let nn=(ks=Fn==null?void 0:Fn())==null?void 0:ks.google;typeof Je=="function"&&Je(e=>{nn=e.google});const Or=e=>nn==null?void 0:nn[e];let za;const Uu=e=>{za=e},Va=()=>Tt("FirebaseProvider",ar(za,["apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId"],"firebase.")),Hu=()=>Tt("FirestoreProvider",ar(za,["apiKey","authDomain","projectId","appId"],"firebase.")),dt=()=>{try{return Ge.getAuth()}catch(e){return console.error("FirebaseAuthorization",e instanceof Error?e.message:"Error: check Configuration"),null}},Ku=async e=>{const t=dt();if(!t)return!1;try{return await Ge.setPersistence(t,Ge.inMemoryPersistence),await Ge.signInWithCustomToken(t,e),!0}catch(n){return console.error("Firebase custom token sign-in error: ",n),!1}},An=async e=>{var a;Uu(e);const n=Tr.getApps().length?Tr.getApp():void 0;if(n){if(((a=n.options)==null?void 0:a.appId)===e.appId)return console.log("[firebase] Already initialized with same appId, skipping re-init"),n;await Tr.deleteApp(n)}return Tr.initializeApp(e)},Gu="scrape",ht=(...e)=>{},Be="_key",At={key:"@key",value:"@value"},Gt=()=>ve.getDatabase(),Ot=(e,t,n)=>{const a=`Error during ${e}: ${String(t)}`;if(n)throw new Error(a);console.error(a)},On=(e,t)=>{if(!e||!(t in e))return e;const{[t]:n,...a}=e;return Object.keys(a).length?a:void 0},Yu=e=>{const t=typeof e=="object"&&e!==null&&!Array.isArray(e)?e:Array.isArray(e)?{in:e}:{eq:e};let n;return t.gt!==void 0&&(n={...n,gt:t.gt}),t.lt!==void 0&&(n={...n,lt:t.lt}),t.in!==void 0&&(n={...n,in:t.in}),t.nin!==void 0&&(n={...n,nin:t.nin}),{condition:t,clientCondition:n}},Wu=(e,t)=>{switch(t){case At.key:return ve.query(e,ve.orderByKey());case At.value:return ve.query(e,ve.orderByValue());default:return ve.query(e,ve.orderByChild(t))}},jo=(e,t,n)=>{const[a]=Object.entries(t||{});if(!a)return{dbRef:e,clientWhere:n};const[o]=a;let s=Wu(e,o);const l=n==null?void 0:n[o];if(l==null)return{dbRef:s,clientWhere:n};const{condition:i,clientCondition:c}=Yu(l);switch(!0){case i.eq!==void 0:return{dbRef:ve.query(s,ve.equalTo(i.eq)),clientWhere:On(n,o)};case(i.gte!==void 0&&i.lte!==void 0):s=ve.query(s,ve.startAt(i.gte),ve.endAt(i.lte));break;case(i.gte!==void 0&&i.lt!==void 0):s=ve.query(s,ve.startAt(i.gte),ve.endAt(i.lt));break;case(i.gt!==void 0&&i.lte!==void 0):s=ve.query(s,ve.startAt(i.gt),ve.endAt(i.lte));break;case(i.gt!==void 0&&i.lt!==void 0):s=ve.query(s,ve.startAt(i.gt),ve.endAt(i.lt));break;case i.gte!==void 0:s=ve.query(s,ve.startAt(i.gte));break;case i.gt!==void 0:s=ve.query(s,ve.startAt(i.gt));break;case i.lte!==void 0:s=ve.query(s,ve.endAt(i.lte));break;case i.lt!==void 0:s=ve.query(s,ve.endAt(i.lt));break}return{dbRef:s,clientWhere:c?{...On(n,o)||{},[o]:c}:On(n,o)}},$n=(e,t)=>{if(!t)return e;const n=t.split(".");let a=e;for(const o of n){if(a==null)return;a=a[o]}return a},qu=(e,t)=>e===t?0:e==null?-1:t==null?1:typeof e=="number"&&typeof t=="number"?e-t:typeof e=="boolean"&&typeof t=="boolean"?Number(e)-Number(t):globalThis.String(e).localeCompare(globalThis.String(t),void 0,{numeric:!0,sensitivity:"base"}),Ju=(e,t)=>{const n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{eq:t};for(const[a,o]of Object.entries(n))switch(a){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},Ln=(e,t,n)=>{const[a,...o]=Object.entries(n||{}),s=Object.entries(t||{});let l=Object.entries(e);if(s.length&&(l=l.filter(([,i])=>s.every(([c,d])=>Ju($n(i,c),d)))),a){const i=[a,...o];l.sort((c,d)=>{for(const[u,m]of i){const f=qu($n(c[1],u),$n(d[1],u));if(f)return m==="desc"?-f:f}return 0})}return Object.fromEntries(l)},Xu=async e=>{var o;const t=dt(),n=await((o=t==null?void 0:t.currentUser)==null?void 0:o.getIdToken().catch(()=>{})),a=new URL(`${e}.json`,ve.ref(Gt()).toString());return a.searchParams.set("shallow","true"),n&&a.searchParams.set("auth",n),a.toString()},Lr=class Lr{constructor(){this.readShallow=async(t,n=!1)=>{try{const a=await Xu(t),o=await fetch(a);if(!o.ok)throw new Error(`${o.status} ${o.statusText}`);const s=await o.json();return s?Object.keys(s):[]}catch(a){return Ot(`reading SHALLOW data in Firebase for ${t}`,a,n),[]}},this.read=async(t,{where:n,order:a,toArray:o=!1,exception:s=!1}={})=>{const{dbRef:l,clientWhere:i}=jo(ve.ref(Gt(),t),a,n);try{const c=await ve.get(l);if(c.exists()){ht(`Info: Data found in Firebase for path ${t}`);const d=Ln(c.val(),i,a);return o?Object.values(d):d}else s&&Ot(`Data not found in Firebase for path ${t}`,null,s)}catch(c){Ot(`reading data in Firebase for ${t}`,c,s)}},this.update=async(t,n,a=!1)=>{try{await ve.update(ve.ref(Gt(),t),n),ht(`Data successfully merged in Firebase for ${t}`)}catch(o){Ot(`updating data in Firebase for ${t}`,o,a)}},this.set=async(t,n,a=!1)=>{try{await ve.set(ve.ref(Gt(),t),n),ht(`Data successfully updated in Firebase for ${t}`)}catch(o){Ot(`updating data in Firebase for ${t}`,o,a)}},this.setChunks=async(t,n,{chunkSize:a=1e3,purge:o=!1,onProgress:s}={})=>{const l=Gt(),i=ve.ref(l,t);try{o&&(await ve.remove(i),s==null||s(0,0,`Purging existing data at ${t}`));const c=Object.entries(tr(n)),d=Math.ceil(c.length/a);for(let u=0;u<c.length;u+=a){const m=Object.fromEntries(c.slice(u,u+a));await ve.update(i,m);const f=Math.floor(u/a)+1;s==null||s(f,d,`Saving chunk ${f}/${d}`)}}catch(c){Ot(`setting data in chunks in Firebase for ${t}`,c,!1)}},this.remove=async(t,n=!1)=>{try{await ve.remove(ve.ref(Gt(),t)),ht(`Data successfully removed from Firebase for ${t}`)}catch(a){Ot(`removing data from Firebase for ${t}`,a,n)}},this.count=async t=>(await this.readShallow(t)).length,this.subscribe=(t,n,{where:a,order:o,fieldMap:s,onLoad:l}={})=>{const i=dt();if(!i||!t)return()=>{};const c=()=>{const{dbRef:m,clientWhere:f}=jo(ve.ref(Gt(),t),o,a),g=y=>{const p=y.val();if(!p){n([]);return}const h=l?l(Ln(p,f,o)):Ln(p,f,o),b=Object.entries(h);if(!s){const S=b.map(([I,A],x)=>typeof A=="object"&&A!==null?{_index:x,[Be]:I,...A}:{_index:x,[Be]:I,[At.value]:A});n(S);return}const k=Object.keys(s),w=b.map(([S,I],A)=>{const x=typeof I=="object"&&I!==null?{[At.key]:S,...I}:{[At.key]:S,[At.value]:I},v={};for(const R of k){const M=s[R];v[R]=M.includes("{")?Ue.parse(x,M):M===At.key?S:M===At.value?I:x[M]}return{[Be]:S,_index:A,...v}});n(w)};return ve.onValue(m,g)};let d;const u=Ge.onAuthStateChanged(i,m=>{d==null||d(),d=void 0,m?d=c():n([])});return()=>{d==null||d(),u()}},!Lr.listenerRegistered&&typeof Je=="function"&&(Lr.listenerRegistered=!0,Je(t=>{t.firebase&&An(t.firebase)}))}getConfigurationState(){return Va()}isConfigured(){return this.getConfigurationState().configured}};Lr.listenerRegistered=!1;let br=Lr;new br;const jn=new Map;function Ua(e,t){return jn.has(e)||jn.set(e,Ss.createClient(e,t)),jn.get(e)}function $l(e,t,n){return Ss.createClient(e,t,{auth:{persistSession:!1,autoRefreshToken:!1,detectSessionInUrl:!1},global:n?{headers:{Authorization:`Bearer ${n}`}}:void 0})}async function Ll(e){await e.removeAllChannels()}function Ha(e){return Tt("Supabase",ar(e,["url","anonKey"],"supabase."))}const Zu=Object.freeze(Object.defineProperty({__proto__:null,createSupabaseClient:$l,disposeSupabaseClient:Ll,getSupabaseClient:Ua,getSupabaseConfigurationState:Ha},Symbol.toStringTag,{value:"Module"})),Qu=e=>e.replace(/^\/+|\/+$/g,"");function $t(e){const t=Qu(e).split("/").filter(Boolean);return{table:t[0]??"",id:t.length>=2?t.slice(1).join("/"):null}}function Lt(e,t,n){const a=`SupabaseDataProvider.${e}: ${t instanceof Error?t.message:String(t)}`;if(n)throw new Error(a);console.error(a)}function Bo(e,t){for(const[n,a]of Object.entries(t))if(a==null)e=e.is(n,null);else if(typeof a!="object"||Array.isArray(a))e=e.eq(n,a);else{const o=a;o.eq!==void 0&&(e=e.eq(n,o.eq)),o.lt!==void 0&&(e=e.lt(n,o.lt)),o.lte!==void 0&&(e=e.lte(n,o.lte)),o.gt!==void 0&&(e=e.gt(n,o.gt)),o.gte!==void 0&&(e=e.gte(n,o.gte)),o.in&&(e=e.in(n,o.in)),o.nin&&(e=e.not(n,"in",o.nin))}return e}function zo(e,t){for(const[n,a]of Object.entries(t))e=e.order(n,{ascending:a==="asc"});return e}function Vo(e,t,n){const{_key:a,_index:o,...s}=e;return t&&(s[n]=t),s}function Bn(e,t,n=0){return{...e,[Be]:String(e[t]??n),_index:n}}class Ka{constructor(t){this.dispose=async()=>{this.scopedClient&&await Ll(this.scopedClient)},this.read=async(n,a={})=>{const{table:o,id:s}=$t(n);if(o)try{if(s){const{data:u,error:m}=await this.client.from(o).select("*").eq(this.pk,s).maybeSingle();if(m)throw m;return u?Bn(u,this.pk):void 0}let l=this.client.from(o).select("*");a.where&&(l=Bo(l,a.where)),a.order&&(l=zo(l,a.order));const{data:i,error:c}=await l;if(c)throw c;if(!i||i.length===0)return a.toArray?[]:{};const d=i.map((u,m)=>Bn(u,this.pk,m));return a.toArray?d:Object.fromEntries(d.map(u=>[String(u[this.pk]??u[Be]),u]))}catch(l){return Lt("read",l,a.exception??!1),a.toArray?[]:void 0}},this.set=async(n,a,o=!1)=>{const{table:s,id:l}=$t(n);if(!s){Lt("set","path must include a table name",o);return}try{const i=Vo(a,l,this.pk),{error:c}=await this.client.from(s).upsert(i,{onConflict:this.pk});if(c)throw c}catch(i){Lt("set",i,o)}},this.update=async(n,a,o=!1)=>{const{table:s,id:l}=$t(n);if(!s){Lt("update","path must include a table name",o);return}try{const{_key:i,_index:c,...d}=a;if(l){const{data:u}=await this.client.from(s).select("*").eq(this.pk,l).maybeSingle(),m={...u??{},...d,[this.pk]:l},{error:f}=await this.client.from(s).upsert(m,{onConflict:this.pk});if(f)throw f}else{const{error:u}=await this.client.from(s).insert(d);if(u)throw u}}catch(i){Lt("update",i,o)}},this.remove=async(n,a=!1)=>{const{table:o,id:s}=$t(n);if(!o||!s){Lt("remove","path must include both table and id",a);return}try{const{error:l}=await this.client.from(o).delete().eq(this.pk,s);if(l)throw l}catch(l){Lt("remove",l,a)}},this.subscribe=(n,a,o={})=>{if(!n)return()=>{};const{table:s}=$t(n);if(!s)return()=>{};let l=null,i=!0;const c=async()=>{if(i)try{let d=this.client.from(s).select("*");o.where&&(d=Bo(d,o.where)),o.order&&(d=zo(d,o.order));const{data:u}=await d;if(!i)return;const m=(u??[]).map((f,g)=>Bn(f,this.pk,g));a(m)}catch{a([])}};c();try{l=this.client.channel(`llmnative:${s}`).on("postgres_changes",{event:"*",schema:"public",table:s},()=>void c()).subscribe()}catch{}return()=>{i=!1,l&&(this.client.removeChannel(l).catch(()=>{}),l=null)}},this.count=async n=>{const{table:a}=$t(n);if(!a)return 0;try{const{count:o,error:s}=await this.client.from(a).select("*",{count:"exact",head:!0});if(s)throw s;return o??0}catch(o){return console.error("SupabaseDataProvider.count:",o),0}},this.setChunks=async(n,a,o={})=>{const{table:s}=$t(n);if(!s)return;const{chunkSize:l=500,purge:i=!1,onProgress:c}=o,d=Object.entries(a);try{i&&await this.client.from(s).delete().neq(this.pk,"__purge_all__");for(let u=0;u<d.length;u+=l){const m=d.slice(u,u+l).map(([g,y])=>Vo(y,g,this.pk)),{error:f}=await this.client.from(s).upsert(m,{onConflict:this.pk});if(f)throw f;c==null||c(Math.min(u+l,d.length),d.length,`Wrote ${Math.min(u+l,d.length)}/${d.length}`)}}catch(u){throw console.error("SupabaseDataProvider.setChunks:",u),u}},this.config=t}get pk(){return this.config.primaryKey??"id"}get client(){return this.config.accessToken?(this.scopedClient||(this.scopedClient=$l(this.config.url,this.config.anonKey,this.config.accessToken)),this.scopedClient):Ua(this.config.url,this.config.anonKey)}getConfigurationState(){return Ha(this.config)}isConfigured(){return this.getConfigurationState().configured}}const ur={key:"@key",value:"@value"};function zn(e,t){if(!t)return e;const n=t.split(".");let a=e;for(const o of n){if(a==null)return;a=a[o]}return a}function em(e,t){return e===t?0:e==null?-1:t==null?1:typeof e=="number"&&typeof t=="number"?e-t:typeof e=="boolean"&&typeof t=="boolean"?Number(e)-Number(t):globalThis.String(e).localeCompare(globalThis.String(t),void 0,{numeric:!0,sensitivity:"base"})}function tm(e,t){const n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{eq:t};for(const[a,o]of Object.entries(n))switch(a){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 Uo(e,t,n){const a=Object.entries(n||{}),o=Object.entries(t||{});let s=Object.entries(e);return o.length&&(s=s.filter(([,l])=>o.every(([i,c])=>tm(zn(l,i),c)))),a.length&&s.sort((l,i)=>{for(const[c,d]of a){const u=em(zn(l[1],c),zn(i[1],c));if(u)return d==="desc"?-u:u}return 0}),Object.fromEntries(s)}function rm(e,t){const n=Object.entries(e);if(!t)return n.map(([o,s],l)=>typeof s=="object"&&s!==null?{_index:l,[Be]:o,...s}:{_index:l,[Be]:o,[ur.value]:s});const a=Object.keys(t);return n.map(([o,s],l)=>{const i=typeof s=="object"&&s!==null?{[ur.key]:o,...s}:{[ur.key]:o,[ur.value]:s},c={};for(const d of a){const u=t[d];c[d]=u.includes("{")?Ue.parse(i,u):u===ur.key?o:u===ur.value?s:i[u]}return{[Be]:o,_index:l,...c}})}class Mn{constructor(t,n){this.store={},this.listeners=new Map,this.read=async(o,s={})=>{const{collection:l,id:i}=this.resolvePath(o),c=this.getCollection(l);if(i)return c[i]?{...c[i]}:void 0;const d=Uo(c,s.where,s.order);return s.toArray?Object.values(d).map(u=>({...u})):Object.fromEntries(Object.entries(d).map(([u,m])=>[u,{...m}]))},this.set=async(o,s)=>{const{collection:l,id:i}=this.resolvePath(o),c=this.getCollection(l);i?c[i]={...s}:this.store[l]={...s},this.saveStore(),this.notify(l)},this.update=async(o,s)=>{const{collection:l,id:i}=this.resolvePath(o),c=this.getCollection(l);i?c[i]={...c[i]||{},...s}:this.store[l]={...c,...s},this.saveStore(),this.notify(l)},this.remove=async o=>{const{collection:s,id:l}=this.resolvePath(o);l?delete this.getCollection(s)[l]:delete this.store[s],this.saveStore(),this.notify(s)},this.subscribe=(o,s,l)=>{if(!o)return()=>{};const i=o.startsWith("/")?o:`/${o}`,c=()=>{const d=Uo(this.getCollection(i),l==null?void 0:l.where,l==null?void 0:l.order),u=l!=null&&l.onLoad?l.onLoad(d):d;s(rm(u,l==null?void 0:l.fieldMap))};return c(),this.listeners.has(i)||this.listeners.set(i,new Set),this.listeners.get(i).add(c),()=>{var d;(d=this.listeners.get(i))==null||d.delete(c)}},this.persistKey=n!=null&&n.persist?n.storageKey??"llmnative:mock":null;const a=this.persistKey?this.loadStore()??t:t;if(a)for(const[o,s]of Object.entries(a)){const l=o.startsWith("/")?o:`/${o}`;this.store[l]={...s}}}loadStore(){if(!this.persistKey||typeof window>"u")return null;try{const t=window.localStorage.getItem(this.persistKey);if(!t)return null;const n=JSON.parse(t);return typeof n=="object"&&n!==null&&!Array.isArray(n)?n:null}catch{return null}}saveStore(){if(!(!this.persistKey||typeof window>"u"))try{window.localStorage.setItem(this.persistKey,JSON.stringify(this.store))}catch{}}isConfigured(){return!0}getConfigurationState(){return{configured:!0}}getCollection(t){return this.store[t]||(this.store[t]={}),this.store[t]}resolvePath(t){const n=t.startsWith("/")?t:`/${t}`;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(t){var n;(n=this.listeners.get(t))==null||n.forEach(a=>a())}}function nm(e,t){var o;const n=((o=e.split(".").pop())==null?void 0:o.toLowerCase())??"";return(Array.isArray(t)?t.map(s=>s.toLowerCase().replace(/^\./,"")):[t.toLowerCase().replace(/^\./,"")]).includes(n)}function jl(e,t){let n=e;return t.filterByExtension!==void 0&&(n=n.filter(a=>a.isFolder||nm(a.name,t.filterByExtension))),t.limit!==void 0&&t.limit>0&&(n=n.slice(0,t.limit)),n}const jt=e=>e?Fe.getStorage(Tr.getApp(),e):Fe.getStorage(),Bl=e=>({name:e.name,path:e.fullPath}),am=async e=>{try{const t=await Fe.getMetadata(e);return{name:e.name,path:e.fullPath,size:t.size,contentType:t.contentType,updatedAt:t.updated}}catch{return Bl(e)}},jr=class jr{constructor(){this.upload=async(t,n,a={})=>{if(t)try{const o=Fe.ref(jt(a.bucket),n);if(typeof t=="string"){const s=await Fe.uploadString(o,t,"data_url");return await Fe.getDownloadURL(s.ref)}return await new Promise((s,l)=>{const i=a.contentType?{contentType:a.contentType}:t instanceof File&&t.type?{contentType:t.type}:void 0,c=Fe.uploadBytesResumable(o,t,i);a.onProgress&&c.on("state_changed",d=>{const u=d.totalBytes>0?Math.round(d.bytesTransferred/d.totalBytes*100):0;a.onProgress(u)}),c.then(async d=>s(await Fe.getDownloadURL(d.ref))).catch(l)})}catch(o){console.error("[FirebaseStorage] upload error:",o)}},this.createUpload=(t,n,a={})=>{const o=Fe.ref(jt(a.bucket),n);if(typeof t=="string"){let c=!1;return{url:(async()=>{if(!c)try{const u=await Fe.uploadString(o,t,"data_url");return await Fe.getDownloadURL(u.ref)}catch{return}})(),pause:()=>{},resume:()=>{},cancel:()=>{c=!0}}}const s=a.contentType?{contentType:a.contentType}:t instanceof File&&t.type?{contentType:t.type}:void 0,l=Fe.uploadBytesResumable(o,t,s);return a.onProgress&&l.on("state_changed",c=>{const d=c.totalBytes>0?Math.round(c.bytesTransferred/c.totalBytes*100):0;a.onProgress(d)}),{url:(async()=>{try{return await Fe.getDownloadURL((await l).ref)}catch{return}})(),pause:()=>{l.pause()},resume:()=>{l.resume()},cancel:()=>{l.cancel()}}},this.rename=async(t,n,a={})=>await this.move(t,n,a)>0,this.move=async(t,n,a={})=>{if(a.recursive){const o=await this.list(t,{bucket:a.bucket,recursive:!0}),s=t.endsWith("/")?t:`${t}/`;return(await Promise.all(o.map(async i=>{const c=i.path.startsWith(s)?i.path.slice(s.length):i.path.slice(t.length),d=`${n}/${c}`;return this._moveFile(i.path,d,a)}))).filter(Boolean).length}return await this._moveFile(t,n,a)?1:0},this._moveFile=async(t,n,a)=>{try{const o=await this.download(t,a);if(!o)return!1;const s=await this.getFileInfo(t,a);return await this.upload(o,n,{bucket:a.destBucket??a.bucket,contentType:s==null?void 0:s.contentType})?(await this.delete(t,{bucket:a.bucket}),!0):!1}catch(o){return console.error(`[FirebaseStorage] move error ${t} → ${n}:`,o),!1}},this.getURL=async(t,n={})=>{try{return await Fe.getDownloadURL(Fe.ref(jt(n.bucket),t))}catch(a){console.error(`[FirebaseStorage] getURL error for ${t}:`,a)}},this.getFileInfo=async(t,n={})=>{try{const a=Fe.ref(jt(n.bucket),t),o=await Fe.getMetadata(a);return{name:a.name,path:a.fullPath,size:o.size,contentType:o.contentType,updatedAt:o.updated}}catch(a){if(a.code==="storage/object-not-found")return;console.error(`[FirebaseStorage] getFileInfo error for ${t}:`,a);return}},this.download=async(t,n={})=>{const a=await this.getURL(t,n);if(a)try{const o=await fetch(a);if(!o.ok)throw new Error(`HTTP ${o.status}`);return await o.blob()}catch(o){console.error(`[FirebaseStorage] download error for ${t}:`,o)}},this.delete=async(t,n={})=>{if(n.recursive)return this._deleteFolder(t,n);try{return await Fe.deleteObject(Fe.ref(jt(n.bucket),t)),1}catch(a){return a.code==="storage/object-not-found"||console.error(`[FirebaseStorage] delete error for ${t}:`,a),0}},this._deleteFolder=async(t,n)=>{try{const a=Fe.ref(jt(n.bucket),t),{items:o,prefixes:s}=await Fe.listAll(a);let l=0;await Promise.all(o.map(async c=>{try{await Fe.deleteObject(c),l++}catch(d){d.code!=="storage/object-not-found"&&console.error(`[FirebaseStorage] delete failed for ${c.fullPath}:`,d)}}));const i=await Promise.all(s.map(c=>this._deleteFolder(c.fullPath,n)));return l+i.reduce((c,d)=>c+d,0)}catch(a){return console.error(`[FirebaseStorage] deleteFolder error for ${t}:`,a),0}},this.list=async(t,n={})=>{const a=await this._listLevel(t,n);return jl(a,n)},this._listLevel=async(t,n)=>{const a=n.includeFiles!==!1,o=n.includeFolders===!0;try{const s=Fe.ref(jt(n.bucket),t),{items:l,prefixes:i}=await Fe.listAll(s),c=a?n.metadata?await Promise.all(l.map(am)):l.map(Bl):[],d=o?i.map(f=>({name:f.name,path:f.fullPath,isFolder:!0})):[],u=[...c,...d];if(!n.recursive||i.length===0)return u;const m=await Promise.all(i.map(f=>this._listLevel(f.fullPath,n)));return[...u,...m.flat()]}catch(s){return console.error(`[FirebaseStorage] list error for ${t}:`,s),[]}},!jr.listenerRegistered&&typeof Je=="function"&&(jr.listenerRegistered=!0,Je(t=>{t.firebase&&An(t.firebase)}))}getConfigurationState(){return Va()}isConfigured(){return this.getConfigurationState().configured}};jr.listenerRegistered=!1;let vr=jr;new vr;class Ga{constructor(t){this.upload=async(n,a,o={})=>{var d;const s=this.resolveBucket(o.bucket);let l,i=o.contentType;if(typeof n=="string"){const[u,m]=n.split(",");i??(i=(d=u.match(/:(.*?);/))==null?void 0:d[1]);const f=atob(m),g=new Uint8Array(f.length);for(let y=0;y<f.length;y++)g[y]=f.charCodeAt(y);l=new Blob([g],i?{type:i}:void 0)}else l=n,n instanceof File&&(i??(i=n.type||void 0));const c=await fetch(`${this.config.url}/storage/v1/object/${s}/${a}`,{method:"POST",headers:{...this.authHeaders(),...i?{"Content-Type":i}:{}},body:l});if(!c.ok){console.error("[SupabaseStorage] upload error:",await c.text());return}return this.getURL(a,{bucket:s})},this.createUpload=(n,a,o={})=>{const s=new AbortController,l=this.resolveBucket(o.bucket);return{url:(async()=>{var u;let c,d=o.contentType;if(typeof n=="string"){const[m,f]=n.split(",");d??(d=(u=m.match(/:(.*?);/))==null?void 0:u[1]);const g=atob(f),y=new Uint8Array(g.length);for(let p=0;p<g.length;p++)y[p]=g.charCodeAt(p);c=new Blob([y],d?{type:d}:void 0)}else c=n,n instanceof File&&(d??(d=n.type||void 0));try{return(await fetch(`${this.config.url}/storage/v1/object/${l}/${a}`,{method:"POST",headers:{...this.authHeaders(),...d?{"Content-Type":d}:{}},body:c,signal:s.signal})).ok?this.getURL(a,{bucket:l}):void 0}catch{return}})(),pause:()=>{},resume:()=>{},cancel:()=>s.abort()}},this.rename=async(n,a,o={})=>await this.move(n,a,o)>0,this.move=async(n,a,o={})=>{if(o.recursive){const s=await this.list(n,{bucket:o.bucket,recursive:!0}),l=n.endsWith("/")?n:`${n}/`;return(await Promise.all(s.map(async c=>{const d=c.path.startsWith(l)?c.path.slice(l.length):c.path.slice(n.length),u=`${a}/${d}`;return this._moveFile(c.path,u,o)}))).filter(Boolean).length}return await this._moveFile(n,a,o)?1:0},this._moveFile=async(n,a,o)=>{const s=this.resolveBucket(o.bucket),l=this.resolveBucket(o.destBucket??o.bucket);try{return(await fetch(`${this.config.url}/storage/v1/object/move`,{method:"POST",headers:{...this.authHeaders(),"Content-Type":"application/json"},body:JSON.stringify({bucketId:s,sourceKey:n,destinationBucket:l,destinationKey:a})})).ok}catch(i){return console.error(`[SupabaseStorage] move error ${n} → ${a}:`,i),!1}},this.getURL=async(n,a={})=>{const o=this.resolveBucket(a.bucket);return`${this.config.url}/storage/v1/object/public/${o}/${n}`},this.getFileInfo=async(n,a={})=>{const o=n.split("/"),s=o.pop(),l=o.join("/");return(await this.list(l,{...a,metadata:!0})).find(c=>c.name===s)},this.download=async(n,a={})=>{const o=await this.getURL(n,a);if(o)try{const s=await fetch(o);if(!s.ok)throw new Error(`HTTP ${s.status}`);return await s.blob()}catch(s){console.error(`[SupabaseStorage] download error for ${n}:`,s)}},this.delete=async(n,a={})=>{const o=this.resolveBucket(a.bucket);let s;if(a.recursive){const l=await this.list(n,{...a,recursive:!0});if(l.length===0)return 0;s=l.map(i=>i.path)}else s=[n];try{const l=await fetch(`${this.config.url}/storage/v1/object/${o}`,{method:"DELETE",headers:{...this.authHeaders(),"Content-Type":"application/json"},body:JSON.stringify({prefixes:s})});return l.status===404?0:l.ok?s.length:(console.error("[SupabaseStorage] delete error:",await l.text()),0)}catch(l){return console.error(`[SupabaseStorage] delete error for ${n}:`,l),0}},this.list=async(n,a={})=>{const o=await this._listLevel(n,a);return jl(o,a)},this._listLevel=async(n,a)=>{const o=a.includeFiles!==!1,s=a.includeFolders===!0,l=this.resolveBucket(a.bucket);try{const i=await fetch(`${this.config.url}/storage/v1/object/list/${l}`,{method:"POST",headers:{...this.authHeaders(),"Content-Type":"application/json"},body:JSON.stringify({prefix:n,limit:1e3,offset:0})});if(!i.ok)return console.error("[SupabaseStorage] list error:",await i.text()),[];const c=await i.json(),d=c.filter(p=>p.id!==null&&p.name&&!p.name.endsWith("/")),u=c.filter(p=>p.id===null&&p.name),m=o?d.map(p=>{var h,b;return{name:p.name??"",path:n?`${n}/${p.name}`:p.name??"",size:(h=p.metadata)==null?void 0:h.size,contentType:(b=p.metadata)==null?void 0:b.mimetype,updatedAt:p.updated_at}}):[],f=s?u.map(p=>({name:p.name??"",path:n?`${n}/${p.name}`:p.name??"",isFolder:!0})):[],g=[...m,...f];if(!a.recursive||u.length===0)return g;const y=await Promise.all(u.map(p=>this._listLevel(n?`${n}/${p.name}`:p.name??"",a)));return[...g,...y.flat()]}catch(i){return console.error(`[SupabaseStorage] list error for ${n}:`,i),[]}},this.config=t}getConfigurationState(){return Tt("SupabaseStorageProvider",ar(this.config,["url","anonKey"],"supabase."))}isConfigured(){return this.getConfigurationState().configured}resolveBucket(t){return t??this.config.bucket??"public"}authHeaders(){return{apikey:this.config.anonKey,Authorization:`Bearer ${this.config.accessToken??this.config.anonKey}`}}}const an={},wr=(e,t,n)=>{(an[e]??(an[e]={}))[t]=n},zl=e=>{var t;return typeof((t=e.credential)==null?void 0:t.token)=="string"?e.credential.token:void 0},Vl=async e=>{var t;await An(e.publicConfig),((t=e.credential)==null?void 0:t.type)==="firebaseCustomToken"&&await Ku(e.credential.token)};wr("data","mock",e=>new Mn(e.publicConfig.seed,{persist:!1}));wr("data","firebase",async e=>(await Vl(e),new br));wr("data","supabase",e=>new Ka({url:e.publicConfig.url,anonKey:e.publicConfig.anonKey,accessToken:zl(e)}));wr("storage","firebase",async e=>(await Vl(e),new vr));wr("storage","supabase",e=>new Ga({url:e.publicConfig.url,anonKey:e.publicConfig.anonKey,accessToken:zl(e)}));const Ul=()=>{const e=Fl();return{switchSession:r.useCallback(async(n,a)=>{var l;let o;if(typeof n=="function")o=await n();else{const i=await fetch(n,a==null?void 0:a.fetchOptions);if(!i.ok)throw new Error(`Provider session request failed: ${i.status} ${i.statusText}`);o=await i.json()}a!=null&&a.onResponse&&(o=await a.onResponse(o));const s={applied:[],skipped:[]};for(const[i,c]of Object.entries(o.providers)){const d=(l=an[i])==null?void 0:l[c.type];if(!d){console.warn(`ProviderSession: no factory registered for category "${i}" type "${c.type}" — discarding. Register one with registerProviderSessionFactory().`),s.skipped.push({category:i,type:c.type});continue}const u=await d(c);await e(i,"custom",u),s.applied.push(i)}return s},[e]),setProvider:e}};function om(e,t){return e?typeof e=="string"?r.createElement(W,{name:e,size:15,className:t}):e:null}function sm({items:e,activeId:t=null,onSelect:n=void 0,onError:a=void 0,onResponse:o=void 0,endpoint:s,authorization:l=void 0,requestBody:i=void 0,method:c="POST",icon:d="layers",caption:u=void 0,listLabel:m=void 0,placeholder:f=void 0,disabled:g=!1,open:y=void 0,onOpenChange:p=void 0,footer:h=void 0,before:b=void 0,after:k=void 0,wrapperClassName:w=void 0,className:S=void 0,triggerClassName:I=void 0,listClassName:A=void 0,itemClassName:x=void 0}){const v=me(),R=Me("select"),{switchSession:M}=Ul(),D=_a(),[C,B]=r.useState(!1),[E,_]=r.useState(null),F=e.find(L=>L.id===t)??null,O=y??C,V=p??B,j=E!==null,z=r.useRef(null),P=async()=>{var L;return l?typeof l=="function"?l():l:(L=D.getAccessToken)==null?void 0:L.call(D)},$=async L=>{if(z.current!==L.id){_(L.id);try{if(typeof s=="function")await M(()=>s(L.id),{onResponse:o});else{const U=await P();await M(s,{onResponse:o,fetchOptions:{method:c,headers:{"Content-Type":"application/json",...U?{Authorization:`Bearer ${U}`}:{}},body:JSON.stringify(i?i(L.id):{id:L.id})}})}z.current=L.id,n==null||n(L.id)}catch(U){a==null||a(L.id,U)}finally{_(null)}}},T=L=>{V(!1),$(L)};return r.useEffect(()=>{if(!t||t===z.current)return;const L=e.find(U=>U.id===t);L&&$(L)},[t]),r.createElement(r.Fragment,null,b,r.createElement(mt,{open:O,onOpenChange:V,placement:"auto",wrapperClassName:N(v.ProviderSwitcher.wrapperClassName,w),className:N(v.ProviderSwitcher.className,S),triggerClassName:N(v.ProviderSwitcher.triggerClassName,(g||j)&&v.ProviderSwitcher.disabledClassName,I),footer:h,trigger:r.createElement("span",{className:"flex w-full min-w-0 items-center gap-2.5"},r.createElement("span",{className:N(v.ProviderSwitcher.iconWrapperClassName)},om((F==null?void 0:F.icon)??d)),r.createElement("span",{className:"min-w-0 flex-1 pr-2"},r.createElement("span",{className:N(v.ProviderSwitcher.labelClassName)},(F==null?void 0:F.label)??f??R.placeholder),u?r.createElement("span",{className:N(v.ProviderSwitcher.captionClassName)},u):null),r.createElement(W,{name:j?"loader-2":"chevrons-up-down",size:12,className:N(v.ProviderSwitcher.chevronClassName,j&&"animate-spin")}))},m??u?r.createElement(Dl,null,m??u):null,e.map(L=>r.createElement(We,{key:L.id,onClick:g||j?void 0:()=>T(L),className:N(v.ProviderSwitcher.itemClassName,L.id===t?v.ProviderSwitcher.itemActiveClassName:v.ProviderSwitcher.itemInactiveClassName,x,A)},r.createElement("span",{className:"flex w-full min-w-0 items-center gap-2"},r.createElement("span",{className:N("w-3.5 shrink-0",v.ProviderSwitcher.checkClassName)},L.id===t?r.createElement(W,{name:"check",size:13}):null),r.createElement("span",{className:"flex-1 truncate"},L.label),L.meta?r.createElement("span",{className:N("shrink-0",v.ProviderSwitcher.itemMetaClassName)},L.meta):null)))),k)}const lm={info:"text-blue-600",success:"text-green-600",warning:"text-yellow-600",danger:"text-red-600",primary:"text-primary",secondary:"text-secondary",light:"text-gray-400",dark:"text-gray-800"},im="bg-card supports-[backdrop-filter]:backdrop-blur-sm",Gr=({children:e,variant:t="info",appearance:n="default",placement:a="inline",anchorRef:o=void 0,timeout:s=void 0,onClose:l=void 0,icon:i=!0,before:c=void 0,after:d=void 0,wrapperClassName:u=void 0,className:m=void 0})=>{const f=me(),[g,y]=r.useState(null);r.useLayoutEffect(()=>{if(a!=="sticky"){y(null);return}let w=0,S=null,I=!1;const A=()=>{const x=o==null?void 0:o.current;if(!I){if(!x){w=requestAnimationFrame(A);return}S=document.createElement("div"),S.style.cssText="position:sticky;top:0;left:0;right:0;z-index:50;width:100%",x.prepend(S),y(S)}};return A(),()=>{I=!0,w&&cancelAnimationFrame(w),S&&S.remove(),y(null)}},[a,o]);const h=i===!1?null:i===!0?{info:"info",success:"check",warning:"warning",danger:"x-circle",primary:"",secondary:"",light:"",dark:""}[t]||null:i||null;r.useEffect(()=>{if(typeof l=="function"){const S=setTimeout(()=>{l()},s??5e3);return()=>clearTimeout(S)}},[l,s]);const b=n==="text"?r.createElement("span",{role:"status",className:N("inline-flex items-center gap-1 text-sm font-medium",lm[t]??"text-foreground",m)},h&&r.createElement(W,{name:h,size:14,className:"shrink-0"}),e):r.createElement("div",{role:"alert",className:N("alert alert-"+t,m||f.Alert.className,(a==="fixed"||a==="sticky")&&["w-full rounded-none border-x-0 shadow-md",im])},h&&r.createElement(W,{name:h,size:16,className:"shrink-0"}),e);if(a==="fixed"){const w=(()=>{const S="__alert-portal-fixed__";let I=document.getElementById(S);return I||(I=document.createElement("div"),I.id=S,I.style.cssText="position:fixed;top:0;left:0;right:0;z-index:9999;width:100%",document.body.appendChild(I)),I})();return er.createPortal(b,w)}if(a==="sticky")return g?er.createPortal(b,g):null;const k=u??(c||d?"flex items-center gap-2":void 0);return r.createElement(pe,{className:k},c,b,d)},_r={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")},cm={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"]},Ho={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"},Ko={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 on(e,t){return typeof t=="string"&&t in e}async function Hl(e,t=new Set){var n;if(!t.has(e)){for(const a of cm[e]??[])on(_r,a)&&await Hl(a,t);await((n=_r[e])==null?void 0:n.call(_r)),t.add(e)}}let Go=!1;async function dm(){Go||(Go=!0,await Promise.resolve().then(()=>require("./prism-themes-Dyvby5gX.js")))}const um=({language:e,children:t,before:n,after:a,wrapperClassName:o,className:s,showCopy:l=!0,theme:i="tomorrow",background:c="default"})=>{const d=r.useRef(null),u=me(),m=Me("code"),f=typeof t=="string"?t:String(t??""),g=on(_r,e)?e:"tsx",y=on(Ho,i)?i:"tomorrow",p=on(Ko,c)?c:"transparent";return r.useEffect(()=>{let h=!1;return(async()=>{var w;await dm(),(w=window.Prism)!=null&&w.highlightElement||(window.Prism={...window.Prism??{},manual:!0});let k;try{k=(await import("prismjs")).default,window.Prism=k}catch(S){console.warn("Errore nel caricare Prism core",S);return}try{await Hl(g)}catch(S){console.warn(`Errore nel caricare il linguaggio Prism "${g}"`,S)}if(!h&&d.current)try{k.highlightElement(d.current)}catch(S){console.warn(`Errore nell'evidenziare il blocco Prism "${g}"`,S)}})(),()=>{h=!0}},[f,g]),r.createElement(pe,{className:o||u.Code.wrapperClassName},r.createElement("div",{className:N("flex w-full items-stretch gap-2",(n||a)&&"overflow-x-auto")},n&&r.createElement("div",{className:"flex shrink-0 items-center text-sm text-muted-foreground"},n),r.createElement("pre",{"data-rf-code-theme":y,"data-rf-code-background":p,className:N("relative min-w-0 flex-1 overflow-auto rounded-md border border-border p-4 text-sm",Ho[y],Ko[p],s||u.Code.className)},l&&r.createElement("button",{onClick:()=>ka(f),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:m.copyCode,"aria-label":m.copyCode},r.createElement(W,{name:"clipboard",size:14})),r.createElement("code",{ref:d,className:`language-${g}`},f)),a&&r.createElement("div",{className:"flex shrink-0 items-center text-sm text-muted-foreground"},a)))},mm={en:"English",it:"Italiano",fr:"Français",de:"Deutsch",es:"Español",pt:"Português",nl:"Nederlands",pl:"Polski",ru:"Русский",zh:"中文",ja:"日本語",ko:"한국어",ar:"العربية"},fm=({icon:e="Globe",label:t,labels:n,appearance:a="code",className:o=""})=>{const{locale:s,availableLocales:l,setLocale:i}=Me();if(l.length<=1)return null;const c={...mm,...n},d=u=>a==="code"?u.toUpperCase():c[u]??u.toUpperCase();return r.createElement("div",{className:`flex items-center gap-1.5 ${o}`.trim()},r.createElement(W,{name:e,size:16,"aria-hidden":!0}),t&&r.createElement("span",{className:"text-sm"},t),r.createElement("select",{value:s,onChange:u=>i(u.target.value),className:"cursor-pointer rounded border border-border bg-transparent py-0.5 pl-1 pr-5 text-sm focus:outline-none focus:ring-1 focus:ring-ring",style:{width:"auto"},"aria-label":t??"Select language"},l.map(u=>r.createElement("option",{key:u,value:u},d(u)))))},mn={primary:"primary",secondary:"secondary",success:"success",warning:"warning",danger:"destructive",info:"info",light:"muted",dark:"foreground"},pm={primary:"primary-foreground",secondary:"secondary-foreground",success:"success-foreground",warning:"warning-foreground",danger:"destructive-foreground",info:"info-foreground",light:"muted-foreground",dark:"background"},qt=(e,t)=>`hsl(var(--rf-${e})${t===void 0?"":` / ${t}`})`,gm=({progress:e,variant:t,thickness:n,showText:a,trackVariant:o,size:s,fontSize:l,className:i})=>{const c=qt(mn[o],o==="secondary"||o==="light"?.55:.16),d=qt(mn[t]),u=e>=12?qt(pm[t]):qt("foreground");return r.createElement("div",{className:N("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},r.createElement("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${e}%`,backgroundColor:d}}),a&&r.createElement("span",{className:"pointer-events-none absolute inset-0 flex items-center justify-center font-medium tabular-nums",style:{fontSize:`${l}px`,color:u}},e,"%"))},hm=({progress:e,variant:t,thickness:n,showText:a,trackVariant:o,size:s,fontSize:l,className:i})=>{const c=s/2,d=c-n/2,u=2*Math.PI*d,m=u*((100-e)/100),f=-90,g=qt(mn[o],o==="secondary"||o==="light"?.55:.18),y=qt(mn[t]),p=qt("foreground");return r.createElement("span",{className:N("inline-flex items-center justify-center",i),role:"progressbar","aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":100},r.createElement("svg",{width:s,height:s,viewBox:`0 0 ${s} ${s}`},r.createElement("circle",{r:d,cx:c,cy:c,fill:"none",stroke:g,strokeWidth:n}),r.createElement("circle",{r:d,cx:c,cy:c,fill:"none",stroke:y,strokeWidth:n,strokeLinecap:"round",strokeDasharray:u,strokeDashoffset:m,style:{transform:`rotate(${f}deg)`,transformOrigin:"center",transition:"stroke-dashoffset 300ms ease"}}),a&&r.createElement("text",{x:"50%",y:"50%",textAnchor:"middle",dominantBaseline:"middle",fontWeight:700,fontSize:l,fill:p},`${e}%`)))},Ya=({value:e=0,max:t=100,min:n=0,appearance:a="bar",variant:o="primary",trackVariant:s="secondary",thickness:l=10,showText:i=!0,size:c=100,fontSize:d=16,label:u=void 0,before:m=void 0,after:f=void 0,wrapperClassName:g=void 0,className:y=void 0})=>{var w,S;const p=me(),h=t-n,b=h<=0?0:Math.round(Math.max(0,Math.min(100,(e-n)/h*100))),k=y||((w=p.Percentage)==null?void 0:w.className)||"";return r.createElement(pe,{className:g||((S=p.Percentage)==null?void 0:S.wrapperClassName)},m,u&&r.createElement(tt,{label:u}),a==="bar"?r.createElement(gm,{progress:b,variant:o,thickness:l,showText:i,trackVariant:s,size:c,fontSize:d,className:k}):r.createElement(hm,{progress:b,variant:o,thickness:l,showText:i,trackVariant:s,size:c,fontSize:d,className:k}),f)},bm={container:Hs,wrapper:pe,row:Ks,col:Gs};function In({minHeight:e=200,maxHeight:t=600,paddingOffset:n=0}){return r.useMemo(()=>({adjustedMinHeight:e-n,wrapperStyle:{maxHeight:t,overflowY:t?"auto":void 0},resolvedMinHeight:e,resolvedMaxHeight:t}),[e,t,n])}const Kl="mb-1 block text-sm font-medium leading-5 text-foreground",Et="mt-1 text-xs text-muted-foreground",Qr="flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",Gl="flex min-h-[5rem] w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",Rt="flex w-full items-stretch",nr="inline-flex shrink-0 items-center border border-input bg-muted px-3 py-1 text-sm text-muted-foreground",Yl="relative",vm="pointer-events-none absolute left-3 top-2 z-10 origin-[0] bg-background px-1 text-xs font-medium normal-case tracking-normal text-muted-foreground transition-all duration-150 peer-placeholder-shown:top-1/2 peer-placeholder-shown:-translate-y-1/2 peer-placeholder-shown:px-0 peer-placeholder-shown:text-sm peer-placeholder-shown:font-normal peer-placeholder-shown:normal-case peer-placeholder-shown:tracking-normal peer-focus:top-2 peer-focus:-translate-y-0 peer-focus:px-1 peer-focus:text-xs peer-focus:font-medium peer-focus:tracking-normal peer-focus:text-foreground",ym="pointer-events-none absolute left-3 top-2 z-10 origin-[0] bg-background px-1 text-xs font-medium normal-case tracking-normal text-muted-foreground transition-all duration-150 peer-placeholder-shown:top-2 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:px-0 peer-placeholder-shown:text-sm peer-placeholder-shown:font-normal peer-placeholder-shown:normal-case peer-placeholder-shown:tracking-normal peer-focus:top-2 peer-focus:translate-y-0 peer-focus:px-1 peer-focus:text-xs peer-focus:font-medium peer-focus:tracking-normal peer-focus:text-foreground",xm="peer h-14 px-3 pt-6 pb-2",wm="peer px-3 pt-6 pb-2",Wl=(e,{before:t,after:n})=>N(e,t&&"!rounded-l-none",n&&"!rounded-r-none"),fn=({children:e,side:t})=>r.createElement("span",{className:N(nr,t==="before"?"rounded-l-md rounded-r-none border-r-0":"rounded-l-none rounded-r-md border-l-0")},e),et=({message:e})=>r.createElement("div",{className:"mt-1 flex items-center gap-1 text-xs text-destructive",role:"alert","aria-live":"polite"},r.createElement(W,{name:"warning-circle",size:12,className:"shrink-0"}),r.createElement("span",null,e)),ql=({name:e,onChange:t,wrapperClassName:n,defaultValue:a,valueChecked:o,inheritWrapperClassName:s})=>{const l=g=>g==null?"":`${g}`,{value:i,handleChange:c,formWrapClass:d}=Ye({name:e,onChange:t,wrapperClassName:n,inputType:typeof o=="number"?"number":"text",defaultValue:a!==void 0?l(a)===l(o)?l(o):"":void 0,inheritWrapperClassName:s}),u=r.useId(),m=l(i)===l(o);return{id:u,checked:m,formWrapClass:d,handleCheckboxChange:g=>{c==null||c({target:{name:e,value:g.target.checked?o:""}})}}},lt=({name:e,onChange:t=void 0,defaultValue:n=void 0,placeholder:a=void 0,label:o=void 0,type:s="text",required:l=!1,readOnlyAfterSet:i=!1,disabled:c=!1,before:d=void 0,after:u=void 0,afterInset:m=void 0,feedback:f=void 0,min:g=void 0,max:y=void 0,step:p=void 0,id:h=void 0,labelClassName:b=void 0,inheritWrapperClassName:k=!0,wrapperClassName:w=void 0,className:S=void 0,validator:I=void 0,labelMode:A="default"})=>{const{value:x,handleChange:v,formWrapClass:R}=Ye({name:e,onChange:t,wrapperClassName:w,inputType:s,defaultValue:n,inheritWrapperClassName:k}),M=ut(e,{required:l,label:o,validator:I}),D=r.useId(),C=h??D,B=Ki({name:e,value:x,handleChange:v}),E=!!(A==="floating"&&o&&!d&&!u&&!m),_=E?" ":a;return r.createElement(pe,{className:R},!E&&o&&r.createElement(tt,{label:o,required:l,htmlFor:C,className:b}),r.createElement(pe,{className:N(d||u?Rt:"",m&&"relative",E&&Yl)},d&&r.createElement(fn,{side:"before"},d),r.createElement("input",{id:C,type:s,name:e,className:Wl(N(Qr,E&&xm,M&&"border-destructive focus-visible:ring-destructive/20",m&&"pr-9",S),{before:d,after:u}),placeholder:_,required:l,disabled:c||i&&!Jr(x),value:x??"",onChange:v,min:g,max:y,step:p,onDragOver:F=>F.preventDefault(),onDrop:B}),E&&r.createElement("label",{htmlFor:C,className:N(vm,b)},o," ",l&&r.createElement("span",{className:"text-destructive"},"*")),u&&r.createElement(fn,{side:"after"},u),m&&r.createElement("span",{className:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-1.5 [&>*]:pointer-events-auto"},m)),M?r.createElement(et,{message:M}):f&&r.createElement("div",{className:Et},f))},Wa=e=>r.createElement(lt,{...e,type:"text"}),Jl=e=>r.createElement(lt,{...e,type:"number"}),qa=e=>r.createElement(lt,{...e,type:"email"}),Xl=e=>{const[t,n]=r.useState(!1);return r.createElement(lt,{...e,type:t?"text":"password",afterInset:r.createElement("button",{type:"button",tabIndex:-1,onClick:()=>n(!t),className:"h-7 w-7 inline-flex items-center justify-center rounded text-muted-foreground hover:text-foreground transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"},r.createElement(W,{name:t?"eye":"eye-off",size:15}))})},Zl=({className:e,...t})=>r.createElement(lt,{...t,type:"color",className:N("w-10 shrink-0 cursor-pointer p-0.5",e)}),Ql=e=>r.createElement(lt,{...e,type:"date"}),ei=e=>r.createElement(lt,{...e,type:"time"}),ti=e=>r.createElement(lt,{...e,type:"datetime-local"}),ri=e=>r.createElement(lt,{...e,type:"week"}),ni=e=>r.createElement(lt,{...e,type:"month"}),ai=e=>r.createElement(lt,{...e,type:"range",className:N("!border-0 !bg-transparent !shadow-none !px-0 !py-0 !h-auto cursor-pointer accent-primary",e.className)}),Em=e=>r.createElement(lt,{...e,type:"url"}),Nm=({name:e,onChange:t=void 0,defaultValue:n=void 0,value:a=void 0,id:o=void 0,inheritWrapperClassName:s=!0,wrapperClassName:l=void 0})=>{const{value:i,handleChange:c}=Ye({name:e,onChange:t,wrapperClassName:l,defaultValue:n??a,inheritWrapperClassName:s}),d=r.useId(),u=o??d,m=r.useMemo(()=>JSON.stringify(a??null),[a]),f=r.useMemo(()=>JSON.stringify(i??null),[i]);return r.useEffect(()=>{a!==void 0&&m!==f&&c({target:{name:e,value:a}})},[c,e,m,f,a]),r.createElement("input",{id:u,type:"hidden",name:e,value:typeof i=="string"?i:i==null?"":JSON.stringify(i),readOnly:!0})},oi=({name:e,onChange:t=void 0,defaultValue:n=void 0,label:a=void 0,title:o=void 0,ariaLabel:s=void 0,required:l=!1,valueChecked:i="on",before:c=void 0,after:d=void 0,inheritWrapperClassName:u=!0,wrapperClassName:m=void 0,className:f=void 0})=>{const{id:g,checked:y,formWrapClass:p,handleCheckboxChange:h}=ql({name:e,onChange:t,wrapperClassName:m,defaultValue:n,valueChecked:i,inheritWrapperClassName:u}),b=ut(e,{required:l,label:a});return r.createElement(pe,{className:p},r.createElement("div",{className:"flex items-center gap-2"},c,r.createElement("input",{type:"checkbox",id:g,name:e,title:o,"aria-label":s,className:N("h-4 w-4 shrink-0 rounded-sm border border-input bg-background text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",f),checked:y,onChange:h}),a&&r.createElement("label",{className:"text-sm font-medium leading-none text-foreground",htmlFor:g},a,l&&r.createElement("span",{className:"text-destructive"}," *")),d),b&&r.createElement(et,{message:b}))},Ja=({name:e,onChange:t=void 0,defaultValue:n=void 0,label:a=void 0,title:o=void 0,ariaLabel:s=void 0,required:l=!1,valueChecked:i="on",before:c=void 0,after:d=void 0,inheritWrapperClassName:u=!0,wrapperClassName:m=void 0,className:f=void 0})=>{const{id:g,checked:y,formWrapClass:p,handleCheckboxChange:h}=ql({name:e,onChange:t,wrapperClassName:m,defaultValue:n,valueChecked:i,inheritWrapperClassName:u}),b=ut(e,{required:l,label:a});return r.createElement(pe,{className:p},r.createElement("div",{className:"flex items-center gap-2"},c,r.createElement("label",{htmlFor:g,className:"inline-flex cursor-pointer items-center gap-2 select-none"},r.createElement("input",{id:g,name:e,type:"checkbox",title:o,"aria-label":s,checked:y,onChange:h,className:"sr-only"}),r.createElement("span",{"aria-hidden":"true",className:N("relative inline-flex h-5 w-9 shrink-0 rounded-full transition-colors duration-200 ease-out",y?"bg-primary":"bg-muted-foreground/35",f)},r.createElement("span",{className:N("pointer-events-none absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-background shadow-sm transition-transform duration-200 ease-out",y&&"translate-x-4")})),a&&r.createElement("span",{className:"text-sm font-medium leading-none text-foreground"},a,l&&r.createElement("span",{className:"text-destructive"}," *"))),d),b&&r.createElement(et,{message:b}))},tt=({label:e,required:t=!1,htmlFor:n=void 0,className:a=void 0})=>r.createElement("label",{htmlFor:n,className:N(Kl,a)},e," ",t&&r.createElement("span",{className:"text-destructive"},"*")),yr=({name:e,onChange:t=void 0,defaultValue:n=void 0,placeholder:a=void 0,label:o=void 0,required:s=!1,readOnlyAfterSet:l=!1,disabled:i=!1,minHeight:c=96,maxHeight:d=void 0,textareaRef:u=void 0,before:m=void 0,after:f=void 0,feedback:g=void 0,id:y=void 0,labelClassName:p=void 0,inheritWrapperClassName:h=!0,className:b=void 0,wrapperClassName:k=void 0,validator:w=void 0,onKeyDown:S=void 0,onClick:I=void 0,onBlur:A=void 0,labelMode:x="default"})=>{const{value:v,handleChange:R,formWrapClass:M}=Ye({name:e,onChange:t,wrapperClassName:k,defaultValue:n,inheritWrapperClassName:h}),D=ut(e,{required:s,label:o,validator:w}),C=In({minHeight:c,maxHeight:d}),B=r.useId(),E=y??B,_=Ki({name:e,value:v,handleChange:R}),F=r.useRef(null),O=!!(x==="floating"&&o&&!m&&!f),V=O?" ":a,j=z=>{if(F.current=z,typeof u=="function"){u(z);return}u&&typeof u=="object"&&"current"in u&&(u.current=z)};return r.useEffect(()=>{if(!F.current)return;const z=F.current;z.style.height="auto";const P=Math.max(z.scrollHeight,C.resolvedMinHeight),$=C.resolvedMaxHeight?Math.min(P,C.resolvedMaxHeight):P;z.style.minHeight=`${C.resolvedMinHeight}px`,z.style.maxHeight=C.resolvedMaxHeight?`${C.resolvedMaxHeight}px`:"",z.style.height=`${$}px`,z.style.overflowY=C.resolvedMaxHeight&&P>C.resolvedMaxHeight?"auto":"hidden"},[v,C.resolvedMinHeight,C.resolvedMaxHeight]),r.createElement(pe,{className:M},!O&&o&&r.createElement(tt,{required:s,label:o,htmlFor:E,className:p}),r.createElement(pe,{className:N(m||f?Rt:"",O&&Yl)},m&&r.createElement(fn,{side:"before"},m),r.createElement("textarea",{id:E,name:e,className:Wl(N(Gl,"resize-none",O&&wm,D&&"border-destructive focus-visible:ring-destructive/20",b),{before:m,after:f}),ref:j,placeholder:V,required:s,disabled:i||l&&!Jr(v),value:v??"",onChange:R,onKeyDown:S,onClick:I,onBlur:A,onDragOver:z=>z.preventDefault(),onDrop:_}),O&&r.createElement("label",{htmlFor:E,className:N(ym,p)},o," ",s&&r.createElement("span",{className:"text-destructive"},"*")),f&&r.createElement(fn,{side:"after"},f)),D?r.createElement(et,{message:D}):g&&r.createElement("div",{className:Et},g))},Cm=({children:e,onClick:t=void 0,label:n=void 0,activeIndices:a=void 0,draggable:o=void 0,onDrop:s=void 0,disabledIndices:l=void 0,loadingIndices:i=void 0,before:c=void 0,after:d=void 0,wrapperClassName:u=void 0,className:m=void 0,itemClassName:f=void 0})=>{const g=N("flex flex-col divide-y divide-border rounded-md border bg-card",m),y=h=>{const b=k=>k==null||typeof k=="boolean"?"":typeof k=="string"||typeof k=="number"?`${k}`:Array.isArray(k)?k.map(b).join(" "):r.isValidElement(k)?b(k.props.children):"";return b(h).replace(/\s+/g," ").trim()},p=(h,b)=>{h.dataTransfer.setData("text/plain",(s==null?void 0:s(b))??b)};return r.createElement(pe,{className:u},c,n&&r.createElement("div",null,n),r.createElement("div",{className:g},e.map((h,b)=>{const k=a==null?void 0:a.includes(b),w=l==null?void 0:l.includes(b),S=i==null?void 0:i.includes(b),I=N("flex items-center gap-2 px-3 py-2 text-sm transition-colors",t&&"cursor-pointer hover:bg-accent hover:text-accent-foreground",k&&"bg-primary/8 text-foreground",w&&"pointer-events-none opacity-50",S&&"animate-pulse",f);return t?r.createElement("div",{key:b,onClick:A=>{!S&&!Aa(A)&&t(A,b)},className:I,style:{cursor:"pointer"}},h):r.createElement("span",{key:b,className:I,draggable:o,onDragStart:o?A=>p(A,y(h)):void 0,style:{cursor:o?"grab":"default"}},o&&r.createElement(W,{name:"grip-vertical"}),h)})),d)},si={field:"",dir:"asc"},Yo=e=>typeof e=="string"&&!Number.isNaN(Date.parse(e)),km=(e,t)=>e==null&&t==null?0:e==null?1:t==null?-1:typeof e=="number"&&typeof t=="number"?e-t:typeof e=="boolean"&&typeof t=="boolean"?Number(e)-Number(t):e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():Yo(e)&&Yo(t)?Date.parse(e)-Date.parse(t):String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:"base"}),pr={normalize(e){if(e!=null&&e.field)return{field:e.field,dir:e.dir==="desc"?"desc":"asc"}},toggle(e,t){return!e||e.field!==t?{field:t,dir:"asc"}:{field:t,dir:e.dir==="asc"?"desc":"asc"}},compareValues(e,t,n="asc"){const a=km(e,t);return n==="desc"?-a:a},compareRecords(e,t,n){const a=this.normalize(n);if(!a)return 0;const o=zr(e,a.field),s=zr(t,a.field);return this.compareValues(o,s,a.dir)},records(e,t){if(!e)return e;const n=this.normalize(t);return n?[...e].sort((a,o)=>this.compareRecords(a,o,n)):[...e]}},li=e=>e==null||typeof e=="boolean"?[]:typeof e=="object"&&!Array.isArray(e)?[]:typeof e=="string"||typeof e=="number"?e.toString().split(","):e,ii=e=>e?typeof e!="object"?{label:(e==null?void 0:e.toString())||"",value:(e==null?void 0:e.toString())||""}:{label:String((e==null?void 0:e.label)??"")||"",value:String((e==null?void 0:e.value)??"")||""}:{label:"@value",value:"@value"},Xa=e=>e.map(t=>ii({label:t.label??t.name??t.title??t[Be]??"",value:t.value??t[Be]??t.label??t.name??""}));function Za(e){return{fieldMap:e==null?void 0:e.fieldMap,where:e==null?void 0:e.where,order:e==null?void 0:e.order,onLoad:e==null?void 0:e.onLoad}}const Sm=(e,t,n)=>{const a=e==null?void 0:e[n.field],[o]=Object.entries(t||{});if(!o||!a)return!1;const[s,l]=o;return s===a&&l===n.dir},Qa=(e,t,n,a,o)=>{const s=n||{...si,field:"label"},l=[...e.map(ii),...t];return e.length===0&&Sm(o,a,s)?l:pr.records(l,s)||[]},xr=({children:e,side:t})=>r.createElement("span",{className:N(nr,t==="before"?"rounded-l-md rounded-r-none border-r-0":"rounded-l-none rounded-r-md border-l-0")},e),pn=({name:e,onChange:t=void 0,defaultValue:n=void 0,required:a=!1,readOnlyAfterSet:o=!1,disabled:s=!1,placeholderOption:l=void 0,label:i=void 0,title:c=void 0,before:d=void 0,after:u=void 0,feedback:m=void 0,options:f=[],optionsSource:g=void 0,order:y=void 0,inheritWrapperClassName:p=!0,wrapperClassName:h=void 0,className:b=void 0,validator:k=void 0})=>{const{value:w,handleChange:S,formWrapClass:I}=Ye({name:e,onChange:t,wrapperClassName:h,defaultValue:n,inheritWrapperClassName:p}),A=ut(e,{required:a,label:i,validator:k}),x=me(),v=Me("select"),R=l??{label:v.placeholder,value:""},M=r.useMemo(()=>Za(g),[g==null?void 0:g.fieldMap,g==null?void 0:g.where,g==null?void 0:g.order,g==null?void 0:g.onLoad]),D=Dt(),[C,B]=r.useState([]);r.useEffect(()=>D.subscribe(g==null?void 0:g.path,F=>B(Xa(F)),M),[D,g==null?void 0:g.path,M]);const E=r.useMemo(()=>{const F=Qa(f,C,y,g==null?void 0:g.order,M.fieldMap);return xn(w&&!F.length?[...F,{label:`× ${w.toString()}`,value:w.toString()}]:F)},[f,C,y,g==null?void 0:g.order,M.fieldMap,w]);!w&&!R&&E.length>0&&(S==null||S({target:{name:e,value:E[0].value}}));const _=r.useId();return r.createElement(pe,{className:I||x.Select.wrapperClassName},i&&r.createElement(tt,{label:i,required:a,htmlFor:_}),r.createElement(pe,{className:d||u?N(Rt,"flex-nowrap"):""},d&&r.createElement(xr,{side:"before"},d),r.createElement("select",{id:_,name:e,className:N(Qr,"appearance-none pr-8",d&&"!rounded-l-none",u&&"!rounded-r-none",A&&"border-destructive focus-visible:ring-destructive/20",b||x.Select.className),value:w??"",required:a,disabled:s||o&&!Jr(w),onChange:S,title:c},R&&r.createElement("option",{key:`${_}-empty`,value:R.value},R.label),E.some(F=>F.group)?Object.entries(E.reduce((F,O)=>{const V=O.group??"";return(F[V]??(F[V]=[])).push(O),F},{})).map(([F,O])=>F?r.createElement("optgroup",{key:F,label:F},O.map((V,j)=>r.createElement("option",{key:`${_}-${F}-${j}`,value:V.value},V.label))):O.map((V,j)=>r.createElement("option",{key:`${_}-nogroup-${j}`,value:V.value},V.label))):E.map((F,O)=>r.createElement("option",{key:`${_}-${O}`,value:F.value},F.label))),u&&r.createElement(xr,{side:"after"},u)),A?r.createElement(et,{message:A}):m&&r.createElement("div",{className:Et},m))},ci=({name:e,defaultValue:t=void 0,minItems:n=void 0,maxItems:a=void 0,onChange:o=void 0,required:s=!1,readOnlyAfterSet:l=!1,disabled:i=!1,label:c=void 0,title:d=void 0,placeholder:u=void 0,before:m=void 0,after:f=void 0,feedback:g=void 0,options:y=[],optionsSource:p=void 0,order:h=void 0,inheritWrapperClassName:b=!0,wrapperClassName:k=void 0,className:w=void 0,creatable:S=!1,onCreate:I=void 0})=>{const{value:A,handleChange:x,formWrapClass:v}=Ye({name:e,onChange:o,wrapperClassName:k,defaultValue:t,inheritWrapperClassName:b}),R=ut(e,{required:s,label:c}),M=me(),D=r.useMemo(()=>li(A),[A]),[C,B]=r.useState(()=>D);r.useEffect(()=>{Sa(D,C)||B(D)},[D,C]);const E=r.useMemo(()=>Za(p),[p==null?void 0:p.fieldMap,p==null?void 0:p.where,p==null?void 0:p.order,p==null?void 0:p.onLoad]),_=Dt(),[F,O]=r.useState([]);r.useEffect(()=>_.subscribe(p==null?void 0:p.path,Z=>O(Xa(Z)),E),[_,p==null?void 0:p.path,E]);const[V,j]=r.useState([]),z=r.useMemo(()=>{const Z=Qa([...y,...V],F,h,p==null?void 0:p.order,E.fieldMap);return xn(Z,"value")},[y,V,F,h,p==null?void 0:p.order,E.fieldMap]),P=(Z,q)=>{if(Z){if(C.includes(Z)||a&&C.length>=a){q.value="";return}B(se=>{const re=[...se,Z];return setTimeout(()=>{x==null||x({target:{name:e,value:re}})},0),re}),q.value=""}},$=Z=>{const q=Z.target.value;z.some(re=>re.value===q)&&P(q,Z.target)},T=Z=>{if(Z.key!=="Enter")return;Z.preventDefault();const q=Z.target.value.trim();if(!q)return;if(!z.some(re=>re.value===q)){if(!S)return;j(re=>[...re,{label:q,value:q}]),I==null||I(q)}P(q,Z.target)},L=Z=>{B(q=>{const se=q.filter(re=>re!==Z);return setTimeout(()=>{x==null||x({target:{name:e,value:se}})},0),se})},U=r.useId(),de=`${U}-options`;return r.createElement(pe,{className:v||M.Autocomplete.wrapperClassName},c&&r.createElement(tt,{label:c,required:s,htmlFor:U}),r.createElement(pe,{className:m||f?N(Rt,"flex-nowrap"):""},m&&r.createElement(xr,{side:"before"},m),r.createElement("div",{className:N(Qr,"h-auto min-h-9 flex-wrap items-center gap-1 py-1.5 px-2",m&&"rounded-l-none",f&&"rounded-r-none")},C.map(Z=>r.createElement("span",{className:"inline-flex items-center gap-1 rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary",key:Z},Z,r.createElement("button",{type:"button",className:"ml-0.5 opacity-60 transition-opacity hover:opacity-100",onClick:()=>L(Z)},"×"))),(!a||C.length<a)&&r.createElement("input",{id:U,type:"text",className:N("min-w-[120px] flex-1 border-none bg-transparent text-sm outline-none placeholder:text-muted-foreground",w||M.Autocomplete.className),required:s&&C.length<(n||0),disabled:i||l&&!Jr(A),placeholder:S?u??"Type or press Enter to create...":u,title:d,list:de,onChange:$,onKeyDown:T})),r.createElement("datalist",{id:de},z.map((Z,q)=>r.createElement("option",{value:Z.value,key:`${U}-${q}`},Z.label))),f&&r.createElement(xr,{side:"after"},f)),R?r.createElement(et,{message:R}):g&&r.createElement("div",{className:Et},g))},di=({name:e,defaultValue:t=void 0,onChange:n=void 0,required:a=!1,readOnlyAfterSet:o=!1,disabled:s=!1,label:l=void 0,title:i=void 0,before:c=void 0,after:d=void 0,feedback:u=void 0,options:m=[],optionsSource:f=void 0,order:g=void 0,inheritWrapperClassName:y=!0,wrapperClassName:p=void 0,className:h=void 0,itemClassName:b=void 0})=>{const{value:k,handleChange:w,formWrapClass:S}=Ye({name:e,onChange:n,wrapperClassName:p,defaultValue:t,inheritWrapperClassName:y}),I=ut(e,{required:a,label:l}),A=r.useMemo(()=>li(k),[k]),[x,v]=r.useState(()=>A);r.useEffect(()=>{Sa(A,x)||v(A)},[A,x]);const R=r.useMemo(()=>Za(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]),M=Dt(),[D,C]=r.useState([]);r.useEffect(()=>M.subscribe(f==null?void 0:f.path,j=>C(Xa(j)),R),[M,f==null?void 0:f.path,R]);const B=r.useMemo(()=>{const j=Qa(m,D,g,f==null?void 0:f.order,R.fieldMap);return xn(j,"value")},[m,D,g,f==null?void 0:f.order,R.fieldMap]),E=j=>{v(z=>{const P=z.filter($=>$!==j);return setTimeout(()=>{w==null||w({target:{name:e,value:P}})},0),P})},_=j=>{const z=j.target.value;if(!j.target.checked){E(z);return}B.filter(P=>P.value===z).length!==0&&(x.includes(z)||v(P=>{const $=[...P,z];return setTimeout(()=>{w==null||w({target:{name:e,value:$}})},0),$}))},F=r.useId(),O=s||o&&x.length>0,V=r.createElement(pe,{className:N(c||d?N(Qr,"h-auto min-h-9 w-full min-w-0 flex-col items-start py-2 px-3"):"","space-y-1")},B.map(j=>{const z=Ds(`cl-${F}-${e}-${j.value}`);return r.createElement("div",{key:z,className:N("flex w-full items-center gap-2",b)},r.createElement("input",{className:"h-4 w-4 shrink-0 rounded-sm border border-input bg-background text-primary shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",type:"checkbox",id:z,name:e,value:j.value,onChange:_,checked:x.includes(j.value),disabled:O,title:i}),r.createElement("label",{htmlFor:z,className:"text-sm font-medium leading-none text-foreground"},j.label))}));return r.createElement(pe,{className:N(S,h)},l&&r.createElement(r.Fragment,null,r.createElement(tt,{label:l,required:a}),r.createElement("hr",{className:"mt-0"})),c||d?r.createElement(pe,{className:N(Rt,"flex-nowrap items-stretch")},c&&r.createElement(xr,{side:"before"},c),V,d&&r.createElement(xr,{side:"after"},d)):V,I?r.createElement(et,{message:I}):u&&r.createElement("div",{className:Et},u))};function Wo(e,t){if(!t)return e;const n=e.indexOf("?"),a=n!==-1?e.slice(0,n):e,o=n!==-1?e.slice(n):"",s=a.lastIndexOf(".");return s===-1?`${a}${t}${o}`:`${a.slice(0,s)}${t}${a.slice(s)}${o}`}function Am(e,t){return t.mode==="explicit"?t.variants.map(n=>"width"in n?`${n.src} ${n.width}w`:`${n.src} ${n.density}x`).join(", "):t.mode==="density"?(t.densities??[1,2]).map(a=>{const o=t.suffix?t.suffix(a):a===1?"":`@${a}x`;return`${Wo(e,o)} ${a}x`}).join(", "):t.widths.map(n=>{const a=t.suffix?t.suffix(n):`-${n}w`;return`${Wo(e,a)} ${n}w`}).join(", ")}function Vn(e,t){const n=e.priority?"eager":e.loading??"lazy",a={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&&(a.style=o.join("; ")),t&&(a.srcset=Am(e.src,t),t.mode!=="density"&&t.sizes&&(a.sizes=t.sizes)),Object.fromEntries(Object.entries(a).filter(([,s])=>s!==void 0))}function Mm(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[a,...o]=n;return o.length===0?`<img ${a} />`:`<img ${a}
8
+ ${o.join(`
9
+ `)} />`}function Im(e){return{toHtml:t=>Mm(Vn(e,t)),toJson:t=>JSON.stringify(Vn(e,t),null,2),params:t=>Vn(e,t)}}async function Pm(e,t){return new Promise((n,a)=>{const o=new Image;o.onload=()=>{const s=o.naturalWidth,l=o.naturalHeight,i=e.startsWith("data:")?e.slice(5,e.indexOf(";")):"image/jpeg",d=[...t].sort((u,m)=>u-m).filter(u=>u<s).map(u=>{const m=Math.round(l*(u/s)),f=document.createElement("canvas");f.width=u,f.height=m;const g=f.getContext("2d");if(!g)throw new Error("Canvas 2D context unavailable");return g.drawImage(o,0,0,u,m),{src:f.toDataURL(i),width:u}});d.push({src:e,width:s}),n(d)},o.onerror=()=>a(new Error("resizeVariants: failed to load image")),e.startsWith("data:")||(o.crossOrigin="anonymous"),o.src=e})}async function eo(e,t){var l;const n=await Pm(e,t.length?t:[]),a=((l=n.at(-1))==null?void 0:l.width)??0,o=n.slice(0,-1);return{variants:await Promise.all(o.map(async i=>{const c=await fetch(i.src).then(d=>d.blob());return{width:i.width,dataUri:i.src,localUrl:URL.createObjectURL(c)}})),naturalWidth:a}}async function to(e,t,n,a){const o=a.replace(/\.[^/.]+$/,""),s=a.split(".").pop()??"jpg";return Promise.all(e.map(async l=>({url:await t.upload(l.dataUri,`${n}/${o}_${l.width}w.${s}`)??l.localUrl,width:l.width})))}function ro(e){return[...e].sort((t,n)=>t.width-n.width).map(t=>`${t.url} ${t.width}w`).join(", ")}function Un(e){if(e.startsWith("data:")||e.startsWith("blob:"))return"image.jpg";try{return new URL(e).pathname.split("/").pop()||"image.jpg"}catch{return e.split("/").pop()||"image.jpg"}}function Tm(e){return e.replace(/\.[^/.]+$/,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim().replace(/^(.)/,t=>t.toUpperCase())}const ui=r.createContext(null),mi=({registry:e,defaultKey:t,children:n})=>{const a=r.useMemo(()=>({registry:e,defaultKey:t}),[e,t]);return r.createElement(ui.Provider,{value:a},n)},Pn=e=>{const t=r.useContext(ui);if(!t)return null;const n=e??t.defaultKey;return t.registry[n]??null},tn=()=>r.createElement("div",{className:"h-5 w-px bg-border shrink-0 mx-0.5"}),Tn=({src:e,title:t=void 0,width:n=700,height:a=500,mode:o="inline",onImageLoad:s=void 0,onClose:l=void 0,onSave:i=void 0})=>{const c=Me("imageEditor"),d=r.useRef(null),u=r.useRef(null),m={width:10,color:"rgba(255,0,0,0.5)",fill:"transparent"},[f,g]=r.useState(1);r.useEffect(()=>{if(!d.current)return;let x,v=!1;return(async()=>{const[{default:M}]=await Promise.all([import("tui-image-editor"),import("tui-image-editor/dist/tui-image-editor.css")]);v||!d.current||(x=new M(d.current,{cssMaxWidth:n,cssMaxHeight:a,selectionStyle:{cornerSize:10,rotatingPointOffset:70,cornerColor:"white",cornerStrokeColor:"red",borderColor:"red"}}),u.current=x,e&&x.loadImageFromURL(e,"Sample Image").then(()=>{s==null||s(),x.clearUndoStack(),x.clearRedoStack()}).catch(D=>{console.error("Error loading image:",D)}),x.on("objectAdded",D=>{console.log("objectAdded",D),x.stopDrawingMode()}),x.on("addText",D=>{var B,E;const C=D;x.stopDrawingMode(),x.addText("init text",{styles:{fill:"#FF0000",fontSize:30,fontWeight:"bold"},position:{x:(B=C.originPosition)==null?void 0:B.x,y:(E=C.originPosition)==null?void 0:E.y}})}))})(),()=>{v=!0,x==null||x.destroy(),u.current=null}},[n,a]);const y=r.useCallback(()=>{const x=u.current;!e||!x||x.loadImageFromURL(e,"Sample Image").then(()=>{s==null||s(),x.clearUndoStack(),x.clearRedoStack()}).catch(v=>{console.error("Error loading image:",v)})},[e,s]);r.useEffect(()=>{u.current&&y()},[y]);const p=(x,v)=>{x.preventDefault();const R=u.current;if(!R)return;const M=3,D=1;switch(v){case"ZOOMIN":f<M&&g(C=>C*1.2);break;case"ZOOMOUT":f>D&&g(C=>Math.max(C*.8,D));break;case"UNDO":R.isEmptyUndoStack()||R.undo();break;case"REDO":R.isEmptyRedoStack()||R.redo();break;case"FLIPX":R.flipX();break;case"FLIPY":R.flipY();break;case"ROTATE":R.rotate(90);break;case"CROPPER":R.startDrawingMode(v);break;case"FREE_DRAWING":R.startDrawingMode(v,{width:m.width,color:m.color});break;case"LINE_DRAWING":R.startDrawingMode(v,{width:m.width,color:m.color,arrowType:{tail:"chevron"}});break;case"TEXT":R.startDrawingMode(v);break;case"circle":case"rect":case"triangle":R.setDrawingShape(v,{fill:m.fill,stroke:m.color,strokeWidth:3}),R.startDrawingMode("SHAPE");break}};r.useEffect(()=>{if(o==="modal")return document.body.style.overflow="hidden",()=>{document.body.style.overflow=""}},[o]);const h=async()=>{var v;const x=u.current;if(x){try{const R=(v=x.getCropzoneRect)==null?void 0:v.call(x);R&&R.width>0&&R.height>0&&await x.crop(R)}catch{}await(i==null?void 0:i(x.toDataURL()))}},b=()=>{l==null||l()},k="inline-flex h-8 w-8 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",w=r.createElement(r.Fragment,null,r.createElement("button",{className:k,title:c.undo,onClick:x=>p(x,"UNDO")},r.createElement(W,{name:"arrow-arc-left",size:16})),r.createElement("button",{className:k,title:c.redo,onClick:x=>p(x,"REDO")},r.createElement(W,{name:"arrow-arc-right",size:16})),r.createElement("button",{className:k,title:c.zoomOut,onClick:x=>p(x,"ZOOMOUT")},r.createElement(W,{name:"magnifying-glass-minus",size:16})),r.createElement("button",{className:k,title:c.zoomIn,onClick:x=>p(x,"ZOOMIN")},r.createElement(W,{name:"magnifying-glass-plus",size:16})),r.createElement(tn,null),r.createElement("button",{className:k,title:c.crop,onClick:x=>p(x,"CROPPER")},r.createElement(W,{name:"crop",size:16})),r.createElement("button",{className:k,title:c.flipHorizontal,onClick:x=>p(x,"FLIPX")},r.createElement(W,{name:"arrow-line-right",size:16})),r.createElement("button",{className:k,title:c.flipVertical,onClick:x=>p(x,"FLIPY")},r.createElement(W,{name:"arrow-line-down",size:16})),r.createElement("button",{className:k,title:c.rotate,onClick:x=>p(x,"ROTATE")},r.createElement(W,{name:"camera-rotate",size:16})),r.createElement(tn,null),r.createElement("button",{className:k,title:c.freeDrawing,onClick:x=>p(x,"FREE_DRAWING")},r.createElement(W,{name:"pencil",size:16})),r.createElement("button",{className:k,title:c.arrow,onClick:x=>p(x,"LINE_DRAWING")},r.createElement(W,{name:"arrow-right",size:16})),r.createElement("button",{className:k,title:c.text,onClick:x=>p(x,"TEXT")},r.createElement(W,{name:"text-t",size:16})),r.createElement("button",{className:k,title:c.rectangle,onClick:x=>p(x,"rect")},r.createElement(W,{name:"rectangle",size:16})),r.createElement("button",{className:k,title:c.circle,onClick:x=>p(x,"circle")},r.createElement(W,{name:"circle",size:16})),r.createElement("button",{className:k,title:c.triangle,onClick:x=>p(x,"triangle")},r.createElement(W,{name:"triangle",size:16}))),S=r.createElement("div",{className:"flex flex-1 min-w-0 items-center gap-0.5 overflow-x-auto"},r.createElement("span",{className:"shrink-0 text-sm font-semibold text-foreground pr-2 mr-1"},t||c.title),r.createElement(tn,null),w,i&&r.createElement(r.Fragment,null,r.createElement(tn,null),r.createElement(bt,{className:"btn-primary h-8 px-3 text-xs ml-1",onClick:h,icon:"floppy-disk",label:c.save}))),I=r.createElement("div",{className:"flex items-center gap-0.5 border-b px-2 py-1"},w,i&&r.createElement("div",{className:"ml-auto pl-2"},r.createElement(bt,{className:"btn-primary h-8 px-3 text-xs",onClick:h,icon:"floppy-disk",label:c.save}))),A=r.createElement("div",{className:N("flex w-full items-center justify-center overflow-auto pt-3","[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]","dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]","[background-size:16px_16px]"),style:{minHeight:a*f+"px"}},r.createElement("style",null,".tui-image-editor,.tui-image-editor canvas{background:transparent!important}"),r.createElement("div",{ref:d,style:{transform:`scale(${f})`,transformOrigin:"center center",display:"inline-block",userSelect:"none",width:n+"px",height:a*f+"px"}}));return o==="modal"?r.createElement(or,{size:"xl",header:S,bodyClassName:"overflow-hidden p-0",onClose:b,footer:!1},A):r.createElement(r.Fragment,null,I,A)},Dm=({srcset:e})=>{const t=e.split(",").map(n=>n.trim()).map(n=>{const[a,o]=n.split(" ");return{url:a,width:parseInt(o,10)}}).filter(n=>n.url&&!isNaN(n.width));return t.length<2?null:r.createElement("div",{className:"mt-2 flex flex-col gap-1"},r.createElement("p",{className:"text-xs font-medium text-muted-foreground"},"Responsive variants",r.createElement("span",{className:"ml-1 font-normal opacity-60"},"(",t.length," generated)")),r.createElement("div",{className:"flex gap-1.5"},t.map(n=>r.createElement("a",{key:n.width,href:n.url,target:"_blank",rel:"noopener noreferrer",className:"group relative flex-1 overflow-hidden rounded border border-border",style:{backgroundImage:"repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)",backgroundSize:"8px 8px"}},r.createElement("img",{src:n.url,alt:`${n.width}w`,className:"h-12 w-full object-contain transition-opacity group-hover:opacity-80"}),r.createElement("span",{className:"absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white"},n.width,"px"),r.createElement("div",{className:"absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100"},r.createElement("div",{className:"rounded-md bg-black/60 p-1"},r.createElement(W,{name:"external-link",size:11,className:"text-white"})))))))},fi=({name:e,onChange:t=void 0,defaultValue:n=void 0,label:a=void 0,required:o=!1,disabled:s=!1,feedback:l=void 0,srcsetWidths:i=[],uploadPath:c=void 0,id:d=void 0,labelClassName:u=void 0,inheritWrapperClassName:m=!0,wrapperClassName:f=void 0,className:g=void 0,before:y=void 0,after:p=void 0})=>{const{value:h,handleChange:b,formWrapClass:k}=Ye({name:e,onChange:t,defaultValue:n,wrapperClassName:f,inheritWrapperClassName:m}),w=ut(e,{required:o,label:a}),S=h&&typeof h=="object"&&!Array.isArray(h)?h:{},I=S.src??"",A=S.alt??"",x=S.srcset??"",v=S.sizes??"",R=Pn(),[M,D]=r.useState(!1),[C,B]=r.useState(!1),E=r.useRef(null),_=r.useCallback(j=>{b==null||b({target:{name:e,value:{...S,...j}}})},[b,e,S]),F=r.useRef("");r.useEffect(()=>{I&&I!==F.current&&!A&&_({alt:Tm(Un(I))}),F.current=I},[I]),r.useEffect(()=>{if(!I||!i.length)return;let j=!1;return D(!0),(async()=>{const{variants:z,naturalWidth:P}=await eo(I,i);if(j)return;const $=Un(I);let T;const L=I.startsWith("data:")?URL.createObjectURL(await fetch(I).then(U=>U.blob())):I;R&&c&&z.length?T=[...await to(z,R,c,$),{url:L,width:P}]:T=[...z.map(U=>({url:U.localUrl,width:U.width})),{url:L,width:P}],j||(_({srcset:ro(T),sizes:"(max-width: 640px) 100vw, 800px"}),D(!1))})().catch(()=>{j||D(!1)}),()=>{j=!0}},[I,i.join(",")]);const O=j=>{_({src:j,srcset:"",sizes:""}),B(!1)},V=!!w;return r.createElement(pe,{className:k},y,a&&r.createElement(tt,{label:a,required:o,htmlFor:d??e,className:u}),r.createElement("div",{className:N("rounded-lg border border-input bg-background shadow-sm transition-colors","focus-within:ring-1 focus-within:ring-ring",V&&"border-destructive focus-within:ring-destructive/20",s&&"cursor-not-allowed opacity-50",g)},r.createElement("div",{className:N("group relative flex min-h-[120px] items-center justify-center overflow-hidden rounded-t-lg transition-colors","[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]","dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]","[background-size:16px_16px]")},I?r.createElement("img",{src:I,srcSet:x||void 0,sizes:v||void 0,alt:"",className:"max-h-[180px] max-w-full object-contain"}):r.createElement(W,{name:"image",size:36,className:"opacity-20 text-muted-foreground"}),I&&r.createElement("div",{className:"absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100"},r.createElement("a",{href:I,target:"_blank",rel:"noopener noreferrer",title:"Open original",className:"flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80"},r.createElement(W,{name:"external-link",size:13})),r.createElement("button",{type:"button",title:"Crop",disabled:s,onClick:()=>B(!0),className:"flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80 disabled:cursor-not-allowed disabled:opacity-40"},r.createElement(W,{name:"crop",size:13}))),M&&r.createElement("div",{className:"absolute inset-0 flex items-center justify-center bg-background/70 backdrop-blur-sm"},r.createElement("div",{className:"flex items-center gap-2 text-xs text-muted-foreground"},r.createElement(W,{name:"loader-circle",size:14,className:"animate-spin"}),"Generating variants…"))),r.createElement("div",{className:"flex flex-col gap-3 p-3"},r.createElement("div",{className:"flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Image URL ",r.createElement("span",{className:"font-normal opacity-60"},"(path or https://…)")),r.createElement("input",{type:"url",value:I,disabled:s,onChange:j=>_({src:j.target.value,srcset:"",sizes:""}),placeholder:"https://example.com/image.jpg",className:"h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50"})),r.createElement("div",{className:"flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Alt text"," ",r.createElement("span",{className:"font-normal opacity-60"},"(accessibility & SEO)"),o&&r.createElement("span",{className:"ml-1 text-destructive"},"*")),r.createElement("input",{ref:E,type:"text",value:A,disabled:s,onChange:j=>_({alt:j.target.value}),placeholder:"E.g. Product hero shot",className:N("h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring disabled:opacity-50",V&&"border-destructive")})),x&&r.createElement(Dm,{srcset:x}))),w&&r.createElement(et,{message:w}),!w&&l&&r.createElement("p",{className:Et},l),p,C&&I&&r.createElement(Tn,{src:I,mode:"modal",title:`Crop — ${Un(I)}`,onClose:()=>B(!1),onSave:O}))},Rm={"1:1":1,"3:4":3/4,"4:3":4/3},Bt=48,Hn=(e,t)=>{const n=e.split(".").pop()??"",a=e.replace(/\.[^/.]+$/,""),o=`_${t.replace(":","x")}`;return`${a}${o}.${n}`},Kn={nw:"nwse-resize",n:"ns-resize",ne:"nesw-resize",e:"ew-resize",se:"nwse-resize",s:"ns-resize",sw:"nesw-resize",w:"ew-resize"},_m=()=>{const[e,t]=r.useState(()=>document.documentElement.classList.contains("dark"));return r.useEffect(()=>{const n=new MutationObserver(()=>t(document.documentElement.classList.contains("dark")));return n.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()},[]),e},no=r.forwardRef(({img:e,title:t,scales:n},a)=>{const o=n??Rm,s=Me("crop"),l=r.useRef(null),i=r.useRef(null),c=()=>{const P=Object.keys(e.variants??{}).filter($=>$ in o);return P.length?P:Object.keys(o)},d=_m(),[u,m]=r.useState(c),[f,g]=r.useState(()=>c()[0]??Object.keys(o)[0]),[y,p]=r.useState(e.fileName),[h,b]=r.useState(e.variants??{}),[k,w]=r.useState(null),[S,I]=r.useState(!1),[A,x]=r.useState(!1),v=r.useRef(h),R=r.useRef(k),M=r.useRef(f),D=r.useRef(u),C=r.useRef(y);r.useEffect(()=>{v.current=h},[h]),r.useEffect(()=>{R.current=k},[k]),r.useEffect(()=>{M.current=f},[f]),r.useEffect(()=>{D.current=u},[u]),r.useEffect(()=>{C.current=y},[y]),r.useEffect(()=>{b(P=>{const $={};for(const[T,L]of Object.entries(P))$[T]={...L,fileName:Hn(y,T)};return $})},[y]);const B=r.useRef(null),E=r.useRef(null);r.useEffect(()=>{const P=T=>{const L=B.current,U=E.current;if(!L&&!U)return;const de=M.current,Z=R.current,q=v.current[de];if(!Z||!q)return;const se=o[de]??1;if(L){const re=Math.max(0,Math.min(T.clientX-L.offsetX,Z.width-q.width)),ye=Math.max(0,Math.min(T.clientY-L.offsetY,Z.height-q.height));b(he=>({...he,[de]:{...he[de],left:re,top:ye}}))}if(U){const{handle:re,sx:ye,sy:he,sl:fe,st:_e,sw:ue,sh:ke}=U,J=T.clientX-ye,ee=T.clientY-he;let te=fe,K=_e,Y=ue,X=ke;if(re==="n"||re==="s"){const le=re==="n"?-ee:ee;X=Math.max(Bt,ke+le),Y=X*se,re==="n"&&(K=_e+ke-X),te=fe+(ue-Y)/2}else if(re==="e"||re==="w"){const le=re==="w"?-J:J;Y=Math.max(Bt,ue+le),X=Y/se,re==="w"&&(te=fe+ue-Y),K=_e+(ke-X)/2}else{const le=re.includes("e")?J:-J,Se=re.includes("s")?ee:-ee,ge=Math.abs(le)>Math.abs(Se)?le:Se;Y=Math.max(Bt,ue+ge),X=Y/se,re.includes("n")&&(K=_e+ke-X),re.includes("w")&&(te=fe+ue-Y)}te=Math.max(0,te),K=Math.max(0,K);const Q=Z.width-te,ne=Z.height-K;if(Y>Q||X>ne){const le=Math.min(Q/Y,ne/X);Y*=le,X*=le}Y<Bt&&(Y=Bt,X=Y/se),X<Bt&&(X=Bt,Y=X*se),b(le=>({...le,[de]:{...le[de],left:te,top:K,width:Y,height:X}}))}},$=()=>{B.current=null,E.current=null,x(!1)};return window.addEventListener("mousemove",P),window.addEventListener("mouseup",$),()=>{window.removeEventListener("mousemove",P),window.removeEventListener("mouseup",$)}},[]),r.useLayoutEffect(()=>{if(!S)return;const P=i.current;if(!P)return;const{width:$,height:T}=P.getBoundingClientRect();if(!(!$||!T)&&(w(L=>L&&L.width===$&&L.height===T?L:{width:$,height:T}),!v.current[f])){const L=o[f]??1,U=Math.min($*.78,T*L*.78),de=U/L;b(Z=>({...Z,[f]:{fileName:Hn(C.current,f),type:e.type,scale:f,left:($-U)/2,top:(T-de)/2,width:U,height:de,base64:""}}))}},[f,S]),r.useImperativeHandle(a,()=>({handleSave:()=>{const P=l.current,$=P==null?void 0:P.getContext("2d"),T=i.current;if(!P||!$||!T)return{fileName:C.current,variants:{}};const L=R.current,U={};for(const de of D.current){const Z=v.current[de];if(!Z||!L)continue;const q=T.naturalWidth/L.width,se=T.naturalHeight/L.height,{top:re,left:ye,width:he,height:fe}=Z;P.width=Math.round(he*q),P.height=Math.round(fe*se),$.clearRect(0,0,P.width,P.height),$.drawImage(T,ye*q,re*se,he*q,fe*se,0,0,P.width,P.height),U[de]={...Z,base64:P.toDataURL(Z.type)}}return{fileName:C.current,variants:U}}}));const _=P=>{u.includes(P)||m($=>[...$,P]),g(P)},F=(P,$)=>{$.stopPropagation();const T=u.filter(L=>L!==P);if(m(T),P===f){const L=T.filter(U=>U in o);g(L[0]??Object.keys(o).find(U=>U!==P)??Object.keys(o)[0])}},O=P=>{P.preventDefault(),P.stopPropagation();const $=v.current[f];$&&(B.current={offsetX:P.clientX-$.left,offsetY:P.clientY-$.top},x(!0))},V=(P,$)=>{P.preventDefault(),P.stopPropagation();const T=v.current[f];T&&(E.current={handle:$,sx:P.clientX,sy:P.clientY,sl:T.left,st:T.top,sw:T.width,sh:T.height},x(!0))},j=u.includes(f),z=h[f];return r.createElement("div",{className:["flex gap-4 h-full min-h-0",t?"flex-col":""].join(" ")},t&&r.createElement("h3",{className:"text-base font-semibold shrink-0"},t),r.createElement("div",{className:"flex gap-4 flex-1 min-h-0"},r.createElement("div",{className:"flex-1 min-w-0 min-h-0 flex items-center justify-center rounded-xl overflow-hidden",style:{cursor:A?"grabbing":void 0,...d?{backgroundColor:"#1a1a1a",backgroundImage:"linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)"}:{backgroundColor:"#f0f0f0",backgroundImage:"linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)"},backgroundSize:"20px 20px",backgroundPosition:"0 0,0 10px,10px -10px,-10px 0"}},j?r.createElement("div",{className:"relative select-none",style:{display:"inline-block",lineHeight:0}},r.createElement("img",{src:Zt(e),alt:"Crop target",ref:i,style:{maxHeight:"calc(100dvh - 200px)",maxWidth:"100%",display:"block"},draggable:!1,onLoad:()=>I(!0)}),z&&k&&r.createElement($m,{crop:z,onMoveStart:O,onResizeStart:V})):r.createElement("div",{className:"flex flex-col items-center gap-3 text-zinc-500 select-none"},r.createElement("svg",{className:"w-10 h-10 opacity-30",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M4 8V6a2 2 0 012-2h2M4 16v2a2 2 0 002 2h2M16 4h2a2 2 0 012 2v2M16 20h2a2 2 0 002-2v-2M9 12l2 2 4-4"})),r.createElement("p",{className:"text-sm"},s.enableCrop.split("{scale}")[0],r.createElement("strong",{className:"text-zinc-300"},f),s.enableCrop.split("{scale}")[1]))),r.createElement("div",{className:"w-52 shrink-0 flex flex-col gap-4 min-h-0"},r.createElement("div",null,r.createElement(pi,{value:y,onChange:p,label:s.fileName})),r.createElement("div",{className:"flex-1 min-h-0 flex flex-col gap-2 overflow-y-auto"},r.createElement("p",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide shrink-0"},s.variants),Object.keys(o).map(P=>r.createElement(Om,{key:P,scale:P,ratio:o[P],img:e,crop:h[P],bounds:k,enabled:u.includes(P),active:P===f,onClick:()=>_(P),onRemove:$=>F(P,$)}))),j&&z&&r.createElement("div",{className:"shrink-0 pt-3 border-t border-border"},r.createElement("p",{className:"text-xs font-medium text-muted-foreground mb-1"},s.outputFile),r.createElement("p",{className:"text-xs text-foreground/70 truncate tabular-nums",title:z.fileName},z.fileName??Hn(y,f))))),r.createElement("canvas",{ref:l,className:"hidden"}))});no.displayName="CropImage";const Gn=120,qo=88,Fm=e=>{let t=qo*e,n=qo;return t>Gn&&(t=Gn,n=Gn/e),{w:Math.round(t),h:Math.round(n)}},Om=({scale:e,ratio:t,img:n,crop:a,bounds:o,enabled:s,active:l,onClick:i,onRemove:c})=>{const d=Me("crop"),{w:u,h:m}=Fm(t),f=(()=>{if(!a||!o||!a.width)return{background:"hsl(var(--muted))"};const g=u/a.width;return{backgroundImage:`url(${Zt(n)})`,backgroundSize:`${Math.round(o.width*g)}px ${Math.round(o.height*g)}px`,backgroundPosition:`-${Math.round(a.left*g)}px -${Math.round(a.top*g)}px`,backgroundRepeat:"no-repeat"}})();return r.createElement("button",{type:"button",onClick:i,className:["relative group flex flex-col rounded-lg border-2 transition-all overflow-hidden w-full text-left",l?"border-primary bg-primary/5 shadow-sm":s?"border-border hover:border-primary/40 bg-card":"border-dashed border-muted-foreground/25 bg-transparent hover:border-muted-foreground/50"].join(" ")},r.createElement("div",{className:"flex items-center justify-center py-3 px-3 bg-muted/20"},s&&a&&o?r.createElement("div",{className:"rounded shadow-sm overflow-hidden shrink-0",style:{width:u,height:m,...f}}):r.createElement("div",{className:"rounded border border-dashed border-muted-foreground/30 flex items-center justify-center shrink-0",style:{width:u,height:m}},r.createElement("svg",{className:"w-5 h-5 text-muted-foreground/40",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M12 4v16m8-8H4"})))),r.createElement("div",{className:"flex items-center justify-between px-2.5 py-1.5 border-t border-border/60"},r.createElement("span",{className:["text-xs font-semibold tabular-nums",l?"text-primary":"text-foreground"].join(" ")},e),l&&s&&r.createElement("span",{className:"text-xs text-primary/60 font-normal"},d.active),s&&r.createElement("span",{role:"button",tabIndex:-1,onClick:c,title:Ve(d.removeVariant,{scale:e}),className:"ml-auto w-5 h-5 flex items-center justify-center rounded-full text-muted-foreground hover:bg-destructive/10 hover:text-destructive transition-colors text-base leading-none"},"×")))},$m=({crop:e,onMoveStart:t,onResizeStart:n})=>{const{top:a,left:o,width:s,height:l}=e;return r.createElement("div",{className:"absolute inset-0 pointer-events-none"},r.createElement("div",{className:"absolute",style:{top:0,left:0,right:0,height:a,background:"rgba(0,0,0,0.55)"}}),r.createElement("div",{className:"absolute",style:{top:a+l,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.55)"}}),r.createElement("div",{className:"absolute",style:{top:a,left:0,width:o,height:l,background:"rgba(0,0,0,0.55)"}}),r.createElement("div",{className:"absolute",style:{top:a,left:o+s,right:0,height:l,background:"rgba(0,0,0,0.55)"}}),r.createElement("div",{onMouseDown:t,className:"absolute pointer-events-auto cursor-grab active:cursor-grabbing",style:{top:a,left:o,width:s,height:l,border:"1.5px solid rgba(255,255,255,0.92)",boxSizing:"border-box"}},r.createElement("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundImage:"linear-gradient(to right, rgba(255,255,255,0.18) 1px, transparent 1px),linear-gradient(to bottom, rgba(255,255,255,0.18) 1px, transparent 1px)",backgroundSize:"33.33% 33.33%"}}),["nw","ne","sw","se"].map(i=>r.createElement("div",{key:i,onMouseDown:c=>{c.stopPropagation(),n(c,i)},className:"absolute pointer-events-auto",style:{cursor:Kn[i],width:22,height:22,display:"flex",alignItems:i.includes("n")?"flex-start":"flex-end",justifyContent:i.includes("w")?"flex-start":"flex-end",...i.includes("n")?{top:-2}:{bottom:-2},...i.includes("w")?{left:-2}:{right:-2}}},r.createElement("span",{style:{display:"block",width:10,height:10,background:"#fff",borderRadius:2,boxShadow:"0 1px 3px rgba(0,0,0,0.5)"}}))),["n","s"].map(i=>r.createElement("div",{key:i,onMouseDown:c=>{c.stopPropagation(),n(c,i)},className:"absolute pointer-events-auto",style:{cursor:Kn[i],...i==="n"?{top:-4}:{bottom:-4},left:"50%",transform:"translateX(-50%)",width:24,height:12,display:"flex",alignItems:"center",justifyContent:"center"}},r.createElement("span",{style:{display:"block",width:20,height:4,background:"#fff",borderRadius:2,boxShadow:"0 1px 3px rgba(0,0,0,0.5)"}}))),["e","w"].map(i=>r.createElement("div",{key:i,onMouseDown:c=>{c.stopPropagation(),n(c,i)},className:"absolute pointer-events-auto",style:{cursor:Kn[i],...i==="w"?{left:-4}:{right:-4},top:"50%",transform:"translateY(-50%)",width:12,height:24,display:"flex",alignItems:"center",justifyContent:"center"}},r.createElement("span",{style:{display:"block",width:4,height:20,background:"#fff",borderRadius:2,boxShadow:"0 1px 3px rgba(0,0,0,0.5)"}})))))},pi=({value:e,onChange:t,label:n,scale:a})=>{const o=(e==null?void 0:e.split(".").pop())??"",s=a?`_${a.replace(":","x")}`:void 0,l=i=>{const c=i.replace(/\.[^/.]+$/,"");return s&&c.endsWith(s)?c.slice(0,-s.length):c};return r.createElement("div",{className:"flex flex-col gap-1"},n&&r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},n),r.createElement("div",{className:"flex items-center gap-1.5"},r.createElement("input",{type:"text",defaultValue:l(e||""),onBlur:i=>t(`${i.target.value.trim()}${s??""}.${o}`),className:"flex-1 h-8 min-w-0 rounded-md border border-input bg-background px-2.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring"}),s&&r.createElement("span",{className:"text-xs text-muted-foreground shrink-0 tabular-nums"},s,".",o)))},gi=pi,ao=({onFilesChange:e,onFileReady:t,uploadPath:n,srcsetWidths:a,initialFiles:o})=>{const[s,l]=r.useState(o??[]),i=Pn(),c=r.useRef(null),d=r.useRef(e);d.current=e;const u=r.useRef(t);u.current=t;const m=r.useRef(new Set);r.useEffect(()=>{var h,b;(h=d.current)==null||h.call(d,s);for(const k of s)k.progress===100&&!m.current.has(k.key)&&(m.current.add(k.key),(b=u.current)==null||b.call(u,k))},[s]);const f=r.useCallback((h,b)=>{l(k=>k.map(w=>w.key===h?{...w,...b}:w))},[]),g=r.useCallback(h=>{l(b=>b.filter(k=>k.key!==h)),m.current.delete(h)},[]),y=r.useCallback(h=>{l(b=>{const k=[...b];return h.forEach(w=>{const S={key:w.name,fileName:w.name,size:w.size,type:w.type,progress:0,url:"",base64:"",variants:{}},I=k.findIndex(A=>A.key===w.name);I!==-1?k[I]=S:k.push(S)}),k}),h.forEach(b=>{const k=new FileReader;k.onprogress=w=>{w.lengthComputable&&f(b.name,{progress:Math.round(w.loaded/w.total*75)})},k.onloadend=async()=>{const w=Rs(k.result),S=`data:${b.type};base64,${w}`;if(f(b.name,{base64:w,progress:80}),a!=null&&a.length)try{const{variants:I,naturalWidth:A}=await eo(S,a),x=i&&n?await to(I,i,n,b.name):I.map(C=>({url:C.localUrl,width:C.width})),v=b.name.split(".").pop()??"jpg",R=b.name.replace(/\.[^/.]+$/,""),M=i&&n?await i.upload(S,`${n}/${R}_${A}w.${v}`)??S:URL.createObjectURL(await fetch(S).then(C=>C.blob())),D=[...x,{url:M,width:A}];if(D.length>0){f(b.name,{url:M,srcset:ro(D),sizes:"(max-width: 640px) 100vw, 800px",progress:100});return}}catch{}else if(i&&n)try{const I=await i.upload(S,`${n}/${b.name}`);if(I){f(b.name,{url:I,progress:100});return}}catch{}f(b.name,{progress:100})},k.readAsArrayBuffer(b)}),c.current&&(c.current.value="")},[i,n,a,f]),p=r.useCallback(h=>{y(Array.from(h.target.files??[]))},[y]);return{files:s,setFiles:l,fileInputRef:c,updateFile:f,handleFiles:y,handleUpload:()=>{var h;return(h=c.current)==null?void 0:h.click()},handleUploadChange:p,handleRemove:g}},hi=(e,t,n,a,o)=>{const{value:s,handleChange:l,formWrapClass:i}=Ye({name:e,onChange:t,wrapperClassName:n}),[c,d]=r.useState(null),u=ao({initialFiles:Array.isArray(s)?s:[],onFilesChange:f=>l({target:{name:e,value:f}}),uploadPath:a,srcsetWidths:o});return{...u,formWrapClass:i,currentFile:c,handleSave:f=>{c&&(u.updateFile(c.key,f),d(null))},handleEdit:f=>d(f),handleClose:()=>d(null)}},Lm=({name:e,fileInputRef:t,accept:n,onUpload:a,onChange:o,required:s=!1,multiple:l=!1,height:i,width:c,feedback:d})=>r.createElement(r.Fragment,null,r.createElement("button",{type:"button",onClick:a,className:"flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 bg-muted/30 text-muted-foreground/50 transition-all hover:border-primary/40 hover:bg-primary/5 hover:text-primary/60 cursor-pointer",style:{width:c,height:i}},r.createElement(W,{name:"upload",className:"w-8 h-8"}),d&&r.createElement("span",{className:"mt-1.5 max-w-full px-1.5 text-center text-[10px] font-medium leading-tight whitespace-pre-wrap"},d)),r.createElement("input",{name:e,type:"file",accept:n,ref:t,multiple:l,required:s,className:"hidden",onChange:o})),bi=({title:e,file:t,type:n,onSave:a,onClose:o})=>{const[s,l]=r.useState(t.fileName),i=r.useRef(null),c=async()=>(a==null||a(i.current?i.current.handleSave():{fileName:s,variants:{}}),!0);return r.createElement(or,{title:e,onSave:c,onClose:o,size:n==="img"?"fullscreen":void 0},n==="document"&&r.createElement(gi,{value:s,onChange:l,label:"File name"}),n==="img"&&r.createElement(no,{ref:i,img:t}))},vi=(e,t,n)=>e.length<t&&(n||e.length===0),Yn=new Map,Zt=(e,t="origin")=>{if(e.url)return e.url;if(e.base64){const n=`${e.fileName} ${t}`;return Yn.has(n)||Yn.set(n,Fs(e.base64,e.type)??aa),Yn.get(n)??aa}return""},yi=({name:e,onChange:t=void 0,label:n=void 0,required:a=!1,editable:o=!1,multiple:s=!1,max:l=100,accept:i=".pdf,.doc,.docx,.txt,.iso",uploadPath:c=void 0,before:d=void 0,after:u=void 0,wrapperClassName:m=void 0,className:f=void 0})=>{const{files:g,currentFile:y,fileInputRef:p,formWrapClass:h,handleFiles:b,handleUploadChange:k,handleUpload:w,handleRemove:S,handleSave:I,handleEdit:A,handleClose:x}=hi(e,t,m,c),v=ut(e,{required:a,label:n}),R=Me("upload"),[M,D]=r.useState(!1),C=vi(g,l,s),B=F=>{F.preventDefault(),C&&D(!0)},E=()=>D(!1),_=F=>{F.preventDefault(),D(!1),C&&b(s?Array.from(F.dataTransfer.files):[F.dataTransfer.files[0]])};return r.createElement(pe,{className:h},d,r.createElement("div",{className:f},n&&r.createElement(tt,{label:n,required:a}),C&&g.length===0&&r.createElement("button",{type:"button",onClick:w,onDragOver:B,onDragLeave:E,onDrop:_,className:["w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer",M?"border-primary/60 bg-primary/8 text-primary":"border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70"].join(" ")},r.createElement(W,{name:"upload",className:"w-8 h-8"}),r.createElement("span",{className:"text-sm font-medium"},M?R.dropToUpload:R.clickOrDrag),r.createElement("span",{className:"text-xs opacity-60"},i)),g.length>0&&r.createElement("div",{className:"rounded-lg border border-border overflow-hidden"},r.createElement("table",{className:"w-full text-sm"},r.createElement("tbody",null,g.map(F=>r.createElement("tr",{key:F.key,className:`border-b border-border last:border-0 ${o?"cursor-pointer hover:bg-muted/40":""}`,onClick:()=>o&&A(F)},r.createElement("td",{className:"px-3 py-2.5"},r.createElement("div",{className:"flex items-center gap-2"},r.createElement(W,{name:"file",className:"w-4 h-4 shrink-0 text-muted-foreground"}),F.progress===100?r.createElement("a",{href:Zt(F),target:"_blank",rel:"noopener noreferrer",className:"hover:underline truncate max-w-xs",onClick:O=>O.stopPropagation()},F.fileName):r.createElement("span",{className:"truncate max-w-xs text-muted-foreground"},F.fileName))),r.createElement("td",{className:"px-3 py-2.5 text-muted-foreground text-right whitespace-nowrap w-24"},F.progress===100?(F.size/1024).toFixed(2)+" KB":r.createElement(Ya,{max:100,min:0,value:F.progress,appearance:"bar"})),r.createElement("td",{className:"px-3 py-2.5 w-10 text-right"},r.createElement("button",{type:"button",onClick:O=>{O.stopPropagation(),S(F.key)},className:"flex items-center justify-center w-6 h-6 rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors ml-auto"},r.createElement(W,{name:"x",className:"w-3.5 h-3.5"}))))))),C&&r.createElement("div",{className:`px-3 py-2 border-t border-border bg-muted/20 ${M?"bg-primary/5":""}`,onDragOver:B,onDragLeave:E,onDrop:_},r.createElement("button",{type:"button",onClick:w,className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors"},r.createElement(W,{name:"upload",className:"w-3.5 h-3.5"}),R.uploadMore))),r.createElement("input",{name:e,type:"file",accept:i,ref:p,multiple:s,required:a,className:"hidden",onChange:k}),v&&r.createElement(et,{message:v})),o&&y&&r.createElement(bi,{title:R.editFileName,file:y,type:"document",onSave:I,onClose:x}),u)},xi=({name:e,onChange:t=void 0,label:n=void 0,feedback:a=void 0,editable:o=!1,multiple:s=!1,accept:l="image/*",required:i=!1,max:c=100,previewHeight:d=100,previewWidth:u=100,uploadPath:m=void 0,srcsetWidths:f=void 0,before:g=void 0,after:y=void 0,wrapperClassName:p=void 0,className:h=void 0})=>{const{files:b,currentFile:k,fileInputRef:w,formWrapClass:S,handleUploadChange:I,handleUpload:A,handleRemove:x,handleSave:v,handleEdit:R,handleClose:M}=hi(e,t,p,m,f),D=ut(e,{required:i,label:n}),C=Me("upload"),[B,E]=r.useState(null),[_,F]=r.useState(new Set),O=(j,z)=>{const P=j.currentTarget,$=P.naturalWidth>0&&P.naturalHeight>0&&(P.naturalWidth<u||P.naturalHeight<d);F(T=>{const L=new Set(T);return $?L.add(z):L.delete(z),L})},V=({scales:j})=>{if(!j)return;const z=Object.keys(j);return z.length===0?null:z.map(P=>r.createElement(Vr,{key:P},r.createElement("a",{href:Zt(j[P],P),className:"text-white",target:"_blank",rel:"noopener noreferrer"},P)))};return r.createElement(pe,{className:S},g,r.createElement(pe,{className:h},n&&r.createElement(tt,{label:n,required:i}),r.createElement("div",{className:"flex gap-2 flex-wrap"},b.map((j,z)=>r.createElement("div",{key:z,className:"relative overflow-hidden rounded-lg border border-border",style:{width:u,height:d},onMouseEnter:()=>E(z),onMouseLeave:()=>E(null)},j.progress===100?r.createElement(r.Fragment,null,_.has(j.key)&&r.createElement(r.Fragment,null,r.createElement("div",{className:"absolute inset-0 dark:hidden",style:{backgroundColor:"#f0f0f0",backgroundImage:"linear-gradient(45deg,#dcdcdc 25%,transparent 25%),linear-gradient(-45deg,#dcdcdc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dcdcdc 75%),linear-gradient(-45deg,transparent 75%,#dcdcdc 75%)",backgroundSize:"10px 10px",backgroundPosition:"0 0,0 5px,5px -5px,-5px 0"}}),r.createElement("div",{className:"absolute inset-0 hidden dark:block",style:{backgroundColor:"#1a1a1a",backgroundImage:"linear-gradient(45deg,#272727 25%,transparent 25%),linear-gradient(-45deg,#272727 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#272727 75%),linear-gradient(-45deg,transparent 75%,#272727 75%)",backgroundSize:"10px 10px",backgroundPosition:"0 0,0 5px,5px -5px,-5px 0"}})),r.createElement("img",{src:Zt(j),alt:`preview-${z}`,className:`absolute inset-0 w-full h-full ${_.has(j.key)?"object-contain p-1":"object-cover"}`,onLoad:P=>O(P,j.key)}),r.createElement("div",{className:"absolute inset-0 bg-black/55 backdrop-blur-[1px] flex flex-col items-center justify-end pb-2 gap-1 transition-opacity",style:{display:B===z?"flex":"none"}},r.createElement("div",{className:"flex items-center gap-1.5"},r.createElement("a",{href:Zt(j),target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors"},r.createElement(W,{name:"eye",className:"w-4 h-4"})),o&&r.createElement("button",{type:"button",onClick:()=>R(j),className:"flex items-center justify-center w-7 h-7 rounded-full bg-white/20 hover:bg-white/35 text-white transition-colors"},r.createElement(W,{name:"pencil",className:"w-4 h-4"})),r.createElement("button",{type:"button",onClick:P=>{P.preventDefault(),P.stopPropagation(),x(j.key)},className:"flex items-center justify-center w-7 h-7 rounded-full bg-red-500/70 hover:bg-red-500/90 text-white transition-colors"},r.createElement(W,{name:"x",className:"w-4 h-4"}))),o&&j.variants&&Object.keys(j.variants).length>0&&r.createElement("div",{className:"flex flex-wrap gap-1 px-1"},r.createElement(V,{scales:j.variants})))):r.createElement(Ya,{max:100,min:0,value:j.progress,appearance:"circle"}))),vi(b,c,s)&&r.createElement(Lm,{name:e,fileInputRef:w,accept:l,onUpload:A,onChange:I,required:i,multiple:s,height:d,width:u,feedback:a})),D&&r.createElement(et,{message:D})),o&&k&&r.createElement(bi,{title:C.editorImage,file:k,type:"img",onSave:v,onClose:M}),y)},wi={US:"United States",CN:"中国",IT:"Italia",FR:"France",DE:"Deutschland",ES:"España",PT:"Portugal",RU:"Россия",JP:"日本"},Ei={it:"Italiano",en:"English",fr:"Français",de:"Deutsch",es:"Español",pt:"Português",ru:"Русский",ja:"日本語",ko:"한국어"},sa=(e=!1)=>{const t=typeof localStorage<"u"?localStorage.getItem("user.country"):null,n=typeof navigator<"u"?navigator.language.split("-")[1]:null,a=t||n||"US";return e?a:wi[a]},Ni=(e=!1)=>{const t=typeof localStorage<"u"?localStorage.getItem("user.lang"):null,n=typeof navigator<"u"?navigator.language.split("-")[0]:null,a=t||n||"en";return e?a:Ei[a]},jm="Please ignore all previous instructions.",Bm="Do not repeat yourself. Do not self reference. Do not explain what you are doing.",zm="default",Vm="Informative",Um="Argumentative",Hm=["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"],Km=["Academic","Analytical","Argumentative","Conversational","Creative","Critical","Descriptive","Epigrammatic","Epistolary","Expository","Informative","Instructive","Journalistic","Metaphorical","Narrative","Persuasive","Poetic","Satirical","Technical"],Jo={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 after 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 after 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 ct=class{static getRoles(){return Object.keys(Jo)}static getLangs(){return Object.values(Ei)}static getCountries(){return Object.values(wi)}static getVoices(){return Hm}static getStyles(){return Km}static defaults(){return{role:zm,language:Ni(),country:sa(),voice:localStorage.getItem("prompt.voice")||Vm,style:localStorage.getItem("prompt.style")||Um}}static parseRole(t,n={}){return Ue.parse({...this.defaults(),...n},Jo[t??this.defaults().role])}static parsePrompt(t,n={}){return Ue.parse({...this.defaults(),...n},t)}};const oo=(e,t)=>`${e}/${t}`,Mt=e=>{if(!e)return null;const t=e.indexOf("/");return t<=0||t===e.length-1?null:{provider:e.slice(0,t),model:e.slice(t+1)}},so=r.createContext(null),Ci=({registry:e,defaultKey:t,children:n})=>{const a=r.useMemo(()=>({registry:e,defaultKey:t}),[e,t]);return r.createElement(so.Provider,{value:a},n)},lo=e=>{const t=r.useContext(so);if(!t)return null;const n=e??t.defaultKey;return t.registry[n]??null},Dn=()=>r.useContext(so),Gm="x-llmnative-proxy",Ym="/api/proxy",Wm=e=>{if(!e||e.startsWith("/"))return!1;try{const t=new URL(e);if(typeof window<"u"){const n=new URL(window.location.href);if(t.origin===n.origin||["localhost","127.0.0.1"].includes(t.hostname)&&["localhost","127.0.0.1"].includes(n.hostname))return!1}return!0}catch{return!1}};let It=null;const ki=e=>{It=e??null};Je(e=>{ki(e.proxy)});const Qe=(e,t)=>{var m;if(!(It!=null&&It.enabled))return globalThis.fetch(e,t);const n=typeof e=="string"?e:e instanceof URL?e.toString():e.url;if(!Wm(n))return globalThis.fetch(e,t);const a=((m=It.route)==null?void 0:m.trim())||Ym,o=a.includes("?")?"&":"?",s=`${a}${o}url=${encodeURIComponent(n)}`,l=e instanceof Request?e.headers:t==null?void 0:t.headers,i=new Headers(l);i.set(Gm,"1");const c=(e instanceof Request?e.method:(t==null?void 0:t.method)??"GET").toUpperCase(),u=!["GET","HEAD"].includes(c)?(t==null?void 0:t.body)??(e instanceof Request?e.body:void 0):void 0;return globalThis.fetch(s,{method:c,headers:i,body:u,...u instanceof ReadableStream?{duplex:"half"}:{},signal:(t==null?void 0:t.signal)??(e instanceof Request?e.signal:void 0)})},qm=()=>Qe,Si=()=>!!(It!=null&&It.enabled),Ai="ai.models.",Jm=1e3*60*60*24,gn=e=>{if(e instanceof Error)return e.message;if(e!==null&&typeof e=="object"){const t=e;if(t.error&&typeof t.error=="object"){const n=t.error;if(typeof n.message=="string")return n.message;if(typeof n.type=="string")return n.type}if(typeof t.error=="string")return t.error;if(typeof t.message=="string")return t.message;if(typeof t.detail=="string")return t.detail;if(typeof t.status=="number")return`HTTP ${t.status}`;try{return JSON.stringify(t)}catch{}}return String(e)},Mi=e=>{const t=Si()?"The proxy is enabled but the request still failed - check that the proxy route is reachable.":"No proxy is enabled. Cross-origin AI requests are blocked by CORS in the browser. Set VITE_PROXY_ENABLED=true and VITE_PROXY_PROVIDER=viteDevProxy to route requests server-side.";return new Error(`${e} request failed (CORS). ${t}`)},io=e=>typeof e=="string"?e:Array.isArray(e)&&e.map(n=>typeof n=="string"?n:n&&typeof n=="object"&&"text"in n&&typeof n.text=="string"?n.text:"").filter(Boolean).join(`
10
+ `)||null,Xm=e=>{if(typeof localStorage>"u")return null;try{const t=localStorage.getItem(`${Ai}${e}`);if(!t)return null;const n=JSON.parse(t);return!n.fetchedAt||!Array.isArray(n.items)||Date.now()-n.fetchedAt>Jm?null:n.items}catch{return null}},Zm=(e,t)=>{if(!(typeof localStorage>"u"))try{localStorage.setItem(`${Ai}${e}`,JSON.stringify({fetchedAt:Date.now(),items:t}))}catch{}},Xo=(e,t,n)=>n.map(a=>({id:oo(e,a),provider:e,model:a,label:`${t} / ${a}`})),Ii=async(e,t=!1)=>{const n=await Promise.all(Object.entries(e).map(async([i,c])=>[i,await c.getCapabilities(t)])),a=n.reduce((i,[c,d])=>(i[c]=d,i),{}),o=n.reduce((i,[c,d])=>(i[c]=d.models,i),{}),s=new Set;return{models:n.flatMap(([,i])=>i.models).filter(i=>s.has(i.id)?!1:(s.add(i.id),!0)),modelsByProvider:o,capabilitiesByProvider:a}};class Pi{constructor(t,n){this.definition=t,this.id=t.id,this.label=t.label,this.defaultModel=t.defaultModel,this.dashboardUrl=t.dashboardUrl,this.apiKey=n}isConfigured(){return!!this.apiKey}getConfigurationState(){const t=this.definition.requiredConfigKeys??(this.definition.configKey?[`ai.${this.definition.configKey}`]:[]);return Tt(`AIProvider:${this.id}`,this.isConfigured()?[]:t)}async getCapabilities(t=!1){const n=t?null:Xm(this.id);if(n)return{...this.definition.capabilities,models:n};let a=Xo(this.id,this.label,this.definition.fallbackModels);try{const o=await this.definition.discoverModels(this.apiKey);o.length>0&&(a=Xo(this.id,this.label,o))}catch(o){console.warn(`AIProvider:${this.id} model discovery failed`,o)}return Zm(this.id,a),{...this.definition.capabilities,models:a}}complete(t){return this.definition.complete(this.apiKey,{...t,model:t.model||this.defaultModel,prompt:ct.parsePrompt(t.prompt,{...t.data,...t})})}async validateApiKey(){const t=this.definition.dashboardUrl;if(this.definition.validateApiKey)return{...await this.definition.validateApiKey(this.apiKey),dashboardUrl:t};try{return await this.definition.discoverModels(this.apiKey),{valid:!0,dashboardUrl:t}}catch(n){return{valid:!1,error:gn(n),dashboardUrl:t}}}}const Qm={"gpt-4o":128e3,"gpt-4o-mini":128e3,"gpt-4-turbo":128e3,"gpt-4":8192,"gpt-3.5-turbo":16385,"claude-opus-4-8":2e5,"claude-sonnet-4-6":2e5,"claude-haiku-4-5":2e5,"claude-3-5-sonnet-20241022":2e5,"claude-3-5-haiku-20241022":2e5,"gemini-2.0-flash":1048576,"gemini-1.5-pro":2097152,"gemini-1.5-flash":1048576,"deepseek-chat":64e3,"deepseek-coder":128e3,"mistral-large-latest":131072,"mistral-medium":32768,"mistral-small-latest":131072,"open-mistral-nemo":128e3,"llama-3.1-70b-instruct":131072,"llama-3.1-8b-instruct":131072},ef={"gpt-4o":[2.5,10],"gpt-4o-mini":[.15,.6],"gpt-4-turbo":[10,30],"gpt-4":[30,60],"gpt-3.5-turbo":[.5,1.5],"claude-opus-4-8":[15,75],"claude-sonnet-4-6":[3,15],"claude-haiku-4-5":[.8,4],"claude-3-5-sonnet-20241022":[3,15],"claude-3-5-haiku-20241022":[.8,4],"gemini-2.0-flash":[.1,.4],"gemini-1.5-pro":[1.25,5],"gemini-1.5-flash":[.075,.3],"deepseek-chat":[.14,.28],"mistral-large-latest":[2,6],"mistral-medium":[2.7,8.1],"mistral-small-latest":[.1,.3]},Zo=e=>{const t=Mt(e);return(t==null?void 0:t.model)??e},tf=e=>new Promise((t,n)=>{if(typeof FileReader>"u"){n(new Error("FileReader is not available in this environment."));return}const a=new FileReader;a.onload=()=>t(String(a.result??"")),a.onerror=()=>n(a.error??new Error(`Failed to read file "${e.name}".`)),a.readAsDataURL(e)}),Wt={countTokens(e){return Math.ceil(e.length/4)},modelContextWindow(e){const t=Zo(e);return Qm[t]??null},contextPercent(e,t){const n=Wt.modelContextWindow(t);return!n||n<=0?0:Math.min(100,e/n*100)},estimateCost(e,t,n){const a=Zo(n),o=ef[a];return o?(e*o[0]+t*o[1])/1e6:NaN},async fileToAttachment(e){const t=await tf(e),n=t.includes(",")?t.split(",")[1]:"";return{mimeType:e.type||"application/octet-stream",base64:n,name:e.name}}};var Ti=(e=>(e.EDIT="edit",e.RUN="run",e))(Ti||{});const co="space-y-2",rf="flex items-center justify-between gap-3",nf="mb-0 min-w-0 text-sm font-medium leading-5 text-foreground",af="ml-auto shrink-0",Wn=()=>[],of=(e,t="Prompt execution failed.")=>{if(e instanceof Error&&e.message)return e.message;if(typeof e=="string")return e;if(e&&typeof e=="object"){if("reason"in e&&typeof e.reason=="string")return e.reason;if("error"in e&&typeof e.error=="string")return e.error;if("message"in e&&typeof e.message=="string")return e.message}return t},uo=({htmlFor:e,label:t,required:n=!1,action:a})=>r.createElement("div",{className:rf},r.createElement(tt,{htmlFor:e,label:t,required:n,className:nf}),a?r.createElement("div",{className:af},a):null);function sf(){const e=Dn(),[t,n]=r.useState({modelOptions:Wn(),capabilitiesByProvider:{}});return r.useEffect(()=>{let a=!1;return(async()=>{if(!e||Object.keys(e.registry).length===0){a||n({modelOptions:Wn(),capabilitiesByProvider:{}});return}const s=await Ii(e.registry);if(a)return;const l=s.models.map(i=>({label:i.label,value:i.id}));n({modelOptions:l.length>0?l:Wn(),capabilitiesByProvider:s.capabilitiesByProvider})})(),()=>{a=!0}},[e]),t}function Di(e,t=!1){const n=lo(),a=Dn(),o=Mt(e),s=Object.keys((a==null?void 0:a.registry)??{}),l=(o==null?void 0:o.provider)??(n==null?void 0:n.id)??(a!=null&&a.defaultKey&&s.includes(a.defaultKey)?a.defaultKey:null),i=l?(a==null?void 0:a.registry[l])??((n==null?void 0:n.id)===l?n:null):n??null;if(t)return{provider:i,providerId:l,configured:!0};if(s.length===0&&!i)return{provider:null,providerId:null,configured:!1,reason:void 0};const c=Fa(i,l?`AI provider "${l}"`:"AI provider");return{provider:i,providerId:l,configured:c.configured,reason:c.reason}}const lf=({mode:e,availability:t,renderAIUnavailable:n})=>{const a=Me("prompt");if(t.configured)return null;const o=n==null?void 0:n({mode:e,providerId:t.providerId,reason:t.reason,configured:t.configured});return o!=null?r.createElement(r.Fragment,null,o):r.createElement(Gr,{variant:"warning",icon:"warning",className:"text-xs leading-5"},e==="edit"?t.reason||a.aiNotConfiguredEdit:t.reason||a.aiNotConfiguredRun)},Ri=({mode:e="edit",...t})=>{var s,l;const{value:n}=Ye({name:t.name}),a=n!=null&&typeof n=="object"&&!Array.isArray(n)?n:void 0,o=_i((s=a==null?void 0:a.prompt)==null?void 0:s.enabled,(l=t.defaultValue)==null?void 0:l.enabled,a==null?void 0:a.prompt);return e==="edit"?r.createElement(df,{...t,value:a}):o?r.createElement(mf,{...t,value:a}):r.createElement(ff,{...t})},_i=(e,t,n)=>typeof e=="string"?e==="on"||e==="true":typeof e=="boolean"?e:typeof e=="number"?e!==0:n&&typeof n=="object"?!1:!!t,cf=(e,t)=>e?t.toggleOnTitle:t.toggleOffTitle,df=({name:e,label:t=void 0,value:n=void 0,required:a=!1,onChange:o=void 0,defaultValue:s=void 0,minHeight:l=160,maxHeight:i=240,before:c=void 0,after:d=void 0,wrapperClassName:u=void 0,className:m=void 0,renderAIUnavailable:f=void 0})=>{var A,x,v;const{handleChange:g}=Ye({name:e}),y=me(),p=Me("prompt"),h=t||e,b=_i((A=n==null?void 0:n.prompt)==null?void 0:A.enabled,s==null?void 0:s.enabled,n==null?void 0:n.prompt),k=cf(b,p),w=r.useId(),S=((v=(x=n==null?void 0:n.prompt)==null?void 0:x.model)==null?void 0:v.toString())||(s==null?void 0:s.model),I=Di(S);return r.createElement(pe,{className:u||y.Prompt.wrapperClassName},r.createElement("div",{className:"flex items-center gap-2"},c&&r.createElement("div",{className:"shrink-0"},c),r.createElement("div",{className:`${co} min-w-0 flex-1`},r.createElement(uo,{htmlFor:w,label:b?p.promptLabel+h:h,required:a,action:r.createElement(Ja,{name:e+".prompt.enabled",ariaLabel:k,title:k,defaultValue:b?"on":"",inheritWrapperClassName:!1,onChange:({event:R})=>{g({target:{name:e+".prompt.value",value:R.target.value&&(s==null?void 0:s.value)}})}})}),r.createElement(yr,{id:w,className:m||y.Prompt.className,name:e+(b?".prompt.value":".value"),defaultValue:b?s==null?void 0:s.value:void 0,onChange:o,required:a,inheritWrapperClassName:!1,wrapperClassName:"",minHeight:l,maxHeight:i}),r.createElement(lf,{mode:"edit",availability:I,renderAIUnavailable:f})),d&&r.createElement("div",{className:"shrink-0"},d)))},Qo="border-0 shadow-none rounded-none focus-visible:ring-0 resize-none",pt="h-7 w-7 cursor-pointer rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",uf="h-7 max-w-[140px] rounded-md px-2 text-xs gap-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground truncate",mf=({name:e,label:t,value:n,required:a,onChange:o,defaultValue:s,minHeight:l=120,maxHeight:i=160,before:c,after:d,wrapperClassName:u,className:m,onRunPrompt:f,renderAIUnavailable:g,variables:y,commands:p,attachments:h,actions:b,statusItems:k})=>{var yt,_t,Ft,sr;const{handleChange:w,record:S}=Ye({name:e}),I=me(),A=Me("prompt"),x=t||e,[v,R]=r.useState(!1),[M,D]=r.useState((s==null?void 0:s.value)??""),[C,B]=r.useState(!1),[E,_]=r.useState([]),F=r.useRef(null),[O,V]=r.useState(null),[j,z]=r.useState(0),P=r.useCallback(H=>{_(ie=>(URL.revokeObjectURL(ie[H].objectUrl),ie.filter((Ie,Pe)=>Pe!==H)))},[]),[$,T]=r.useState(null),L=r.useRef(null),U=lo(),de=Dn(),Z=ct.defaults(),q=typeof localStorage<"u"&&localStorage.getItem("prompt.model")||(U?oo(U.id,U.defaultModel):""),{modelOptions:se,capabilitiesByProvider:re}=sf(),ye=((_t=(yt=n==null?void 0:n.prompt)==null?void 0:yt.model)==null?void 0:_t.toString())||(s==null?void 0:s.model)||q,he=(Ft=Mt(ye))==null?void 0:Ft.provider,fe=he?re[he]:void 0,_e=(fe==null?void 0:fe.supportsTemperature)??!0,ue=(fe==null?void 0:fe.supportsVision)??!!f,ke=(fe==null?void 0:fe.supportsDocuments)??!!f,J=r.useId(),ee=Di(ye,!!f),te=!ee.configured,K=te?ee.reason||A.aiNotConfiguredRun:void 0,[Y,X]=r.useState(null),Q=!Y&&!ee.configured?g==null?void 0:g({mode:"run",providerId:ee.providerId,reason:ee.reason,configured:ee.configured}):null,ne=r.useMemo(()=>{if(!M)return"";const H={...S,...y};return ct.parsePrompt(M,H)},[M,S,y]),le=ne!==M,Se=ye?(((sr=Mt(ye))==null?void 0:sr.model)||ye).split("/").pop()||ye:null,ge=!!fe||!!f,Ae=!!h&&!v&&(!ee.configured&&!f||ge&&!ue&&!ke),He=Ae?!ee.configured&&!f?ee.reason||A.aiNotConfiguredRun:A.attachmentsNotSupported:A.attachFiles,oe=r.useCallback((H,ie)=>{const Ie=H.slice(0,ie),Pe=Ie.match(/(?:^|\s)\/([^\s/]*)$/);if(!Pe)return null;const Re=Ie.lastIndexOf("/");return Re<0?null:{query:Pe[1]??"",start:Re,end:ie}},[]),Ce=()=>{const H=S==null?void 0:S[e];return H&&typeof H=="object"&&!Array.isArray(H)?String(H.value??""):""},xe=r.useCallback(()=>{if(v||!(p!=null&&p.length)||!F.current){V(null);return}const H=F.current,ie=H.selectionStart??H.value.length;V(oe(H.value,ie))},[p,v,oe]),we=r.useCallback(()=>{if(typeof requestAnimationFrame=="function"){requestAnimationFrame(()=>xe());return}setTimeout(()=>xe(),0)},[xe]),Ee=r.useCallback(H=>{if(!(p!=null&&p.length))return[];const ie=H==null?void 0:H.trim().toLowerCase();return ie?p.filter(Ie=>{var Pe;return Ie.name.toLowerCase().includes(ie)||((Pe=Ie.description)==null?void 0:Pe.toLowerCase().includes(ie))}):p},[p]),$e=r.useMemo(()=>Ee(O==null?void 0:O.query),[Ee,O]);r.useEffect(()=>{z(0)},[O==null?void 0:O.query]),r.useEffect(()=>()=>{E.forEach(({objectUrl:H})=>URL.revokeObjectURL(H))},[E]);const Le=r.useCallback(async(H,ie,Ie)=>{const Pe=ie??Ce(),Re=Ie??O,nt=Re?`${Pe.slice(0,Re.start)}/${H.name} ${Pe.slice(Re.end)}`:`${Pe}${Pe&&!/\s$/.test(Pe)?`
11
+ `:""}/${H.name} `,ae=H.handler?await H.handler(Pe):nt;w==null||w({target:{name:e+".value",value:ae}}),V(null)},[w,e,S,O]),De=r.useCallback(H=>{if(!(p!=null&&p.length)||v)return;const ie=H.currentTarget.value,Ie=H.currentTarget.selectionStart??ie.length,Pe=oe(ie,Ie),Re=O??Pe,nt=Ee(Re==null?void 0:Re.query);if(Re&&nt.length>0){if(H.key==="ArrowDown"){H.preventDefault(),z(ae=>(ae+1)%nt.length);return}if(H.key==="ArrowUp"){H.preventDefault(),z(ae=>(ae-1+nt.length)%nt.length);return}if(H.key==="Enter"||H.key==="Tab"){H.preventDefault(),Le(nt[j]??nt[0],ie,Re);return}if(H.key==="Escape"){H.preventDefault(),V(null);return}}(H.key==="/"||H.key==="Backspace"||H.key==="Delete")&&we()},[j,Le,p,v,Ee,oe,we,O]),rt=async()=>{var Re,nt,ae,be;const H=((nt=(Re=n==null?void 0:n.prompt)==null?void 0:Re.model)==null?void 0:nt.toString())||q,ie=Mt(H),Ie=ie?(de==null?void 0:de.registry[ie.provider])??U??void 0:U??void 0,Pe=Date.now();try{const Oe={...S,...y},ze=await Promise.all(E.map(({file:at})=>Wt.fileToAttachment(at))),lr=await Fi(n==null?void 0:n.prompt,Oe,f,Ie,ze.length>0?ze:void 0,{noProvider:A.noProvider,noResponse:A.noResponse}),Nr=Date.now()-Pe;if(X(null),w==null||w({target:{name:e+".value",value:lr}}),k&&k.length>0){const at=ct.parsePrompt(((be=(ae=n==null?void 0:n.prompt)==null?void 0:ae.value)==null?void 0:be.toString())??"",Oe),Xe=Wt.countTokens(at),Cr=Wt.countTokens(lr??""),Mo=Wt.contextPercent(Xe,H),Io=Wt.estimateCost(Xe,Cr,H);T({tokensIn:Xe,tokensOut:Cr,contextPercent:Mo>0?Mo:null,model:H,durationMs:Nr,estimatedCost:isFinite(Io)?Io:null})}}catch(Oe){X(of(Oe,A.runFailed))}},je=(H,ie)=>w==null?void 0:w({target:{name:H,value:ie}});return r.createElement(pe,{className:u||I.Prompt.wrapperClassName},r.createElement("div",{className:"flex items-center gap-2"},c&&r.createElement("div",{className:"shrink-0"},c),r.createElement("div",{className:`${co} min-w-0 flex-1`},x&&r.createElement(uo,{htmlFor:J,label:v?`${A.promptLabel}${x}`:x,required:a}),r.createElement("div",{className:`group relative rounded-xl border border-input shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-offset-0 ${v?"focus-within:ring-warning":"focus-within:ring-ring"}`},r.createElement("button",{type:"button",title:v?A.closeEditor:A.editSettings,className:`absolute right-2 top-2 z-10 flex h-6 w-6 items-center justify-center rounded-md transition-all ${v?"bg-warning/10 text-warning opacity-100":"bg-background/80 text-muted-foreground opacity-0 group-hover:opacity-100 hover:bg-muted hover:text-foreground"}`,onClick:()=>R(H=>!H)},r.createElement(W,{name:v?"x":"settings",size:13})),r.createElement("div",{className:"overflow-hidden rounded-t-xl"},r.createElement("div",{className:v?"":"hidden"},r.createElement(yr,{id:J,name:e+".prompt.value",defaultValue:s==null?void 0:s.value,onChange:H=>{D(String(H.event.target.value??"")),o==null||o(H)},required:!0,inheritWrapperClassName:!1,wrapperClassName:"",className:`${m||I.Prompt.className} ${Qo}`,minHeight:l,maxHeight:i}),v&&le&&C&&r.createElement("div",{className:"border-t border-input px-4 py-3 bg-muted/20"},r.createElement("p",{className:"whitespace-pre-wrap text-sm text-foreground/70"},ne))),r.createElement("div",{className:v?"hidden":""},E.length>0&&r.createElement("div",{className:"flex gap-2 overflow-x-auto border-b border-input px-3 py-2.5"},E.map(({file:H,objectUrl:ie},Ie)=>r.createElement("div",{key:ie,className:"relative shrink-0"},H.type.startsWith("image/")?r.createElement("div",{className:"h-16 w-16 overflow-hidden rounded-lg border border-input bg-muted/30"},r.createElement("img",{src:ie,alt:H.name,className:"h-full w-full object-cover"})):r.createElement("div",{className:"flex items-center gap-2 rounded-lg border border-input bg-muted/30 px-2.5 py-2 text-xs"},r.createElement(W,{name:"file-text",size:18,className:"shrink-0 text-muted-foreground"}),r.createElement("div",{className:"max-w-[100px]"},r.createElement("p",{className:"truncate font-medium text-foreground"},H.name),r.createElement("p",{className:"text-muted-foreground"},(H.size/1024).toFixed(0)," KB"))),r.createElement("button",{type:"button",className:"absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-foreground text-background shadow",onClick:()=>P(Ie)},r.createElement(W,{name:"x",size:9}))))),r.createElement(yr,{name:e+".value",onChange:H=>{o==null||o(H),we()},onKeyDown:De,onClick:we,textareaRef:F,required:a,inheritWrapperClassName:!1,wrapperClassName:"",className:`${m||I.Prompt.className} ${Qo}`,minHeight:l,maxHeight:i}))),h&&r.createElement("input",{ref:L,type:"file",multiple:!0,className:"hidden",onChange:H=>{if(H.target.files){const ie=Array.from(H.target.files).map(Ie=>({file:Ie,objectUrl:URL.createObjectURL(Ie)}));_(Ie=>[...Ie,...ie]),H.target.value=""}}}),r.createElement("div",{className:"relative flex items-center gap-1 border-t border-input px-2 py-1 rounded-b-xl"},!v&&(h||((p==null?void 0:p.length)??0)>0||((b==null?void 0:b.length)??0)>0)&&r.createElement(r.Fragment,null,h&&r.createElement("button",{type:"button",title:He,className:`${pt} flex items-center justify-center`,disabled:Ae,onClick:()=>{var H;return(H=L.current)==null?void 0:H.click()}},r.createElement(W,{name:"paperclip",size:13})),p&&p.length>0&&r.createElement(mt,{trigger:{icon:"slash",title:"Commands"},open:!!O,onOpenChange:H=>{var ie;if(H){const Ie=Ce(),Pe=((ie=F.current)==null?void 0:ie.selectionStart)??Ie.length;V(oe(Ie,Pe)??{query:"",start:Pe,end:Pe}),z(0);return}V(null)},placement:"top",position:"start",triggerClassName:`${pt} flex items-center justify-center`},$e.map((H,ie)=>r.createElement(We,{key:H.name,icon:H.icon,className:ie===j?"bg-accent text-accent-foreground":void 0,onClick:()=>Le(H)},r.createElement("span",{className:"font-medium"},"/",H.name),H.description&&r.createElement("span",{className:"ml-2 text-xs text-muted-foreground"},H.description))),$e.length===0&&r.createElement(We,{className:"text-muted-foreground"},A.noMatchingCommands)),b==null?void 0:b.map(H=>H.key==="tokenUsage"||H.content?r.createElement(mt,{key:H.key,trigger:{icon:H.icon,title:H.label},placement:"top",position:"start",triggerClassName:pt},H.key==="tokenUsage"?$?r.createElement("div",{className:"px-3 py-2 text-xs space-y-1"},r.createElement("p",{className:"font-medium text-foreground"},A.tokenUsage),r.createElement("p",{className:"text-muted-foreground"},Ve(A.tokenInput,{count:String($.tokensIn)})),r.createElement("p",{className:"text-muted-foreground"},Ve(A.tokenOutput,{count:String($.tokensOut)})),$.contextPercent!==null&&r.createElement("p",{className:"text-muted-foreground"},Ve(A.tokenContext,{percent:$.contextPercent.toFixed(1)})),$.estimatedCost!==null&&r.createElement("p",{className:"text-muted-foreground"},Ve(A.tokenCost,{amount:$.estimatedCost.toFixed(5)})),r.createElement("p",{className:"text-muted-foreground"},Ve(A.tokenTime,{seconds:($.durationMs/1e3).toFixed(1)}))):r.createElement("p",{className:"px-3 py-2 text-xs text-muted-foreground"},A.tokenUsageEmpty):H.content):r.createElement("button",{key:H.key,type:"button",title:H.label,className:`${pt} flex items-center justify-center`},r.createElement(W,{name:H.icon,size:13}))),r.createElement("div",{className:"mx-1 h-4 w-px shrink-0 bg-border"})),!v&&!Y&&ee.configured&&r.createElement(r.Fragment,null,r.createElement(mt,{trigger:{icon:"cpu",text:Se??"Model"},placement:"top",position:"start",triggerClassName:uf},r.createElement(We,{onClick:()=>je(e+".prompt.model","")},A.defaultOption),se.map(H=>r.createElement(We,{key:H.value,onClick:()=>je(e+".prompt.model",H.value)},H.label))),r.createElement(mt,{trigger:{icon:"user",title:"Role"},placement:"top",position:"start",triggerClassName:pt},r.createElement(We,{onClick:()=>je(e+".prompt.role","")},A.defaultOption," (",Z.role,")"),ct.getRoles().map(H=>r.createElement(We,{key:H,onClick:()=>je(e+".prompt.role",H)},H))),r.createElement(mt,{trigger:{icon:"globe",title:"Language"},placement:"top",position:"start",triggerClassName:pt},r.createElement(We,{onClick:()=>je(e+".prompt.language","")},A.defaultOption," (",Z.language,")"),ct.getLangs().map(H=>r.createElement(We,{key:H,onClick:()=>je(e+".prompt.language",H)},H))),r.createElement(mt,{trigger:{icon:"mic",title:"Voice"},placement:"top",position:"start",triggerClassName:pt},r.createElement(We,{onClick:()=>je(e+".prompt.voice","")},A.defaultOption," (",Z.voice,")"),ct.getVoices().map(H=>r.createElement(We,{key:H,onClick:()=>je(e+".prompt.voice",H)},H))),r.createElement(mt,{trigger:{icon:"feather",title:"Style"},placement:"top",position:"start",triggerClassName:pt},r.createElement(We,{onClick:()=>je(e+".prompt.style","")},A.defaultOption," (",Z.style,")"),ct.getStyles().map(H=>r.createElement(We,{key:H,onClick:()=>je(e+".prompt.style",H)},H))),_e&&r.createElement(mt,{trigger:{icon:"thermometer",title:"Temperature"},placement:"top",position:"start",triggerClassName:pt},r.createElement(We,null,r.createElement(ai,{name:e+".prompt.temperature",label:"Temperature",defaultValue:s==null?void 0:s.temperature,inheritWrapperClassName:!1,min:0,max:1,step:.1})))),r.createElement("div",{className:"flex-1"}),!v&&(Y||!ee.configured)&&(Q?r.createElement("div",{className:"mr-1 min-w-0"},Q):r.createElement("span",{className:"flex min-w-0 items-center gap-1 text-xs text-warning truncate mr-1"},r.createElement(W,{name:"triangle-alert",size:13,className:"shrink-0"}),r.createElement("span",{className:"truncate"},Y??(ee.reason||A.aiNotConfiguredShort)))),v&&le&&r.createElement("button",{type:"button",title:C?A.hidePreview:A.showPreview,className:`${pt} flex items-center justify-center ${C?"bg-muted text-foreground":""}`,onClick:()=>B(H=>!H)},r.createElement(W,{name:C?"eye-off":"eye",size:13})),!v&&r.createElement(bt,{icon:"send",loadingLabel:"",disabled:te,ariaLabel:A.run,title:K??A.run,variant:"primary",className:"!p-0 h-8 w-8",onClick:rt})),k&&k.length>0&&$&&!v&&r.createElement("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-0.5 rounded-b-xl border-t border-input/50 bg-muted/20 px-4 py-1.5 text-[11px] text-muted-foreground"},k.map(H=>{var ie;if(typeof H=="string")switch(H){case"tokensIn":return r.createElement("span",{key:"tokensIn"},Ve(A.tokenInput,{count:$.tokensIn}));case"tokensOut":return r.createElement("span",{key:"tokensOut"},Ve(A.tokenOutput,{count:$.tokensOut}));case"contextPercent":return $.contextPercent!==null?r.createElement("span",{key:"ctx"},Ve(A.tokenContext,{percent:$.contextPercent.toFixed(1)})):null;case"model":return r.createElement("span",{key:"model",className:"font-mono"},(((ie=Mt($.model))==null?void 0:ie.model)||$.model).split("/").pop());case"duration":return r.createElement("span",{key:"dur"},Ve(A.tokenTime,{seconds:($.durationMs/1e3).toFixed(1)}));default:return null}return r.createElement("span",{key:H.key},H.render($))}),$.estimatedCost!==null&&!k.some(H=>typeof H=="object"&&H.key==="cost")&&r.createElement("span",{className:"ml-auto font-mono"},"~$",$.estimatedCost.toFixed(5))))),d&&r.createElement("div",{className:"shrink-0"},d)))},ff=({name:e,label:t,required:n,onChange:a,minHeight:o=96,maxHeight:s=120,before:l,after:i,wrapperClassName:c,className:d,renderFallback:u})=>{const m=me(),f=r.useId();return r.createElement(pe,{className:c||m.Prompt.wrapperClassName},r.createElement("div",{className:"flex items-center gap-2"},l&&r.createElement("div",{className:"shrink-0"},l),r.createElement("div",{className:"min-w-0 flex-1"},(u==null?void 0:u({name:e,label:t,required:n,onChange:a}))??r.createElement("div",{className:co},t&&r.createElement(uo,{htmlFor:f,label:t,required:n}),r.createElement(yr,{id:f,className:d||m.Prompt.className,name:e+".value",onChange:a,required:n,inheritWrapperClassName:!1,wrapperClassName:"",minHeight:o,maxHeight:s}))),i&&r.createElement("div",{className:"shrink-0"},i)))},Fi=async(e,t,n,a,o,s)=>{const{value:l,model:i,...c}=e??{};if(n)return n(l,{...c,model:i,attachments:o},t);if(!l)return"";if(!a)throw new Error((s==null?void 0:s.noProvider)??"No AI provider is available for this prompt.");const d=Mt(i),u=(d==null?void 0:d.model)||i||a.defaultModel,m=await a.complete({...c,model:u,prompt:[jm,l,Bm].join(`
12
+ `),data:t,attachments:o});if(typeof m!="string"||!m.trim())throw new Error((s==null?void 0:s.noResponse)??"The AI provider returned no response.");return m};class Qt extends Error{constructor(t,n){super(t),this.name="CodeSyntaxError",this.language=n.language,this.from=n.from,this.to=n.to,this.line=n.line,this.column=n.column,this.nodeName=n.nodeName}}const rn={};let es=null;const pf=e=>{switch(e){case"html":return async()=>{const{html:t}=await import("@codemirror/lang-html");return t({matchClosingTags:!0}).language.parser};case"json":return async()=>{const{json:t}=await import("@codemirror/lang-json");return t().language.parser};case"js":return async()=>{const{javascript:t}=await import("@codemirror/lang-javascript");return t().language.parser};case"ts":return async()=>{const{javascript:t}=await import("@codemirror/lang-javascript");return t({typescript:!0}).language.parser};case"css":return async()=>{const{css:t}=await import("@codemirror/lang-css");return t().language.parser}}},gf=e=>(rn[e]??(rn[e]=pf(e)()),rn[e]),hf=async()=>(es??(es=import("liquidjs").then(({Liquid:e})=>new e({strictFilters:!0,strictVariables:!0}))),es),bf=(e,t)=>{let n=1,a=1;for(let o=0;o<t&&o<e.length;o++)e[o]===`
13
+ `?(n+=1,a=1):a+=1;return{line:n,column:a}},qn=(e,t,n,a,o,s="Syntax error")=>{const{line:l,column:i}=bf(e,n),c=o?` near ${o}`:"";return new Qt(`${s}${c} at line ${l}, column ${i}.`,{language:t,from:n,to:a,line:l,column:i,nodeName:o})},vf=e=>{do if(e.type.isError)return{from:e.from,to:e.to,nodeName:e.name};while(e.next());return null},mo=async(e,t)=>{if(e.trim()){if(t==="liquid"){try{(await hf()).parse(e)}catch(n){if(n instanceof Qt)throw n;const a=n&&typeof n=="object"&&"token"in n?n.token:void 0,o=(a==null?void 0:a.begin)??0,s=(a==null?void 0:a.end)??o,l=n instanceof Error?n.message.split(", line:")[0]:"Invalid Liquid syntax";throw qn(e,t,o,s,a==null?void 0:a.name,l)}return}try{const a=(await gf(t)).parse(e),o=vf(a.cursor());if(o)throw qn(e,t,o.from,o.to,o.nodeName)}catch(n){if(n instanceof Qt)throw n;if(t==="json"&&n instanceof Error){const a=n.message.match(/position\s+(\d+)/i),o=a?Number(a[1]):0;throw qn(e,t,o,o,void 0,"Invalid JSON")}throw new Qt(`Unable to validate ${t} code.`,{language:t,from:0,to:0,line:1,column:1})}}},yf=async(e,t)=>{try{return await mo(e,t),{valid:!0}}catch(n){if(n instanceof Qt)return{valid:!1,error:n};throw n}},xf=e=>{switch(e){case"html":return()=>import("@codemirror/lang-html").then(t=>t.html());case"liquid":return()=>import("@codemirror/lang-liquid").then(t=>t.liquid());case"json":return()=>import("@codemirror/lang-json").then(t=>t.json());case"js":return()=>import("@codemirror/lang-javascript").then(t=>t.javascript());case"ts":return()=>import("@codemirror/lang-javascript").then(t=>t.javascript({typescript:!0}));case"css":return()=>import("@codemirror/lang-css").then(t=>t.css())}},wf=async e=>{const[t,n,a,o]=await Promise.all([import("codemirror"),import("@codemirror/view"),import("@codemirror/state"),xf(e)()]);return{basicSetup:t.basicSetup,EditorView:n.EditorView,EditorState:a.EditorState,language:o}};let Jn={},Xn={};const Ef=e=>Jn[e]?Promise.resolve(Jn[e]):(Xn[e]||(Xn[e]=wf(e).then(t=>(Jn[e]=t,t))),Xn[e]),Oi=({name:e,onChange:t=void 0,defaultValue:n=void 0,className:a=void 0,label:o,language:s="html",placeholder:l,minHeight:i,maxHeight:c,required:d,disabled:u,feedback:m,labelClassName:f,validateSyntax:g=!0,validator:y,extensions:p,wrapperClassName:h,inheritWrapperClassName:b=!0,before:k,after:w})=>{var V,j;const S=r.useId(),I=me(),A=In({minHeight:i,maxHeight:c}),{value:x,handleChange:v,formWrapClass:R}=Ye({name:e,onChange:t,defaultValue:n,wrapperClassName:h,inheritWrapperClassName:b}),M=ut(e,{required:d,label:o,validator:async z=>{const P=typeof z=="string"?z:`${z??""}`;if(g)try{await mo(P,s)}catch($){if($ instanceof Qt)return $.message;throw $}return await(y==null?void 0:y(z))}}),D=r.useRef(null),C=r.useRef(null),[B,E]=r.useState(!0),_=r.useRef(x??"");r.useEffect(()=>{C.current||(_.current=x??"")},[x]);const F=r.useCallback(z=>{_.current=z,v({target:{name:e,value:z}})},[v,e]);r.useEffect(()=>{let z=!1,P=null;return Ef(s).then($=>{if(z||!D.current)return;const T=$.EditorView.theme({"&":{backgroundColor:"var(--rf-background)",height:"100%"},".cm-scroller":{fontFamily:"var(--font-mono, ui-monospace, SFMono-Regular, monospace)",paddingBottom:"0.5rem"},".cm-content":{caretColor:"var(--rf-foreground)",color:"var(--rf-foreground)",paddingBottom:"0.75rem"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--rf-primary)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"var(--rf-primary)"},".cm-activeLine":{backgroundColor:"var(--rf-muted)"},".cm-gutters":{backgroundColor:"var(--rf-muted)",color:"var(--rf-muted-foreground)",border:"none"},".cm-activeLineGutter":{backgroundColor:"var(--rf-accent)"},".cm-foldPlaceholder":{backgroundColor:"var(--rf-muted)",color:"var(--rf-muted-foreground)"},".cm-tooltip":{backgroundColor:"var(--rf-popover)",border:"1px solid var(--rf-border)",color:"var(--rf-popover-foreground)"},".cm-tooltip-autocomplete ul li[aria-selected]":{backgroundColor:"var(--rf-accent)",color:"var(--rf-accent-foreground)"},"&.cm-focused":{outline:"none"},".cm-placeholder":{color:"var(--rf-muted-foreground)"}}),L=[$.basicSetup,$.language,T,$.EditorView.updateListener.of(de=>{de.docChanged&&F(de.state.doc.toString())}),...p??[]];u&&L.push($.EditorView.editable.of(!1));const U=$.EditorState.create({doc:_.current,extensions:L});P=new $.EditorView({state:U,parent:D.current}),P.scrollDOM.style.minHeight=`${A.resolvedMinHeight}px`,A.resolvedMaxHeight&&(P.scrollDOM.style.maxHeight=`${A.resolvedMaxHeight}px`),C.current=P,E(!1)}).catch($=>{z||(console.error("[CodeEditor] Failed to load CodeMirror:",$),E(!1))}),()=>{z=!0,P&&(P.destroy(),C.current=null)}},[s,l,u,F,p]),r.useEffect(()=>{const z=x??"",P=C.current;P&&z!==_.current&&(_.current=z,P.dispatch({changes:{from:0,to:P.state.doc.length,insert:z}}))},[x]),r.useEffect(()=>{const z=C.current;z&&(z.scrollDOM.style.minHeight=`${A.resolvedMinHeight}px`,A.resolvedMaxHeight?z.scrollDOM.style.maxHeight=`${A.resolvedMaxHeight}px`:z.scrollDOM.style.maxHeight="")},[A.resolvedMinHeight,A.resolvedMaxHeight]);const O=N("w-full overflow-hidden border border-input",(V=I.CodeEditor)==null?void 0:V.className,a,B&&"flex items-center justify-center bg-muted text-muted-foreground text-sm",M&&"border-destructive",k?"rounded-l-none":"rounded-l-md",w?"rounded-r-none":"rounded-r-md");return r.createElement(pe,{className:N(R,(j=I.CodeEditor)==null?void 0:j.wrapperClassName)},o&&r.createElement(tt,{label:o,required:d,htmlFor:S,className:f}),r.createElement("div",{className:N(k||w?Rt:"")},k&&r.createElement("span",{className:N(nr,"rounded-l-md rounded-r-none border-r-0")},k),r.createElement("div",{className:N("min-w-0 flex-1",O)},B&&r.createElement("div",{style:{minHeight:A.resolvedMinHeight},className:"flex items-center justify-center"},r.createElement(W,{name:"loader-circle",size:16,className:"animate-spin text-muted-foreground"})),r.createElement("div",{ref:D,className:N(B&&"hidden")})),w&&r.createElement("span",{className:N(nr,"rounded-l-none rounded-r-md border-l-0")},w)),M&&r.createElement(et,{message:M}),m&&r.createElement("p",{className:Et},m))},$i={string:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Wa,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),number:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Jl,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),email:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(qa,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),password:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Xl,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),color:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Zl,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),date:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Ql,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),time:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(ei,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),datetime:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(ti,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),week:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(ri,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),month:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(ni,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),textarea:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(yr,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),checkbox:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(oi,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),switch:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Ja,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),select:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(pn,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),autocomplete:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(ci,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),checklist:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(di,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),uploadImage:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(xi,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),uploadDocument:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(yi,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),prompt:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(Ri,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})}),imageField:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(fi,{name:t??e.name,label:n??t,...e,...a})}),menu:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue}),render:({name:t,label:n,...a}={})=>r.createElement(pn,{key:t,name:t,label:n??t,...e,...a})}),codeEditor:(e={})=>({__props:e,getDefaults:t=>({[t]:e.defaultValue??""}),render:({name:t,label:n,...a}={})=>r.createElement(Oi,{key:t??e.name,name:t??e.name,label:n??e.label??t,...e,...a})})},G=$i,Nf={string:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),placeholder:G.string({label:"Placeholder",defaultValue:e.placeholder}),defaultValue:G.string({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),readOnlyAfterSet:G.switch({label:"Read-only dopo set",defaultValue:e.readOnlyAfterSet}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),number:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),placeholder:G.string({label:"Placeholder",defaultValue:e.placeholder}),defaultValue:G.number({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),min:G.number({label:"Minimo",defaultValue:e.min}),max:G.number({label:"Massimo",defaultValue:e.max}),step:G.number({label:"Step",min:0,defaultValue:e.step}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),readOnlyAfterSet:G.switch({label:"Read-only dopo set",defaultValue:e.readOnlyAfterSet}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),email:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),placeholder:G.string({label:"Placeholder",defaultValue:e.placeholder}),defaultValue:G.email({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),readOnlyAfterSet:G.switch({label:"Read-only dopo set",defaultValue:e.readOnlyAfterSet}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),password:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),placeholder:G.string({label:"Placeholder",defaultValue:e.placeholder}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),readOnlyAfterSet:G.switch({label:"Read-only dopo set",defaultValue:e.readOnlyAfterSet}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),color:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.color({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),date:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.date({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),min:G.number({label:"Data minima",defaultValue:e.min}),max:G.number({label:"Data massima",defaultValue:e.max}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),time:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.time({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),datetime:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.datetime({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),week:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.week({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),month:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.month({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),textarea:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),placeholder:G.string({label:"Placeholder",defaultValue:e.placeholder}),defaultValue:G.textarea({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),minHeight:G.number({label:"Altezza minima",min:0,defaultValue:e.minHeight}),maxHeight:G.number({label:"Altezza massima",min:0,defaultValue:e.maxHeight}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),readOnlyAfterSet:G.switch({label:"Read-only dopo set",defaultValue:e.readOnlyAfterSet}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),checkbox:(e={})=>{var t;return{label:G.string({label:"Label",required:!0,defaultValue:e.label}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),defaultValue:G.switch({label:"Valore default",defaultValue:e.defaultValue}),title:G.string({label:"Titolo tooltip",defaultValue:e.title}),valueChecked:G.string({label:"Valore checked",defaultValue:(t=e.valueChecked)==null?void 0:t.toString()})}},switch:(e={})=>{var t;return{label:G.string({label:"Label",required:!0,defaultValue:e.label}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),defaultValue:G.switch({label:"Valore default",defaultValue:e.defaultValue}),title:G.string({label:"Titolo tooltip",defaultValue:e.title}),valueChecked:G.string({label:"Valore checked",defaultValue:(t=e.valueChecked)==null?void 0:t.toString()})}},select:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),defaultValue:G.string({label:"Valore default",defaultValue:e.defaultValue}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),readOnlyAfterSet:G.switch({label:"Read-only dopo set",defaultValue:e.readOnlyAfterSet}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),autocomplete:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),placeholder:G.string({label:"Placeholder",defaultValue:e.placeholder}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),minItems:G.number({label:"Min selezioni",min:0,defaultValue:e.minItems}),maxItems:G.number({label:"Max selezioni",min:1,defaultValue:e.maxItems}),creatable:G.switch({label:"Creazione libera",defaultValue:e.creatable}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),checklist:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),feedback:G.string({label:"Messaggio helper",defaultValue:e.feedback}),disabled:G.switch({label:"Disabilitato",defaultValue:e.disabled})}),uploadImage:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),multiple:G.switch({label:"Multiplo",defaultValue:e.multiple}),editable:G.switch({label:"Modificabile",defaultValue:e.editable}),max:G.number({label:"Max file",min:1,defaultValue:e.max}),accept:G.string({label:"Formati accettati",defaultValue:e.accept}),previewWidth:G.number({label:"Larghezza preview",min:0,defaultValue:e.previewWidth}),previewHeight:G.number({label:"Altezza preview",min:0,defaultValue:e.previewHeight})}),uploadDocument:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),required:G.switch({label:"Obbligatorio",defaultValue:e.required}),multiple:G.switch({label:"Multiplo",defaultValue:e.multiple}),editable:G.switch({label:"Modificabile",defaultValue:e.editable}),max:G.number({label:"Max file",min:1,defaultValue:e.max}),accept:G.string({label:"Formati accettati",defaultValue:e.accept})}),imageField:(e={})=>({label:G.string({label:"Label",required:!0,defaultValue:e.label}),required:G.switch({label:"Obbligatorio",defaultValue:e.required})})},Cf={layout:bm,input:$i,schema:Nf,block:{},section:{}};class Li{verifyRequiredMethods(){if(!this.model||typeof this.model!="object")throw new Error('[ComponentBlock] Missing property: "model"');for(const t of["html","form"])if(typeof this[t]!="function")throw new Error(`[ComponentBlock] Missing method: "${t}()"`)}static default(t){const n=new this;return n.verifyRequiredMethods(),()=>{const[a,o]=r.useMemo(()=>sn(n.model),[n.model]);return r.createElement(ho,{defaultValues:o,path:t==null?void 0:t.path},n.form(a))}}}function ji(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.render=="function"&&typeof t.getDefaults=="function"}function kf(e){return typeof e=="function"&&e.prototype instanceof Li}function Sf(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)&&!r.isValidElement(e)&&!ji(e)}function sn(e){const t={},n={};function a(o){for(const[s,l]of Object.entries(o))n[s]=l}for(const[o,s]of Object.entries(e))if(ji(s))t[o]=s.render({name:o}),a(s.getDefaults(o));else if(kf(s)){const l=new s,[i,c]=sn(l.model);t[o]=l.form(i),a(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((d,u)=>{const m=`${o}_${u}`;l[m]=d});const[i,c]=sn(l);a(c),t[o]=i}else if(Sf(s)){const[l,i]=sn(s);t[o]=l,a(i)}else t[o]=s;return[t,n]}const la=Symbol("llmnative.form-controller-store"),Bi=()=>({record:void 0,isNewRecord:!0,isDirty:!1,canSave:!1,canDelete:!1,isSaving:!1,isDeleting:!1,saveDisabled:!0,deleteDisabled:!0,hasDraft:!1,draftStatus:null,errors:{},hasErrors:!1}),hn=async()=>!1,gr=()=>{};function zi(){let e=Bi(),t;const n=new Set,a={save:hn,delete:hn,reset:gr,restoreDraft:gr,discardDraft:gr},o=()=>{t={...e,save:a.save,delete:a.delete,reset:a.reset,restoreDraft:a.restoreDraft,discardDraft:a.discardDraft,[la]:s},n.forEach(l=>l())},s={bindActions(l){let i=!1;l.save&&a.save!==l.save&&(a.save=l.save,i=!0),l.delete&&a.delete!==l.delete&&(a.delete=l.delete,i=!0),l.reset&&a.reset!==l.reset&&(a.reset=l.reset,i=!0),l.restoreDraft&&a.restoreDraft!==l.restoreDraft&&(a.restoreDraft=l.restoreDraft,i=!0),l.discardDraft&&a.discardDraft!==l.discardDraft&&(a.discardDraft=l.discardDraft,i=!0),i&&o()},getControllerSnapshot:()=>t,getState:()=>e,setState(l){const i={...e,...l};Object.keys(i).some(d=>e[d]!==i[d])&&(e=i,o())},subscribe(l){return n.add(l),()=>n.delete(l)}};return t={...e,save:a.save,delete:a.delete,reset:a.reset,restoreDraft:a.restoreDraft,discardDraft:a.discardDraft,[la]:s},s}function ia(e){const t=e;return(t==null?void 0:t[la])??zi()}function Vi(e){return ia(e)}function Af(e){const t=Vi(e);t.setState(Bi()),t.bindActions({save:hn,delete:hn,reset:gr,restoreDraft:gr,discardDraft:gr})}const fo=r.createContext(null);function po(e){const t=r.useRef();t.current||(t.current=e?ia(e):zi());const n=e?ia(e):t.current;return r.useSyncExternalStore(n.subscribe,n.getControllerSnapshot,n.getControllerSnapshot)}function Mf(){const e=r.useContext(fo);if(!e)throw new Error("useFormActions must be used within a FormControllerContext");return e}const ts=e=>Array.isArray(e)?[...e]:e&&typeof e=="object"?{...e}:{},Ui=e=>!Number.isNaN(Number(e)),If=(e,t)=>["number","range"].includes(t)?e===""||e==null?"":Number(e):e,Pf=e=>e!==void 0&&Ui(e)?[]:{},rs=(e,t,n)=>{const a=t.target.name.split("."),o=If(t.target.value,n),s=ts(e??{});let l=s;for(let c=0;c<a.length-1;c++){const d=a[c],u=a[c+1],m=l[d];l[d]=m!=null&&typeof m=="object"?ts(m):Pf(u),l=l[d]}const i=a[a.length-1];return o==null||o===""?Array.isArray(l)&&Ui(i)?l.splice(Number(i),1):delete l[i]:l[i]=o,s},Hi=r.createContext(null),go=r.createContext(null),ut=(e,t)=>{const n=r.useContext(go),a=r.useRef(t);return a.current=t,r.useEffect(()=>{if(n)return n.registerField(e,a),()=>n.unregisterField(e)},[e]),n==null?void 0:n.errors[e]},Ye=({name:e,onChange:t,wrapperClassName:n,inputType:a="text",defaultValue:o,inheritWrapperClassName:s=!0})=>{const l=r.useContext(Hi);if(!l)throw new Error("useFormContext must be used within a FormContext.Provider");if(!e)throw new Error("useFormContext: name is required");const i=r.useContext(go),c=r.useMemo(()=>{const u=e.split(".").reduce((m,f)=>{if(m!=null){if(Array.isArray(m)){const g=Number(f);return isNaN(g)?void 0:m[g]}if(typeof m=="object")return m[f]}},l.record);return u===void 0&&o!==void 0?o??"":u??""},[e,l.record,o]),d=r.useCallback(u=>{i==null||i.clearFieldError(u.target.name);let m;l.setRecord(f=>(m=rs(f,u,a),m)),t==null||t({event:u,name:e,value:u.target.value,record:m??{},onChange:f=>{l.setRecord(g=>rs(g,f,a))}})},[i,l.setRecord,t,e,a]);return{value:c,handleChange:d,formWrapClass:[n,s?l.wrapperClassName:void 0].filter(Boolean).join(" "),record:l.record??{}}},Ki=({name:e,value:t,handleChange:n})=>r.useCallback(a=>{a.preventDefault();const o=a.target,l=`${a.dataTransfer.getData("text/plain")}`;o.focus();const i=(()=>{var m,f;const u=((m=document.caretPositionFromPoint)==null?void 0:m.call(document,a.clientX,a.clientY))??((f=document.caretRangeFromPoint)==null?void 0:f.call(document,a.clientX,a.clientY));return u&&"offset"in u?u.offset??o.value.length:o.value.length})(),c=String(t??""),d=c.slice(0,i)+l+c.slice(i);n==null||n({target:{value:d.trim(),name:e}}),requestAnimationFrame(()=>{const u=i+l.length;o.setSelectionRange(u,u)})},[e,t,n]);function Tf(e,t){if(e.indexOf(".")===-1||t.indexOf(".")===-1)return`${t}.${e}`;const n=Math.min(e.length,t.length);let a=0;for(;a<n&&e.charCodeAt(a)===t.charCodeAt(a);)a++;const o=e.lastIndexOf(".",a-1);return o===-1?`${t}.${e}`:`${t}.${e.slice(o+1)}`}const $r=({children:e,parentName:t,parentKey:n,wrapperClassName:a})=>r.Children.map(e,o=>{if(!t||!r.isValidElement(o))return o;const{name:s,children:l}=o.props,i={};return s&&(i.name=Tf(s,t),i.key=n??i.name,i.wrapperClassName=o.props.wrapperClassName??a,o.props.before&&r.isValidElement(o.props.before)&&(i.before=$r({children:o.props.before,parentName:t,parentKey:`${i.key}.before`})),o.props.after&&r.isValidElement(o.props.after)&&(i.after=$r({children:o.props.after,parentName:t,parentKey:`${i.key}.after`}))),l&&typeof l!="function"&&(i.children=$r({children:l,parentName:t,parentKey:n,wrapperClassName:a})),r.cloneElement(o,i)});function ho(e){const t=Te.useLocation(),{path:n,keyGenerator:a,defaultValues:o,children:s,...l}=e,c=(d=>d??(t.hash?`${Wr(t.pathname)}/${t.hash.slice(1)}`:void 0))(n);return o||!c||a?r.createElement(Gi,{children:s,defaultValues:o,path:n,keyGenerator:a,...l}):r.createElement(Df,{children:s,defaultValues:o,path:c,keyGenerator:a,...l})}const Df=e=>{const{path:t,defaultValues:n,...a}=e,o=Dt(),[s,l]=r.useState(void 0);return r.useEffect(()=>{o.read(t).then(i=>{l({...n,...i})}).catch(i=>{console.error(i),l({})})},[o,t,n]),s?r.createElement(Gi,{...a,defaultValues:s,path:t}):r.createElement("p",{className:"p-4"},r.createElement("span",{className:"mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"Loading...")},zt=e=>JSON.stringify(tr(e??{})),Rf=e=>{if(e)try{const t=JSON.parse(e);if(t&&typeof t=="object"&&!Array.isArray(t))return t}catch{return}},Gi=({children:e,appearance:t=void 0,controller:n=void 0,header:a=void 0,footer:o=void 0,path:s=void 0,defaultValues:l=void 0,keyGenerator:i=void 0,onLoad:c=void 0,onRecordChange:d=void 0,onSave:u=void 0,onDelete:m=void 0,onComplete:f=void 0,log:g=!1,showNotice:y=!0,persistDraft:p=!1,noticeAnchorRef:h=void 0,showBack:b=!1,wrapperClassName:k=void 0,headerClassName:w=void 0,className:S=void 0,footerClassName:I=void 0})=>{const A=Te.useLocation(),x=me(),v=Me("form"),R=Dt(),M=po(n),D=Vi(M),[C,B]=r.useState(l),[E,_]=r.useState(!1),[F,O]=r.useState(!1),V=!(l!=null&&l[Be]),j=r.useRef(St(l??{})),[z,P]=r.useState(()=>zt(l)),[$,T]=r.useState(null),L=r.useMemo(()=>{if(!p)return;const ae=s||`${A.pathname}${A.hash||""}`,be=Pt(ae);return be?`llmnative.form-draft.${be}`:void 0},[p,A.pathname,A.hash,s]),U=!!(u||s||!V),de=!!(m||!V),Z=r.useMemo(()=>zt(C)!==z,[C,z]),q=v.noChangesToSave??"No changes to save",se=v.draftRestoreTitle??"Unsaved changes found",re=v.draftRestoreMessage??"A local draft is available for this form. Restore it or discard it.",ye=v.draftRestoreAction??"Restore",he=v.draftDiscardAction??"Discard",fe=v.draftRestoredTitle??"Draft restored",_e=v.draftRestoredMessage??"The local draft has been restored. You can still discard it for a few seconds.",ue=r.useCallback(()=>{!L||typeof localStorage>"u"||localStorage.removeItem(L)},[L]),ke=r.useCallback(()=>{if(!(!L||typeof localStorage>"u"))return Rf(localStorage.getItem(L))},[L]),J=r.useCallback(()=>{B(St(j.current))},[]),[ee,te]=r.useState(void 0),K=r.useCallback(({message:ae,type:be="danger"})=>{y&&te({type:be,message:ae})},[y]),[Y,X]=r.useState({}),Q=r.useRef({}),ne=r.useRef(null),le=r.useRef(C),Se=r.useRef(l),ge=r.useRef(u),Ae=r.useRef(m),He=r.useRef(f),oe=r.useRef(s),Ce=r.useRef(g),xe=r.useCallback(()=>{ue(),J(),T(null)},[ue,J]),we=r.useCallback(()=>{const ae=ke();if(!ae){T(null);return}B(St(ae)),T("restored")},[ke]),Ee=r.useCallback(()=>{X({}),te(void 0),T(null),J()},[J]),$e=r.useCallback((ae,be)=>{Q.current[ae]=be},[]),Le=r.useCallback(ae=>{delete Q.current[ae]},[]),De=r.useCallback(ae=>{X(be=>{if(!be[ae])return be;const{[ae]:Oe,...ze}=be;return ze})},[]),rt=r.useCallback(async()=>{const ae={};for(const[be,Oe]of Object.entries(Q.current)){const{required:ze,label:lr,validator:Nr}=Oe.current,at=be.split(".").reduce((Xe,Cr)=>{if(Xe!=null){if(Array.isArray(Xe))return Xe[Number(Cr)];if(typeof Xe=="object")return Xe[Cr]}},le.current);if(ze&&(at==null||typeof at=="string"&&at.trim()===""||Array.isArray(at)&&at.length===0)){ae[be]=lr?Ve(v.requiredField,{field:lr}):v.requiredFieldGeneric;continue}if(Nr){const Xe=await Nr(at);Xe&&(ae[be]=Xe)}}if(X(ae),Object.keys(ae).length>0){const be=Object.keys(ae)[0];requestAnimationFrame(()=>{var Oe,ze;(ze=(Oe=ne.current)==null?void 0:Oe.querySelector(`[name="${CSS.escape(be)}"]`))==null||ze.focus()})}return Object.keys(ae).length===0},[v]),je=r.useCallback(ae=>{if(!s)return;const be=Wr(s);if(V){if(be.split("/").filter(Boolean).length%2===0&&!i)return`/${be}`;const at=(i==null?void 0:i(ae))??Date.now().toString();return`/${be}/${at}`}const Oe=ae[Be];if(!Oe)return s;const ze=be.split("/").filter(Boolean);return`/${ze[ze.length-1]===Oe?ze.slice(0,-1).join("/"):be}/${Oe}`},[s,i,V]),yt=r.useCallback(async ae=>{var be;if(Ce.current&&oe.current&&R){const Oe=new Date().toISOString(),ze=Jt("user");R.set(`/log/${oe.current}/${Pt(Oe)}`,{user:(ze==null?void 0:ze.email)??"unknown",when:Oe,action:ae,record:le.current})}return K({message:ae==="delete"?v.deleteSuccess:v.saveSuccess,type:"success"}),await((be=He.current)==null?void 0:be.call(He,{record:le.current,action:ae}))??!0},[R,K,v]),_t=r.useCallback(async ae=>{var Oe;if((Oe=ae==null?void 0:ae.preventDefault)==null||Oe.call(ae),!Z)return y&&te({message:q,type:"info"}),!1;if(er.flushSync(()=>{X({}),y&&te(void 0)}),!await rt())return y&&te({message:v.noticeRequiredFields,type:"warning"}),!1;const be=V?"create":"update";_(!0);try{const ze=(ge.current&&await ge.current({record:le.current,prevRecord:Se.current,action:be,storagePath:oe.current}))??je(le.current??{});return ze&&await R.set(ze,tr(le.current)),j.current=St(le.current??{}),P(zt(le.current)),ue(),T(null),await yt(be)}finally{_(!1)}},[ue,je,R,v.noticeRequiredFields,yt,Z,V,q,y,rt]),Ft=r.useCallback(async ae=>{var be;(be=ae==null?void 0:ae.preventDefault)==null||be.call(ae),y&&te(void 0),O(!0);try{const Oe=(Ae.current&&await Ae.current({record:le.current}))??je(le.current??{});return Oe&&await R.remove(Oe),ue(),T(null),await yt("delete")}finally{O(!1)}},[ue,je,R,yt,y]);r.useEffect(()=>{const ae=St(l??{});if(l&&(B(ae),c==null||c(St(ae))),j.current=ae,P(zt(ae)),!p){T(null);return}const be=ke();if(be&&zt(be)!==zt(ae)){T("restore");return}T(null)},[JSON.stringify(l),p,c,ke]),r.useEffect(()=>{le.current=C,C!==void 0&&(d==null||d(C))},[C,d]),r.useEffect(()=>{Se.current=l,ge.current=u,Ae.current=m,He.current=f,oe.current=s,Ce.current=g},[l,g,f,m,u,s]),r.useEffect(()=>{if(!L||typeof localStorage>"u"||C===void 0)return;if(!Z){const be=ke();if(be&&zt(be)!==z)return;localStorage.removeItem(L);return}const ae=window.setTimeout(()=>{localStorage.setItem(L,JSON.stringify(tr(C)))},150);return()=>window.clearTimeout(ae)},[z,L,Z,ke,C]),r.useEffect(()=>{D.bindActions({save:_t,delete:Ft,reset:Ee,restoreDraft:we,discardDraft:xe})},[D,xe,Ft,_t,Ee,we]),r.useEffect(()=>{D.setState({record:le.current,isNewRecord:V,isDirty:Z,canSave:U,canDelete:de,isSaving:E,isDeleting:F,saveDisabled:!U||!Z||E,deleteDisabled:!de||F,hasDraft:$!==null,draftStatus:$,errors:Y,hasErrors:Object.keys(Y).length>0})},[de,U,D,$,Y,F,Z,V,E]),r.useEffect(()=>()=>Af(M),[D]);const sr=r.useCallback(ae=>{ae.defaultPrevented||!((ae.ctrlKey||ae.metaKey)&&ae.key.toLowerCase()==="s")||M.saveDisabled||(ae.preventDefault(),M.save())},[M]),H=r.useMemo(()=>({registerField:$e,unregisterField:Le,clearFieldError:De,errors:Y}),[$e,Le,De,Y]),ie=r.useMemo(()=>({record:C,setRecord:B,wrapperClassName:"mb-3"}),[C,B]),Ie=r.useMemo(()=>r.createElement(fo.Provider,{value:M},r.createElement(Hi.Provider,{value:ie},r.createElement(go.Provider,{value:H},typeof e=="function"?e({record:C}):e))),[e,M,ie,C,H]),Pe=r.useMemo(()=>ee?r.createElement(Gr,{variant:ee.type,appearance:h?"default":"text",placement:h?"sticky":"inline",anchorRef:h,timeout:ee.type==="success"?3e3:void 0,onClose:ee.type==="success"?()=>te(void 0):void 0},ee.message):null,[ee,h]),Re=r.useMemo(()=>{if(!$)return null;const ae=$==="restore"?se:fe,be=$==="restore"?re:_e;return r.createElement(Gr,{variant:$==="restore"?"warning":"info",timeout:$==="restored"?6e3:void 0,onClose:$==="restored"?()=>T(null):void 0},r.createElement("div",{className:"flex items-start justify-between gap-3"},r.createElement("div",{className:"min-w-0"},r.createElement("div",{className:"font-medium"},ae),r.createElement("div",{className:"text-sm opacity-90"},be)),r.createElement("div",{className:"flex shrink-0 items-center gap-2"},$==="restore"?r.createElement(r.Fragment,null,r.createElement(Ze,{label:ye,variant:"warning",onClick:()=>we()}),r.createElement(Ze,{label:he,variant:"outline-secondary",onClick:()=>xe()})):r.createElement(Ze,{label:he,variant:"outline-secondary",onClick:()=>xe()}))))},[xe,he,$,ye,re,se,_e,fe,we]),nt=r.useMemo(()=>{switch(t){case"empty":return r.createElement(r.Fragment,null,Re,Ie,Pe);case"card":default:return r.createElement($a,{header:a||r.createElement(Il,{rootItem:V?v.headerAdd:v.headerEdit,trail:s||void 0}),footer:(o||!V||u||m||b||!!s)&&r.createElement(r.Fragment,null,o,Pe,(u||!!s||!V)&&r.createElement(bt,{className:N(x.Form.buttonSaveClass,M.saveDisabled&&"cursor-not-allowed opacity-50"),label:v.buttonSave,title:M.saveDisabled&&!Z?q:void 0,disabled:M.saveDisabled,loading:M.isSaving,onClick:ae=>M.save(ae)}),(m||!V)&&r.createElement(bt,{className:x.Form.buttonDeleteClass,label:v.buttonDelete,disabled:M.deleteDisabled,loading:M.isDeleting,onClick:ae=>M.delete(ae)}),b&&r.createElement(pl,{className:x.Form.buttonBackClass,label:v.buttonBack})),headerClassName:w||x.Form.Card.headerClassName,bodyClassName:S||x.Form.Card.bodyClassName,footerClassName:I||x.Form.Card.footerClassName},r.createElement(r.Fragment,null,Re,Ie))}},[t,S,Ie,v.buttonBack,v.buttonDelete,v.buttonSave,v.headerAdd,v.headerEdit,Re,o,I,M,a,w,Z,V,q,Pe,m,u,s,b,x.Form.buttonDeleteClass,x.Form.buttonSaveClass,x.Form.buttonBackClass,x.Form.Card.bodyClassName,x.Form.Card.footerClassName,x.Form.Card.headerClassName]);return r.createElement(pe,{className:k||x.Form.wrapperClassName},r.createElement("form",{ref:ne,noValidate:!0,onSubmit:ae=>ae.preventDefault(),onKeyDownCapture:sr,onKeyDown:sr},nt))},ns="rounded-xl border border-border/60 bg-card/80 shadow-sm",_f="flex items-center justify-between gap-3 border-b border-border/50 px-3 py-2",Ff="text-xs font-medium uppercase tracking-[0.14em] text-muted-foreground",Of="px-3 py-3",as="h-7 w-7 rounded-md bg-transparent p-0 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",$f=({name:e,children:t,onChange:n,onAdd:a,onRemove:o,className:s,layout:l="horizontal",minItems:i=void 0,maxItems:c=void 0,label:d=void 0,labelPosition:u="top",hideRemoveButton:m=!1,readOnly:f=!1})=>{var A;const{value:g,handleChange:y}=Ye({name:e,onChange:n}),p=Array.isArray(g)?g:[],h=(x,v)=>$r({children:typeof t=="function"?t({record:p[x],records:p,index:x,remove:()=>S(x)}):t,parentName:`${e}.${x}`,wrapperClassName:v}),b=(x,v)=>{switch(l){case"horizontal":return r.createElement("div",{className:ns},r.createElement("div",{className:_f},r.createElement("span",{className:Ff},"#",x+1),v&&!m?r.createElement(Ze,{className:as,icon:"x",onClick:()=>S(x)}):r.createElement("span",{className:"h-7 w-7","aria-hidden":"true"})),r.createElement("div",{className:Of},h(x)));case"vertical":return r.createElement(r.Fragment,null);case"inline":return r.createElement("div",{className:N(ns,"px-3 py-2")},r.createElement("div",{className:"flex items-start gap-2"},r.createElement("div",{className:"flex-1 min-w-0"},h(x,"!mb-0")),v&&!m&&r.createElement(Ze,{className:N(as,"mt-1 shrink-0"),icon:"x",onClick:()=>S(x)})))}},k=(A=p.length>0?p:Array.from({length:i||0},()=>({})))==null?void 0:A.map((x,v)=>{const R=!f&&v>=(i||0);return r.createElement(r.Fragment,{key:`${e}-${v}`},b(v,R))}),w=()=>{const x=p.length>0?[...p,{}]:Array.from({length:k.length+1},()=>({}));a==null||a(x),y({target:{name:`${e}.${x.length-1}`,value:{}}})},S=x=>{o==null||o(x),y({target:{name:`${e}.${x}`}})},I=r.useMemo(()=>f?null:!c||k.length<c?d&&u==="bottom"?r.createElement(Ze,{icon:"plus",label:d,variant:"link",className:"w-full justify-start gap-1 rounded-lg border border-dashed border-border/60 px-3 py-2 text-sm text-muted-foreground hover:border-border hover:bg-muted/40 hover:text-foreground",onClick:w}):r.createElement(Ze,{icon:"plus",label:d?void 0:"Add",variant:d?"link":"secondary",className:d?"h-8 w-8 rounded-lg p-0 text-muted-foreground hover:bg-muted/50 hover:text-foreground":void 0,onClick:w}):null,[f,c,k.length,d,u]);return r.createElement("div",{className:N("space-y-3",s)},d&&u==="top"&&r.createElement("div",{className:"flex items-center justify-between gap-3"},r.createElement("span",{className:"text-sm font-medium text-foreground"},d),I),k,!d&&I,d&&u==="bottom"&&I)},Lf={default:{shellClassName:"space-y-4",menuClassName:"flex flex-wrap items-end gap-2 border-b border-border/70",contentClassName:"min-w-0",itemClassName:"shrink-0",triggerClassName:"inline-flex items-center rounded-t-lg border-b-2 px-3 py-2 text-sm font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background",activeTriggerClassName:"border-primary text-foreground",inactiveTriggerClassName:"border-transparent text-muted-foreground hover:text-foreground hover:border-border/80"},top:{shellClassName:"space-y-4",menuClassName:"inline-flex max-w-full flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5",contentClassName:"min-w-0",itemClassName:"shrink-0",triggerClassName:"inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background",activeTriggerClassName:"bg-card text-foreground shadow-sm ring-1 ring-border/60",inactiveTriggerClassName:"text-muted-foreground hover:bg-background/80 hover:text-foreground"},left:{shellClassName:"flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start",menuClassName:"flex shrink-0 gap-2 overflow-x-auto md:w-64 md:flex-col md:overflow-visible",contentClassName:"min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm",itemClassName:"shrink-0 md:w-full",triggerClassName:"inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background",activeTriggerClassName:"bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15",inactiveTriggerClassName:"text-muted-foreground hover:bg-muted/60 hover:text-foreground"},right:{shellClassName:"flex h-full min-h-0 flex-col gap-5 md:flex-row md:items-start",menuClassName:"order-1 flex shrink-0 gap-2 overflow-x-auto md:order-2 md:w-64 md:flex-col md:overflow-visible",contentClassName:"order-2 min-h-0 min-w-0 flex-1 overflow-hidden rounded-2xl border border-border/60 bg-card/80 p-4 shadow-sm md:order-1",itemClassName:"shrink-0 md:w-full",triggerClassName:"inline-flex w-full items-center justify-between rounded-xl px-3 py-2.5 text-left text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background",activeTriggerClassName:"bg-primary/10 text-primary shadow-sm ring-1 ring-primary/15",inactiveTriggerClassName:"text-muted-foreground hover:bg-muted/60 hover:text-foreground"},bottom:{shellClassName:"space-y-4",menuClassName:"flex flex-wrap gap-2 rounded-xl bg-muted/50 p-1.5",contentClassName:"min-w-0 rounded-2xl border border-border/60 bg-card p-4 shadow-sm",itemClassName:"shrink-0",triggerClassName:"inline-flex items-center rounded-lg px-3 py-2 text-sm font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40 focus-visible:ring-offset-2 focus-visible:ring-offset-background",activeTriggerClassName:"bg-card text-foreground shadow-sm ring-1 ring-border/60",inactiveTriggerClassName:"text-muted-foreground hover:bg-background/80 hover:text-foreground"}};function wt(e){return Lf[e]}function bn(e,t,n){const a=wt(e),o=me();return N(a.triggerClassName,o.Tab.triggerClassName,t?a.activeTriggerClassName:a.inactiveTriggerClassName,t?o.Tab.activeTriggerClassName:o.Tab.inactiveTriggerClassName,n)}function bo(e){const t=me();return N("min-h-0 min-w-0 h-full overflow-x-hidden overflow-y-auto",t.Tab.contentClassName,e)}const vo={default:({menu:e,content:t,menuClassName:n,contentClassName:a})=>{const o=wt("default"),s=me();return r.createElement("div",{className:o.shellClassName},r.createElement("div",{role:"tablist","aria-orientation":"horizontal",className:N(o.menuClassName,s.Tab.menuClassName,n)},e),r.createElement("div",{className:N(o.contentClassName,s.Tab.contentClassName,a)},t))},top:({menu:e,content:t,menuClassName:n,contentClassName:a})=>{const o=wt("top"),s=me();return r.createElement("div",{className:o.shellClassName},r.createElement("div",{role:"tablist","aria-orientation":"horizontal",className:N(o.menuClassName,s.Tab.menuClassName,n)},e),r.createElement("div",{className:N(o.contentClassName,s.Tab.contentClassName,a)},t))},left:({menu:e,content:t,menuClassName:n,contentClassName:a})=>{const o=wt("left"),s=me();return r.createElement("div",{className:o.shellClassName},r.createElement("div",{role:"tablist","aria-orientation":"vertical",className:N(o.menuClassName,s.Tab.menuClassName,n)},e),r.createElement("div",{className:N(o.contentClassName,s.Tab.contentClassName,a)},t))},right:({menu:e,content:t,menuClassName:n,contentClassName:a})=>{const o=wt("right"),s=me();return r.createElement("div",{className:o.shellClassName},r.createElement("div",{role:"tablist","aria-orientation":"vertical",className:N(o.menuClassName,s.Tab.menuClassName,n)},e),r.createElement("div",{className:N(o.contentClassName,s.Tab.contentClassName,a)},t))},bottom:({menu:e,content:t,menuClassName:n,contentClassName:a})=>{const o=wt("bottom"),s=me();return r.createElement("div",{className:o.shellClassName},r.createElement("div",{className:N(o.contentClassName,s.Tab.contentClassName,a)},t),r.createElement("div",{role:"tablist","aria-orientation":"horizontal",className:N(o.menuClassName,s.Tab.menuClassName,n)},e))}},Yi=()=>null,jf=({children:e,motion:t})=>{var o,s;const n=me(),a=Nn(void 0,t??((o=n.Tab.motion)==null?void 0:o.enter)??"fadeUp",((s=n.Tab.motion)==null?void 0:s.enter)??"fadeUp");return r.createElement("div",{style:a,className:bo()},e)},Bf=({children:e,defaultIndex:t=0,onChange:n,layout:a="default",menuClassName:o=void 0,contentClassName:s=void 0,before:l=void 0,after:i=void 0,wrapperClassName:c=void 0,className:d=void 0,motion:u=void 0})=>{var k,w;const[m,f]=r.useState(t),g=S=>{f(S),n==null||n(S)},y=r.Children.toArray(e).filter(S=>r.isValidElement(S)&&S.type===Yi),p=r.useMemo(()=>wt(a),[a]),h=vo[a],b=me();return r.createElement(pe,{className:N(b.Tab.wrapperClassName,c)},l,r.createElement("div",{className:N("min-w-0",b.Tab.className,d)},r.createElement(h,{menuClassName:o,contentClassName:s,menu:y.map((S,I)=>r.createElement("div",{key:I,className:N(p.itemClassName,b.Tab.itemClassName)},r.createElement("button",{type:"button",role:"tab","aria-selected":I===m,onClick:()=>g(I),className:bn(a,I===m)},S.props.label))),content:r.createElement(jf,{key:m,motion:u},(w=(k=y[m])==null?void 0:k.props)==null?void 0:w.children)})),i)};function Wi({records:e,selectedKeys:t,onSelectionChange:n,getRecordKey:a}){const o=t,s=o!==void 0&&!!n,[l,i]=r.useState(o??[]);r.useEffect(()=>{o!==void 0&&!s&&i(o)},[o,s]);const c=s?o||[]:l,d=!!n||o!==void 0,u=r.useCallback(y=>{const p=new Set(y),h=e.filter((b,k)=>p.has(a(b,k)));return{keys:y,records:h,hasSelection:y.length>0}},[a,e]),m=r.useCallback(y=>{s||i(y);const p=u(y);n==null||n({...p,clear:()=>m([])})},[u,s,n]),f=r.useCallback(()=>{m([])},[m]),g=r.useMemo(()=>({...u(c),clear:f}),[c,u,f]);return{activeSelectedKeys:c,selectionState:g,showSelection:d,updateSelection:m}}function qi(e){const t=r.useRef(new WeakMap),n=r.useRef(0);return r.useCallback((a,o)=>{if(a[Be])return a[Be];const s=a,l=t.current.get(s);if(l)return l;const i=`${e}-${n.current++}`;return t.current.set(s,i),i},[e])}function Ji({columns:e=void 0,records:t=void 0,footer:n=void 0,onRowClick:a=void 0,onReorder:o=void 0,onSelectionChange:s=void 0,selection:l="multiple",sortable:i=!1,pagination:c=void 0,activeKey:d=void 0,selectedKeys:u=void 0,groupBy:m=void 0,before:f=void 0,after:g=void 0,wrapperClassName:y=void 0,className:p=void 0,headerClassName:h=void 0,bodyClassName:b=void 0,footerClassName:k=void 0,heightClassName:w=void 0,scrollClassName:S=void 0,selectedClassName:I=void 0,renderCell:A=void 0}){const x=me(),v=Me("table"),R=I||x.Table.selectedClassName,[M,D]=r.useState(t||[]),C=r.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]),B=i!==!1,[E,_]=r.useState(C),[F,O]=r.useState(null),[V,j]=r.useState(null),[z,P]=r.useState(null),[$,T]=r.useState(null),[L,U]=r.useState(null),de=r.useRef(!1),Z=r.useCallback(oe=>{oe&&O(oe)},[]),q=r.useId(),se=!!o,re=B||!!pr.normalize(C),ye=se&&re,he=ye?!1:B,fe=ye?void 0:C;r.useEffect(()=>{D(t||[])},[t]),r.useEffect(()=>{_(fe)},[fe==null?void 0:fe.field,fe==null?void 0:fe.dir]),r.useEffect(()=>{!ye||de.current||(console.warn("Table: `onReorder` cannot be combined with sortable sorting on the same view. Manual reorder takes precedence and sorting is ignored."),de.current=!0)},[ye]);const _e=qi("row"),ue=r.useCallback((oe,Ce)=>_e(oe,Ce),[_e]),{activeSelectedKeys:ke,selectionState:J,showSelection:ee,updateSelection:te}=Wi({records:M,selectedKeys:u,onSelectionChange:s,getRecordKey:ue});r.useEffect(()=>{if(!L)return;M.some((Ce,xe)=>ue(Ce,xe)===L)||U(null)},[L,ue,M]),r.useEffect(()=>{if(E||!(e!=null&&e.length)||se)return;const oe=e.find(Ce=>he&&Ce.sort!==!1);oe&&_({field:oe.key,dir:"asc"})},[E,he,e,se]);const K=r.useMemo(()=>pr.records(M,E)||[],[M,E]),Y=(oe,Ce,xe)=>{let we=oe.target;for(;we&&we.tagName!=="TR";){if(["A","BUTTON","INPUT","LABEL"].includes(we.tagName))return;we=we.parentNode}const Ee=ue(Ce,xe);R&&d===void 0&&U($e=>$e===Ee?null:Ee),a==null||a(Ce)},X=(oe,Ce,xe)=>{if(A)return A(oe,Ce,xe);const we=oe[Ce],Ee=we!=null&&typeof we=="object"&&!Array.isArray(we)?we:null,$e=(Ee==null?void 0:Ee.prompt)&&(Ee==null?void 0:Ee.value)||we;return r.isValidElement($e)||$e==null||typeof $e!="object"?$e:Array.isArray($e)&&!$e.some(Le=>typeof Le=="object"&&Le)?$e.join(", "):""},Q=r.useCallback((oe,Ce)=>{const xe=ue(oe,Ce),we=ke.includes(xe)?ke.filter(Ee=>Ee!==xe):[...ke,xe];te(we)},[ke,ue,te]),ne=r.useCallback((oe,Ce)=>{const xe=ue(oe,Ce);te(ke.includes(xe)?[]:[xe])},[ke,ue,te]),le=r.useCallback((oe,Ce)=>{if(!V)return;const xe=K.findIndex((rt,je)=>ue(rt,je)===V),we=K.findIndex((rt,je)=>ue(rt,je)===ue(oe,Ce));P(null),j(null);const Ee=($==null?void 0:$.position)||"after";if(T(null),xe<0||we<0||xe===we)return;const $e=[...K],[Le]=$e.splice(xe,1),De=xe<we?we+(Ee==="after"?0:-1):we+(Ee==="after"?1:0);$e.splice(De,0,Le),_(void 0),D($e),o==null||o($e,{fromIndex:xe,toIndex:De,record:Le})},[V,$==null?void 0:$.position,ue,o,K]);if(K.length===0)return r.createElement("p",{className:"p-4"},v.noDataFound);const Se=e||Object.keys(K[0]).map(oe=>({key:oe,label:oe,sort:B})),ge=["w-full",x.Table.scrollClassName,w?`${w} overflow-auto`:"",S||""].filter(Boolean).join(" "),Ae=Se.length+(ee?1:0)+(se?1:0),He=(oe,Ce,xe,we)=>!$||$.key!==oe||$.position!==Ce?null:r.createElement("tr",{"aria-hidden":"true",onDragOver:Ee=>{se&&(Ee.preventDefault(),z!==oe&&P(oe),T({key:oe,position:Ce}))},onDrop:Ee=>{se&&(Ee.preventDefault(),T({key:oe,position:Ce}),le(xe,we))}},r.createElement("td",{colSpan:Ae,className:"border-0 p-0"},r.createElement("div",{className:"relative h-5 cursor-grab"},r.createElement("div",{className:"absolute inset-x-2 top-1/2 -translate-y-1/2"},r.createElement("div",{className:"h-0 rounded-full border-t-2 border-primary/80"}),r.createElement("div",{className:"absolute left-0 top-1/2 h-2 w-2 -translate-y-1/2 rounded-full bg-primary shadow-sm"})))));return r.createElement("div",{className:"flex items-stretch gap-3"},f&&r.createElement("div",{className:"table-before flex shrink-0 items-center self-stretch"},f),r.createElement("div",{ref:Z,className:"min-w-0 flex-1 overflow-x-auto "+(y||x.Table.wrapperClassName)},r.createElement("div",{className:ge},r.createElement("table",{className:"w-full min-w-full text-left text-sm border-collapse "+(p||x.Table.className)},r.createElement("thead",{className:"border-b "+(h||x.Table.headerClassName)},r.createElement("tr",null,ee&&r.createElement("th",{className:"px-3 py-2 font-semibold text-muted-foreground",style:{width:"1%",whiteSpace:"nowrap"}},l!=="single"?r.createElement("div",{className:"th-inner py-1"},r.createElement("input",{type:"checkbox","aria-label":v.selectAllRows,checked:J.records.length>0&&J.records.length===M.length,onChange:oe=>{const Ce=oe.target.checked?K.map((xe,we)=>ue(xe,we)):[];te(Ce)}})):r.createElement("div",{className:"th-inner py-1"})),se&&r.createElement("th",{className:"px-3 py-2 font-semibold text-muted-foreground",style:{width:"1%",whiteSpace:"nowrap"}},r.createElement("div",{className:"th-inner py-1"})),Se.map(oe=>oe.label?(()=>{const Ce=he&&oe.sort!==!1,xe=Ce&&(E==null?void 0:E.field)===oe.key,we=xe?(E==null?void 0:E.dir)==="desc"?"descending":"ascending":"none";return r.createElement("th",{key:oe.key,className:"px-3 py-2 font-semibold text-muted-foreground"+(oe.className?" "+oe.className:""),"aria-sort":we},Ce?r.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 "+(xe?"font-semibold text-foreground":"text-muted-foreground hover:text-foreground"),onClick:()=>_(Ee=>pr.toggle(Ee,oe.key)),"aria-label":xe?Ve(v.sortByCurrent,{label:oe.label,direction:(E==null?void 0:E.dir)==="desc"?"descending":"ascending"}):Ve(v.sortBy,{label:oe.label}),title:xe?`${oe.label}: ${(E==null?void 0:E.dir)==="desc"?"descending":"ascending"}`:Ve(v.sortBy,{label:oe.label})},r.createElement("span",{className:"inline-flex h-4 w-4 flex-none items-center justify-center transition-colors "+(xe?"text-primary":"text-muted-foreground/70 group-hover:text-foreground/80"),"aria-hidden":"true"},xe?(E==null?void 0:E.dir)==="desc"?r.createElement(Pr.ArrowDown,{size:14}):r.createElement(Pr.ArrowUp,{size:14}):r.createElement(Pr.ArrowUpDown,{size:14})),r.createElement("span",null,oe.label)):r.createElement("div",{className:"th-inner py-1"},oe.label))})():r.createElement("th",{key:oe.key,className:"px-3 py-2 font-semibold text-muted-foreground",style:{width:"1%",whiteSpace:"nowrap"}})))),r.createElement("tbody",{className:b||x.Table.bodyClassName},r.createElement(wo,{records:K,appendTo:F,wrapperClassName:"px-3 pt-4 pb-2",...c||{}},(oe,Ce)=>{const xe=m?Array.isArray(m)?m:[m]:null;let we;return oe.map((Ee,$e)=>{const Le=Ce+$e,De=ue(Ee,Le),rt=xe?xe.map(ie=>String(Ee[ie]??"")).join(" · "):void 0,je=rt!==void 0&&rt!==we;we=rt;const yt=ke.includes(De),_t=z===De,Ft=V===De,H=R&&(d===void 0?L:d)===De;return r.createElement(r.Fragment,{key:De},je&&r.createElement("tr",{"aria-hidden":"true"},r.createElement("td",{colSpan:Ae,className:"bg-muted/40 px-3 py-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground"},rt)),He(De,"before",Ee,Le),r.createElement("tr",{draggable:se,className:["odd:bg-muted/30 hover:bg-muted/20 transition-colors",_t?"bg-muted/30":"",H?R:""].filter(Boolean).join(" ")||void 0,style:{cursor:a?"pointer":se?"grab":"default",opacity:Ft?.45:1},onClick:ie=>{a&&Y(ie,Ee,Le)},onDragStart:()=>{j(De)},onDragOver:ie=>{if(!se)return;ie.preventDefault();const Ie=ie.currentTarget.getBoundingClientRect(),Pe=ie.clientY<Ie.top+Ie.height/2?"before":"after";z!==De&&P(De),V!==De&&T(Re=>(Re==null?void 0:Re.key)===De&&Re.position===Pe?Re:{key:De,position:Pe})},onDragLeave:()=>{z===De&&P(null)},onDragEnd:()=>{j(null),P(null),T(null)},onDrop:ie=>{se&&(ie.preventDefault(),le(Ee,Le))}},ee&&r.createElement("td",{className:"px-3 py-2 border-b border-border/50",style:{width:"1%",whiteSpace:"nowrap"}},r.createElement("input",{type:l==="single"?"radio":"checkbox",name:l==="single"?q:void 0,"aria-label":Ve(v.selectRow,{key:De}),checked:yt,onChange:()=>{if(l==="single"){ne(Ee,Le);return}Q(Ee,Le)},onClick:ie=>{ie.stopPropagation(),l==="single"&&(ie.preventDefault(),ne(Ee,Le))}})),se&&r.createElement("td",{className:"px-3 py-2 border-b border-border/50",style:{width:"1%",whiteSpace:"nowrap"}},r.createElement("button",{type:"button",draggable:se,className:"inline-flex cursor-grab items-center justify-center rounded-sm border-0 bg-transparent p-0 text-muted-foreground","aria-label":Ve(v.reorderRow,{key:De}),onClick:ie=>ie.preventDefault(),onDragStart:ie=>{ie.stopPropagation(),j(De)},onDragEnd:ie=>{ie.stopPropagation(),j(null),P(null),T(null)}},r.createElement(Pr.GripVertical,{size:14}))),Se.map(ie=>r.createElement("td",{key:ie.key,className:"px-3 py-2 border-b border-border/50"},X(Ee,ie.key,Le)))),He(De,"after",Ee,Le))})})),n&&r.createElement("tfoot",{className:k||x.Table.footerClassName},n)))),g&&r.createElement("div",{className:"table-after flex shrink-0 items-center self-stretch"},g))}const qe=12,os=12,Yr=(e,t,n)=>Math.max(t,Math.min(n,e)),zf=e=>{if(!e)return"";const t=e.trim().replace(/^\{/,"").replace(/\}$/,"").trim(),n=t.split(".");return(n[n.length-1]||t).trim()},ss=(e,t)=>{const n=e-t.left,a=t.width/qe;return Yr(Math.floor(n/a),0,qe-1)},ls=()=>`${Date.now()}_${Math.random().toString(16).slice(2)}`,Xi=(e,t,n)=>{const a=o=>{const s=o+t;return s>qe?!1:!n.some(l=>{const i=o,c=s,d=l.colStart,u=l.colStart+l.colSpan;return i<u&&d<c})};for(let o=e;o<=qe-t;o++)if(a(o))return o;for(let o=0;o<=qe-t;o++)if(a(o))return o;return null},Vf=(e,t,n)=>{const a=e.find(i=>i.id===t);if(!a)return e;const o=e.filter(i=>i.id!==t),s=Yr(n,0,qe-a.colSpan),l=Xi(s,a.colSpan,o);return l===null?e:e.map(i=>i.id===t?{...i,colStart:l}:i)},Uf=(e,t,n)=>{const a=e.find(c=>c.id===t);if(!a)return e;const o=e.filter(c=>c.id!==t),s=qe-a.colStart;let l=Yr(n,1,s);const i=c=>{const d=a.colStart,u=a.colStart+c;return o.some(m=>{const f=m.colStart,g=m.colStart+m.colSpan;return d<g&&f<u})};for(;l>1&&i(l);)l--;return i(l)?e:e.map(c=>c.id===t?{...c,colSpan:l}:c)},is=(e,t,n)=>{if(n<=0)return null;const a=e.map(o=>{const s=o.colStart+o.colSpan/2,l=Math.abs(s-(t+.5));return{it:o,dist:l}}).sort((o,s)=>o.dist-s.dist).map(o=>o.it);for(const o of a){if(o.colSpan-1<n)continue;const l=o.colSpan-n,i=o.colStart+l;if(i<0||i+n>qe)continue;return{nextItems:e.map(d=>d.id===o.id?{...d,colSpan:l}:d),insertCol:i}}return null},Hf=r.forwardRef(({name:e,defaultSpan:t=1,heightPx:n=100},a)=>{const o=r.useRef(null),s=Me("layout"),{value:l,handleChange:i}=Ye({name:e,defaultValue:[]}),c=Array.isArray(l)?l:[],d=C=>{const E=typeof C=="function"?C(c):C;i({target:{name:e,value:E}})},[u,m]=r.useState(null),[f,g]=r.useState(null),[y,p]=r.useState(""),h=r.useRef(null),b=C=>{p(C),h.current&&window.clearTimeout(h.current),h.current=window.setTimeout(()=>p(""),2500)};r.useEffect(()=>()=>{h.current&&window.clearTimeout(h.current)},[]),r.useImperativeHandle(a,()=>({getValue:()=>c,setValue:C=>d(C),clear:()=>d([])}));const k=r.useMemo(()=>Array.from({length:qe},(C,B)=>B),[]),w=C=>{C.preventDefault()},S=C=>{if(C.preventDefault(),C.dataTransfer.getData("application/x-layoutbuilder-internal")){m(null);return}if(c.length>=os){b(s.maxElements);return}const E=o.current;if(!E)return;const _=E.getBoundingClientRect(),F=ss(C.clientX,_),O=C.dataTransfer.getData("text/plain")||C.dataTransfer.getData("label")||"",V=zf(O)||"unknown",j=Yr(t,1,qe),z=Yr(F,0,qe-j),P=Xi(z,j,c);if(P!==null){d(T=>[...T,{id:ls(),fieldName:V,colStart:P,colSpan:j}]);return}if(!is(c,F,j)){b(s.noSpace);return}d(T=>{if(T.length>=os)return b(s.maxElements),T;const L=is(T,F,j);if(!L)return b(s.noSpace),T;const U={id:ls(),fieldName:V,colStart:L.insertCol,colSpan:j};return[...L.nextItems,U]})},I=C=>B=>{m(C),B.dataTransfer.setData("application/x-layoutbuilder-internal",C),B.dataTransfer.effectAllowed="move"},A=C=>{if(C.preventDefault(),!u)return;const B=o.current;if(!B)return;const E=B.getBoundingClientRect(),_=ss(C.clientX,E);d(F=>Vf(F,u,_))},x=()=>m(null),v=C=>B=>{B.stopPropagation(),B.preventDefault();const E=c.find(_=>_.id===C);E&&g({id:C,startClientX:B.clientX,startSpan:E.colSpan})},R=C=>{if(!f)return;const B=o.current;if(!B)return;const _=B.getBoundingClientRect().width/qe,F=C.clientX-f.startClientX,O=Math.round(F/_),V=f.startSpan+O;d(j=>Uf(j,f.id,V))},M=()=>{f&&g(null)},D=C=>d(B=>B.filter(E=>E.id!==C));return r.createElement("div",{onMouseMove:R,onMouseUp:M,onMouseLeave:M},y&&r.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}},y),r.createElement("div",{ref:o,onDragOver:C=>{w(C),A(C)},onDrop:S,onDragEnd:x,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"}},k.map(C=>r.createElement("div",{key:C,style:{position:"absolute",top:0,bottom:0,left:`${C/qe*100}%`,width:1,background:"rgba(255, 255, 255, 0.06)",pointerEvents:"none"}})),c.map(C=>r.createElement("div",{key:C.id,draggable:!0,onDragStart:I(C.id),style:{position:"absolute",top:12,bottom:12,left:`${C.colStart/qe*100}%`,width:`${C.colSpan/qe*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:u===C.id?"grabbing":"grab",display:"flex",alignItems:"center",justifyContent:"center",userSelect:"none"},title:s.dragToMove},r.createElement("div",{style:{fontSize:10,fontWeight:400,opacity:.9}},C.fieldName),r.createElement("button",{type:"button",onClick:()=>D(C.id),style:{position:"absolute",border:"none",top:3,right:3,color:"white",background:"rgba(255, 255, 255, 0.03)",fontSize:12,cursor:"pointer"},title:s.remove},"×"),r.createElement("div",{onMouseDown:v(C.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:s.dragToResize}))),c.length===0&&r.createElement("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"}},s.dragHere)))}),Kf=({name:e,onDataLoaded:t,onClear:n=void 0,onParseField:a=void 0,label:o=void 0,icon:s="upload",delimiter:l=void 0,normalizeKeys:i=!1,removeEmptyFields:c=!1,required:d=!1,before:u=void 0,after:m=void 0,wrapperClassName:f=void 0,className:g=void 0})=>{const y=Me("upload"),[p,h]=r.useState(null),[b,k]=r.useState(!1),[w,S]=r.useState(null),I=r.useRef(null),A=([E,_])=>{if(!["",null,void 0].includes(E)&&_!==void 0&&!(c&&["",null].includes(_)))return i&&(E=Pt(E)),a?a([E,_]):[E.trim(),un(_)]},x=E=>{E&&Kc.parse(E,{header:!0,skipEmptyLines:!0,delimiter:l,dynamicTyping:!1,complete:_=>{var F;h(null),S(E),t({data:_.data.map(O=>Object.fromEntries(Object.entries(O).reduce((V,[j,z])=>{const P=A([j,z]);return P&&V.push(P),V},[]))),fields:(((F=_.meta)==null?void 0:F.fields)||[]).reduce((O,V)=>(V&&O.push(i?Pt(V):V),O),[]),file:E})},error:_=>{h(_ instanceof Error?_.message:String(_)),S(null)}})},v=E=>{var _;x(((_=E.target.files)==null?void 0:_[0])??null),E.target.value=""},R=E=>{E.preventDefault(),E.stopPropagation(),k(!0)},M=E=>{E.preventDefault(),E.stopPropagation(),k(!1)},D=E=>{var _;E.preventDefault(),E.stopPropagation(),k(!1),x(((_=E.dataTransfer.files)==null?void 0:_[0])??null)},C=()=>{var E;return(E=I.current)==null?void 0:E.click()},B=E=>E<1024?`${E} B`:E<1024*1024?`${(E/1024).toFixed(1)} KB`:`${(E/(1024*1024)).toFixed(1)} MB`;return r.createElement(pe,{className:f},u,r.createElement("div",{className:N(g),"data-name":e},o&&r.createElement(tt,{label:o,required:d}),r.createElement("input",{ref:I,type:"file",accept:".csv,.tsv,text/csv,text/plain",className:"hidden",onChange:v}),w?r.createElement("div",{className:"rounded-lg border border-border overflow-hidden"},r.createElement("div",{className:"flex items-center gap-3 px-3 py-3"},r.createElement("div",{className:"w-9 h-9 rounded-md bg-emerald-500/10 flex items-center justify-center shrink-0"},r.createElement(W,{name:"file-text",className:"w-4 h-4 text-emerald-600"})),r.createElement("div",{className:"flex-1 min-w-0"},r.createElement("p",{className:"text-sm font-medium truncate"},w.name),r.createElement("p",{className:"text-xs text-muted-foreground"},B(w.size))),r.createElement("div",{className:"flex items-center gap-1 text-xs text-emerald-600 font-medium shrink-0"},r.createElement(W,{name:"check-circle",className:"w-4 h-4"}),y.loaded),r.createElement("button",{type:"button",onClick:()=>{S(null),n==null||n()},className:"w-7 h-7 flex items-center justify-center rounded-full text-muted-foreground hover:bg-red-50 hover:text-red-500 transition-colors",title:y.removeFile},r.createElement(W,{name:"x",className:"w-3.5 h-3.5"}))),r.createElement("div",{className:"px-3 py-2 border-t border-border bg-muted/20"},r.createElement("button",{type:"button",onClick:C,className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-primary transition-colors"},r.createElement(W,{name:"refresh-cw",className:"w-3.5 h-3.5"}),y.uploadAnother))):r.createElement("button",{type:"button",onClick:C,onDragOver:R,onDragLeave:M,onDrop:D,className:N("w-full flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed py-8 px-4 transition-colors cursor-pointer",b?"border-primary/60 bg-primary/8 text-primary":"border-muted-foreground/25 bg-muted/30 text-muted-foreground hover:border-primary/40 hover:bg-primary/5 hover:text-primary/70")},r.createElement(W,{name:s,className:"w-8 h-8"}),r.createElement("span",{className:"text-sm font-medium"},b?y.dropToParse:y.clickOrDrag),r.createElement("span",{className:"text-xs opacity-60"},".csv, .tsv")),p&&r.createElement(et,{message:`Parse error: ${p}`})),m)},Gf=()=>Promise.all([import("@tiptap/react"),import("@tiptap/react/menus"),import("@tiptap/starter-kit"),import("@tiptap/extension-underline"),import("@tiptap/extension-link"),import("@tiptap/extension-image"),import("@tiptap/extension-table"),import("@tiptap/extension-placeholder"),import("@tiptap/extension-character-count")]);let ln=null,Zn=null;const Yf=()=>ln?Promise.resolve(ln):(Zn||(Zn=Gf().then(e=>(ln=e,e))),Zn),Wf=["bold","italic","underline","strike","|","headings","|","bulletList","orderedList","|","blockquote","code","codeBlock","|","link","|","imageUpload","documentUpload","|","table","|","sourceCode","|","undo","redo","clearFormat"],qf=e=>e===!0?{tagBreadcrumb:!0,wordCount:!0,charCount:!1}:e===!1?{}:{tagBreadcrumb:!0,wordCount:!0,charCount:!1,...e},Sr=8,Jf={bold:{icon:"bold",label:"Bold",isActive:e=>e.isActive("bold"),execute:e=>e.chain().focus().toggleBold().run()},italic:{icon:"italic",label:"Italic",isActive:e=>e.isActive("italic"),execute:e=>e.chain().focus().toggleItalic().run()},underline:{icon:"underline",label:"Underline",isActive:e=>e.isActive("underline"),execute:e=>e.chain().focus().toggleUnderline().run()},strike:{icon:"strikethrough",label:"Strikethrough",isActive:e=>e.isActive("strike"),execute:e=>e.chain().focus().toggleStrike().run()},heading1:{icon:"heading-1",label:"Heading 1",isActive:e=>e.isActive("heading",{level:1}),execute:e=>e.chain().focus().toggleHeading({level:1}).run()},heading2:{icon:"heading-2",label:"Heading 2",isActive:e=>e.isActive("heading",{level:2}),execute:e=>e.chain().focus().toggleHeading({level:2}).run()},heading3:{icon:"heading-3",label:"Heading 3",isActive:e=>e.isActive("heading",{level:3}),execute:e=>e.chain().focus().toggleHeading({level:3}).run()},bulletList:{icon:"list",label:"Bullet List",isActive:e=>e.isActive("bulletList"),execute:e=>e.chain().focus().toggleBulletList().run()},orderedList:{icon:"list-ordered",label:"Ordered List",isActive:e=>e.isActive("orderedList"),execute:e=>e.chain().focus().toggleOrderedList().run()},blockquote:{icon:"quote",label:"Blockquote",isActive:e=>e.isActive("blockquote"),execute:e=>e.chain().focus().toggleBlockquote().run()},code:{icon:"code",label:"Inline Code",isActive:e=>e.isActive("code"),execute:e=>e.chain().focus().toggleCode().run()},codeBlock:{icon:"square-code",label:"Code Block",isActive:e=>e.isActive("codeBlock"),execute:e=>e.chain().focus().toggleCodeBlock().run()},link:{icon:"link",label:"Link",isActive:e=>e.isActive("link"),execute:e=>{if(e.isActive("link")){e.chain().focus().unsetLink().run();return}const t=window.prompt("URL");t&&e.chain().focus().setLink({href:t}).run()}},undo:{icon:"undo-2",label:"Undo",execute:e=>e.chain().focus().undo().run()},redo:{icon:"redo-2",label:"Redo",execute:e=>e.chain().focus().redo().run()},clearFormat:{icon:"eraser",label:"Clear Format",execute:e=>e.chain().focus().clearNodes().unsetAllMarks().run()}},Xf=({def:e,editor:t})=>{var a;const n=((a=e.isActive)==null?void 0:a.call(e,t))??!1;return r.createElement("button",{type:"button",title:e.label,onMouseDown:o=>{o.preventDefault(),e.execute(t)},className:N("inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors","hover:bg-muted disabled:cursor-not-allowed disabled:opacity-40",n&&"bg-muted text-primary")},r.createElement(W,{name:e.icon,size:14}))},Zf=[{value:0,label:"Normal",previewClass:"text-sm",execute:e=>e.chain().focus().setParagraph().run()},{value:1,label:"Heading 1",previewClass:"text-2xl font-bold",execute:e=>e.chain().focus().setHeading({level:1}).run()},{value:2,label:"Heading 2",previewClass:"text-xl font-semibold",execute:e=>e.chain().focus().setHeading({level:2}).run()},{value:3,label:"Heading 3",previewClass:"text-lg font-semibold",execute:e=>e.chain().focus().setHeading({level:3}).run()}],Qf=({editor:e})=>{const[t,n]=r.useState(!1),a=r.useRef(null);r.useEffect(()=>{const s=l=>{a.current&&!a.current.contains(l.target)&&n(!1)};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[]);const o=e.isActive("heading",{level:1})?"H1":e.isActive("heading",{level:2})?"H2":e.isActive("heading",{level:3})?"H3":"P";return r.createElement("div",{ref:a,className:"relative"},r.createElement("button",{type:"button",title:"Paragraph style",onMouseDown:s=>{s.preventDefault(),n(l=>!l)},className:"inline-flex h-7 items-center gap-0.5 rounded px-1.5 text-xs font-medium transition-colors hover:bg-muted"},o,r.createElement(W,{name:"chevron-down",size:10})),t&&r.createElement("div",{className:"absolute left-0 top-full z-50 mt-1 w-44 overflow-hidden rounded-md border border-border bg-background shadow-lg"},Zf.map(s=>r.createElement("button",{key:s.value,type:"button",onMouseDown:l=>{l.preventDefault(),s.execute(e),n(!1)},className:N("block w-full px-3 py-1.5 text-left leading-snug transition-colors hover:bg-muted",s.previewClass,s.value===0&&e.isActive("paragraph")&&"bg-muted/60",s.value!==0&&e.isActive("heading",{level:s.value})&&"bg-muted/60")},s.label))))},ep=({editor:e})=>{const[t,n]=r.useState(!1),[a,o]=r.useState(3),[s,l]=r.useState(3),i=r.useRef(null);r.useEffect(()=>{const d=u=>{i.current&&!i.current.contains(u.target)&&n(!1)};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[]);const c=(d,u)=>{e.chain().focus().insertTable({rows:d,cols:u,withHeaderRow:!0}).run(),n(!1)};return r.createElement("div",{ref:i,className:"relative"},r.createElement("button",{type:"button",title:"Insert Table",onMouseDown:d=>{d.preventDefault(),n(u=>!u)},className:"inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted"},r.createElement(W,{name:"table",size:14})),t&&r.createElement("div",{className:"absolute left-0 top-full z-50 mt-1 rounded-md border border-border bg-background p-3 shadow-lg"},r.createElement("div",{className:"grid gap-1.5",style:{gridTemplateColumns:`repeat(${Sr}, 18px)`,width:"fit-content"}},Array.from({length:Sr*Sr},(d,u)=>{const m=Math.floor(u/Sr)+1,f=u%Sr+1,g=m<=a&&f<=s;return r.createElement("button",{key:`${m}-${f}`,type:"button","aria-label":`Insert ${m} by ${f} table`,onMouseEnter:()=>{o(m),l(f)},onFocus:()=>{o(m),l(f)},onMouseDown:y=>{y.preventDefault(),c(m,f)},className:N("h-[18px] w-[18px] rounded-[4px] border transition-colors",g?"border-primary bg-primary/25 shadow-[inset_0_0_0_1px_rgba(59,130,246,0.35)]":"border-border bg-background hover:border-primary/50 hover:bg-muted/60")})})),r.createElement("div",{className:"mt-3 text-center text-xs font-medium text-muted-foreground"},a," x ",s)))},tp=({editor:e})=>{const t=[{icon:"rows-2",label:"Add row above",execute:()=>e.chain().focus().addRowBefore().run()},{icon:"rows-3",label:"Add row below",execute:()=>e.chain().focus().addRowAfter().run()},{icon:"columns-2",label:"Add column left",execute:()=>e.chain().focus().addColumnBefore().run()},{icon:"columns-3",label:"Add column right",execute:()=>e.chain().focus().addColumnAfter().run()},{icon:"minus-square",label:"Delete row",execute:()=>e.chain().focus().deleteRow().run()},{icon:"rectangle-ellipsis",label:"Delete column",execute:()=>e.chain().focus().deleteColumn().run()},{icon:"trash-2",label:"Delete table",execute:()=>e.chain().focus().deleteTable().run()}];return r.createElement("div",{className:"flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg"},t.map((n,a)=>r.createElement(r.Fragment,{key:n.label},a>0&&a!==4&&r.createElement("div",{className:"mx-0.5 h-4 w-px bg-border"}),r.createElement("button",{type:"button",title:n.label,onMouseDown:o=>{o.preventDefault(),n.execute()},className:"inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted"},r.createElement(W,{name:n.icon,size:14})))))},cs=({editor:e,commands:t,sourceMode:n,onImageUpload:a,onDocumentUpload:o,onSourceToggle:s,compact:l})=>{const[,i]=r.useReducer(c=>c+1,0);return r.useEffect(()=>(e.on("selectionUpdate",i),e.on("transaction",i),()=>{e.off("selectionUpdate",i),e.off("transaction",i)}),[e]),r.createElement("div",{className:N("flex flex-wrap items-center gap-0.5 px-2 py-1",!l&&"border-b border-border")},t.map((c,d)=>{if(c==="|")return r.createElement("div",{key:d,className:"mx-0.5 h-4 w-px bg-border"});if(c==="headings")return r.createElement(Qf,{key:c,editor:e});if(c==="table")return r.createElement(ep,{key:c,editor:e});if(c==="imageUpload")return r.createElement("button",{key:c,type:"button",title:"Upload Image",onMouseDown:m=>{m.preventDefault(),a()},className:"inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted"},r.createElement(W,{name:"image",size:14}));if(c==="documentUpload")return r.createElement("button",{key:c,type:"button",title:"Upload Document",onMouseDown:m=>{m.preventDefault(),o()},className:"inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted"},r.createElement(W,{name:"file-up",size:14}));if(c==="sourceCode")return r.createElement("button",{key:c,type:"button",title:"Source Code",onMouseDown:m=>{m.preventDefault(),s()},className:N("inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors hover:bg-muted",n&&"bg-muted text-primary")},r.createElement(W,{name:"code",size:14}));const u=Jf[c];return u?r.createElement(Xf,{key:c,def:u,editor:e}):null}))},rp=e=>{try{const{$anchor:t}=e.state.selection,n=[];for(let a=t.depth;a>=0;a--){const o=t.node(a).type.name;o!=="doc"&&n.unshift(o)}return n}catch{return[]}},np=({editor:e,config:t})=>{const[n,a]=r.useState(0);r.useEffect(()=>{const l=()=>a(i=>i+1);return e.on("selectionUpdate",l),e.on("transaction",l),()=>{e.off("selectionUpdate",l),e.off("transaction",l)}},[e]);const o=t.tagBreadcrumb?rp(e):[],s=e.storage.characterCount;return r.createElement("div",{className:"flex items-center gap-3 border-t border-border px-3 py-1 text-xs text-muted-foreground select-none"},t.tagBreadcrumb&&o.length>0&&r.createElement("div",{className:"flex items-center gap-1 font-mono"},o.map((l,i)=>r.createElement(r.Fragment,{key:i},i>0&&r.createElement("span",{className:"opacity-40"},"›"),r.createElement("span",null,l)))),r.createElement("div",{className:"ml-auto flex items-center gap-3"},t.wordCount&&s&&r.createElement("span",null,s.words()," words"),t.charCount&&s&&r.createElement("span",null,s.characters()," chars")))},Zi=({srcset:e})=>{const t=e.split(",").map(n=>n.trim()).map(n=>{const[a,o]=n.split(" ");return{src:a,width:parseInt(o,10)}}).filter(n=>n.src&&!isNaN(n.width));return t.length?r.createElement("div",{className:"flex flex-col gap-1.5"},r.createElement("p",{className:"text-xs font-medium text-muted-foreground"},"Responsive variants ",r.createElement("span",{className:"font-normal opacity-60"},"(",t.length," generated)")),r.createElement("div",{className:"flex gap-1.5"},t.map(n=>r.createElement("a",{key:n.width,href:n.src,target:"_blank",rel:"noopener noreferrer",className:"group relative flex-1 overflow-hidden rounded border border-border",style:{backgroundImage:"repeating-conic-gradient(#e4e4e4 0% 25%, #f5f5f5 0% 50%)",backgroundSize:"8px 8px"}},r.createElement("img",{src:n.src,alt:`${n.width}w`,className:"h-12 w-full object-contain transition-opacity group-hover:opacity-80"}),r.createElement("span",{className:"absolute bottom-0.5 left-0.5 rounded bg-black/60 px-1 py-0.5 text-[9px] font-mono leading-none text-white"},n.width,"px"),r.createElement("div",{className:"absolute inset-0 flex items-center justify-center opacity-0 transition-opacity group-hover:opacity-100"},r.createElement("div",{className:"rounded-md bg-black/60 p-1"},r.createElement(W,{name:"external-link",size:11,className:"text-white"}))))))):null},ap=({items:e,onInsertAll:t,onCropSave:n,onCancel:a})=>{const[o,s]=r.useState(0),[l,i]=r.useState(()=>e.map(h=>({alt:h.defaultAlt,href:"",target:"_blank",enabled:!0}))),[c,d]=r.useState(!1),u=r.useRef(null);r.useEffect(()=>{var h;(h=u.current)==null||h.focus()},[o]),r.useEffect(()=>{i(h=>{if(e.length<=h.length)return h;const b=e.slice(h.length).map(k=>({alt:k.defaultAlt,href:"",target:"_blank",enabled:!0}));return[...h,...b]})},[e.length]);const m=e.length,f=e[o]??e[0],g=l[o]??{alt:"",href:"",target:"_blank",enabled:!0},y=l.filter(h=>h.enabled).length,p=h=>i(b=>b.map((k,w)=>w===o?{...k,...h}:k));return r.createElement(r.Fragment,null,r.createElement(or,{title:m===1?"Insert image":"Insert images",onClose:a,size:"md",footer:r.createElement("div",{className:"flex w-full items-center justify-between"},r.createElement("label",{className:"flex cursor-pointer select-none items-center gap-2 text-sm"},r.createElement("input",{type:"checkbox",checked:g.enabled,onChange:h=>p({enabled:h.target.checked}),className:"h-4 w-4 rounded accent-primary"}),"Include"),r.createElement("div",{className:"flex gap-2"},r.createElement("button",{type:"button",onClick:a,className:"h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted"},"Cancel"),r.createElement("button",{type:"button",onClick:()=>t(l),disabled:y===0,className:"h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-50"},m===1?"Insert":`Insert (${y})`)))},m>1&&r.createElement("div",{className:"mb-3 flex items-center justify-between gap-3"},r.createElement("div",{className:"flex gap-1.5 overflow-x-auto pb-0.5"},e.map((h,b)=>{var k;return r.createElement("button",{key:b,type:"button",onClick:()=>s(b),title:h.fileProps.fileName,className:N("relative h-12 w-12 flex-shrink-0 overflow-hidden rounded-md border-2 transition-all",b===o?"border-primary shadow-md":"border-transparent opacity-50 hover:opacity-90",!((k=l[b])!=null&&k.enabled)&&"opacity-20 grayscale")},r.createElement("img",{src:h.preview,alt:"",className:"h-full w-full object-cover"}))})),r.createElement("div",{className:"flex flex-shrink-0 items-center gap-0.5"},r.createElement("button",{type:"button",onClick:()=>s(h=>Math.max(0,h-1)),disabled:o===0,className:"flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30"},r.createElement(W,{name:"chevron-left",size:14})),r.createElement("span",{className:"w-10 text-center text-xs tabular-nums text-muted-foreground"},o+1," / ",m),r.createElement("button",{type:"button",onClick:()=>s(h=>Math.min(e.length-1,h+1)),disabled:o>=e.length-1,className:"flex h-7 w-7 items-center justify-center rounded hover:bg-muted disabled:opacity-30"},r.createElement(W,{name:"chevron-right",size:14})))),r.createElement("div",{className:N("group relative flex min-h-[160px] items-center justify-center overflow-hidden rounded-lg transition-opacity","[background-image:repeating-conic-gradient(#e4e4e4_0%_25%,#f5f5f5_0%_50%)]","dark:[background-image:repeating-conic-gradient(#2a2a2a_0%_25%,#343434_0%_50%)]","[background-size:16px_16px]",!g.enabled&&"opacity-40")},r.createElement("img",{src:f.preview,alt:"",className:"max-h-[160px] max-w-full object-contain"}),r.createElement("div",{className:"absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100"},r.createElement("a",{href:f.preview,target:"_blank",rel:"noopener noreferrer",title:"Open original",className:"flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80"},r.createElement(W,{name:"external-link",size:13})),r.createElement("button",{type:"button",title:"Crop",onClick:()=>d(!0),className:"flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80"},r.createElement(W,{name:"crop",size:13})))),r.createElement("p",{className:"mt-1.5 truncate font-mono text-xs text-muted-foreground"},f.fileProps.fileName),f.fileProps.srcset&&r.createElement(Zi,{srcset:f.fileProps.srcset}),r.createElement("div",{className:"mt-3 flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Alt text ",r.createElement("span",{className:"font-normal opacity-60"},"(accessibility & SEO)")),r.createElement("input",{ref:u,type:"text",value:g.alt,onChange:h=>p({alt:h.target.value}),placeholder:"E.g. Team photo at company retreat",className:"h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring"})),r.createElement("div",{className:"mt-2 flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Link URL ",r.createElement("span",{className:"font-normal opacity-60"},"(optional)")),r.createElement("div",{className:"flex gap-1.5"},r.createElement("input",{type:"url",value:g.href,onChange:h=>p({href:h.target.value}),placeholder:"https://...",className:"h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring"}),r.createElement("select",{value:g.target,onChange:h=>p({target:h.target.value}),disabled:!g.href,className:"h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40"},r.createElement("option",{value:"_blank"},"New tab"),r.createElement("option",{value:"_self"},"Same tab"))))),c&&r.createElement(Tn,{src:f.preview,mode:"modal",title:`Crop — ${f.fileProps.fileName}`,onClose:()=>d(!1),onSave:h=>{n(o,h),d(!1)}}))},op=({state:e,onConfirm:t,onCancel:n})=>{const[a,o]=r.useState(e.attrs.src??""),[s,l]=r.useState(e.attrs.alt??""),[i,c]=r.useState(e.attrs.href??""),[d,u]=r.useState(e.attrs.target??"_blank"),[m,f]=r.useState(!1),g=r.useRef(null);r.useEffect(()=>{var p;(p=g.current)==null||p.focus()},[]);const y=e.attrs.srcset;return r.createElement(r.Fragment,null,r.createElement(or,{title:"Edit image",onClose:n,size:"sm",footer:r.createElement("div",{className:"flex justify-end gap-2"},r.createElement("button",{type:"button",onClick:n,className:"h-8 rounded-md px-3 text-sm transition-colors hover:bg-muted"},"Cancel"),r.createElement("button",{type:"button",onClick:()=>t({src:a,alt:s,href:i,target:d,enabled:!0}),className:"h-8 rounded-md bg-primary px-3 text-sm text-primary-foreground transition-colors hover:bg-primary/90"},"Save"))},a&&r.createElement("div",{className:"group relative mb-3 overflow-hidden rounded-lg bg-muted/40"},r.createElement(ja,{src:a,fit:"contain",height:140,wrapperClassName:"w-full",className:"w-full"}),r.createElement("div",{className:"absolute right-2 top-2 flex gap-1 opacity-0 transition-opacity group-hover:opacity-100"},r.createElement("a",{href:a,target:"_blank",rel:"noopener noreferrer",title:"Open original",className:"flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80"},r.createElement(W,{name:"external-link",size:13})),r.createElement("button",{type:"button",title:"Crop",onClick:()=>f(!0),className:"flex h-7 w-7 items-center justify-center rounded-md bg-black/60 text-white backdrop-blur-sm transition-colors hover:bg-black/80"},r.createElement(W,{name:"crop",size:13})))),y&&r.createElement(Zi,{srcset:y}),r.createElement("div",{className:"flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Image URL ",r.createElement("span",{className:"font-normal opacity-60"},"(path or https://…)")),r.createElement("input",{type:"url",value:a,onChange:p=>o(p.target.value),placeholder:"https://example.com/image.jpg",className:"h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring"})),r.createElement("div",{className:"mt-2 flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Alt text ",r.createElement("span",{className:"font-normal opacity-60"},"(accessibility & SEO)")),r.createElement("input",{ref:g,type:"text",value:s,onChange:p=>l(p.target.value),placeholder:"E.g. Team photo at company retreat",className:"h-8 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring"})),r.createElement("div",{className:"mt-2 flex flex-col gap-1"},r.createElement("label",{className:"text-xs font-medium text-muted-foreground"},"Link URL ",r.createElement("span",{className:"font-normal opacity-60"},"(optional)")),r.createElement("div",{className:"flex gap-1.5"},r.createElement("input",{type:"url",value:i,onChange:p=>c(p.target.value),placeholder:"https://...",className:"h-8 min-w-0 flex-1 rounded-md border border-input bg-background px-2.5 text-sm outline-none focus:ring-1 focus:ring-ring"}),r.createElement("select",{value:d,onChange:p=>u(p.target.value),disabled:!i,className:"h-8 rounded-md border border-input bg-background px-2 text-xs outline-none focus:ring-1 focus:ring-ring disabled:opacity-40"},r.createElement("option",{value:"_blank"},"New tab"),r.createElement("option",{value:"_self"},"Same tab"))))),m&&r.createElement(Tn,{src:a,mode:"modal",title:"Crop image",onClose:()=>f(!1),onSave:p=>{o(p),f(!1)}}))},sp=({modules:e,name:t,value:n,outputFormat:a,placeholder:o,disabled:s,toolbar:l,toolbarCommands:i,statusBar:c,minHeight:d,maxHeight:u,imageUpload:m,documentUpload:f,hasError:g,className:y,onEditorChange:p})=>{const{useEditor:h,EditorContent:b}=e[0],{BubbleMenu:k}=e[1],w=e[2].default,S=e[3].default,I=e[4].default,x=e[5].default.extend({addAttributes(){var J;return{...((J=this.parent)==null?void 0:J.call(this))??{},srcset:{default:null},sizes:{default:null},loading:{default:null},decoding:{default:null},href:{default:null},target:{default:null}}},renderHTML({HTMLAttributes:J}){const{href:ee,target:te,...K}=J,Y=this.options.HTMLAttributes??{},Q=["img",Object.fromEntries(Object.entries({...Y,...K}).filter(([,ne])=>ne!=null))];return ee?["a",{"data-href":ee,"data-target":te??"_blank",rel:"noopener noreferrer"},Q]:Q}}),{Table:v,TableRow:R,TableHeader:M,TableCell:D}=e[6],C=e[7].default,B=e[8].default,[E,_]=r.useState(!1),[F,O]=r.useState(""),[V,j]=r.useState([]),[z,P]=r.useState(null),[,$]=r.useReducer(J=>J+1,0),T=r.useRef(null),L=(m==null?void 0:m.srcsetWidths)!==void 0?m.srcsetWidths:[400,800],U=Pn(),de=ao({uploadPath:m==null?void 0:m.path,srcsetWidths:L,onFileReady:J=>{const ee=J.fileName.replace(/\.[^/.]+$/,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim().replace(/^(.)/,K=>K.toUpperCase()),te=J.url||(J.base64?`data:${J.type};base64,${J.base64}`:"");j(K=>[...K,{fileProps:J,preview:te,defaultAlt:ee}])}}),Z=In({minHeight:d,maxHeight:u,paddingOffset:16}),q=h({extensions:[w,S,I.configure({openOnClick:!1,HTMLAttributes:{target:null,rel:"noopener noreferrer nofollow"}}),x.configure({allowBase64:!0}),v.configure({resizable:!0}),R,M,D,C.configure({placeholder:o??""}),B],content:n||"",editable:!s,editorProps:{attributes:{style:`min-height: ${Z.adjustedMinHeight}px`},handleClick(J,ee,te){var Y;if(te.ctrlKey||te.metaKey){const Q=J.state.doc.resolve(ee).marks().find(ne=>ne.type.name==="link");if(Q!=null&&Q.attrs.href)return window.open(Q.attrs.href,"_blank","noopener,noreferrer"),!0}const K=te.target;if(K.tagName==="IMG")try{const X=J.posAtDOM(K,0),Q=J.state.doc.nodeAt(X);if((Q==null?void 0:Q.type.name)==="image"){const ne={...Q.attrs};if(!ne.href){const le=(Y=Q.marks)==null?void 0:Y.find(Se=>Se.type.name==="link");le&&(le.attrs.href&&(ne.href=le.attrs.href),le.attrs.target&&(ne.target=le.attrs.target))}return P({pos:X,attrs:ne}),!0}}catch{}return!1}},onUpdate:({editor:J})=>{const ee=a==="json"?JSON.stringify(J.getJSON()):a==="text"?J.getText():J.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,'<a$1href="$2"').replace(/data-target="([^"]*?)"/g,'target="$1"');p(ee)}}),se=r.useRef(n);r.useEffect(()=>{if(!q||n===se.current)return;se.current=n;const J=a==="json"?JSON.stringify(q.getJSON()):a==="text"?q.getText():q.getHTML().replace(/<a([^>]*?)data-href="([^"]*?)"/g,'<a$1href="$2"').replace(/data-target="([^"]*?)"/g,'target="$1"');n!==J&&q.commands.setContent(a==="json"&&n?JSON.parse(n):n||"")},[n,q,a]),r.useEffect(()=>{if(q)return q.view.dom.style.minHeight=`${Z.adjustedMinHeight}px`,q.on("selectionUpdate",$),()=>{q.off("selectionUpdate",$)}},[q,Z.adjustedMinHeight]);const re=()=>{q&&(E?q.commands.setContent(F):O(q.getHTML()),_(J=>!J))},ye=J=>new Promise(ee=>{const te=new FileReader;te.onload=K=>{var Y;return ee((Y=K.target)==null?void 0:Y.result)},te.readAsDataURL(J)}),he=async J=>{if(!q)return;const ee=(f==null?void 0:f.maxBytes)??20971520;for(const te of J){if(te.size>ee){alert(`"${te.name}" exceeds the ${Math.round(ee/1048576)} MB limit.`);continue}let K;if(U&&(f!=null&&f.path))try{K=await U.upload(te,`${f.path}/${te.name}`)??await ye(te)}catch{K=await ye(te)}else K=await ye(te);const Y=te.size<1048576?`${Math.round(te.size/1024)} KB`:`${(te.size/1048576).toFixed(1)} MB`;q.chain().focus().insertContent([{type:"text",marks:[{type:"link",attrs:{href:K,target:"_blank",rel:"noopener noreferrer"}}],text:`📎 ${te.name} (${Y})`},{type:"text",text:" "}]).run()}},fe=J=>{if(!q)return;const ee=[];J.forEach(({alt:te,href:K,target:Y,enabled:X},Q)=>{if(!X)return;const ne=V[Q];if(!ne)return;de.handleRemove(ne.fileProps.key);const le=ne.fileProps.url||ne.preview,Se={alt:te||null,href:K||null,target:K?Y||"_blank":null},ge=ne.fileProps.srcset?{...Se,src:le,srcset:ne.fileProps.srcset,sizes:ne.fileProps.sizes??"(max-width: 640px) 100vw, 800px",loading:"lazy",decoding:"async"}:{...Se,src:le};ee.push({type:"image",attrs:ge})}),ee.length&&q.chain().focus().insertContent(ee).run(),j([])},_e=r.useCallback(async(J,ee)=>{let te="image.jpg";if(j(K=>{var Y;return te=((Y=K[J])==null?void 0:Y.fileProps.fileName)??"image.jpg",K.map((X,Q)=>Q===J?{...X,preview:ee,fileProps:{...X.fileProps,url:ee,srcset:"",sizes:""}}:X)}),!!L.length)try{const{variants:K,naturalWidth:Y}=await eo(ee,L),X=U&&(m!=null&&m.path)?await to(K,U,m.path,te):K.map(ge=>({url:ge.localUrl,width:ge.width})),Q=await fetch(ee).then(ge=>ge.blob()),ne=URL.createObjectURL(Q),le=[...X,{url:ne,width:Y}],Se=ro(le);j(ge=>ge.map((Ae,He)=>He===J?{...Ae,fileProps:{...Ae.fileProps,srcset:Se,sizes:"(max-width: 640px) 100vw, 800px"}}:Ae))}catch{}},[L,U,m==null?void 0:m.path]),ue=({src:J,alt:ee,href:te,target:K})=>{if(!q||!z)return;const{pos:Y,attrs:X}=z,Q=q.state.doc.nodeAt(Y);if((Q==null?void 0:Q.type.name)==="image"){const{tr:ne,schema:le}=q.state,Se=J!==void 0&&J!==X.src,ge={...X,...Se?{src:J||null,srcset:null,sizes:null}:{},alt:ee||null,href:te||null,target:te?K||"_blank":null},Ae=Q.marks??[],He=Ae.some(Ce=>Ce.type.name==="link");let oe=Ae;te?He||(oe=[...Ae,le.marks.link.create({href:te,target:K||"_blank"})]):oe=Ae.filter(Ce=>Ce.type.name!=="link"),ne.setNodeMarkup(Y,null,ge,oe),q.view.dispatch(ne)}P(null)},ke=i.filter(J=>J!=="imageUpload"&&J!=="documentUpload"&&J!=="sourceCode");return r.createElement(r.Fragment,null,V.length>0&&r.createElement(ap,{items:V,onInsertAll:fe,onCropSave:_e,onCancel:()=>{V.forEach(J=>de.handleRemove(J.fileProps.key)),j([])}}),z&&r.createElement(op,{state:z,onConfirm:ue,onCancel:()=>P(null)}),r.createElement("div",{className:N("rounded-md border border-input bg-background shadow-sm transition-colors","focus-within:ring-1 focus-within:ring-ring",g&&"border-destructive focus-within:ring-destructive/20",s&&"cursor-not-allowed opacity-50",y)},l==="fixed"&&q&&r.createElement(cs,{editor:q,commands:i,sourceMode:E,onImageUpload:de.handleUpload,onDocumentUpload:()=>{var J;return(J=T.current)==null?void 0:J.click()},onSourceToggle:re}),l==="floating"&&q&&r.createElement(k,{editor:q},r.createElement("div",{className:"flex items-center gap-0.5 rounded-md border border-border bg-background px-1 py-0.5 shadow-lg"},r.createElement(cs,{editor:q,commands:ke,sourceMode:E,onImageUpload:de.handleUpload,onDocumentUpload:()=>{var J;return(J=T.current)==null?void 0:J.click()},onSourceToggle:re,compact:!0}))),q&&!E&&r.createElement(k,{editor:q,shouldShow:({editor:J,from:ee,to:te})=>ee!==te||!J.isActive("link")?!1:!!J.getAttributes("link").href,options:{placement:"bottom-start",offset:6}},(()=>{const J=q.getAttributes("link").href??"";return r.createElement("div",{className:"flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 shadow-md"},r.createElement(W,{name:"link",size:12,className:"shrink-0 text-muted-foreground"}),r.createElement("a",{href:J,target:"_blank",rel:"noopener noreferrer",className:"max-w-[220px] truncate text-xs text-primary underline"},J),r.createElement("div",{className:"mx-0.5 h-3 w-px bg-border"}),r.createElement("button",{type:"button",title:"Edit link",onMouseDown:ee=>{ee.preventDefault();const te=window.prompt("URL",J);te?q.chain().focus().setLink({href:te}).run():te===""&&q.chain().focus().unsetLink().run()},className:"inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted"},r.createElement(W,{name:"pencil",size:11})),r.createElement("button",{type:"button",title:"Remove link",onMouseDown:ee=>{ee.preventDefault(),q.chain().focus().unsetLink().run()},className:"inline-flex h-5 w-5 items-center justify-center rounded transition-colors hover:bg-muted"},r.createElement(W,{name:"unlink",size:11})))})()),q&&!E&&r.createElement(k,{editor:q,shouldShow:({editor:J})=>J.isActive("table"),options:{placement:"top-start",offset:8}},r.createElement(tp,{editor:q})),E?r.createElement("textarea",{"aria-label":`${t} source`,className:"w-full resize-none bg-background px-3 py-2 font-mono text-xs text-foreground outline-none",style:{minHeight:Z.adjustedMinHeight,maxHeight:u,overflowY:"auto"},value:F,onChange:J=>O(J.target.value)}):r.createElement("div",{style:Z.wrapperStyle,className:N("w-full px-3 py-2 text-sm","[&_.ProseMirror]:outline-none","[&_.ProseMirror_p]:my-1","[&_.ProseMirror_h1]:my-2 [&_.ProseMirror_h1]:text-2xl [&_.ProseMirror_h1]:font-bold","[&_.ProseMirror_h2]:my-2 [&_.ProseMirror_h2]:text-xl [&_.ProseMirror_h2]:font-semibold","[&_.ProseMirror_h3]:my-1 [&_.ProseMirror_h3]:text-lg [&_.ProseMirror_h3]:font-semibold","[&_.ProseMirror_ul]:list-disc [&_.ProseMirror_ul]:pl-6","[&_.ProseMirror_ol]:list-decimal [&_.ProseMirror_ol]:pl-6","[&_.ProseMirror_blockquote]:my-2 [&_.ProseMirror_blockquote]:border-l-4 [&_.ProseMirror_blockquote]:border-border [&_.ProseMirror_blockquote]:pl-4 [&_.ProseMirror_blockquote]:text-muted-foreground","[&_.ProseMirror_code]:rounded [&_.ProseMirror_code]:bg-muted [&_.ProseMirror_code]:px-1 [&_.ProseMirror_code]:font-mono [&_.ProseMirror_code]:text-xs","[&_.ProseMirror_pre]:my-2 [&_.ProseMirror_pre]:overflow-x-auto [&_.ProseMirror_pre]:rounded [&_.ProseMirror_pre]:bg-muted [&_.ProseMirror_pre]:p-3","[&_.ProseMirror_table]:w-full [&_.ProseMirror_table]:border-collapse","[&_.ProseMirror_td]:border [&_.ProseMirror_td]:border-border [&_.ProseMirror_td]:px-2 [&_.ProseMirror_td]:py-1","[&_.ProseMirror_th]:border [&_.ProseMirror_th]:border-border [&_.ProseMirror_th]:bg-muted [&_.ProseMirror_th]:px-2 [&_.ProseMirror_th]:py-1 [&_.ProseMirror_th]:font-semibold","[&_.ProseMirror_a]:text-primary [&_.ProseMirror_a]:underline [&_.ProseMirror_a]:pointer-events-none","[&_.ProseMirror_a_img]:pointer-events-auto","[&_.ProseMirror_.is-editor-empty:first-child::before]:pointer-events-none [&_.ProseMirror_.is-editor-empty:first-child::before]:float-left [&_.ProseMirror_.is-editor-empty:first-child::before]:h-0 [&_.ProseMirror_.is-editor-empty:first-child::before]:text-muted-foreground [&_.ProseMirror_.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]")},r.createElement(b,{editor:q})),c&&q&&r.createElement(np,{editor:q,config:c}),r.createElement("input",{ref:de.fileInputRef,type:"file",multiple:!0,accept:(m==null?void 0:m.accept)??"image/*",className:"hidden",onChange:J=>{const ee=(m==null?void 0:m.maxBytes)??10485760,K=Array.from(J.target.files??[]).find(Y=>Y.size>ee);if(K){alert(`"${K.name}" exceeds the ${Math.round(ee/1048576)} MB limit.`),J.target.value="";return}de.handleUploadChange(J)}}),r.createElement("input",{ref:T,type:"file",multiple:!0,accept:(f==null?void 0:f.accept)??".pdf,.doc,.docx,.txt,.csv",className:"hidden",onChange:J=>{const ee=Array.from(J.target.files??[]);ee.length&&he(ee),J.target.value=""}})))},lp=({name:e,onChange:t=void 0,defaultValue:n=void 0,label:a=void 0,required:o=!1,placeholder:s=void 0,disabled:l=!1,feedback:i=void 0,toolbar:c="fixed",toolbarCommands:d=Wf,outputFormat:u="html",statusBar:m=!1,minHeight:f=120,maxHeight:g=void 0,imageUpload:y=void 0,documentUpload:p=void 0,labelClassName:h=void 0,inheritWrapperClassName:b=!0,wrapperClassName:k=void 0,className:w=void 0,before:S=void 0,after:I=void 0,validator:A=void 0})=>{const{value:x,handleChange:v,formWrapClass:R}=Ye({name:e,onChange:t,wrapperClassName:k,defaultValue:n,inheritWrapperClassName:b}),M=ut(e,{required:o,label:a,validator:A}),D=r.useId(),[C,B]=r.useState(ln);r.useEffect(()=>{C||Yf().then(B)},[C]);const E=r.useCallback(F=>{v==null||v({target:{name:e,value:F}})},[v,e]),_=m===!1?!1:qf(m);return r.createElement(pe,{className:R},a&&r.createElement(tt,{label:a,required:o,htmlFor:D,className:h}),r.createElement("div",{className:N(S||I?Rt:"")},S&&r.createElement("span",{className:N(nr,"rounded-l-md rounded-r-none border-r-0")},S),r.createElement("div",{className:"min-w-0 flex-1"},C?r.createElement(sp,{modules:C,name:e,value:x??"",outputFormat:u,placeholder:s,disabled:l,toolbar:c,toolbarCommands:d,statusBar:_,minHeight:f,maxHeight:g,imageUpload:y,documentUpload:p,hasError:!!M,className:w,onEditorChange:E}):r.createElement("div",{className:N("rounded-md border border-input bg-muted/30 shadow-sm",M&&"border-destructive"),style:{minHeight:f},"aria-busy":"true","aria-label":a})),I&&r.createElement("span",{className:N(nr,"rounded-l-none rounded-r-md border-l-0")},I)),M?r.createElement(et,{message:M}):i&&r.createElement("div",{className:Et},i))},ca=({label:e,value:t,icon:n,className:a,onSelect:o,active:s})=>r.createElement("button",{type:"button",role:"menuitem",className:N("flex w-full cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground",s&&"bg-accent text-accent-foreground",a),onClick:()=>o==null?void 0:o({label:e,value:t,icon:n}),onPointerDown:l=>l.preventDefault()},n&&r.createElement(W,{name:n,size:16,className:"shrink-0 text-muted-foreground"}),r.createElement("span",{className:"min-w-0 truncate"},e)),Qi=({children:e,className:t})=>r.createElement("div",{className:N("px-2 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground",t)},e),ec=({className:e})=>r.createElement("div",{className:N("-mx-1 my-1 h-px bg-border",e)}),ip=new Set([Qi,ec]),Rn=({trigger:e,searchable:t=!1,onSelect:n,children:a,before:o,after:s,wrapperClassName:l,className:i})=>{const c=r.useId(),d=r.useRef(null),u=r.useRef(null),m=r.useRef(null),[f,g]=r.useState(!1),[y,p]=r.useState(""),[h,b]=r.useState(null),[k,w]=r.useState(0),S=r.useMemo(()=>{const O=[];return r.Children.forEach(a,V=>{r.isValidElement(V)&&V.type===ca&&O.push({label:V.props.label,value:V.props.value,icon:V.props.icon})}),O},[a]),I=r.useMemo(()=>{if(!t||!y)return S;const O=y.toLowerCase();return S.filter(V=>V.label.toLowerCase().includes(O)||V.value.toLowerCase().includes(O))},[S,t,y]),A=r.useCallback(O=>{const V=O.selectionStart??0,j=O.value.lastIndexOf(e,V-1);if(j===-1)return null;const z=window.getComputedStyle(O),P=O.getBoundingClientRect(),$=parseFloat(z.lineHeight)||20,T=parseFloat(z.borderLeftWidth)||0,L=parseFloat(z.paddingLeft)||0,U=O.value.slice(0,V);let de=0;for(let he=V-1;he>=0;he--)U[he]===`
14
+ `&&de++;const Z=U.lastIndexOf(`
15
+ `,j-1)+1,q=O.value.slice(Z,j),se=document.createElement("span");se.style.all="initial";const re=["fontFamily","fontSize","fontWeight","fontStyle","fontVariant","letterSpacing","wordSpacing","lineHeight","textAlign","textIndent","textRendering","textTransform","whiteSpace","wordBreak","wordWrap"];for(const he of re){const fe=z.getPropertyValue(he);fe&&se.style.setProperty(he,fe)}se.style.whiteSpace="pre",se.style.position="absolute",se.style.visibility="hidden",se.style.pointerEvents="none",se.style.margin="0",se.style.padding="0",se.style.border="0",se.textContent=q,document.body.appendChild(se);const ye=se.offsetWidth;return document.body.removeChild(se),{left:P.left+T+L+ye-O.scrollLeft,top:P.top+(de+1)*$-O.scrollTop}},[e]),x=r.useCallback(O=>{const V=O.selectionStart??0,j=O.value;return j.lastIndexOf(e,V-1)===-1?null:{textBeforeCaret:j.slice(0,V),textAfterCaret:j.slice(V),insert:P=>{const $=O.selectionStart??j.length,T=O.selectionEnd??$,L=j.slice(0,$)+P+j.slice(T);O.value=L,O.dispatchEvent(new Event("input",{bubbles:!0})),O.selectionStart=O.selectionEnd=$+P.length,O.focus()},replace:(P,$,T)=>{const L=j.slice(0,P)+T+j.slice($);O.value=L,O.dispatchEvent(new Event("input",{bubbles:!0})),O.selectionStart=O.selectionEnd=P+T.length,O.focus()}}},[e]),v=r.useCallback(()=>{g(!1),p(""),b(null),w(0)},[]),R=r.useCallback(O=>{const V=m.current;if(V){if(n){const j=x(V);j&&n(O,j)}else{const j=V.selectionStart??V.value.length,z=V.value,P=z.lastIndexOf(e,j-1);if(P!==-1){const $=z.slice(0,P),T=z.slice(j);V.value=$+O.value+T,V.dispatchEvent(new Event("input",{bubbles:!0})),V.selectionStart=V.selectionEnd=$.length+O.value.length,V.focus()}}v()}},[n,x,e,v]),M=r.useRef(f),D=r.useRef(k),C=r.useRef(I),B=r.useRef(v),E=r.useRef(null);M.current=f,D.current=k,C.current=I,B.current=v,E.current=R,r.useEffect(()=>{var z;const O=(z=d.current)==null?void 0:z.querySelectorAll("textarea, input");if(!O||O.length===0)return;m.current=O[0];const V=P=>{var L;if(!M.current)return;const $=P,T=P.target;switch($.key){case"ArrowDown":$.preventDefault(),w(U=>(U+1)%C.current.length);break;case"ArrowUp":$.preventDefault(),w(U=>(U-1+C.current.length)%C.current.length);break;case"Enter":case"Tab":if(C.current.length===0)break;$.preventDefault(),(L=E.current)==null||L.call(E,C.current[D.current]??C.current[0]);break;case"Escape":$.preventDefault(),B.current();break;default:if(t){const U=T.selectionStart??0,de=T.value.slice(0,U).split(e);p(de[de.length-1]??"")}break}},j=P=>{if(M.current||P.key!==e)return;const T=P.target;m.current=T;const L=T.selectionStart??0;if(L>0&&T.value[L-1]===e){p(""),w(0);const U=A(T);U&&(b(U),g(!0))}};return O.forEach(P=>{P.addEventListener("keydown",V),P.addEventListener("keyup",j)}),()=>{O.forEach(P=>{P.removeEventListener("keydown",V),P.removeEventListener("keyup",j)})}},[e,t,A]),r.useEffect(()=>{if(!f)return;const O=V=>{var $,T;const j=V.target,z=($=d.current)==null?void 0:$.contains(j),P=(T=u.current)==null?void 0:T.contains(j);!z&&!P&&v()};return document.addEventListener("pointerdown",O),()=>document.removeEventListener("pointerdown",O)},[f,v]);const{domChildren:_,renderedItems:F}=r.useMemo(()=>{const O=[],V=[];return r.Children.forEach(a,j=>{if(!r.isValidElement(j)){O.push(j);return}if(j.type===ca){const z=j.props,P=S.findIndex(T=>T.label===z.label&&T.value===z.value);if(!(!t||!y||I.some(T=>T.label===z.label))){V.push(null);return}V.push(r.cloneElement(j,{onSelect:T=>{var L;return(L=E.current)==null?void 0:L.call(E,T)},active:P===k}));return}if(ip.has(j.type)){V.push(j);return}O.push(j)}),{domChildren:O,renderedItems:V}},[a,t,y,I,S,k]);return r.createElement(r.Fragment,null,r.createElement("div",{ref:d,className:N(i,l)},o,_,s),f&&h&&er.createPortal(r.createElement("div",{ref:u,role:"menu",className:"fixed z-[200] min-w-44 overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md outline-none",style:{top:h.top,left:h.left,maxHeight:240},id:c},F,I.length===0&&t&&y&&r.createElement("div",{className:"px-2 py-1.5 text-xs text-muted-foreground"},"No matches")),document.body))};Rn.Item=ca;Rn.Heading=Qi;Rn.Separator=ec;function cp(e){return e?typeof e=="string"?r.createElement(W,{name:e,size:16}):e:null}function dp({title:e=void 0,description:t=void 0,meta:n=void 0,badge:a=void 0,icon:o=void 0,trailing:s=void 0,footer:l=void 0,children:i=void 0,href:c=void 0,external:d=!1,active:u=!1,disabled:m=!1,dashed:f=!1,compact:g=!1,align:y="start",onClick:p=void 0,before:h=void 0,after:b=void 0,wrapperClassName:k=void 0,className:w=void 0,titleClassName:S=void 0,descriptionClassName:I=void 0,metaClassName:A=void 0,badgeClassName:x=void 0,leadingClassName:v=void 0,bodyClassName:R=void 0,headerClassName:M=void 0,trailingClassName:D=void 0,footerClassName:C=void 0,style:B=void 0,motion:E=void 0}){var L;const _=me(),F=!!c||!!p,O=Zr(m||!F,B,E??((L=_.ListCard.motion)==null?void 0:L.press)??"press"),V=cp(o),j=l??i,z=N("flex w-full gap-3 rounded-xl border border-border/60 bg-background p-4 text-left transition-[background-color,border-color,box-shadow,color] duration-150",y==="center"?"items-center":"items-start",F&&!m&&"cursor-pointer",_.ListCard.className,u?_.ListCard.activeClassName:_.ListCard.inactiveClassName,m&&_.ListCard.disabledClassName,f&&_.ListCard.dashedClassName,g&&_.ListCard.compactClassName,w),P=r.createElement(r.Fragment,null,V?r.createElement("div",{className:N("mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",y==="center"&&"mt-0",_.ListCard.leadingClassName,v)},V):null,r.createElement("div",{className:N("min-w-0 flex-1",_.ListCard.bodyClassName,R)},e||a?r.createElement("div",{className:N("flex items-center gap-2",_.ListCard.headerClassName,M)},e?r.createElement("div",{className:N("min-w-0 flex-1 truncate text-sm font-semibold text-foreground",_.ListCard.titleClassName,S)},e):r.createElement("div",{className:"flex-1"}),a?r.createElement("div",{className:N("shrink-0",_.ListCard.badgeClassName,x)},a):null):null,t?r.createElement("div",{className:N("mt-1 text-sm text-muted-foreground",_.ListCard.descriptionClassName,I)},t):null,n?r.createElement("div",{className:N("mt-1 text-xs text-muted-foreground",_.ListCard.metaClassName,A)},n):null,j?r.createElement("div",{className:N("mt-3",_.ListCard.footerClassName,C)},j):null),s?r.createElement("div",{className:N("shrink-0 self-center",_.ListCard.trailingClassName,D)},s):null),$=U=>{if(m){U.preventDefault(),U.stopPropagation();return}p==null||p(U)};let T;return c&&!m?T=d?r.createElement("a",{href:c,target:"_blank",rel:"noreferrer noopener",className:z,style:O.style,...O.pressHandlers,onClick:$},P):r.createElement(Te.Link,{to:c,className:z,style:O.style,...O.pressHandlers,onClick:$},P):F?T=r.createElement("button",{type:"button",className:z,style:O.style,disabled:m,...O.pressHandlers,onClick:$},P):T=r.createElement("div",{className:z,style:B,"aria-disabled":m||void 0},P),r.createElement(pe,{className:N(_.ListCard.wrapperClassName,k)},h,T,b)}const ds=208,us=52;function tc(e){return e.map(t=>({path:t.path,title:t.title,icon:t.icon,group:t.group,end:t.end,badge:t.badge,children:t.children?tc(t.children):void 0}))}function vn(e,t,n){return n?e===t:e===t||t!=="/"&&e.startsWith(t+"/")}function up(e){const t=new Map;for(const n of e){const a=n.group??"General";t.has(a)||t.set(a,[]),t.get(a).push(n)}return[...t.entries()].map(([n,a])=>({key:n,items:a}))}function da({value:e}){const t=me();return r.createElement("span",{className:N("ml-auto shrink-0 text-[10px] font-semibold leading-none px-1.5 py-[3px] rounded-full bg-primary/15 text-primary",t.SideNav.itemBadgeClassName)},e)}function mp({children:e,open:t}){const{pathname:n}=Te.useLocation(),a=me();return r.createElement("div",{style:{maxHeight:t?`${e.length*34+8}px`:"0px",overflow:"hidden",transition:"max-height 200ms ease"}},r.createElement("div",{className:"py-0.5 space-y-0.5"},e.map(o=>{const s=vn(n,o.path,o.end);return r.createElement(Te.Link,{key:o.path,to:o.path,className:N("flex items-center rounded-md pl-9 pr-3 py-[6px] text-sm transition-colors",a.SideNav.subItemClassName,s?a.SideNav.subItemActiveClassName:a.SideNav.subItemInactiveClassName)},r.createElement("span",{className:"flex-1 truncate"},o.title),o.badge!==void 0&&r.createElement(da,{value:o.badge}))})))}function fp({item:e,expanded:t,open:n,showIcons:a,onToggle:o}){var y;const{pathname:s}=Te.useLocation(),l=me(),i=(((y=e.children)==null?void 0:y.length)??0)>0,c=vn(s,e.path,e.end),d=i&&e.children.some(p=>vn(s,p.path,p.end)),u=c?l.SideNav.itemActiveClassName:d?l.SideNav.itemChildActiveClassName:l.SideNav.itemInactiveClassName,m=a?r.createElement("span",{className:N("relative shrink-0 flex items-center justify-center w-[18px] h-[18px]",l.SideNav.itemIconClassName)},e.icon?r.createElement(W,{name:e.icon,size:17}):r.createElement("span",{className:"w-1.5 h-1.5 rounded-full bg-current opacity-30"}),!t&&e.badge!==void 0&&r.createElement("span",{className:N("absolute -top-0.5 -right-1 w-[7px] h-[7px] rounded-full bg-primary ring-1 ring-background",l.SideNav.itemCollapsedBadgeClassName)})):null,f={opacity:t?1:0,maxWidth:t?"200px":"0px",overflow:"hidden",whiteSpace:"nowrap",transition:"opacity 150ms ease, max-width 200ms ease"},g=N("flex items-center w-full rounded-md px-2 py-[7px] text-sm transition-colors gap-2.5",l.SideNav.itemClassName);return i?r.createElement("div",null,r.createElement("div",{className:"flex items-center gap-0.5"},r.createElement(Te.Link,{to:e.path,title:t?void 0:e.title,className:N("flex-1 flex items-center gap-2.5 rounded-md px-2 py-[7px] text-sm transition-colors",l.SideNav.itemClassName,u)},m,r.createElement("span",{style:f,className:l.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&r.createElement(da,{value:e.badge})),t&&r.createElement("button",{onClick:()=>o(e.path),className:N("shrink-0 flex items-center justify-center w-6 h-6 rounded transition-colors text-muted-foreground/50 hover:text-foreground hover:bg-accent",l.SideNav.itemToggleClassName),title:n?"Collapse":"Expand"},r.createElement("span",{style:{transform:n?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease"}},r.createElement(W,{name:"chevron-down",size:13})))),t&&r.createElement(mp,{children:e.children,open:n})):r.createElement(Te.Link,{to:e.path,title:t?void 0:e.title,className:N(g,u)},m,r.createElement("span",{style:f,className:l.SideNav.itemTextClassName},e.title),t&&e.badge!==void 0&&r.createElement(da,{value:e.badge}))}function ms({group:e,expanded:t,openItems:n,showIcons:a,onToggle:o}){const s=e.key==="General",l=me();return r.createElement("div",{className:"mb-1"},!s&&r.createElement("div",{style:{height:t?void 0:"1px"},className:t?"px-2 pb-0.5 pt-3 first:pt-1":N("mx-2 my-2 bg-border/40",l.SideNav.groupDividerClassName)},t&&r.createElement("span",{className:N("text-[10.5px] font-semibold uppercase tracking-widest text-muted-foreground/50 select-none",l.SideNav.groupLabelClassName)},e.key)),r.createElement("div",{className:"space-y-0.5"},e.items.map(i=>r.createElement(fp,{key:i.path,item:i,expanded:t,open:n.has(i.path),showIcons:a,onToggle:o}))))}function pp({menuKey:e,items:t,defaultCollapsed:n=!1,showIcons:a=!0,showCollapseButton:o=!0,footer:s,header:l,embedded:i=!1}){const{pathname:c}=Te.useLocation(),d=me(),u=So(e??""),m=t??(e?tc(u):[]),[f,g]=r.useState(n),[y,p]=r.useState(!1),[h,b]=r.useState(new Set),k=r.useRef(null),w=!f||y;r.useEffect(()=>{b(v=>{const R=new Set(v);return m.forEach(M=>{var D;(D=M.children)!=null&&D.some(C=>vn(c,C.path,C.end))&&R.add(M.path)}),R})},[c]);const S=r.useCallback(v=>{b(R=>{const M=new Set(R);return M.has(v)?M.delete(v):M.add(v),M})},[]),I=()=>{f&&(k.current&&clearTimeout(k.current),p(!0))},A=()=>{f&&(k.current=setTimeout(()=>p(!1),80))};if(m.length===0)return null;const x=up(m);return i?r.createElement("nav",{className:N("px-1.5 py-2",d.SideNav.navClassName)},x.map(v=>r.createElement(ms,{key:v.key,group:v,expanded:!0,openItems:h,showIcons:a,onToggle:S}))):r.createElement("div",{className:N("min-h-0",d.SideNav.wrapperClassName),style:{width:f?us:ds,height:"100%",transition:"width 220ms cubic-bezier(0.4,0,0.2,1)",flexShrink:0,position:"relative"}},r.createElement("aside",{style:{width:w?ds:us,transition:"width 220ms cubic-bezier(0.4,0,0.2,1)",position:f?"absolute":"sticky",top:0,zIndex:f&&y?50:10,boxShadow:f&&y?"4px 0 24px rgba(0,0,0,0.10)":"none",height:"100%",overflowX:"hidden",overflowY:"hidden"},className:N("flex min-h-0 flex-col border-r bg-background",d.SideNav.shellClassName,f&&y&&d.SideNav.overlayClassName),onMouseEnter:I,onMouseLeave:A},l&&r.createElement("div",{className:N("shrink-0 border-b px-1.5 py-2",d.SideNav.headerClassName),style:{opacity:w?1:0,maxWidth:w?"100%":"0px",overflow:"hidden",transition:"opacity 150ms ease, max-width 200ms ease"}},l),r.createElement("nav",{className:N("min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-1.5 py-2",d.SideNav.navClassName)},x.map(v=>r.createElement(ms,{key:v.key,group:v,expanded:w,openItems:h,showIcons:a,onToggle:S}))),(o||s)&&r.createElement("div",{className:N("shrink-0 border-t px-1.5 py-2 flex items-center gap-1",d.SideNav.footerClassName)},o&&r.createElement("button",{onClick:()=>{g(v=>!v),p(!1)},title:f?"Expand sidebar":"Collapse sidebar",className:N("shrink-0 flex items-center justify-center rounded-md w-8 h-8 transition-colors text-muted-foreground hover:text-foreground hover:bg-accent",d.SideNav.collapseButtonClassName)},r.createElement(W,{name:f?"chevrons-right":"chevrons-left",size:16})),s&&r.createElement("div",{style:{flex:1,minWidth:0,opacity:w?1:0,maxWidth:w?"100%":"0px",overflow:"hidden",transition:"opacity 150ms ease, max-width 200ms ease"}},s))))}function gp({path:e,where:t,order:n,fieldMap:a}){const o=Dt(),[s,l]=r.useState([]),i=r.useMemo(()=>{if(!(!t&&!n&&!a))return{where:t,order:n,fieldMap:a}},[a,n,t]);return r.useEffect(()=>o.subscribe(e,l,i),[o,i,e]),s}function hp(e){if(e)return e}function rc({path:e,fromUrl:t,where:n,order:a,fieldMap:o,recordId:s=Be,...l}){const i=Te.useLocation(),c=t?hp(i.pathname):e,d=gp({path:c,where:n,order:a,fieldMap:o}),u=r.useMemo(()=>{if(!a)return;const f=Object.entries(a)[0];if(!f)return;const[g,y]=f;return{field:g,dir:y}},[a]),m=l.sortable===void 0||l.sortable===!0?u??l.sortable:l.sortable;return r.createElement(Eo,{...l,records:d,recordId:s,sourcePath:c,sortable:m})}const fs=e=>e.replace(/[^a-zA-Z0-9_-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),yo=e=>t=>{if(typeof e=="function")return String(e(t));const n=t[e];return n==null||n===""?"":String(n)},bp=(e,t)=>{if(e==null||e==="text")return t;if(e==="boolean")return t?"Yes":"No";if(e==="json")return t==null?"":JSON.stringify(t,null,2);if(e==="badge"||e==="image"||e==="email")return t;const a=Ue[e==="datetime"?"dateTime":e];return a?a(t):t},vp=(e,t)=>typeof e.render=="function"?e.render(t):bp(e.render,t.value),ps=e=>({key:e,label:Ue.toCamel(e," "),sortable:!0}),yp=(e,t)=>{const n=[],a=o=>{r.Children.forEach(o,s=>{if(!r.isValidElement(s))return;const{props:l}=s;l.name?n.push(t(l)):l.children&&a(l.children)})};return a(Array.isArray(e)?e:[e]),n},xp=(e,t,n)=>{if(e!=null&&e.length)return e;if(r.isValidElement(n)){const o=yp(n,s=>ps(s.name));if(o.length>0)return o}const a=t[0];return a?Object.entries(a).reduce((o,[s,l])=>(s.startsWith("_")||(r.isValidElement(l)||typeof l!="object"||Array.isArray(l))&&o.push(ps(s)),o),[]):[]},wp=(e,t)=>Array.isArray(e)?e.reduce((n,a)=>(a==="delete"?n[a]={kind:"delete"}:n[a]={kind:"modal"},n),{}):e?Object.entries(e).reduce((n,[a,o])=>(o&&(n[a]=o),n),{}):t?{add:{kind:"modal"},edit:{kind:"modal"},delete:{kind:"delete"}}:{},ua=(e,t)=>e!=null&&e.visible?typeof e.visible=="function"?e.visible(t):e.visible:!0,nc=(e,t)=>e!=null&&e.disabled?typeof e.disabled=="function"?e.disabled(t):e.disabled:!1,ma=(e,t,n)=>t!=null&&t.label?t.label:e==="add"?(n==null?void 0:n.add)??"Add":e==="edit"?(n==null?void 0:n.edit)??"Edit":e==="delete"?(n==null?void 0:n.delete)??"Delete":Ue.toCamel(e," "),Ep=e=>{if(!(!e||typeof e=="boolean"))return e};function ac({records:e,recordId:t,columns:n,runAction:a,sortable:o,pagination:s,selection:l=!1,selectedKeys:i,onSelectionChange:c,onRowClick:d,reorderable:u=!1,onReorder:m,activeKey:f,groupBy:g,wrapperClassName:y,before:p,after:h}){const b=r.useMemo(()=>yo(t),[t]),k=r.useRef(new Map),w=r.useMemo(()=>e.reduce((A,x)=>(A.set(b(x),x),A),new Map),[b,e]),S=r.useMemo(()=>n.reduce((A,x)=>(A.set(String(x.key),x),A),new Map),[n]);r.useEffect(()=>{const A=new Set(e.map(x=>b(x)));for(const x of k.current.keys())A.has(x)||k.current.delete(x)},[b,e]);const I=r.useCallback((A,x,v)=>{const R=A,M=b(R),D=S.get(x);if(!D)return zr(R,x);const C=zr(R,x),B=k.current.get(M)??new Map,E=B.get(x),_=typeof D.render=="function";if(E&&E.recordRef===R&&E.valueRef===C&&E.renderRef===D.render&&(!_||E.rowIndex===v))return E.output;const F=vp(D,{record:R,value:C,key:x,rowIndex:v,runAction:O=>a(O,R)});return B.set(x,{recordRef:R,valueRef:C,renderRef:D.render,rowIndex:v,output:F}),k.current.set(M,B),F},[S,b,a]);return r.createElement(Ji,{columns:n.map(A=>({key:String(A.key),label:A.label,className:A.className,sort:A.sortable})),records:e,sortable:o,pagination:s,renderCell:I,selection:l==="single"?"single":"multiple",selectedKeys:l?i:void 0,onSelectionChange:l?A=>{const x=new Set(A.keys);let R=e.filter(C=>x.has(b(C))),M=A.keys;if(l==="single"&&A.keys.length>1){const C=A.keys[A.keys.length-1];M=C?[C]:[],R=C?w.get(C)?[w.get(C)]:[]:[]}const D={keys:M,records:R,hasSelection:M.length>0,clear:()=>c==null?void 0:c({keys:[],records:[],hasSelection:!1,clear:()=>{}})};c==null||c(D)}:void 0,onRowClick:d?A=>{const x=b(A),v=w.get(x);v&&d(v)}:void 0,onReorder:u&&m?(A,x)=>{const v=A.map(M=>w.get(b(M))).filter(Boolean),R=w.get(b(x.record));R&&m(v,{fromIndex:x.fromIndex,toIndex:x.toIndex,record:R})}:void 0,activeKey:f,groupBy:g,wrapperClassName:y,before:p,after:h})}const oc=r.createContext(null);let gs=0;const fa="LLM Native",pa={charset:"UTF-8",viewport:"width=device-width, initial-scale=1.0"},ga={lang:"en"};function sc(e,t){return t.includes(":")?t:`${e}:${t}`}function Np(e){return Array.isArray(e)?e.join(", "):e}function Cp(e){return e==="siteName"?"og:site_name":sc("og",e)}function kp(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 Sp(e){return[...e.prev?[{rel:"prev",href:e.prev}]:[],...e.next?[{rel:"next",href:e.next}]:[]]}function Ap(e){return(e.alternates??[]).map(t=>({rel:"alternate",href:t.href,hrefLang:t.hrefLang,media:t.media,type:t.type,title:t.title}))}function Mp(e,t,n){var a;return{name:{description:e.description,...e.meta??{},robots:n.robots??((a=e.meta)==null?void 0:a.robots),googlebot:n.googlebot,keywords:Np(n.keywords),author:n.author,publisher:n.publisher,referrer:n.referrer,...n.meta??{},...Object.fromEntries(Object.entries(t.twitter??{}).map(([o,s])=>[sc("twitter",o),s]))},property:Object.fromEntries(Object.entries(t.openGraph??{}).map(([o,s])=>[Cp(o),s]))}}function Ip(e,t,n,a){return[...kp(t),...Sp(a),...Ap(n),...e.canonical&&!t.canonical?[{rel:"canonical",href:e.canonical}]:[],...e.links??[]]}function Pp(e){return[...(e.fonts??[]).flatMap(t=>[...(t.dnsPrefetch??[]).map(n=>({rel:"dns-prefetch",href:n})),...(t.preconnect??[]).map(n=>({rel:"preconnect",href:n,crossOrigin:t.crossOrigin})),...t.preload?[{rel:"preload",href:t.href,as:t.as??"font",type:t.type,media:t.media,crossOrigin:t.crossOrigin}]:[],{rel:"stylesheet",href:t.href,media:t.media,crossOrigin:t.crossOrigin}])]}function Tp(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 Dp(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 Rp(e){return Array.isArray(e.jsonLd)?e.jsonLd:e.jsonLd?[e.jsonLd]:[]}function _p(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>!!t))}function Fp(e){const{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,a])=>a!==void 0&&a!==!1))}function Op(e){const{inline:t,...n}=e;return Object.fromEntries(Object.entries(n).filter(([,a])=>a!==void 0&&a!==!1))}function $p({appName:e,metadata:t,social:n,links:a,pagination:o,language:s,document:l,assets:i,pwa:c,schemaOrg:d}){var y,p;if(typeof globalThis.document>"u")return null;const u=Mp(t,n,l),m=Dp(c),f=[...Ip(a,l,s,o),...Pp(i),...Tp(c)],g=Rp(d);return er.createPortal(r.createElement(r.Fragment,null,l.charset?r.createElement("meta",{charSet:l.charset,"data-rfs-head":"document"}):null,(y=l.base)!=null&&y.href||(p=l.base)!=null&&p.target?r.createElement("base",{href:l.base.href,target:l.base.target,"data-rfs-head":"document"}):null,l.viewport?r.createElement("meta",{name:"viewport",content:l.viewport,"data-rfs-head":"document"}):null,Object.entries(l.httpEquiv??{}).map(([h,b])=>b?r.createElement("meta",{key:`http-equiv:${h}`,httpEquiv:h,content:b,"data-rfs-head":"document"}):null),Object.entries(u.name).map(([h,b])=>b?r.createElement("meta",{key:`name:${h}`,name:h,content:b,"data-rfs-head":"meta"}):null),Object.entries(u.property).map(([h,b])=>b?r.createElement("meta",{key:`property:${h}`,property:h,content:b,"data-rfs-head":"meta"}):null),Object.entries(m).map(([h,b])=>b?r.createElement("meta",{key:`pwa:${h}`,name:h,content:b,"data-rfs-head":"pwa"}):null),f.map((h,b)=>r.createElement("link",{key:`${h.rel}:${h.href??b}`,..._p(h),"data-rfs-head":"link"})),(i.styles??[]).map((h,b)=>r.createElement(r.Fragment,{key:`style:${h.href??b}`},h.href?r.createElement("link",{rel:"stylesheet",href:h.href,...Op(h),"data-rfs-head":"asset-style"}):null,h.inline?r.createElement("style",{id:h.id,nonce:h.nonce,media:h.media,title:h.title,"data-rfs-head":"asset-style"},h.inline):null)),(i.scripts??[]).map((h,b)=>r.createElement(r.Fragment,{key:`script:${h.src??b}`},h.src?r.createElement("script",{...Fp(h),"data-rfs-head":"asset-script"}):null,h.inline?r.createElement("script",{type:h.type,id:h.id,nonce:h.nonce,"data-rfs-head":"asset-script"},h.inline):null)),g.map((h,b)=>r.createElement("script",{key:`schema-org:${b}`,type:"application/ld+json","data-rfs-head":"schema-org"},JSON.stringify(h)))),globalThis.document.head)}function lc({appName:e=fa,children:t}){const n=e||fa,a=r.useRef(typeof globalThis.document>"u"?"":globalThis.document.documentElement.lang),o=r.useRef(typeof globalThis.document>"u"?"":globalThis.document.documentElement.dir),[s,l]=r.useState({}),[i,c]=r.useState([]),[d,u]=r.useState({}),[m,f]=r.useState({}),[g,y]=r.useState({}),[p,h]=r.useState(ga),[b,k]=r.useState(pa),[w,S]=r.useState({}),[I,A]=r.useState({}),[x,v]=r.useState({}),R=r.useCallback(()=>l({}),[]),M=r.useCallback(($,T)=>{c(L=>[...L.filter(de=>de.id!==$),{id:$,metadata:T}])},[]),D=r.useCallback($=>{c(T=>T.filter(L=>L.id!==$))},[]),C=r.useCallback(()=>u({}),[]),B=r.useCallback(()=>f({}),[]),E=r.useCallback(()=>y({}),[]),_=r.useCallback(()=>h(ga),[]),F=r.useCallback(()=>k(pa),[]),O=r.useCallback(()=>S({}),[]),V=r.useCallback(()=>A({}),[]),j=r.useCallback(()=>v({}),[]);r.useEffect(()=>{typeof globalThis.document>"u"||(globalThis.document.documentElement.lang=p.lang??a.current,globalThis.document.documentElement.dir=p.dir??o.current)},[p.lang,p.dir]);const z=i.length>0?i[i.length-1].metadata:s;r.useEffect(()=>{typeof globalThis.document>"u"||(globalThis.document.title=z.title??n)},[z.title,n]);const P=r.useMemo(()=>({metadata:z,social:d,links:m,pagination:g,language:p,document:b,assets:w,pwa:I,schemaOrg:x,setPageMetadata:l,clearPageMetadata:R,setPageMetadataEntry:M,clearPageMetadataEntry:D,setSocialHead:u,clearSocialHead:C,setHeadLinks:f,clearHeadLinks:B,setPaginationHead:y,clearPaginationHead:E,setLanguageHead:h,clearLanguageHead:_,setDocumentHead:k,clearDocumentHead:F,setAssetsHead:S,clearAssetsHead:O,setPwaHead:A,clearPwaHead:V,setSchemaOrg:v,clearSchemaOrg:j}),[z,d,m,g,p,b,w,I,x,R,M,D,C,B,E,_,F,O,V,j]);return r.createElement(oc.Provider,{value:P},t,r.createElement($p,{appName:n,metadata:z,social:d,links:m,pagination:g,language:p,document:b,assets:w,pwa:I,schemaOrg:x}))}function Nt(){return r.useContext(oc)}function Ct(e){return JSON.stringify(e??{})}function xo(e){const t=Nt(),n=r.useRef(null);n.current||(gs+=1,n.current=`metadata-${gs}`);const a=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const o=n.current;return t.setPageMetadataEntry(o,e),()=>t.clearPageMetadataEntry(o)},[t==null?void 0:t.setPageMetadataEntry,t==null?void 0:t.clearPageMetadataEntry,a]),t}function Lp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.social;return t.setSocialHead(e),()=>t.setSocialHead(a)},[t==null?void 0:t.setSocialHead,n]),t}function jp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.links;return t.setHeadLinks(e),()=>t.setHeadLinks(a)},[t==null?void 0:t.setHeadLinks,n]),t}function Bp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.pagination;return t.setPaginationHead(e),()=>t.setPaginationHead(a)},[t==null?void 0:t.setPaginationHead,n]),t}function zp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.language;return t.setLanguageHead(e),()=>t.setLanguageHead(a)},[t==null?void 0:t.setLanguageHead,n]),t}function Vp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.document;return t.setDocumentHead({...a,...e}),()=>t.setDocumentHead(a)},[t==null?void 0:t.setDocumentHead,n]),t}function Up(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.assets;return t.setAssetsHead(e),()=>t.setAssetsHead(a)},[t==null?void 0:t.setAssetsHead,n]),t}function Hp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.pwa;return t.setPwaHead(e),()=>t.setPwaHead(a)},[t==null?void 0:t.setPwaHead,n]),t}function Kp(e){const t=Nt(),n=Ct(e);return r.useEffect(()=>{if(!t||!e)return;const a=t.schemaOrg;return t.setSchemaOrg(e),()=>t.setSchemaOrg(a)},[t==null?void 0:t.setSchemaOrg,n]),t}function Gp(e){return xo(e),null}const ha=e=>/^(https?:)?\/\//.test(e)||e.startsWith("mailto:")||e.startsWith("tel:"),Yp=e=>!!e&&!ha(e)&&!e.startsWith("#"),Wp=e=>e.startsWith("#"),ba=e=>typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(ba).join(""):r.isValidElement(e)?ba(e.props.children):"",qp=e=>{if(!r.isValidElement(e))return;const t=/language-([\w-]+)/.exec(e.props.className||"");return t==null?void 0:t[1]};function Jp({code:e,language:t}){const[n,a]=r.useState(!1),o=Me("code"),s=()=>{ka(e),a(!0),window.setTimeout(()=>a(!1),1600)};return r.createElement("div",{className:"relative my-4 overflow-hidden rounded-md border bg-muted/50"},r.createElement("div",{className:"flex h-9 items-center justify-between border-b px-3"},r.createElement("span",{className:"text-xs font-medium text-muted-foreground"},t||o.codeLanguageDefault),r.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:s},n?o.copied:o.copy)),r.createElement("pre",{className:"m-0 overflow-x-auto p-4 text-xs leading-relaxed"},r.createElement("code",{className:t?`language-${t}`:void 0},e)))}const Xp=e=>({h1:({className:t,...n})=>r.createElement("h1",{className:N("mt-8 scroll-m-20 text-3xl font-bold tracking-normal first:mt-0 [&>a]:no-underline [&>a:hover]:opacity-80",t),...n}),h2:({className:t,...n})=>r.createElement("h2",{className:N("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",t),...n}),h3:({className:t,...n})=>r.createElement("h3",{className:N("mt-6 scroll-m-20 text-xl font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80",t),...n}),h4:({className:t,...n})=>r.createElement("h4",{className:N("mt-5 scroll-m-20 text-base font-semibold tracking-normal [&>a]:no-underline [&>a:hover]:opacity-80",t),...n}),p:({className:t,...n})=>r.createElement("p",{className:N("my-4 leading-7 text-foreground",t),...n}),ul:({className:t,...n})=>r.createElement("ul",{className:N("my-4 ml-6 list-disc space-y-2",t),...n}),ol:({className:t,...n})=>r.createElement("ol",{className:N("my-4 ml-6 list-decimal space-y-2",t),...n}),li:({className:t,...n})=>r.createElement("li",{className:N("leading-7",t),...n}),blockquote:({className:t,...n})=>r.createElement("blockquote",{className:N("my-4 border-l-4 border-primary bg-muted/40 px-4 py-3 text-sm text-muted-foreground",t),...n}),table:({className:t,...n})=>r.createElement("div",{className:"my-4 w-full overflow-x-auto"},r.createElement("table",{className:N("w-full border-collapse text-sm",t),...n})),th:({className:t,...n})=>r.createElement("th",{className:N("border bg-muted px-3 py-2 text-left font-semibold",t),...n}),td:({className:t,...n})=>r.createElement("td",{className:N("border px-3 py-2 align-top",t),...n}),hr:({className:t,...n})=>r.createElement("hr",{className:N("my-8 border-border",t),...n}),a:({className:t,href:n="",onClick:a,...o})=>r.createElement("a",{className:N(Wp(n)?"text-primary no-underline transition-opacity hover:opacity-80":"font-medium text-primary no-underline transition-opacity hover:opacity-80",t),href:n,target:ha(n)?"_blank":void 0,rel:ha(n)?"noreferrer":void 0,onClick:s=>{a==null||a(s),!s.defaultPrevented&&e&&Yp(n)&&(s.preventDefault(),e(n,s))},...o}),pre:({children:t})=>r.createElement(Jp,{code:ba(t).replace(/\n$/,""),language:qp(t)}),code:({className:t,children:n,...a})=>typeof t=="string"&&t.startsWith("language-")?r.createElement("code",{className:t,...a},n):r.createElement("code",{className:N("rounded bg-muted px-1.5 py-0.5 text-[0.9em]",t),...a},n),input:({className:t,...n})=>r.createElement("input",{className:N("mr-2 align-middle",t),disabled:!0,...n})});function Zp({content:e,components:t,className:n,wrapperClassName:a,metadata:o,onInternalLinkClick:s}){const l=r.useMemo(()=>{var d,u;return(u=(d=e.match(/^#[ \t]+(.+)/m))==null?void 0:d[1])==null?void 0:u.trim()},[e]),i=o||l?{...o??{},title:(o==null?void 0:o.title)??l}:void 0;xo(i);const c=r.useMemo(()=>Xp(s),[s]);return r.createElement("div",{className:N("rf-markdown-reader max-w-none text-sm text-foreground",a,n)},r.createElement(Gc,{remarkPlugins:[Yc],rehypePlugins:[Wc,[qc,{behavior:"wrap"}],Jc],components:{...c,...t}},e))}const Qp=({children:e,name:t,onChange:n=void 0,onAdd:a=void 0,onRemove:o=void 0,label:s="Tab",min:l=1,max:i=void 0,activeIndex:c=0,title:d=void 0,readOnly:u=!1,tabPosition:m="default"})=>{const{value:f,handleChange:g}=Ye({name:t,onChange:n}),y=Array.isArray(f)?f:[],[p,h]=r.useState(c),[b,k]=r.useState(0),w=r.useMemo(()=>{var M;return(M=y.length>0?y:Array.from({length:l},()=>({})))==null?void 0:M.map((D,C)=>s.includes("{")?Ue.parse(y[C]??{},s):s+" "+(C+1))},[y,s,l,b]),S=typeof e=="function"?e({record:y[p]??{},records:y,currentIndex:p}):e,I=r.useMemo(()=>$r({children:S,parentName:`${t}.${p}`,parentKey:`${t}-${p}-${b}`}),[p,S,t,b]),A=()=>{const M=y.length>0?[...y,{}]:Array.from({length:w.length+1},()=>({}));a==null||a(M),g({target:{name:`${t}.${M.length-1}`,value:{}}}),h(M.length-1),k(D=>D+1)},x=M=>{const D=w.length-1;o==null||o(M),g({target:{name:`${t}.${M}`}}),p>=D&&h(C=>C-1),k(C=>C+1)},v=vo[m],R=wt(m);return r.createElement("div",null,d&&r.createElement("h3",null,d),r.createElement(v,{menu:r.createElement(r.Fragment,null,w==null?void 0:w.map((M,D)=>r.createElement("div",{key:`${t}-${D}`,className:`${R.itemClassName} relative`},r.createElement("button",{type:"button",role:"tab","aria-selected":D===p,onClick:()=>h(D),className:bn(m,D===p,!u&&w.length-1>=l&&D===p?"pr-9":void 0)},M),!u&&w.length-1>=l&&D===p&&r.createElement(Ze,{className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 text-current opacity-70 hover:opacity-100",icon:"x",onClick:()=>x(D)}))),!u&&(!i||w.length<i)&&r.createElement("div",{key:w.length+1,className:R.itemClassName},r.createElement(Ze,{className:bn(m,!1,"border border-dashed border-border/70 justify-center"),icon:"plus",title:"Add tab",onClick:A}))),content:r.createElement("div",{className:bo()},I)}))},wo=({records:e,children:t,limit:n=void 0,page:a=void 0,maxPageButtons:o=void 0,appendTo:s=void 0,before:l=void 0,after:i=void 0,className:c=void 0,wrapperClassName:d=void 0,scrollToTopOnChange:u=void 0,scrollBehavior:m=void 0,align:f=void 0,sticky:g=void 0})=>{const y=me(),p=Me("common"),[h,b]=r.useState(a||1),k=n||e.length,w=Math.ceil(e.length/k),S=(h-1)*k,I=S+k,A=r.useMemo(()=>e.slice(S,I),[e,S,I]),x=E=>{E>=1&&E<=w&&b(E)};r.useEffect(()=>{(u||y.Pagination.scrollToTop)&&window.scrollTo({top:0,behavior:m||y.Pagination.scrollBehavior})},[h,u,m]);const v=r.useMemo(()=>{const E=Math.min(o||y.Pagination.maxItems,w);let _=Math.max(1,h-Math.floor(E/2)),F=_+E-1;return F>w&&(F=w,_=Math.max(1,F-E+1)),Array.from({length:F-_+1},(O,V)=>_+V)},[h,o,w]),R=h===1?"disabled":"",M=h===w?"disabled":"",D=f||y.Pagination.align,C={start:"justify-start",center:"justify-center",end:"justify-end"}[D]||"justify-end",B=r.createElement(pe,{className:(d||y.Pagination.wrapperClassName)+(g||y.Pagination.sticky?` ${y.Pagination.stickyClassName}`:""),style:g||y.Pagination.sticky?{backdropFilter:"blur(10px)",backgroundColor:"rgba(255, 255, 255, 0.1)"}:{}},l,e.length>k&&r.createElement("nav",{"aria-label":p.pageNavigation,className:`${c||y.Pagination.className} flex w-full ${C}`},r.createElement("ul",{className:"flex items-center gap-1"},r.createElement("li",{className:"mr-2"},r.createElement("button",{type:"button",onClick:()=>x(1),disabled:R==="disabled",className:N("inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors",R==="disabled"?"pointer-events-none opacity-40":"cursor-pointer hover:bg-accent hover:text-accent-foreground")},r.createElement("span",null,"«"))),r.createElement("li",null,r.createElement("button",{type:"button",disabled:R==="disabled",className:N("inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors",R==="disabled"?"pointer-events-none opacity-40":"cursor-pointer hover:bg-accent hover:text-accent-foreground"),onClick:()=>x(h-1)},r.createElement("span",null,"‹"))),v.map(E=>r.createElement("li",{key:E},r.createElement("button",{type:"button",onClick:()=>x(E),className:N("inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors cursor-pointer hover:bg-accent hover:text-accent-foreground",h===E&&"border-primary bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground")},E))),r.createElement("li",{className:"ml-2"},r.createElement("button",{type:"button",disabled:M==="disabled",className:N("inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors",M==="disabled"?"pointer-events-none opacity-40":"cursor-pointer hover:bg-accent hover:text-accent-foreground"),onClick:()=>x(h+1)},r.createElement("span",null,"›"))),r.createElement("li",null,r.createElement("button",{type:"button",onClick:()=>x(w),disabled:M==="disabled",className:N("inline-flex h-9 min-w-[2.25rem] items-center justify-center rounded-md border bg-background px-3 text-sm transition-colors",M==="disabled"?"pointer-events-none opacity-40":"cursor-pointer hover:bg-accent hover:text-accent-foreground")},r.createElement("span",null,"»"))))),i);return r.createElement(r.Fragment,null,t(A,S),s?er.createPortal(B,s):s===void 0&&B)},ic=({records:e=void 0,header:t=void 0,footer:n=void 0,overlays:a=void 0,onRowClick:o=void 0,onSelectionChange:s=void 0,sortable:l=!1,pagination:i=void 0,gap:c=void 0,columns:d=void 0,groupBy:u=void 0,selectedKeys:m=void 0,before:f=void 0,after:g=void 0,wrapperClassName:y=void 0,className:p=void 0,headerClassName:h=void 0,scrollClassName:b=void 0,bodyClassName:k=void 0,footerClassName:w=void 0,selectedClassName:S=void 0})=>{const I=me(),A=Me("gallery"),x=Me("common"),v=S||I.Gallery.selectedClassName,[R,M]=r.useState(null),D=r.useCallback(K=>{K&&M(K)},[]),C=c??I.Gallery.gap,B=d??I.Gallery.rowCols,E={0:"0",1:"0.25rem",2:"0.5rem",3:"1rem",4:"1.5rem",5:"3rem"},_=E[C]??E[2],F="0.75rem",O="calc(50% - 1rem)",V=C===0?`${(100/B).toFixed(4)}%`:`calc((100% - (${_} * ${B-1})) / ${B})`,j=e||[],z=r.useMemo(()=>{if(!l)return;if(typeof l=="object")return l;const K=e==null?void 0:e[0];if(!K)return;const Y=Object.keys(K).find(X=>!X.startsWith("_"));if(Y)return{field:Y,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]),P=qi("item"),$=r.useCallback((K,Y)=>P(K,Y),[P]),{activeSelectedKeys:T,showSelection:L,updateSelection:U}=Wi({records:j,selectedKeys:m,onSelectionChange:s,getRecordKey:$}),de=r.useRef(new Map);r.useEffect(()=>{const K=new Set(j.map((Y,X)=>$(Y,X)));for(const Y of de.current.keys())K.has(Y)||de.current.delete(Y)},[j,$]);const Z=(K,Y)=>{var X;if(v){const Q=v.split(/\s+/).filter(Boolean);let ne=K.target;for(;ne&&!ne.classList.contains("item");){if(["A","BUTTON","INPUT","LABEL"].includes(ne.tagName))return;ne=ne.parentNode}Q.every(le=>ne.classList.contains(le))||(Array.from(((X=ne.parentNode)==null?void 0:X.children)||[]).forEach(le=>{le.classList.remove(...Q)}),ne.classList.add(...Q))}o==null||o(Y)},q=r.useCallback((K,Y)=>{const X=$(K,Y),Q=T.includes(X)?T.filter(ne=>ne!==X):[...T,X];U(Q)},[T,$,U]),se=(K,Y)=>{var Q;const X=K.img;return X&&r.isValidElement(X)?r.cloneElement(X,{className:N("block h-auto w-full max-w-full rounded-lg object-cover",X.props.className),style:{...X.props.style||{},aspectRatio:((Q=X.props.style)==null?void 0:Q.aspectRatio)||"16 / 11",cursor:o?"pointer":"default"},onClick:o?ne=>{var le,Se;Z(ne,K),(Se=(le=X.props).onClick)==null||Se.call(le,ne)}:X.props.onClick}):r.createElement("img",{className:"block h-auto w-full max-w-full rounded-lg object-cover",src:K.thumbnail?K.mimetype+K.thumbnail:"data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==",alt:K.name,width:K.width,height:K.height,style:{aspectRatio:"16 / 11",cursor:o?"pointer":"default"},onClick:o?ne=>Z(ne,K):void 0})},re=K=>r.isValidElement(K)?K:r.createElement("span",{className:"inline-block max-w-full overflow-hidden text-ellipsis align-top"},r.createElement(Xr,{badge:K,className:"badge-overlay"})),ye=(K,Y,X="left",Q)=>r.createElement("div",{className:N("absolute z-10 overflow-hidden text-ellipsis whitespace-nowrap leading-none",X==="right"?"text-right":"text-left",Q),style:{width:O,maxWidth:O,pointerEvents:"none",...Y}},re(K)),he={topLeft:{style:{left:F,top:F}},topRight:{style:{right:F,top:F},align:"right"},bottomLeft:{style:{bottom:F,left:F}},bottomRight:{style:{bottom:F,right:F},align:"right"},middleLeft:{style:{left:F,top:"50%",transform:"translateY(-50%)"}},middleRight:{style:{right:F,top:"50%",transform:"translateY(-50%)"},align:"right"}},fe=(K,Y,X)=>K.when?typeof K.when=="function"?K.when(Y,X):Object.entries(K.when).every(([Q,ne])=>Y[Q]===ne):!0,_e=(K,Y,X)=>K.render?K.render(Y,X):typeof K.badge=="function"?K.badge(Y,X):K.badge,ue=(K,Y)=>a!=null&&a.length?a.map((X,Q)=>{if(!X.position||!fe(X,K,Y))return null;const ne=_e(X,K,Y);if(ne==null||ne===!1)return null;const le=he[X.position];return le?r.createElement(r.Fragment,{key:`${X.position}-${Q}`},ye(ne,le.style,le.align,X.className)):null}):null,ke=r.useCallback((K,Y)=>{const X=$(K,Y),Q=de.current.get(X);if(Q&&Q.recordRef===K&&Q.overlaysRef===a&&Q.onClickRef===o&&Q.rowIndex===Y)return{image:Q.image,overlays:Q.overlays};const ne={image:se(K),overlays:ue(K,Y)};return de.current.set(X,{recordRef:K,overlaysRef:a,onClickRef:o,rowIndex:Y,image:ne.image,overlays:ne.overlays}),ne},[$,o,a]),J=(K,Y)=>{const X=$(Y,K),Q=T.includes(X),ne=(v==null?void 0:v.split(/\s+/).filter(Boolean))||[],le=ke(Y,K);return r.createElement("div",{key:X,className:N("item min-w-0",Q&&ne),style:{flex:`0 0 ${V}`,maxWidth:V}},r.createElement("div",{className:"relative overflow-hidden rounded-lg"},L&&r.createElement("label",{className:"absolute left-3 top-3 z-20 inline-flex items-center rounded bg-background/90 px-2 py-1 shadow-sm"},r.createElement("input",{type:"checkbox","aria-label":Ve(A.selectItem,{key:X}),checked:Q,onChange:()=>q(Y,K),onClick:Se=>Se.stopPropagation()})),le.image,le.overlays))},ee=(K,Y)=>{const X=Array.isArray(Y)?Y:[Y],Q=new Map;return K.forEach((ne,le)=>{const Se=X.map(ge=>String(ne[ge]??"")).join(" · ")||"-";Q.has(Se)||Q.set(Se,[]),Q.get(Se).push({item:ne,index:le})}),Array.from(Q.entries()).map(([ne,le])=>({kind:"group",groupName:ne,items:le}))},te=r.useMemo(()=>{if(!Array.isArray(e))return;const K=pr.records(e,z)||[];return u?ee(K,u):K.map((Y,X)=>({kind:"item",item:Y,index:X}))},[e,u,z]);return te===void 0?r.createElement("p",{className:"p-4"},r.createElement("span",{className:"mr-2 inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),x.loading):te.length===0?r.createElement("p",{className:"p-4"},x.noDataFound):r.createElement("div",{className:N("flex items-stretch gap-3",y||I.Gallery.wrapperClassName)},f&&r.createElement("div",{className:"gallery-before flex shrink-0 items-center self-stretch"},f),r.createElement(pe,{className:N("min-w-0 flex-1 flex flex-col",p||I.Gallery.className)},t&&r.createElement("div",{className:h||I.Gallery.headerClassName},t),r.createElement(pe,{className:N("min-w-0 flex-1",b||I.Gallery.scrollClassName)},r.createElement(wo,{records:te,appendTo:R,wrapperClassName:"px-3 pt-4 pb-2",...i||{}},K=>r.createElement("div",{className:"p-3"},r.createElement("div",{className:"flex flex-wrap text-center items-center "+(k||I.Gallery.bodyClassName),style:{gap:_}},K.map(Y=>Y.kind==="group"?r.createElement("section",{key:Y.groupName,className:"gallery-group rounded-lg border bg-card p-3 text-left"},r.createElement("h3",{className:"mb-3 text-sm font-semibold uppercase tracking-wide text-muted-foreground"},Y.groupName),r.createElement("div",{className:N("flex flex-wrap items-center"),style:{gap:_}},Y.items.map(({item:X,index:Q})=>J(Q,X)))):J(Y.index,Y.item)))))),r.createElement("div",{ref:D,className:"mt-auto"}),n&&r.createElement("div",{className:w||I.Gallery.footerClassName},n)),g&&r.createElement("div",{className:"gallery-after flex shrink-0 items-center self-stretch"},g))};function cc({records:e,recordId:t,sortable:n,pagination:a,selection:o=!1,selectedKeys:s,onSelectionChange:l,onRowClick:i,groupBy:c,wrapperClassName:d,before:u,after:m}){const f=r.useMemo(()=>yo(t),[t]),g=r.useMemo(()=>e.reduce((y,p)=>(y.set(f(p),p),y),new Map),[f,e]);return r.createElement(ic,{records:e,sortable:n,pagination:a,selectedKeys:o?s:void 0,onSelectionChange:o?y=>{let p=y.keys,h=y.records;if(o==="single"&&y.keys.length>1){const k=y.keys[y.keys.length-1];p=k?[k]:[],h=k?g.get(k)?[g.get(k)]:[]:[]}const b={keys:p,records:h,hasSelection:p.length>0,clear:()=>l==null?void 0:l({keys:[],records:[],hasSelection:!1,clear:()=>{}})};l==null||l(b)}:void 0,onRowClick:i?y=>i(y):void 0,groupBy:c,wrapperClassName:d,before:u,after:m})}function eg({actions:e,form:t,editDeepLink:n,preparedRecords:a,recordId:o,sourcePath:s,db:l,onSave:i,onDelete:c,onComplete:d,audit:u=!1}){const m=Te.useLocation(),f=Te.useNavigate(),g=r.useId(),y=po(),p=r.useMemo(()=>yo(o),[o]),h=r.useMemo(()=>wp(e,!!t),[e,t]),[b,k]=r.useState(null),w=r.useMemo(()=>`${fs(s||"grid-records")}-${fs(g)}`,[g,s]),S=r.useCallback(()=>{k(null),n&&m.hash.startsWith(`#${w}:`)&&f({pathname:m.pathname,search:m.search,hash:""},{replace:!0})},[n,w,m.hash,m.pathname,m.search,f]),I=r.useCallback(async(B,E=!0)=>{const _=c?await c({record:B}):s?`${s}/${p(B)}`:void 0;if(!_&&!c)return!1;_&&await l.remove(_);const F=await(d==null?void 0:d({record:B,action:"delete"}))??!0;return F&&E&&S(),F},[S,l,p,d,c,s]),A=r.useCallback(async()=>y.save(),[y]),x=r.useCallback(async(B,E)=>{const _=h[B];if(!_||!ua(_,E)||nc(_,E))return;const F={actionKey:B,record:E,recordKey:E?p(E):void 0,rowIndex:E==null?void 0:E._index,isNewRecord:!E,close:S,save:A,remove:async()=>E?I(E,!0):!1,runAction:(O,V)=>x(O,V)};if(_.kind==="route"){const O=typeof _.to=="function"?_.to(F):_.to;f(O);return}if(_.kind==="external"){const O=typeof _.href=="function"?_.href(F):_.href;window.open(O,"_blank","noopener,noreferrer");return}if(_.kind==="inline"){await _.run(F);return}B==="edit"&&n&&E&&f({hash:`${w}:${encodeURIComponent(p(E))}`},{replace:!1}),k({actionKey:B,record:E})},[S,n,p,w,f,h,I,A]),v=r.useCallback((B,E)=>({actionKey:B,record:E,recordKey:E?p(E):void 0,rowIndex:E==null?void 0:E._index,isNewRecord:!E,runAction:(_,F)=>x(_,F)}),[p,x]),R=r.useCallback(async B=>{const E=b==null?void 0:b.record;if(B==="cancel"){S();return}if(B==="save"){await A();return}if(B==="remove"){if(!E)return;await I(E,!0);return}await x(B,E)},[b==null?void 0:b.record,S,I,x,A]),M=r.useCallback((B,E)=>({actionKey:B,record:E,recordKey:E?p(E):void 0,rowIndex:E==null?void 0:E._index,isNewRecord:!E,runAction:_=>{R(_)}}),[p,R]);r.useEffect(()=>{if(!n)return;const B=m.hash.replace(/^#/,""),E=`${w}:`;if(!B.startsWith(E)){(b==null?void 0:b.actionKey)==="edit"&&k(null);return}const _=decodeURIComponent(B.slice(E.length)),F=a.find(O=>p(O)===_);F&&k(O=>(O==null?void 0:O.actionKey)==="edit"&&O.record&&p(O.record)===_?O:{actionKey:"edit",record:F})},[b==null?void 0:b.actionKey,n,p,w,m.hash,a]);const D=b?h[b.actionKey]:void 0,C=r.useMemo(()=>{if(!b||!D)return null;const B=v(b.actionKey,b.record),E=M(b.actionKey,b.record);if(D.kind==="delete")return typeof D.body=="function"?D.body(E):D.body!==void 0?D.body:r.createElement("div",{className:"space-y-2"},r.createElement("p",null,"Delete this record?"),b.record&&r.createElement("p",{className:"text-sm text-muted-foreground"},p(b.record)));if((b.actionKey==="add"||b.actionKey==="edit")&&t){const _=D.kind==="modal"&&D.body!==void 0?typeof D.body=="function"?D.body(E):D.body:typeof t=="function"?t({...B,record:b.record}):t;return r.isValidElement(_)?r.createElement(ho,{appearance:"empty",controller:y,defaultValues:b.record,log:u,onSave:i?async({record:F,action:O,storagePath:V})=>i({record:F,action:O,storagePath:V}):void 0,onDelete:c?async({record:F})=>c({record:F}):void 0,onComplete:async({record:F,action:O})=>{const V=await(d==null?void 0:d({record:F,action:O}))??!0;return V&&S(),V},path:s},_):_}return D.kind==="modal"&&D.body!==void 0?typeof D.body=="function"?D.body(E):D.body:null},[b,D,u,S,t,y,v,M,p,d,c,i,s]);return{normalizedActions:h,activeAction:b,activeActionConfig:D,activeActionBody:C,activeKey:(b==null?void 0:b.actionKey)==="edit"&&b.record?p(b.record):null,runAction:x,runModalAction:R,close:S,getActionContext:v,getModalActionContext:M,getRecordKey:p,formController:y,gridHashId:w}}function tg({columns:e,records:t,form:n}){return r.useMemo(()=>xp(e,t,n),[e,n,t])}function rg({records:e,onLoad:t}){const[n,a]=r.useState(e),[o,s]=r.useState(!1);return r.useEffect(()=>{if(!t){a(e),s(!1);return}let l=!0;const i=t(St(e));if(i instanceof Promise)return s(!0),i.then(c=>{l&&a(c)}).finally(()=>{l&&s(!1)}),()=>{l=!1};a(i),s(!1)},[e,t]),{preparedRecords:n,loading:o}}function ng({selection:e}){const t=e!==null&&e!==!1&&typeof e=="object",n=e?typeof e=="string"?e:e.mode:!1,a=t?e.defaultKeys:void 0,o=t?e.onChange:void 0,[s,l]=r.useState(a??[]),[i,c]=r.useState([]),d=(a==null?void 0:a.join("\0"))??"";r.useEffect(()=>{l(a??[]),c([])},[d]);const u=r.useCallback(()=>{l([]),c([]),o==null||o({keys:[],records:[],hasSelection:!1,clear:()=>{}})},[o]),m=r.useMemo(()=>({keys:s,records:i,hasSelection:s.length>0,clear:u}),[u,s,i]),f=r.useCallback(g=>{l(g.keys),c(g.records),o==null||o(g)},[o]);return{mode:n,activeSelectionKeys:s,selectionState:m,handleSelectionChange:f}}const ag=(e,t,n,a,o)=>(t==null?void 0:t.kind)==="delete"?typeof t.title=="function"?t.title(n):t.title||a:(t==null?void 0:t.kind)==="modal"?typeof t.title=="function"?t.title(n):t.title||ma(e,t,o):ma(e,t,o);function Eo({records:e,recordId:t,sourcePath:n,columns:a,actions:o,form:s,editDeepLink:l,header:i,footer:c,view:d="table",sticky:u,wrapperClassName:m,loading:f=!1,title:g,before:y,after:p,sortable:h=!0,pagination:b,selection:k,onRowClick:w,reorderable:S=!1,onReorder:I,groupBy:A,onSave:x,onDelete:v,onComplete:R,audit:M=!1,onLoad:D}){const C=me(),B=Me("grid"),E=r.useMemo(()=>({add:B.buttonAdd}),[B.buttonAdd]),_=Dt(),{preparedRecords:F,loading:O}=rg({records:e,onLoad:D}),V=tg({columns:a,records:F,form:s}),{mode:j,activeSelectionKeys:z,selectionState:P,handleSelectionChange:$}=ng({selection:k}),{normalizedActions:T,activeAction:L,activeActionConfig:U,activeActionBody:de,activeKey:Z,runAction:q,close:se,getActionContext:re,getModalActionContext:ye,getRecordKey:he,formController:fe}=eg({actions:o,form:s,editDeepLink:l,preparedRecords:F,recordId:t,sourcePath:n,db:_,onSave:x,onDelete:v,onComplete:R,audit:M}),_e=!!T.edit&&!!s,ue=r.useCallback(ge=>{if(w==null||w(ge),!_e)return;const Ae=he(ge);if((L==null?void 0:L.actionKey)==="edit"&&L.record&&he(L.record)===Ae){se();return}q("edit",ge)},[L==null?void 0:L.actionKey,L==null?void 0:L.record,_e,se,he,w,q]),ke=w||_e?ue:void 0,J=r.useCallback((ge,Ae,He)=>{const oe=T[ge];return!oe||!ua(oe,Ae)?null:r.createElement(Ze,{className:He||(ge==="add"?Ra:void 0),icon:oe.icon,label:ma(ge,oe,E),disabled:nc(oe,Ae),onClick:()=>q(ge,Ae)})},[T,q,E]),ee=r.useMemo(()=>Object.entries(T).filter(([ge,Ae])=>ge!=="edit"&&ge!=="delete"&&ua(Ae,void 0)).map(([ge])=>ge),[T]),te=r.useMemo(()=>({title:g,records:F,selection:P,runAction:q}),[F,q,P,g]),K=r.useMemo(()=>({records:F,selection:P,runAction:q}),[F,q,P]),Y=r.useMemo(()=>{if(i!==void 0)return typeof i=="function"?i(te):i;if(!(!g&&!ee.length))return r.createElement(r.Fragment,null,g||r.createElement("span",null),ee.length?r.createElement("span",{className:"flex flex-wrap items-center gap-2"},ee.map(ge=>r.createElement(r.Fragment,{key:ge},J(ge)))):null)},[J,i,ee,te,g]),X=r.useMemo(()=>{if(c!==void 0)return typeof c=="function"?c(K):c},[c,K]),Q=r.useMemo(()=>{if(!(!L||!U||U.kind!=="modal"&&U.kind!=="delete"))return ye(L.actionKey,L.record)},[L,U,ye]),ne=r.useMemo(()=>{if(!(!U||U.kind!=="modal"&&U.kind!=="delete"||U.header===void 0||!Q))return typeof U.header=="function"?U.header(Q):U.header},[U,Q]),le=r.useMemo(()=>{if(!(!U||U.kind!=="modal"&&U.kind!=="delete")){if(U.footer===!1)return!1;if(!(U.footer===void 0||!Q))return typeof U.footer=="function"?U.footer(Q):U.footer}},[U,Q]),Se=Ep(h);return r.createElement(r.Fragment,null,r.createElement($a,{wrapperClassName:m,header:Y,footer:X,className:(C.Grid.Card.className+(u?` sticky-${u}`:"")).trim(),headerClassName:C.Grid.Card.headerClassName,bodyClassName:C.Grid.Card.bodyClassName,footerClassName:C.Grid.Card.footerClassName,loading:f||O},d==="gallery"?r.createElement(cc,{records:F,recordId:t,sortable:Se||h,pagination:b,selection:j,selectedKeys:z,onSelectionChange:j?$:void 0,onRowClick:ke,groupBy:A,wrapperClassName:C.Grid.Gallery.wrapperClassName,before:y,after:p}):r.createElement(ac,{records:F,recordId:t,columns:V,runAction:q,sortable:Se||h,pagination:b,selection:j,selectedKeys:z,onSelectionChange:j?$:void 0,onRowClick:ke,reorderable:S,onReorder:I,activeKey:Z,groupBy:A,wrapperClassName:C.Grid.Table.wrapperClassName,before:y,after:p})),L&&U&&(U.kind==="modal"||U.kind==="delete")&&r.createElement(or,{size:(U.kind==="modal"||U.kind==="delete")&&U.size||C.Grid.Modal.size,position:(U.kind==="modal"||U.kind==="delete")&&U.position||C.Grid.Modal.position,header:ne,title:ag(L.actionKey,U,U.kind==="modal"||U.kind==="delete"?ye(L.actionKey,L.record):re(L.actionKey,L.record),B.deleteConfirm,E),onClose:se,onSave:U.kind==="modal"&&U.footer===void 0&&(L.actionKey==="add"||L.actionKey==="edit")?ge=>fe.save(ge):void 0,onDelete:U.kind==="delete"?async()=>{const ge=L.record;if(!ge)return!1;const Ae=v?await v({record:ge}):n?`${n}/${he(ge)}`:void 0;if(!Ae&&!v)return!1;Ae&&await _.remove(Ae);const He=await(R==null?void 0:R({record:ge,action:"delete"}))??!0;return He&&se(),He}:U.kind==="modal"&&U.footer===void 0&&L.actionKey==="edit"&&L.record&&T.delete?async()=>(await ye(L.actionKey,L.record).runAction("remove"),!1):void 0,footer:le,showCancel:U.kind==="modal"||U.kind==="delete"?U.footer===void 0:!0,allowFullscreen:U.kind==="modal"||U.kind==="delete"?U.allowFullscreen:!0,wrapperClassName:C.Grid.Modal.wrapperClassName,className:C.Grid.Modal.className,headerClassName:C.Grid.Modal.headerClassName,titleClassName:C.Grid.Modal.titleClassName,bodyClassName:C.Grid.Modal.bodyClassName,footerClassName:C.Grid.Modal.footerClassName},de))}function dc(e){return r.createElement(Eo,{...e})}function uc(e){return"records"in e?r.createElement(dc,{...e}):r.createElement(rc,{...e})}function mc(){return r.createElement(uc,{path:"/users",recordId:e=>`${e.email??""}`.replace("@","-"),form:r.createElement(r.Fragment,null,r.createElement(Wa,{name:"username",label:"Username"}),r.createElement(qa,{name:"email",label:"Email",required:!0,readOnlyAfterSet:!0}),r.createElement(pn,{name:"permission",label:"Permission",options:[{value:"admin",label:"Admin"},{value:"user",label:"User"}],required:!0}))})}const og=()=>{const e=Me("common");return r.createElement("div",{className:"flex flex-col justify-center items-center vh-100"},r.createElement("h1",null,"404"),r.createElement("p",null,e.notFoundMessage),r.createElement(Te.Link,{to:"/"},r.createElement(W,{name:"house-door"})," ",e.goHome))},sg=({size:e=28})=>r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"}),r.createElement("line",{x1:"12",x2:"12",y1:"9",y2:"13"}),r.createElement("line",{x1:"12",x2:"12.01",y1:"17",y2:"17"})),hs=({open:e})=>r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",style:{transition:"transform 0.18s",transform:e?"rotate(180deg)":"none",flexShrink:0}},r.createElement("polyline",{points:"6 9 12 15 18 9"})),lg=()=>r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}),r.createElement("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"})),ig=()=>r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"m22 2-7 20-4-9-9-4Z"}),r.createElement("path",{d:"M22 2 11 13"})),cg=()=>r.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},r.createElement("path",{d:"m8 2 1.88 1.88M14.12 3.88 16 2"}),r.createElement("path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}),r.createElement("path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6z"}),r.createElement("path",{d:"M12 20v-9"}),r.createElement("path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5"}),r.createElement("path",{d:"M6 13H2"}),r.createElement("path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4"}),r.createElement("path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4"}),r.createElement("path",{d:"M22 13h-4"}),r.createElement("path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4"})),fc=(e,t)=>({error:{message:e.message,stack:e.stack??""},componentStack:(t==null?void 0:t.componentStack)??"",context:{url:typeof window<"u"?window.location.href:"",userAgent:typeof navigator<"u"?navigator.userAgent:"",timestamp:new Date().toISOString()}}),dg=(e,t)=>{const n=fc(e,t);return[`Error: ${n.error.message}`,"","--- Stack Trace ---",n.error.stack,"","--- Component Stack ---",n.componentStack,"","--- Context ---",`URL: ${n.context.url}`,`Timestamp: ${n.context.timestamp}`,`Agent: ${n.context.userAgent}`].join(`
16
+ `)};class pc extends r.Component{constructor(t){super(t),this.reset=()=>{window.location.reload()},this.copy=()=>{var o;const{error:n,errorInfo:a}=this.state;n&&((o=navigator.clipboard)==null||o.writeText(dg(n,a)).then(()=>{this.setState({copied:!0}),setTimeout(()=>this.setState({copied:!1}),2e3)}))},this.sendReport=()=>{const{error:n,errorInfo:a}=this.state,{reportUrl:o}=this.props;!n||!o||(this.setState({reportState:"sending"}),fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(fc(n,a))}).then(s=>this.setState({reportState:s.ok?"sent":"failed"})).catch(()=>this.setState({reportState:"failed"})))},this.state={error:null,errorInfo:null,detailsOpen:!1,debugOpen:!1,copied:!1,reportState:"idle"}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){this.setState({errorInfo:n}),console.error("[ErrorBoundary]",t.message,n.componentStack)}render(){const{error:t,errorInfo:n,detailsOpen:a,debugOpen:o,copied:s,reportState:l}=this.state;if(!t)return this.props.children;const{fallback:i,reportUrl:c,fullPage:d}=this.props,u=this.props.debug??!1??!1;if(typeof i=="function")return i(t,this.reset);if(i!=null)return i;const m=(t.stack??t.message).split(`
17
+ `).map(y=>y.trim()).filter(Boolean),f=((n==null?void 0:n.componentStack)??"").split(`
18
+ `).map(y=>y.trim()).filter(Boolean),g=d?"flex min-h-screen flex-col items-center justify-center bg-background p-8":"flex min-h-[calc(100vh-4rem)] flex-col items-center justify-center p-8";return r.createElement("div",{className:g},r.createElement("div",{className:"flex w-full max-w-xl flex-col gap-4 rounded-xl border border-destructive/25 bg-destructive/5 p-6"},r.createElement("div",{className:"flex items-start gap-4"},r.createElement("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-full bg-destructive/12 text-destructive"},r.createElement(sg,{size:22})),r.createElement("div",null,r.createElement("p",{className:"text-sm font-semibold text-foreground"},"This page ran into a problem"),r.createElement("p",{className:"mt-0.5 text-xs text-muted-foreground"},"An unexpected error occurred while rendering this content."))),r.createElement("div",{className:"rounded-lg border bg-background/60"},r.createElement("button",{onClick:()=>this.setState(y=>({detailsOpen:!y.detailsOpen})),className:"flex w-full items-center gap-2 px-3 py-2.5 text-left text-xs font-medium text-muted-foreground transition-colors hover:text-foreground"},r.createElement(hs,{open:a}),"Technical details",r.createElement("span",{className:"ml-auto truncate max-w-[280px] font-mono text-[11px] text-muted-foreground/70"},t.message)),a&&r.createElement("div",{className:"border-t"},r.createElement("pre",{className:"max-h-48 overflow-y-auto px-3 py-3 text-[11px] leading-relaxed text-muted-foreground font-mono whitespace-before-wrap break-all"},m.join(`
19
+ `)))),u&&r.createElement("div",{className:"rounded-lg border border-amber-200/60 bg-amber-50/40 dark:border-amber-900/40 dark:bg-amber-950/20"},r.createElement("button",{onClick:()=>this.setState(y=>({debugOpen:!y.debugOpen})),className:"flex w-full items-center gap-2 px-3 py-2.5 text-left text-xs font-medium text-amber-700 dark:text-amber-400 transition-colors hover:opacity-80"},r.createElement(cg,null),r.createElement(hs,{open:o}),"Debug information",r.createElement("span",{className:"ml-auto text-[10px] font-normal opacity-60"},"DEV")),o&&r.createElement("div",{className:"border-t border-amber-200/60 dark:border-amber-900/40 px-3 py-3 space-y-3"},r.createElement("div",{className:"space-y-1"},r.createElement("p",{className:"text-[10px] font-semibold uppercase tracking-wide text-amber-700/70 dark:text-amber-400/70"},"Context"),r.createElement("dl",{className:"grid grid-cols-[5rem_1fr] gap-x-2 gap-y-0.5 text-[11px] font-mono"},r.createElement("dt",{className:"text-muted-foreground"},"URL"),r.createElement("dd",{className:"truncate text-foreground"},typeof window<"u"?window.location.href:"-"),r.createElement("dt",{className:"text-muted-foreground"},"Time"),r.createElement("dd",{className:"text-foreground"},new Date().toISOString()),r.createElement("dt",{className:"text-muted-foreground"},"Agent"),r.createElement("dd",{className:"truncate text-foreground opacity-70"},typeof navigator<"u"?navigator.userAgent:"-"))),f.length>0&&r.createElement("div",{className:"space-y-1"},r.createElement("p",{className:"text-[10px] font-semibold uppercase tracking-wide text-amber-700/70 dark:text-amber-400/70"},"Component tree"),r.createElement("pre",{className:"max-h-36 overflow-y-auto text-[11px] font-mono leading-relaxed text-foreground/80 whitespace-before-wrap"},f.join(`
20
+ `))),r.createElement("button",{onClick:this.copy,className:"flex items-center gap-1.5 rounded border px-2.5 py-1 text-[11px] font-medium transition-colors hover:bg-accent"},r.createElement(lg,null),s?"Copied!":"Copy debug info"))),r.createElement("div",{className:"flex flex-wrap items-center gap-2"},r.createElement("button",{onClick:this.reset,className:"rounded-md border bg-background px-4 py-1.5 text-sm font-medium shadow-sm transition-colors hover:bg-accent"},"Try again"),r.createElement("a",{href:"/",className:"rounded-md bg-destructive/10 px-4 py-1.5 text-sm font-medium text-destructive transition-colors hover:bg-destructive/20"},"Go to home"),c&&r.createElement("button",{onClick:this.sendReport,disabled:l==="sending"||l==="sent",className:"ml-auto flex items-center gap-1.5 rounded-md border px-4 py-1.5 text-sm font-medium transition-colors hover:bg-accent disabled:opacity-50"},r.createElement(ig,null),l==="idle"&&"Send report",l==="sending"&&"Sending...",l==="sent"&&"Report sent ✓",l==="failed"&&"Failed - retry"))))}}const ug=async()=>{var e,t;(t=(e=window.google)==null?void 0:e.accounts)!=null&&t.id||(Ts([{src:"https://accounts.google.com/gsi/client",async:!0,clean:!0}]),await new Promise(n=>setTimeout(n,0)))};class No{getConfigurationState(){return Tt("GoogleAuthProvider",ar(Or("oAuth2"),["clientId"],"google.oAuth2."))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;const t=Jt("user");if(!t)return null;const n=t.profile??{};return{...n,uid:t.uid,email:t.email??n.email,displayName:t.displayName??n.name,photoURL:t.photoURL??n.picture}}async signIn(t={}){const n=Or("oAuth2");if(!this.isConfigured()||!(n!=null&&n.clientId))throw new Error("GoogleAuthProvider: missing google.oAuth2.clientId configuration.");return await ug(),new Promise((a,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 d=Is(i);localStorage.setItem("googleCredentialToken",i);const u=dt();if(!u){o(new Error("GoogleAuthProvider: Firebase auth is not initialized."));return}const m=Ge.GoogleAuthProvider.credential(i),f=await Ge.signInWithCredential(u,m),g=Ge.getAdditionalUserInfo(f);kn({...f.user,profile:(g==null?void 0:g.profile)??d},"user"),(c=t.scopes)!=null&&c.length&&await this.getAccessToken(t.scopes),a(this.getUser())}catch(d){o(d)}},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 a,o,s,l;const t=Jt("user");(a=t==null?void 0:t.profile)!=null&&a.sub&&((l=(s=(o=window.google)==null?void 0:o.accounts)==null?void 0:s.id)==null||l.revoke(t.profile.sub)),localStorage.removeItem("googleCredentialToken"),bl("user");const n=dt();n&&await Ge.signOut(n)}onAuthChange(t){const n=dt();return n?Ge.onAuthStateChanged(n,a=>{const o=this.getUser();if(!a){t(o);return}const s=Jt("user"),l=(s==null?void 0:s.profile)??{};t({...l,uid:a.uid,email:a.email??l.email,displayName:a.displayName??l.name,photoURL:a.photoURL??l.picture})}):(t(this.getUser()),()=>{})}getAccessToken(t=[]){const n=Or("oAuth2");if(!this.isConfigured()||!(n!=null&&n.clientId))return Promise.reject("Google client ID not found");const a=t.join(" "),o=`googleAccessToken::${a}`,s=`googleExpiresAt::${a}`;return new Promise((l,i)=>{var f,g,y;const c=localStorage.getItem(o),d=localStorage.getItem(s),u=!d||new Date(d).getTime()<Date.now();if(c&&!u){l(c);return}const m=(y=(g=(f=window.google)==null?void 0:f.accounts)==null?void 0:g.oauth2)==null?void 0:y.initTokenClient({client_id:n.clientId,scope:a,callback:p=>{p.access_token?(localStorage.setItem(o,p.access_token),localStorage.setItem(s,new Date(Date.now()+p.expires_in*1e3).toISOString()),l(p.access_token)):i("Failed to obtain access token")}});if(!m){i("Google token client is not available");return}m.requestAccessToken()})}isAuthenticated(){return!!this.getUser()}}const gc=r.createContext(null),hc=({registry:e,defaultKey:t,children:n})=>{const a=r.useMemo(()=>({registry:e,defaultKey:t}),[e,t]);return r.createElement(gc.Provider,{value:a},n)},mg=e=>{const t=r.useContext(gc);if(!t)return null;const n=e??t.defaultKey;return t.registry[n]??null},bc=r.createContext(null),fg=({registry:e,defaultKey:t,children:n})=>{const a=r.useMemo(()=>({registry:e,defaultKey:t}),[e,t]);return r.createElement(bc.Provider,{value:a},n)},pg=e=>{const t=r.useContext(bc);if(!t)throw new Error("useCredentialsProvider must be used inside <App providers={...} />.");const n=e??t.defaultKey,a=t.registry[n];if(!a)throw new Error(`CredentialsProvider '${n}' is not registered. Available: ${Object.keys(t.registry).join(", ")}`);return a},gt=e=>e.replace(/^\/+|\/+$/g,""),gg=e=>gt(e).split("/").filter(Boolean),Vt=e=>gg(e).length%2===0,kt=()=>Ne.getFirestore(),mr=(e,t,n)=>{const a=`Error during ${e}: ${String(t)}`;if(n)throw new Error(a);console.error(a)},hg={eq:"==",lt:"<",lte:"<=",gt:">",gte:">=",in:"in",nin:"not-in"},bs=(e,t)=>{const n=[];if(e)for(const[a,o]of Object.entries(e)){const s=o!==null&&typeof o=="object"&&!Array.isArray(o)?o:Array.isArray(o)?{in:o}:{eq:o};for(const[l,i]of Object.entries(s)){const c=hg[l];c&&n.push(Ne.where(a,c,i))}}if(t)for(const[a,o]of Object.entries(t))n.push(Ne.orderBy(a,o));return n},vs="@key",ys=(e,t)=>{if(!t)return e.docs.map((a,o)=>({[Be]:a.id,_index:o,...a.data()}));const n=Object.keys(t);return e.docs.map((a,o)=>{const s={[vs]:a.id,...a.data()},l={};for(const i of n){const c=t[i];l[i]=c.includes("{")?Ue.parse(s,c):c===vs?a.id:s[c]}return{[Be]:a.id,_index:o,...l}})},xs=e=>Object.fromEntries(e.map(t=>[t[Be],t])),Br=class Br{constructor(){this.read=async(t,{where:n,order:a,toArray:o=!1,exception:s=!1}={})=>{const l=kt(),i=gt(t);try{if(Vt(t)){const f=await Ne.getDoc(Ne.doc(l,i));if(!f.exists()){if(s)throw new Error(`Document not found: ${t}`);return}return ht(`Info: Document found in Firestore at ${t}`),{[Be]:f.id,...f.data()}}const c=bs(n,a),d=c.length?Ne.query(Ne.collection(l,i),...c):Ne.collection(l,i),u=await Ne.getDocs(d);ht(`Info: ${u.size} docs found in Firestore at ${t}`);const m=ys(u);return o?m:xs(m)}catch(c){mr(`reading data in Firestore for ${t}`,c,s)}},this.set=async(t,n,a=!1)=>{const o=kt(),s=gt(t);try{Vt(t)?await Ne.setDoc(Ne.doc(o,s),n):await Ne.addDoc(Ne.collection(o,s),n),ht(`Data successfully set in Firestore at ${t}`)}catch(l){mr(`setting data in Firestore for ${t}`,l,a)}},this.update=async(t,n,a=!1)=>{const o=kt(),s=gt(t);try{Vt(t)?await Ne.updateDoc(Ne.doc(o,s),n):await Ne.addDoc(Ne.collection(o,s),n),ht(`Data successfully updated in Firestore at ${t}`)}catch(l){mr(`updating data in Firestore for ${t}`,l,a)}},this.remove=async(t,n=!1)=>{const a=kt(),o=gt(t);try{if(Vt(t))await Ne.deleteDoc(Ne.doc(a,o));else throw new Error("Deleting an entire collection is not supported. Remove individual documents.");ht(`Data successfully removed from Firestore at ${t}`)}catch(s){mr(`removing data in Firestore for ${t}`,s,n)}},this.count=async t=>{if(Vt(t))return 1;const n=kt();try{return(await Ne.getCountFromServer(Ne.collection(n,gt(t)))).data().count}catch{return(await Ne.getDocs(Ne.collection(n,gt(t)))).size}},this.subscribe=(t,n,{where:a,order:o,fieldMap:s,onLoad:l}={})=>{const i=dt();if(!i||!t)return()=>{};const c=()=>{const m=kt(),f=gt(t);if(Vt(t))return Ne.onSnapshot(Ne.doc(m,f),p=>{if(!p.exists()){n([]);return}n([{[Be]:p.id,_index:0,...p.data()}])},p=>console.error("Firestore onSnapshot error:",p));const g=bs(a,o),y=g.length?Ne.query(Ne.collection(m,f),...g):Ne.collection(m,f);return Ne.onSnapshot(y,p=>{const h=ys(p,s);if(l){const b=xs(h),k=l(b),w=Object.entries(k).map(([S,I],A)=>({[Be]:S,_index:A,...typeof I=="object"&&I!==null?I:{}}));n(w)}else n(h)},p=>console.error("Firestore onSnapshot error:",p))};let d;const u=Ge.onAuthStateChanged(i,m=>{d==null||d(),d=void 0,m?d=c():n([])});return()=>{d==null||d(),u()}},this.readShallow=async(t,n=!1)=>{const a=kt(),o=gt(t);try{if(Vt(t)){const l=await Ne.getDoc(Ne.doc(a,o));return l.exists()?Object.keys(l.data()??{}):[]}return(await Ne.getDocs(Ne.collection(a,o))).docs.map(l=>l.id)}catch(s){return mr(`reading shallow data in Firestore for ${t}`,s,n??!1),[]}},this.setChunks=async(t,n,{chunkSize:a=500,purge:o=!1,onProgress:s}={})=>{const l=kt(),i=gt(t),c=Math.min(a,500);try{if(o){s==null||s(0,0,`Purging existing data at ${t}`);const f=(await Ne.getDocs(Ne.collection(l,i))).docs.map(g=>g.id);for(let g=0;g<f.length;g+=c){const y=Ne.writeBatch(l);f.slice(g,g+c).forEach(p=>y.delete(Ne.doc(l,i,p))),await y.commit()}}const d=Object.entries(n),u=Math.ceil(d.length/c);for(let m=0;m<d.length;m+=c){const f=Ne.writeBatch(l);d.slice(m,m+c).forEach(([y,p])=>{f.set(Ne.doc(l,i,y),p)}),await f.commit();const g=Math.floor(m/c)+1;s==null||s(g,u,`Saving batch ${g}/${u}`)}ht(`setChunks completed for Firestore at ${t} (${d.length} docs)`)}catch(d){mr(`setting data in chunks in Firestore for ${t}`,d,!1)}},!Br.listenerRegistered&&typeof Je=="function"&&(Br.listenerRegistered=!0,Je(t=>{t.firebase&&An(t.firebase)}))}getConfigurationState(){return Hu()}isConfigured(){return this.getConfigurationState().configured}};Br.listenerRegistered=!1;let yn=Br;const bg={github:"github.com",apple:"apple.com",microsoft:"microsoft.com",yahoo:"yahoo.com",twitter:"twitter.com",facebook:"facebook.com"};function vg(e){const t=bg[e]??e;return new Ge.OAuthProvider(t)}function Ar(e){return e?{uid:e.uid,email:e.email??void 0,displayName:e.displayName??void 0,photoURL:e.photoURL??void 0,isAnonymous:e.isAnonymous}:null}class vc{getConfigurationState(){return Va()}isConfigured(){return this.getConfigurationState().configured}getUser(){const t=dt();return Ar((t==null?void 0:t.currentUser)??null)}isAuthenticated(){return!!this.getUser()}async signIn(t={}){const n=dt();if(!n)throw new Error("FirebaseAuthProvider: Firebase auth is not initialized");const a=t.method??"password";if(a==="anonymous"){const{user:i}=await Ge.signInAnonymously(n);return Ar(i)}if(a==="oauth"){const{provider:i}=t;if(!i)throw new Error("FirebaseAuthProvider.signIn: provider is required for oauth");const{user:c}=await Ge.signInWithPopup(n,vg(i));return Ar(c)}const{email:o,password:s}=t;if(!o||!s)throw new Error("FirebaseAuthProvider.signIn: email and password are required");const{user:l}=await Ge.signInWithEmailAndPassword(n,o,s);return Ar(l)}async signOut(){const t=dt();if(!t)throw new Error("FirebaseAuthProvider: Firebase auth is not initialized");await Ge.signOut(t)}onAuthChange(t){const n=dt();return n?Ge.onAuthStateChanged(n,a=>t(Ar(a))):(t(null),()=>{})}async getAccessToken(){const t=dt();if(!(t!=null&&t.currentUser))throw new Error("FirebaseAuthProvider: no active session");return t.currentUser.getIdToken()}}const ws="https://oauth2.googleapis.com/token";function yg(e){const t=e.replace(/-----BEGIN PRIVATE KEY-----/,"").replace(/-----END PRIVATE KEY-----/,"").replace(/\s+/g,""),n=atob(t),a=new Uint8Array(n.length);for(let o=0;o<n.length;o++)a[o]=n.charCodeAt(o);return a.buffer}function Qn(e){return btoa(typeof e=="string"?e:String.fromCharCode(...new Uint8Array(e))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function xg(e,t){const a=Qn(JSON.stringify({alg:"RS256",typ:"JWT"})),o=Qn(JSON.stringify(e)),s=`${a}.${o}`,l=await crypto.subtle.importKey("pkcs8",yg(t),{name:"RSASSA-PKCS1-v1_5",hash:"SHA-256"},!1,["sign"]),i=await crypto.subtle.sign("RSASSA-PKCS1-v1_5",l,new TextEncoder().encode(s));return`${s}.${Qn(i)}`}class yc{constructor(t){this.cache=new Map,this.config=t}async getToken(t="https://www.googleapis.com/auth/cloud-platform"){const n=this.cache.get(t);if(n&&n.expiresAt>Date.now()+6e4)return n.token;const a=Math.floor(Date.now()/1e3),o={iss:this.config.client_email,scope:t,aud:ws,iat:a,exp:a+3600},s=await xg(o,this.config.private_key),l=await fetch(ws,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:s})});if(!l.ok){const c=await l.text();throw new Error(`GoogleServiceAccountProvider: token request failed - ${c}`)}const i=await l.json();return this.cache.set(t,{token:i.access_token,expiresAt:Date.now()+(i.expires_in??3600)*1e3}),i.access_token}}const wg="www.dropbox.com/oauth2";class xc{constructor(t){this.config=t}getConfigurationState(){return Tt("DropboxAuthProvider",ar(this.config,["clientId"],"dropbox."))}isConfigured(){return this.getConfigurationState().configured}getUser(){if(!this.isConfigured())return null;const t=oa(this.config.clientId);return t!=null&&t.access_token?{uid:t.account_id??this.config.clientId,displayName:"Dropbox",provider:"dropbox",accountId:t.account_id}:null}async signIn(t={}){if(!this.isConfigured())throw new Error("DropboxAuthProvider: missing dropbox.clientId configuration.");return iu({authServer:wg,clientID:this.config.clientId,scopes:t.scopes,refreshParamName:"token_access_type"}),this.getUser()}async signOut(){du(this.config.clientId)}onAuthChange(t){return t(this.getUser()),()=>{}}async getAccessToken(){if(!this.isConfigured())throw new Error("DropboxAuthProvider: missing dropbox.clientId configuration.");const t=await Sn(this.config.clientId);if(!t)throw new Error("DropboxAuthProvider: access token not found.");return t}isAuthenticated(){var t;return this.isConfigured()?!!((t=oa(this.config.clientId))!=null&&t.access_token):!1}}const Co=e=>{const t=Or("oAuth2");if(!t)return console.warn("GoogleAuth: Missing oAuth2.clientId in configuration"),Promise.reject("Google client ID not found");const n=e.join(" "),a=`googleAccessToken::${n}`,o=`googleExpiresAt::${n}`;return new Promise((s,l)=>{const i=localStorage.getItem(a),c=localStorage.getItem(o),d=!c||new Date(c).getTime()<Date.now();i&&!d?s(i):window.google.accounts.oauth2.initTokenClient({client_id:t.clientId,scope:n,callback:m=>{m.access_token?(localStorage.setItem(a,m.access_token),localStorage.setItem(o,new Date(Date.now()+m.expires_in*1e3).toISOString()),s(m.access_token)):l("Failed to obtain access token")}}).requestAccessToken()})};async function wc({to:e,bcc:t,subject:n,message:a}){const o=await Co(["https://www.googleapis.com/auth/gmail.send"]),s=[`To: ${e.join(", ")}`];t&&t.length&&s.push(`Bcc: ${t.join(", ")}`);const l=[...s,"Content-Type: text/html; charset=utf-8","MIME-Version: 1.0",`Subject: ${n}`,"",a].join(`
21
+ `),i=new TextEncoder().encode(l);let c="";for(const f of i)c+=String.fromCharCode(f);const d=btoa(c).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),u=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:d})});if(!u.ok)throw new Error("Failed to send email");const m=await u.json();return console.log("Email sent:",m),m}class Ec{getConfigurationState(){return Tt("GmailEmailProvider",ar(Or("oAuth2"),["clientId"],"google.oAuth2."))}isConfigured(){return this.getConfigurationState().configured}async send(t){if(!this.isConfigured())throw new Error(this.getConfigurationState().reason||"GmailEmailProvider is not configured.");await wc({to:Array.isArray(t.to)?t.to:[t.to],bcc:t.bcc?Array.isArray(t.bcc)?t.bcc:[t.bcc]:void 0,subject:t.subject,message:t.message})}}function Mr(e){var t,n,a;return e?{uid:e.id,email:e.email??void 0,displayName:((t=e.user_metadata)==null?void 0:t.full_name)??((n=e.user_metadata)==null?void 0:n.name)??e.email??void 0,photoURL:((a=e.user_metadata)==null?void 0:a.avatar_url)??void 0,raw:e}:null}class Nc{get client(){return Ua(this.config.url,this.config.anonKey)}constructor(t){this.config=t}getConfigurationState(){return Ha(this.config)}isConfigured(){return this.getConfigurationState().configured}getUser(){var n;const t=((n=this.client.auth)==null?void 0:n._session)??null;return Mr((t==null?void 0:t.user)??null)}isAuthenticated(){return!!this.getUser()}async signIn(t={}){const n=t.method??"password";if(n==="anonymous"){const{data:i,error:c}=await this.client.auth.signInAnonymously();if(c)throw c;return Mr(i.user)}if(n==="magic_link"){const i=t.email;if(!i)throw new Error("SupabaseAuthProvider.signIn: email is required for magic_link");const{error:c}=await this.client.auth.signInWithOtp({email:i,options:{emailRedirectTo:t.redirectTo}});if(c)throw c;return null}if(n==="oauth"){const i=t.provider;if(!i)throw new Error("SupabaseAuthProvider.signIn: provider is required for oauth");const{error:c}=await this.client.auth.signInWithOAuth({provider:i,options:{redirectTo:t.redirectTo}});if(c)throw c;return null}const{email:a,password:o}=t;if(!a||!o)throw new Error("SupabaseAuthProvider.signIn: email and password are required");const{data:s,error:l}=await this.client.auth.signInWithPassword({email:a,password:o});if(l)throw l;return Mr(s.user)}async signOut(){const{error:t}=await this.client.auth.signOut();if(t)throw t}onAuthChange(t){this.client.auth.getSession().then(({data:a})=>{var o;t(Mr(((o=a.session)==null?void 0:o.user)??null))});const{data:{subscription:n}}=this.client.auth.onAuthStateChange((a,o)=>{t(Mr((o==null?void 0:o.user)??null))});return()=>n.unsubscribe()}async getAccessToken(){var o;const{data:t,error:n}=await this.client.auth.getSession();if(n)throw n;const a=(o=t.session)==null?void 0:o.access_token;if(!a)throw new Error("SupabaseAuthProvider: no active session");return a}}const Eg="https://api.anthropic.com/v1/models",Ng="https://api.anthropic.com/v1/messages",Cc={id:"anthropic",label:"Anthropic",configKey:"anthropicApiKey",defaultModel:"claude-sonnet-4-0",fallbackModels:["claude-sonnet-4-0","claude-opus-4-1","claude-3-7-sonnet-latest"],dashboardUrl:"https://console.anthropic.com/settings/keys",capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{const t=await ot(Eg,{headers:{"x-api-key":e,"anthropic-version":"2023-06-01"}},Qe);return Array.isArray(t==null?void 0:t.data)?t.data.map(n=>n.id).filter(Boolean):[]},complete:async(e,t)=>{const n=t.attachments??[],a=n.length>0?[...n.map(s=>s.mimeType.startsWith("image/")?{type:"image",source:{type:"base64",media_type:s.mimeType,data:s.base64}}:{type:"document",source:{type:"base64",media_type:s.mimeType,data:s.base64}}),{type:"text",text:t.prompt}]:t.prompt,o=await ot(Ng,{method:"POST",headers:{"x-api-key":e,"anthropic-version":"2023-06-01"},body:{model:t.model,max_tokens:4096,...t.role?{system:ct.parseRole(t.role,t)}:{},messages:[{role:"user",content:a}],...typeof t.temperature=="number"?{temperature:t.temperature}:{}}},Qe);return io(o==null?void 0:o.content)}},Cg=e=>e.replace(/\/+$/,""),Er=({id:e,label:t,configKey:n,requiredConfigKeys:a,defaultModel:o,fallbackModels:s,baseUrl:l,modelsUrl:i,chatCompletionsUrl:c,dashboardUrl:d,validateApiKey:u})=>{const m=Cg(l),f=i||`${m}/models`,g=c||`${m}/chat/completions`;return{id:e,label:t,configKey:n,requiredConfigKeys:a,defaultModel:o,fallbackModels:s,dashboardUrl:d,capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!1},validateApiKey:u??(async p=>{try{const h=await ot(f,{headers:{Authorization:`Bearer ${p}`}},Qe);return h===null?{valid:!1,error:"Nessuna risposta dal server (CORS o proxy non attivo)"}:typeof(h==null?void 0:h.message)=="string"&&!Array.isArray(h==null?void 0:h.data)?{valid:!1,error:h.message}:{valid:!0}}catch(h){return{valid:!1,error:gn(h)}}}),discoverModels:async p=>{const h=await ot(f,{headers:{Authorization:`Bearer ${p}`}},Qe);return Array.isArray(h==null?void 0:h.data)?h.data.map(b=>b.id).filter(Boolean):[]},complete:async(p,h)=>{var S,I,A;const b=(h.attachments??[]).filter(x=>x.mimeType.startsWith("image/")),k=b.length>0?[...b.map(x=>({type:"image_url",image_url:{url:`data:${x.mimeType};base64,${x.base64}`}})),{type:"text",text:h.prompt}]:h.prompt,w=await ot(g,{method:"POST",headers:{Authorization:`Bearer ${p}`},body:{model:h.model,messages:[...h.role?[{role:"system",content:ct.parseRole(h.role,h)}]:[],{role:"user",content:k}],...typeof h.temperature=="number"?{temperature:h.temperature}:{}}},Qe);if(!w)throw Mi(t);return io((A=(I=(S=w==null?void 0:w.choices)==null?void 0:S[0])==null?void 0:I.message)==null?void 0:A.content)}}},kc=Er({id:"deepseek",label:"DeepSeek",configKey:"deepSeekApiKey",defaultModel:"deepseek-chat",fallbackModels:["deepseek-chat","deepseek-reasoner"],baseUrl:"https://api.deepseek.com",dashboardUrl:"https://platform.deepseek.com/api_keys"}),Es="https://generativelanguage.googleapis.com/v1beta/models",kg="https://generativelanguage.googleapis.com/v1beta/models",Sc={id:"gemini",label:"Gemini",configKey:"geminiApiKey",defaultModel:"gemini-2.5-pro",fallbackModels:["gemini-2.5-pro","gemini-2.5-flash","gemini-2.5-flash-lite"],dashboardUrl:"https://aistudio.google.com/app/apikey",capabilities:{supportsTemperature:!0,supportsVision:!0,supportsDocuments:!0},discoverModels:async e=>{const t=await ot(`${Es}?key=${e}`,null,Qe);return Array.isArray(t==null?void 0:t.models)?t.models.map(n=>{var a;return(a=n.name)==null?void 0:a.replace(/^models\//,"")}).filter(Boolean):[]},validateApiKey:async e=>{try{const t=await ot(`${Es}?key=${e}`,null,Qe);return t===null?{valid:!1,error:"Nessuna risposta dal server (CORS o rete)"}:t!=null&&t.error?{valid:!1,error:typeof t.error=="object"&&"message"in t.error?String(t.error.message):String(t.error)}:{valid:!0}}catch(t){const n=t;return{valid:!1,error:n!=null&&n.error&&typeof n.error=="object"?String(n.error.message??t):String(t)}}},complete:async(e,t)=>{var l,i,c;const a=[...(t.attachments??[]).map(d=>({inline_data:{mime_type:d.mimeType,data:d.base64}})),{text:t.prompt}],o=await ot(`${kg}/${t.model}:generateContent?key=${e}`,{method:"POST",body:{contents:[{parts:a}],...t.role?{systemInstruction:{parts:[{text:ct.parseRole(t.role,t)}]}}:{},generationConfig:typeof t.temperature=="number"?{temperature:t.temperature}:void 0}},Qe),s=(c=(i=(l=o==null?void 0:o.candidates)==null?void 0:l[0])==null?void 0:i.content)==null?void 0:c.parts;return Array.isArray(s)&&s.map(d=>d&&typeof d=="object"&&"text"in d?String(d.text):"").join(`
22
+ `).trim()||null}},Ac=Er({id:"mistral",label:"Mistral",configKey:"mistralApiKey",defaultModel:"mistral-medium-3",fallbackModels:["mistral-medium-3","mistral-small-3.1","ministral-8b-latest"],baseUrl:"https://api.mistral.ai/v1",dashboardUrl:"https://console.mistral.ai/api-keys"}),Mc=Er({id:"openai",label:"OpenAI",configKey:"openaiApiKey",defaultModel:"gpt-5.2",fallbackModels:["gpt-5.2","gpt-5","gpt-5-mini","gpt-5-nano","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano"],baseUrl:"https://api.openai.com/v1",dashboardUrl:"https://platform.openai.com/api-keys"}),Sg="https://opencode.ai/zen/v1/models",Ag="https://opencode.ai/zen/v1/chat/completions",Mg=["big-pickle","deepseek-v4-flash-free","glm-5","glm-5.1","grok-build-0.1","kimi-k2.5","kimi-k2.6","mimo-v2.5-free","minimax-m2.5","minimax-m2.7","nemotron-3-super-free"],Ig=e=>{const t=e.endpoint||"",n=e.ai_sdk_package||e.aiSdkPackage||"";return t.includes("/chat/completions")||n.includes("openai-compatible")},Ic={id:"opencode",label:"OpenCode",configKey:"openCodeApiKey",defaultModel:"deepseek-v4-flash-free",fallbackModels:Mg,dashboardUrl:"https://opencode.ai",capabilities:{supportsTemperature:!0},discoverModels:async e=>{const t=await ot(Sg,{headers:{Authorization:`Bearer ${e}`}},Qe);return(Array.isArray(t==null?void 0:t.data)?t.data:Array.isArray(t==null?void 0:t.models)?t.models:Array.isArray(t)?t:[]).filter(a=>Ig(a)).map(a=>a.id).filter(a=>typeof a=="string"&&a.length>0)},complete:async(e,t)=>{var a,o,s;const n=await ot(Ag,{method:"POST",headers:{Authorization:`Bearer ${e}`},body:{model:t.model,messages:[...t.role?[{role:"system",content:ct.parseRole(t.role,t)}]:[],{role:"user",content:t.prompt}],...typeof t.temperature=="number"?{temperature:t.temperature}:{}}},Qe);if(!n)throw Mi("OpenCode");return io((s=(o=(a=n==null?void 0:n.choices)==null?void 0:a[0])==null?void 0:o.message)==null?void 0:s.content)}},Pc=Er({id:"openrouter",label:"OpenRouter",configKey:"openRouterApiKey",defaultModel:"openai/gpt-4",fallbackModels:["openai/gpt-4","openai/gpt-5-nano","anthropic/claude-3.7-sonnet"],baseUrl:"https://openrouter.ai/api/v1",dashboardUrl:"https://openrouter.ai/settings/keys",validateApiKey:async e=>{var t,n;try{const a=await ot("https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${e}`}},Qe);return a===null?{valid:!1,error:"Nessuna risposta dal server (CORS o proxy non attivo)"}:((t=a==null?void 0:a.data)==null?void 0:t.label)!==void 0||((n=a==null?void 0:a.data)==null?void 0:n.usage)!==void 0?{valid:!0}:a!=null&&a.error?{valid:!1,error:gn(a)}:{valid:!1,error:"Chiave non riconosciuta da OpenRouter"}}catch(a){return{valid:!1,error:gn(a)}}}}),Pg={dbRealtime:{service:"data",create:()=>new br},firestoreDb:{service:"data",create:()=>new yn},firestorage:{service:"storage",create:()=>new vr},firebaseAuth:{service:"auth",create:()=>new vc}},Tg={googleAuth:{service:"auth",create:()=>new No},gmail:{service:"email",create:()=>new Ec},googleServiceAccount:{service:"credentials",create:e=>new yc(e.serviceAccount),when:e=>!!e.serviceAccount}},Dg={dropboxAuth:{service:"auth",create:e=>new xc(e)}},Rg={supabaseDb:{service:"data",create:e=>new Ka(e)},supabaseStorage:{service:"storage",create:e=>new Ga(e)},supabaseAuth:{service:"auth",create:e=>new Nc(e)}},_g={mock:{service:"data",create:e=>new Mn(e==null?void 0:e.data)}},Ut=(e,t)=>({service:"ai",create:n=>new Pi(e,(n==null?void 0:n[t])||"")}),Fg={openai:Ut(Mc,"openaiApiKey"),openrouter:Ut(Pc,"openRouterApiKey"),opencode:Ut(Ic,"openCodeApiKey"),deepseek:Ut(kc,"deepSeekApiKey"),gemini:Ut(Sc,"geminiApiKey"),anthropic:Ut(Cc,"anthropicApiKey"),mistral:Ut(Ac,"mistralApiKey")},Og={firebase:Pg,google:Tg,dropbox:Dg,supabase:Rg,mock:_g,ai:Fg},$g=()=>r.createElement("div",{className:"flex min-h-[calc(100vh-4rem)] items-center justify-center"},r.createElement("div",{className:"h-8 w-8 animate-spin rounded-full border-2 border-muted border-t-primary"}));function Lg(e,t){if(!t)return;const n=t,a=typeof t=="object"&&!Array.isArray(t)?Object.entries(n):[];if(a.length>0&&a.every(([,s])=>typeof s=="object"&&s!==null)){Object.assign(e,n);return}e.custom=t}function jg(e,t,n="default"){return t&&e[t]?t:Object.keys(e)[0]??n}function Bg(e={}){const t={data:{},storage:{},auth:{},email:{},ai:{},credentials:{}},n=s=>t[s]??(t[s]={});for(const[s,l]of Object.entries(Og)){const i=e[s];if(i!==void 0)for(const[c,d]of Object.entries(l))d.when&&!d.when(i)||(n(d.service)[c]=d.create(i))}for(const[s,l]of Object.entries(e.custom??{}))Lg(n(s),l);Object.keys(t.data).length===0&&(t.data.mock=new Mn),Object.keys(t.auth).length===0&&(t.auth.googleAuth=new No);const a=e.services??{},o={};for(const[s,l]of Object.entries(t))o[s]={registry:l,defaultKey:jg(l,a[s])};return o}let ko={};const zg=e=>{ko=e},Vg=e=>ko[e]||[];function Tc({contextProviders:e,providers:t={},appName:n="LLM Native",scrapeConfig:a,iconProvider:o,themeProvider:s,i18n:l,children:i,errorReportUrl:c,debug:d}){const[u,m]=r.useState(()=>Bg(t)),f=r.useRef(u);f.current=u;const g=r.useRef();g.current||(g.current=async(h,b,k)=>{var S,I,A;const w=(S=f.current[h])==null?void 0:S.registry;await((A=(I=w==null?void 0:w[b])==null?void 0:I.dispose)==null?void 0:A.call(I)),m(x=>{var v,R;return{...x,[h]:{defaultKey:((v=x[h])==null?void 0:v.defaultKey)??b,registry:{...(R=x[h])==null?void 0:R.registry,[b]:k}}}})});const y=g.current,p=e??r.Fragment;return r.createElement(pc,{fullPage:!0,reportUrl:c,debug:d},r.createElement(Te.BrowserRouter,{future:{v7_relativeSplatPath:!0,v7_startTransition:!0}},r.createElement(zu,{defaultConfig:{title:n,firebase:t.firebase,google:t.google?{oAuth2:{clientId:t.google.clientId,scope:t.google.scope},serviceAccount:t.google.serviceAccount,developerToken:t.google.developerToken}:void 0,dropbox:t.dropbox,ai:t.ai,scrape:a,proxy:t.proxy}},r.createElement(Lu,{registries:u,setProvider:y},r.createElement(yl,{...u.auth},r.createElement(fg,{...u.credentials},r.createElement(Sl,{...u.data},r.createElement(mi,{...u.storage},r.createElement(hc,{...u.email},r.createElement(Ci,{...u.ai},r.createElement(Zs,{config:o},r.createElement(lc,{appName:n},r.createElement(Us,{config:l},r.createElement(Dd,{config:s},r.createElement(p,null,i)))))))))))))))}function Ug({importPage:e,LayoutDefault:t=void 0,menuConfig:n={},children:a,...o}){zg(n);const s=({children:d})=>r.createElement(r.Fragment,null,d),l=({pageSource:d,message:u})=>r.createElement(Gr,{variant:"warning"},"Missing Page: ",d,u&&r.createElement("code",{className:"ml-2"},u));function i(d,u,m){const g=`./pages${u.component?"/"+u.component:u.path==="/"?"/Home":Ue.toCamel(u.path.split("*")[0])}.js`,y=u.page||r.lazy(()=>e(g).then(h=>typeof h.default!="function"?(console.warn(`⚠️ Invalid default export in ${g}`),{default:()=>r.createElement(l,{pageSource:g})}):{default:h.default}).catch(h=>(console.error(`❌ Failed to load ${g}:`,h),{default:()=>r.createElement(l,{pageSource:g,message:h.message})}))),p=u.layout||t||s;return r.createElement(Te.Route,{key:`${d}-${m}`,path:u.path,element:r.createElement(p,null,r.createElement(pc,{key:u.path,reportUrl:o.errorReportUrl,debug:o.debug},r.createElement(r.Suspense,{fallback:r.createElement($g,null)},r.createElement(y,null))))})}const c=d=>Object.keys(d).flatMap(u=>d[u].flatMap((m,f)=>[m.path&&i(u,m,f),m.children&&c({children:m.children})].filter(Boolean)));return r.createElement(Tc,{...o},a,r.createElement(Te.Routes,null,r.createElement(Te.Route,{path:Oa,element:r.createElement(cu,null)}),r.createElement(r.Fragment,null,c({default:[{path:"/"}],...ko,_auth:[{path:"/users",page:mc,layout:t}]})),r.createElement(Te.Route,{path:"*",element:r.createElement(og,null)})))}const So=e=>{const t=Vg(e),n=Te.useLocation(),a=o=>o.map(s=>{const l=n.pathname===s.path,i=s.children?a(s.children):[],c=l||i.some(d=>d.active);return{...s,active:c,children:i}});return r.useMemo(()=>a(t),[n.pathname])},Hg={common:{save:"Salva",cancel:"Annulla",delete:"Elimina",close:"Chiudi",back:"Indietro",search:"Cerca",loading:"Caricamento...",noDataFound:"Nessun dato trovato",pageNavigation:"Navigazione pagine",previous:"Precedente",next:"Successivo",notFoundMessage:"Ops! Pagina non trovata.",goHome:"Vai alla Home"},auth:{signIn:"Accedi",signOut:"Esci",connect:"Connetti",connected:"Connesso",authenticated:"Autenticato",notConfigured:'Il provider auth "{provider}" non è configurato. Controlla le chiavi API.',notImplemented:"Il provider non implementa signIn()."},form:{headerAdd:"Aggiungi",headerEdit:"Modifica",buttonSave:"Salva",buttonDelete:"Elimina",buttonBack:"Indietro",requiredField:'Il campo "{field}" è obbligatorio',requiredFieldGeneric:"I campi obbligatori non sono compilati",saveSuccess:"Salvato con successo",deleteSuccess:"Eliminato con successo",noticeRequiredFields:"Completa i campi obbligatori prima di salvare."},grid:{buttonAdd:"Aggiungi",deleteConfirm:"Sei sicuro di voler eliminare questo elemento?",emptyState:"Nessun elemento da mostrare"},select:{placeholder:"Seleziona..."},modal:{save:"Salva",delete:"Elimina",cancel:"Annulla",close:"Chiudi"},upload:{clickOrDrag:"Clicca o trascina per caricare...",dropToUpload:"Rilascia per caricare",uploadMore:"Aggiungi altri file",editFileName:"Modifica nome file",editorImage:"Editor immagine",loaded:"Caricato",removeFile:"Rimuovi",uploadAnother:"Carica un altro file",dropToParse:"Rilascia per analizzare"},notifications:{title:"Notifiche",seeAll:"Vedi tutte"},code:{copyCode:"Copia codice",copy:"Copia",copied:"Copiato!",codeLanguageDefault:"Testo"},table:{noDataFound:"Nessun dato trovato",selectAllRows:"Seleziona tutte le righe",sortBy:"Ordina per {label}",sortByCurrent:"Ordina per {label} ({direction})",selectRow:"Seleziona riga {key}",reorderRow:"Riordina riga {key}"},gallery:{selectItem:"Seleziona elemento {key}"},crop:{enableCrop:"Abilita ritaglio a scala {scale}",variants:"Varianti",outputFile:"File di output",active:"Attivo",removeVariant:"Rimuovi variante {scale}",fileName:"Nome file"},imageEditor:{title:"Editor immagine",save:"Salva",undo:"Annulla",redo:"Ripristina",zoomOut:"Riduci zoom",zoomIn:"Aumenta zoom",crop:"Ritaglia",flipHorizontal:"Capovolgi orizzontalmente",flipVertical:"Capovolgi verticalmente",rotate:"Ruota 90°",freeDrawing:"Disegno libero",arrow:"Freccia",text:"Testo",rectangle:"Rettangolo",circle:"Cerchio",triangle:"Triangolo"},prompt:{noProviders:"Nessun provider AI registrato.",aiNotConfiguredEdit:"L'AI non è configurata. Puoi comunque modificare e salvare questo prompt.",aiNotConfiguredRun:"L'AI non è configurata. Impossibile eseguire questo prompt.",aiNotConfiguredShort:"AI non configurata",toggleOnTitle:"Prompt ATTIVO. Il testo viene usato come template e può essere eseguito.",toggleOffTitle:"Prompt DISATTIVO. Il testo viene usato direttamente senza elaborazione AI.",closeEditor:"Chiudi editor",editSettings:"Modifica impostazioni",attachFiles:"Allega file",attachmentsNotSupported:"Il provider AI selezionato non supporta allegati immagini o documenti.",run:"Esegui",runFailed:"Esecuzione del prompt fallita.",noMatchingCommands:"Nessun comando corrispondente",tokenUsage:"Utilizzo token",tokenInput:"In: {count} tok",tokenOutput:"Out: {count} tok",tokenContext:"Contesto: {percent}%",tokenCost:"Costo: ~${amount}",tokenTime:"Tempo: {seconds}s",tokenUsageEmpty:"Esegui il prompt per vedere l'utilizzo token.",hidePreview:"Nascondi anteprima",showPreview:"Mostra anteprima risolta",noProvider:"Nessun provider AI disponibile per questo prompt.",noResponse:"Il provider AI non ha restituito alcuna risposta.",promptLabel:"Prompt: ",defaultOption:"Predefinito"},layout:{maxElements:"Hai già 12 elementi nella riga: rimuovine uno prima.",noSpace:"Nessuno spazio: impossibile ridurre gli elementi per inserire questo campo.",dragToMove:"Trascina per spostare",remove:"Rimuovi",dragToResize:"Trascina per ridimensionare",dragHere:"Trascina un elemento qui dentro"}},Kg={common:{save:"Speichern",cancel:"Abbrechen",delete:"Löschen",close:"Schließen",back:"Zurück",search:"Suchen",loading:"Laden...",noDataFound:"Keine Daten gefunden",pageNavigation:"Seitennavigation",previous:"Zurück",next:"Weiter",notFoundMessage:"Ups! Seite nicht gefunden.",goHome:"Zur Startseite"},auth:{signIn:"Anmelden",signOut:"Abmelden",connect:"Verbinden",connected:"Verbunden",authenticated:"Authentifiziert",notConfigured:'Auth-Provider "{provider}" ist nicht konfiguriert. API-Schlüssel prüfen.',notImplemented:"Der Provider implementiert signIn() nicht."},form:{headerAdd:"Hinzufügen",headerEdit:"Bearbeiten",buttonSave:"Speichern",buttonDelete:"Löschen",buttonBack:"Zurück",requiredField:'Das Feld "{field}" ist erforderlich',requiredFieldGeneric:"Pflichtfelder sind nicht ausgefüllt",saveSuccess:"Erfolgreich gespeichert",deleteSuccess:"Erfolgreich gelöscht",noticeRequiredFields:"Pflichtfelder vor dem Speichern ausfüllen."},grid:{buttonAdd:"Hinzufügen",deleteConfirm:"Dieses Element wirklich löschen?",emptyState:"Keine Elemente vorhanden"},select:{placeholder:"Auswählen..."},modal:{save:"Speichern",delete:"Löschen",cancel:"Abbrechen",close:"Schließen"},upload:{clickOrDrag:"Klicken oder ziehen zum Hochladen...",dropToUpload:"Loslassen zum Hochladen",uploadMore:"Weitere Dateien hinzufügen",editFileName:"Dateiname bearbeiten",editorImage:"Bildeditor",loaded:"Geladen",removeFile:"Entfernen",uploadAnother:"Eine weitere Datei hochladen",dropToParse:"Loslassen zum Analysieren"},notifications:{title:"Benachrichtigungen",seeAll:"Alle anzeigen"},code:{copyCode:"Code kopieren",copy:"Kopieren",copied:"Kopiert!",codeLanguageDefault:"Text"},table:{noDataFound:"Keine Daten gefunden",selectAllRows:"Alle Zeilen auswählen",sortBy:"Nach {label} sortieren",sortByCurrent:"Nach {label} sortieren ({direction})",selectRow:"Zeile {key} auswählen",reorderRow:"Zeile {key} neu anordnen"},gallery:{selectItem:"Element {key} auswählen"},crop:{enableCrop:"Zuschnitt mit Skalierung {scale} aktivieren",variants:"Varianten",outputFile:"Ausgabedatei",active:"Aktiv",removeVariant:"Variante {scale} entfernen",fileName:"Dateiname"},imageEditor:{title:"Bildeditor",save:"Speichern",undo:"Rückgängig",redo:"Wiederherstellen",zoomOut:"Herauszoomen",zoomIn:"Hineinzoomen",crop:"Zuschneiden",flipHorizontal:"Horizontal spiegeln",flipVertical:"Vertikal spiegeln",rotate:"90° drehen",freeDrawing:"Freihandzeichnen",arrow:"Pfeil",text:"Text",rectangle:"Rechteck",circle:"Kreis",triangle:"Dreieck"},prompt:{noProviders:"Keine AI-Provider registriert.",aiNotConfiguredEdit:"AI ist nicht konfiguriert. Sie können diesen Prompt trotzdem bearbeiten.",aiNotConfiguredRun:"AI ist nicht konfiguriert. Dieser Prompt kann nicht ausgeführt werden.",aiNotConfiguredShort:"AI nicht konfiguriert",toggleOnTitle:"Prompt AKTIV. Der Text wird als Vorlage verwendet und kann ausgeführt werden.",toggleOffTitle:"Prompt INAKTIV. Der Text wird direkt ohne AI-Verarbeitung verwendet.",closeEditor:"Editor schließen",editSettings:"Einstellungen bearbeiten",attachFiles:"Dateien anhängen",attachmentsNotSupported:"Der ausgewählte AI-Provider unterstützt keine Bild- oder Dokumentanlagen.",run:"Ausführen",runFailed:"Prompt-Ausführung fehlgeschlagen.",noMatchingCommands:"Keine passenden Befehle",tokenUsage:"Token-Nutzung",tokenInput:"Eingabe: {count} tok",tokenOutput:"Ausgabe: {count} tok",tokenContext:"Kontext: {percent}%",tokenCost:"Kosten: ~${amount}",tokenTime:"Zeit: {seconds}s",tokenUsageEmpty:"Prompt ausführen, um Token-Nutzung zu sehen.",hidePreview:"Vorschau ausblenden",showPreview:"Aufgelöste Vorschau anzeigen",noProvider:"Kein AI-Provider für diesen Prompt verfügbar.",noResponse:"Der AI-Provider hat keine Antwort zurückgegeben.",promptLabel:"Prompt: ",defaultOption:"Standard"},layout:{maxElements:"Bereits 12 Elemente in der Zeile: Eines entfernen.",noSpace:"Kein Platz: Elemente können nicht genug verkleinert werden.",dragToMove:"Zum Verschieben ziehen",remove:"Entfernen",dragToResize:"Zum Verkleinern ziehen",dragHere:"Element hierher ziehen"}},Gg={common:{save:"Сохранить",cancel:"Отменить",delete:"Удалить",close:"Закрыть",back:"Назад",search:"Поиск",loading:"Загрузка...",noDataFound:"Данные не найдены",pageNavigation:"Навигация по страницам",previous:"Назад",next:"Вперёд",notFoundMessage:"Упс! Страница не найдена.",goHome:"На главную"},auth:{signIn:"Войти",signOut:"Выйти",connect:"Подключить",connected:"Подключено",authenticated:"Авторизован",notConfigured:'Провайдер "{provider}" не настроен. Проверьте API-ключи.',notImplemented:"Провайдер не реализует signIn()."},form:{headerAdd:"Добавить",headerEdit:"Редактировать",buttonSave:"Сохранить",buttonDelete:"Удалить",buttonBack:"Назад",requiredField:'Поле "{field}" обязательно для заполнения',requiredFieldGeneric:"Обязательные поля не заполнены",saveSuccess:"Успешно сохранено",deleteSuccess:"Успешно удалено",noticeRequiredFields:"Заполните обязательные поля перед сохранением."},grid:{buttonAdd:"Добавить",deleteConfirm:"Вы уверены, что хотите удалить этот элемент?",emptyState:"Нет элементов для отображения"},select:{placeholder:"Выбрать..."},modal:{save:"Сохранить",delete:"Удалить",cancel:"Отменить",close:"Закрыть"},upload:{clickOrDrag:"Нажмите или перетащите для загрузки...",dropToUpload:"Отпустите для загрузки",uploadMore:"Добавить ещё файлы",editFileName:"Изменить имя файла",editorImage:"Редактор изображений",loaded:"Загружено",removeFile:"Удалить",uploadAnother:"Загрузить ещё один файл",dropToParse:"Отпустите для анализа"},notifications:{title:"Уведомления",seeAll:"Смотреть все"},code:{copyCode:"Копировать код",copy:"Копировать",copied:"Скопировано!",codeLanguageDefault:"Текст"},table:{noDataFound:"Данные не найдены",selectAllRows:"Выбрать все строки",sortBy:"Сортировать по {label}",sortByCurrent:"Сортировать по {label} ({direction})",selectRow:"Выбрать строку {key}",reorderRow:"Переместить строку {key}"},gallery:{selectItem:"Выбрать элемент {key}"},crop:{enableCrop:"Включить обрезку в масштабе {scale}",variants:"Варианты",outputFile:"Выходной файл",active:"Активно",removeVariant:"Удалить вариант {scale}",fileName:"Имя файла"},imageEditor:{title:"Редактор изображений",save:"Сохранить",undo:"Отменить",redo:"Повторить",zoomOut:"Уменьшить",zoomIn:"Увеличить",crop:"Обрезать",flipHorizontal:"Отразить горизонтально",flipVertical:"Отразить вертикально",rotate:"Повернуть на 90°",freeDrawing:"Свободное рисование",arrow:"Стрелка",text:"Текст",rectangle:"Прямоугольник",circle:"Круг",triangle:"Треугольник"},prompt:{noProviders:"Нет зарегистрированных AI-провайдеров.",aiNotConfiguredEdit:"AI не настроен. Вы можете редактировать и сохранять этот промпт.",aiNotConfiguredRun:"AI не настроен. Запуск этого промпта невозможен.",aiNotConfiguredShort:"AI не настроен",toggleOnTitle:"Промпт ВКЛЮЧЁН. Текст используется как шаблон и может быть выполнен.",toggleOffTitle:"Промпт ВЫКЛЮЧЕН. Текст используется напрямую без AI.",closeEditor:"Закрыть редактор",editSettings:"Изменить настройки",attachFiles:"Прикрепить файлы",attachmentsNotSupported:"Выбранный AI-провайдер не поддерживает изображения или документы.",run:"Запустить",runFailed:"Ошибка выполнения промпта.",noMatchingCommands:"Нет подходящих команд",tokenUsage:"Использование токенов",tokenInput:"Вход: {count} tok",tokenOutput:"Выход: {count} tok",tokenContext:"Контекст: {percent}%",tokenCost:"Стоимость: ~${amount}",tokenTime:"Время: {seconds}с",tokenUsageEmpty:"Запустите промпт для просмотра статистики.",hidePreview:"Скрыть предпросмотр",showPreview:"Показать предпросмотр",noProvider:"AI-провайдер недоступен для этого промпта.",noResponse:"AI-провайдер не вернул ответа.",promptLabel:"Промпт: ",defaultOption:"По умолчанию"},layout:{maxElements:"В строке уже 12 элементов: сначала удалите один.",noSpace:"Нет места: невозможно сжать элементы для добавления.",dragToMove:"Перетащить для перемещения",remove:"Удалить",dragToResize:"Перетащить для изменения размера",dragHere:"Перетащите элемент сюда"}},Yg={common:{save:"保存",cancel:"取消",delete:"删除",close:"关闭",back:"返回",search:"搜索",loading:"加载中...",noDataFound:"未找到数据",pageNavigation:"页面导航",previous:"上一页",next:"下一页",notFoundMessage:"哎呀!页面未找到。",goHome:"返回首页"},auth:{signIn:"登录",signOut:"退出",connect:"连接",connected:"已连接",authenticated:"已认证",notConfigured:'授权提供商"{provider}"未配置。请检查API密钥。',notImplemented:"提供商未实现signIn()。"},form:{headerAdd:"添加",headerEdit:"编辑",buttonSave:"保存",buttonDelete:"删除",buttonBack:"返回",requiredField:'字段"{field}"为必填项',requiredFieldGeneric:"必填字段未填写",saveSuccess:"保存成功",deleteSuccess:"删除成功",noticeRequiredFields:"请在保存前填写必填字段。"},grid:{buttonAdd:"添加",deleteConfirm:"确定要删除此项目吗?",emptyState:"暂无数据"},select:{placeholder:"请选择..."},modal:{save:"保存",delete:"删除",cancel:"取消",close:"关闭"},upload:{clickOrDrag:"点击或拖拽上传...",dropToUpload:"松开上传",uploadMore:"添加更多文件",editFileName:"编辑文件名",editorImage:"图片编辑器",loaded:"已加载",removeFile:"删除",uploadAnother:"上传另一个文件",dropToParse:"松开解析"},notifications:{title:"通知",seeAll:"查看全部"},code:{copyCode:"复制代码",copy:"复制",copied:"已复制!",codeLanguageDefault:"文本"},table:{noDataFound:"未找到数据",selectAllRows:"选择所有行",sortBy:"按{label}排序",sortByCurrent:"按{label}排序({direction})",selectRow:"选择行{key}",reorderRow:"重排行{key}"},gallery:{selectItem:"选择项目{key}"},crop:{enableCrop:"启用{scale}比例裁剪",variants:"变体",outputFile:"输出文件",active:"活跃",removeVariant:"删除变体{scale}",fileName:"文件名"},imageEditor:{title:"图片编辑器",save:"保存",undo:"撤销",redo:"重做",zoomOut:"缩小",zoomIn:"放大",crop:"裁剪",flipHorizontal:"水平翻转",flipVertical:"垂直翻转",rotate:"旋转90°",freeDrawing:"自由绘制",arrow:"箭头",text:"文本",rectangle:"矩形",circle:"圆形",triangle:"三角形"},prompt:{noProviders:"没有已注册的AI提供商。",aiNotConfiguredEdit:"AI未配置。您仍然可以编辑并保存此提示词。",aiNotConfiguredRun:"AI未配置。无法运行此提示词。",aiNotConfiguredShort:"AI未配置",toggleOnTitle:"提示词已启用。文本用作模板并可执行。",toggleOffTitle:"提示词已禁用。文本直接使用,不经AI处理。",closeEditor:"关闭编辑器",editSettings:"编辑设置",attachFiles:"附加文件",attachmentsNotSupported:"所选AI提供商不支持图像或文档附件。",run:"运行",runFailed:"提示词执行失败。",noMatchingCommands:"没有匹配的命令",tokenUsage:"Token用量",tokenInput:"输入:{count} tok",tokenOutput:"输出:{count} tok",tokenContext:"上下文:{percent}%",tokenCost:"费用:~${amount}",tokenTime:"时间:{seconds}秒",tokenUsageEmpty:"运行提示词以查看Token用量。",hidePreview:"隐藏预览",showPreview:"显示解析预览",noProvider:"此提示词没有可用的AI提供商。",noResponse:"AI提供商未返回任何响应。",promptLabel:"Prompt: ",defaultOption:"默认"},layout:{maxElements:"行中已有12个元素:请先删除一个。",noSpace:"空间不足:无法缩小元素以插入此字段。",dragToMove:"拖拽移动",remove:"删除",dragToResize:"拖拽调整大小",dragHere:"拖拽元素到此处"}},Wg={common:{save:"حفظ",cancel:"إلغاء",delete:"حذف",close:"إغلاق",back:"رجوع",search:"بحث",loading:"جاري التحميل...",noDataFound:"لم يتم العثور على بيانات",pageNavigation:"تنقل الصفحات",previous:"السابق",next:"التالي",notFoundMessage:"عفوًا! الصفحة غير موجودة.",goHome:"الذهاب إلى الرئيسية"},auth:{signIn:"تسجيل الدخول",signOut:"تسجيل الخروج",connect:"ربط",connected:"مرتبط",authenticated:"موثق",notConfigured:'مزود المصادقة "{provider}" غير مكوّن. يرجى التحقق من مفاتيح API.',notImplemented:"المزود لا ينفّذ signIn()."},form:{headerAdd:"إضافة",headerEdit:"تعديل",buttonSave:"حفظ",buttonDelete:"حذف",buttonBack:"رجوع",requiredField:'الحقل "{field}" إلزامي',requiredFieldGeneric:"الحقول الإلزامية غير مكتملة",saveSuccess:"تم الحفظ بنجاح",deleteSuccess:"تم الحذف بنجاح",noticeRequiredFields:"يرجى ملء الحقول الإلزامية قبل الحفظ."},grid:{buttonAdd:"إضافة",deleteConfirm:"هل أنت متأكد من حذف هذا العنصر؟",emptyState:"لا توجد عناصر للعرض"},select:{placeholder:"اختر..."},modal:{save:"حفظ",delete:"حذف",cancel:"إلغاء",close:"إغلاق"},upload:{clickOrDrag:"انقر أو اسحب للتحميل...",dropToUpload:"أفلت للتحميل",uploadMore:"إضافة المزيد من الملفات",editFileName:"تعديل اسم الملف",editorImage:"محرر الصور",loaded:"محمّل",removeFile:"إزالة",uploadAnother:"تحميل ملف آخر",dropToParse:"أفلت للتحليل"},notifications:{title:"الإشعارات",seeAll:"عرض الكل"},code:{copyCode:"نسخ الكود",copy:"نسخ",copied:"تم النسخ!",codeLanguageDefault:"نص"},table:{noDataFound:"لم يتم العثور على بيانات",selectAllRows:"تحديد جميع الصفوف",sortBy:"ترتيب حسب {label}",sortByCurrent:"ترتيب حسب {label} ({direction})",selectRow:"تحديد الصف {key}",reorderRow:"إعادة ترتيب الصف {key}"},gallery:{selectItem:"تحديد العنصر {key}"},crop:{enableCrop:"تفعيل الاقتصاص بمقياس {scale}",variants:"المتغيرات",outputFile:"ملف الإخراج",active:"نشط",removeVariant:"إزالة المتغير {scale}",fileName:"اسم الملف"},imageEditor:{title:"محرر الصور",save:"حفظ",undo:"تراجع",redo:"إعادة",zoomOut:"تصغير",zoomIn:"تكبير",crop:"اقتصاص",flipHorizontal:"قلب أفقي",flipVertical:"قلب رأسي",rotate:"تدوير 90°",freeDrawing:"رسم حر",arrow:"سهم",text:"نص",rectangle:"مستطيل",circle:"دائرة",triangle:"مثلث"},prompt:{noProviders:"لا توجد مزودات AI مسجّلة.",aiNotConfiguredEdit:"AI غير مكوّن. يمكنك تعديل وحفظ هذا الأمر.",aiNotConfiguredRun:"AI غير مكوّن. لا يمكن تشغيل هذا الأمر.",aiNotConfiguredShort:"AI غير مكوّن",toggleOnTitle:"الأمر مفعّل. النص يُستخدم كقالب ويمكن تشغيله.",toggleOffTitle:"الأمر معطّل. النص يُستخدم مباشرةً دون معالجة AI.",closeEditor:"إغلاق المحرر",editSettings:"تعديل الإعدادات",attachFiles:"إرفاق الملفات",attachmentsNotSupported:"مزوّد AI المحدد لا يدعم مرفقات الصور أو المستندات.",run:"تشغيل",runFailed:"فشل تنفيذ الأمر.",noMatchingCommands:"لا توجد أوامر مطابقة",tokenUsage:"استخدام الرموز",tokenInput:"دخل: {count} tok",tokenOutput:"خرج: {count} tok",tokenContext:"السياق: {percent}%",tokenCost:"التكلفة: ~${amount}",tokenTime:"الوقت: {seconds}ث",tokenUsageEmpty:"شغّل الأمر لعرض إحصائيات الرموز.",hidePreview:"إخفاء المعاينة",showPreview:"عرض المعاينة المحلولة",noProvider:"لا يوجد مزود AI متاح لهذا الأمر.",noResponse:"لم يُرجع مزود AI أي استجابة.",promptLabel:"أمر: ",defaultOption:"افتراضي"},layout:{maxElements:"الصف يحتوي بالفعل على 12 عنصرًا: احذف عنصرًا أولاً.",noSpace:"لا مساحة: لا يمكن تصغير العناصر لإضافة هذا الحقل.",dragToMove:"اسحب للتحريك",remove:"إزالة",dragToResize:"اسحب لتغيير الحجم",dragHere:"اسحب عنصرًا إلى هنا"}},qg=Object.freeze(Object.defineProperty({__proto__:null,ar:Wg,de:Kg,en:zs,it:Hg,ru:Gg,zh:Yg},Symbol.toStringTag,{value:"Module"})),Jg=e=>Ol("api",e);async function Xg(e){if(!e.ok)throw new Error(`ApiProvider request failed: ${e.status} ${e.statusText}`);const t=await e.text();return t?JSON.parse(t):void 0}class Zg{constructor(t){this.config=t}async fetch(t){const n=(t.method??"POST").toUpperCase(),a=new URL(this.config.baseUrl.replace(/\/+$/,"")+"/"+t.path.replace(/^\/+/,""));Object.entries({...t.query,...this.config.query}).forEach(([l,i])=>a.searchParams.set(l,i));const o={...t.body,...this.config.body},s=await Qe(a.toString(),{method:n,headers:{"Content-Type":"application/json",...this.config.header},body:n==="GET"||n==="HEAD"?void 0:JSON.stringify(o)});return Xg(s)}}class Qg{constructor(t){this.resolver=t}async fetch(t){return this.resolver(t)}}class eh{constructor(t){this.config=t}async fetch(t){const{getApp:n}=await import("firebase/app"),{getFunctions:a,httpsCallable:o}=await import("firebase/functions"),s=a(n(),this.config.region);return(await o(s,this.config.functionName)({provider:this.config.providerName,request:t})).data}}class th{constructor(t){this.config=t}async fetch(t){const{getSupabaseClient:n}=await Promise.resolve().then(()=>Zu),a=n(this.config.url,this.config.anonKey),{data:o,error:s}=await a.functions.invoke(this.config.functionName,{body:{provider:this.config.providerName,request:t}});if(s)throw s;return o}}const rh=Er({id:"glm",label:"ZhipuAI (GLM)",configKey:"glmApiKey",defaultModel:"glm-4-flash",fallbackModels:["glm-4-flash","glm-4","glm-z1-preview","glm-z1-plus","glm-4-long"],baseUrl:"https://open.bigmodel.cn/api/paas/v4",dashboardUrl:"https://bigmodel.cn/usercenter/apikeys"}),nh=[Mc,Pc,Ic,kc,Sc,Cc,Ac,rh],ah=e=>{var n,a,o,s,l,i,c,d,u,m,f,g;const t=(a=(n=e==null?void 0:e.openAICompatible)==null?void 0:n.baseUrl)==null?void 0:a.trim();return t?[Er({id:"openai-compatible",label:((s=(o=e==null?void 0:e.openAICompatible)==null?void 0:o.label)==null?void 0:s.trim())||"OpenAI-compatible",configKey:"openAICompatible",requiredConfigKeys:["ai.openAICompatible.apiKey","ai.openAICompatible.baseUrl"],defaultModel:((i=(l=e==null?void 0:e.openAICompatible)==null?void 0:l.defaultModel)==null?void 0:i.trim())||"default",fallbackModels:((d=(c=e==null?void 0:e.openAICompatible)==null?void 0:c.fallbackModels)==null?void 0:d.filter(Boolean))||["default"],baseUrl:t,modelsUrl:((m=(u=e==null?void 0:e.openAICompatible)==null?void 0:u.modelsUrl)==null?void 0:m.trim())||void 0,chatCompletionsUrl:((g=(f=e==null?void 0:e.openAICompatible)==null?void 0:f.chatCompletionsUrl)==null?void 0:g.trim())||void 0})]:[]},oh=e=>e?[...nh,...ah(e)].reduce((n,a)=>{var s,l;const o=a.id==="openai-compatible"?((l=(s=e.openAICompatible)==null?void 0:s.apiKey)==null?void 0:l.trim())||"":typeof a.configKey=="string"&&typeof e[a.configKey]=="string"?String(e[a.configKey]||"").trim():"";return o&&(n[a.id]=new Pi(a,o)),n},{}):{};let Fr;typeof Je=="function"&&Je(e=>{Fr=e.google});const sh="geoTargetConstants/2380",lh="languageConstants/1000",ih={ita:"geoTargetConstants/2380",rome:"geoTargetConstants/1033236",mil:"geoTargetConstants/1033239",nap:"geoTargetConstants/1033245",tor:"geoTargetConstants/1033247"},ch={it:"languageConstants/1000",en:"languageConstants/1001",fr:"languageConstants/1002",es:"languageConstants/1003",de:"languageConstants/1005"};function dh(e){return ih[e.toLowerCase()]||sh}function uh(e){return ch[e.toLowerCase()]||lh}async function mh({keyword:e,googleAdsAccountId:t,geoCode:n="ita",languageCode:a="it"}){var m;if(!(Fr!=null&&Fr.developerToken))return console.error(`
196
23
  ❌ Google Ads API: developerToken non configurato.
197
24
 
198
25
  Per ottenere un developerToken segui questi passaggi:
@@ -206,633 +33,4 @@ Per ottenere un developerToken segui questi passaggi:
206
33
  config.google.developerToken
207
34
 
208
35
  ℹ️ 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
36
+ `),[];const o=await Co(["https://www.googleapis.com/auth/adwords"]),s=dh(n),l=uh(a),i=`https://googleads.googleapis.com/v13/customers/${t}:generateKeywordIdeas`,c={keywordSeed:{keywords:[e]},geoTargetConstants:[s],language:l},d=await fetch(i,{method:"POST",headers:{Authorization:`Bearer ${o}`,"developer-token":Fr.developerToken,"Content-Type":"application/json"},body:JSON.stringify(c)});if(!d.ok){const f=await d.text();throw new Error(`Keyword planner error: ${d.status} - ${f}`)}return((m=(await d.json()).results)==null?void 0:m.map(f=>{var g,y,p,h;return{keyword:f.text,avgMonthlySearches:((g=f.keywordIdeaMetrics)==null?void 0:g.avgMonthlySearches)??0,competition:((y=f.keywordIdeaMetrics)==null?void 0:y.competition)??"UNSPECIFIED",cpc:(h=(p=f.keywordIdeaMetrics)==null?void 0:p.averageCpc)!=null&&h.micros?f.keywordIdeaMetrics.averageCpc.micros/1e6:null}}))??[]}async function fh(e,t="IT",n="today 12-m"){const a=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:t,time:n}],category:0,property:""}))}&_=${Date.now()}`,s=await(await fetch(a)).text(),i=JSON.parse(s.replace(")]}',","")).widgets.find(p=>p.id==="TIMESERIES");if(!i)throw new Error("Timeline widget not found");const c=i.token,d=i.request,u=`https://trends.google.com/trends/api/widgetdata/multiline?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify(d))}&token=${c}&_=${Date.now()}`,f=await(await fetch(u)).text(),y=JSON.parse(f.replace(")]}',","")).default.timelineData.map(p=>{var h;return{date:p.formattedTime,value:(h=p.value)==null?void 0:h[0]}});return{keyword:e,timeline:y}}async function ph(e,t="IT",n="today 12-m"){var y,p,h,b,k,w;const a=`https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({comparisonItem:[{keyword:e,geo:t,time:n}],category:0,property:""}))}&_=${Date.now()}`,s=await(await fetch(a)).text(),i=JSON.parse(s.replace(")]}',","")).widgets.find(S=>S.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()}`,u=await(await fetch(c)).text(),m=JSON.parse(u.replace(")]}',","")),f=((h=(p=(y=m.default.rankedList)==null?void 0:y[0])==null?void 0:p.rankedKeyword)==null?void 0:h.map(S=>({query:S.query,value:S.value})))||[],g=((w=(k=(b=m.default.rankedList)==null?void 0:b[1])==null?void 0:k.rankedKeyword)==null?void 0:w.map(S=>({query:S.query,value:S.value})))||[];return{keyword:e,top:f,rising:g}}const gh=5e3,hh="https://www.dropbox.com/home";let st;typeof Je=="function"&&Je(e=>{st=e.dropbox});const bh=async(e,t,n={})=>{if(!st)return console.error("DropBox: Config not found"),null;const a=await Sn(st.clientId);if(!a)throw new Error("DropBox: Access token not found");return await fetch(e,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/octet-stream",...n},body:t}).catch(o=>(console.error("There was a problem with the fetch operation:",o),null)).finally(()=>{console.log("DropBox: Fetch operation completed")})},vt=async(e,t,n={})=>{if(!st){console.error("DropBox: Config not found");return}const a=await Sn(st.clientId);if(!a){console.error("DropBox: Access token not found");return}return await Ma(e,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",...n},body:JSON.stringify(t)}).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,t);return}return o}).catch(o=>{console.error("There was a problem with the fetch operation:",o,e,t)}).finally(()=>{console.log("DropBox: Fetch operation completed",e,t)})},ft=(e,t=!1)=>{const n=(st==null?void 0:st.rootPath)||"";return(t?hh:"")+(e.startsWith(n)?e:n+e)},vh=async(e,t="",n=!1)=>{const a={};return(await _c.listFolders({path:`${e+t}`,recursive:!0})).forEach(s=>{s[".tag"]!=="folder"&&(a[n?fr.changeFilename(s.path_display,{ext:""}):s.path_display]=s.name)}),a},Dc=async(e,t)=>{if(!e.async_job_id)return Promise.reject(e);let n,a=!0;for(;a;)await qr(100),n=await vt(`https://api.dropboxapi.com/2/${t}/check`,{async_job_id:e.async_job_id}),console.log("DropBox: Check folders response: ",n),(n==null?void 0:n[".tag"])!=="in_progress"&&(a=!1);return(n==null?void 0:n[".tag"])==="complete"?Promise.resolve(n.entries):Promise.reject(n)},yh=async(e,t="")=>{const n="files/create_folder_batch",a=await vt(`https://api.dropboxapi.com/2/${n}`,{autorename:!1,force_async:!0,paths:e.map(o=>ft(t+o))});return a?Dc(a,n):void 0},xh=async(e,t="")=>{const n="files/create_folder_batch",a=await vt(`https://api.dropboxapi.com/2/${n}`,{entries:e.map(o=>({path:ft(t+o)}))});return a?Dc(a,n):void 0},wh=async(e,t)=>vt("https://api.dropboxapi.com/2/files/tags/add",{path:e,tag_text:t.toLowerCase().replaceAll(/[^a-z0-9]/g,"")}),Eh=async(e,t="")=>{for(const n in e)for(const a of e[n])await wh(ft(t+n),a)},Nh=async({path:e="",recursive:t=!1}={})=>{const n=[],a=async({path:s,cursor:l,recursive:i})=>s?await vt("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:ft(s),recursive:i}):await vt("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 a(o.cursor?{cursor:o.cursor,recursive:t}:{path:e,recursive:t}),o&&n.push(...o.entries);return n},Ch=async e=>{const n=async l=>await vt("https://api.dropboxapi.com/2/files/copy_batch_v2",{entries:l,autorename:!1}),a=async l=>await vt("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(d=>({from_path:ft(d.from),to_path:ft(d.to)}));const i=await n(s);if(!i)continue;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 qr(gh),c=await a(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"&&c.entries&&o.push(...c.entries)}return o.filter(l=>l[".tag"]==="failure").map(l=>l.failure)},kh=async e=>{const t=async n=>await vt("https://api.dropboxapi.com/2/files/move_v2",{...n,autorename:!0});for(const n of e)await t({from_path:ft(n.from),to_path:ft(n.to)})},Sh=async({thumbnailsRequest:e=[],size:t="w64h64",format:n="jpeg",mode:a="strict"},o)=>{const l="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAgAAAAwAAAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==";let i={};const c=[];for(let d=0;d<e.length;d+=25){const u=e.slice(d,d+25),m=u.map(f=>({path:ft(f.path),format:n,size:t,mode:a}));await qr(100),c.push(vt("https://content.dropboxapi.com/2/files/get_thumbnail_batch",{entries:m}).then(f=>{if(!f)return;const y=f.entries.reduce((p,h,b)=>{const k=u[b].path,[w,S]=t.replace("w","").split("h").map(Number),I=h;return p[k]={...u[b],thumbnail:(I==null?void 0:I[".tag"])==="success"?I.thumbnail:l,mimetype:"data:image/jpeg;base64,",width:w,height:S},p},{});console.log("DropBox: setThumbnails",y),o==null||o(y),i={...i,...y}}))}return Promise.all(c).then(()=>i)},Ah=(e,t="application/octet-stream",n=512)=>{const a=atob(e),o=[];for(let s=0;s<a.length;s+=n){const l=a.slice(s,s+n),i=new Array(l.length);for(let d=0;d<l.length;d++)i[d]=l.charCodeAt(d);const c=new Uint8Array(i);o.push(c)}return new Blob(o,{type:t})},Mh=async(e,t)=>{try{const n=t.split(",")[1],a=Ah(n,"application/octet-stream");bh("https://content.dropboxapi.com/2/files/upload",a,{"Dropbox-API-Arg":JSON.stringify({path:ft(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)}},Rc=(e=!1)=>st?Nl(st.clientId,e):!1,Ih=(e={})=>{if(!st)return r.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"},r.createElement(W,{name:"warning"}),r.createElement("span",null,"Dropbox non configurato"));const t=Rc(!0);return r.createElement(Cl,{provider:"dropboxAuth",intent:"connect",aspect:"button",options:{...e,className:(e==null?void 0:e.className)+(t?" text-success":" text-danger"),icon:t?"link":"link-break",title:t?"DropBox Connected":"DropBox Disconnected"}})},_c={setRootPath:e=>{st&&(st.rootPath=e)},resolvePath:ft,createFolders:yh,deleteBulk:xh,addTags:Eh,listFolders:Nh,getThumbnails:Sh,search:vh,upload:Mh,copy:Ch,move:kh},Ns="https://api.serpapi.com/search",va="google",ya="google_images",xa="google_autocomplete",wa="google_trends",Ea="google_maps",Na="google_maps_photos",Ca="google_maps_reviews",Ht={engine:null,device:null,no_cache:!1,async:!1,output:"json"},Ir={q:null},ea={tbs:null,safe:"active",nfpr:0,filter:1};function Ph(e){const t=sa(),n=sa(!0),a=Ni(!0),o={location:t,uule:null},s={geo:t,region:null},l={google_domain:"google.com",gl:n.toLowerCase(),hl:a,cr:"country"+n,lr:"lang_"+a},i={data_id:null,hl:a};return{[va]:{...Ht,...o,...l,...ea,...Ir,engine:va,ludocid:null,lsig:null,kgmid:null,si:null,tbm:null,start:null,num:null},[ya]:{...Ht,...o,...l,...ea,...Ir,engine:ya,chips:null,ijn:null},[xa]:{...Ht,...l,...Ir,engine:xa,cp:null,client:null},[wa]:{...Ht,...s,...Ir,engine:wa,data_type:null,tz:null,cat:null,gprop:null,date:null,csv:null},[Ea]:{...Ht,...o,...l,...ea,...Ir,engine:Ea},[Na]:{...Ht,...i,engine:Na},[Ca]:{...Ht,...i,engine:Ca}}[e]??{}}let cn;typeof Je=="function"&&Je(e=>{cn=e.scrape});function Th(e){const t={};for(const n in e)e[n]!==null&&(t[n]=e[n]);return t}let ta=0;function Cs(e=!1){var n;const t=((n=cn==null?void 0:cn.serpApiKey)==null?void 0:n.split(",").map(a=>a.trim()).filter(Boolean))||[];return t.length===0?null:(e&&ta++,ta<t.length?t[ta]:null)}const Dh=async(e,t)=>{const n=o=>{const s=Th({...Ph(t),api_key:o,q:e});console.log(Ns,s);const l=new URLSearchParams(s);return`${Ns}?${l}`};let a=Cs();for(;a;)try{return await ot(n(a))}catch(o){if((o==null?void 0:o.error)==="quota_exceeded"){console.warn(`SerpApi: invalid api key: ${a}`,o),a=Cs(!0);continue}throw console.error(`SerpApi: ${a}`,o),o}return null},Kt=async(e,t,n)=>{const a=`${Gu}/${Pt(t)}/${Pt(e)}`,o=await n.read(a);if(o)return o;const s=await Dh(e,t);return s?n.set(a,s):console.warn(`SerpApi ${t}: No Result`),s??{}},Rh=e=>({googleSearch:async t=>Kt(t,va,e),googleImages:async t=>Kt(t,ya,e),googleAutocomplete:async t=>Kt(t,xa,e),googleTrends:async t=>Kt(t,wa,e),googleMaps:async t=>Kt(t,Ea,e),googleMapsPhotos:async t=>Kt(t,Na,e),googleMapsReviews:async t=>Kt(t,Ca,e)}),Ao={"+":"+","﹢":"+","-":"-","﹣":"-","–":"-","—":"-","@":"@","#":"#","$":"$","%":"%","&":"&","*":"*","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"},_h={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"]}},Fh=[{pattern:"email*",use:"email"},{pattern:"*_price",use:"price"},{pattern:"name*",use:"name"},{pattern:"date*",use:"date"}],Oh=new RegExp(Object.keys(Ao).join("|"),"g");function Fc(e){return e?e.normalize("NFKC").replace(Oh,t=>Ao[t]??t):""}class $h{constructor(t={},n=[]){this.config={..._h,...t},this.matches=[...Fh,...n]}apply(t,n,a=!1){const o=this.config[t];if(!o)return a?un(n):n;let s=n;s=Fc(String(s??""));const l=o.exclusions;if(Array.isArray(l)&&l.length){const i=String(s).toLowerCase();for(const c of l){const d=((c==null?void 0:c.phrase)??"").trim().toLowerCase();if(d&&i.includes(d)){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(t)}: ${i}`)}for(const i of o.mask||[]){let c,d;typeof i=="object"&&i!==null&&"func"in i?(c=i.func,d=i.arg):c=i;const u=Ue[c];if(typeof u=="function")try{s=u(s,d)}catch(m){console.warn(`Error applying mask ${c} for rule ${t}:`,m)}}return a?un(s):s}applyMatches(t,n=!1){const a={...t};for(const[o,s]of Object.entries(t))for(const l of this.matches)if(this.wildcardToRegExp(l.pattern).test(o)){a[o]=this.apply(l.use,s,n);break}return a}getOptions(){return Object.keys(this.config).sort().map(t=>({label:this.config[t].description??Ue.toCamel(t),value:t}))}addRule(t,n){this.config[t]=n}addMatch(t,n){this.matches.push({pattern:t,use:n})}wildcardToRegExp(t){const n=t.replace(/[.+^${}()|[\]\\]/g,"\\$&");return new RegExp(`^${n.replace(/\*/g,".*")}$`,"i")}}exports.AIProvider=Ci;exports.ActionButton=Ze;exports.Alert=Gr;exports.App=Ug;exports.AppProvider=Tc;exports.AuthButton=Cl;exports.AuthProvider=yl;exports.Autocomplete=ci;exports.BUILT_IN_THEMES=xt;exports.BUILT_IN_THEME_IDS=Ad;exports.BackLink=pl;exports.Badge=Vr;exports.BadgeOverlay=Xr;exports.Brand=vu;exports.Breadcrumbs=Il;exports.Card=$a;exports.Carousel=Cu;exports.Checkbox=oi;exports.Checklist=di;exports.Code=um;exports.CodeEditor=Oi;exports.CodeSyntaxError=Qt;exports.Col=Gs;exports.Color=Zl;exports.Component=Cf;exports.ComponentBlock=Li;exports.Container=Hs;exports.ContextMenu=Rn;exports.CropImage=no;exports.DEFAULT_DOCUMENT_HEAD=pa;exports.DEFAULT_HEAD_APP_NAME=fa;exports.DEFAULT_LANGUAGE_HEAD=ga;exports.DEFAULT_ORDER=si;exports.DataProvider=Sl;exports.Date=Ql;exports.DateTime=ti;exports.DirectApiProviderAdapter=Zg;exports.DropBoxConnectButton=Ih;exports.DropboxAuthProvider=xc;exports.Dropdown=mt;exports.DropdownButton=Tl;exports.DropdownDivider=Kr;exports.DropdownHeader=Dl;exports.DropdownItem=We;exports.DropdownMenu=ku;exports.Email=qa;exports.EmailProvider=hc;exports.FieldError=et;exports.FileNameEditor=gi;exports.FirebaseApiProviderAdapter=eh;exports.FirebaseAuthProvider=vc;exports.FirebaseDataProvider=br;exports.FirebaseStorageProvider=vr;exports.FirestoreDataProvider=yn;exports.Form=ho;exports.FormControllerContext=fo;exports.Gallery=ic;exports.GmailEmailProvider=Ec;exports.GoSite=ru;exports.GoogleAuthProvider=No;exports.GoogleServiceAccountProvider=yc;exports.Grid=uc;exports.GridArray=dc;exports.GridCore=Eo;exports.GridDB=rc;exports.GridGalleryView=cc;exports.GridTableView=ac;exports.Head=Gp;exports.HeadProvider=lc;exports.Hidden=Nm;exports.I18nProvider=Us;exports.Icon=W;exports.IconProvider=Zs;exports.Image=ja;exports.ImageAvatar=xl;exports.ImageEditor=Tn;exports.ImageField=fi;exports.Input=lt;exports.Label=tt;exports.LayoutBuilder=Hf;exports.ListCard=dp;exports.ListGroup=Cm;exports.Loader=Al;exports.LoadingButton=bt;exports.LocaleSwitcher=fm;exports.LucideIconProvider=Ta;exports.MarkdownReader=Zp;exports.Menu=Pl;exports.MockApiProviderAdapter=Qg;exports.MockDataProvider=Mn;exports.Modal=or;exports.ModalOk=bu;exports.ModalYesNo=hu;exports.Month=ni;exports.NORMALIZE_MAP=Ao;exports.Notifications=Su;exports.Number=Jl;exports.Order=pr;exports.PageUsers=mc;exports.Pagination=wo;exports.Password=Xl;exports.Percentage=Ya;exports.PhosphorIconProvider=Da;exports.Prompt=Ri;exports.PromptMode=Ti;exports.PromptUtils=Wt;exports.ProviderSwitcher=sm;exports.Range=ai;exports.ReferSite=nu;exports.Repeat=$f;exports.RichText=lp;exports.Row=Ks;exports.Sanitizer=$h;exports.Search=Mu;exports.Select=pn;exports.SideNav=pp;exports.StorageProvider=mi;exports.String=Wa;exports.SupabaseApiProviderAdapter=th;exports.SupabaseAuthProvider=Nc;exports.SupabaseDataProvider=Ka;exports.SupabaseStorageProvider=Ga;exports.Switch=Ja;exports.Tab=Bf;exports.TabDynamic=Qp;exports.TabItem=Yi;exports.TabLayouts=vo;exports.Table=Ji;exports.TextArea=yr;exports.ThemeSwitcher=$u;exports.Time=ei;exports.Toolbar=Tu;exports.UploadCSV=Kf;exports.UploadDocument=yi;exports.UploadImage=xi;exports.Url=Em;exports.Week=ri;exports.Wrapper=pe;exports.arrayUnique=xn;exports.arraysEqual=Sa;exports.base64Encode=ud;exports.base64ToBlob=_s;exports.base64ToUrl=Fs;exports.buildBreadcrumbSchema=Ml;exports.buttonBaseClass=Cn;exports.buttonDangerClass=rl;exports.buttonDarkClass=ll;exports.buttonInfoClass=ol;exports.buttonLightClass=sl;exports.buttonLinkClass=ml;exports.buttonOutlineDangerClass=dl;exports.buttonOutlinePrimaryClass=il;exports.buttonOutlineSecondaryClass=cl;exports.buttonOutlineSuccessClass=ul;exports.buttonPrimaryClass=Ra;exports.buttonSecondaryClass=tl;exports.buttonSuccessClass=nl;exports.buttonWarningClass=al;exports.checkConditions=ld;exports.cleanRecord=tr;exports.cn=N;exports.configureProxy=ki;exports.converter=Ue;exports.copyToClipboard=ka;exports.crc32=id;exports.createAIProviderRegistry=oh;exports.createMotionTransition=Ws;exports.createTranslations=Fd;exports.decodeJWT=Is;exports.defineLocaleMessages=_d;exports.dirname=nd;exports.dropBox=_c;exports.eventClosest=od;exports.fetchJson=ot;exports.fetchRest=wn;exports.fetchWithRetry=Ma;exports.fieldAddonClass=nr;exports.fieldControlBaseClass=Qr;exports.fieldFeedbackClass=Et;exports.fieldGroupClass=Rt;exports.fieldLabelClass=Kl;exports.fieldTextAreaBaseClass=Gl;exports.formatAIModelRef=oo;exports.generateUniqueId=ad;exports.getAIModelCatalog=Ii;exports.getAccessToken=Sn;exports.getCodeValidationResult=yf;exports.getFileUrl=Zt;exports.getGlobalVars=Jt;exports.getGoogleTrendsData=fh;exports.getGoogleTrendsRelated=ph;exports.getKeywordIdeas=mh;exports.getProviderConfigurationState=Fa;exports.getRecordValue=zr;exports.getTabLayoutConfig=wt;exports.getTabPaneClassName=bo;exports.getTabTriggerClassName=bn;exports.googleGetAccessToken=Co;exports.interpolate=Ve;exports.intersectObjects=dd;exports.isBadgeDescriptor=Pa;exports.isEmpty=Jr;exports.isInteractiveElement=Aa;exports.isProxyEnabled=Si;exports.loadScripts=Ts;exports.locales=qg;exports.normalizeBadgeProps=Ys;exports.normalizeKey=Pt;exports.normalizePath=dn;exports.normalizeVisualChars=Fc;exports.parseAIModelRef=Mt;exports.path=fr;exports.proxyFetch=Qe;exports.registerProviderSessionFactory=wr;exports.removeGlobalVars=bl;exports.render2Base64=Rs;exports.replacePlaceholders=Ps;exports.replaceVariables=ra;exports.resolveMotionEffect=qs;exports.runPrompt=Fi;exports.safeClone=St;exports.sanitizeKey=Ds;exports.scrape=Rh;exports.sendEmail=wc;exports.setGlobalVars=kn;exports.sleep=qr;exports.smartTypeCast=un;exports.substrCount=sd;exports.trimPath=rd;exports.trimSlash=Wr;exports.ucfirst=cd;exports.useAIProvider=lo;exports.useAIProviderRegistry=Dn;exports.useAccessToken=Nl;exports.useApiProvider=Jg;exports.useAssetsHead=Up;exports.useAuthProvider=_a;exports.useCredentialsProvider=pg;exports.useDataProvider=Dt;exports.useDocumentHead=Vp;exports.useDropBoxConnect=Rc;exports.useEditorHeight=In;exports.useEmailProvider=mg;exports.useEnterMotion=Nn;exports.useFileUploadCore=ao;exports.useFormActions=Mf;exports.useFormController=po;exports.useGlobalVars=hl;exports.useHead=xo;exports.useHeadLinks=jp;exports.useI18n=Me;exports.useIconController=el;exports.useIconProvider=Qs;exports.useImage=Im;exports.useLanguageHead=zp;exports.useMenu=So;exports.useMotionEffect=En;exports.useMotionState=rr;exports.usePaginationHead=Bp;exports.usePressMotion=Zr;exports.useProvider=Ol;exports.useProviderSession=Ul;exports.useProxy=qm;exports.usePwaHead=Hp;exports.useSchemaOrgHead=Kp;exports.useSetProvider=Fl;exports.useSocialHead=Lp;exports.useStorageProvider=Pn;exports.useTheme=me;exports.useThemeController=Bs;exports.validateCodeSyntax=mo;