@africode/core 5.0.6 → 5.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -0
- package/COMPONENT_SCHEMA.json +1 -0
- package/README.md +2 -0
- package/components/breadcrumb.js +72 -0
- package/components/carousel.js +32 -0
- package/components/cart-drawer.js +28 -0
- package/components/code-block.js +20 -0
- package/components/contact-form.js +25 -0
- package/components/cookie-consent.js +23 -0
- package/components/cta-banner.js +38 -0
- package/components/dashboard-activity-list.js +103 -0
- package/components/dashboard-card.js +85 -0
- package/components/dashboard-metric.js +81 -0
- package/components/dashboard-shell.js +85 -0
- package/components/dashboard-topbar.js +84 -0
- package/components/faq-accordion.js +23 -0
- package/components/feature-grid.js +85 -0
- package/components/file-uploader.js +22 -0
- package/components/filter-bar.js +19 -0
- package/components/footer.js +113 -0
- package/components/gallery.js +22 -0
- package/components/index.js +47 -0
- package/components/newsletter-signup.js +24 -0
- package/components/pagination.js +31 -0
- package/components/pricing-card.js +100 -0
- package/components/product-card.js +41 -0
- package/components/search-box.js +24 -0
- package/components/simple-chart.js +22 -0
- package/components/stepper.js +28 -0
- package/components/team-grid.js +23 -0
- package/components/testimonial.js +94 -0
- package/components/ui-avatar.js +79 -0
- package/components/ui-chip.js +87 -0
- package/components/ui-popover.js +84 -0
- package/components/ui-progress-ring.js +60 -0
- package/components/ui-select.js +85 -0
- package/components/ui-stat.js +75 -0
- package/components/ui-table.js +69 -0
- package/components/ui-tabs.js +99 -0
- package/components/ui-tag.js +64 -0
- package/components/ui-textarea.js +84 -0
- package/components/ui-tooltip.js +66 -0
- package/components/video-player.js +22 -0
- package/dist/africode.js +1480 -549
- package/dist/africode.js.map +25 -4
- package/dist/build-info.json +3 -3
- package/dist/components.js +1506 -575
- package/dist/components.js.map +25 -4
- package/package.json +1 -1
package/dist/components.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Ta=Object.defineProperty;var Za=(t)=>t;function za(t,n){this[t]=Za.bind(null,n)}var w=(t,n)=>{for(var o in n)Ta(t,o,{get:n[o],enumerable:!0,configurable:!0,set:za.bind(n,o)})};var s=(t,n)=>()=>(t&&(n=t(t=0)),n);class On{constructor(t){this.value=t,this.__type="RawHtml",Object.freeze(this)}toString(){return this.value}valueOf(){return this.value}}function te(t){return String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Io(t){if(t instanceof On)return t.toString();if(Array.isArray(t))return t.map(Io).join("");if(t===null||t===void 0||t===!1)return"";if(t===!0)return"true";return te(t)}var g=(t,...n)=>{let o="";for(let r=0;r<t.length;r++)if(o+=t[r],r<n.length)o+=Io(n[r]);return new On(o)};function f(t,n){if(typeof customElements>"u")return;if(!customElements.get(t))customElements.define(t,n)}var ne,Po,b;var u=s(()=>{ne=globalThis.HTMLElement??class{},Po=typeof CSSStyleSheet<"u";b=class b extends ne{constructor(){super();this.attachShadow({mode:"open"});let t=this.render;if(t&&typeof t==="function")this.render=()=>{try{t.call(this),this.removeAttribute("has-error")}catch(n){console.error(`[AfriCode] Rendering error in <${this.localName}>:`,n),this.setAttribute("has-error","true"),this.shadowRoot.innerHTML=`
|
|
2
2
|
<style>
|
|
3
3
|
.af-local-error {
|
|
4
4
|
padding: 1rem;
|
|
@@ -17,7 +17,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
17
17
|
<span aria-hidden="true">⚠️</span>
|
|
18
18
|
<span>Failed to render</span>
|
|
19
19
|
</div>
|
|
20
|
-
`,this.emit("af-component-error",{component:this.localName,message:n.message,stack:n.stack})}}}connectedCallback(){}static styleCache=new Map;static globalSheets=[];static injectGlobalSheet(t){if(!
|
|
20
|
+
`,this.emit("af-component-error",{component:this.localName,message:n.message,stack:n.stack})}}}connectedCallback(){}static styleCache=new Map;static globalSheets=[];static injectGlobalSheet(t){if(!Po)return;if(!(t instanceof CSSStyleSheet))return;if(!b.globalSheets.includes(t))b.globalSheets.push(t)}async loadStyles(t=""){if(!this.shadowRoot)return;let o=Po&&"adoptedStyleSheets"in this.shadowRoot,r=typeof t==="string"&&t.length>0?t:"/styles/africanity.css",a=typeof t==="string"&&t.length>0?t:null;if(b.styleCache.has(r)){let e=b.styleCache.get(r);if(o)this.shadowRoot.adoptedStyleSheets=[e,...b.globalSheets];else this._applyFallbackStyle(e?.cssText||e?.text||e||"");return}try{let e=a;if(!e){let l=await fetch("/styles/africanity.css");if(!l.ok)throw Error(`Unable to load stylesheet: ${l.status}`);e=await l.text()}if(o){let l=new CSSStyleSheet;l.replaceSync(e),b.styleCache.set(r,l),this.shadowRoot.adoptedStyleSheets=[l,...b.globalSheets];return}this._applyFallbackStyle(e),b.styleCache.set(r,{text:e})}catch(e){this._applyFallbackStyle(a||"")}}_applyFallbackStyle(t){if(!this.shadowRoot)return;let n=this.shadowRoot.querySelector("style[data-africode-core-styles]");if(!n)n=document.createElement("style"),n.setAttribute("data-africode-core-styles",""),this.shadowRoot.prepend(n);n.textContent=t}spacing(t){return`var(--space-${t})`}createElement(t,{classes:n=[],attributes:o={},text:r=""}={}){let a=document.createElement(t);if(n.length)a.classList.add(...n);if(Object.entries(o).forEach(([e,l])=>a.setAttribute(e,l)),r)a.textContent=r;return a}emit(t,n){this.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))}}});var To={};w(To,{default:()=>oe,AfriUIButton:()=>vt});var vt,oe;var Un=s(()=>{u();vt=class vt extends b{static get observedAttributes(){return["variant","size","disabled","loading","full-width","aria-label"]}constructor(){super();this.render()}connectedCallback(){this.shadowRoot.querySelector("button")?.addEventListener("click",(n)=>{if(this.hasAttribute("disabled")||this.hasAttribute("loading")){n.preventDefault();return}this.emit("af-ui-button-click",{originalEvent:n})})}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"primary",n=this.getAttribute("size")||"md",o=this.hasAttribute("disabled"),r=this.hasAttribute("loading"),a=this.getAttribute("aria-label")||"";this.shadowRoot.innerHTML=g`
|
|
21
21
|
<style>
|
|
22
22
|
:host { display: inline-block; }
|
|
23
23
|
|
|
@@ -110,164 +110,1095 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
110
110
|
|
|
111
111
|
<button
|
|
112
112
|
class="${t} ${n}"
|
|
113
|
-
${
|
|
114
|
-
${
|
|
115
|
-
${
|
|
113
|
+
${o?"disabled":""}
|
|
114
|
+
${a?`aria-label="${a}"`:""}
|
|
115
|
+
${r?'aria-busy="true"':""}
|
|
116
116
|
>
|
|
117
|
-
${
|
|
117
|
+
${r?g`<span class="spinner"></span>`:""}
|
|
118
|
+
<slot></slot>
|
|
119
|
+
</button>
|
|
120
|
+
`}};f("af-ui-button",vt);oe=vt});var Zo={};w(Zo,{default:()=>re,AfriUICard:()=>$t});var $t,re;var Vn=s(()=>{u();$t=class $t extends b{static get observedAttributes(){return["variant","bordered","clickable"]}constructor(){super();this.render()}connectedCallback(){if(this.loadStyles(),this.hasAttribute("clickable"))this.shadowRoot.querySelector(".card")?.addEventListener("click",()=>{this.emit("af-ui-card-click")})}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"elevated",n=this.hasAttribute("bordered"),o=this.hasAttribute("clickable");this.shadowRoot.innerHTML=g`
|
|
121
|
+
<style>
|
|
122
|
+
:host { display: block; }
|
|
123
|
+
|
|
124
|
+
.card {
|
|
125
|
+
border-radius: 1rem;
|
|
126
|
+
padding: 1.5rem;
|
|
127
|
+
background: #ffffff;
|
|
128
|
+
color: #0f172a;
|
|
129
|
+
transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
|
|
130
|
+
border: 1px solid transparent;
|
|
131
|
+
box-shadow: 0 16px 32px rgba(15, 23, 42, 0.08);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.card.elevated { background: #fff; }
|
|
135
|
+
.card.flat { background: #f8fafc; box-shadow: none; }
|
|
136
|
+
.card.outlined { background: #fff; border-color: #e2e8f0; box-shadow: none; }
|
|
137
|
+
|
|
138
|
+
.card:hover:not(.disabled) {
|
|
139
|
+
transform: translateY(-2px);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
:host([bordered]) .card { border-color: #cbd5e1; }
|
|
143
|
+
|
|
144
|
+
:host([clickable]) .card { cursor: pointer; }
|
|
145
|
+
</style>
|
|
146
|
+
|
|
147
|
+
<article class="card ${t}">
|
|
118
148
|
<slot></slot>
|
|
149
|
+
</article>
|
|
150
|
+
`}};f("af-ui-card",$t);re=$t});var zo={};w(zo,{default:()=>ae,AfriUIInput:()=>ut});var ut,ae;var Nn=s(()=>{u();ut=class ut extends b{static get observedAttributes(){return["label","placeholder","type","value","disabled","error"]}constructor(){super();this.render()}connectedCallback(){this._attachListeners(),this.loadStyles()}attributeChangedCallback(){this.render(),this._attachListeners()}_attachListeners(){let t=this.shadowRoot.querySelector("input");if(!t)return;t.addEventListener("input",()=>{this.emit("af-ui-input",{value:t.value})})}render(){let t=this.getAttribute("label")||"",n=this.getAttribute("placeholder")||"",o=this.getAttribute("type")||"text",r=this.getAttribute("value")||"",a=this.hasAttribute("disabled"),e=this.getAttribute("error")||"";this.shadowRoot.innerHTML=g`
|
|
151
|
+
<style>
|
|
152
|
+
:host { display: block; font-family: 'Inter', system-ui, sans-serif; }
|
|
153
|
+
|
|
154
|
+
label {
|
|
155
|
+
display: block;
|
|
156
|
+
font-size: 0.85rem;
|
|
157
|
+
font-weight: 600;
|
|
158
|
+
margin-bottom: 0.5rem;
|
|
159
|
+
color: #111827;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.field {
|
|
163
|
+
display: grid;
|
|
164
|
+
gap: 0.45rem;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
input {
|
|
168
|
+
width: 100%;
|
|
169
|
+
border: 1px solid #d1d5db;
|
|
170
|
+
border-radius: 0.75rem;
|
|
171
|
+
padding: 0.95rem 1rem;
|
|
172
|
+
font-size: 0.95rem;
|
|
173
|
+
color: #111827;
|
|
174
|
+
background: #ffffff;
|
|
175
|
+
transition: border-color 150ms ease, box-shadow 150ms ease;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
input:focus {
|
|
179
|
+
outline: none;
|
|
180
|
+
border-color: #2563eb;
|
|
181
|
+
box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
input:disabled {
|
|
185
|
+
opacity: 0.65;
|
|
186
|
+
cursor: not-allowed;
|
|
187
|
+
background: #f8fafc;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.error {
|
|
191
|
+
color: #dc2626;
|
|
192
|
+
font-size: 0.8rem;
|
|
193
|
+
min-height: 1rem;
|
|
194
|
+
}
|
|
195
|
+
</style>
|
|
196
|
+
|
|
197
|
+
<div class="field">
|
|
198
|
+
${t?g`<label>${t}</label>`:""}
|
|
199
|
+
<input
|
|
200
|
+
type="${o}"
|
|
201
|
+
placeholder="${n}"
|
|
202
|
+
value="${r}"
|
|
203
|
+
${a?"disabled":""}
|
|
204
|
+
aria-invalid="${Boolean(e)}"
|
|
205
|
+
/>
|
|
206
|
+
<div class="error">${e}</div>
|
|
207
|
+
</div>
|
|
208
|
+
`}};f("af-ui-input",ut);ae=ut});var tr={};w(tr,{default:()=>ee,AfriUIBadge:()=>wt});var wt,ee;var Kn=s(()=>{u();wt=class wt extends b{static get observedAttributes(){return["variant","size","pill"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"secondary",n=this.getAttribute("size")||"md",o=this.hasAttribute("pill");this.shadowRoot.innerHTML=g`
|
|
209
|
+
<style>
|
|
210
|
+
:host { display: inline-block; font-family: 'Inter', system-ui, sans-serif; }
|
|
211
|
+
|
|
212
|
+
.badge {
|
|
213
|
+
display: inline-flex;
|
|
214
|
+
align-items: center;
|
|
215
|
+
justify-content: center;
|
|
216
|
+
gap: 0.4rem;
|
|
217
|
+
border-radius: ${o?"999px":"0.6rem"};
|
|
218
|
+
padding: ${n==="sm"?"0.25rem 0.65rem":n==="lg"?"0.55rem 1rem":"0.4rem 0.8rem"};
|
|
219
|
+
font-size: ${n==="sm"?"0.75rem":n==="lg"?"0.95rem":"0.85rem"};
|
|
220
|
+
font-weight: 700;
|
|
221
|
+
color: #111827;
|
|
222
|
+
background: var(--af-ui-badge-bg, #e2e8f0);
|
|
223
|
+
border: 1px solid transparent;
|
|
224
|
+
white-space: nowrap;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.badge.primary { background: #2563eb; color: #ffffff; }
|
|
228
|
+
.badge.success { background: #16a34a; color: #ffffff; }
|
|
229
|
+
.badge.warning { background: #f59e0b; color: #0f172a; }
|
|
230
|
+
.badge.danger { background: #dc2626; color: #ffffff; }
|
|
231
|
+
.badge.secondary { background: #f8fafc; color: #0f172a; }
|
|
232
|
+
</style>
|
|
233
|
+
|
|
234
|
+
<span class="badge ${t}"><slot></slot></span>
|
|
235
|
+
`}};f("af-ui-badge",wt);ee=wt});var nr={};w(nr,{default:()=>le,AfriUISwitch:()=>xt});var xt,le;var jn=s(()=>{u();xt=class xt extends b{static get observedAttributes(){return["checked","disabled","size"]}constructor(){super();this.render()}connectedCallback(){this.shadowRoot.querySelector("button")?.addEventListener("click",(t)=>{if(this.hasAttribute("disabled"))return;let n=!this.hasAttribute("checked");if(n)this.setAttribute("checked","");else this.removeAttribute("checked");this.emit("af-ui-switch-toggle",{checked:n,originalEvent:t})})}attributeChangedCallback(){this.render()}render(){let t=this.hasAttribute("checked"),n=this.hasAttribute("disabled"),o=this.getAttribute("size")||"md",r=o==="sm"?{width:36,height:20,knob:14}:o==="lg"?{width:56,height:32,knob:24}:{width:48,height:28,knob:20},a=t?"true":"false";this.shadowRoot.innerHTML=g`
|
|
236
|
+
<style>
|
|
237
|
+
:host { display: inline-block; }
|
|
238
|
+
|
|
239
|
+
button {
|
|
240
|
+
all: unset;
|
|
241
|
+
position: relative;
|
|
242
|
+
width: ${r.width}px;
|
|
243
|
+
height: ${r.height}px;
|
|
244
|
+
border-radius: ${r.height/2}px;
|
|
245
|
+
background: ${t?"#2563eb":"#e5e7eb"};
|
|
246
|
+
cursor: ${n?"not-allowed":"pointer"};
|
|
247
|
+
transition: background 180ms ease;
|
|
248
|
+
box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.knob {
|
|
252
|
+
position: absolute;
|
|
253
|
+
top: 50%;
|
|
254
|
+
left: ${t?`${r.width-r.knob-4}px`:"4px"};
|
|
255
|
+
transform: translateY(-50%);
|
|
256
|
+
width: ${r.knob}px;
|
|
257
|
+
height: ${r.knob}px;
|
|
258
|
+
border-radius: 999px;
|
|
259
|
+
background: #ffffff;
|
|
260
|
+
transition: left 180ms ease;
|
|
261
|
+
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.16);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
button:disabled { opacity: 0.65; }
|
|
265
|
+
</style>
|
|
266
|
+
|
|
267
|
+
<button role="switch" aria-checked="${a}" ${n?"disabled":""}>
|
|
268
|
+
<span class="knob"></span>
|
|
119
269
|
</button>
|
|
120
|
-
`}};
|
|
270
|
+
`}};f("af-ui-switch",xt);le=xt});var or={};w(or,{default:()=>ie,AfriUISelect:()=>At});var At,ie;var yn=s(()=>{u();At=class At extends b{static get observedAttributes(){return["label","placeholder","disabled","error"]}constructor(){super();this.render()}connectedCallback(){this._attachListeners(),this.loadStyles()}attributeChangedCallback(){this.render(),this._attachListeners()}_attachListeners(){let t=this.shadowRoot.querySelector("select");if(!t)return;t.addEventListener("change",()=>{this.emit("af-ui-select",{value:t.value})})}render(){let t=this.getAttribute("label")||"",n=this.getAttribute("placeholder")||"Select an option",o=this.hasAttribute("disabled"),r=this.getAttribute("error")||"";this.shadowRoot.innerHTML=g`
|
|
271
|
+
<style>
|
|
272
|
+
:host { display: block; font-family: 'Inter', system-ui, sans-serif; }
|
|
273
|
+
|
|
274
|
+
.field { display: grid; gap: 0.5rem; }
|
|
275
|
+
label { font-size: 0.85rem; font-weight: 600; color: #111827; }
|
|
276
|
+
select {
|
|
277
|
+
width: 100%;
|
|
278
|
+
border: 1px solid #d1d5db;
|
|
279
|
+
border-radius: 0.75rem;
|
|
280
|
+
padding: 0.9rem 1rem;
|
|
281
|
+
background: #fff;
|
|
282
|
+
color: #111827;
|
|
283
|
+
appearance: none;
|
|
284
|
+
font-size: 0.95rem;
|
|
285
|
+
outline: none;
|
|
286
|
+
transition: border-color 150ms ease, box-shadow 150ms ease;
|
|
287
|
+
}
|
|
288
|
+
select:focus {
|
|
289
|
+
border-color: #2563eb;
|
|
290
|
+
box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
|
|
291
|
+
}
|
|
292
|
+
select:disabled { background: #f8fafc; cursor: not-allowed; }
|
|
293
|
+
|
|
294
|
+
.hint { font-size: 0.85rem; color: #6b7280; }
|
|
295
|
+
.error { color: #dc2626; font-size: 0.8rem; min-height: 1rem; }
|
|
296
|
+
</style>
|
|
297
|
+
|
|
298
|
+
<div class="field">
|
|
299
|
+
${t?g`<label>${t}</label>`:""}
|
|
300
|
+
<select ${o?"disabled":""}>
|
|
301
|
+
<option disabled selected hidden>${n}</option>
|
|
302
|
+
<slot></slot>
|
|
303
|
+
</select>
|
|
304
|
+
<div class="error">${r}</div>
|
|
305
|
+
</div>
|
|
306
|
+
`}};f("af-ui-select",At);ie=At});var rr={};w(rr,{default:()=>be,AfriUITextarea:()=>_t});var _t,be;var Cn=s(()=>{u();_t=class _t extends b{static get observedAttributes(){return["label","placeholder","rows","disabled","error"]}constructor(){super();this.render()}connectedCallback(){this._attachListeners(),this.loadStyles()}attributeChangedCallback(){this.render(),this._attachListeners()}_attachListeners(){let t=this.shadowRoot.querySelector("textarea");if(!t)return;t.addEventListener("input",()=>{this.emit("af-ui-textarea",{value:t.value})})}render(){let t=this.getAttribute("label")||"",n=this.getAttribute("placeholder")||"",o=this.getAttribute("rows")||"4",r=this.hasAttribute("disabled"),a=this.getAttribute("error")||"";this.shadowRoot.innerHTML=g`
|
|
307
|
+
<style>
|
|
308
|
+
:host { display: block; font-family: 'Inter', system-ui, sans-serif; }
|
|
309
|
+
|
|
310
|
+
.field { display: grid; gap: 0.5rem; }
|
|
311
|
+
label { font-size: 0.85rem; font-weight: 600; color: #111827; }
|
|
312
|
+
textarea {
|
|
313
|
+
width: 100%;
|
|
314
|
+
min-height: 120px;
|
|
315
|
+
border: 1px solid #d1d5db;
|
|
316
|
+
border-radius: 0.75rem;
|
|
317
|
+
padding: 1rem;
|
|
318
|
+
font-size: 0.95rem;
|
|
319
|
+
font-family: inherit;
|
|
320
|
+
color: #111827;
|
|
321
|
+
resize: vertical;
|
|
322
|
+
background: #fff;
|
|
323
|
+
transition: border-color 150ms ease, box-shadow 150ms ease;
|
|
324
|
+
}
|
|
325
|
+
textarea:focus {
|
|
326
|
+
border-color: #2563eb;
|
|
327
|
+
box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
|
|
328
|
+
outline: none;
|
|
329
|
+
}
|
|
330
|
+
textarea:disabled { background: #f8fafc; cursor: not-allowed; }
|
|
331
|
+
|
|
332
|
+
.error { color: #dc2626; font-size: 0.8rem; min-height: 1rem; }
|
|
333
|
+
</style>
|
|
334
|
+
|
|
335
|
+
<div class="field">
|
|
336
|
+
${t?g`<label>${t}</label>`:""}
|
|
337
|
+
<textarea rows="${o}" placeholder="${n}" ${r?"disabled":""}></textarea>
|
|
338
|
+
<div class="error">${a}</div>
|
|
339
|
+
</div>
|
|
340
|
+
`}};f("af-ui-textarea",_t);be=_t});var ar={};w(ar,{default:()=>ce,AfriUIChip:()=>kt});var kt,ce;var In=s(()=>{u();kt=class kt extends b{static get observedAttributes(){return["variant","size","dismissible"]}constructor(){super();this.render()}connectedCallback(){this.render(),this._attachListeners()}attributeChangedCallback(){this.render(),this._attachListeners()}_attachListeners(){let t=this.shadowRoot.querySelector(".chip button");if(!t)return;t.addEventListener("click",(n)=>{n.stopPropagation(),this.emit("af-ui-chip-dismiss",{})})}render(){let t=this.getAttribute("variant")||"neutral",n=this.getAttribute("size")||"md",o=this.hasAttribute("dismissible");this.shadowRoot.innerHTML=g`
|
|
341
|
+
<style>
|
|
342
|
+
:host { display: inline-flex; }
|
|
343
|
+
|
|
344
|
+
.chip {
|
|
345
|
+
display: inline-flex;
|
|
346
|
+
align-items: center;
|
|
347
|
+
gap: 0.5rem;
|
|
348
|
+
border-radius: 999px;
|
|
349
|
+
padding: ${n==="sm"?"0.35rem 0.75rem":"0.45rem 1rem"};
|
|
350
|
+
font-size: ${n==="sm"?"0.75rem":"0.85rem"};
|
|
351
|
+
font-weight: 600;
|
|
352
|
+
background: #f8fafc;
|
|
353
|
+
color: #0f172a;
|
|
354
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.chip.primary { background: #eff6ff; color: #1d4ed8; }
|
|
358
|
+
.chip.success { background: #dcfce7; color: #166534; }
|
|
359
|
+
.chip.warning { background: #fef3c7; color: #92400e; }
|
|
360
|
+
.chip.danger { background: #fee2e2; color: #991b1b; }
|
|
361
|
+
.chip.neutral { background: #f8fafc; color: #0f172a; }
|
|
362
|
+
|
|
363
|
+
button {
|
|
364
|
+
border: none;
|
|
365
|
+
background: transparent;
|
|
366
|
+
color: inherit;
|
|
367
|
+
cursor: pointer;
|
|
368
|
+
font-size: 0.95rem;
|
|
369
|
+
padding: 0;
|
|
370
|
+
line-height: 1;
|
|
371
|
+
}
|
|
372
|
+
</style>
|
|
373
|
+
|
|
374
|
+
<span class="chip ${t}">
|
|
375
|
+
<slot></slot>
|
|
376
|
+
${o?g`<button aria-label="Remove">×</button>`:""}
|
|
377
|
+
</span>
|
|
378
|
+
`}};f("af-ui-chip",kt);ce=kt});var er={};w(er,{default:()=>fe,AfriUITag:()=>qt});var qt,fe;var Pn=s(()=>{u();qt=class qt extends b{static get observedAttributes(){return["variant","size"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"secondary",n=this.getAttribute("size")||"md",o={sm:"0.25rem 0.6rem",md:"0.35rem 0.8rem",lg:"0.5rem 1rem"};this.shadowRoot.innerHTML=g`
|
|
379
|
+
<style>
|
|
380
|
+
:host { display: inline-block; font-family: 'Inter', sans-serif; }
|
|
381
|
+
|
|
382
|
+
.tag {
|
|
383
|
+
display: inline-flex;
|
|
384
|
+
align-items: center;
|
|
385
|
+
justify-content: center;
|
|
386
|
+
gap: 0.35rem;
|
|
387
|
+
padding: ${o[n]};
|
|
388
|
+
border-radius: 999px;
|
|
389
|
+
font-size: ${n==="sm"?"0.75rem":n==="lg"?"0.95rem":"0.85rem"};
|
|
390
|
+
font-weight: 600;
|
|
391
|
+
color: #111827;
|
|
392
|
+
background: #f8fafc;
|
|
393
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.tag.primary { background: #dbeafe; color: #1e40af; }
|
|
397
|
+
.tag.success { background: #d1fae5; color: #14532d; }
|
|
398
|
+
.tag.warning { background: #fde68a; color: #92400e; }
|
|
399
|
+
.tag.danger { background: #fecaca; color: #991b1b; }
|
|
400
|
+
.tag.secondary { background: #f3f4f6; color: #1f2937; }
|
|
401
|
+
</style>
|
|
402
|
+
|
|
403
|
+
<span class="tag ${t}"><slot></slot></span>
|
|
404
|
+
`}};f("af-ui-tag",qt);fe=qt});var lr={};w(lr,{default:()=>de,AfriUIAvatar:()=>Ht});var Ht,de;var Tn=s(()=>{u();Ht=class Ht extends b{static get observedAttributes(){return["src","initials","size","badge"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("src"),n=this.getAttribute("initials")||"AC",o=this.getAttribute("size")||"md",r=o==="sm"?"32px":o==="lg"?"64px":"48px",a=this.getAttribute("badge");this.shadowRoot.innerHTML=g`
|
|
405
|
+
<style>
|
|
406
|
+
:host { display: inline-flex; }
|
|
407
|
+
|
|
408
|
+
.avatar {
|
|
409
|
+
position: relative;
|
|
410
|
+
width: ${r};
|
|
411
|
+
height: ${r};
|
|
412
|
+
border-radius: 999px;
|
|
413
|
+
overflow: hidden;
|
|
414
|
+
background: linear-gradient(135deg, #1eb53a, #fcd116);
|
|
415
|
+
color: #fff;
|
|
416
|
+
display: inline-flex;
|
|
417
|
+
align-items: center;
|
|
418
|
+
justify-content: center;
|
|
419
|
+
font-weight: 700;
|
|
420
|
+
font-size: ${o==="sm"?"0.85rem":o==="lg"?"1.25rem":"1rem"};
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
img {
|
|
424
|
+
width: 100%;
|
|
425
|
+
height: 100%;
|
|
426
|
+
object-fit: cover;
|
|
427
|
+
display: block;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
.badge {
|
|
431
|
+
position: absolute;
|
|
432
|
+
bottom: -2px;
|
|
433
|
+
right: -2px;
|
|
434
|
+
background: #2563eb;
|
|
435
|
+
color: #fff;
|
|
436
|
+
border-radius: 999px;
|
|
437
|
+
padding: 0.15rem 0.45rem;
|
|
438
|
+
font-size: 0.65rem;
|
|
439
|
+
font-weight: 700;
|
|
440
|
+
}
|
|
441
|
+
</style>
|
|
442
|
+
|
|
443
|
+
<div class="avatar">
|
|
444
|
+
${t?g`<img src="${t}" alt="Avatar" />`:g`<span>${n}</span>`}
|
|
445
|
+
${a?g`<span class="badge">${a}</span>`:""}
|
|
446
|
+
</div>
|
|
447
|
+
`}};f("af-ui-avatar",Ht);de=Ht});var ir={};w(ir,{default:()=>he,AfriUIProgressRing:()=>Lt});var Lt,he;var Zn=s(()=>{u();Lt=class Lt extends b{static get observedAttributes(){return["value","size","stroke","label"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=Number(this.getAttribute("value")||0),n=Number(this.getAttribute("size")||96),o=Number(this.getAttribute("stroke")||10),r=this.getAttribute("label")||"",a=(n-o)/2,e=2*Math.PI*a,l=e-t/100*e;this.shadowRoot.innerHTML=g`
|
|
448
|
+
<style>
|
|
449
|
+
:host { display: inline-flex; align-items: center; justify-content: center; }
|
|
450
|
+
.ring { position: relative; width: ${n}px; height: ${n}px; }
|
|
451
|
+
svg { transform: rotate(-90deg); width: 100%; height: 100%; }
|
|
452
|
+
circle { fill: none; stroke-width: ${o}; stroke-linecap: round; }
|
|
453
|
+
.bg { stroke: rgba(15, 23, 42, 0.12); }
|
|
454
|
+
.progress { stroke: #2563eb; stroke-dasharray: ${e}; stroke-dashoffset: ${l}; transition: stroke-dashoffset 0.35s ease; }
|
|
455
|
+
.label { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #111827; font-family: 'Inter', sans-serif; }
|
|
456
|
+
.value { font-size: 1rem; font-weight: 700; }
|
|
457
|
+
.subtitle { font-size: 0.75rem; color: #6b7280; }
|
|
458
|
+
</style>
|
|
459
|
+
<div class="ring" role="progressbar" aria-valuenow="${t}" aria-valuemin="0" aria-valuemax="100">
|
|
460
|
+
<svg viewBox="0 0 ${n} ${n}">
|
|
461
|
+
<circle class="bg" cx="${n/2}" cy="${n/2}" r="${a}" />
|
|
462
|
+
<circle class="progress" cx="${n/2}" cy="${n/2}" r="${a}" />
|
|
463
|
+
</svg>
|
|
464
|
+
<div class="label">
|
|
465
|
+
<div class="value">${t}%</div>
|
|
466
|
+
${r?g`<div class="subtitle">${r}</div>`:""}
|
|
467
|
+
</div>
|
|
468
|
+
</div>
|
|
469
|
+
`}};f("af-ui-progress-ring",Lt);he=Lt});var br={};w(br,{default:()=>ge,AfriUITooltip:()=>Mt});var Mt,ge;var zn=s(()=>{u();Mt=class Mt extends b{static get observedAttributes(){return["text","position"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("text")||"",n=this.getAttribute("position")||"top";this.shadowRoot.innerHTML=g`
|
|
470
|
+
<style>
|
|
471
|
+
:host { position: relative; display: inline-flex; }
|
|
472
|
+
|
|
473
|
+
.tooltip {
|
|
474
|
+
position: absolute;
|
|
475
|
+
white-space: nowrap;
|
|
476
|
+
padding: 0.55rem 0.75rem;
|
|
477
|
+
background: rgba(15, 23, 42, 0.95);
|
|
478
|
+
color: #fff;
|
|
479
|
+
border-radius: 0.65rem;
|
|
480
|
+
font-size: 0.75rem;
|
|
481
|
+
transform: translateY(-8px);
|
|
482
|
+
opacity: 0;
|
|
483
|
+
pointer-events: none;
|
|
484
|
+
transition: opacity 0.2s ease, transform 0.2s ease;
|
|
485
|
+
z-index: 100;
|
|
486
|
+
}
|
|
487
|
+
:host(:hover) .tooltip { opacity: 1; transform: translateY(0); }
|
|
488
|
+
.tooltip::after {
|
|
489
|
+
content: '';
|
|
490
|
+
position: absolute;
|
|
491
|
+
width: 0;
|
|
492
|
+
height: 0;
|
|
493
|
+
border-style: solid;
|
|
494
|
+
}
|
|
495
|
+
.tooltip.top { bottom: 100%; left: 50%; transform: translate(-50%, -8px); }
|
|
496
|
+
.tooltip.top::after { top: 100%; left: 50%; transform: translateX(-50%); border-width: 6px 6px 0 6px; border-color: rgba(15,23,42,0.95) transparent transparent transparent; }
|
|
497
|
+
.tooltip.bottom { top: 100%; left: 50%; transform: translate(-50%, 8px); }
|
|
498
|
+
.tooltip.bottom::after { bottom: 100%; left: 50%; transform: translateX(-50%); border-width: 0 6px 6px 6px; border-color: transparent transparent rgba(15,23,42,0.95) transparent; }
|
|
499
|
+
</style>
|
|
500
|
+
<slot></slot>
|
|
501
|
+
<div class="tooltip ${n}" role="tooltip">${t}</div>
|
|
502
|
+
`}};f("af-ui-tooltip",Mt);ge=Mt});var cr={};w(cr,{default:()=>me,AfriUIPopover:()=>Et});var Et,me;var to=s(()=>{u();Et=class Et extends b{static get observedAttributes(){return["label","open"]}constructor(){super();this._open=this.hasAttribute("open"),this.render()}connectedCallback(){this._attachListeners()}attributeChangedCallback(){this._open=this.hasAttribute("open"),this.render(),this._attachListeners()}_attachListeners(){let t=this.shadowRoot.querySelector(".trigger");if(!t)return;t.addEventListener("click",()=>{if(this._open=!this._open,this._open)this.setAttribute("open","");else this.removeAttribute("open");this.render(),this._attachListeners()})}render(){let t=this.getAttribute("label")||"Open",n=this._open;this.shadowRoot.innerHTML=g`
|
|
503
|
+
<style>
|
|
504
|
+
:host { position: relative; display: inline-flex; }
|
|
505
|
+
.trigger {
|
|
506
|
+
border: 1px solid #cbd5e1;
|
|
507
|
+
border-radius: 0.75rem;
|
|
508
|
+
padding: 0.75rem 1rem;
|
|
509
|
+
background: #fff;
|
|
510
|
+
color: #111827;
|
|
511
|
+
cursor: pointer;
|
|
512
|
+
font-family: 'Inter', sans-serif;
|
|
513
|
+
font-weight: 600;
|
|
514
|
+
}
|
|
515
|
+
.panel {
|
|
516
|
+
position: absolute;
|
|
517
|
+
top: calc(100% + 0.5rem);
|
|
518
|
+
right: 0;
|
|
519
|
+
min-width: 220px;
|
|
520
|
+
background: #ffffff;
|
|
521
|
+
border: 1px solid #e5e7eb;
|
|
522
|
+
box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
|
|
523
|
+
border-radius: 1rem;
|
|
524
|
+
padding: 1rem;
|
|
525
|
+
opacity: ${n?"1":"0"};
|
|
526
|
+
visibility: ${n?"visible":"hidden"};
|
|
527
|
+
transform: ${n?"translateY(0)":"translateY(-10px)"};
|
|
528
|
+
transition: opacity 180ms ease, transform 180ms ease;
|
|
529
|
+
z-index: 10;
|
|
530
|
+
}
|
|
531
|
+
</style>
|
|
532
|
+
<button class="trigger" type="button">${t}</button>
|
|
533
|
+
<div class="panel"><slot></slot></div>
|
|
534
|
+
`}};f("af-ui-popover",Et);me=Et});var fr={};w(fr,{default:()=>pe,AfriUITabs:()=>St,AfriUITabPanel:()=>no});var St,no,pe;var oo=s(()=>{u();St=class St extends b{static get observedAttributes(){return["active"]}constructor(){super();this._active=this.getAttribute("active")||"0",this.render()}connectedCallback(){this._attachListeners()}attributeChangedCallback(){this._active=this.getAttribute("active")||"0",this.render(),this._attachListeners()}_attachListeners(){this.shadowRoot.querySelectorAll('[role="tab"]').forEach((n)=>{n.addEventListener("click",()=>{let o=n.getAttribute("data-index");this.setAttribute("active",o)})})}render(){let t=this._active,n=Array.from(this.children).filter((o)=>o.tagName.toLowerCase()==="ui-tab-panel");this.shadowRoot.innerHTML=g`
|
|
535
|
+
<style>
|
|
536
|
+
:host { display: block; font-family: 'Inter', system-ui, sans-serif; }
|
|
537
|
+
|
|
538
|
+
.tab-list {
|
|
539
|
+
display: flex;
|
|
540
|
+
gap: 0.5rem;
|
|
541
|
+
border-bottom: 1px solid #e5e7eb;
|
|
542
|
+
margin-bottom: 1rem;
|
|
543
|
+
}
|
|
544
|
+
button {
|
|
545
|
+
all: unset;
|
|
546
|
+
cursor: pointer;
|
|
547
|
+
padding: 0.75rem 1rem;
|
|
548
|
+
border-radius: 999px;
|
|
549
|
+
color: #334155;
|
|
550
|
+
font-weight: 600;
|
|
551
|
+
}
|
|
552
|
+
button.active {
|
|
553
|
+
background: #2563eb;
|
|
554
|
+
color: #fff;
|
|
555
|
+
}
|
|
556
|
+
.panel { display: none; }
|
|
557
|
+
.panel.active { display: block; }
|
|
558
|
+
</style>
|
|
559
|
+
<div class="tab-list" role="tablist">
|
|
560
|
+
${n.map((o,r)=>g`
|
|
561
|
+
<button
|
|
562
|
+
role="tab"
|
|
563
|
+
data-index="${r}"
|
|
564
|
+
class="${String(r)===String(t)?"active":""}"
|
|
565
|
+
aria-selected="${String(r)===String(t)}"
|
|
566
|
+
>
|
|
567
|
+
${o.getAttribute("label")||`Tab ${r+1}`}
|
|
568
|
+
</button>
|
|
569
|
+
`).join("")}
|
|
570
|
+
</div>
|
|
571
|
+
${n.map((o,r)=>g`
|
|
572
|
+
<div class="panel ${String(r)===String(t)?"active":""}" role="tabpanel">
|
|
573
|
+
${o.innerHTML}
|
|
574
|
+
</div>
|
|
575
|
+
`).join("")}
|
|
576
|
+
`}};no=class no extends b{render(){this.shadowRoot.innerHTML=g`<slot></slot>`}};f("af-ui-tabs",St);f("ui-tab-panel",no);pe=St});var dr={};w(dr,{default:()=>se,AfriUITable:()=>Yt});var Yt,se;var ro=s(()=>{u();Yt=class Yt extends b{static get observedAttributes(){return["striped","bordered","compact"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.hasAttribute("striped"),n=this.hasAttribute("bordered"),o=this.hasAttribute("compact");this.shadowRoot.innerHTML=g`
|
|
577
|
+
<style>
|
|
578
|
+
:host { display: block; overflow-x: auto; }
|
|
579
|
+
table {
|
|
580
|
+
width: 100%;
|
|
581
|
+
border-collapse: collapse;
|
|
582
|
+
min-width: 100%;
|
|
583
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
584
|
+
color: #0f172a;
|
|
585
|
+
}
|
|
586
|
+
th, td {
|
|
587
|
+
padding: ${o?"0.75rem":"1rem"};
|
|
588
|
+
text-align: left;
|
|
589
|
+
border-bottom: 1px solid #e5e7eb;
|
|
590
|
+
}
|
|
591
|
+
th {
|
|
592
|
+
font-size: 0.85rem;
|
|
593
|
+
font-weight: 700;
|
|
594
|
+
color: #334155;
|
|
595
|
+
text-transform: uppercase;
|
|
596
|
+
letter-spacing: 0.04em;
|
|
597
|
+
}
|
|
598
|
+
tbody tr {
|
|
599
|
+
background: #fff;
|
|
600
|
+
}
|
|
601
|
+
tbody tr:nth-child(even) {
|
|
602
|
+
background: ${t?"#f8fafc":"#fff"};
|
|
603
|
+
}
|
|
604
|
+
table.bordered th, table.bordered td {
|
|
605
|
+
border: 1px solid #e5e7eb;
|
|
606
|
+
}
|
|
607
|
+
</style>
|
|
608
|
+
<table class="${n?"bordered":""}">
|
|
609
|
+
<slot></slot>
|
|
610
|
+
</table>
|
|
611
|
+
`}};f("af-ui-table",Yt);se=Yt});var hr={};w(hr,{default:()=>ve,AfriUIStat:()=>Rt});var Rt,ve;var ao=s(()=>{u();Rt=class Rt extends b{static get observedAttributes(){return["label","value","delta","trend"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("label")||"Metric",n=this.getAttribute("value")||"0",o=this.getAttribute("delta")||"",r=this.getAttribute("trend")||"neutral",a=r==="positive"?"#16a34a":r==="negative"?"#dc2626":"#475569";this.shadowRoot.innerHTML=g`
|
|
612
|
+
<style>
|
|
613
|
+
:host { display: block; font-family: 'Inter', sans-serif; }
|
|
614
|
+
.stat {
|
|
615
|
+
display: grid;
|
|
616
|
+
gap: 0.5rem;
|
|
617
|
+
padding: 1.25rem;
|
|
618
|
+
border-radius: 1rem;
|
|
619
|
+
background: #ffffff;
|
|
620
|
+
border: 1px solid #e5e7eb;
|
|
621
|
+
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
|
|
622
|
+
}
|
|
623
|
+
.label {
|
|
624
|
+
font-size: 0.85rem;
|
|
625
|
+
font-weight: 700;
|
|
626
|
+
color: #475569;
|
|
627
|
+
text-transform: uppercase;
|
|
628
|
+
letter-spacing: 0.08em;
|
|
629
|
+
}
|
|
630
|
+
.value {
|
|
631
|
+
font-size: 2.25rem;
|
|
632
|
+
font-weight: 800;
|
|
633
|
+
color: #0f172a;
|
|
634
|
+
}
|
|
635
|
+
.delta {
|
|
636
|
+
display: inline-flex;
|
|
637
|
+
align-items: center;
|
|
638
|
+
gap: 0.35rem;
|
|
639
|
+
color: ${a};
|
|
640
|
+
font-size: 0.95rem;
|
|
641
|
+
font-weight: 700;
|
|
642
|
+
}
|
|
643
|
+
</style>
|
|
644
|
+
<div class="stat">
|
|
645
|
+
<div class="label">${t}</div>
|
|
646
|
+
<div class="value">${n}</div>
|
|
647
|
+
${o?g`<div class="delta">${o}</div>`:""}
|
|
648
|
+
</div>
|
|
649
|
+
`}};f("af-ui-stat",Rt);ve=Rt});var gr={};w(gr,{default:()=>$e,AfriFooter:()=>Xt});var Xt,$e;var eo=s(()=>{u();Xt=class Xt extends b{static get observedAttributes(){return["company","year"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("company")||"AfriCode",n=this.getAttribute("year")||new Date().getFullYear();this.shadowRoot.innerHTML=g`
|
|
650
|
+
<style>
|
|
651
|
+
:host {
|
|
652
|
+
display: block;
|
|
653
|
+
width: 100%;
|
|
654
|
+
box-sizing: border-box;
|
|
655
|
+
background: #0f172a;
|
|
656
|
+
color: #e2e8f0;
|
|
657
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.footer {
|
|
661
|
+
padding: 48px 5%;
|
|
662
|
+
max-width: 1280px;
|
|
663
|
+
margin: 0 auto;
|
|
664
|
+
display: grid;
|
|
665
|
+
gap: 2rem;
|
|
666
|
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.brand {
|
|
670
|
+
display: grid;
|
|
671
|
+
gap: 0.75rem;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
.brand h3 {
|
|
675
|
+
margin: 0;
|
|
676
|
+
font-size: 1.25rem;
|
|
677
|
+
color: #ffffff;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.links {
|
|
681
|
+
display: grid;
|
|
682
|
+
gap: 0.5rem;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
.links slot {
|
|
686
|
+
display: grid;
|
|
687
|
+
gap: 0.5rem;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
a {
|
|
691
|
+
color: #94a3b8;
|
|
692
|
+
text-decoration: none;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
a:hover {
|
|
696
|
+
color: #ffffff;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.bottom {
|
|
700
|
+
grid-column: 1 / -1;
|
|
701
|
+
display: flex;
|
|
702
|
+
flex-wrap: wrap;
|
|
703
|
+
align-items: center;
|
|
704
|
+
justify-content: space-between;
|
|
705
|
+
gap: 1rem;
|
|
706
|
+
padding-top: 1.5rem;
|
|
707
|
+
border-top: 1px solid rgba(226, 232, 240, 0.12);
|
|
708
|
+
color: #94a3b8;
|
|
709
|
+
font-size: 0.95rem;
|
|
710
|
+
}
|
|
711
|
+
</style>
|
|
712
|
+
|
|
713
|
+
<footer class="footer">
|
|
714
|
+
<div class="brand">
|
|
715
|
+
<h3>${t}</h3>
|
|
716
|
+
<slot name="description"></slot>
|
|
717
|
+
</div>
|
|
718
|
+
<div class="links">
|
|
719
|
+
<slot name="links"></slot>
|
|
720
|
+
</div>
|
|
721
|
+
<div class="links">
|
|
722
|
+
<slot name="resources"></slot>
|
|
723
|
+
</div>
|
|
724
|
+
<div class="bottom">
|
|
725
|
+
<span>© ${n} ${t}. All rights reserved.</span>
|
|
726
|
+
<slot name="legal"></slot>
|
|
727
|
+
</div>
|
|
728
|
+
</footer>
|
|
729
|
+
`}};f("af-footer",Xt);$e=Xt});var mr={};w(mr,{default:()=>ue,AfriBreadcrumb:()=>Qt});var Qt,ue;var lo=s(()=>{u();Qt=class Qt extends b{static get observedAttributes(){return["separator"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("separator")||"/";this.shadowRoot.innerHTML=g`
|
|
730
|
+
<style>
|
|
731
|
+
:host {
|
|
732
|
+
display: block;
|
|
733
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
734
|
+
color: #475569;
|
|
735
|
+
font-size: 0.9rem;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
nav {
|
|
739
|
+
display: flex;
|
|
740
|
+
flex-wrap: wrap;
|
|
741
|
+
gap: 0.5rem;
|
|
742
|
+
align-items: center;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
.crumb {
|
|
746
|
+
display: inline-flex;
|
|
747
|
+
align-items: center;
|
|
748
|
+
gap: 0.35rem;
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
.separator {
|
|
752
|
+
color: #cbd5e1;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
::slotted(a) {
|
|
756
|
+
color: #0f172a;
|
|
757
|
+
text-decoration: none;
|
|
758
|
+
font-weight: 600;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
::slotted(a:hover) {
|
|
762
|
+
text-decoration: underline;
|
|
763
|
+
}
|
|
764
|
+
</style>
|
|
765
|
+
|
|
766
|
+
<nav aria-label="Breadcrumb">
|
|
767
|
+
<slot></slot>
|
|
768
|
+
</nav>
|
|
769
|
+
`}};f("af-breadcrumb",Qt);ue=Qt});var pr={};w(pr,{default:()=>we,AfriFeatureGrid:()=>Jt});var Jt,we;var io=s(()=>{u();Jt=class Jt extends b{static get observedAttributes(){return["columns"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("columns")||"3";this.shadowRoot.innerHTML=g`
|
|
770
|
+
<style>
|
|
771
|
+
:host {
|
|
772
|
+
display: block;
|
|
773
|
+
width: 100%;
|
|
774
|
+
box-sizing: border-box;
|
|
775
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
.grid {
|
|
779
|
+
display: grid;
|
|
780
|
+
gap: 1.5rem;
|
|
781
|
+
grid-template-columns: repeat(${t}, minmax(0, 1fr));
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
@media (max-width: 1024px) {
|
|
785
|
+
.grid {
|
|
786
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
@media (max-width: 640px) {
|
|
791
|
+
.grid {
|
|
792
|
+
grid-template-columns: 1fr;
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
::slotted(.feature-card) {
|
|
797
|
+
display: grid;
|
|
798
|
+
gap: 0.75rem;
|
|
799
|
+
padding: 1.5rem;
|
|
800
|
+
border-radius: 24px;
|
|
801
|
+
background: #ffffff;
|
|
802
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
803
|
+
box-shadow: 0 12px 32px rgba(15, 23, 42, 0.04);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
::slotted(.feature-card h3) {
|
|
807
|
+
margin: 0;
|
|
808
|
+
font-size: 1.1rem;
|
|
809
|
+
color: #0f172a;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
::slotted(.feature-card p) {
|
|
813
|
+
margin: 0;
|
|
814
|
+
color: #475569;
|
|
815
|
+
line-height: 1.7;
|
|
816
|
+
}
|
|
817
|
+
</style>
|
|
818
|
+
|
|
819
|
+
<div class="grid">
|
|
820
|
+
<slot></slot>
|
|
821
|
+
</div>
|
|
822
|
+
`}};f("af-feature-grid",Jt);we=Jt});var sr={};w(sr,{default:()=>xe,AfriPricingCard:()=>Gt});var Gt,xe;var bo=s(()=>{u();Gt=class Gt extends b{static get observedAttributes(){return["title","price","frequency","highlight"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("title")||"Standard",n=this.getAttribute("price")||"$49",o=this.getAttribute("frequency")||"per month",r=this.hasAttribute("highlight");this.shadowRoot.innerHTML=g`
|
|
823
|
+
<style>
|
|
824
|
+
:host {
|
|
825
|
+
display: block;
|
|
826
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
.card {
|
|
830
|
+
display: grid;
|
|
831
|
+
gap: 1rem;
|
|
832
|
+
padding: 1.75rem;
|
|
833
|
+
border-radius: 28px;
|
|
834
|
+
background: ${r?"linear-gradient(180deg, #1EB53A, #0f172a)":"#ffffff"};
|
|
835
|
+
color: ${r?"#ffffff":"#0f172a"};
|
|
836
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
837
|
+
box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.title {
|
|
841
|
+
margin: 0;
|
|
842
|
+
font-size: 1.2rem;
|
|
843
|
+
font-weight: 700;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
.price {
|
|
847
|
+
font-size: 2.75rem;
|
|
848
|
+
font-weight: 800;
|
|
849
|
+
line-height: 1;
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
.frequency {
|
|
853
|
+
color: ${r?"rgba(255,255,255,0.8)":"#64748b"};
|
|
854
|
+
font-size: 0.95rem;
|
|
855
|
+
margin-top: -0.25rem;
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
.features {
|
|
859
|
+
display: grid;
|
|
860
|
+
gap: 0.75rem;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
::slotted(.feature) {
|
|
864
|
+
color: ${r?"#e2e8f0":"#475569"};
|
|
865
|
+
font-size: 0.95rem;
|
|
866
|
+
display: flex;
|
|
867
|
+
align-items: center;
|
|
868
|
+
gap: 0.5rem;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
.footer {
|
|
872
|
+
margin-top: 1rem;
|
|
873
|
+
}
|
|
874
|
+
</style>
|
|
875
|
+
|
|
876
|
+
<div class="card">
|
|
877
|
+
<div>
|
|
878
|
+
<h3 class="title">${t}</h3>
|
|
879
|
+
<div class="price">${n}</div>
|
|
880
|
+
<div class="frequency">${o}</div>
|
|
881
|
+
</div>
|
|
882
|
+
<div class="features">
|
|
883
|
+
<slot></slot>
|
|
884
|
+
</div>
|
|
885
|
+
<div class="footer"><slot name="action"></slot></div>
|
|
886
|
+
</div>
|
|
887
|
+
`}};f("af-pricing-card",Gt);xe=Gt});var vr={};w(vr,{default:()=>Ae,AfriTestimonial:()=>Ft});var Ft,Ae;var co=s(()=>{u();Ft=class Ft extends b{static get observedAttributes(){return["author","role","company"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("author")||"Customer",n=this.getAttribute("role")||"Founder",o=this.getAttribute("company")||"";this.shadowRoot.innerHTML=g`
|
|
888
|
+
<style>
|
|
889
|
+
:host {
|
|
890
|
+
display: block;
|
|
891
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
892
|
+
color: #0f172a;
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
.testimonial {
|
|
896
|
+
display: grid;
|
|
897
|
+
gap: 1rem;
|
|
898
|
+
padding: 1.75rem;
|
|
899
|
+
border-radius: 24px;
|
|
900
|
+
background: #ffffff;
|
|
901
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
902
|
+
box-shadow: 0 16px 32px rgba(15, 23, 42, 0.06);
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
.quote {
|
|
906
|
+
font-size: 1rem;
|
|
907
|
+
line-height: 1.8;
|
|
908
|
+
color: #475569;
|
|
909
|
+
position: relative;
|
|
910
|
+
padding-left: 1rem;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
.quote::before {
|
|
914
|
+
content: '“';
|
|
915
|
+
position: absolute;
|
|
916
|
+
left: 0;
|
|
917
|
+
top: 0;
|
|
918
|
+
font-size: 3rem;
|
|
919
|
+
color: #1EB53A;
|
|
920
|
+
line-height: 1;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
.author {
|
|
924
|
+
display: flex;
|
|
925
|
+
flex-direction: column;
|
|
926
|
+
gap: 0.125rem;
|
|
927
|
+
color: #0f172a;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
.name {
|
|
931
|
+
font-weight: 700;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
.meta {
|
|
935
|
+
color: #64748b;
|
|
936
|
+
font-size: 0.9rem;
|
|
937
|
+
}
|
|
938
|
+
</style>
|
|
939
|
+
|
|
940
|
+
<article class="testimonial">
|
|
941
|
+
<div class="quote"><slot></slot></div>
|
|
942
|
+
<div class="author">
|
|
943
|
+
<span class="name">${t}</span>
|
|
944
|
+
<span class="meta">${n}${o?` · ${o}`:""}</span>
|
|
945
|
+
</div>
|
|
946
|
+
</article>
|
|
947
|
+
`}};f("af-testimonial",Ft);Ae=Ft});var $r={};w($r,{default:()=>_e,AfriDashboardShell:()=>Bt});var Bt,_e;var fo=s(()=>{u();Bt=class Bt extends b{static get observedAttributes(){return["sidebar-width","topbar-height"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("sidebar-width")||"280px",n=this.getAttribute("topbar-height")||"72px";this.shadowRoot.innerHTML=g`
|
|
121
948
|
<style>
|
|
122
|
-
:host {
|
|
949
|
+
:host {
|
|
950
|
+
display: block;
|
|
951
|
+
min-height: 100vh;
|
|
952
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
953
|
+
color: var(--af-text, #0f172a);
|
|
954
|
+
background: var(--af-bg, #f8fafc);
|
|
955
|
+
}
|
|
123
956
|
|
|
124
|
-
.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
border: 1px solid transparent;
|
|
131
|
-
box-shadow: 0 16px 32px rgba(15, 23, 42, 0.08);
|
|
957
|
+
.dashboard-shell {
|
|
958
|
+
display: grid;
|
|
959
|
+
grid-template-columns: ${t} minmax(0, 1fr);
|
|
960
|
+
grid-template-rows: ${n} minmax(0, 1fr);
|
|
961
|
+
min-height: 100vh;
|
|
962
|
+
gap: 1rem;
|
|
132
963
|
}
|
|
133
964
|
|
|
134
|
-
.
|
|
135
|
-
|
|
136
|
-
|
|
965
|
+
.sidebar {
|
|
966
|
+
grid-row: 1 / span 2;
|
|
967
|
+
background: transparent;
|
|
968
|
+
}
|
|
137
969
|
|
|
138
|
-
.
|
|
139
|
-
|
|
970
|
+
.topbar {
|
|
971
|
+
grid-column: 2 / 3;
|
|
972
|
+
position: sticky;
|
|
973
|
+
top: 0;
|
|
974
|
+
z-index: 10;
|
|
975
|
+
background: var(--af-surface, #ffffff);
|
|
976
|
+
border-bottom: 1px solid rgba(15, 23, 42, 0.08);
|
|
977
|
+
box-shadow: 0 4px 18px rgba(15, 23, 42, 0.04);
|
|
140
978
|
}
|
|
141
979
|
|
|
142
|
-
|
|
980
|
+
.content {
|
|
981
|
+
grid-column: 2 / 3;
|
|
982
|
+
padding: 24px;
|
|
983
|
+
min-height: calc(100vh - ${n});
|
|
984
|
+
background: transparent;
|
|
985
|
+
overflow: hidden;
|
|
986
|
+
}
|
|
143
987
|
|
|
144
|
-
|
|
988
|
+
::slotted([slot="sidebar"]) {
|
|
989
|
+
height: 100%;
|
|
990
|
+
}
|
|
145
991
|
</style>
|
|
146
992
|
|
|
147
|
-
<
|
|
148
|
-
<slot></slot>
|
|
149
|
-
|
|
150
|
-
|
|
993
|
+
<div class="dashboard-shell">
|
|
994
|
+
<aside class="sidebar"><slot name="sidebar"></slot></aside>
|
|
995
|
+
<header class="topbar"><slot name="topbar"></slot></header>
|
|
996
|
+
<main class="content"><slot></slot></main>
|
|
997
|
+
</div>
|
|
998
|
+
`}};f("af-dashboard-shell",Bt);_e=Bt});var ur={};w(ur,{default:()=>ke,AfriDashboardTopbar:()=>Dt});var Dt,ke;var ho=s(()=>{u();Dt=class Dt extends b{static get observedAttributes(){return["title","description"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("title")||"Dashboard",n=this.getAttribute("description")||"";this.shadowRoot.innerHTML=g`
|
|
151
999
|
<style>
|
|
152
|
-
:host {
|
|
153
|
-
|
|
154
|
-
label {
|
|
1000
|
+
:host {
|
|
155
1001
|
display: block;
|
|
156
|
-
|
|
157
|
-
font-
|
|
158
|
-
margin-bottom: 0.5rem;
|
|
159
|
-
color: #111827;
|
|
1002
|
+
width: 100%;
|
|
1003
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
160
1004
|
}
|
|
161
1005
|
|
|
162
|
-
.
|
|
1006
|
+
.topbar {
|
|
1007
|
+
display: flex;
|
|
1008
|
+
align-items: center;
|
|
1009
|
+
justify-content: space-between;
|
|
1010
|
+
padding: 1rem 1.5rem;
|
|
1011
|
+
gap: 1rem;
|
|
1012
|
+
min-height: 72px;
|
|
1013
|
+
box-sizing: border-box;
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
.heading {
|
|
163
1017
|
display: grid;
|
|
164
|
-
gap: 0.
|
|
1018
|
+
gap: 0.25rem;
|
|
165
1019
|
}
|
|
166
1020
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
1021
|
+
.title {
|
|
1022
|
+
margin: 0;
|
|
1023
|
+
font-size: 1.1rem;
|
|
1024
|
+
font-weight: 700;
|
|
1025
|
+
color: #0f172a;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
.description {
|
|
1029
|
+
margin: 0;
|
|
1030
|
+
color: #475569;
|
|
172
1031
|
font-size: 0.95rem;
|
|
173
|
-
color: #111827;
|
|
174
|
-
background: #ffffff;
|
|
175
|
-
transition: border-color 150ms ease, box-shadow 150ms ease;
|
|
176
1032
|
}
|
|
177
1033
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
1034
|
+
.actions {
|
|
1035
|
+
display: flex;
|
|
1036
|
+
gap: 0.75rem;
|
|
1037
|
+
align-items: center;
|
|
1038
|
+
flex-wrap: wrap;
|
|
182
1039
|
}
|
|
1040
|
+
</style>
|
|
183
1041
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
1042
|
+
<div class="topbar">
|
|
1043
|
+
<div class="heading">
|
|
1044
|
+
<div class="title">${t}</div>
|
|
1045
|
+
${n?g`<div class="description">${n}</div>`:""}
|
|
1046
|
+
</div>
|
|
1047
|
+
<div class="actions"><slot name="actions"></slot></div>
|
|
1048
|
+
</div>
|
|
1049
|
+
`}};f("af-dashboard-topbar",Dt);ke=Dt});var wr={};w(wr,{default:()=>qe,AfriDashboardCard:()=>Ot});var Ot,qe;var go=s(()=>{u();Ot=class Ot extends b{static get observedAttributes(){return["title","variant"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("title")||"",n=this.getAttribute("variant")||"surface",o={surface:{background:"#ffffff",border:"1px solid rgba(15, 23, 42, 0.08)",shadow:"0 18px 36px rgba(15, 23, 42, 0.04)"},elevated:{background:"linear-gradient(180deg, #ffffff 0%, #f8fafc 100%)",border:"1px solid rgba(15, 23, 42, 0.12)",shadow:"0 24px 48px rgba(15, 23, 42, 0.08)"}},r=o[n]||o.surface;this.shadowRoot.innerHTML=g`
|
|
1050
|
+
<style>
|
|
1051
|
+
:host {
|
|
1052
|
+
display: block;
|
|
1053
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
188
1054
|
}
|
|
189
1055
|
|
|
190
|
-
.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
1056
|
+
.card {
|
|
1057
|
+
background: ${r.background};
|
|
1058
|
+
border: ${r.border};
|
|
1059
|
+
border-radius: 24px;
|
|
1060
|
+
box-shadow: ${r.shadow};
|
|
1061
|
+
padding: 1.5rem;
|
|
1062
|
+
min-height: 100px;
|
|
1063
|
+
overflow: hidden;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
.header {
|
|
1067
|
+
display: flex;
|
|
1068
|
+
align-items: center;
|
|
1069
|
+
justify-content: space-between;
|
|
1070
|
+
gap: 0.75rem;
|
|
1071
|
+
margin-bottom: 1rem;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
.title {
|
|
1075
|
+
margin: 0;
|
|
1076
|
+
font-size: 1rem;
|
|
1077
|
+
font-weight: 700;
|
|
1078
|
+
color: #0f172a;
|
|
194
1079
|
}
|
|
195
1080
|
</style>
|
|
196
1081
|
|
|
197
|
-
<div class="
|
|
198
|
-
${t?
|
|
199
|
-
<
|
|
200
|
-
type="${a}"
|
|
201
|
-
placeholder="${n}"
|
|
202
|
-
value="${o}"
|
|
203
|
-
${l?"disabled":""}
|
|
204
|
-
aria-invalid="${Boolean(b)}"
|
|
205
|
-
/>
|
|
206
|
-
<div class="error">${b}</div>
|
|
1082
|
+
<div class="card">
|
|
1083
|
+
${t?g`<div class="header"><h3 class="title">${t}</h3><slot name="header"></slot></div>`:""}
|
|
1084
|
+
<div class="body"><slot></slot></div>
|
|
207
1085
|
</div>
|
|
208
|
-
`}};
|
|
1086
|
+
`}};f("af-dashboard-card",Ot);qe=Ot});var xr={};w(xr,{default:()=>He,AfriDashboardMetric:()=>Wt});var Wt,He;var mo=s(()=>{u();Wt=class Wt extends b{static get observedAttributes(){return["label","value","delta","trend"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("label")||"Metric",n=this.getAttribute("value")||"0",o=this.getAttribute("delta")||"",r=this.getAttribute("trend")||"neutral",a=r==="positive"?"#16a34a":r==="negative"?"#dc2626":"#475569";this.shadowRoot.innerHTML=g`
|
|
209
1087
|
<style>
|
|
210
|
-
:host {
|
|
1088
|
+
:host {
|
|
1089
|
+
display: block;
|
|
1090
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
1091
|
+
}
|
|
211
1092
|
|
|
212
|
-
.
|
|
1093
|
+
.metric {
|
|
1094
|
+
display: grid;
|
|
1095
|
+
gap: 0.5rem;
|
|
1096
|
+
padding: 1.25rem;
|
|
1097
|
+
border-radius: 24px;
|
|
1098
|
+
background: #ffffff;
|
|
1099
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
.label {
|
|
1103
|
+
color: #6b7280;
|
|
1104
|
+
text-transform: uppercase;
|
|
1105
|
+
letter-spacing: 0.14em;
|
|
1106
|
+
font-size: 0.75rem;
|
|
1107
|
+
font-weight: 700;
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
.value {
|
|
1111
|
+
font-size: 2rem;
|
|
1112
|
+
font-weight: 800;
|
|
1113
|
+
color: #0f172a;
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
.delta {
|
|
213
1117
|
display: inline-flex;
|
|
214
1118
|
align-items: center;
|
|
215
|
-
justify-content: center;
|
|
216
1119
|
gap: 0.4rem;
|
|
217
|
-
border-radius: ${a?"999px":"0.6rem"};
|
|
218
|
-
padding: ${n==="sm"?"0.25rem 0.65rem":n==="lg"?"0.55rem 1rem":"0.4rem 0.8rem"};
|
|
219
|
-
font-size: ${n==="sm"?"0.75rem":n==="lg"?"0.95rem":"0.85rem"};
|
|
220
1120
|
font-weight: 700;
|
|
221
|
-
color:
|
|
222
|
-
|
|
223
|
-
border: 1px solid transparent;
|
|
224
|
-
white-space: nowrap;
|
|
1121
|
+
color: ${a};
|
|
1122
|
+
font-size: 0.92rem;
|
|
225
1123
|
}
|
|
226
|
-
|
|
227
|
-
.badge.primary { background: #2563eb; color: #ffffff; }
|
|
228
|
-
.badge.success { background: #16a34a; color: #ffffff; }
|
|
229
|
-
.badge.warning { background: #f59e0b; color: #0f172a; }
|
|
230
|
-
.badge.danger { background: #dc2626; color: #ffffff; }
|
|
231
|
-
.badge.secondary { background: #f8fafc; color: #0f172a; }
|
|
232
1124
|
</style>
|
|
233
1125
|
|
|
234
|
-
<
|
|
235
|
-
|
|
1126
|
+
<div class="metric">
|
|
1127
|
+
<div class="label">${t}</div>
|
|
1128
|
+
<div class="value">${n}</div>
|
|
1129
|
+
${o?g`<div class="delta">${o}</div>`:""}
|
|
1130
|
+
</div>
|
|
1131
|
+
`}};f("af-dashboard-metric",Wt);He=Wt});var Ar={};w(Ar,{default:()=>Le,AfriDashboardActivityList:()=>Ut});var Ut,Le;var po=s(()=>{u();Ut=class Ut extends b{static get observedAttributes(){return["title","empty-text"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("title")||"Recent Activity",n=this.getAttribute("empty-text")||"No recent activity available.";this.shadowRoot.innerHTML=g`
|
|
236
1132
|
<style>
|
|
237
|
-
:host {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
all: unset;
|
|
241
|
-
position: relative;
|
|
242
|
-
width: ${o.width}px;
|
|
243
|
-
height: ${o.height}px;
|
|
244
|
-
border-radius: ${o.height/2}px;
|
|
245
|
-
background: ${t?"#2563eb":"#e5e7eb"};
|
|
246
|
-
cursor: ${n?"not-allowed":"pointer"};
|
|
247
|
-
transition: background 180ms ease;
|
|
248
|
-
box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
|
|
1133
|
+
:host {
|
|
1134
|
+
display: block;
|
|
1135
|
+
font-family: 'Inter', system-ui, sans-serif;
|
|
249
1136
|
}
|
|
250
1137
|
|
|
251
|
-
.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
width: ${o.knob}px;
|
|
257
|
-
height: ${o.knob}px;
|
|
258
|
-
border-radius: 999px;
|
|
1138
|
+
.activity-card {
|
|
1139
|
+
display: grid;
|
|
1140
|
+
gap: 1rem;
|
|
1141
|
+
padding: 1.5rem;
|
|
1142
|
+
border-radius: 24px;
|
|
259
1143
|
background: #ffffff;
|
|
260
|
-
|
|
261
|
-
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.16);
|
|
1144
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
262
1145
|
}
|
|
263
1146
|
|
|
264
|
-
|
|
1147
|
+
.header {
|
|
1148
|
+
display: flex;
|
|
1149
|
+
align-items: center;
|
|
1150
|
+
justify-content: space-between;
|
|
1151
|
+
gap: 0.75rem;
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
.title {
|
|
1155
|
+
margin: 0;
|
|
1156
|
+
font-size: 1rem;
|
|
1157
|
+
font-weight: 700;
|
|
1158
|
+
color: #0f172a;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
.list {
|
|
1162
|
+
display: grid;
|
|
1163
|
+
gap: 0.5rem;
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
.item {
|
|
1167
|
+
padding: 0.95rem 1rem;
|
|
1168
|
+
border-radius: 18px;
|
|
1169
|
+
background: #f8fafc;
|
|
1170
|
+
border: 1px solid rgba(15, 23, 42, 0.04);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
.item-title {
|
|
1174
|
+
font-size: 0.95rem;
|
|
1175
|
+
font-weight: 600;
|
|
1176
|
+
color: #0f172a;
|
|
1177
|
+
margin: 0 0 0.25rem;
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
.item-meta {
|
|
1181
|
+
margin: 0;
|
|
1182
|
+
color: #6b7280;
|
|
1183
|
+
font-size: 0.85rem;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
.empty {
|
|
1187
|
+
color: #6b7280;
|
|
1188
|
+
font-size: 0.95rem;
|
|
1189
|
+
padding: 1rem 0;
|
|
1190
|
+
}
|
|
265
1191
|
</style>
|
|
266
1192
|
|
|
267
|
-
<
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
1193
|
+
<div class="activity-card">
|
|
1194
|
+
<div class="header"><h3 class="title">${t}</h3></div>
|
|
1195
|
+
<div class="list">
|
|
1196
|
+
<slot>
|
|
1197
|
+
<div class="empty">${n}</div>
|
|
1198
|
+
</slot>
|
|
1199
|
+
</div>
|
|
1200
|
+
</div>
|
|
1201
|
+
`}};f("af-dashboard-activity-list",Ut);Le=Ut});var _r={};w(_r,{default:()=>Me,AfriButton:()=>tn});var tn,Me;var kr=s(()=>{u();tn=class tn extends b{static get observedAttributes(){return["variant","size","theme","disabled","loading","icon","aria-label"]}constructor(){super();this.render()}connectedCallback(){this.shadowRoot.querySelector("button")?.addEventListener("click",(n)=>{if(this.hasAttribute("disabled")||this.hasAttribute("loading")){n.preventDefault();return}this.emit("af-click",{originalEvent:n})})}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"primary",n=this.getAttribute("size")||"md",o=this.getAttribute("theme")||"tanzania",r=this.hasAttribute("disabled"),a=this.hasAttribute("loading"),e=this.getAttribute("icon"),l=this.getAttribute("aria-label"),i={tanzania:{primary:"#1EB53A",accent:"#FCD116",text:"#FFFFFF"},maasai:{primary:"#FF0000",accent:"#8B0000",text:"#FFFFFF"},ndebele:{primary:"#4169E1",accent:"#FFD700",text:"#FFFFFF"},ocean:{primary:"#00A3DD",accent:"#0077BE",text:"#FFFFFF"}},c=i[o]||i.tanzania;this.shadowRoot.innerHTML=`
|
|
271
1202
|
<style>
|
|
272
1203
|
:host {
|
|
273
1204
|
display: inline-block;
|
|
@@ -295,8 +1226,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
295
1226
|
|
|
296
1227
|
/* Variants */
|
|
297
1228
|
.variant-primary {
|
|
298
|
-
background: ${
|
|
299
|
-
color: ${
|
|
1229
|
+
background: ${c.primary};
|
|
1230
|
+
color: ${c.text};
|
|
300
1231
|
}
|
|
301
1232
|
.variant-primary:hover:not(:disabled) {
|
|
302
1233
|
filter: brightness(1.1);
|
|
@@ -306,25 +1237,25 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
306
1237
|
|
|
307
1238
|
.variant-secondary {
|
|
308
1239
|
background: transparent;
|
|
309
|
-
color: ${
|
|
310
|
-
border: 2px solid ${
|
|
1240
|
+
color: ${c.primary};
|
|
1241
|
+
border: 2px solid ${c.primary};
|
|
311
1242
|
}
|
|
312
1243
|
.variant-secondary:hover:not(:disabled) {
|
|
313
|
-
background: ${
|
|
314
|
-
color: ${
|
|
1244
|
+
background: ${c.primary};
|
|
1245
|
+
color: ${c.text};
|
|
315
1246
|
}
|
|
316
1247
|
|
|
317
1248
|
.variant-ghost {
|
|
318
1249
|
background: transparent;
|
|
319
|
-
color: ${
|
|
1250
|
+
color: ${c.primary};
|
|
320
1251
|
}
|
|
321
1252
|
.variant-ghost:hover:not(:disabled) {
|
|
322
1253
|
background: rgba(0,0,0,0.05);
|
|
323
1254
|
}
|
|
324
1255
|
|
|
325
1256
|
.variant-gradient {
|
|
326
|
-
background: linear-gradient(135deg, ${
|
|
327
|
-
color: ${
|
|
1257
|
+
background: linear-gradient(135deg, ${c.primary} 0%, ${c.accent} 100%);
|
|
1258
|
+
color: ${c.text};
|
|
328
1259
|
}
|
|
329
1260
|
.variant-gradient:hover:not(:disabled) {
|
|
330
1261
|
transform: translateY(-2px);
|
|
@@ -363,15 +1294,15 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
363
1294
|
|
|
364
1295
|
<button
|
|
365
1296
|
class="variant-${t} size-${n}"
|
|
366
|
-
${
|
|
367
|
-
${
|
|
368
|
-
${
|
|
1297
|
+
${r?"disabled":""}
|
|
1298
|
+
${l?`aria-label="${l}"`:""}
|
|
1299
|
+
${a?'aria-busy="true"':""}
|
|
369
1300
|
>
|
|
370
|
-
${
|
|
371
|
-
${
|
|
1301
|
+
${a?'<span class="spinner"></span>':""}
|
|
1302
|
+
${e&&!a?`<span class="icon">${e}</span>`:""}
|
|
372
1303
|
<slot></slot>
|
|
373
1304
|
</button>
|
|
374
|
-
`}};
|
|
1305
|
+
`}};f("af-button",tn);Me=tn});var qr={};w(qr,{default:()=>Ee,AfriCard:()=>nn});var nn,Ee;var Hr=s(()=>{u();nn=class nn extends b{static get observedAttributes(){return["theme","variant","clickable","image"]}constructor(){super();this.render()}connectedCallback(){if(this.hasAttribute("clickable"))this.shadowRoot.querySelector(".card").addEventListener("click",()=>{this.emit("af-click")})}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("theme")||"default",n=this.getAttribute("variant")||"elevated",o=this.hasAttribute("clickable"),r=this.getAttribute("image"),a={default:{accent:"#333",border:"#eee"},tanzania:{accent:"#1EB53A",border:"#1EB53A"},maasai:{accent:"#FF0000",border:"#8B0000"},ndebele:{accent:"#4169E1",border:"#4169E1"}},l={elevated:"box-shadow: 0 2px 12px rgba(0,0,0,0.1);",outlined:`border: 2px solid ${(a[t]||a.default).border};`,flat:"background: #f8f9fa;"};this.shadowRoot.innerHTML=html`
|
|
375
1306
|
<style>
|
|
376
1307
|
:host {
|
|
377
1308
|
display: block;
|
|
@@ -386,7 +1317,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
386
1317
|
overflow: hidden;
|
|
387
1318
|
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
388
1319
|
position: relative;
|
|
389
|
-
${
|
|
1320
|
+
${o?"cursor: pointer;":""}
|
|
390
1321
|
}
|
|
391
1322
|
|
|
392
1323
|
.card::before {
|
|
@@ -397,7 +1328,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
397
1328
|
pointer-events: none;
|
|
398
1329
|
}
|
|
399
1330
|
|
|
400
|
-
${
|
|
1331
|
+
${o?`
|
|
401
1332
|
.card:hover {
|
|
402
1333
|
transform: translateY(-8px);
|
|
403
1334
|
border-color: rgba(252, 209, 22, 0.4);
|
|
@@ -439,7 +1370,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
439
1370
|
</style>
|
|
440
1371
|
|
|
441
1372
|
<article class="card">
|
|
442
|
-
${
|
|
1373
|
+
${r?`<img class="card-image" src="${r}" alt="" />`:""}
|
|
443
1374
|
<div class="card-body">
|
|
444
1375
|
<slot></slot>
|
|
445
1376
|
</div>
|
|
@@ -449,7 +1380,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
449
1380
|
</div>
|
|
450
1381
|
`:""}
|
|
451
1382
|
</article>
|
|
452
|
-
`}};
|
|
1383
|
+
`}};f("af-card",nn);Ee=nn});function so(t){if(on.has(t))return on.get(t);let o=new Proxy(t,{get(r,a,e){let l=Reflect.get(r,a,e);if(l!==null&&typeof l==="object")return so(l);return l},set(r,a,e,l){let i=Reflect.get(r,a,l);if(i!==e){let c=Reflect.set(r,a,e,l);if(c)Lr(l,e,i,a);return c}return!0},deleteProperty(r,a){let e=Reflect.get(r,a),l=Reflect.deleteProperty(r,a);if(l){let i=on.get(r);Lr(i,void 0,e,a)}return l}});return on.set(t,o),o}function an(t,n){if(!rn.has(t))rn.set(t,new Set);let o=rn.get(t);return o.add(n),()=>{o.delete(n)}}function Lr(t,n,o,r){let a=rn.get(t);if(!a)return;a.forEach((e)=>{try{e(n,o,r)}catch(l){console.error("[AfriCode State] Subscriber error:",l)}})}class Mr{constructor(){this.store={}}get(t){return t.split("/").reduce((n,o)=>n?.[o],this.store)}set(t,n){let o=t.split("/"),r=this.store;while(o.length>1){let a=o.shift();if(!r[a]||typeof r[a]!=="object")r[a]={};r=r[a]}r[o[0]]=n}getAll(){return this.store}}var rn,on,ib;var Vt=s(()=>{rn=new WeakMap,on=new WeakMap;ib=new Mr});var Se,Nt;var en=s(()=>{Vt();Se={theme:"light",language:"en",ui:{sidebarCollapsed:!1,theme:"dark",activePage:"home"},user:{name:"Guest",permissions:[]},config:{animationsEnabled:!0,soundEnabled:!1}},Nt=so(Se)});var Er={};w(Er,{default:()=>Ye,AfriNavbar:()=>ln});var ln,Ye;var Sr=s(()=>{u();en();Vt();ln=class ln extends b{static get observedAttributes(){return["theme","logo","sticky"]}constructor(){super();this._isOpen=!1,this._unsubscribe=null,this.render()}connectedCallback(){super.connectedCallback(),this.shadowRoot.querySelector(".menu-toggle")?.addEventListener("click",()=>{this._isOpen=!this._isOpen;let t=this.shadowRoot.querySelector(".nav-links"),n=this.shadowRoot.querySelector(".menu-toggle");if(t)t.classList.toggle("open",this._isOpen);if(n)n.classList.toggle("open",this._isOpen),n.setAttribute("aria-expanded",String(this._isOpen))})}disconnectedCallback(){if(this._unsubscribe)this._unsubscribe()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("theme")||"dark",n=this.getAttribute("logo")||"AfriCode",o=this.hasAttribute("sticky");this.shadowRoot.innerHTML=`
|
|
453
1384
|
<style>
|
|
454
1385
|
:host {
|
|
455
1386
|
display: block;
|
|
@@ -625,7 +1556,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
625
1556
|
<slot></slot>
|
|
626
1557
|
</div>
|
|
627
1558
|
</nav>
|
|
628
|
-
`}};d("af-navbar",Wt);tl=Wt});var E,Sn,$,W=(t)=>{switch(typeof t){case"undefined":return $.undefined;case"string":return $.string;case"number":return Number.isNaN(t)?$.nan:$.number;case"boolean":return $.boolean;case"function":return $.function;case"bigint":return $.bigint;case"symbol":return $.symbol;case"object":if(Array.isArray(t))return $.array;if(t===null)return $.null;if(t.then&&typeof t.then==="function"&&t.catch&&typeof t.catch==="function")return $.promise;if(typeof Map<"u"&&t instanceof Map)return $.map;if(typeof Set<"u"&&t instanceof Set)return $.set;if(typeof Date<"u"&&t instanceof Date)return $.date;return $.object;default:return $.unknown}};var Et=A(()=>{(function(t){t.assertEqual=(l)=>{};function n(l){}t.assertIs=n;function a(l){throw Error()}t.assertNever=a,t.arrayToEnum=(l)=>{let b={};for(let r of l)b[r]=r;return b},t.getValidEnumValues=(l)=>{let b=t.objectKeys(l).filter((h)=>typeof l[l[h]]!=="number"),r={};for(let h of b)r[h]=l[h];return t.objectValues(r)},t.objectValues=(l)=>{return t.objectKeys(l).map(function(b){return l[b]})},t.objectKeys=typeof Object.keys==="function"?(l)=>Object.keys(l):(l)=>{let b=[];for(let r in l)if(Object.prototype.hasOwnProperty.call(l,r))b.push(r);return b},t.find=(l,b)=>{for(let r of l)if(b(r))return r;return},t.isInteger=typeof Number.isInteger==="function"?(l)=>Number.isInteger(l):(l)=>typeof l==="number"&&Number.isFinite(l)&&Math.floor(l)===l;function o(l,b=" | "){return l.map((r)=>typeof r==="string"?`'${r}'`:r).join(b)}t.joinValues=o,t.jsonStringifyReplacer=(l,b)=>{if(typeof b==="bigint")return b.toString();return b}})(E||(E={}));(function(t){t.mergeShapes=(n,a)=>{return{...n,...a}}})(Sn||(Sn={}));$=E.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var g,nl=(t)=>{return JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:")},G;var Ut=A(()=>{Et();g=E.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);G=class G extends Error{get errors(){return this.issues}constructor(t){super();this.issues=[],this.addIssue=(a)=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};let n=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,n);else this.__proto__=n;this.name="ZodError",this.issues=t}format(t){let n=t||function(l){return l.message},a={_errors:[]},o=(l)=>{for(let b of l.issues)if(b.code==="invalid_union")b.unionErrors.map(o);else if(b.code==="invalid_return_type")o(b.returnTypeError);else if(b.code==="invalid_arguments")o(b.argumentsError);else if(b.path.length===0)a._errors.push(n(b));else{let r=a,h=0;while(h<b.path.length){let f=b.path[h];if(h!==b.path.length-1)r[f]=r[f]||{_errors:[]};else r[f]=r[f]||{_errors:[]},r[f]._errors.push(n(b));r=r[f],h++}}};return o(this),a}static assert(t){if(!(t instanceof G))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,E.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=(n)=>n.message){let n={},a=[];for(let o of this.issues)if(o.path.length>0){let l=o.path[0];n[l]=n[l]||[],n[l].push(t(o))}else a.push(t(o));return{formErrors:a,fieldErrors:n}}get formErrors(){return this.flatten()}};G.create=(t)=>{return new G(t)}});var ol=(t,n)=>{let a;switch(t.code){case g.invalid_type:if(t.received===$.undefined)a="Required";else a=`Expected ${t.expected}, received ${t.received}`;break;case g.invalid_literal:a=`Invalid literal value, expected ${JSON.stringify(t.expected,E.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:a=`Unrecognized key(s) in object: ${E.joinValues(t.keys,", ")}`;break;case g.invalid_union:a="Invalid input";break;case g.invalid_union_discriminator:a=`Invalid discriminator value. Expected ${E.joinValues(t.options)}`;break;case g.invalid_enum_value:a=`Invalid enum value. Expected ${E.joinValues(t.options)}, received '${t.received}'`;break;case g.invalid_arguments:a="Invalid function arguments";break;case g.invalid_return_type:a="Invalid function return type";break;case g.invalid_date:a="Invalid date";break;case g.invalid_string:if(typeof t.validation==="object")if("includes"in t.validation){if(a=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position==="number")a=`${a} at one or more positions greater than or equal to ${t.validation.position}`}else if("startsWith"in t.validation)a=`Invalid input: must start with "${t.validation.startsWith}"`;else if("endsWith"in t.validation)a=`Invalid input: must end with "${t.validation.endsWith}"`;else E.assertNever(t.validation);else if(t.validation!=="regex")a=`Invalid ${t.validation}`;else a="Invalid";break;case g.too_small:if(t.type==="array")a=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`;else if(t.type==="string")a=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`;else if(t.type==="number")a=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`;else if(t.type==="bigint")a=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`;else if(t.type==="date")a=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`;else a="Invalid input";break;case g.too_big:if(t.type==="array")a=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`;else if(t.type==="string")a=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`;else if(t.type==="number")a=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`;else if(t.type==="bigint")a=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`;else if(t.type==="date")a=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`;else a="Invalid input";break;case g.custom:a="Invalid input";break;case g.invalid_intersection_types:a="Intersection results could not be merged";break;case g.not_multiple_of:a=`Number must be a multiple of ${t.multipleOf}`;break;case g.not_finite:a="Number must be finite";break;default:a=n.defaultError,E.assertNever(t)}return{message:a}},j;var Ln=A(()=>{Ut();Et();j=ol});function al(t){qo=t}function ot(){return qo}var qo;var Vt=A(()=>{Ln();qo=j});function v(t,n){let a=ot(),o=Mt({issueData:n,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,a,a===j?void 0:j].filter((l)=>!!l)});t.common.issues.push(o)}class Q{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(t,n){let a=[];for(let o of n){if(o.status==="aborted")return m;if(o.status==="dirty")t.dirty();a.push(o.value)}return{status:t.value,value:a}}static async mergeObjectAsync(t,n){let a=[];for(let o of n){let l=await o.key,b=await o.value;a.push({key:l,value:b})}return Q.mergeObjectSync(t,a)}static mergeObjectSync(t,n){let a={};for(let o of n){let{key:l,value:b}=o;if(l.status==="aborted")return m;if(b.status==="aborted")return m;if(l.status==="dirty")t.dirty();if(b.status==="dirty")t.dirty();if(l.value!=="__proto__"&&(typeof b.value<"u"||o.alwaysSet))a[l.value]=b.value}return{status:t.value,value:a}}}var Mt=(t)=>{let{data:n,path:a,errorMaps:o,issueData:l}=t,b=[...a,...l.path||[]],r={...l,path:b};if(l.message!==void 0)return{...l,path:b,message:l.message};let h="",f=o.filter((_)=>!!_).slice().reverse();for(let _ of f)h=_(r,{data:n,defaultError:h}).message;return{...l,path:b,message:h}},ll,m,Z=(t)=>({status:"dirty",value:t}),J=(t)=>({status:"valid",value:t}),jt=(t)=>t.status==="aborted",et=(t)=>t.status==="dirty",I=(t)=>t.status==="valid",at=(t)=>typeof Promise<"u"&&t instanceof Promise;var Xn=A(()=>{Vt();Ln();ll=[];m=Object.freeze({status:"aborted"})});var po=()=>{};var i;var Ho=A(()=>{(function(t){t.errToObj=(n)=>typeof n==="string"?{message:n}:n||{},t.toString=(n)=>typeof n==="string"?n:n?.message})(i||(i={}))});class D{constructor(t,n,a,o){this._cachedPath=[],this.parent=t,this.data=n,this._path=a,this._key=o}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}function k(t){if(!t)return{};let{errorMap:n,invalid_type_error:a,required_error:o,description:l}=t;if(n&&(a||o))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(n)return{errorMap:n,description:l};return{errorMap:(r,h)=>{let{message:f}=t;if(r.code==="invalid_enum_value")return{message:f??h.defaultError};if(typeof h.data>"u")return{message:f??o??h.defaultError};if(r.code!=="invalid_type")return{message:h.defaultError};return{message:f??a??h.defaultError}},description:l}}class p{get description(){return this._def.description}_getType(t){return W(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:W(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Q,ctx:{common:t.parent.common,data:t.data,parsedType:W(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(at(n))throw Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let a=this.safeParse(t,n);if(a.success)return a.data;throw a.error}safeParse(t,n){let a={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:W(t)},o=this._parseSync({data:t,path:a.path,parent:a});return Eo(a,o)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:W(t)};if(!this["~standard"].async)try{let a=this._parseSync({data:t,path:[],parent:n});return I(a)?{value:a.value}:{issues:n.common.issues}}catch(a){if(a?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then((a)=>I(a)?{value:a.value}:{issues:n.common.issues})}async parseAsync(t,n){let a=await this.safeParseAsync(t,n);if(a.success)return a.data;throw a.error}async safeParseAsync(t,n){let a={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:W(t)},o=this._parse({data:t,path:a.path,parent:a}),l=await(at(o)?o:Promise.resolve(o));return Eo(a,l)}refine(t,n){let a=(o)=>{if(typeof n==="string"||typeof n>"u")return{message:n};else if(typeof n==="function")return n(o);else return n};return this._refinement((o,l)=>{let b=t(o),r=()=>l.addIssue({code:g.custom,...a(o)});if(typeof Promise<"u"&&b instanceof Promise)return b.then((h)=>{if(!h)return r(),!1;else return!0});if(!b)return r(),!1;else return!0})}refinement(t,n){return this._refinement((a,o)=>{if(!t(a))return o.addIssue(typeof n==="function"?n(a,o):n),!1;else return!0})}_refinement(t){return new O({schema:this,typeName:x.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(n)=>this["~validate"](n)}}optional(){return B.create(this,this._def)}nullable(){return N.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return u.create(this)}promise(){return nt.create(this,this._def)}or(t){return gt.create([this,t],this._def)}and(t){return ct.create(this,t,this._def)}transform(t){return new O({...k(this._def),schema:this,typeName:x.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t==="function"?t:()=>t;return new dt({...k(this._def),innerType:this,defaultValue:n,typeName:x.ZodDefault})}brand(){return new Kt({typeName:x.ZodBranded,type:this,...k(this._def)})}catch(t){let n=typeof t==="function"?t:()=>t;return new _t({...k(this._def),innerType:this,catchValue:n,typeName:x.ZodCatch})}describe(t){return new this.constructor({...this._def,description:t})}pipe(t){return Jt.create(this,t)}readonly(){return it.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function So(t){let n="[0-5]\\d";if(t.precision)n=`${n}\\.\\d{${t.precision}}`;else if(t.precision==null)n=`${n}(\\.\\d+)?`;let a=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${n})${a}`}function ql(t){return new RegExp(`^${So(t)}$`)}function Lo(t){let n=`${Yo}T${So(t)}`,a=[];if(a.push(t.local?"Z?":"Z"),t.offset)a.push("([+-]\\d{2}:?\\d{2})");return n=`${n}(${a.join("|")})`,new RegExp(`^${n}$`)}function pl(t,n){if((n==="v4"||!n)&&dl.test(t))return!0;if((n==="v6"||!n)&&il.test(t))return!0;return!1}function Hl(t,n){if(!cl.test(t))return!1;try{let[a]=t.split(".");if(!a)return!1;let o=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),l=JSON.parse(atob(o));if(typeof l!=="object"||l===null)return!1;if("typ"in l&&l?.typ!=="JWT")return!1;if(!l.alg)return!1;if(n&&l.alg!==n)return!1;return!0}catch{return!1}}function El(t,n){if((n==="v4"||!n)&&_l.test(t))return!0;if((n==="v6"||!n)&&Al.test(t))return!0;return!1}function Ml(t,n){let a=(t.toString().split(".")[1]||"").length,o=(n.toString().split(".")[1]||"").length,l=a>o?a:o,b=Number.parseInt(t.toFixed(l).replace(".","")),r=Number.parseInt(n.toFixed(l).replace(".",""));return b%r/10**l}function lt(t){if(t instanceof S){let n={};for(let a in t.shape){let o=t.shape[a];n[a]=B.create(lt(o))}return new S({...t._def,shape:()=>n})}else if(t instanceof u)return new u({...t._def,type:lt(t.element)});else if(t instanceof B)return B.create(lt(t.unwrap()));else if(t instanceof N)return N.create(lt(t.unwrap()));else if(t instanceof V)return V.create(t.items.map((n)=>lt(n)));else return t}function Jn(t,n){let a=W(t),o=W(n);if(t===n)return{valid:!0,data:t};else if(a===$.object&&o===$.object){let l=E.objectKeys(n),b=E.objectKeys(t).filter((h)=>l.indexOf(h)!==-1),r={...t,...n};for(let h of b){let f=Jn(t[h],n[h]);if(!f.valid)return{valid:!1};r[h]=f.data}return{valid:!0,data:r}}else if(a===$.array&&o===$.array){if(t.length!==n.length)return{valid:!1};let l=[];for(let b=0;b<t.length;b++){let r=t[b],h=n[b],f=Jn(r,h);if(!f.valid)return{valid:!1};l.push(f.data)}return{valid:!0,data:l}}else if(a===$.date&&o===$.date&&+t===+n)return{valid:!0,data:t};else return{valid:!1}}function Xo(t,n){return new y({values:t,typeName:x.ZodEnum,...k(n)})}function Mo(t,n){let a=typeof t==="function"?t(n):typeof t==="string"?{message:t}:t;return typeof a==="string"?{message:a}:a}function Qo(t,n={},a){if(t)return z.create().superRefine((o,l)=>{let b=t(o);if(b instanceof Promise)return b.then((r)=>{if(!r){let h=Mo(n,o),f=h.fatal??a??!0;l.addIssue({code:"custom",...h,fatal:f})}});if(!b){let r=Mo(n,o),h=r.fatal??a??!0;l.addIssue({code:"custom",...r,fatal:h})}return});return z.create()}var Eo=(t,n)=>{if(I(n))return{success:!0,data:n.value};else{if(!t.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let a=new G(t.common.issues);return this._error=a,this._error}}}},bl,rl,hl,fl,gl,cl,$l,vl,wl="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Qn,dl,_l,il,Al,ml,xl,Yo="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",kl,F,C,T,rt,s,Yt,ht,ft,z,P,U,St,u,S,gt,e=(t)=>{if(t instanceof $t)return e(t.schema);else if(t instanceof O)return e(t.innerType());else if(t instanceof vt)return[t.value];else if(t instanceof y)return t.options;else if(t instanceof wt)return E.objectValues(t.enum);else if(t instanceof dt)return e(t._def.innerType);else if(t instanceof ht)return[void 0];else if(t instanceof ft)return[null];else if(t instanceof B)return[void 0,...e(t.unwrap())];else if(t instanceof N)return[null,...e(t.unwrap())];else if(t instanceof Kt)return e(t.unwrap());else if(t instanceof it)return e(t.unwrap());else if(t instanceof _t)return e(t._def.innerType);else return[]},Nt,ct,V,Lt,Xt,tt,bt,$t,vt,y,wt,nt,O,B,N,dt,_t,Qt,Yl,Kt,Jt,it,Sl,x,Ll=(t,n={message:`Input not instance of ${t.name}`})=>Qo((a)=>a instanceof t,n),Jo,Go,Xl,Ql,Ro,Jl,Gl,Rl,Fl,ul,Bl,Dl,Ol,Wl,Ul,Vl,jl,el,Nl,Kl,Il,Pl,Cl,Tl,yl,Zl,sl,zl,tb,nb,ob,ab,lb,bb,rb=()=>Jo().optional(),hb=()=>Go().optional(),fb=()=>Ro().optional(),gb,cb;var Fo=A(()=>{Ut();Vt();Ho();Xn();Et();bl=/^c[^\s-]{8,}$/i,rl=/^[0-9a-z]+$/,hl=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fl=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,gl=/^[a-z0-9_-]{21}$/i,cl=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,$l=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,vl=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dl=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_l=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,il=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Al=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ml=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,xl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,kl=new RegExp(`^${Yo}$`);F=class F extends p{_parse(t){if(this._def.coerce)t.data=String(t.data);if(this._getType(t)!==$.string){let l=this._getOrReturnCtx(t);return v(l,{code:g.invalid_type,expected:$.string,received:l.parsedType}),m}let a=new Q,o=void 0;for(let l of this._def.checks)if(l.kind==="min"){if(t.data.length<l.value)o=this._getOrReturnCtx(t,o),v(o,{code:g.too_small,minimum:l.value,type:"string",inclusive:!0,exact:!1,message:l.message}),a.dirty()}else if(l.kind==="max"){if(t.data.length>l.value)o=this._getOrReturnCtx(t,o),v(o,{code:g.too_big,maximum:l.value,type:"string",inclusive:!0,exact:!1,message:l.message}),a.dirty()}else if(l.kind==="length"){let b=t.data.length>l.value,r=t.data.length<l.value;if(b||r){if(o=this._getOrReturnCtx(t,o),b)v(o,{code:g.too_big,maximum:l.value,type:"string",inclusive:!0,exact:!0,message:l.message});else if(r)v(o,{code:g.too_small,minimum:l.value,type:"string",inclusive:!0,exact:!0,message:l.message});a.dirty()}}else if(l.kind==="email"){if(!vl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"email",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="emoji"){if(!Qn)Qn=new RegExp(wl,"u");if(!Qn.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"emoji",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="uuid"){if(!fl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"uuid",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="nanoid"){if(!gl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"nanoid",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="cuid"){if(!bl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"cuid",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="cuid2"){if(!rl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"cuid2",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="ulid"){if(!hl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"ulid",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="url")try{new URL(t.data)}catch{o=this._getOrReturnCtx(t,o),v(o,{validation:"url",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="regex"){if(l.regex.lastIndex=0,!l.regex.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"regex",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="trim")t.data=t.data.trim();else if(l.kind==="includes"){if(!t.data.includes(l.value,l.position))o=this._getOrReturnCtx(t,o),v(o,{code:g.invalid_string,validation:{includes:l.value,position:l.position},message:l.message}),a.dirty()}else if(l.kind==="toLowerCase")t.data=t.data.toLowerCase();else if(l.kind==="toUpperCase")t.data=t.data.toUpperCase();else if(l.kind==="startsWith"){if(!t.data.startsWith(l.value))o=this._getOrReturnCtx(t,o),v(o,{code:g.invalid_string,validation:{startsWith:l.value},message:l.message}),a.dirty()}else if(l.kind==="endsWith"){if(!t.data.endsWith(l.value))o=this._getOrReturnCtx(t,o),v(o,{code:g.invalid_string,validation:{endsWith:l.value},message:l.message}),a.dirty()}else if(l.kind==="datetime"){if(!Lo(l).test(t.data))o=this._getOrReturnCtx(t,o),v(o,{code:g.invalid_string,validation:"datetime",message:l.message}),a.dirty()}else if(l.kind==="date"){if(!kl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{code:g.invalid_string,validation:"date",message:l.message}),a.dirty()}else if(l.kind==="time"){if(!ql(l).test(t.data))o=this._getOrReturnCtx(t,o),v(o,{code:g.invalid_string,validation:"time",message:l.message}),a.dirty()}else if(l.kind==="duration"){if(!$l.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"duration",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="ip"){if(!pl(t.data,l.version))o=this._getOrReturnCtx(t,o),v(o,{validation:"ip",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="jwt"){if(!Hl(t.data,l.alg))o=this._getOrReturnCtx(t,o),v(o,{validation:"jwt",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="cidr"){if(!El(t.data,l.version))o=this._getOrReturnCtx(t,o),v(o,{validation:"cidr",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="base64"){if(!ml.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"base64",code:g.invalid_string,message:l.message}),a.dirty()}else if(l.kind==="base64url"){if(!xl.test(t.data))o=this._getOrReturnCtx(t,o),v(o,{validation:"base64url",code:g.invalid_string,message:l.message}),a.dirty()}else E.assertNever(l);return{status:a.value,value:t.data}}_regex(t,n,a){return this.refinement((o)=>t.test(o),{validation:n,code:g.invalid_string,...i.errToObj(a)})}_addCheck(t){return new F({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...i.errToObj(t)})}url(t){return this._addCheck({kind:"url",...i.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...i.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...i.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...i.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...i.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...i.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...i.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...i.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...i.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...i.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...i.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...i.errToObj(t)})}datetime(t){if(typeof t==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t});return this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...i.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){if(typeof t==="string")return this._addCheck({kind:"time",precision:null,message:t});return this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...i.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...i.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...i.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...i.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...i.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...i.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...i.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...i.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...i.errToObj(n)})}nonempty(t){return this.min(1,i.errToObj(t))}trim(){return new F({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new F({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new F({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((t)=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find((t)=>t.kind==="date")}get isTime(){return!!this._def.checks.find((t)=>t.kind==="time")}get isDuration(){return!!this._def.checks.find((t)=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find((t)=>t.kind==="email")}get isURL(){return!!this._def.checks.find((t)=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find((t)=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find((t)=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((t)=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((t)=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((t)=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find((t)=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find((t)=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find((t)=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find((t)=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find((t)=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t}get maxLength(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t}};F.create=(t)=>{return new F({checks:[],typeName:x.ZodString,coerce:t?.coerce??!1,...k(t)})};C=class C extends p{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce)t.data=Number(t.data);if(this._getType(t)!==$.number){let l=this._getOrReturnCtx(t);return v(l,{code:g.invalid_type,expected:$.number,received:l.parsedType}),m}let a=void 0,o=new Q;for(let l of this._def.checks)if(l.kind==="int"){if(!E.isInteger(t.data))a=this._getOrReturnCtx(t,a),v(a,{code:g.invalid_type,expected:"integer",received:"float",message:l.message}),o.dirty()}else if(l.kind==="min"){if(l.inclusive?t.data<l.value:t.data<=l.value)a=this._getOrReturnCtx(t,a),v(a,{code:g.too_small,minimum:l.value,type:"number",inclusive:l.inclusive,exact:!1,message:l.message}),o.dirty()}else if(l.kind==="max"){if(l.inclusive?t.data>l.value:t.data>=l.value)a=this._getOrReturnCtx(t,a),v(a,{code:g.too_big,maximum:l.value,type:"number",inclusive:l.inclusive,exact:!1,message:l.message}),o.dirty()}else if(l.kind==="multipleOf"){if(Ml(t.data,l.value)!==0)a=this._getOrReturnCtx(t,a),v(a,{code:g.not_multiple_of,multipleOf:l.value,message:l.message}),o.dirty()}else if(l.kind==="finite"){if(!Number.isFinite(t.data))a=this._getOrReturnCtx(t,a),v(a,{code:g.not_finite,message:l.message}),o.dirty()}else E.assertNever(l);return{status:o.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,i.toString(n))}gt(t,n){return this.setLimit("min",t,!1,i.toString(n))}lte(t,n){return this.setLimit("max",t,!0,i.toString(n))}lt(t,n){return this.setLimit("max",t,!1,i.toString(n))}setLimit(t,n,a,o){return new C({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:a,message:i.toString(o)}]})}_addCheck(t){return new C({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:i.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:i.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:i.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:i.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:i.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:i.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:i.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:i.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:i.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t}get maxValue(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t}get isInt(){return!!this._def.checks.find((t)=>t.kind==="int"||t.kind==="multipleOf"&&E.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let a of this._def.checks)if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;else if(a.kind==="min"){if(n===null||a.value>n)n=a.value}else if(a.kind==="max"){if(t===null||a.value<t)t=a.value}return Number.isFinite(n)&&Number.isFinite(t)}};C.create=(t)=>{return new C({checks:[],typeName:x.ZodNumber,coerce:t?.coerce||!1,...k(t)})};T=class T extends p{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==$.bigint)return this._getInvalidInput(t);let a=void 0,o=new Q;for(let l of this._def.checks)if(l.kind==="min"){if(l.inclusive?t.data<l.value:t.data<=l.value)a=this._getOrReturnCtx(t,a),v(a,{code:g.too_small,type:"bigint",minimum:l.value,inclusive:l.inclusive,message:l.message}),o.dirty()}else if(l.kind==="max"){if(l.inclusive?t.data>l.value:t.data>=l.value)a=this._getOrReturnCtx(t,a),v(a,{code:g.too_big,type:"bigint",maximum:l.value,inclusive:l.inclusive,message:l.message}),o.dirty()}else if(l.kind==="multipleOf"){if(t.data%l.value!==BigInt(0))a=this._getOrReturnCtx(t,a),v(a,{code:g.not_multiple_of,multipleOf:l.value,message:l.message}),o.dirty()}else E.assertNever(l);return{status:o.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return v(n,{code:g.invalid_type,expected:$.bigint,received:n.parsedType}),m}gte(t,n){return this.setLimit("min",t,!0,i.toString(n))}gt(t,n){return this.setLimit("min",t,!1,i.toString(n))}lte(t,n){return this.setLimit("max",t,!0,i.toString(n))}lt(t,n){return this.setLimit("max",t,!1,i.toString(n))}setLimit(t,n,a,o){return new T({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:a,message:i.toString(o)}]})}_addCheck(t){return new T({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:i.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:i.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:i.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:i.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:i.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t}get maxValue(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t}};T.create=(t)=>{return new T({checks:[],typeName:x.ZodBigInt,coerce:t?.coerce??!1,...k(t)})};rt=class rt extends p{_parse(t){if(this._def.coerce)t.data=Boolean(t.data);if(this._getType(t)!==$.boolean){let a=this._getOrReturnCtx(t);return v(a,{code:g.invalid_type,expected:$.boolean,received:a.parsedType}),m}return J(t.data)}};rt.create=(t)=>{return new rt({typeName:x.ZodBoolean,coerce:t?.coerce||!1,...k(t)})};s=class s extends p{_parse(t){if(this._def.coerce)t.data=new Date(t.data);if(this._getType(t)!==$.date){let l=this._getOrReturnCtx(t);return v(l,{code:g.invalid_type,expected:$.date,received:l.parsedType}),m}if(Number.isNaN(t.data.getTime())){let l=this._getOrReturnCtx(t);return v(l,{code:g.invalid_date}),m}let a=new Q,o=void 0;for(let l of this._def.checks)if(l.kind==="min"){if(t.data.getTime()<l.value)o=this._getOrReturnCtx(t,o),v(o,{code:g.too_small,message:l.message,inclusive:!0,exact:!1,minimum:l.value,type:"date"}),a.dirty()}else if(l.kind==="max"){if(t.data.getTime()>l.value)o=this._getOrReturnCtx(t,o),v(o,{code:g.too_big,message:l.message,inclusive:!0,exact:!1,maximum:l.value,type:"date"}),a.dirty()}else E.assertNever(l);return{status:a.value,value:new Date(t.data.getTime())}}_addCheck(t){return new s({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:i.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:i.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t!=null?new Date(t):null}};s.create=(t)=>{return new s({checks:[],coerce:t?.coerce||!1,typeName:x.ZodDate,...k(t)})};Yt=class Yt extends p{_parse(t){if(this._getType(t)!==$.symbol){let a=this._getOrReturnCtx(t);return v(a,{code:g.invalid_type,expected:$.symbol,received:a.parsedType}),m}return J(t.data)}};Yt.create=(t)=>{return new Yt({typeName:x.ZodSymbol,...k(t)})};ht=class ht extends p{_parse(t){if(this._getType(t)!==$.undefined){let a=this._getOrReturnCtx(t);return v(a,{code:g.invalid_type,expected:$.undefined,received:a.parsedType}),m}return J(t.data)}};ht.create=(t)=>{return new ht({typeName:x.ZodUndefined,...k(t)})};ft=class ft extends p{_parse(t){if(this._getType(t)!==$.null){let a=this._getOrReturnCtx(t);return v(a,{code:g.invalid_type,expected:$.null,received:a.parsedType}),m}return J(t.data)}};ft.create=(t)=>{return new ft({typeName:x.ZodNull,...k(t)})};z=class z extends p{constructor(){super(...arguments);this._any=!0}_parse(t){return J(t.data)}};z.create=(t)=>{return new z({typeName:x.ZodAny,...k(t)})};P=class P extends p{constructor(){super(...arguments);this._unknown=!0}_parse(t){return J(t.data)}};P.create=(t)=>{return new P({typeName:x.ZodUnknown,...k(t)})};U=class U extends p{_parse(t){let n=this._getOrReturnCtx(t);return v(n,{code:g.invalid_type,expected:$.never,received:n.parsedType}),m}};U.create=(t)=>{return new U({typeName:x.ZodNever,...k(t)})};St=class St extends p{_parse(t){if(this._getType(t)!==$.undefined){let a=this._getOrReturnCtx(t);return v(a,{code:g.invalid_type,expected:$.void,received:a.parsedType}),m}return J(t.data)}};St.create=(t)=>{return new St({typeName:x.ZodVoid,...k(t)})};u=class u extends p{_parse(t){let{ctx:n,status:a}=this._processInputParams(t),o=this._def;if(n.parsedType!==$.array)return v(n,{code:g.invalid_type,expected:$.array,received:n.parsedType}),m;if(o.exactLength!==null){let b=n.data.length>o.exactLength.value,r=n.data.length<o.exactLength.value;if(b||r)v(n,{code:b?g.too_big:g.too_small,minimum:r?o.exactLength.value:void 0,maximum:b?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),a.dirty()}if(o.minLength!==null){if(n.data.length<o.minLength.value)v(n,{code:g.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),a.dirty()}if(o.maxLength!==null){if(n.data.length>o.maxLength.value)v(n,{code:g.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),a.dirty()}if(n.common.async)return Promise.all([...n.data].map((b,r)=>{return o.type._parseAsync(new D(n,b,n.path,r))})).then((b)=>{return Q.mergeArray(a,b)});let l=[...n.data].map((b,r)=>{return o.type._parseSync(new D(n,b,n.path,r))});return Q.mergeArray(a,l)}get element(){return this._def.type}min(t,n){return new u({...this._def,minLength:{value:t,message:i.toString(n)}})}max(t,n){return new u({...this._def,maxLength:{value:t,message:i.toString(n)}})}length(t,n){return new u({...this._def,exactLength:{value:t,message:i.toString(n)}})}nonempty(t){return this.min(1,t)}};u.create=(t,n)=>{return new u({type:t,minLength:null,maxLength:null,exactLength:null,typeName:x.ZodArray,...k(n)})};S=class S extends p{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=E.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==$.object){let f=this._getOrReturnCtx(t);return v(f,{code:g.invalid_type,expected:$.object,received:f.parsedType}),m}let{status:a,ctx:o}=this._processInputParams(t),{shape:l,keys:b}=this._getCached(),r=[];if(!(this._def.catchall instanceof U&&this._def.unknownKeys==="strip")){for(let f in o.data)if(!b.includes(f))r.push(f)}let h=[];for(let f of b){let _=l[f],M=o.data[f];h.push({key:{status:"valid",value:f},value:_._parse(new D(o,M,o.path,f)),alwaysSet:f in o.data})}if(this._def.catchall instanceof U){let f=this._def.unknownKeys;if(f==="passthrough")for(let _ of r)h.push({key:{status:"valid",value:_},value:{status:"valid",value:o.data[_]}});else if(f==="strict"){if(r.length>0)v(o,{code:g.unrecognized_keys,keys:r}),a.dirty()}else if(f==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let f=this._def.catchall;for(let _ of r){let M=o.data[_];h.push({key:{status:"valid",value:_},value:f._parse(new D(o,M,o.path,_)),alwaysSet:_ in o.data})}}if(o.common.async)return Promise.resolve().then(async()=>{let f=[];for(let _ of h){let M=await _.key,X=await _.value;f.push({key:M,value:X,alwaysSet:_.alwaysSet})}return f}).then((f)=>{return Q.mergeObjectSync(a,f)});else return Q.mergeObjectSync(a,h)}get shape(){return this._def.shape()}strict(t){return i.errToObj,new S({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,a)=>{let o=this._def.errorMap?.(n,a).message??a.defaultError;if(n.code==="unrecognized_keys")return{message:i.errToObj(t).message??o};return{message:o}}}:{}})}strip(){return new S({...this._def,unknownKeys:"strip"})}passthrough(){return new S({...this._def,unknownKeys:"passthrough"})}extend(t){return new S({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new S({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:x.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new S({...this._def,catchall:t})}pick(t){let n={};for(let a of E.objectKeys(t))if(t[a]&&this.shape[a])n[a]=this.shape[a];return new S({...this._def,shape:()=>n})}omit(t){let n={};for(let a of E.objectKeys(this.shape))if(!t[a])n[a]=this.shape[a];return new S({...this._def,shape:()=>n})}deepPartial(){return lt(this)}partial(t){let n={};for(let a of E.objectKeys(this.shape)){let o=this.shape[a];if(t&&!t[a])n[a]=o;else n[a]=o.optional()}return new S({...this._def,shape:()=>n})}required(t){let n={};for(let a of E.objectKeys(this.shape))if(t&&!t[a])n[a]=this.shape[a];else{let l=this.shape[a];while(l instanceof B)l=l._def.innerType;n[a]=l}return new S({...this._def,shape:()=>n})}keyof(){return Xo(E.objectKeys(this.shape))}};S.create=(t,n)=>{return new S({shape:()=>t,unknownKeys:"strip",catchall:U.create(),typeName:x.ZodObject,...k(n)})};S.strictCreate=(t,n)=>{return new S({shape:()=>t,unknownKeys:"strict",catchall:U.create(),typeName:x.ZodObject,...k(n)})};S.lazycreate=(t,n)=>{return new S({shape:t,unknownKeys:"strip",catchall:U.create(),typeName:x.ZodObject,...k(n)})};gt=class gt extends p{_parse(t){let{ctx:n}=this._processInputParams(t),a=this._def.options;function o(l){for(let r of l)if(r.result.status==="valid")return r.result;for(let r of l)if(r.result.status==="dirty")return n.common.issues.push(...r.ctx.common.issues),r.result;let b=l.map((r)=>new G(r.ctx.common.issues));return v(n,{code:g.invalid_union,unionErrors:b}),m}if(n.common.async)return Promise.all(a.map(async(l)=>{let b={...n,common:{...n.common,issues:[]},parent:null};return{result:await l._parseAsync({data:n.data,path:n.path,parent:b}),ctx:b}})).then(o);else{let l=void 0,b=[];for(let h of a){let f={...n,common:{...n.common,issues:[]},parent:null},_=h._parseSync({data:n.data,path:n.path,parent:f});if(_.status==="valid")return _;else if(_.status==="dirty"&&!l)l={result:_,ctx:f};if(f.common.issues.length)b.push(f.common.issues)}if(l)return n.common.issues.push(...l.ctx.common.issues),l.result;let r=b.map((h)=>new G(h));return v(n,{code:g.invalid_union,unionErrors:r}),m}}get options(){return this._def.options}};gt.create=(t,n)=>{return new gt({options:t,typeName:x.ZodUnion,...k(n)})};Nt=class Nt extends p{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==$.object)return v(n,{code:g.invalid_type,expected:$.object,received:n.parsedType}),m;let a=this.discriminator,o=n.data[a],l=this.optionsMap.get(o);if(!l)return v(n,{code:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),m;if(n.common.async)return l._parseAsync({data:n.data,path:n.path,parent:n});else return l._parseSync({data:n.data,path:n.path,parent:n})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,a){let o=new Map;for(let l of n){let b=e(l.shape[t]);if(!b.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of b){if(o.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);o.set(r,l)}}return new Nt({typeName:x.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:o,...k(a)})}};ct=class ct extends p{_parse(t){let{status:n,ctx:a}=this._processInputParams(t),o=(l,b)=>{if(jt(l)||jt(b))return m;let r=Jn(l.value,b.value);if(!r.valid)return v(a,{code:g.invalid_intersection_types}),m;if(et(l)||et(b))n.dirty();return{status:n.value,value:r.data}};if(a.common.async)return Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([l,b])=>o(l,b));else return o(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}};ct.create=(t,n,a)=>{return new ct({left:t,right:n,typeName:x.ZodIntersection,...k(a)})};V=class V extends p{_parse(t){let{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==$.array)return v(a,{code:g.invalid_type,expected:$.array,received:a.parsedType}),m;if(a.data.length<this._def.items.length)return v(a,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),m;if(!this._def.rest&&a.data.length>this._def.items.length)v(a,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty();let l=[...a.data].map((b,r)=>{let h=this._def.items[r]||this._def.rest;if(!h)return null;return h._parse(new D(a,b,a.path,r))}).filter((b)=>!!b);if(a.common.async)return Promise.all(l).then((b)=>{return Q.mergeArray(n,b)});else return Q.mergeArray(n,l)}get items(){return this._def.items}rest(t){return new V({...this._def,rest:t})}};V.create=(t,n)=>{if(!Array.isArray(t))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new V({items:t,typeName:x.ZodTuple,rest:null,...k(n)})};Lt=class Lt extends p{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==$.object)return v(a,{code:g.invalid_type,expected:$.object,received:a.parsedType}),m;let o=[],l=this._def.keyType,b=this._def.valueType;for(let r in a.data)o.push({key:l._parse(new D(a,r,a.path,r)),value:b._parse(new D(a,a.data[r],a.path,r)),alwaysSet:r in a.data});if(a.common.async)return Q.mergeObjectAsync(n,o);else return Q.mergeObjectSync(n,o)}get element(){return this._def.valueType}static create(t,n,a){if(n instanceof p)return new Lt({keyType:t,valueType:n,typeName:x.ZodRecord,...k(a)});return new Lt({keyType:F.create(),valueType:t,typeName:x.ZodRecord,...k(n)})}};Xt=class Xt extends p{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==$.map)return v(a,{code:g.invalid_type,expected:$.map,received:a.parsedType}),m;let o=this._def.keyType,l=this._def.valueType,b=[...a.data.entries()].map(([r,h],f)=>{return{key:o._parse(new D(a,r,a.path,[f,"key"])),value:l._parse(new D(a,h,a.path,[f,"value"]))}});if(a.common.async){let r=new Map;return Promise.resolve().then(async()=>{for(let h of b){let f=await h.key,_=await h.value;if(f.status==="aborted"||_.status==="aborted")return m;if(f.status==="dirty"||_.status==="dirty")n.dirty();r.set(f.value,_.value)}return{status:n.value,value:r}})}else{let r=new Map;for(let h of b){let{key:f,value:_}=h;if(f.status==="aborted"||_.status==="aborted")return m;if(f.status==="dirty"||_.status==="dirty")n.dirty();r.set(f.value,_.value)}return{status:n.value,value:r}}}};Xt.create=(t,n,a)=>{return new Xt({valueType:n,keyType:t,typeName:x.ZodMap,...k(a)})};tt=class tt extends p{_parse(t){let{status:n,ctx:a}=this._processInputParams(t);if(a.parsedType!==$.set)return v(a,{code:g.invalid_type,expected:$.set,received:a.parsedType}),m;let o=this._def;if(o.minSize!==null){if(a.data.size<o.minSize.value)v(a,{code:g.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()}if(o.maxSize!==null){if(a.data.size>o.maxSize.value)v(a,{code:g.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty()}let l=this._def.valueType;function b(h){let f=new Set;for(let _ of h){if(_.status==="aborted")return m;if(_.status==="dirty")n.dirty();f.add(_.value)}return{status:n.value,value:f}}let r=[...a.data.values()].map((h,f)=>l._parse(new D(a,h,a.path,f)));if(a.common.async)return Promise.all(r).then((h)=>b(h));else return b(r)}min(t,n){return new tt({...this._def,minSize:{value:t,message:i.toString(n)}})}max(t,n){return new tt({...this._def,maxSize:{value:t,message:i.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};tt.create=(t,n)=>{return new tt({valueType:t,minSize:null,maxSize:null,typeName:x.ZodSet,...k(n)})};bt=class bt extends p{constructor(){super(...arguments);this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==$.function)return v(n,{code:g.invalid_type,expected:$.function,received:n.parsedType}),m;function a(r,h){return Mt({data:r,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,ot(),j].filter((f)=>!!f),issueData:{code:g.invalid_arguments,argumentsError:h}})}function o(r,h){return Mt({data:r,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,ot(),j].filter((f)=>!!f),issueData:{code:g.invalid_return_type,returnTypeError:h}})}let l={errorMap:n.common.contextualErrorMap},b=n.data;if(this._def.returns instanceof nt){let r=this;return J(async function(...h){let f=new G([]),_=await r._def.args.parseAsync(h,l).catch((L)=>{throw f.addIssue(a(h,L)),f}),M=await Reflect.apply(b,this,_);return await r._def.returns._def.type.parseAsync(M,l).catch((L)=>{throw f.addIssue(o(M,L)),f})})}else{let r=this;return J(function(...h){let f=r._def.args.safeParse(h,l);if(!f.success)throw new G([a(h,f.error)]);let _=Reflect.apply(b,this,f.data),M=r._def.returns.safeParse(_,l);if(!M.success)throw new G([o(_,M.error)]);return M.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new bt({...this._def,args:V.create(t).rest(P.create())})}returns(t){return new bt({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,a){return new bt({args:t?t:V.create([]).rest(P.create()),returns:n||P.create(),typeName:x.ZodFunction,...k(a)})}};$t=class $t extends p{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};$t.create=(t,n)=>{return new $t({getter:t,typeName:x.ZodLazy,...k(n)})};vt=class vt extends p{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return v(n,{received:n.data,code:g.invalid_literal,expected:this._def.value}),m}return{status:"valid",value:t.data}}get value(){return this._def.value}};vt.create=(t,n)=>{return new vt({value:t,typeName:x.ZodLiteral,...k(n)})};y=class y extends p{_parse(t){if(typeof t.data!=="string"){let n=this._getOrReturnCtx(t),a=this._def.values;return v(n,{expected:E.joinValues(a),received:n.parsedType,code:g.invalid_type}),m}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),a=this._def.values;return v(n,{received:n.data,code:g.invalid_enum_value,options:a}),m}return J(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return y.create(t,{...this._def,...n})}exclude(t,n=this._def){return y.create(this.options.filter((a)=>!t.includes(a)),{...this._def,...n})}};y.create=Xo;wt=class wt extends p{_parse(t){let n=E.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(t);if(a.parsedType!==$.string&&a.parsedType!==$.number){let o=E.objectValues(n);return v(a,{expected:E.joinValues(o),received:a.parsedType,code:g.invalid_type}),m}if(!this._cache)this._cache=new Set(E.getValidEnumValues(this._def.values));if(!this._cache.has(t.data)){let o=E.objectValues(n);return v(a,{received:a.data,code:g.invalid_enum_value,options:o}),m}return J(t.data)}get enum(){return this._def.values}};wt.create=(t,n)=>{return new wt({values:t,typeName:x.ZodNativeEnum,...k(n)})};nt=class nt extends p{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==$.promise&&n.common.async===!1)return v(n,{code:g.invalid_type,expected:$.promise,received:n.parsedType}),m;let a=n.parsedType===$.promise?n.data:Promise.resolve(n.data);return J(a.then((o)=>{return this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})}))}};nt.create=(t,n)=>{return new nt({type:t,typeName:x.ZodPromise,...k(n)})};O=class O extends p{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===x.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:a}=this._processInputParams(t),o=this._def.effect||null,l={addIssue:(b)=>{if(v(a,b),b.fatal)n.abort();else n.dirty()},get path(){return a.path}};if(l.addIssue=l.addIssue.bind(l),o.type==="preprocess"){let b=o.transform(a.data,l);if(a.common.async)return Promise.resolve(b).then(async(r)=>{if(n.value==="aborted")return m;let h=await this._def.schema._parseAsync({data:r,path:a.path,parent:a});if(h.status==="aborted")return m;if(h.status==="dirty")return Z(h.value);if(n.value==="dirty")return Z(h.value);return h});else{if(n.value==="aborted")return m;let r=this._def.schema._parseSync({data:b,path:a.path,parent:a});if(r.status==="aborted")return m;if(r.status==="dirty")return Z(r.value);if(n.value==="dirty")return Z(r.value);return r}}if(o.type==="refinement"){let b=(r)=>{let h=o.refinement(r,l);if(a.common.async)return Promise.resolve(h);if(h instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return r};if(a.common.async===!1){let r=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(r.status==="aborted")return m;if(r.status==="dirty")n.dirty();return b(r.value),{status:n.value,value:r.value}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then((r)=>{if(r.status==="aborted")return m;if(r.status==="dirty")n.dirty();return b(r.value).then(()=>{return{status:n.value,value:r.value}})})}if(o.type==="transform")if(a.common.async===!1){let b=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!I(b))return m;let r=o.transform(b.value,l);if(r instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:r}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then((b)=>{if(!I(b))return m;return Promise.resolve(o.transform(b.value,l)).then((r)=>({status:n.value,value:r}))});E.assertNever(o)}};O.create=(t,n,a)=>{return new O({schema:t,typeName:x.ZodEffects,effect:n,...k(a)})};O.createWithPreprocess=(t,n,a)=>{return new O({schema:n,effect:{type:"preprocess",transform:t},typeName:x.ZodEffects,...k(a)})};B=class B extends p{_parse(t){if(this._getType(t)===$.undefined)return J(void 0);return this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};B.create=(t,n)=>{return new B({innerType:t,typeName:x.ZodOptional,...k(n)})};N=class N extends p{_parse(t){if(this._getType(t)===$.null)return J(null);return this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};N.create=(t,n)=>{return new N({innerType:t,typeName:x.ZodNullable,...k(n)})};dt=class dt extends p{_parse(t){let{ctx:n}=this._processInputParams(t),a=n.data;if(n.parsedType===$.undefined)a=this._def.defaultValue();return this._def.innerType._parse({data:a,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};dt.create=(t,n)=>{return new dt({innerType:t,typeName:x.ZodDefault,defaultValue:typeof n.default==="function"?n.default:()=>n.default,...k(n)})};_t=class _t extends p{_parse(t){let{ctx:n}=this._processInputParams(t),a={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});if(at(o))return o.then((l)=>{return{status:"valid",value:l.status==="valid"?l.value:this._def.catchValue({get error(){return new G(a.common.issues)},input:a.data})}});else return{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new G(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}};_t.create=(t,n)=>{return new _t({innerType:t,typeName:x.ZodCatch,catchValue:typeof n.catch==="function"?n.catch:()=>n.catch,...k(n)})};Qt=class Qt extends p{_parse(t){if(this._getType(t)!==$.nan){let a=this._getOrReturnCtx(t);return v(a,{code:g.invalid_type,expected:$.nan,received:a.parsedType}),m}return{status:"valid",value:t.data}}};Qt.create=(t)=>{return new Qt({typeName:x.ZodNaN,...k(t)})};Yl=Symbol("zod_brand");Kt=class Kt extends p{_parse(t){let{ctx:n}=this._processInputParams(t),a=n.data;return this._def.type._parse({data:a,path:n.path,parent:n})}unwrap(){return this._def.type}};Jt=class Jt extends p{_parse(t){let{status:n,ctx:a}=this._processInputParams(t);if(a.common.async)return(async()=>{let l=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});if(l.status==="aborted")return m;if(l.status==="dirty")return n.dirty(),Z(l.value);else return this._def.out._parseAsync({data:l.value,path:a.path,parent:a})})();else{let o=this._def.in._parseSync({data:a.data,path:a.path,parent:a});if(o.status==="aborted")return m;if(o.status==="dirty")return n.dirty(),{status:"dirty",value:o.value};else return this._def.out._parseSync({data:o.value,path:a.path,parent:a})}}static create(t,n){return new Jt({in:t,out:n,typeName:x.ZodPipeline})}};it=class it extends p{_parse(t){let n=this._def.innerType._parse(t),a=(o)=>{if(I(o))o.value=Object.freeze(o.value);return o};return at(n)?n.then((o)=>a(o)):a(n)}unwrap(){return this._def.innerType}};it.create=(t,n)=>{return new it({innerType:t,typeName:x.ZodReadonly,...k(n)})};Sl={object:S.lazycreate};(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(x||(x={}));Jo=F.create,Go=C.create,Xl=Qt.create,Ql=T.create,Ro=rt.create,Jl=s.create,Gl=Yt.create,Rl=ht.create,Fl=ft.create,ul=z.create,Bl=P.create,Dl=U.create,Ol=St.create,Wl=u.create,Ul=S.create,Vl=S.strictCreate,jl=gt.create,el=Nt.create,Nl=ct.create,Kl=V.create,Il=Lt.create,Pl=Xt.create,Cl=tt.create,Tl=bt.create,yl=$t.create,Zl=vt.create,sl=y.create,zl=wt.create,tb=nt.create,nb=O.create,ob=B.create,ab=N.create,lb=O.createWithPreprocess,bb=Jt.create,gb={string:(t)=>F.create({...t,coerce:!0}),number:(t)=>C.create({...t,coerce:!0}),boolean:(t)=>rt.create({...t,coerce:!0}),bigint:(t)=>T.create({...t,coerce:!0}),date:(t)=>s.create({...t,coerce:!0})},cb=m});var w={};H(w,{void:()=>Ol,util:()=>E,unknown:()=>Bl,union:()=>jl,undefined:()=>Rl,tuple:()=>Kl,transformer:()=>nb,symbol:()=>Gl,string:()=>Jo,strictObject:()=>Vl,setErrorMap:()=>al,set:()=>Cl,record:()=>Il,quotelessJson:()=>nl,promise:()=>tb,preprocess:()=>lb,pipeline:()=>bb,ostring:()=>rb,optional:()=>ob,onumber:()=>hb,oboolean:()=>fb,objectUtil:()=>Sn,object:()=>Ul,number:()=>Go,nullable:()=>ab,null:()=>Fl,never:()=>Dl,nativeEnum:()=>zl,nan:()=>Xl,map:()=>Pl,makeIssue:()=>Mt,literal:()=>Zl,lazy:()=>yl,late:()=>Sl,isValid:()=>I,isDirty:()=>et,isAsync:()=>at,isAborted:()=>jt,intersection:()=>Nl,instanceof:()=>Ll,getParsedType:()=>W,getErrorMap:()=>ot,function:()=>Tl,enum:()=>sl,effect:()=>nb,discriminatedUnion:()=>el,defaultErrorMap:()=>j,datetimeRegex:()=>Lo,date:()=>Jl,custom:()=>Qo,coerce:()=>gb,boolean:()=>Ro,bigint:()=>Ql,array:()=>Wl,any:()=>ul,addIssueToContext:()=>v,ZodVoid:()=>St,ZodUnknown:()=>P,ZodUnion:()=>gt,ZodUndefined:()=>ht,ZodType:()=>p,ZodTuple:()=>V,ZodTransformer:()=>O,ZodSymbol:()=>Yt,ZodString:()=>F,ZodSet:()=>tt,ZodSchema:()=>p,ZodRecord:()=>Lt,ZodReadonly:()=>it,ZodPromise:()=>nt,ZodPipeline:()=>Jt,ZodParsedType:()=>$,ZodOptional:()=>B,ZodObject:()=>S,ZodNumber:()=>C,ZodNullable:()=>N,ZodNull:()=>ft,ZodNever:()=>U,ZodNativeEnum:()=>wt,ZodNaN:()=>Qt,ZodMap:()=>Xt,ZodLiteral:()=>vt,ZodLazy:()=>$t,ZodIssueCode:()=>g,ZodIntersection:()=>ct,ZodFunction:()=>bt,ZodFirstPartyTypeKind:()=>x,ZodError:()=>G,ZodEnum:()=>y,ZodEffects:()=>O,ZodDiscriminatedUnion:()=>Nt,ZodDefault:()=>dt,ZodDate:()=>s,ZodCatch:()=>_t,ZodBranded:()=>Kt,ZodBoolean:()=>rt,ZodBigInt:()=>T,ZodArray:()=>u,ZodAny:()=>z,Schema:()=>p,ParseStatus:()=>Q,OK:()=>J,NEVER:()=>cb,INVALID:()=>m,EMPTY_PATH:()=>ll,DIRTY:()=>Z,BRAND:()=>Yl});var Gn=A(()=>{Vt();Xn();po();Et();Fo();Ut()});var uo=A(()=>{Gn();Gn()});function Rn(t){if(t===null||typeof t!=="object")return t;if(Array.isArray(t))return t.map(Rn);let n={};for(let a of Object.keys(t))n[a]=Rn(t[a]);return n}var $b,Kr;var Bo=A(()=>{$b={validation:{trimStrings:!1,emptyAsNullDefault:!1},security:{csrf:{enabled:!0,excludePaths:[],sameSite:"Strict",secure:!1},rateLimit:{enabled:!0,windowMs:60000,maxRequests:60,excludePaths:[]}},hooks:{onValidationError:null,onSecurityViolation:null,onRateLimit:null,onDatabaseError:null,onRequest:null}},Kr=Rn($b)});class Gt{static validate(t,n){try{return{success:!0,data:t.parse(n)}}catch(a){if(a instanceof w.ZodError){let o={};return a.errors.forEach((l)=>{let b=l.path.join(".");o[b]=l.message}),{success:!1,errors:o}}return{success:!1,errors:{general:"Validation failed"}}}}static validateField(t,n){try{return t.parse(n),{success:!0}}catch(a){if(a instanceof w.ZodError)return{success:!1,error:a.errors[0]?.message||"Invalid value"};return{success:!1,error:"Validation failed"}}}static getFieldError(t,n){if(t.success)return null;return t.errors?.[n]||null}static hasFieldError(t,n){return!!this.getFieldError(t,n)}}var Do,K;var Fn=A(()=>{uo();Bo();Do={login:w.object({email:w.string().min(1,"Email is required").email("Please enter a valid email address"),password:w.string().min(8,"Password must be at least 8 characters").regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/,"Password must contain at least one uppercase letter, one lowercase letter, and one number")}),register:w.object({name:w.string().min(2,"Name must be at least 2 characters").max(50,"Name must be less than 50 characters").regex(/^[a-zA-Z\s'-]+$/,"Name can only contain letters, spaces, hyphens, and apostrophes"),email:w.string().min(1,"Email is required").email("Please enter a valid email address"),password:w.string().min(8,"Password must be at least 8 characters").regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])/,"Password must contain uppercase, lowercase, number, and special character"),confirmPassword:w.string()}).refine((t)=>t.password===t.confirmPassword,{message:"Passwords don't match",path:["confirmPassword"]}),auth:{register:w.object({action:w.literal("register"),email:w.string().min(1,"Email is required").email("Please enter a valid email address"),username:w.string().min(3,"Username must be at least 3 characters").max(30,"Username must be less than 30 characters"),password:w.string().min(8,"Password must be at least 8 characters"),full_name:w.string().min(2,"Full name is required").max(100,"Full name is too long")}),login:w.object({action:w.literal("login"),email:w.string().min(1,"Email is required").email("Please enter a valid email address"),password:w.string().min(8,"Password must be at least 8 characters")}),logout:w.object({action:w.literal("logout")}),action:w.discriminatedUnion("action",[w.object({action:w.literal("register")}).merge(w.object({email:w.string().min(1,"Email is required").email("Please enter a valid email address"),username:w.string().min(3,"Username must be at least 3 characters").max(30,"Username must be less than 30 characters"),password:w.string().min(8,"Password must be at least 8 characters"),full_name:w.string().min(2,"Full name is required").max(100,"Full name is too long")})),w.object({action:w.literal("login")}).merge(w.object({email:w.string().min(1,"Email is required").email("Please enter a valid email address"),password:w.string().min(8,"Password must be at least 8 characters")})),w.object({action:w.literal("logout")})])},contact:w.object({name:w.string().min(2,"Name must be at least 2 characters").max(100,"Name is too long"),email:w.string().email("Please enter a valid email address"),message:w.string().min(10,"Message must be at least 10 characters").max(1000,"Message is too long")}),email:w.string().min(1,"Email is required").email("Please enter a valid email address"),password:w.string().min(8,"Password must be at least 8 characters").regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/,"Password must contain uppercase, lowercase, and number"),phone:w.string().regex(/^[\+]?[1-9][\d]{0,15}$/,"Please enter a valid phone number"),url:w.string().min(1,"URL is required").url("Please enter a valid URL"),required:w.string().min(1,"This field is required"),positiveNumber:w.number().positive("Must be a positive number"),integer:w.number().int("Must be a whole number"),futureDate:w.date().min(new Date,"Date must be in the future"),imageFile:w.instanceof(File).refine((t)=>t.size<=5242880,"File size must be less than 5MB").refine((t)=>["image/jpeg","image/png","image/gif","image/webp"].includes(t.type),"File must be a JPEG, PNG, GIF, or WebP image"),userProfile:w.object({full_name:w.string().min(2,"Full name must be at least 2 characters").max(100,"Full name is too long").optional(),bio:w.string().max(500,"Bio must be less than 500 characters").nullable().optional(),avatar_url:w.string().url("Please enter a valid URL").nullable().optional(),theme:w.enum(["africanity","dark","light","system"]).optional(),language:w.string().min(2).max(10).optional()}),project:w.object({name:w.string().min(1,"Project name is required").max(100,"Project name is too long"),description:w.string().max(1000,"Description is too long").nullable().optional(),repository_url:w.string().url("Please enter a valid repository URL").nullable().optional(),demo_url:w.string().url("Please enter a valid demo URL").nullable().optional(),tags:w.array(w.string()).optional(),is_public:w.boolean().optional()})};K={required:(t="This field is required")=>w.string().min(1,t),email:(t="Please enter a valid email address")=>w.string().email(t),minLength:(t,n)=>w.string().min(t,n||`Must be at least ${t} characters`),maxLength:(t,n)=>w.string().max(t,n||`Must be less than ${t} characters`),pattern:(t,n)=>w.string().regex(t,n),numeric:(t="Must be a number")=>w.string().regex(/^\d+$/,t),phone:(t="Please enter a valid phone number")=>w.string().regex(/^[\+]?[1-9][\d]{0,15}$/,t),url:(t="Please enter a valid URL")=>w.string().min(1,"URL is required").url(t)}});var Oo={};H(Oo,{default:()=>vb,AfriInput:()=>It});var It,vb;var Wo=A(()=>{q();Fn();It=class It extends c{static get observedAttributes(){return["type","name","label","placeholder","error","helper","theme","icon","required","aria-label","aria-describedby","validation"]}constructor(){super();this._uniqueId=Math.random().toString(36).substr(2,9),this.render()}get value(){return this.shadowRoot.querySelector("input")?.value||""}set value(t){let n=this.shadowRoot.querySelector("input");if(n)n.value=t}connectedCallback(){this._attachInputListeners(),this.loadStyles()}attributeChangedCallback(){this.render(),this._attachInputListeners()}_attachInputListeners(){let t=this.shadowRoot.querySelector("input");if(!t)return;t.addEventListener("input",(n)=>{if(this.emit("af-input",{value:n.target.value}),this.hasAttribute("error"))this.removeAttribute("error")}),t.addEventListener("blur",()=>{this.emit("af-blur",{value:this.value}),this._validateInput()})}_setupValidation(){if(!this.getAttribute("validation"))return;let n=this.shadowRoot.querySelector("input");if(!n)return;n.addEventListener("input",()=>{if(this.hasAttribute("error"))this.removeAttribute("error")})}_validateInput(){let t=this.shadowRoot.querySelector("input");if(!t)return;let n=this.getAttribute("validation"),a=t.value;if(this.hasAttribute("required")&&!a.trim()){this.setAttribute("error","This field is required");return}if(n&&a.trim()){let l=this._getValidationSchema(n);if(l){let b=Gt.validateField(l,a);if(!b.success)this.setAttribute("error",b.error);else this.removeAttribute("error")}}}_getValidationSchema(t){let n={email:K.email(),password:K.password(),phone:K.phone(),url:K.url(),required:K.required()};if(t.includes(":")){let[a,o]=t.split(":"),l=parseInt(o);switch(a){case"minLength":return K.minLength(l);case"maxLength":return K.maxLength(l);case"pattern":return K.pattern(new RegExp(o),"Invalid format")}}return n[t]||null}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("type")||"text",n=this.getAttribute("name")||"",a=this.getAttribute("label")||"",o=this.getAttribute("placeholder")||"",l=this.getAttribute("error")||"",b=this.getAttribute("helper")||"",r=this.getAttribute("theme")||"tanzania",h=this.getAttribute("icon")||"",f=this.hasAttribute("required"),_=this.getAttribute("aria-label"),M=this.getAttribute("aria-describedby"),X={tanzania:{focus:"#1EB53A",error:"#DC3545"},maasai:{focus:"#FF0000",error:"#8B0000"},ndebele:{focus:"#4169E1",error:"#DC143C"}},L=X[r]||X.tanzania,R=[];if(l)R.push(`error-${this._uniqueId}`);else if(b)R.push(`helper-${this._uniqueId}`);if(M)R.push(...M.split(" "));let An=R.length>0?`aria-describedby="${R.join(" ")}"`:"";this.shadowRoot.innerHTML=`
|
|
1559
|
+
`}};f("af-navbar",ln);Ye=ln});var q,vo,h,D=(t)=>{switch(typeof t){case"undefined":return h.undefined;case"string":return h.string;case"number":return Number.isNaN(t)?h.nan:h.number;case"boolean":return h.boolean;case"function":return h.function;case"bigint":return h.bigint;case"symbol":return h.symbol;case"object":if(Array.isArray(t))return h.array;if(t===null)return h.null;if(t.then&&typeof t.then==="function"&&t.catch&&typeof t.catch==="function")return h.promise;if(typeof Map<"u"&&t instanceof Map)return h.map;if(typeof Set<"u"&&t instanceof Set)return h.set;if(typeof Date<"u"&&t instanceof Date)return h.date;return h.object;default:return h.unknown}};var Kt=s(()=>{(function(t){t.assertEqual=(a)=>{};function n(a){}t.assertIs=n;function o(a){throw Error()}t.assertNever=o,t.arrayToEnum=(a)=>{let e={};for(let l of a)e[l]=l;return e},t.getValidEnumValues=(a)=>{let e=t.objectKeys(a).filter((i)=>typeof a[a[i]]!=="number"),l={};for(let i of e)l[i]=a[i];return t.objectValues(l)},t.objectValues=(a)=>{return t.objectKeys(a).map(function(e){return a[e]})},t.objectKeys=typeof Object.keys==="function"?(a)=>Object.keys(a):(a)=>{let e=[];for(let l in a)if(Object.prototype.hasOwnProperty.call(a,l))e.push(l);return e},t.find=(a,e)=>{for(let l of a)if(e(l))return l;return},t.isInteger=typeof Number.isInteger==="function"?(a)=>Number.isInteger(a):(a)=>typeof a==="number"&&Number.isFinite(a)&&Math.floor(a)===a;function r(a,e=" | "){return a.map((l)=>typeof l==="string"?`'${l}'`:l).join(e)}t.joinValues=r,t.jsonStringifyReplacer=(a,e)=>{if(typeof e==="bigint")return e.toString();return e}})(q||(q={}));(function(t){t.mergeShapes=(n,o)=>{return{...n,...o}}})(vo||(vo={}));h=q.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var d,Re=(t)=>{return JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:")},R;var bn=s(()=>{Kt();d=q.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);R=class R extends Error{get errors(){return this.issues}constructor(t){super();this.issues=[],this.addIssue=(o)=>{this.issues=[...this.issues,o]},this.addIssues=(o=[])=>{this.issues=[...this.issues,...o]};let n=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,n);else this.__proto__=n;this.name="ZodError",this.issues=t}format(t){let n=t||function(a){return a.message},o={_errors:[]},r=(a)=>{for(let e of a.issues)if(e.code==="invalid_union")e.unionErrors.map(r);else if(e.code==="invalid_return_type")r(e.returnTypeError);else if(e.code==="invalid_arguments")r(e.argumentsError);else if(e.path.length===0)o._errors.push(n(e));else{let l=o,i=0;while(i<e.path.length){let c=e.path[i];if(i!==e.path.length-1)l[c]=l[c]||{_errors:[]};else l[c]=l[c]||{_errors:[]},l[c]._errors.push(n(e));l=l[c],i++}}};return r(this),o}static assert(t){if(!(t instanceof R))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,q.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=(n)=>n.message){let n={},o=[];for(let r of this.issues)if(r.path.length>0){let a=r.path[0];n[a]=n[a]||[],n[a].push(t(r))}else o.push(t(r));return{formErrors:o,fieldErrors:n}}get formErrors(){return this.flatten()}};R.create=(t)=>{return new R(t)}});var Xe=(t,n)=>{let o;switch(t.code){case d.invalid_type:if(t.received===h.undefined)o="Required";else o=`Expected ${t.expected}, received ${t.received}`;break;case d.invalid_literal:o=`Invalid literal value, expected ${JSON.stringify(t.expected,q.jsonStringifyReplacer)}`;break;case d.unrecognized_keys:o=`Unrecognized key(s) in object: ${q.joinValues(t.keys,", ")}`;break;case d.invalid_union:o="Invalid input";break;case d.invalid_union_discriminator:o=`Invalid discriminator value. Expected ${q.joinValues(t.options)}`;break;case d.invalid_enum_value:o=`Invalid enum value. Expected ${q.joinValues(t.options)}, received '${t.received}'`;break;case d.invalid_arguments:o="Invalid function arguments";break;case d.invalid_return_type:o="Invalid function return type";break;case d.invalid_date:o="Invalid date";break;case d.invalid_string:if(typeof t.validation==="object")if("includes"in t.validation){if(o=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position==="number")o=`${o} at one or more positions greater than or equal to ${t.validation.position}`}else if("startsWith"in t.validation)o=`Invalid input: must start with "${t.validation.startsWith}"`;else if("endsWith"in t.validation)o=`Invalid input: must end with "${t.validation.endsWith}"`;else q.assertNever(t.validation);else if(t.validation!=="regex")o=`Invalid ${t.validation}`;else o="Invalid";break;case d.too_small:if(t.type==="array")o=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`;else if(t.type==="string")o=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`;else if(t.type==="number")o=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`;else if(t.type==="bigint")o=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`;else if(t.type==="date")o=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`;else o="Invalid input";break;case d.too_big:if(t.type==="array")o=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`;else if(t.type==="string")o=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`;else if(t.type==="number")o=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`;else if(t.type==="bigint")o=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`;else if(t.type==="date")o=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`;else o="Invalid input";break;case d.custom:o="Invalid input";break;case d.invalid_intersection_types:o="Intersection results could not be merged";break;case d.not_multiple_of:o=`Number must be a multiple of ${t.multipleOf}`;break;case d.not_finite:o="Number must be finite";break;default:o=n.defaultError,q.assertNever(t)}return{message:o}},U;var $o=s(()=>{bn();Kt();U=Xe});function Qe(t){Yr=t}function ot(){return Yr}var Yr;var cn=s(()=>{$o();Yr=U});function m(t,n){let o=ot(),r=jt({issueData:n,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,o,o===U?void 0:U].filter((a)=>!!a)});t.common.issues.push(r)}class S{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(t,n){let o=[];for(let r of n){if(r.status==="aborted")return x;if(r.status==="dirty")t.dirty();o.push(r.value)}return{status:t.value,value:o}}static async mergeObjectAsync(t,n){let o=[];for(let r of n){let a=await r.key,e=await r.value;o.push({key:a,value:e})}return S.mergeObjectSync(t,o)}static mergeObjectSync(t,n){let o={};for(let r of n){let{key:a,value:e}=r;if(a.status==="aborted")return x;if(e.status==="aborted")return x;if(a.status==="dirty")t.dirty();if(e.status==="dirty")t.dirty();if(a.value!=="__proto__"&&(typeof e.value<"u"||r.alwaysSet))o[a.value]=e.value}return{status:t.value,value:o}}}var jt=(t)=>{let{data:n,path:o,errorMaps:r,issueData:a}=t,e=[...o,...a.path||[]],l={...a,path:e};if(a.message!==void 0)return{...a,path:e,message:a.message};let i="",c=r.filter((v)=>!!v).slice().reverse();for(let v of c)i=v(l,{data:n,defaultError:i}).message;return{...a,path:e,message:i}},Je,x,T=(t)=>({status:"dirty",value:t}),Y=(t)=>({status:"valid",value:t}),fn=(t)=>t.status==="aborted",dn=(t)=>t.status==="dirty",j=(t)=>t.status==="valid",rt=(t)=>typeof Promise<"u"&&t instanceof Promise;var uo=s(()=>{cn();$o();Je=[];x=Object.freeze({status:"aborted"})});var Rr=()=>{};var $;var Xr=s(()=>{(function(t){t.errToObj=(n)=>typeof n==="string"?{message:n}:n||{},t.toString=(n)=>typeof n==="string"?n:n?.message})($||($={}))});class F{constructor(t,n,o,r){this._cachedPath=[],this.parent=t,this.data=n,this._path=o,this._key=r}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}function _(t){if(!t)return{};let{errorMap:n,invalid_type_error:o,required_error:r,description:a}=t;if(n&&(o||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(n)return{errorMap:n,description:a};return{errorMap:(l,i)=>{let{message:c}=t;if(l.code==="invalid_enum_value")return{message:c??i.defaultError};if(typeof i.data>"u")return{message:c??r??i.defaultError};if(l.code!=="invalid_type")return{message:i.defaultError};return{message:c??o??i.defaultError}},description:a}}class k{get description(){return this._def.description}_getType(t){return D(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:D(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new S,ctx:{common:t.parent.common,data:t.data,parsedType:D(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(rt(n))throw Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let o=this.safeParse(t,n);if(o.success)return o.data;throw o.error}safeParse(t,n){let o={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:D(t)},r=this._parseSync({data:t,path:o.path,parent:o});return Qr(o,r)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:D(t)};if(!this["~standard"].async)try{let o=this._parseSync({data:t,path:[],parent:n});return j(o)?{value:o.value}:{issues:n.common.issues}}catch(o){if(o?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then((o)=>j(o)?{value:o.value}:{issues:n.common.issues})}async parseAsync(t,n){let o=await this.safeParseAsync(t,n);if(o.success)return o.data;throw o.error}async safeParseAsync(t,n){let o={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:D(t)},r=this._parse({data:t,path:o.path,parent:o}),a=await(rt(r)?r:Promise.resolve(r));return Qr(o,a)}refine(t,n){let o=(r)=>{if(typeof n==="string"||typeof n>"u")return{message:n};else if(typeof n==="function")return n(r);else return n};return this._refinement((r,a)=>{let e=t(r),l=()=>a.addIssue({code:d.custom,...o(r)});if(typeof Promise<"u"&&e instanceof Promise)return e.then((i)=>{if(!i)return l(),!1;else return!0});if(!e)return l(),!1;else return!0})}refinement(t,n){return this._refinement((o,r)=>{if(!t(o))return r.addIssue(typeof n==="function"?n(o,r):n),!1;else return!0})}_refinement(t){return new B({schema:this,typeName:A.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(n)=>this["~validate"](n)}}optional(){return G.create(this,this._def)}nullable(){return N.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return J.create(this)}promise(){return nt.create(this,this._def)}or(t){return ct.create([this,t],this._def)}and(t){return ft.create(this,t,this._def)}transform(t){return new B({..._(this._def),schema:this,typeName:A.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t==="function"?t:()=>t;return new mt({..._(this._def),innerType:this,defaultValue:n,typeName:A.ZodDefault})}brand(){return new gn({typeName:A.ZodBranded,type:this,..._(this._def)})}catch(t){let n=typeof t==="function"?t:()=>t;return new pt({..._(this._def),innerType:this,catchValue:n,typeName:A.ZodCatch})}describe(t){return new this.constructor({...this._def,description:t})}pipe(t){return Zt.create(this,t)}readonly(){return st.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function Fr(t){let n="[0-5]\\d";if(t.precision)n=`${n}\\.\\d{${t.precision}}`;else if(t.precision==null)n=`${n}(\\.\\d+)?`;let o=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${n})${o}`}function Ze(t){return new RegExp(`^${Fr(t)}$`)}function Br(t){let n=`${Gr}T${Fr(t)}`,o=[];if(o.push(t.local?"Z?":"Z"),t.offset)o.push("([+-]\\d{2}:?\\d{2})");return n=`${n}(${o.join("|")})`,new RegExp(`^${n}$`)}function ze(t,n){if((n==="v4"||!n)&&Ke.test(t))return!0;if((n==="v6"||!n)&&ye.test(t))return!0;return!1}function tl(t,n){if(!We.test(t))return!1;try{let[o]=t.split(".");if(!o)return!1;let r=o.replace(/-/g,"+").replace(/_/g,"/").padEnd(o.length+(4-o.length%4)%4,"="),a=JSON.parse(atob(r));if(typeof a!=="object"||a===null)return!1;if("typ"in a&&a?.typ!=="JWT")return!1;if(!a.alg)return!1;if(n&&a.alg!==n)return!1;return!0}catch{return!1}}function nl(t,n){if((n==="v4"||!n)&&je.test(t))return!0;if((n==="v6"||!n)&&Ce.test(t))return!0;return!1}function ol(t,n){let o=(t.toString().split(".")[1]||"").length,r=(n.toString().split(".")[1]||"").length,a=o>r?o:r,e=Number.parseInt(t.toFixed(a).replace(".","")),l=Number.parseInt(n.toFixed(a).replace(".",""));return e%l/10**a}function at(t){if(t instanceof L){let n={};for(let o in t.shape){let r=t.shape[o];n[o]=G.create(at(r))}return new L({...t._def,shape:()=>n})}else if(t instanceof J)return new J({...t._def,type:at(t.element)});else if(t instanceof G)return G.create(at(t.unwrap()));else if(t instanceof N)return N.create(at(t.unwrap()));else if(t instanceof W)return W.create(t.items.map((n)=>at(n)));else return t}function xo(t,n){let o=D(t),r=D(n);if(t===n)return{valid:!0,data:t};else if(o===h.object&&r===h.object){let a=q.objectKeys(n),e=q.objectKeys(t).filter((i)=>a.indexOf(i)!==-1),l={...t,...n};for(let i of e){let c=xo(t[i],n[i]);if(!c.valid)return{valid:!1};l[i]=c.data}return{valid:!0,data:l}}else if(o===h.array&&r===h.array){if(t.length!==n.length)return{valid:!1};let a=[];for(let e=0;e<t.length;e++){let l=t[e],i=n[e],c=xo(l,i);if(!c.valid)return{valid:!1};a.push(c.data)}return{valid:!0,data:a}}else if(o===h.date&&r===h.date&&+t===+n)return{valid:!0,data:t};else return{valid:!1}}function Dr(t,n){return new P({values:t,typeName:A.ZodEnum,..._(n)})}function Jr(t,n){let o=typeof t==="function"?t(n):typeof t==="string"?{message:t}:t;return typeof o==="string"?{message:o}:o}function Or(t,n={},o){if(t)return z.create().superRefine((r,a)=>{let e=t(r);if(e instanceof Promise)return e.then((l)=>{if(!l){let i=Jr(n,r),c=i.fatal??o??!0;a.addIssue({code:"custom",...i,fatal:c})}});if(!e){let l=Jr(n,r),i=l.fatal??o??!0;a.addIssue({code:"custom",...l,fatal:i})}return});return z.create()}var Qr=(t,n)=>{if(j(n))return{success:!0,data:n.value};else{if(!t.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let o=new R(t.common.issues);return this._error=o,this._error}}}},Ge,Fe,Be,De,Oe,We,Ue,Ve,Ne="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",wo,Ke,je,ye,Ce,Ie,Pe,Gr="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Te,Q,C,I,lt,Z,yt,it,bt,z,y,O,Ct,J,L,ct,V=(t)=>{if(t instanceof dt)return V(t.schema);else if(t instanceof B)return V(t.innerType());else if(t instanceof ht)return[t.value];else if(t instanceof P)return t.options;else if(t instanceof gt)return q.objectValues(t.enum);else if(t instanceof mt)return V(t._def.innerType);else if(t instanceof it)return[void 0];else if(t instanceof bt)return[null];else if(t instanceof G)return[void 0,...V(t.unwrap())];else if(t instanceof N)return[null,...V(t.unwrap())];else if(t instanceof gn)return V(t.unwrap());else if(t instanceof st)return V(t.unwrap());else if(t instanceof pt)return V(t._def.innerType);else return[]},hn,ft,W,It,Pt,tt,et,dt,ht,P,gt,nt,B,G,N,mt,pt,Tt,rl,gn,Zt,st,al,A,el=(t,n={message:`Input not instance of ${t.name}`})=>Or((o)=>o instanceof t,n),Wr,Ur,ll,il,Vr,bl,cl,fl,dl,hl,gl,ml,pl,sl,vl,$l,ul,wl,xl,Al,_l,kl,ql,Hl,Ll,Ml,El,Sl,Yl,Rl,Xl,Ql,Jl,Gl,Fl=()=>Wr().optional(),Bl=()=>Ur().optional(),Dl=()=>Vr().optional(),Ol,Wl;var Nr=s(()=>{bn();cn();Xr();uo();Kt();Ge=/^c[^\s-]{8,}$/i,Fe=/^[0-9a-z]+$/,Be=/^[0-9A-HJKMNP-TV-Z]{26}$/i,De=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Oe=/^[a-z0-9_-]{21}$/i,We=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ue=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Ve=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ke=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,je=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Ce=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ie=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Pe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Te=new RegExp(`^${Gr}$`);Q=class Q extends k{_parse(t){if(this._def.coerce)t.data=String(t.data);if(this._getType(t)!==h.string){let a=this._getOrReturnCtx(t);return m(a,{code:d.invalid_type,expected:h.string,received:a.parsedType}),x}let o=new S,r=void 0;for(let a of this._def.checks)if(a.kind==="min"){if(t.data.length<a.value)r=this._getOrReturnCtx(t,r),m(r,{code:d.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),o.dirty()}else if(a.kind==="max"){if(t.data.length>a.value)r=this._getOrReturnCtx(t,r),m(r,{code:d.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),o.dirty()}else if(a.kind==="length"){let e=t.data.length>a.value,l=t.data.length<a.value;if(e||l){if(r=this._getOrReturnCtx(t,r),e)m(r,{code:d.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message});else if(l)m(r,{code:d.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message});o.dirty()}}else if(a.kind==="email"){if(!Ve.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"email",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="emoji"){if(!wo)wo=new RegExp(Ne,"u");if(!wo.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"emoji",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="uuid"){if(!De.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"uuid",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="nanoid"){if(!Oe.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"nanoid",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="cuid"){if(!Ge.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"cuid",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="cuid2"){if(!Fe.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"cuid2",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="ulid"){if(!Be.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"ulid",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="url")try{new URL(t.data)}catch{r=this._getOrReturnCtx(t,r),m(r,{validation:"url",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="regex"){if(a.regex.lastIndex=0,!a.regex.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"regex",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="trim")t.data=t.data.trim();else if(a.kind==="includes"){if(!t.data.includes(a.value,a.position))r=this._getOrReturnCtx(t,r),m(r,{code:d.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),o.dirty()}else if(a.kind==="toLowerCase")t.data=t.data.toLowerCase();else if(a.kind==="toUpperCase")t.data=t.data.toUpperCase();else if(a.kind==="startsWith"){if(!t.data.startsWith(a.value))r=this._getOrReturnCtx(t,r),m(r,{code:d.invalid_string,validation:{startsWith:a.value},message:a.message}),o.dirty()}else if(a.kind==="endsWith"){if(!t.data.endsWith(a.value))r=this._getOrReturnCtx(t,r),m(r,{code:d.invalid_string,validation:{endsWith:a.value},message:a.message}),o.dirty()}else if(a.kind==="datetime"){if(!Br(a).test(t.data))r=this._getOrReturnCtx(t,r),m(r,{code:d.invalid_string,validation:"datetime",message:a.message}),o.dirty()}else if(a.kind==="date"){if(!Te.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{code:d.invalid_string,validation:"date",message:a.message}),o.dirty()}else if(a.kind==="time"){if(!Ze(a).test(t.data))r=this._getOrReturnCtx(t,r),m(r,{code:d.invalid_string,validation:"time",message:a.message}),o.dirty()}else if(a.kind==="duration"){if(!Ue.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"duration",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="ip"){if(!ze(t.data,a.version))r=this._getOrReturnCtx(t,r),m(r,{validation:"ip",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="jwt"){if(!tl(t.data,a.alg))r=this._getOrReturnCtx(t,r),m(r,{validation:"jwt",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="cidr"){if(!nl(t.data,a.version))r=this._getOrReturnCtx(t,r),m(r,{validation:"cidr",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="base64"){if(!Ie.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"base64",code:d.invalid_string,message:a.message}),o.dirty()}else if(a.kind==="base64url"){if(!Pe.test(t.data))r=this._getOrReturnCtx(t,r),m(r,{validation:"base64url",code:d.invalid_string,message:a.message}),o.dirty()}else q.assertNever(a);return{status:o.value,value:t.data}}_regex(t,n,o){return this.refinement((r)=>t.test(r),{validation:n,code:d.invalid_string,...$.errToObj(o)})}_addCheck(t){return new Q({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...$.errToObj(t)})}url(t){return this._addCheck({kind:"url",...$.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...$.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...$.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...$.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...$.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...$.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...$.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...$.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...$.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...$.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...$.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...$.errToObj(t)})}datetime(t){if(typeof t==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t});return this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...$.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){if(typeof t==="string")return this._addCheck({kind:"time",precision:null,message:t});return this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...$.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...$.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...$.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...$.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...$.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...$.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...$.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...$.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...$.errToObj(n)})}nonempty(t){return this.min(1,$.errToObj(t))}trim(){return new Q({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Q({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Q({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((t)=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find((t)=>t.kind==="date")}get isTime(){return!!this._def.checks.find((t)=>t.kind==="time")}get isDuration(){return!!this._def.checks.find((t)=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find((t)=>t.kind==="email")}get isURL(){return!!this._def.checks.find((t)=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find((t)=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find((t)=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((t)=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((t)=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((t)=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find((t)=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find((t)=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find((t)=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find((t)=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find((t)=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t}get maxLength(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t}};Q.create=(t)=>{return new Q({checks:[],typeName:A.ZodString,coerce:t?.coerce??!1,..._(t)})};C=class C extends k{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce)t.data=Number(t.data);if(this._getType(t)!==h.number){let a=this._getOrReturnCtx(t);return m(a,{code:d.invalid_type,expected:h.number,received:a.parsedType}),x}let o=void 0,r=new S;for(let a of this._def.checks)if(a.kind==="int"){if(!q.isInteger(t.data))o=this._getOrReturnCtx(t,o),m(o,{code:d.invalid_type,expected:"integer",received:"float",message:a.message}),r.dirty()}else if(a.kind==="min"){if(a.inclusive?t.data<a.value:t.data<=a.value)o=this._getOrReturnCtx(t,o),m(o,{code:d.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()}else if(a.kind==="max"){if(a.inclusive?t.data>a.value:t.data>=a.value)o=this._getOrReturnCtx(t,o),m(o,{code:d.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),r.dirty()}else if(a.kind==="multipleOf"){if(ol(t.data,a.value)!==0)o=this._getOrReturnCtx(t,o),m(o,{code:d.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()}else if(a.kind==="finite"){if(!Number.isFinite(t.data))o=this._getOrReturnCtx(t,o),m(o,{code:d.not_finite,message:a.message}),r.dirty()}else q.assertNever(a);return{status:r.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,$.toString(n))}gt(t,n){return this.setLimit("min",t,!1,$.toString(n))}lte(t,n){return this.setLimit("max",t,!0,$.toString(n))}lt(t,n){return this.setLimit("max",t,!1,$.toString(n))}setLimit(t,n,o,r){return new C({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:o,message:$.toString(r)}]})}_addCheck(t){return new C({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:$.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:$.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:$.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t}get maxValue(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t}get isInt(){return!!this._def.checks.find((t)=>t.kind==="int"||t.kind==="multipleOf"&&q.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let o of this._def.checks)if(o.kind==="finite"||o.kind==="int"||o.kind==="multipleOf")return!0;else if(o.kind==="min"){if(n===null||o.value>n)n=o.value}else if(o.kind==="max"){if(t===null||o.value<t)t=o.value}return Number.isFinite(n)&&Number.isFinite(t)}};C.create=(t)=>{return new C({checks:[],typeName:A.ZodNumber,coerce:t?.coerce||!1,..._(t)})};I=class I extends k{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==h.bigint)return this._getInvalidInput(t);let o=void 0,r=new S;for(let a of this._def.checks)if(a.kind==="min"){if(a.inclusive?t.data<a.value:t.data<=a.value)o=this._getOrReturnCtx(t,o),m(o,{code:d.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()}else if(a.kind==="max"){if(a.inclusive?t.data>a.value:t.data>=a.value)o=this._getOrReturnCtx(t,o),m(o,{code:d.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),r.dirty()}else if(a.kind==="multipleOf"){if(t.data%a.value!==BigInt(0))o=this._getOrReturnCtx(t,o),m(o,{code:d.not_multiple_of,multipleOf:a.value,message:a.message}),r.dirty()}else q.assertNever(a);return{status:r.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return m(n,{code:d.invalid_type,expected:h.bigint,received:n.parsedType}),x}gte(t,n){return this.setLimit("min",t,!0,$.toString(n))}gt(t,n){return this.setLimit("min",t,!1,$.toString(n))}lte(t,n){return this.setLimit("max",t,!0,$.toString(n))}lt(t,n){return this.setLimit("max",t,!1,$.toString(n))}setLimit(t,n,o,r){return new I({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:o,message:$.toString(r)}]})}_addCheck(t){return new I({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:$.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t}get maxValue(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t}};I.create=(t)=>{return new I({checks:[],typeName:A.ZodBigInt,coerce:t?.coerce??!1,..._(t)})};lt=class lt extends k{_parse(t){if(this._def.coerce)t.data=Boolean(t.data);if(this._getType(t)!==h.boolean){let o=this._getOrReturnCtx(t);return m(o,{code:d.invalid_type,expected:h.boolean,received:o.parsedType}),x}return Y(t.data)}};lt.create=(t)=>{return new lt({typeName:A.ZodBoolean,coerce:t?.coerce||!1,..._(t)})};Z=class Z extends k{_parse(t){if(this._def.coerce)t.data=new Date(t.data);if(this._getType(t)!==h.date){let a=this._getOrReturnCtx(t);return m(a,{code:d.invalid_type,expected:h.date,received:a.parsedType}),x}if(Number.isNaN(t.data.getTime())){let a=this._getOrReturnCtx(t);return m(a,{code:d.invalid_date}),x}let o=new S,r=void 0;for(let a of this._def.checks)if(a.kind==="min"){if(t.data.getTime()<a.value)r=this._getOrReturnCtx(t,r),m(r,{code:d.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),o.dirty()}else if(a.kind==="max"){if(t.data.getTime()>a.value)r=this._getOrReturnCtx(t,r),m(r,{code:d.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),o.dirty()}else q.assertNever(a);return{status:o.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Z({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:$.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:$.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)if(n.kind==="min"){if(t===null||n.value>t)t=n.value}return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)if(n.kind==="max"){if(t===null||n.value<t)t=n.value}return t!=null?new Date(t):null}};Z.create=(t)=>{return new Z({checks:[],coerce:t?.coerce||!1,typeName:A.ZodDate,..._(t)})};yt=class yt extends k{_parse(t){if(this._getType(t)!==h.symbol){let o=this._getOrReturnCtx(t);return m(o,{code:d.invalid_type,expected:h.symbol,received:o.parsedType}),x}return Y(t.data)}};yt.create=(t)=>{return new yt({typeName:A.ZodSymbol,..._(t)})};it=class it extends k{_parse(t){if(this._getType(t)!==h.undefined){let o=this._getOrReturnCtx(t);return m(o,{code:d.invalid_type,expected:h.undefined,received:o.parsedType}),x}return Y(t.data)}};it.create=(t)=>{return new it({typeName:A.ZodUndefined,..._(t)})};bt=class bt extends k{_parse(t){if(this._getType(t)!==h.null){let o=this._getOrReturnCtx(t);return m(o,{code:d.invalid_type,expected:h.null,received:o.parsedType}),x}return Y(t.data)}};bt.create=(t)=>{return new bt({typeName:A.ZodNull,..._(t)})};z=class z extends k{constructor(){super(...arguments);this._any=!0}_parse(t){return Y(t.data)}};z.create=(t)=>{return new z({typeName:A.ZodAny,..._(t)})};y=class y extends k{constructor(){super(...arguments);this._unknown=!0}_parse(t){return Y(t.data)}};y.create=(t)=>{return new y({typeName:A.ZodUnknown,..._(t)})};O=class O extends k{_parse(t){let n=this._getOrReturnCtx(t);return m(n,{code:d.invalid_type,expected:h.never,received:n.parsedType}),x}};O.create=(t)=>{return new O({typeName:A.ZodNever,..._(t)})};Ct=class Ct extends k{_parse(t){if(this._getType(t)!==h.undefined){let o=this._getOrReturnCtx(t);return m(o,{code:d.invalid_type,expected:h.void,received:o.parsedType}),x}return Y(t.data)}};Ct.create=(t)=>{return new Ct({typeName:A.ZodVoid,..._(t)})};J=class J extends k{_parse(t){let{ctx:n,status:o}=this._processInputParams(t),r=this._def;if(n.parsedType!==h.array)return m(n,{code:d.invalid_type,expected:h.array,received:n.parsedType}),x;if(r.exactLength!==null){let e=n.data.length>r.exactLength.value,l=n.data.length<r.exactLength.value;if(e||l)m(n,{code:e?d.too_big:d.too_small,minimum:l?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),o.dirty()}if(r.minLength!==null){if(n.data.length<r.minLength.value)m(n,{code:d.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),o.dirty()}if(r.maxLength!==null){if(n.data.length>r.maxLength.value)m(n,{code:d.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),o.dirty()}if(n.common.async)return Promise.all([...n.data].map((e,l)=>{return r.type._parseAsync(new F(n,e,n.path,l))})).then((e)=>{return S.mergeArray(o,e)});let a=[...n.data].map((e,l)=>{return r.type._parseSync(new F(n,e,n.path,l))});return S.mergeArray(o,a)}get element(){return this._def.type}min(t,n){return new J({...this._def,minLength:{value:t,message:$.toString(n)}})}max(t,n){return new J({...this._def,maxLength:{value:t,message:$.toString(n)}})}length(t,n){return new J({...this._def,exactLength:{value:t,message:$.toString(n)}})}nonempty(t){return this.min(1,t)}};J.create=(t,n)=>{return new J({type:t,minLength:null,maxLength:null,exactLength:null,typeName:A.ZodArray,..._(n)})};L=class L extends k{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=q.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==h.object){let c=this._getOrReturnCtx(t);return m(c,{code:d.invalid_type,expected:h.object,received:c.parsedType}),x}let{status:o,ctx:r}=this._processInputParams(t),{shape:a,keys:e}=this._getCached(),l=[];if(!(this._def.catchall instanceof O&&this._def.unknownKeys==="strip")){for(let c in r.data)if(!e.includes(c))l.push(c)}let i=[];for(let c of e){let v=a[c],H=r.data[c];i.push({key:{status:"valid",value:c},value:v._parse(new F(r,H,r.path,c)),alwaysSet:c in r.data})}if(this._def.catchall instanceof O){let c=this._def.unknownKeys;if(c==="passthrough")for(let v of l)i.push({key:{status:"valid",value:v},value:{status:"valid",value:r.data[v]}});else if(c==="strict"){if(l.length>0)m(r,{code:d.unrecognized_keys,keys:l}),o.dirty()}else if(c==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let v of l){let H=r.data[v];i.push({key:{status:"valid",value:v},value:c._parse(new F(r,H,r.path,v)),alwaysSet:v in r.data})}}if(r.common.async)return Promise.resolve().then(async()=>{let c=[];for(let v of i){let H=await v.key,E=await v.value;c.push({key:H,value:E,alwaysSet:v.alwaysSet})}return c}).then((c)=>{return S.mergeObjectSync(o,c)});else return S.mergeObjectSync(o,i)}get shape(){return this._def.shape()}strict(t){return $.errToObj,new L({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,o)=>{let r=this._def.errorMap?.(n,o).message??o.defaultError;if(n.code==="unrecognized_keys")return{message:$.errToObj(t).message??r};return{message:r}}}:{}})}strip(){return new L({...this._def,unknownKeys:"strip"})}passthrough(){return new L({...this._def,unknownKeys:"passthrough"})}extend(t){return new L({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new L({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:A.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new L({...this._def,catchall:t})}pick(t){let n={};for(let o of q.objectKeys(t))if(t[o]&&this.shape[o])n[o]=this.shape[o];return new L({...this._def,shape:()=>n})}omit(t){let n={};for(let o of q.objectKeys(this.shape))if(!t[o])n[o]=this.shape[o];return new L({...this._def,shape:()=>n})}deepPartial(){return at(this)}partial(t){let n={};for(let o of q.objectKeys(this.shape)){let r=this.shape[o];if(t&&!t[o])n[o]=r;else n[o]=r.optional()}return new L({...this._def,shape:()=>n})}required(t){let n={};for(let o of q.objectKeys(this.shape))if(t&&!t[o])n[o]=this.shape[o];else{let a=this.shape[o];while(a instanceof G)a=a._def.innerType;n[o]=a}return new L({...this._def,shape:()=>n})}keyof(){return Dr(q.objectKeys(this.shape))}};L.create=(t,n)=>{return new L({shape:()=>t,unknownKeys:"strip",catchall:O.create(),typeName:A.ZodObject,..._(n)})};L.strictCreate=(t,n)=>{return new L({shape:()=>t,unknownKeys:"strict",catchall:O.create(),typeName:A.ZodObject,..._(n)})};L.lazycreate=(t,n)=>{return new L({shape:t,unknownKeys:"strip",catchall:O.create(),typeName:A.ZodObject,..._(n)})};ct=class ct extends k{_parse(t){let{ctx:n}=this._processInputParams(t),o=this._def.options;function r(a){for(let l of a)if(l.result.status==="valid")return l.result;for(let l of a)if(l.result.status==="dirty")return n.common.issues.push(...l.ctx.common.issues),l.result;let e=a.map((l)=>new R(l.ctx.common.issues));return m(n,{code:d.invalid_union,unionErrors:e}),x}if(n.common.async)return Promise.all(o.map(async(a)=>{let e={...n,common:{...n.common,issues:[]},parent:null};return{result:await a._parseAsync({data:n.data,path:n.path,parent:e}),ctx:e}})).then(r);else{let a=void 0,e=[];for(let i of o){let c={...n,common:{...n.common,issues:[]},parent:null},v=i._parseSync({data:n.data,path:n.path,parent:c});if(v.status==="valid")return v;else if(v.status==="dirty"&&!a)a={result:v,ctx:c};if(c.common.issues.length)e.push(c.common.issues)}if(a)return n.common.issues.push(...a.ctx.common.issues),a.result;let l=e.map((i)=>new R(i));return m(n,{code:d.invalid_union,unionErrors:l}),x}}get options(){return this._def.options}};ct.create=(t,n)=>{return new ct({options:t,typeName:A.ZodUnion,..._(n)})};hn=class hn extends k{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==h.object)return m(n,{code:d.invalid_type,expected:h.object,received:n.parsedType}),x;let o=this.discriminator,r=n.data[o],a=this.optionsMap.get(r);if(!a)return m(n,{code:d.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[o]}),x;if(n.common.async)return a._parseAsync({data:n.data,path:n.path,parent:n});else return a._parseSync({data:n.data,path:n.path,parent:n})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,o){let r=new Map;for(let a of n){let e=V(a.shape[t]);if(!e.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let l of e){if(r.has(l))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(l)}`);r.set(l,a)}}return new hn({typeName:A.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:r,..._(o)})}};ft=class ft extends k{_parse(t){let{status:n,ctx:o}=this._processInputParams(t),r=(a,e)=>{if(fn(a)||fn(e))return x;let l=xo(a.value,e.value);if(!l.valid)return m(o,{code:d.invalid_intersection_types}),x;if(dn(a)||dn(e))n.dirty();return{status:n.value,value:l.data}};if(o.common.async)return Promise.all([this._def.left._parseAsync({data:o.data,path:o.path,parent:o}),this._def.right._parseAsync({data:o.data,path:o.path,parent:o})]).then(([a,e])=>r(a,e));else return r(this._def.left._parseSync({data:o.data,path:o.path,parent:o}),this._def.right._parseSync({data:o.data,path:o.path,parent:o}))}};ft.create=(t,n,o)=>{return new ft({left:t,right:n,typeName:A.ZodIntersection,..._(o)})};W=class W extends k{_parse(t){let{status:n,ctx:o}=this._processInputParams(t);if(o.parsedType!==h.array)return m(o,{code:d.invalid_type,expected:h.array,received:o.parsedType}),x;if(o.data.length<this._def.items.length)return m(o,{code:d.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),x;if(!this._def.rest&&o.data.length>this._def.items.length)m(o,{code:d.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty();let a=[...o.data].map((e,l)=>{let i=this._def.items[l]||this._def.rest;if(!i)return null;return i._parse(new F(o,e,o.path,l))}).filter((e)=>!!e);if(o.common.async)return Promise.all(a).then((e)=>{return S.mergeArray(n,e)});else return S.mergeArray(n,a)}get items(){return this._def.items}rest(t){return new W({...this._def,rest:t})}};W.create=(t,n)=>{if(!Array.isArray(t))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new W({items:t,typeName:A.ZodTuple,rest:null,..._(n)})};It=class It extends k{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:o}=this._processInputParams(t);if(o.parsedType!==h.object)return m(o,{code:d.invalid_type,expected:h.object,received:o.parsedType}),x;let r=[],a=this._def.keyType,e=this._def.valueType;for(let l in o.data)r.push({key:a._parse(new F(o,l,o.path,l)),value:e._parse(new F(o,o.data[l],o.path,l)),alwaysSet:l in o.data});if(o.common.async)return S.mergeObjectAsync(n,r);else return S.mergeObjectSync(n,r)}get element(){return this._def.valueType}static create(t,n,o){if(n instanceof k)return new It({keyType:t,valueType:n,typeName:A.ZodRecord,..._(o)});return new It({keyType:Q.create(),valueType:t,typeName:A.ZodRecord,..._(n)})}};Pt=class Pt extends k{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:o}=this._processInputParams(t);if(o.parsedType!==h.map)return m(o,{code:d.invalid_type,expected:h.map,received:o.parsedType}),x;let r=this._def.keyType,a=this._def.valueType,e=[...o.data.entries()].map(([l,i],c)=>{return{key:r._parse(new F(o,l,o.path,[c,"key"])),value:a._parse(new F(o,i,o.path,[c,"value"]))}});if(o.common.async){let l=new Map;return Promise.resolve().then(async()=>{for(let i of e){let c=await i.key,v=await i.value;if(c.status==="aborted"||v.status==="aborted")return x;if(c.status==="dirty"||v.status==="dirty")n.dirty();l.set(c.value,v.value)}return{status:n.value,value:l}})}else{let l=new Map;for(let i of e){let{key:c,value:v}=i;if(c.status==="aborted"||v.status==="aborted")return x;if(c.status==="dirty"||v.status==="dirty")n.dirty();l.set(c.value,v.value)}return{status:n.value,value:l}}}};Pt.create=(t,n,o)=>{return new Pt({valueType:n,keyType:t,typeName:A.ZodMap,..._(o)})};tt=class tt extends k{_parse(t){let{status:n,ctx:o}=this._processInputParams(t);if(o.parsedType!==h.set)return m(o,{code:d.invalid_type,expected:h.set,received:o.parsedType}),x;let r=this._def;if(r.minSize!==null){if(o.data.size<r.minSize.value)m(o,{code:d.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),n.dirty()}if(r.maxSize!==null){if(o.data.size>r.maxSize.value)m(o,{code:d.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),n.dirty()}let a=this._def.valueType;function e(i){let c=new Set;for(let v of i){if(v.status==="aborted")return x;if(v.status==="dirty")n.dirty();c.add(v.value)}return{status:n.value,value:c}}let l=[...o.data.values()].map((i,c)=>a._parse(new F(o,i,o.path,c)));if(o.common.async)return Promise.all(l).then((i)=>e(i));else return e(l)}min(t,n){return new tt({...this._def,minSize:{value:t,message:$.toString(n)}})}max(t,n){return new tt({...this._def,maxSize:{value:t,message:$.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};tt.create=(t,n)=>{return new tt({valueType:t,minSize:null,maxSize:null,typeName:A.ZodSet,..._(n)})};et=class et extends k{constructor(){super(...arguments);this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==h.function)return m(n,{code:d.invalid_type,expected:h.function,received:n.parsedType}),x;function o(l,i){return jt({data:l,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,ot(),U].filter((c)=>!!c),issueData:{code:d.invalid_arguments,argumentsError:i}})}function r(l,i){return jt({data:l,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,ot(),U].filter((c)=>!!c),issueData:{code:d.invalid_return_type,returnTypeError:i}})}let a={errorMap:n.common.contextualErrorMap},e=n.data;if(this._def.returns instanceof nt){let l=this;return Y(async function(...i){let c=new R([]),v=await l._def.args.parseAsync(i,a).catch((M)=>{throw c.addIssue(o(i,M)),c}),H=await Reflect.apply(e,this,v);return await l._def.returns._def.type.parseAsync(H,a).catch((M)=>{throw c.addIssue(r(H,M)),c})})}else{let l=this;return Y(function(...i){let c=l._def.args.safeParse(i,a);if(!c.success)throw new R([o(i,c.error)]);let v=Reflect.apply(e,this,c.data),H=l._def.returns.safeParse(v,a);if(!H.success)throw new R([r(v,H.error)]);return H.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new et({...this._def,args:W.create(t).rest(y.create())})}returns(t){return new et({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,o){return new et({args:t?t:W.create([]).rest(y.create()),returns:n||y.create(),typeName:A.ZodFunction,..._(o)})}};dt=class dt extends k{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};dt.create=(t,n)=>{return new dt({getter:t,typeName:A.ZodLazy,..._(n)})};ht=class ht extends k{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return m(n,{received:n.data,code:d.invalid_literal,expected:this._def.value}),x}return{status:"valid",value:t.data}}get value(){return this._def.value}};ht.create=(t,n)=>{return new ht({value:t,typeName:A.ZodLiteral,..._(n)})};P=class P extends k{_parse(t){if(typeof t.data!=="string"){let n=this._getOrReturnCtx(t),o=this._def.values;return m(n,{expected:q.joinValues(o),received:n.parsedType,code:d.invalid_type}),x}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),o=this._def.values;return m(n,{received:n.data,code:d.invalid_enum_value,options:o}),x}return Y(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return P.create(t,{...this._def,...n})}exclude(t,n=this._def){return P.create(this.options.filter((o)=>!t.includes(o)),{...this._def,...n})}};P.create=Dr;gt=class gt extends k{_parse(t){let n=q.getValidEnumValues(this._def.values),o=this._getOrReturnCtx(t);if(o.parsedType!==h.string&&o.parsedType!==h.number){let r=q.objectValues(n);return m(o,{expected:q.joinValues(r),received:o.parsedType,code:d.invalid_type}),x}if(!this._cache)this._cache=new Set(q.getValidEnumValues(this._def.values));if(!this._cache.has(t.data)){let r=q.objectValues(n);return m(o,{received:o.data,code:d.invalid_enum_value,options:r}),x}return Y(t.data)}get enum(){return this._def.values}};gt.create=(t,n)=>{return new gt({values:t,typeName:A.ZodNativeEnum,..._(n)})};nt=class nt extends k{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==h.promise&&n.common.async===!1)return m(n,{code:d.invalid_type,expected:h.promise,received:n.parsedType}),x;let o=n.parsedType===h.promise?n.data:Promise.resolve(n.data);return Y(o.then((r)=>{return this._def.type.parseAsync(r,{path:n.path,errorMap:n.common.contextualErrorMap})}))}};nt.create=(t,n)=>{return new nt({type:t,typeName:A.ZodPromise,..._(n)})};B=class B extends k{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===A.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:o}=this._processInputParams(t),r=this._def.effect||null,a={addIssue:(e)=>{if(m(o,e),e.fatal)n.abort();else n.dirty()},get path(){return o.path}};if(a.addIssue=a.addIssue.bind(a),r.type==="preprocess"){let e=r.transform(o.data,a);if(o.common.async)return Promise.resolve(e).then(async(l)=>{if(n.value==="aborted")return x;let i=await this._def.schema._parseAsync({data:l,path:o.path,parent:o});if(i.status==="aborted")return x;if(i.status==="dirty")return T(i.value);if(n.value==="dirty")return T(i.value);return i});else{if(n.value==="aborted")return x;let l=this._def.schema._parseSync({data:e,path:o.path,parent:o});if(l.status==="aborted")return x;if(l.status==="dirty")return T(l.value);if(n.value==="dirty")return T(l.value);return l}}if(r.type==="refinement"){let e=(l)=>{let i=r.refinement(l,a);if(o.common.async)return Promise.resolve(i);if(i instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(o.common.async===!1){let l=this._def.schema._parseSync({data:o.data,path:o.path,parent:o});if(l.status==="aborted")return x;if(l.status==="dirty")n.dirty();return e(l.value),{status:n.value,value:l.value}}else return this._def.schema._parseAsync({data:o.data,path:o.path,parent:o}).then((l)=>{if(l.status==="aborted")return x;if(l.status==="dirty")n.dirty();return e(l.value).then(()=>{return{status:n.value,value:l.value}})})}if(r.type==="transform")if(o.common.async===!1){let e=this._def.schema._parseSync({data:o.data,path:o.path,parent:o});if(!j(e))return x;let l=r.transform(e.value,a);if(l instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:l}}else return this._def.schema._parseAsync({data:o.data,path:o.path,parent:o}).then((e)=>{if(!j(e))return x;return Promise.resolve(r.transform(e.value,a)).then((l)=>({status:n.value,value:l}))});q.assertNever(r)}};B.create=(t,n,o)=>{return new B({schema:t,typeName:A.ZodEffects,effect:n,..._(o)})};B.createWithPreprocess=(t,n,o)=>{return new B({schema:n,effect:{type:"preprocess",transform:t},typeName:A.ZodEffects,..._(o)})};G=class G extends k{_parse(t){if(this._getType(t)===h.undefined)return Y(void 0);return this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};G.create=(t,n)=>{return new G({innerType:t,typeName:A.ZodOptional,..._(n)})};N=class N extends k{_parse(t){if(this._getType(t)===h.null)return Y(null);return this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};N.create=(t,n)=>{return new N({innerType:t,typeName:A.ZodNullable,..._(n)})};mt=class mt extends k{_parse(t){let{ctx:n}=this._processInputParams(t),o=n.data;if(n.parsedType===h.undefined)o=this._def.defaultValue();return this._def.innerType._parse({data:o,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};mt.create=(t,n)=>{return new mt({innerType:t,typeName:A.ZodDefault,defaultValue:typeof n.default==="function"?n.default:()=>n.default,..._(n)})};pt=class pt extends k{_parse(t){let{ctx:n}=this._processInputParams(t),o={...n,common:{...n.common,issues:[]}},r=this._def.innerType._parse({data:o.data,path:o.path,parent:{...o}});if(rt(r))return r.then((a)=>{return{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new R(o.common.issues)},input:o.data})}});else return{status:"valid",value:r.status==="valid"?r.value:this._def.catchValue({get error(){return new R(o.common.issues)},input:o.data})}}removeCatch(){return this._def.innerType}};pt.create=(t,n)=>{return new pt({innerType:t,typeName:A.ZodCatch,catchValue:typeof n.catch==="function"?n.catch:()=>n.catch,..._(n)})};Tt=class Tt extends k{_parse(t){if(this._getType(t)!==h.nan){let o=this._getOrReturnCtx(t);return m(o,{code:d.invalid_type,expected:h.nan,received:o.parsedType}),x}return{status:"valid",value:t.data}}};Tt.create=(t)=>{return new Tt({typeName:A.ZodNaN,..._(t)})};rl=Symbol("zod_brand");gn=class gn extends k{_parse(t){let{ctx:n}=this._processInputParams(t),o=n.data;return this._def.type._parse({data:o,path:n.path,parent:n})}unwrap(){return this._def.type}};Zt=class Zt extends k{_parse(t){let{status:n,ctx:o}=this._processInputParams(t);if(o.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:o.data,path:o.path,parent:o});if(a.status==="aborted")return x;if(a.status==="dirty")return n.dirty(),T(a.value);else return this._def.out._parseAsync({data:a.value,path:o.path,parent:o})})();else{let r=this._def.in._parseSync({data:o.data,path:o.path,parent:o});if(r.status==="aborted")return x;if(r.status==="dirty")return n.dirty(),{status:"dirty",value:r.value};else return this._def.out._parseSync({data:r.value,path:o.path,parent:o})}}static create(t,n){return new Zt({in:t,out:n,typeName:A.ZodPipeline})}};st=class st extends k{_parse(t){let n=this._def.innerType._parse(t),o=(r)=>{if(j(r))r.value=Object.freeze(r.value);return r};return rt(n)?n.then((r)=>o(r)):o(n)}unwrap(){return this._def.innerType}};st.create=(t,n)=>{return new st({innerType:t,typeName:A.ZodReadonly,..._(n)})};al={object:L.lazycreate};(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(A||(A={}));Wr=Q.create,Ur=C.create,ll=Tt.create,il=I.create,Vr=lt.create,bl=Z.create,cl=yt.create,fl=it.create,dl=bt.create,hl=z.create,gl=y.create,ml=O.create,pl=Ct.create,sl=J.create,vl=L.create,$l=L.strictCreate,ul=ct.create,wl=hn.create,xl=ft.create,Al=W.create,_l=It.create,kl=Pt.create,ql=tt.create,Hl=et.create,Ll=dt.create,Ml=ht.create,El=P.create,Sl=gt.create,Yl=nt.create,Rl=B.create,Xl=G.create,Ql=N.create,Jl=B.createWithPreprocess,Gl=Zt.create,Ol={string:(t)=>Q.create({...t,coerce:!0}),number:(t)=>C.create({...t,coerce:!0}),boolean:(t)=>lt.create({...t,coerce:!0}),bigint:(t)=>I.create({...t,coerce:!0}),date:(t)=>Z.create({...t,coerce:!0})},Wl=x});var p={};w(p,{void:()=>pl,util:()=>q,unknown:()=>gl,union:()=>ul,undefined:()=>fl,tuple:()=>Al,transformer:()=>Rl,symbol:()=>cl,string:()=>Wr,strictObject:()=>$l,setErrorMap:()=>Qe,set:()=>ql,record:()=>_l,quotelessJson:()=>Re,promise:()=>Yl,preprocess:()=>Jl,pipeline:()=>Gl,ostring:()=>Fl,optional:()=>Xl,onumber:()=>Bl,oboolean:()=>Dl,objectUtil:()=>vo,object:()=>vl,number:()=>Ur,nullable:()=>Ql,null:()=>dl,never:()=>ml,nativeEnum:()=>Sl,nan:()=>ll,map:()=>kl,makeIssue:()=>jt,literal:()=>Ml,lazy:()=>Ll,late:()=>al,isValid:()=>j,isDirty:()=>dn,isAsync:()=>rt,isAborted:()=>fn,intersection:()=>xl,instanceof:()=>el,getParsedType:()=>D,getErrorMap:()=>ot,function:()=>Hl,enum:()=>El,effect:()=>Rl,discriminatedUnion:()=>wl,defaultErrorMap:()=>U,datetimeRegex:()=>Br,date:()=>bl,custom:()=>Or,coerce:()=>Ol,boolean:()=>Vr,bigint:()=>il,array:()=>sl,any:()=>hl,addIssueToContext:()=>m,ZodVoid:()=>Ct,ZodUnknown:()=>y,ZodUnion:()=>ct,ZodUndefined:()=>it,ZodType:()=>k,ZodTuple:()=>W,ZodTransformer:()=>B,ZodSymbol:()=>yt,ZodString:()=>Q,ZodSet:()=>tt,ZodSchema:()=>k,ZodRecord:()=>It,ZodReadonly:()=>st,ZodPromise:()=>nt,ZodPipeline:()=>Zt,ZodParsedType:()=>h,ZodOptional:()=>G,ZodObject:()=>L,ZodNumber:()=>C,ZodNullable:()=>N,ZodNull:()=>bt,ZodNever:()=>O,ZodNativeEnum:()=>gt,ZodNaN:()=>Tt,ZodMap:()=>Pt,ZodLiteral:()=>ht,ZodLazy:()=>dt,ZodIssueCode:()=>d,ZodIntersection:()=>ft,ZodFunction:()=>et,ZodFirstPartyTypeKind:()=>A,ZodError:()=>R,ZodEnum:()=>P,ZodEffects:()=>B,ZodDiscriminatedUnion:()=>hn,ZodDefault:()=>mt,ZodDate:()=>Z,ZodCatch:()=>pt,ZodBranded:()=>gn,ZodBoolean:()=>lt,ZodBigInt:()=>I,ZodArray:()=>J,ZodAny:()=>z,Schema:()=>k,ParseStatus:()=>S,OK:()=>Y,NEVER:()=>Wl,INVALID:()=>x,EMPTY_PATH:()=>Je,DIRTY:()=>T,BRAND:()=>rl});var Ao=s(()=>{cn();uo();Rr();Kt();Nr();bn()});var Kr=s(()=>{Ao();Ao()});function _o(t){if(t===null||typeof t!=="object")return t;if(Array.isArray(t))return t.map(_o);let n={};for(let o of Object.keys(t))n[o]=_o(t[o]);return n}var Ul,Vb;var jr=s(()=>{Ul={validation:{trimStrings:!1,emptyAsNullDefault:!1},security:{csrf:{enabled:!0,excludePaths:[],sameSite:"Strict",secure:!1},rateLimit:{enabled:!0,windowMs:60000,maxRequests:60,excludePaths:[]}},hooks:{onValidationError:null,onSecurityViolation:null,onRateLimit:null,onDatabaseError:null,onRequest:null}},Vb=_o(Ul)});class zt{static validate(t,n){try{return{success:!0,data:t.parse(n)}}catch(o){if(o instanceof p.ZodError){let r={};return o.errors.forEach((a)=>{let e=a.path.join(".");r[e]=a.message}),{success:!1,errors:r}}return{success:!1,errors:{general:"Validation failed"}}}}static validateField(t,n){try{return t.parse(n),{success:!0}}catch(o){if(o instanceof p.ZodError)return{success:!1,error:o.errors[0]?.message||"Invalid value"};return{success:!1,error:"Validation failed"}}}static getFieldError(t,n){if(t.success)return null;return t.errors?.[n]||null}static hasFieldError(t,n){return!!this.getFieldError(t,n)}}var yr,K;var ko=s(()=>{Kr();jr();yr={login:p.object({email:p.string().min(1,"Email is required").email("Please enter a valid email address"),password:p.string().min(8,"Password must be at least 8 characters").regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/,"Password must contain at least one uppercase letter, one lowercase letter, and one number")}),register:p.object({name:p.string().min(2,"Name must be at least 2 characters").max(50,"Name must be less than 50 characters").regex(/^[a-zA-Z\s'-]+$/,"Name can only contain letters, spaces, hyphens, and apostrophes"),email:p.string().min(1,"Email is required").email("Please enter a valid email address"),password:p.string().min(8,"Password must be at least 8 characters").regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])/,"Password must contain uppercase, lowercase, number, and special character"),confirmPassword:p.string()}).refine((t)=>t.password===t.confirmPassword,{message:"Passwords don't match",path:["confirmPassword"]}),auth:{register:p.object({action:p.literal("register"),email:p.string().min(1,"Email is required").email("Please enter a valid email address"),username:p.string().min(3,"Username must be at least 3 characters").max(30,"Username must be less than 30 characters"),password:p.string().min(8,"Password must be at least 8 characters"),full_name:p.string().min(2,"Full name is required").max(100,"Full name is too long")}),login:p.object({action:p.literal("login"),email:p.string().min(1,"Email is required").email("Please enter a valid email address"),password:p.string().min(8,"Password must be at least 8 characters")}),logout:p.object({action:p.literal("logout")}),action:p.discriminatedUnion("action",[p.object({action:p.literal("register")}).merge(p.object({email:p.string().min(1,"Email is required").email("Please enter a valid email address"),username:p.string().min(3,"Username must be at least 3 characters").max(30,"Username must be less than 30 characters"),password:p.string().min(8,"Password must be at least 8 characters"),full_name:p.string().min(2,"Full name is required").max(100,"Full name is too long")})),p.object({action:p.literal("login")}).merge(p.object({email:p.string().min(1,"Email is required").email("Please enter a valid email address"),password:p.string().min(8,"Password must be at least 8 characters")})),p.object({action:p.literal("logout")})])},contact:p.object({name:p.string().min(2,"Name must be at least 2 characters").max(100,"Name is too long"),email:p.string().email("Please enter a valid email address"),message:p.string().min(10,"Message must be at least 10 characters").max(1000,"Message is too long")}),email:p.string().min(1,"Email is required").email("Please enter a valid email address"),password:p.string().min(8,"Password must be at least 8 characters").regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/,"Password must contain uppercase, lowercase, and number"),phone:p.string().regex(/^[\+]?[1-9][\d]{0,15}$/,"Please enter a valid phone number"),url:p.string().min(1,"URL is required").url("Please enter a valid URL"),required:p.string().min(1,"This field is required"),positiveNumber:p.number().positive("Must be a positive number"),integer:p.number().int("Must be a whole number"),futureDate:p.date().min(new Date,"Date must be in the future"),imageFile:p.instanceof(File).refine((t)=>t.size<=5242880,"File size must be less than 5MB").refine((t)=>["image/jpeg","image/png","image/gif","image/webp"].includes(t.type),"File must be a JPEG, PNG, GIF, or WebP image"),userProfile:p.object({full_name:p.string().min(2,"Full name must be at least 2 characters").max(100,"Full name is too long").optional(),bio:p.string().max(500,"Bio must be less than 500 characters").nullable().optional(),avatar_url:p.string().url("Please enter a valid URL").nullable().optional(),theme:p.enum(["africanity","dark","light","system"]).optional(),language:p.string().min(2).max(10).optional()}),project:p.object({name:p.string().min(1,"Project name is required").max(100,"Project name is too long"),description:p.string().max(1000,"Description is too long").nullable().optional(),repository_url:p.string().url("Please enter a valid repository URL").nullable().optional(),demo_url:p.string().url("Please enter a valid demo URL").nullable().optional(),tags:p.array(p.string()).optional(),is_public:p.boolean().optional()})};K={required:(t="This field is required")=>p.string().min(1,t),email:(t="Please enter a valid email address")=>p.string().email(t),minLength:(t,n)=>p.string().min(t,n||`Must be at least ${t} characters`),maxLength:(t,n)=>p.string().max(t,n||`Must be less than ${t} characters`),pattern:(t,n)=>p.string().regex(t,n),numeric:(t="Must be a number")=>p.string().regex(/^\d+$/,t),phone:(t="Please enter a valid phone number")=>p.string().regex(/^[\+]?[1-9][\d]{0,15}$/,t),url:(t="Please enter a valid URL")=>p.string().min(1,"URL is required").url(t)}});var Cr={};w(Cr,{default:()=>Vl,AfriInput:()=>mn});var mn,Vl;var Ir=s(()=>{u();ko();mn=class mn extends b{static get observedAttributes(){return["type","name","label","placeholder","error","helper","theme","icon","required","aria-label","aria-describedby","validation"]}constructor(){super();this._uniqueId=Math.random().toString(36).substr(2,9),this.render()}get value(){return this.shadowRoot.querySelector("input")?.value||""}set value(t){let n=this.shadowRoot.querySelector("input");if(n)n.value=t}connectedCallback(){this._attachInputListeners(),this.loadStyles()}attributeChangedCallback(){this.render(),this._attachInputListeners()}_attachInputListeners(){let t=this.shadowRoot.querySelector("input");if(!t)return;t.addEventListener("input",(n)=>{if(this.emit("af-input",{value:n.target.value}),this.hasAttribute("error"))this.removeAttribute("error")}),t.addEventListener("blur",()=>{this.emit("af-blur",{value:this.value}),this._validateInput()})}_setupValidation(){if(!this.getAttribute("validation"))return;let n=this.shadowRoot.querySelector("input");if(!n)return;n.addEventListener("input",()=>{if(this.hasAttribute("error"))this.removeAttribute("error")})}_validateInput(){let t=this.shadowRoot.querySelector("input");if(!t)return;let n=this.getAttribute("validation"),o=t.value;if(this.hasAttribute("required")&&!o.trim()){this.setAttribute("error","This field is required");return}if(n&&o.trim()){let a=this._getValidationSchema(n);if(a){let e=zt.validateField(a,o);if(!e.success)this.setAttribute("error",e.error);else this.removeAttribute("error")}}}_getValidationSchema(t){let n={email:K.email(),password:K.password(),phone:K.phone(),url:K.url(),required:K.required()};if(t.includes(":")){let[o,r]=t.split(":"),a=parseInt(r);switch(o){case"minLength":return K.minLength(a);case"maxLength":return K.maxLength(a);case"pattern":return K.pattern(new RegExp(r),"Invalid format")}}return n[t]||null}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("type")||"text",n=this.getAttribute("name")||"",o=this.getAttribute("label")||"",r=this.getAttribute("placeholder")||"",a=this.getAttribute("error")||"",e=this.getAttribute("helper")||"",l=this.getAttribute("theme")||"tanzania",i=this.getAttribute("icon")||"",c=this.hasAttribute("required"),v=this.getAttribute("aria-label"),H=this.getAttribute("aria-describedby"),E={tanzania:{focus:"#1EB53A",error:"#DC3545"},maasai:{focus:"#FF0000",error:"#8B0000"},ndebele:{focus:"#4169E1",error:"#DC143C"}},M=E[l]||E.tanzania,X=[];if(a)X.push(`error-${this._uniqueId}`);else if(e)X.push(`helper-${this._uniqueId}`);if(H)X.push(...H.split(" "));let Bn=X.length>0?`aria-describedby="${X.join(" ")}"`:"";this.shadowRoot.innerHTML=`
|
|
629
1560
|
<style>
|
|
630
1561
|
:host {
|
|
631
1562
|
display: block;
|
|
@@ -645,7 +1576,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
645
1576
|
}
|
|
646
1577
|
|
|
647
1578
|
.required-star {
|
|
648
|
-
color: ${
|
|
1579
|
+
color: ${M.error};
|
|
649
1580
|
margin-left: 2px;
|
|
650
1581
|
}
|
|
651
1582
|
|
|
@@ -658,7 +1589,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
658
1589
|
input {
|
|
659
1590
|
width: 100%;
|
|
660
1591
|
padding: 10px 13px;
|
|
661
|
-
${
|
|
1592
|
+
${i?"padding-left: 40px;":""}
|
|
662
1593
|
font-size: 15px;
|
|
663
1594
|
border: 2px solid #ddd;
|
|
664
1595
|
border-radius: 5px;
|
|
@@ -669,12 +1600,12 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
669
1600
|
|
|
670
1601
|
input:focus {
|
|
671
1602
|
outline: none;
|
|
672
|
-
border-color: ${
|
|
673
|
-
box-shadow: 0 0 0 3px ${
|
|
1603
|
+
border-color: ${a?M.error:M.focus};
|
|
1604
|
+
box-shadow: 0 0 0 3px ${a?M.error+"20":M.focus+"20"};
|
|
674
1605
|
}
|
|
675
1606
|
|
|
676
1607
|
input.has-error {
|
|
677
|
-
border-color: ${
|
|
1608
|
+
border-color: ${M.error};
|
|
678
1609
|
}
|
|
679
1610
|
|
|
680
1611
|
.icon {
|
|
@@ -694,30 +1625,30 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
694
1625
|
.error-text {
|
|
695
1626
|
font-size: 12px;
|
|
696
1627
|
margin-top: 4px;
|
|
697
|
-
color: ${
|
|
1628
|
+
color: ${M.error};
|
|
698
1629
|
}
|
|
699
1630
|
</style>
|
|
700
1631
|
|
|
701
1632
|
<div class="input-wrapper">
|
|
702
|
-
${
|
|
1633
|
+
${o?`<label for="input-${this._uniqueId}">${o}${c?'<span class="required-star">*</span>':""}</label>`:""}
|
|
703
1634
|
<div class="input-container">
|
|
704
|
-
${
|
|
1635
|
+
${i?`<span class="icon">${i}</span>`:""}
|
|
705
1636
|
<input
|
|
706
1637
|
id="input-${this._uniqueId}"
|
|
707
1638
|
name="${n}"
|
|
708
1639
|
type="${t}"
|
|
709
|
-
placeholder="${
|
|
710
|
-
class="${
|
|
711
|
-
${
|
|
712
|
-
${
|
|
713
|
-
${
|
|
714
|
-
${
|
|
1640
|
+
placeholder="${r}"
|
|
1641
|
+
class="${a?"has-error":""}"
|
|
1642
|
+
${c?"required":""}
|
|
1643
|
+
${v?`aria-label="${v}"`:""}
|
|
1644
|
+
${a?'aria-invalid="true"':""}
|
|
1645
|
+
${Bn}
|
|
715
1646
|
/>
|
|
716
1647
|
</div>
|
|
717
|
-
${
|
|
718
|
-
${
|
|
1648
|
+
${a?`<div id="error-${this._uniqueId}" class="error-text" role="alert">${a}</div>`:""}
|
|
1649
|
+
${e&&!a?`<div id="helper-${this._uniqueId}" class="helper-text">${e}</div>`:""}
|
|
719
1650
|
</div>
|
|
720
|
-
`}};
|
|
1651
|
+
`}};f("af-input",mn);Vl=mn});var Pr={};w(Pr,{default:()=>Nl,AfriAlert:()=>pn});var pn,Nl;var Tr=s(()=>{u();pn=class pn extends b{static get observedAttributes(){return["type","title","dismissible"]}constructor(){super();this.render()}connectedCallback(){this.shadowRoot.querySelector(".close-btn")?.addEventListener("click",()=>{this.remove(),this.emit("af-dismiss")})}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("type")||"info",n=this.getAttribute("title")||"",o=this.hasAttribute("dismissible"),r={success:{bg:"#d4edda",border:"#1EB53A",text:"#155724",icon:"✓"},warning:{bg:"#fff3cd",border:"#FCD116",text:"#856404",icon:"⚠"},error:{bg:"#f8d7da",border:"#DC3545",text:"#721c24",icon:"✕"},info:{bg:"#d1ecf1",border:"#00A3DD",text:"#0c5460",icon:"ℹ"}},a=r[t]||r.info;this.shadowRoot.innerHTML=`
|
|
721
1652
|
<style>
|
|
722
1653
|
:host {
|
|
723
1654
|
display: block;
|
|
@@ -727,9 +1658,9 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
727
1658
|
.alert {
|
|
728
1659
|
padding: 13px 21px;
|
|
729
1660
|
border-radius: 5px;
|
|
730
|
-
border-left: 4px solid ${
|
|
731
|
-
background: ${
|
|
732
|
-
color: ${
|
|
1661
|
+
border-left: 4px solid ${a.border};
|
|
1662
|
+
background: ${a.bg};
|
|
1663
|
+
color: ${a.text};
|
|
733
1664
|
display: flex;
|
|
734
1665
|
align-items: flex-start;
|
|
735
1666
|
gap: 13px;
|
|
@@ -755,7 +1686,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
755
1686
|
display: flex;
|
|
756
1687
|
align-items: center;
|
|
757
1688
|
justify-content: center;
|
|
758
|
-
background: ${
|
|
1689
|
+
background: ${a.border};
|
|
759
1690
|
color: white;
|
|
760
1691
|
border-radius: 50%;
|
|
761
1692
|
}
|
|
@@ -774,7 +1705,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
774
1705
|
border: none;
|
|
775
1706
|
font-size: 18px;
|
|
776
1707
|
cursor: pointer;
|
|
777
|
-
color: ${
|
|
1708
|
+
color: ${a.text};
|
|
778
1709
|
opacity: 0.7;
|
|
779
1710
|
padding: 0;
|
|
780
1711
|
line-height: 1;
|
|
@@ -790,41 +1721,41 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
790
1721
|
</style>
|
|
791
1722
|
|
|
792
1723
|
<div class="alert" role="alert">
|
|
793
|
-
<span class="icon">${
|
|
1724
|
+
<span class="icon">${a.icon}</span>
|
|
794
1725
|
<div class="content">
|
|
795
1726
|
${n?`<div class="title">${n}</div>`:""}
|
|
796
1727
|
<slot></slot>
|
|
797
1728
|
</div>
|
|
798
|
-
${
|
|
1729
|
+
${o?'<button class="close-btn" aria-label="Dismiss">×</button>':""}
|
|
799
1730
|
</div>
|
|
800
|
-
`}};
|
|
801
|
-
align-items: ${
|
|
802
|
-
justify-items: ${
|
|
803
|
-
gap: ${
|
|
804
|
-
`;switch(t){case"sidebar":return
|
|
1731
|
+
`}};f("af-alert",pn);Nl=pn});var Zr={};w(Zr,{AfriGrid:()=>qo});function Kl(t,n){let{sidebarSide:o="left",sidebarWidth:r="280px",minWidth:a="280px",gap:e="24px",columns:l,rows:i,align:c="stretch",justify:v="stretch",dense:H=!1}=n,E=H?"dense":"",M=`
|
|
1732
|
+
align-items: ${c};
|
|
1733
|
+
justify-items: ${v};
|
|
1734
|
+
gap: ${e};
|
|
1735
|
+
`;switch(t){case"sidebar":return o==="right"?`display: grid; grid-template-columns: 1fr ${r}; ${M}`:`display: grid; grid-template-columns: ${r} 1fr; ${M}`;case"holy-grail":return`
|
|
805
1736
|
display: grid;
|
|
806
|
-
grid-template-columns: ${
|
|
1737
|
+
grid-template-columns: ${r} 1fr ${r};
|
|
807
1738
|
grid-template-rows: auto 1fr auto;
|
|
808
|
-
${
|
|
1739
|
+
${M}
|
|
809
1740
|
`;case"bento":return`
|
|
810
1741
|
display: grid;
|
|
811
1742
|
grid-template-columns: repeat(12, 1fr);
|
|
812
1743
|
grid-auto-rows: minmax(120px, auto);
|
|
813
|
-
grid-auto-flow: row ${
|
|
814
|
-
${
|
|
1744
|
+
grid-auto-flow: row ${E};
|
|
1745
|
+
${M}
|
|
815
1746
|
`;case"masonry":return`
|
|
816
1747
|
display: grid;
|
|
817
|
-
grid-template-columns: repeat(auto-fill, minmax(${
|
|
1748
|
+
grid-template-columns: repeat(auto-fill, minmax(${a}, 1fr));
|
|
818
1749
|
grid-template-rows: masonry;
|
|
819
|
-
grid-auto-flow: row ${
|
|
820
|
-
${
|
|
821
|
-
`;case"auto":default:{let
|
|
1750
|
+
grid-auto-flow: row ${E};
|
|
1751
|
+
${M}
|
|
1752
|
+
`;case"auto":default:{let X=l?`repeat(${l}, 1fr)`:`repeat(auto-fit, minmax(${a}, 1fr))`,Bn=i?`repeat(${i}, 1fr)`:"auto";return`
|
|
822
1753
|
display: grid;
|
|
823
|
-
grid-template-columns: ${
|
|
824
|
-
${
|
|
825
|
-
grid-auto-flow: row ${
|
|
826
|
-
${
|
|
827
|
-
`}}}var
|
|
1754
|
+
grid-template-columns: ${X};
|
|
1755
|
+
${i?`grid-template-rows: ${Bn};`:""}
|
|
1756
|
+
grid-auto-flow: row ${E};
|
|
1757
|
+
${M}
|
|
1758
|
+
`}}}var qo;var zr=s(()=>{u();qo=class qo extends b{static get observedAttributes(){return["min-width","gap","columns","rows","layout","align","justify","dense","sidebar-side","sidebar-width"]}attributeChangedCallback(){if(this.isConnected)this.render()}_getAttrs(){return{minWidth:this.getAttribute("min-width")||"280px",gap:this.getAttribute("gap")||"24px",columns:this.getAttribute("columns")||null,rows:this.getAttribute("rows")||null,layout:this.getAttribute("layout")||"auto",align:this.getAttribute("align")||"stretch",justify:this.getAttribute("justify")||"stretch",dense:this.hasAttribute("dense"),sidebarSide:this.getAttribute("sidebar-side")||"left",sidebarWidth:this.getAttribute("sidebar-width")||"280px"}}_buildResponsiveBreakpoints(t){if(t.layout!=="auto"&&t.layout!=="masonry")return"";return`
|
|
828
1759
|
@media (max-width: 768px) {
|
|
829
1760
|
.grid {
|
|
830
1761
|
grid-template-columns: repeat(auto-fit, minmax(min(${t.minWidth}, 100%), 1fr));
|
|
@@ -841,7 +1772,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
841
1772
|
grid-template-columns: 1fr;
|
|
842
1773
|
}
|
|
843
1774
|
}
|
|
844
|
-
`}render(){let t=this._getAttrs(),n=
|
|
1775
|
+
`}render(){let t=this._getAttrs(),n=Kl(t.layout,t),o=this._buildResponsiveBreakpoints(t)+this._buildSidebarResponsive(t);this.shadowRoot.innerHTML=g`
|
|
845
1776
|
<style>
|
|
846
1777
|
:host {
|
|
847
1778
|
display: block;
|
|
@@ -860,7 +1791,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
860
1791
|
min-width: 0; /* Prevent overflow in grid context */
|
|
861
1792
|
}
|
|
862
1793
|
|
|
863
|
-
${
|
|
1794
|
+
${o}
|
|
864
1795
|
</style>
|
|
865
1796
|
|
|
866
1797
|
<div
|
|
@@ -871,7 +1802,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
871
1802
|
>
|
|
872
1803
|
<slot></slot>
|
|
873
1804
|
</div>
|
|
874
|
-
`}connectedCallback(){this.render(),this._setupResizeObserver()}disconnectedCallback(){if(this._resizeObserver)this._resizeObserver.disconnect()}_setupResizeObserver(){if(typeof ResizeObserver>"u")return;let t=this.offsetWidth;this._resizeObserver=new ResizeObserver((n)=>{for(let
|
|
1805
|
+
`}connectedCallback(){this.render(),this._setupResizeObserver()}disconnectedCallback(){if(this._resizeObserver)this._resizeObserver.disconnect()}_setupResizeObserver(){if(typeof ResizeObserver>"u")return;let t=this.offsetWidth;this._resizeObserver=new ResizeObserver((n)=>{for(let o of n){let r=o.contentRect.width;if(Math.abs(r-t)>10)t=r,this.emit("af-grid-resize",{width:r,height:o.contentRect.height,layout:this.getAttribute("layout")||"auto"})}}),this._resizeObserver.observe(this)}setLayout(t){this.setAttribute("layout",t)}setColumns(t){this.setAttribute("columns",String(t))}setDense(t){if(t)this.setAttribute("dense","");else this.removeAttribute("dense")}};f("af-grid",qo)});var ta={};w(ta,{AfriSection:()=>Ho});var Ho;var na=s(()=>{u();Ho=class Ho extends b{render(){let t=this.getAttribute("variant")||"default",n=this.getAttribute("title");this.shadowRoot.innerHTML=g`
|
|
875
1806
|
<style>
|
|
876
1807
|
:host { display: block; width: 100%; }
|
|
877
1808
|
.section {
|
|
@@ -898,20 +1829,20 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
898
1829
|
}
|
|
899
1830
|
</style>
|
|
900
1831
|
<section class="section">
|
|
901
|
-
${n?
|
|
1832
|
+
${n?g`
|
|
902
1833
|
<div class="section-header">
|
|
903
1834
|
<h2>${n}</h2>
|
|
904
1835
|
</div>
|
|
905
1836
|
`:""}
|
|
906
1837
|
<slot></slot>
|
|
907
1838
|
</section>
|
|
908
|
-
`}connectedCallback(){this.render()}};
|
|
1839
|
+
`}connectedCallback(){this.render()}};f("af-section",Ho)});var oa={};w(oa,{default:()=>jl,AfriIcon:()=>sn});var sn,jl;var ra=s(()=>{u();sn=class sn extends b{static get observedAttributes(){return["name","size"]}connectedCallback(){this.render()}render(){let t=this.getAttribute("name")||"circle",n=this.getAttribute("size")||"24",r={check:'<path d="M20 6L9 17l-5-5" />',x:'<path d="M18 6L6 18M6 6l12 12" />',"arrow-right":'<path d="M5 12h14M12 5l7 7-7 7" />',menu:'<path d="M3 12h18M3 6h18M3 18h18" />',search:'<circle cx="11" cy="11" r="8" /><path d="M21 21l-4.35-4.35" />'}[t]||"";this.shadowRoot.innerHTML=`
|
|
909
1840
|
<style>
|
|
910
1841
|
:host { display: inline-flex; vertical-align: middle; }
|
|
911
1842
|
svg { width: ${n}px; height: ${n}px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
|
|
912
1843
|
</style>
|
|
913
|
-
<svg viewBox="0 0 24 24">${
|
|
914
|
-
`}};
|
|
1844
|
+
<svg viewBox="0 0 24 24">${r}</svg>
|
|
1845
|
+
`}};f("af-icon",sn);jl=sn});var aa={};w(aa,{default:()=>yl,AfriAccordion:()=>vn});var vn,yl;var ea=s(()=>{u();vn=class vn extends b{static get observedAttributes(){return["theme","multiple"]}constructor(){super();this._openItems=new Set,this._uniqueId=Math.random().toString(36).substr(2,9),this.render()}connectedCallback(){this._setupAccordion()}_setupAccordion(){this.shadowRoot.querySelectorAll(".accordion-header").forEach((n,o)=>{n.addEventListener("click",()=>{this._toggleItem(o)})})}_toggleItem(t){let n=this.hasAttribute("multiple");if(this._openItems.has(t))this._openItems.delete(t);else{if(!n)this._openItems.clear();this._openItems.add(t)}this.render(),this._setupAccordion(),this.emit("af-toggle",{index:t,open:this._openItems.has(t)})}attributeChangedCallback(){this.render(),this._setupAccordion()}render(){let t=this.getAttribute("theme")||"tanzania",n=this.querySelector('[slot="items"]'),o=n?Array.from(n.children):[],r={tanzania:{accent:"#1EB53A"},maasai:{accent:"#FF0000"},ndebele:{accent:"#4169E1"}},a=r[t]||r.tanzania;this.shadowRoot.innerHTML=`
|
|
915
1846
|
<style>
|
|
916
1847
|
:host {
|
|
917
1848
|
display: block;
|
|
@@ -954,7 +1885,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
954
1885
|
}
|
|
955
1886
|
|
|
956
1887
|
.accordion-header.active {
|
|
957
|
-
color: ${
|
|
1888
|
+
color: ${a.accent};
|
|
958
1889
|
}
|
|
959
1890
|
|
|
960
1891
|
.accordion-icon {
|
|
@@ -989,32 +1920,32 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
989
1920
|
</style>
|
|
990
1921
|
|
|
991
1922
|
<div class="accordion">
|
|
992
|
-
${
|
|
1923
|
+
${o.map((e,l)=>{let i=this._openItems.has(l),c=`accordion-header-${this._uniqueId}-${l}`,v=`accordion-panel-${this._uniqueId}-${l}`;return`
|
|
993
1924
|
<div class="accordion-item">
|
|
994
1925
|
<button
|
|
995
|
-
class="accordion-header ${
|
|
996
|
-
aria-expanded="${
|
|
997
|
-
aria-controls="${
|
|
998
|
-
id="${
|
|
1926
|
+
class="accordion-header ${i?"active":""}"
|
|
1927
|
+
aria-expanded="${i}"
|
|
1928
|
+
aria-controls="${v}"
|
|
1929
|
+
id="${c}"
|
|
999
1930
|
>
|
|
1000
|
-
<span>${
|
|
1931
|
+
<span>${e.getAttribute("title")||`Item ${l+1}`}</span>
|
|
1001
1932
|
<span class="accordion-icon">▼</span>
|
|
1002
1933
|
</button>
|
|
1003
1934
|
<div
|
|
1004
|
-
class="accordion-content ${
|
|
1005
|
-
id="${
|
|
1935
|
+
class="accordion-content ${i?"open":""}"
|
|
1936
|
+
id="${v}"
|
|
1006
1937
|
role="region"
|
|
1007
|
-
aria-labelledby="${
|
|
1938
|
+
aria-labelledby="${c}"
|
|
1008
1939
|
>
|
|
1009
1940
|
<div class="accordion-body">
|
|
1010
|
-
${
|
|
1941
|
+
${e.innerHTML}
|
|
1011
1942
|
</div>
|
|
1012
1943
|
</div>
|
|
1013
1944
|
</div>
|
|
1014
1945
|
`}).join("")}
|
|
1015
1946
|
</div>
|
|
1016
1947
|
<slot name="items"></slot>
|
|
1017
|
-
`}};
|
|
1948
|
+
`}};f("af-accordion",vn);yl=vn});var la={};w(la,{default:()=>Cl,AfriHero:()=>$n});var $n,Cl;var ia=s(()=>{u();en();Vt();$n=class $n extends b{static get observedAttributes(){return["title","subtitle","pattern","overlay"]}connectedCallback(){super.connectedCallback(),this.render(),this.loadStyles()}render(){let t=this.getAttribute("title")||"AfriCode",n=this.getAttribute("subtitle")||"",o=this.getAttribute("pattern")||"",r=this.getAttribute("variant")||"default";this.shadowRoot.innerHTML=`
|
|
1018
1949
|
<style>
|
|
1019
1950
|
:host {
|
|
1020
1951
|
display: flex;
|
|
@@ -1082,11 +2013,11 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1082
2013
|
z-index: 2;
|
|
1083
2014
|
}
|
|
1084
2015
|
|
|
1085
|
-
${
|
|
2016
|
+
${o?`
|
|
1086
2017
|
.pattern-bg {
|
|
1087
2018
|
position: absolute;
|
|
1088
2019
|
inset: 0;
|
|
1089
|
-
background-image: url('${
|
|
2020
|
+
background-image: url('${o}');
|
|
1090
2021
|
background-size: cover;
|
|
1091
2022
|
background-position: center;
|
|
1092
2023
|
opacity: 0.15;
|
|
@@ -1104,7 +2035,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1104
2035
|
|
|
1105
2036
|
<div class="aura"></div>
|
|
1106
2037
|
<div class="mesh"></div>
|
|
1107
|
-
${
|
|
2038
|
+
${o?'<div class="pattern-bg"></div>':""}
|
|
1108
2039
|
|
|
1109
2040
|
<div class="content">
|
|
1110
2041
|
<h1>${t}</h1>
|
|
@@ -1114,7 +2045,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1114
2045
|
</div>
|
|
1115
2046
|
<slot></slot>
|
|
1116
2047
|
</div>
|
|
1117
|
-
`}};
|
|
2048
|
+
`}};f("af-hero",$n);Cl=$n});var ba={};w(ba,{default:()=>Il,AfriTable:()=>un});var un,Il;var ca=s(()=>{u();un=class un extends b{static get observedAttributes(){return["theme","striped","hoverable"]}constructor(){super();this._columns=[],this._data=[],this._sortColumn=null,this._sortDirection="asc",this.render()}set columns(t){this._columns=t,this.render()}set data(t){this._data=t,this.render()}attributeChangedCallback(){this.render()}_handleSort(t){if(this._sortColumn===t)this._sortDirection=this._sortDirection==="asc"?"desc":"asc";else this._sortColumn=t,this._sortDirection="asc";this.emit("af-sort",{column:t,direction:this._sortDirection}),this.render()}_getSortedData(){if(!this._sortColumn)return this._data;return[...this._data].sort((t,n)=>{let o=t[this._sortColumn],r=n[this._sortColumn],a=this._sortDirection==="asc"?1:-1;if(typeof o==="number")return(o-r)*a;return String(o).localeCompare(String(r))*a})}render(){let t=this.getAttribute("theme")||"tanzania",n=this.hasAttribute("striped"),o=this.hasAttribute("hoverable"),r={tanzania:{header:"#1EB53A",text:"#FFFFFF",accent:"#FCD116"},maasai:{header:"#8B0000",text:"#FFFFFF",accent:"#FF0000"},ndebele:{header:"#4169E1",text:"#FFFFFF",accent:"#FFD700"}},a=r[t]||r.tanzania,e=this._getSortedData();this.shadowRoot.innerHTML=`
|
|
1118
2049
|
<style>
|
|
1119
2050
|
:host {
|
|
1120
2051
|
display: block;
|
|
@@ -1134,8 +2065,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1134
2065
|
}
|
|
1135
2066
|
|
|
1136
2067
|
th {
|
|
1137
|
-
background: ${
|
|
1138
|
-
color: ${
|
|
2068
|
+
background: ${a.header};
|
|
2069
|
+
color: ${a.text};
|
|
1139
2070
|
padding: 13px;
|
|
1140
2071
|
text-align: left;
|
|
1141
2072
|
font-weight: 600;
|
|
@@ -1164,9 +2095,9 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1164
2095
|
}
|
|
1165
2096
|
`:""}
|
|
1166
2097
|
|
|
1167
|
-
${
|
|
2098
|
+
${o?`
|
|
1168
2099
|
tbody tr:hover {
|
|
1169
|
-
background: ${
|
|
2100
|
+
background: ${a.accent}20;
|
|
1170
2101
|
}
|
|
1171
2102
|
`:""}
|
|
1172
2103
|
|
|
@@ -1181,20 +2112,20 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1181
2112
|
<table>
|
|
1182
2113
|
<thead>
|
|
1183
2114
|
<tr>
|
|
1184
|
-
${this._columns.map((
|
|
1185
|
-
<th data-column="${
|
|
1186
|
-
${
|
|
2115
|
+
${this._columns.map((l)=>`
|
|
2116
|
+
<th data-column="${l.key}">
|
|
2117
|
+
${l.label}
|
|
1187
2118
|
<span class="sort-icon">
|
|
1188
|
-
${this._sortColumn===
|
|
2119
|
+
${this._sortColumn===l.key?this._sortDirection==="asc"?"↑":"↓":"↕"}
|
|
1189
2120
|
</span>
|
|
1190
2121
|
</th>
|
|
1191
2122
|
`).join("")}
|
|
1192
2123
|
</tr>
|
|
1193
2124
|
</thead>
|
|
1194
2125
|
<tbody>
|
|
1195
|
-
${
|
|
2126
|
+
${e.length?e.map((l)=>`
|
|
1196
2127
|
<tr>
|
|
1197
|
-
${this._columns.map((
|
|
2128
|
+
${this._columns.map((i)=>`<td>${l[i.key]??""}</td>`).join("")}
|
|
1198
2129
|
</tr>
|
|
1199
2130
|
`).join(""):`
|
|
1200
2131
|
<tr>
|
|
@@ -1204,7 +2135,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1204
2135
|
</tbody>
|
|
1205
2136
|
</table>
|
|
1206
2137
|
</div>
|
|
1207
|
-
`,this.shadowRoot.querySelectorAll("th").forEach((
|
|
2138
|
+
`,this.shadowRoot.querySelectorAll("th").forEach((l)=>{l.addEventListener("click",()=>{this._handleSort(l.dataset.column)})})}};f("af-table",un);Il=un});var fa={};w(fa,{default:()=>Pl,AfriModal:()=>wn});var wn,Pl;var da=s(()=>{u();wn=class wn extends b{static get observedAttributes(){return["open","theme","size","aria-label","aria-labelledby"]}constructor(){super();this.render()}connectedCallback(){this._setupListeners()}_setupListeners(){this.shadowRoot.querySelector(".backdrop")?.addEventListener("click",(t)=>{if(t.target.classList.contains("backdrop"))this.close()}),this.shadowRoot.querySelector(".close-btn")?.addEventListener("click",()=>{this.close()}),document.addEventListener("keydown",(t)=>{if(t.key==="Escape"&&this.hasAttribute("open"))this.close()}),this.shadowRoot.addEventListener("keydown",(t)=>{if(t.key==="Tab"&&this.hasAttribute("open"))this._handleTabKey(t)})}_getFocusableElements(){let t=this.shadowRoot.querySelector(".modal"),n='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',o=Array.from(t?.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')||[]),r=Array.from(this.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'));return[...o,...r]}_focusFirstFocusableElement(){let t=this._getFocusableElements();if(t.length>0)t[0].focus();else this.shadowRoot.querySelector(".close-btn")?.focus()}_handleTabKey(t){let n=this._getFocusableElements();if(n.length===0){t.preventDefault();return}let o=n[0],r=n[n.length-1];if(t.shiftKey){if(document.activeElement===o)t.preventDefault(),r.focus()}else if(document.activeElement===r)t.preventDefault(),o.focus()}open(){this.setAttribute("open",""),document.body.style.overflow="hidden",this._previousFocus=document.activeElement,this._focusFirstFocusableElement(),this.emit("af-open")}close(){if(this.removeAttribute("open"),document.body.style.overflow="",this._previousFocus&&this._previousFocus.focus)this._previousFocus.focus();this.emit("af-close")}attributeChangedCallback(t,n,o){if(this.render(),t==="open")this._setupListeners()}render(){let t=this.hasAttribute("open"),n=this.getAttribute("theme")||"tanzania",o=this.getAttribute("size")||"md",r={tanzania:{accent:"#1EB53A"},maasai:{accent:"#FF0000"},ndebele:{accent:"#4169E1"}},a=r[n]||r.tanzania,e={sm:"400px",md:"560px",lg:"720px",full:"95vw"},l=this.getAttribute("aria-label"),i=this.getAttribute("aria-labelledby")||"modal-title";this.shadowRoot.innerHTML=`
|
|
1208
2139
|
<style>
|
|
1209
2140
|
:host {
|
|
1210
2141
|
font-family: 'Inter', system-ui, sans-serif;
|
|
@@ -1231,7 +2162,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1231
2162
|
background: white;
|
|
1232
2163
|
border-radius: 8px;
|
|
1233
2164
|
width: 100%;
|
|
1234
|
-
max-width: ${
|
|
2165
|
+
max-width: ${e[o]||e.md};
|
|
1235
2166
|
max-height: 90vh;
|
|
1236
2167
|
overflow: hidden;
|
|
1237
2168
|
display: flex;
|
|
@@ -1276,7 +2207,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1276
2207
|
}
|
|
1277
2208
|
|
|
1278
2209
|
.close-btn:hover {
|
|
1279
|
-
color: ${
|
|
2210
|
+
color: ${a.accent};
|
|
1280
2211
|
}
|
|
1281
2212
|
|
|
1282
2213
|
.modal-body {
|
|
@@ -1295,7 +2226,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1295
2226
|
</style>
|
|
1296
2227
|
|
|
1297
2228
|
<div class="backdrop">
|
|
1298
|
-
<div class="modal" role="dialog" aria-modal="true" ${
|
|
2229
|
+
<div class="modal" role="dialog" aria-modal="true" ${l?`aria-label="${l}"`:`aria-labelledby="${i}"`}>
|
|
1299
2230
|
<div class="modal-header">
|
|
1300
2231
|
<slot name="header" id="modal-title"></slot>
|
|
1301
2232
|
<button class="close-btn" aria-label="Close modal">×</button>
|
|
@@ -1308,7 +2239,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1308
2239
|
</div>
|
|
1309
2240
|
</div>
|
|
1310
2241
|
</div>
|
|
1311
|
-
`}};
|
|
2242
|
+
`}};f("af-modal",wn);Pl=wn});var ha={};w(ha,{default:()=>Tl,AfriTabs:()=>xn});var xn,Tl;var ga=s(()=>{u();xn=class xn extends b{static get observedAttributes(){return["theme"]}constructor(){super();this._activeTab=0,this.render()}connectedCallback(){this._setupTabs(),this.addEventListener("keydown",this._handleKeydown.bind(this))}_handleKeydown(t){let n=this.querySelector('[slot="tabs"]'),o=n?Array.from(n.children):[];if(o.length===0)return;switch(t.key){case"ArrowLeft":t.preventDefault(),this._activeTab=this._activeTab>0?this._activeTab-1:o.length-1,this.render(),this._setupTabs(),this._focusActiveTab();break;case"ArrowRight":t.preventDefault(),this._activeTab=this._activeTab<o.length-1?this._activeTab+1:0,this.render(),this._setupTabs(),this._focusActiveTab();break;case"Home":t.preventDefault(),this._activeTab=0,this.render(),this._setupTabs(),this._focusActiveTab();break;case"End":t.preventDefault(),this._activeTab=o.length-1,this.render(),this._setupTabs(),this._focusActiveTab();break}}_focusActiveTab(){let t=this.shadowRoot.querySelectorAll(".tab-button");if(t[this._activeTab])t[this._activeTab].focus()}_setupTabs(){this.shadowRoot.querySelectorAll(".tab-button").forEach((n,o)=>{n.addEventListener("click",()=>{this._activeTab=o,this.render(),this._setupTabs(),this.emit("af-tab-change",{index:o,tab:n.textContent})})})}attributeChangedCallback(){this.render(),this._setupTabs()}render(){let t=this.getAttribute("theme")||"tanzania",n=this.querySelector('[slot="tabs"]'),o=n?Array.from(n.children):[],r={tanzania:{active:"#1EB53A",text:"#FFFFFF"},maasai:{active:"#FF0000",text:"#FFFFFF"},ndebele:{active:"#4169E1",text:"#FFFFFF"}},a=r[t]||r.tanzania;this.shadowRoot.innerHTML=`
|
|
1312
2243
|
<style>
|
|
1313
2244
|
:host {
|
|
1314
2245
|
display: block;
|
|
@@ -1344,13 +2275,13 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1344
2275
|
}
|
|
1345
2276
|
|
|
1346
2277
|
.tab-button:hover {
|
|
1347
|
-
color: ${
|
|
2278
|
+
color: ${a.active};
|
|
1348
2279
|
background: rgba(0,0,0,0.03);
|
|
1349
2280
|
}
|
|
1350
2281
|
|
|
1351
2282
|
.tab-button.active {
|
|
1352
|
-
color: ${
|
|
1353
|
-
border-bottom-color: ${
|
|
2283
|
+
color: ${a.active};
|
|
2284
|
+
border-bottom-color: ${a.active};
|
|
1354
2285
|
background: white;
|
|
1355
2286
|
}
|
|
1356
2287
|
|
|
@@ -1380,30 +2311,30 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1380
2311
|
|
|
1381
2312
|
<div class="tabs-container">
|
|
1382
2313
|
<div class="tab-list" role="tablist">
|
|
1383
|
-
${
|
|
1384
|
-
<button class="tab-button ${
|
|
2314
|
+
${o.map((e,l)=>`
|
|
2315
|
+
<button class="tab-button ${l===this._activeTab?"active":""}"
|
|
1385
2316
|
role="tab"
|
|
1386
|
-
aria-selected="${
|
|
1387
|
-
aria-controls="panel-${
|
|
1388
|
-
tabindex="${
|
|
1389
|
-
id="tab-${
|
|
1390
|
-
${
|
|
2317
|
+
aria-selected="${l===this._activeTab}"
|
|
2318
|
+
aria-controls="panel-${l}"
|
|
2319
|
+
tabindex="${l===this._activeTab?"0":"-1"}"
|
|
2320
|
+
id="tab-${l}">
|
|
2321
|
+
${e.getAttribute("label")||`Tab ${l+1}`}
|
|
1391
2322
|
</button>
|
|
1392
2323
|
`).join("")}
|
|
1393
2324
|
</div>
|
|
1394
2325
|
<div class="tab-panels">
|
|
1395
|
-
${
|
|
1396
|
-
<div class="tab-panel ${
|
|
2326
|
+
${o.map((e,l)=>`
|
|
2327
|
+
<div class="tab-panel ${l===this._activeTab?"active":""}"
|
|
1397
2328
|
role="tabpanel"
|
|
1398
|
-
id="panel-${
|
|
1399
|
-
aria-labelledby="tab-${
|
|
1400
|
-
${
|
|
2329
|
+
id="panel-${l}"
|
|
2330
|
+
aria-labelledby="tab-${l}">
|
|
2331
|
+
${e.innerHTML}
|
|
1401
2332
|
</div>
|
|
1402
2333
|
`).join("")}
|
|
1403
2334
|
</div>
|
|
1404
2335
|
</div>
|
|
1405
2336
|
<slot name="tabs"></slot>
|
|
1406
|
-
`}};
|
|
2337
|
+
`}};f("af-tabs",xn);Tl=xn});var ma={};w(ma,{default:()=>Zl,AfriSidebar:()=>An});var An,Zl;var pa=s(()=>{u();en();Vt();An=class An extends b{static get observedAttributes(){return["position"]}constructor(){super();this._unsubscribe=null}connectedCallback(){super.connectedCallback(),this._unsubscribe=an(()=>{this.updateUI()}),this.render()}disconnectedCallback(){if(this._unsubscribe)this._unsubscribe()}updateUI(){let t=Nt.ui.sidebarCollapsed,n=this.shadowRoot.querySelector(".sidebar"),o=this.shadowRoot.querySelector(".sidebar-title"),r=this.shadowRoot.getElementById("toggle"),a=this.shadowRoot.querySelector(".sidebar-content");if(n)n.style.width=t?"60px":"260px";if(o)o.style.opacity=t?"0":"1";if(a)a.style.padding=t?"12px":"20px";if(r)r.innerHTML=t?"→":"← Collapse"}render(){let t=this.getAttribute("position")||"left",n=Nt.ui.sidebarCollapsed;this.shadowRoot.innerHTML=`
|
|
1407
2338
|
<style>
|
|
1408
2339
|
:host {
|
|
1409
2340
|
display: block;
|
|
@@ -1512,7 +2443,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1512
2443
|
</button>
|
|
1513
2444
|
</div>
|
|
1514
2445
|
</aside>
|
|
1515
|
-
`,this.shadowRoot.getElementById("toggle").addEventListener("click",()=>{actions.toggleSidebar()})}};
|
|
2446
|
+
`,this.shadowRoot.getElementById("toggle").addEventListener("click",()=>{actions.toggleSidebar()})}};f("af-sidebar",An);Zl=An});var sa={};w(sa,{default:()=>zl,AfriDropdown:()=>_n});var _n,zl;var va=s(()=>{u();_n=class _n extends b{static get observedAttributes(){return["label","open"]}constructor(){super();this._open=!1,this.render()}toggle(){if(this._open=!this._open,this._open)this.setAttribute("open","");else this.removeAttribute("open");this.render()}close(){this._open=!1,this.removeAttribute("open"),this.render()}connectedCallback(){document.addEventListener("click",(t)=>{if(!this.contains(t.target))this.close()}),this.addEventListener("keydown",this._handleKeydown.bind(this))}_handleKeydown(t){let n=this.shadowRoot.getElementById("trigger");switch(t.key){case"Enter":case" ":t.preventDefault(),this.toggle();break;case"Escape":if(this._open)t.preventDefault(),this.close(),n.focus();break;case"ArrowDown":if(!this._open)t.preventDefault(),this.toggle();break}}render(){let t=this.getAttribute("label")||"Menu",n=this.hasAttribute("open");this.shadowRoot.innerHTML=`
|
|
1516
2447
|
<style>
|
|
1517
2448
|
:host {
|
|
1518
2449
|
display: inline-block;
|
|
@@ -1594,7 +2525,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1594
2525
|
<div class="dropdown-menu" role="menu" ${n?"":'aria-hidden="true"'}>
|
|
1595
2526
|
<slot></slot>
|
|
1596
2527
|
</div>
|
|
1597
|
-
`,this.shadowRoot.getElementById("trigger").addEventListener("click",(
|
|
2528
|
+
`,this.shadowRoot.getElementById("trigger").addEventListener("click",(o)=>{o.stopPropagation(),this.toggle()})}};f("af-dropdown",_n);zl=_n});var $a={};w($a,{default:()=>ti,AfriSelect:()=>kn});var kn,ti;var ua=s(()=>{u();kn=class kn extends b{static get observedAttributes(){return["label","placeholder","theme","error","required","aria-label","aria-describedby"]}constructor(){super();this._uniqueId=Math.random().toString(36).substr(2,9),this._isOpen=!1,this._selectedIndex=-1,this._options=[],this.render()}get value(){return this._selectedIndex>=0?this._options[this._selectedIndex]?.value:""}connectedCallback(){this._options=Array.from(this.querySelectorAll("option")).map((t)=>({value:t.value,label:t.textContent})),this.render(),this._setupListeners()}_setupListeners(){let t=this.shadowRoot.querySelector(".select-trigger"),n=this.shadowRoot.querySelector(".select-dropdown");t?.addEventListener("click",()=>{this._toggleDropdown()}),t?.addEventListener("keydown",(o)=>{this._handleKeydown(o)}),this.shadowRoot.querySelectorAll(".select-option").forEach((o,r)=>{o.addEventListener("click",()=>{this._selectOption(r)})}),document.addEventListener("click",(o)=>{if(!this.contains(o.target)&&this._isOpen)this._closeDropdown()})}_toggleDropdown(){this._isOpen=!this._isOpen;let t=this.shadowRoot.querySelector(".select-trigger"),n=this.shadowRoot.querySelector(".select-dropdown");if(n?.classList.toggle("open",this._isOpen),t?.classList.toggle("open",this._isOpen),this._isOpen)t?.setAttribute("aria-expanded","true"),n?.setAttribute("aria-hidden","false");else t?.setAttribute("aria-expanded","false"),n?.setAttribute("aria-hidden","true")}_closeDropdown(){this._isOpen=!1;let t=this.shadowRoot.querySelector(".select-trigger"),n=this.shadowRoot.querySelector(".select-dropdown");n?.classList.remove("open"),t?.classList.remove("open"),t?.setAttribute("aria-expanded","false"),n?.setAttribute("aria-hidden","true")}_selectOption(t){this._selectedIndex=t,this._closeDropdown(),this.render(),this._setupListeners(),this.emit("af-change",{value:this.value,label:this._options[t].label})}_handleKeydown(t){let n=this.shadowRoot.querySelector(".select-trigger");switch(t.key){case"Enter":case" ":t.preventDefault(),this._toggleDropdown();break;case"Escape":if(this._isOpen)t.preventDefault(),this._closeDropdown(),n.focus();break;case"ArrowDown":if(!this._isOpen)t.preventDefault(),this._toggleDropdown();else t.preventDefault(),this._navigateOptions(1);break;case"ArrowUp":if(this._isOpen)t.preventDefault(),this._navigateOptions(-1);break}}_navigateOptions(t){let n=this.shadowRoot.querySelectorAll(".select-option");if(n.length===0)return;let o=this._selectedIndex+t;if(o<0)o=n.length-1;if(o>=n.length)o=0;this._selectedIndex=o,this.render(),this._setupListeners(),this.shadowRoot.querySelector(".select-option.selected")?.scrollIntoView({block:"nearest"})}attributeChangedCallback(){this.render(),this._setupListeners()}render(){let t=this.getAttribute("label")||"",n=this.getAttribute("placeholder")||"Select an option",o=this.getAttribute("theme")||"tanzania",r=this.getAttribute("error")||"",a=this.hasAttribute("required"),e=this.getAttribute("aria-label"),l=this.getAttribute("aria-describedby"),i={tanzania:{focus:"#1EB53A",error:"#DC3545"},maasai:{focus:"#FF0000",error:"#8B0000"},ndebele:{focus:"#4169E1",error:"#DC143C"}},c=i[o]||i.tanzania,v=[];if(r)v.push(`error-${this._uniqueId}`);if(l)v.push(...l.split(" "));let H=v.length>0?`aria-describedby="${v.join(" ")}"`:"",E=this._selectedIndex>=0?this._options[this._selectedIndex]?.label:n;this.shadowRoot.innerHTML=`
|
|
1598
2529
|
<style>
|
|
1599
2530
|
:host {
|
|
1600
2531
|
display: block;
|
|
@@ -1611,7 +2542,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1611
2542
|
}
|
|
1612
2543
|
|
|
1613
2544
|
.required-star {
|
|
1614
|
-
color: ${
|
|
2545
|
+
color: ${c.error};
|
|
1615
2546
|
margin-left: 2px;
|
|
1616
2547
|
}
|
|
1617
2548
|
|
|
@@ -1623,7 +2554,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1623
2554
|
width: 100%;
|
|
1624
2555
|
padding: 10px 40px 10px 13px;
|
|
1625
2556
|
font-size: 15px;
|
|
1626
|
-
border: 2px solid ${
|
|
2557
|
+
border: 2px solid ${r?c.error:"#ddd"};
|
|
1627
2558
|
border-radius: 5px;
|
|
1628
2559
|
background: white;
|
|
1629
2560
|
cursor: pointer;
|
|
@@ -1636,8 +2567,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1636
2567
|
.select-trigger:focus,
|
|
1637
2568
|
.select-trigger.open {
|
|
1638
2569
|
outline: none;
|
|
1639
|
-
border-color: ${
|
|
1640
|
-
box-shadow: 0 0 0 3px ${
|
|
2570
|
+
border-color: ${r?c.error:c.focus};
|
|
2571
|
+
box-shadow: 0 0 0 3px ${r?c.error+"20":c.focus+"20"};
|
|
1641
2572
|
}
|
|
1642
2573
|
|
|
1643
2574
|
.select-arrow {
|
|
@@ -1683,18 +2614,18 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1683
2614
|
}
|
|
1684
2615
|
|
|
1685
2616
|
.select-option:hover {
|
|
1686
|
-
background: ${
|
|
2617
|
+
background: ${c.focus}15;
|
|
1687
2618
|
}
|
|
1688
2619
|
|
|
1689
2620
|
.select-option.selected {
|
|
1690
|
-
background: ${
|
|
2621
|
+
background: ${c.focus};
|
|
1691
2622
|
color: white;
|
|
1692
2623
|
}
|
|
1693
2624
|
|
|
1694
2625
|
.error-text {
|
|
1695
2626
|
font-size: 12px;
|
|
1696
2627
|
margin-top: 4px;
|
|
1697
|
-
color: ${
|
|
2628
|
+
color: ${c.error};
|
|
1698
2629
|
}
|
|
1699
2630
|
|
|
1700
2631
|
::slotted(option) {
|
|
@@ -1702,35 +2633,35 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1702
2633
|
}
|
|
1703
2634
|
</style>
|
|
1704
2635
|
|
|
1705
|
-
${t?`<label for="select-${this._uniqueId}">${t}${
|
|
2636
|
+
${t?`<label for="select-${this._uniqueId}">${t}${a?'<span class="required-star">*</span>':""}</label>`:""}
|
|
1706
2637
|
<div class="select-container">
|
|
1707
2638
|
<button type="button"
|
|
1708
2639
|
id="select-${this._uniqueId}"
|
|
1709
2640
|
class="select-trigger ${this._isOpen?"open":""}"
|
|
1710
2641
|
aria-expanded="${this._isOpen}"
|
|
1711
2642
|
aria-haspopup="listbox"
|
|
1712
|
-
${
|
|
1713
|
-
${
|
|
1714
|
-
${
|
|
1715
|
-
${
|
|
2643
|
+
${e?`aria-label="${e}"`:""}
|
|
2644
|
+
${r?'aria-invalid="true"':""}
|
|
2645
|
+
${H}>
|
|
2646
|
+
${E}
|
|
1716
2647
|
</button>
|
|
1717
2648
|
<span class="select-arrow" aria-hidden="true">▼</span>
|
|
1718
2649
|
<div class="select-dropdown ${this._isOpen?"open":""}"
|
|
1719
2650
|
role="listbox"
|
|
1720
2651
|
aria-hidden="${!this._isOpen}">
|
|
1721
|
-
${this._options.map((
|
|
1722
|
-
<div class="select-option ${
|
|
1723
|
-
data-index="${
|
|
2652
|
+
${this._options.map((M,X)=>`
|
|
2653
|
+
<div class="select-option ${X===this._selectedIndex?"selected":""}"
|
|
2654
|
+
data-index="${X}"
|
|
1724
2655
|
role="option"
|
|
1725
|
-
aria-selected="${
|
|
1726
|
-
${
|
|
2656
|
+
aria-selected="${X===this._selectedIndex}">
|
|
2657
|
+
${M.label}
|
|
1727
2658
|
</div>
|
|
1728
2659
|
`).join("")}
|
|
1729
2660
|
</div>
|
|
1730
2661
|
</div>
|
|
1731
|
-
${
|
|
2662
|
+
${r?`<div id="error-${this._uniqueId}" class="error-text" role="alert">${r}</div>`:""}
|
|
1732
2663
|
<slot></slot>
|
|
1733
|
-
`}};
|
|
2664
|
+
`}};f("af-select",kn);ti=kn});var wa={};w(wa,{default:()=>ni,AfriForm:()=>qn});var qn,ni;var xa=s(()=>{u();ko();qn=class qn extends b{static get observedAttributes(){return["action","method","error","success","schema"]}constructor(){super();this.handleSubmit=this.handleSubmit.bind(this)}connectedCallback(){this.render(),this.shadowRoot.querySelector("form").addEventListener("submit",this.handleSubmit),this.loadStyles()}async handleSubmit(t){t.preventDefault();let n=t.target,o=this.querySelector('[type="submit"]')||this.shadowRoot.querySelector('button[type="submit"]'),r=this.getAttribute("schema"),a=r?this._getSchema(r):null,e=this.getAttribute("action"),l=this.getAttribute("method")||"GET",i=new FormData(n),c=Object.fromEntries(i.entries());if(Array.from(this.querySelectorAll("af-input")).forEach((H)=>{let E=H.getAttribute("name");if(E)c[E]=H.value}),a){let H=zt.validate(a,c);if(!H.success){this._showValidationErrors(H.errors),this.emit("af-validation-error",{errors:H.errors});return}}if(!e)return;if(o){var v=o.textContent;o.textContent="Wait...",o.disabled=!0}try{let H=await fetch(e,{method:l,headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(H.ok)this.emit("success",await H.json()),this.setAttribute("success","Form submitted successfully!"),this.removeAttribute("error");else{let E=await H.text();this.emit("error",E),this.setAttribute("error",E),this.removeAttribute("success")}}catch(H){this.emit("error",H.message),this.setAttribute("error",H.message),this.removeAttribute("success")}finally{if(o)o.textContent=v,o.disabled=!1}}_getSchema(t){return yr[t]||null}_showValidationErrors(t){this.shadowRoot.querySelectorAll(".field-error").forEach((n)=>n.remove()),Object.entries(t).forEach(([n,o])=>{let r=this.querySelector(`[name="${n}"]`);if(r)if(r.tagName==="AF-INPUT")r.setAttribute("error",o);else{let a=document.createElement("div");a.className="field-error",a.textContent=o,a.style.color="red",a.style.fontSize="12px",a.style.marginTop="4px",r.parentNode.insertBefore(a,r.nextSibling)}})}};f("af-form",qn);ni=qn});var Aa={};w(Aa,{default:()=>oi,AfriTooltip:()=>Hn});var Hn,oi;var _a=s(()=>{u();Hn=class Hn extends b{static get observedAttributes(){return["text","position"]}constructor(){super();this._tooltipId=`af-tooltip-${Math.random().toString(36).substr(2,9)}`,this.render()}connectedCallback(){this._setupTooltipListeners()}attributeChangedCallback(){this.render(),this._setupTooltipListeners()}_setupTooltipListeners(){let t=this.shadowRoot.querySelector(".tooltip-trigger"),n=this.shadowRoot.querySelector(".tooltip-content");if(!t||!n)return;t.addEventListener("focus",()=>{n.style.opacity="1",n.style.visibility="visible",n.setAttribute("aria-hidden","false")}),t.addEventListener("blur",()=>{n.style.opacity="0",n.style.visibility="hidden",n.setAttribute("aria-hidden","true")}),t.addEventListener("mouseenter",()=>{n.style.opacity="1",n.style.visibility="visible",n.setAttribute("aria-hidden","false")}),t.addEventListener("mouseleave",()=>{n.style.opacity="0",n.style.visibility="hidden",n.setAttribute("aria-hidden","true")})}render(){let t=this.getAttribute("text")||"Tooltip",n=this.getAttribute("position")||"top",o={top:`
|
|
1734
2665
|
bottom: 100%;
|
|
1735
2666
|
left: 50%;
|
|
1736
2667
|
transform: translateX(-50%) translateY(-8px);
|
|
@@ -1761,7 +2692,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1761
2692
|
|
|
1762
2693
|
.tooltip-content {
|
|
1763
2694
|
position: absolute;
|
|
1764
|
-
${
|
|
2695
|
+
${o[n]}
|
|
1765
2696
|
padding: 8px 12px;
|
|
1766
2697
|
background: #1e1e1e;
|
|
1767
2698
|
border: 1px solid #2a2a2a;
|
|
@@ -1819,7 +2750,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1819
2750
|
<slot></slot>
|
|
1820
2751
|
</span>
|
|
1821
2752
|
<div class="tooltip-content" id="${this._tooltipId}" role="tooltip" aria-hidden="true">${t}</div>
|
|
1822
|
-
`}};
|
|
2753
|
+
`}};f("af-tooltip",Hn);oi=Hn});var ka={};w(ka,{default:()=>ri,AfriToast:()=>Ln});var Ln,ri;var qa=s(()=>{u();Ln=class Ln extends b{static get observedAttributes(){return["type","message","duration"]}constructor(){super();this.render()}show(t,n="info",o=4000){if(this.setAttribute("message",t),this.setAttribute("type",n),this.render(),this.shadowRoot.querySelector(".toast").classList.add("show"),o>0)setTimeout(()=>this.hide(),o)}hide(){this.shadowRoot.querySelector(".toast").classList.remove("show"),setTimeout(()=>this.emit("af-toast-close"),300)}render(){let t=this.getAttribute("type")||"info",n=this.getAttribute("message")||"",o={success:"✓",error:"✗",warning:"⚠",info:"ℹ"},r={success:"#1EB53A",error:"#EF3340",warning:"#FCD116",info:"#00A3DD"};this.shadowRoot.innerHTML=`
|
|
1823
2754
|
<style>
|
|
1824
2755
|
:host {
|
|
1825
2756
|
position: fixed;
|
|
@@ -1836,7 +2767,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1836
2767
|
padding: 16px 20px;
|
|
1837
2768
|
background: #121212;
|
|
1838
2769
|
border: 1px solid #1e1e1e;
|
|
1839
|
-
border-left: 4px solid ${
|
|
2770
|
+
border-left: 4px solid ${r[t]};
|
|
1840
2771
|
border-radius: 8px;
|
|
1841
2772
|
box-shadow: 0 10px 40px rgba(0,0,0,0.5);
|
|
1842
2773
|
transform: translateX(120%);
|
|
@@ -1853,8 +2784,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1853
2784
|
width: 28px;
|
|
1854
2785
|
height: 28px;
|
|
1855
2786
|
border-radius: 50%;
|
|
1856
|
-
background: ${
|
|
1857
|
-
color: ${
|
|
2787
|
+
background: ${r[t]}20;
|
|
2788
|
+
color: ${r[t]};
|
|
1858
2789
|
display: flex;
|
|
1859
2790
|
align-items: center;
|
|
1860
2791
|
justify-content: center;
|
|
@@ -1887,13 +2818,13 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1887
2818
|
</style>
|
|
1888
2819
|
|
|
1889
2820
|
<div class="toast">
|
|
1890
|
-
<span class="toast-icon">${
|
|
2821
|
+
<span class="toast-icon">${o[t]}</span>
|
|
1891
2822
|
<div class="toast-content">
|
|
1892
2823
|
<div class="toast-message">${n}</div>
|
|
1893
2824
|
</div>
|
|
1894
2825
|
<button class="toast-close" id="close">×</button>
|
|
1895
2826
|
</div>
|
|
1896
|
-
`,this.shadowRoot.getElementById("close")?.addEventListener("click",()=>this.hide())}};
|
|
2827
|
+
`,this.shadowRoot.getElementById("close")?.addEventListener("click",()=>this.hide())}};f("af-toast",Ln);ri=Ln});var Ha={};w(Ha,{default:()=>ai,AfriBadge:()=>Mn});var Mn,ai;var La=s(()=>{u();Mn=class Mn extends b{static get observedAttributes(){return["variant","size","removable"]}constructor(){super();this.render()}connectedCallback(){this.shadowRoot.querySelector(".remove-btn")?.addEventListener("click",()=>{this.emit("af-remove"),this.remove()})}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"default",n=this.getAttribute("size")||"md",o=this.hasAttribute("removable"),r={default:{bg:"#e9ecef",text:"#495057"},success:{bg:"#d4edda",text:"#155724"},warning:{bg:"#fff3cd",text:"#856404"},error:{bg:"#f8d7da",text:"#721c24"},info:{bg:"#d1ecf1",text:"#0c5460"},tanzania:{bg:"#1EB53A",text:"#FFFFFF"},maasai:{bg:"#FF0000",text:"#FFFFFF"},ndebele:{bg:"#4169E1",text:"#FFFFFF"},gold:{bg:"#FCD116",text:"#000000"}},a=r[t]||r.default,e={sm:{padding:"2px 6px",fontSize:"11px"},md:{padding:"4px 10px",fontSize:"13px"},lg:{padding:"6px 14px",fontSize:"15px"}},l=e[n]||e.md;this.shadowRoot.innerHTML=`
|
|
1897
2828
|
<style>
|
|
1898
2829
|
:host {
|
|
1899
2830
|
display: inline-block;
|
|
@@ -1904,11 +2835,11 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1904
2835
|
display: inline-flex;
|
|
1905
2836
|
align-items: center;
|
|
1906
2837
|
gap: 5px;
|
|
1907
|
-
padding: ${
|
|
1908
|
-
font-size: ${
|
|
2838
|
+
padding: ${l.padding};
|
|
2839
|
+
font-size: ${l.fontSize};
|
|
1909
2840
|
font-weight: 600;
|
|
1910
|
-
background: ${
|
|
1911
|
-
color: ${
|
|
2841
|
+
background: ${a.bg};
|
|
2842
|
+
color: ${a.text};
|
|
1912
2843
|
border-radius: 100px;
|
|
1913
2844
|
white-space: nowrap;
|
|
1914
2845
|
}
|
|
@@ -1932,9 +2863,9 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1932
2863
|
|
|
1933
2864
|
<span class="badge">
|
|
1934
2865
|
<slot></slot>
|
|
1935
|
-
${
|
|
2866
|
+
${o?'<button class="remove-btn" aria-label="Remove">×</button>':""}
|
|
1936
2867
|
</span>
|
|
1937
|
-
`}};
|
|
2868
|
+
`}};f("af-badge",Mn);ai=Mn});var Ma={};w(Ma,{default:()=>ei,AfriAvatar:()=>En});var En,ei;var Ea=s(()=>{u();En=class En extends b{static get observedAttributes(){return["src","name","size","status","theme"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}_getInitials(t){if(!t)return"?";let n=t.trim().split(" ");if(n.length>=2)return(n[0][0]+n[n.length-1][0]).toUpperCase();return t.substring(0,2).toUpperCase()}render(){let t=this.getAttribute("src"),n=this.getAttribute("name")||"",o=this.getAttribute("size")||"md",r=this.getAttribute("status"),a=this.getAttribute("theme")||"tanzania",e={tanzania:"#1EB53A",maasai:"#FF0000",ndebele:"#4169E1",gold:"#FCD116"},l=e[a]||e.tanzania,i={sm:{size:"32px",font:"12px",status:"8px"},md:{size:"44px",font:"16px",status:"10px"},lg:{size:"64px",font:"22px",status:"14px"},xl:{size:"96px",font:"32px",status:"18px"}},c=i[o]||i.md,v={online:"#28a745",offline:"#6c757d",busy:"#dc3545",away:"#ffc107"};this.shadowRoot.innerHTML=`
|
|
1938
2869
|
<style>
|
|
1939
2870
|
:host {
|
|
1940
2871
|
display: inline-block;
|
|
@@ -1943,16 +2874,16 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1943
2874
|
|
|
1944
2875
|
.avatar {
|
|
1945
2876
|
position: relative;
|
|
1946
|
-
width: ${
|
|
1947
|
-
height: ${
|
|
2877
|
+
width: ${c.size};
|
|
2878
|
+
height: ${c.size};
|
|
1948
2879
|
border-radius: 50%;
|
|
1949
2880
|
display: flex;
|
|
1950
2881
|
align-items: center;
|
|
1951
2882
|
justify-content: center;
|
|
1952
|
-
background: ${
|
|
2883
|
+
background: ${l};
|
|
1953
2884
|
color: white;
|
|
1954
2885
|
font-weight: 600;
|
|
1955
|
-
font-size: ${
|
|
2886
|
+
font-size: ${c.font};
|
|
1956
2887
|
overflow: hidden;
|
|
1957
2888
|
}
|
|
1958
2889
|
|
|
@@ -1966,19 +2897,19 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
1966
2897
|
position: absolute;
|
|
1967
2898
|
bottom: 0;
|
|
1968
2899
|
right: 0;
|
|
1969
|
-
width: ${
|
|
1970
|
-
height: ${
|
|
2900
|
+
width: ${c.status};
|
|
2901
|
+
height: ${c.status};
|
|
1971
2902
|
border-radius: 50%;
|
|
1972
2903
|
border: 2px solid white;
|
|
1973
|
-
background: ${
|
|
2904
|
+
background: ${r?v[r]||v.offline:"transparent"};
|
|
1974
2905
|
}
|
|
1975
2906
|
</style>
|
|
1976
2907
|
|
|
1977
2908
|
<div class="avatar" title="${n}">
|
|
1978
2909
|
${t?`<img src="${t}" alt="${n}" />`:this._getInitials(n)}
|
|
1979
|
-
${
|
|
2910
|
+
${r?'<span class="status"></span>':""}
|
|
1980
2911
|
</div>
|
|
1981
|
-
`}};
|
|
2912
|
+
`}};f("af-avatar",En);ei=En});var Sa={};w(Sa,{default:()=>li,AfriProgress:()=>Sn});var Sn,li;var Ya=s(()=>{u();Sn=class Sn extends b{static get observedAttributes(){return["value","max","theme","size","label","animated"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=parseFloat(this.getAttribute("value"))||0,n=parseFloat(this.getAttribute("max"))||100,o=this.getAttribute("theme")||"tanzania",r=this.getAttribute("size")||"md",a=this.getAttribute("label"),e=this.hasAttribute("animated"),l=Math.min(100,Math.max(0,t/n*100)),i={tanzania:{bar:"#1EB53A",track:"#e9ecef"},maasai:{bar:"#FF0000",track:"#e9ecef"},ndebele:{bar:"#4169E1",track:"#e9ecef"},gold:{bar:"#FCD116",track:"#e9ecef"},gradient:{bar:"linear-gradient(90deg, #1EB53A 0%, #FCD116 50%, #00A3DD 100%)",track:"#e9ecef"}},c=i[o]||i.tanzania,v={sm:"6px",md:"10px",lg:"16px"},H=v[r]||v.md;this.shadowRoot.innerHTML=`
|
|
1982
2913
|
<style>
|
|
1983
2914
|
:host {
|
|
1984
2915
|
display: block;
|
|
@@ -2007,19 +2938,19 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2007
2938
|
|
|
2008
2939
|
.progress-track {
|
|
2009
2940
|
width: 100%;
|
|
2010
|
-
height: ${
|
|
2011
|
-
background: ${
|
|
2941
|
+
height: ${H};
|
|
2942
|
+
background: ${c.track};
|
|
2012
2943
|
border-radius: 100px;
|
|
2013
2944
|
overflow: hidden;
|
|
2014
2945
|
}
|
|
2015
2946
|
|
|
2016
2947
|
.progress-bar {
|
|
2017
2948
|
height: 100%;
|
|
2018
|
-
width: ${
|
|
2019
|
-
background: ${
|
|
2949
|
+
width: ${l}%;
|
|
2950
|
+
background: ${c.bar};
|
|
2020
2951
|
border-radius: 100px;
|
|
2021
2952
|
transition: width 500ms ease-out;
|
|
2022
|
-
${
|
|
2953
|
+
${e?`
|
|
2023
2954
|
background-size: 30px 30px;
|
|
2024
2955
|
background-image: linear-gradient(
|
|
2025
2956
|
135deg,
|
|
@@ -2044,8 +2975,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2044
2975
|
<div class="progress-container">
|
|
2045
2976
|
${`
|
|
2046
2977
|
<div class="progress-header">
|
|
2047
|
-
<span class="progress-label">${
|
|
2048
|
-
<span class="progress-value">${
|
|
2978
|
+
<span class="progress-label">${a||""}</span>
|
|
2979
|
+
<span class="progress-value">${l.toFixed(0)}%</span>
|
|
2049
2980
|
</div>
|
|
2050
2981
|
`}
|
|
2051
2982
|
<div class="progress-track">
|
|
@@ -2055,7 +2986,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2055
2986
|
aria-valuemax="${n}"></div>
|
|
2056
2987
|
</div>
|
|
2057
2988
|
</div>
|
|
2058
|
-
`}};
|
|
2989
|
+
`}};f("af-progress",Sn);li=Sn});var Ra={};w(Ra,{default:()=>ii,AfriLoader:()=>Yn});var Yn,ii;var Xa=s(()=>{u();Yn=class Yn extends b{static get observedAttributes(){return["size","color","type"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("size")||"40",n=this.getAttribute("color")||"currentColor",o=this.getAttribute("type")||"spiral",r={spiral:`M25,25 m0,-20 a20,20 0 1,1 0,40 a20,20 0 1,1 0,-40
|
|
2059
2990
|
M25,25 m0,-15 a15,15 0 1,0 0,30 a15,15 0 1,0 0,-30`,sun:"M25,5 L25,45 M5,25 L45,25 M11,11 L39,39 M39,11 L11,39",diamond:"M25,5 L45,25 L25,45 L5,25 Z"};this.shadowRoot.innerHTML=`
|
|
2060
2991
|
<style>
|
|
2061
2992
|
:host {
|
|
@@ -2083,10 +3014,10 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2083
3014
|
</style>
|
|
2084
3015
|
<div class="loader">
|
|
2085
3016
|
<svg viewBox="0 0 50 50">
|
|
2086
|
-
${
|
|
3017
|
+
${o==="spiral"?`<path d="${r.spiral}" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />`:o==="sun"?`<path d="${r.sun}" stroke="currentColor" stroke-width="4" stroke-linecap="round" />`:`<path d="${r.diamond}" fill="none" stroke="currentColor" stroke-width="4" />`}
|
|
2087
3018
|
</svg>
|
|
2088
3019
|
</div>
|
|
2089
|
-
`}};
|
|
3020
|
+
`}};f("af-loader",Yn);ii=Yn});var Qa={};w(Qa,{default:()=>bi,AfriSkeleton:()=>Rn});var Rn,bi;var Ja=s(()=>{u();Rn=class Rn extends b{static get observedAttributes(){return["variant","width","height","lines"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("variant")||"text",n=this.getAttribute("width")||"100%",o=this.getAttribute("height")||"auto",r=parseInt(this.getAttribute("lines"))||1,a={text:{height:"16px",borderRadius:"4px"},title:{height:"28px",borderRadius:"4px"},avatar:{width:"48px",height:"48px",borderRadius:"50%"},card:{height:"200px",borderRadius:"12px"},button:{height:"40px",borderRadius:"6px",width:"120px"}},e=a[t]||a.text;this.shadowRoot.innerHTML=`
|
|
2090
3021
|
<style>
|
|
2091
3022
|
:host {
|
|
2092
3023
|
display: block;
|
|
@@ -2101,7 +3032,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2101
3032
|
);
|
|
2102
3033
|
background-size: 200% 100%;
|
|
2103
3034
|
animation: shimmer 1.5s infinite;
|
|
2104
|
-
border-radius: ${
|
|
3035
|
+
border-radius: ${e.borderRadius};
|
|
2105
3036
|
}
|
|
2106
3037
|
|
|
2107
3038
|
@keyframes shimmer {
|
|
@@ -2110,8 +3041,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2110
3041
|
}
|
|
2111
3042
|
|
|
2112
3043
|
.skeleton-line {
|
|
2113
|
-
width: ${t==="text"?n:
|
|
2114
|
-
height: ${
|
|
3044
|
+
width: ${t==="text"?n:e.width||n};
|
|
3045
|
+
height: ${e.height};
|
|
2115
3046
|
margin-bottom: 8px;
|
|
2116
3047
|
}
|
|
2117
3048
|
|
|
@@ -2121,382 +3052,382 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2121
3052
|
}
|
|
2122
3053
|
</style>
|
|
2123
3054
|
|
|
2124
|
-
${t==="text"||t==="title"?Array(
|
|
2125
|
-
`}};
|
|
2126
|
-
L${n*0.625},0 L${n*0.75},${
|
|
2127
|
-
L${n*0.9},${
|
|
2128
|
-
L${n*0.7},${
|
|
2129
|
-
L${n*0.5},${
|
|
2130
|
-
L${n*0.3},${
|
|
2131
|
-
L${n*0.1},${
|
|
3055
|
+
${t==="text"||t==="title"?Array(r).fill(0).map(()=>'<div class="skeleton skeleton-line"></div>').join(""):`<div class="skeleton" style="width: ${e.width||n}; height: ${e.height||o};"></div>`}
|
|
3056
|
+
`}};f("af-skeleton",Rn);bi=Rn});var Ga={};w(Ga,{default:()=>ci,AfriDivider:()=>Xn});var Xn,ci;var Fa=s(()=>{u();Xn=class Xn extends b{static get observedAttributes(){return["pattern","height","color","flip"]}constructor(){super();this.render()}attributeChangedCallback(){this.render()}_getPatternPath(t,n,o){switch(t||"zigzag"){case"zigzag":return`M0,${o} L${n/4},0 L${n/2},${o} L${n*0.75},0 L${n},${o} V${o+10} H0 Z`;case"waves":return`M0,${o/2} Q${n/4},0 ${n/2},${o/2} T${n},${o/2} V${o} H0 Z`;case"triangles":return`M0,${o} L${n/8},0 L${n/4},${o} L${n*0.375},0 L${n/2},${o}
|
|
3057
|
+
L${n*0.625},0 L${n*0.75},${o} L${n*0.875},0 L${n},${o} V${o+10} H0 Z`;case"diamonds":return`M0,0 H${n} V${o/2}
|
|
3058
|
+
L${n*0.9},${o} L${n*0.8},${o/2}
|
|
3059
|
+
L${n*0.7},${o} L${n*0.6},${o/2}
|
|
3060
|
+
L${n*0.5},${o} L${n*0.4},${o/2}
|
|
3061
|
+
L${n*0.3},${o} L${n*0.2},${o/2}
|
|
3062
|
+
L${n*0.1},${o} L0,${o/2} Z`;default:return`M0,0 H${n} V${o} H0 Z`}}render(){let t=this.getAttribute("pattern")||"zigzag",n=this.getAttribute("height")||"50",o=this.getAttribute("color")||"currentColor",r=this.hasAttribute("flip");this.shadowRoot.innerHTML=`
|
|
2132
3063
|
<style>
|
|
2133
3064
|
:host {
|
|
2134
3065
|
display: block;
|
|
2135
3066
|
line-height: 0;
|
|
2136
3067
|
width: 100%;
|
|
2137
3068
|
overflow: hidden;
|
|
2138
|
-
color: ${
|
|
3069
|
+
color: ${o};
|
|
2139
3070
|
}
|
|
2140
3071
|
svg {
|
|
2141
3072
|
display: block;
|
|
2142
3073
|
width: 100%;
|
|
2143
3074
|
height: ${n}px;
|
|
2144
|
-
${
|
|
3075
|
+
${r?"transform: rotate(180deg);":""}
|
|
2145
3076
|
}
|
|
2146
3077
|
</style>
|
|
2147
3078
|
<svg viewBox="0 0 100 ${n}" preserveAspectRatio="none">
|
|
2148
3079
|
<path d="${this._getPatternPath(t,100,parseInt(n))}" fill="currentColor" />
|
|
2149
3080
|
</svg>
|
|
2150
|
-
`}};
|
|
2151
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2152
|
-
<rect width="${
|
|
2153
|
-
<rect x="0" y="0" width="${
|
|
2154
|
-
<rect x="0" y="${
|
|
2155
|
-
<rect x="0" y="${
|
|
2156
|
-
<rect x="0" y="0" width="${
|
|
2157
|
-
<rect x="${
|
|
2158
|
-
<rect x="${
|
|
3081
|
+
`}};f("af-divider",Xn);ci=Xn});function fi(t,n,o=50,r=50){let a=[];for(let e=0;e<t;e++){let l=2*Math.PI*e/t-Math.PI/2,i=o+n*Math.cos(l),c=r+n*Math.sin(l);a.push(`${i.toFixed(2)},${c.toFixed(2)}`)}return a.join(" ")}function Lo({primaryColor:t="#FF0000",secondaryColor:n="#000000",backgroundColor:o="#8B0000",stripeWidth:r=4,size:a=40}={}){let e=`
|
|
3082
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${a}" viewBox="0 0 ${a} ${a}">
|
|
3083
|
+
<rect width="${a}" height="${a}" fill="${o}"/>
|
|
3084
|
+
<rect x="0" y="0" width="${a}" height="${r}" fill="${t}" opacity="0.8"/>
|
|
3085
|
+
<rect x="0" y="${a/2-r/2}" width="${a}" height="${r}" fill="${n}" opacity="0.6"/>
|
|
3086
|
+
<rect x="0" y="${a-r}" width="${a}" height="${r}" fill="${t}" opacity="0.8"/>
|
|
3087
|
+
<rect x="0" y="0" width="${r}" height="${a}" fill="${t}" opacity="0.5"/>
|
|
3088
|
+
<rect x="${a/2-r/2}" y="0" width="${r}" height="${a}" fill="${n}" opacity="0.4"/>
|
|
3089
|
+
<rect x="${a-r}" y="0" width="${r}" height="${a}" fill="${t}" opacity="0.5"/>
|
|
2159
3090
|
</svg>
|
|
2160
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2161
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2162
|
-
<rect width="${
|
|
3091
|
+
`;return`data:image/svg+xml,${encodeURIComponent(e.trim())}`}function Mo({earthColor:t="#8B4513",ochreColor:n="#CD853F",charcoalColor:o="#2F2F2F",size:r=50}={}){let a=`
|
|
3092
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3093
|
+
<rect width="${r}" height="${r}" fill="${t}"/>
|
|
2163
3094
|
<!-- Cave art inspired figures -->
|
|
2164
|
-
<circle cx="${
|
|
2165
|
-
<line x1="${
|
|
2166
|
-
<line x1="${
|
|
3095
|
+
<circle cx="${r*0.3}" cy="${r*0.3}" r="${r*0.08}" fill="${n}"/>
|
|
3096
|
+
<line x1="${r*0.3}" y1="${r*0.38}" x2="${r*0.3}" y2="${r*0.6}" stroke="${o}" stroke-width="2"/>
|
|
3097
|
+
<line x1="${r*0.2}" y1="${r*0.45}" x2="${r*0.4}" y2="${r*0.45}" stroke="${o}" stroke-width="2"/>
|
|
2167
3098
|
<!-- Animal figure -->
|
|
2168
|
-
<ellipse cx="${
|
|
2169
|
-
<line x1="${
|
|
2170
|
-
<line x1="${
|
|
3099
|
+
<ellipse cx="${r*0.7}" cy="${r*0.5}" rx="${r*0.15}" ry="${r*0.08}" fill="${n}"/>
|
|
3100
|
+
<line x1="${r*0.6}" y1="${r*0.58}" x2="${r*0.6}" y2="${r*0.7}" stroke="${o}" stroke-width="2"/>
|
|
3101
|
+
<line x1="${r*0.8}" y1="${r*0.58}" x2="${r*0.8}" y2="${r*0.7}" stroke="${o}" stroke-width="2"/>
|
|
2171
3102
|
<!-- Dots like ancient markings -->
|
|
2172
|
-
<circle cx="${
|
|
2173
|
-
<circle cx="${
|
|
3103
|
+
<circle cx="${r*0.15}" cy="${r*0.8}" r="3" fill="${n}"/>
|
|
3104
|
+
<circle cx="${r*0.85}" cy="${r*0.2}" r="3" fill="${n}"/>
|
|
2174
3105
|
</svg>
|
|
2175
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2176
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2177
|
-
<rect width="${
|
|
3106
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function Eo({primaryColor:t="#1EB53A",accentColor:n="#FCD116",size:o=30}={}){let r=`
|
|
3107
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 ${o} ${o}">
|
|
3108
|
+
<rect width="${o}" height="${o}" fill="${t}"/>
|
|
2178
3109
|
<!-- Pindo (Border) Motifs: Cashew/Triangle -->
|
|
2179
|
-
<path d="M0,0 L${
|
|
2180
|
-
<path d="M${
|
|
2181
|
-
<circle cx="${
|
|
3110
|
+
<path d="M0,0 L${o/2},${o/2} L0,${o} Z" fill="${n}"/>
|
|
3111
|
+
<path d="M${o},0 L${o/2},${o/2} L${o},${o} Z" fill="${n}"/>
|
|
3112
|
+
<circle cx="${o/2}" cy="${o/2}" r="${o*0.15}" fill="none" stroke="${n}" stroke-width="2"/>
|
|
2182
3113
|
</svg>
|
|
2183
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2184
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2185
|
-
<rect width="${
|
|
3114
|
+
`;return`data:image/svg+xml,${encodeURIComponent(r.trim())}`}function di({primaryColor:t="#FF6B00",secondaryColor:n="#002B5C",backgroundColor:o="#FFFFFF",size:r=40}={}){let a=`
|
|
3115
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3116
|
+
<rect width="${r}" height="${r}" fill="${o}"/>
|
|
2186
3117
|
<!-- Border pattern -->
|
|
2187
|
-
<rect x="0" y="0" width="${
|
|
2188
|
-
<rect x="0" y="${
|
|
2189
|
-
<rect x="0" y="0" width="${
|
|
2190
|
-
<rect x="${
|
|
3118
|
+
<rect x="0" y="0" width="${r}" height="${r*0.1}" fill="${t}"/>
|
|
3119
|
+
<rect x="0" y="${r*0.9}" width="${r}" height="${r*0.1}" fill="${t}"/>
|
|
3120
|
+
<rect x="0" y="0" width="${r*0.1}" height="${r}" fill="${t}"/>
|
|
3121
|
+
<rect x="${r*0.9}" y="0" width="${r*0.1}" height="${r}" fill="${t}"/>
|
|
2191
3122
|
<!-- Center motif -->
|
|
2192
|
-
<circle cx="${
|
|
2193
|
-
<text x="${
|
|
3123
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.15}" fill="${n}"/>
|
|
3124
|
+
<text x="${r*0.5}" y="${r*0.55}" text-anchor="middle" fill="${t}" font-size="${r*0.08}">KANGA</text>
|
|
2194
3125
|
</svg>
|
|
2195
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2196
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2197
|
-
<rect width="${
|
|
3126
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function hi({primaryColor:t="#8B4513",secondaryColor:n="#DAA520",backgroundColor:o="#F5F5DC",size:r=30}={}){let a=`
|
|
3127
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3128
|
+
<rect width="${r}" height="${r}" fill="${o}"/>
|
|
2198
3129
|
<!-- Kuba geometric border -->
|
|
2199
|
-
<polygon points="0,0 ${
|
|
2200
|
-
<polygon points="${
|
|
2201
|
-
<polygon points="0,${
|
|
2202
|
-
<polygon points="${
|
|
3130
|
+
<polygon points="0,0 ${r*0.3},0 0,${r*0.3}" fill="${t}"/>
|
|
3131
|
+
<polygon points="${r},0 ${r*0.7},0 ${r},${r*0.3}" fill="${t}"/>
|
|
3132
|
+
<polygon points="0,${r} ${r*0.3},${r} 0,${r*0.7}" fill="${t}"/>
|
|
3133
|
+
<polygon points="${r},${r} ${r*0.7},${r} ${r},${r*0.7}" fill="${t}"/>
|
|
2203
3134
|
<!-- Center diamond -->
|
|
2204
|
-
<polygon points="${
|
|
3135
|
+
<polygon points="${r*0.5},${r*0.3} ${r*0.7},${r*0.5} ${r*0.5},${r*0.7} ${r*0.3},${r*0.5}" fill="${n}"/>
|
|
2205
3136
|
</svg>
|
|
2206
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2207
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2208
|
-
<rect width="${
|
|
3137
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function gi({primaryColor:t="#FF0000",secondaryColor:n="#000000",accentColor:o="#FFFFFF",size:r=40}={}){let a=`
|
|
3138
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3139
|
+
<rect width="${r}" height="${r}" fill="${o}"/>
|
|
2209
3140
|
<!-- Bead pattern -->
|
|
2210
|
-
<circle cx="${
|
|
2211
|
-
<circle cx="${
|
|
2212
|
-
<circle cx="${
|
|
2213
|
-
<circle cx="${
|
|
2214
|
-
<circle cx="${
|
|
2215
|
-
<circle cx="${
|
|
2216
|
-
<circle cx="${
|
|
2217
|
-
<circle cx="${
|
|
2218
|
-
<circle cx="${
|
|
3141
|
+
<circle cx="${r*0.2}" cy="${r*0.2}" r="${r*0.08}" fill="${t}"/>
|
|
3142
|
+
<circle cx="${r*0.5}" cy="${r*0.2}" r="${r*0.08}" fill="${n}"/>
|
|
3143
|
+
<circle cx="${r*0.8}" cy="${r*0.2}" r="${r*0.08}" fill="${t}"/>
|
|
3144
|
+
<circle cx="${r*0.2}" cy="${r*0.5}" r="${r*0.08}" fill="${n}"/>
|
|
3145
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.08}" fill="${t}"/>
|
|
3146
|
+
<circle cx="${r*0.8}" cy="${r*0.5}" r="${r*0.08}" fill="${n}"/>
|
|
3147
|
+
<circle cx="${r*0.2}" cy="${r*0.8}" r="${r*0.08}" fill="${t}"/>
|
|
3148
|
+
<circle cx="${r*0.5}" cy="${r*0.8}" r="${r*0.08}" fill="${n}"/>
|
|
3149
|
+
<circle cx="${r*0.8}" cy="${r*0.8}" r="${r*0.08}" fill="${t}"/>
|
|
2219
3150
|
</svg>
|
|
2220
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2221
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2222
|
-
<ellipse cx="${
|
|
3151
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function mi({primaryColor:t="#8B0000",secondaryColor:n="#FFD700",backgroundColor:o="#654321",size:r=50}={}){let a=`
|
|
3152
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3153
|
+
<ellipse cx="${r*0.5}" cy="${r*0.5}" rx="${r*0.4}" ry="${r*0.45}" fill="${o}"/>
|
|
2223
3154
|
<!-- Shield patterns -->
|
|
2224
|
-
<ellipse cx="${
|
|
2225
|
-
<rect x="${
|
|
3155
|
+
<ellipse cx="${r*0.5}" cy="${r*0.3}" rx="${r*0.2}" ry="${r*0.15}" fill="${t}"/>
|
|
3156
|
+
<rect x="${r*0.4}" y="${r*0.5}" width="${r*0.2}" height="${r*0.3}" fill="${n}"/>
|
|
2226
3157
|
<!-- Decorative lines -->
|
|
2227
|
-
<line x1="${
|
|
2228
|
-
<line x1="${
|
|
3158
|
+
<line x1="${r*0.3}" y1="${r*0.2}" x2="${r*0.7}" y2="${r*0.2}" stroke="${t}" stroke-width="3"/>
|
|
3159
|
+
<line x1="${r*0.3}" y1="${r*0.8}" x2="${r*0.7}" y2="${r*0.8}" stroke="${t}" stroke-width="3"/>
|
|
2229
3160
|
</svg>
|
|
2230
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2231
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2232
|
-
<rect width="${
|
|
3161
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function pi({primaryColor:t="#FF1493",secondaryColor:n="#00FF00",accentColor:o="#FFFF00",backgroundColor:r="#FFFFFF",size:a=50}={}){let e=`
|
|
3162
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${a}" viewBox="0 0 ${a} ${a}">
|
|
3163
|
+
<rect width="${a}" height="${a}" fill="${r}"/>
|
|
2233
3164
|
<!-- Ndebele geometric patterns -->
|
|
2234
|
-
<polygon points="${
|
|
2235
|
-
<polygon points="${
|
|
2236
|
-
<polygon points="${
|
|
2237
|
-
<polygon points="${
|
|
3165
|
+
<polygon points="${a*0.2},${a*0.2} ${a*0.4},${a*0.2} ${a*0.3},${a*0.4}" fill="${t}"/>
|
|
3166
|
+
<polygon points="${a*0.6},${a*0.2} ${a*0.8},${a*0.2} ${a*0.7},${a*0.4}" fill="${n}"/>
|
|
3167
|
+
<polygon points="${a*0.2},${a*0.6} ${a*0.4},${a*0.6} ${a*0.3},${a*0.8}" fill="${o}"/>
|
|
3168
|
+
<polygon points="${a*0.6},${a*0.6} ${a*0.8},${a*0.6} ${a*0.7},${a*0.8}" fill="${t}"/>
|
|
2238
3169
|
<!-- Center design -->
|
|
2239
|
-
<circle cx="${
|
|
2240
|
-
<rect x="${
|
|
3170
|
+
<circle cx="${a*0.5}" cy="${a*0.5}" r="${a*0.15}" fill="${n}"/>
|
|
3171
|
+
<rect x="${a*0.45}" y="${a*0.45}" width="${a*0.1}" height="${a*0.1}" fill="${o}"/>
|
|
2241
3172
|
</svg>
|
|
2242
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2243
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2244
|
-
<rect width="${
|
|
2245
|
-
<circle cx="${
|
|
2246
|
-
<circle cx="${
|
|
2247
|
-
<circle cx="${
|
|
2248
|
-
<circle cx="${
|
|
2249
|
-
<circle cx="${
|
|
2250
|
-
<circle cx="${
|
|
3173
|
+
`;return`data:image/svg+xml,${encodeURIComponent(e.trim())}`}function So({primaryColor:t="#00A3DD",secondaryColor:n="#FCD116",backgroundColor:o="#1EB53A",size:r=50}={}){let a=`
|
|
3174
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3175
|
+
<rect width="${r}" height="${r}" fill="${o}"/>
|
|
3176
|
+
<circle cx="${r*0.25}" cy="${r*0.25}" r="${r*0.2}" fill="${t}" opacity="0.8"/>
|
|
3177
|
+
<circle cx="${r*0.75}" cy="${r*0.75}" r="${r*0.2}" fill="${t}" opacity="0.8"/>
|
|
3178
|
+
<circle cx="${r*0.25}" cy="${r*0.25}" r="${r*0.1}" fill="${n}"/>
|
|
3179
|
+
<circle cx="${r*0.75}" cy="${r*0.75}" r="${r*0.1}" fill="${n}"/>
|
|
3180
|
+
<circle cx="${r*0.75}" cy="${r*0.25}" r="${r*0.08}" fill="${n}" opacity="0.6"/>
|
|
3181
|
+
<circle cx="${r*0.25}" cy="${r*0.75}" r="${r*0.08}" fill="${n}" opacity="0.6"/>
|
|
2251
3182
|
</svg>
|
|
2252
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
3183
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function Yo({colors:t=["#FFD700","#228B22","#DC143C","#000000"],size:n=60}={}){let[o,r,a,e]=t,l=n/6,i=`
|
|
2253
3184
|
<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${n}" viewBox="0 0 ${n} ${n}">
|
|
2254
|
-
<rect width="${n}" height="${n}" fill="${
|
|
3185
|
+
<rect width="${n}" height="${n}" fill="${e}"/>
|
|
2255
3186
|
<!-- Horizontal bands -->
|
|
2256
|
-
<rect x="0" y="0" width="${n}" height="${
|
|
2257
|
-
<rect x="0" y="${
|
|
2258
|
-
<rect x="0" y="${
|
|
2259
|
-
<rect x="0" y="${
|
|
2260
|
-
<rect x="0" y="${
|
|
2261
|
-
<rect x="0" y="${
|
|
3187
|
+
<rect x="0" y="0" width="${n}" height="${l}" fill="${o}"/>
|
|
3188
|
+
<rect x="0" y="${l}" width="${n}" height="${l}" fill="${r}"/>
|
|
3189
|
+
<rect x="0" y="${l*2}" width="${n}" height="${l}" fill="${a}"/>
|
|
3190
|
+
<rect x="0" y="${l*3}" width="${n}" height="${l}" fill="${o}"/>
|
|
3191
|
+
<rect x="0" y="${l*4}" width="${n}" height="${l}" fill="${r}"/>
|
|
3192
|
+
<rect x="0" y="${l*5}" width="${n}" height="${l}" fill="${a}"/>
|
|
2262
3193
|
<!-- Vertical accents -->
|
|
2263
|
-
<rect x="${n*0.2}" y="0" width="3" height="${n}" fill="${
|
|
2264
|
-
<rect x="${n*0.4}" y="0" width="3" height="${n}" fill="${
|
|
2265
|
-
<rect x="${n*0.6}" y="0" width="3" height="${n}" fill="${
|
|
2266
|
-
<rect x="${n*0.8}" y="0" width="3" height="${n}" fill="${
|
|
3194
|
+
<rect x="${n*0.2}" y="0" width="3" height="${n}" fill="${e}" opacity="0.5"/>
|
|
3195
|
+
<rect x="${n*0.4}" y="0" width="3" height="${n}" fill="${e}" opacity="0.5"/>
|
|
3196
|
+
<rect x="${n*0.6}" y="0" width="3" height="${n}" fill="${e}" opacity="0.5"/>
|
|
3197
|
+
<rect x="${n*0.8}" y="0" width="3" height="${n}" fill="${e}" opacity="0.5"/>
|
|
2267
3198
|
<!-- Kente squares -->
|
|
2268
|
-
<rect x="${n*0.1}" y="${n*0.1}" width="${n*0.15}" height="${n*0.15}" fill="${
|
|
2269
|
-
<rect x="${n*0.75}" y="${n*0.75}" width="${n*0.15}" height="${n*0.15}" fill="${
|
|
3199
|
+
<rect x="${n*0.1}" y="${n*0.1}" width="${n*0.15}" height="${n*0.15}" fill="${o}" stroke="${e}" stroke-width="1"/>
|
|
3200
|
+
<rect x="${n*0.75}" y="${n*0.75}" width="${n*0.15}" height="${n*0.15}" fill="${a}" stroke="${e}" stroke-width="1"/>
|
|
2270
3201
|
</svg>
|
|
2271
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2272
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2273
|
-
<rect width="${
|
|
3202
|
+
`;return`data:image/svg+xml,${encodeURIComponent(i.trim())}`}function Ro({symbolColor:t="#000000",backgroundColor:n="#CD853F",size:o=50}={}){let r=`
|
|
3203
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 ${o} ${o}">
|
|
3204
|
+
<rect width="${o}" height="${o}" fill="${n}"/>
|
|
2274
3205
|
<!-- Sankofa-inspired heart shape (go back and get it) -->
|
|
2275
|
-
<path d="M${
|
|
2276
|
-
C${
|
|
2277
|
-
L${
|
|
2278
|
-
L${
|
|
2279
|
-
C${
|
|
3206
|
+
<path d="M${o*0.5} ${o*0.2}
|
|
3207
|
+
C${o*0.3} ${o*0.1} ${o*0.15} ${o*0.3} ${o*0.25} ${o*0.5}
|
|
3208
|
+
L${o*0.5} ${o*0.8}
|
|
3209
|
+
L${o*0.75} ${o*0.5}
|
|
3210
|
+
C${o*0.85} ${o*0.3} ${o*0.7} ${o*0.1} ${o*0.5} ${o*0.2}"
|
|
2280
3211
|
fill="none" stroke="${t}" stroke-width="3"/>
|
|
2281
3212
|
<!-- Spiral detail -->
|
|
2282
|
-
<circle cx="${
|
|
2283
|
-
<circle cx="${
|
|
3213
|
+
<circle cx="${o*0.35}" cy="${o*0.45}" r="${o*0.08}" fill="none" stroke="${t}" stroke-width="2"/>
|
|
3214
|
+
<circle cx="${o*0.65}" cy="${o*0.45}" r="${o*0.08}" fill="none" stroke="${t}" stroke-width="2"/>
|
|
2284
3215
|
</svg>
|
|
2285
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
3216
|
+
`;return`data:image/svg+xml,${encodeURIComponent(r.trim())}`}function Xo({colors:t=["#4B0082","#FFD700","#FFFFFF"],size:n=50}={}){let[o,r,a]=t,e=n/10,l=`
|
|
2286
3217
|
<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${n}" viewBox="0 0 ${n} ${n}">
|
|
2287
|
-
<rect width="${n}" height="${n}" fill="${
|
|
3218
|
+
<rect width="${n}" height="${n}" fill="${o}"/>
|
|
2288
3219
|
<!-- Horizontal stripes -->
|
|
2289
|
-
<rect x="0" y="${
|
|
2290
|
-
<rect x="0" y="${
|
|
2291
|
-
<rect x="0" y="${
|
|
2292
|
-
<rect x="0" y="${
|
|
2293
|
-
<rect x="0" y="${
|
|
3220
|
+
<rect x="0" y="${e}" width="${n}" height="${e*0.5}" fill="${r}"/>
|
|
3221
|
+
<rect x="0" y="${e*3}" width="${n}" height="${e*0.5}" fill="${a}"/>
|
|
3222
|
+
<rect x="0" y="${e*5}" width="${n}" height="${e*0.5}" fill="${r}"/>
|
|
3223
|
+
<rect x="0" y="${e*7}" width="${n}" height="${e*0.5}" fill="${a}"/>
|
|
3224
|
+
<rect x="0" y="${e*9}" width="${n}" height="${e*0.5}" fill="${r}"/>
|
|
2294
3225
|
<!-- Vertical accent lines -->
|
|
2295
|
-
<rect x="${n*0.48}" y="0" width="${
|
|
3226
|
+
<rect x="${n*0.48}" y="0" width="${e*0.4}" height="${n}" fill="${r}" opacity="0.7"/>
|
|
2296
3227
|
<!-- Diamond motifs -->
|
|
2297
3228
|
<polygon points="${n*0.25},${n*0.3} ${n*0.35},${n*0.5} ${n*0.25},${n*0.7} ${n*0.15},${n*0.5}"
|
|
2298
|
-
fill="${
|
|
3229
|
+
fill="${r}" stroke="${a}" stroke-width="1"/>
|
|
2299
3230
|
<polygon points="${n*0.75},${n*0.3} ${n*0.85},${n*0.5} ${n*0.75},${n*0.7} ${n*0.65},${n*0.5}"
|
|
2300
|
-
fill="${
|
|
3231
|
+
fill="${r}" stroke="${a}" stroke-width="1"/>
|
|
2301
3232
|
</svg>
|
|
2302
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2303
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2304
|
-
<rect width="${
|
|
3233
|
+
`;return`data:image/svg+xml,${encodeURIComponent(l.trim())}`}function Qo({primaryColor:t="#FF6B00",secondaryColor:n="#00A86B",accentColor:o="#FFD700",backgroundColor:r="#FFFFFF",size:a=60}={}){let e=`
|
|
3234
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${a}" viewBox="0 0 ${a} ${a}">
|
|
3235
|
+
<rect width="${a}" height="${a}" fill="${r}"/>
|
|
2305
3236
|
<!-- Bold circular motifs -->
|
|
2306
|
-
<circle cx="${
|
|
2307
|
-
<circle cx="${
|
|
2308
|
-
<circle cx="${
|
|
3237
|
+
<circle cx="${a*0.3}" cy="${a*0.3}" r="${a*0.25}" fill="${t}"/>
|
|
3238
|
+
<circle cx="${a*0.3}" cy="${a*0.3}" r="${a*0.15}" fill="${n}"/>
|
|
3239
|
+
<circle cx="${a*0.3}" cy="${a*0.3}" r="${a*0.08}" fill="${o}"/>
|
|
2309
3240
|
|
|
2310
|
-
<circle cx="${
|
|
2311
|
-
<circle cx="${
|
|
3241
|
+
<circle cx="${a*0.8}" cy="${a*0.8}" r="${a*0.2}" fill="${n}"/>
|
|
3242
|
+
<circle cx="${a*0.8}" cy="${a*0.8}" r="${a*0.1}" fill="${t}"/>
|
|
2312
3243
|
|
|
2313
3244
|
<!-- Connecting lines -->
|
|
2314
|
-
<line x1="${
|
|
3245
|
+
<line x1="${a*0.45}" y1="${a*0.45}" x2="${a*0.65}" y2="${a*0.65}"
|
|
2315
3246
|
stroke="${t}" stroke-width="4"/>
|
|
2316
3247
|
|
|
2317
3248
|
<!-- Small dots -->
|
|
2318
|
-
<circle cx="${
|
|
2319
|
-
<circle cx="${
|
|
3249
|
+
<circle cx="${a*0.1}" cy="${a*0.8}" r="${a*0.05}" fill="${o}"/>
|
|
3250
|
+
<circle cx="${a*0.9}" cy="${a*0.2}" r="${a*0.05}" fill="${o}"/>
|
|
2320
3251
|
</svg>
|
|
2321
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2322
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2323
|
-
<rect width="${
|
|
3252
|
+
`;return`data:image/svg+xml,${encodeURIComponent(e.trim())}`}function Jo({primaryColor:t="#000000",secondaryColor:n="#FFFFFF",accentColor:o="#8B4513",size:r=60}={}){let a=`
|
|
3253
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3254
|
+
<rect width="${r}" height="${r}" fill="${t}"/>
|
|
2324
3255
|
<!-- Zigzags -->
|
|
2325
|
-
<polyline points="0,${
|
|
3256
|
+
<polyline points="0,${r*0.2} ${r*0.25},0 ${r*0.5},${r*0.2} ${r*0.75},0 ${r},${r*0.2}"
|
|
2326
3257
|
fill="none" stroke="${n}" stroke-width="3"/>
|
|
2327
|
-
<polyline points="0,${
|
|
3258
|
+
<polyline points="0,${r*0.8} ${r*0.25},${r} ${r*0.5},${r*0.8} ${r*0.75},${r} ${r},${r*0.8}"
|
|
2328
3259
|
fill="none" stroke="${n}" stroke-width="3"/>
|
|
2329
3260
|
<!-- Crosses -->
|
|
2330
|
-
<line x1="${
|
|
2331
|
-
<line x1="${
|
|
2332
|
-
<line x1="${
|
|
2333
|
-
<line x1="${
|
|
3261
|
+
<line x1="${r*0.25}" y1="${r*0.4}" x2="${r*0.25}" y2="${r*0.6}" stroke="${n}" stroke-width="2"/>
|
|
3262
|
+
<line x1="${r*0.15}" y1="${r*0.5}" x2="${r*0.35}" y2="${r*0.5}" stroke="${n}" stroke-width="2"/>
|
|
3263
|
+
<line x1="${r*0.75}" y1="${r*0.4}" x2="${r*0.75}" y2="${r*0.6}" stroke="${n}" stroke-width="2"/>
|
|
3264
|
+
<line x1="${r*0.65}" y1="${r*0.5}" x2="${r*0.85}" y2="${r*0.5}" stroke="${n}" stroke-width="2"/>
|
|
2334
3265
|
<!-- Dots -->
|
|
2335
|
-
<circle cx="${
|
|
3266
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.08}" fill="${o}"/>
|
|
2336
3267
|
</svg>
|
|
2337
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2338
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2339
|
-
<rect width="${
|
|
3268
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function Go({primaryColor:t="#D2B48C",secondaryColor:n="#3E2723",size:o=60}={}){let r=`
|
|
3269
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 ${o} ${o}">
|
|
3270
|
+
<rect width="${o}" height="${o}" fill="${t}"/>
|
|
2340
3271
|
<!-- Interlocking diamonds/rectangles -->
|
|
2341
|
-
<rect x="${
|
|
2342
|
-
<rect x="${
|
|
2343
|
-
<rect x="${
|
|
3272
|
+
<rect x="${o*0.1}" y="${o*0.1}" width="${o*0.3}" height="${o*0.3}" fill="${n}"/>
|
|
3273
|
+
<rect x="${o*0.6}" y="${o*0.6}" width="${o*0.3}" height="${o*0.3}" fill="${n}"/>
|
|
3274
|
+
<rect x="${o*0.6}" y="${o*0.1}" width="${o*0.3}" height="${o*0.3}"
|
|
2344
3275
|
fill="none" stroke="${n}" stroke-width="4"/>
|
|
2345
|
-
<rect x="${
|
|
3276
|
+
<rect x="${o*0.1}" y="${o*0.6}" width="${o*0.3}" height="${o*0.3}"
|
|
2346
3277
|
fill="none" stroke="${n}" stroke-width="4"/>
|
|
2347
3278
|
<!-- Center lines -->
|
|
2348
|
-
<line x1="${
|
|
2349
|
-
<line x1="${
|
|
3279
|
+
<line x1="${o*0.4}" y1="${o*0.5}" x2="${o*0.6}" y2="${o*0.5}" stroke="${n}" stroke-width="2"/>
|
|
3280
|
+
<line x1="${o*0.5}" y1="${o*0.4}" x2="${o*0.5}" y2="${o*0.6}" stroke="${n}" stroke-width="2"/>
|
|
2350
3281
|
</svg>
|
|
2351
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2352
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2353
|
-
<rect width="${
|
|
3282
|
+
`;return`data:image/svg+xml,${encodeURIComponent(r.trim())}`}function Fo({primaryColor:t="#000000",secondaryColor:n="#FFFFFF",accentColor:o="#B22222",size:r=60}={}){let a=`
|
|
3283
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3284
|
+
<rect width="${r}" height="${r}" fill="${n}"/>
|
|
2354
3285
|
<!-- Spiral/Diamond Motif -->
|
|
2355
|
-
<path d="M${
|
|
2356
|
-
L${
|
|
2357
|
-
L${
|
|
2358
|
-
L${
|
|
3286
|
+
<path d="M${r*0.5} ${r*0.1}
|
|
3287
|
+
L${r*0.9} ${r*0.5}
|
|
3288
|
+
L${r*0.5} ${r*0.9}
|
|
3289
|
+
L${r*0.1} ${r*0.5} Z"
|
|
2359
3290
|
fill="${t}"/>
|
|
2360
|
-
<path d="M${
|
|
2361
|
-
L${
|
|
2362
|
-
L${
|
|
2363
|
-
L${
|
|
3291
|
+
<path d="M${r*0.5} ${r*0.3}
|
|
3292
|
+
L${r*0.7} ${r*0.5}
|
|
3293
|
+
L${r*0.5} ${r*0.7}
|
|
3294
|
+
L${r*0.3} ${r*0.5} Z"
|
|
2364
3295
|
fill="${n}"/>
|
|
2365
|
-
<circle cx="${
|
|
3296
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.1}" fill="${o}"/>
|
|
2366
3297
|
</svg>
|
|
2367
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2368
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2369
|
-
<rect width="${
|
|
3298
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function Bo({colors:t=["#009E60","#FCDD09","#EF3340"],backgroundColor:n="#FFFFFF",size:o=40}={}){let[r,a,e]=t,l=`
|
|
3299
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 ${o} ${o}">
|
|
3300
|
+
<rect width="${o}" height="${o}" fill="${n}"/>
|
|
2370
3301
|
<!-- Diamond Chain -->
|
|
2371
|
-
<polygon points="${
|
|
2372
|
-
fill="${
|
|
2373
|
-
<polygon points="${
|
|
2374
|
-
fill="${
|
|
2375
|
-
<rect x="${
|
|
3302
|
+
<polygon points="${o*0.5},0 ${o},${o*0.5} ${o*0.5},${o} 0,${o*0.5}"
|
|
3303
|
+
fill="${r}" opacity="0.2"/>
|
|
3304
|
+
<polygon points="${o*0.5},${o*0.2} ${o*0.8},${o*0.5} ${o*0.5},${o*0.8} ${o*0.2},${o*0.5}"
|
|
3305
|
+
fill="${a}"/>
|
|
3306
|
+
<rect x="${o*0.4}" y="${o*0.4}" width="${o*0.2}" height="${o*0.2}" fill="${e}"/>
|
|
2376
3307
|
<!-- Side accents -->
|
|
2377
|
-
<line x1="0" y1="0" x2="0" y2="${
|
|
2378
|
-
<line x1="${
|
|
3308
|
+
<line x1="0" y1="0" x2="0" y2="${o}" stroke="${r}" stroke-width="4"/>
|
|
3309
|
+
<line x1="${o}" y1="0" x2="${o}" y2="${o}" stroke="${r}" stroke-width="4"/>
|
|
2379
3310
|
</svg>
|
|
2380
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
3311
|
+
`;return`data:image/svg+xml,${encodeURIComponent(l.trim())}`}function Do({colors:t=["#FFD700","#4169E1","#FF69B4","#228B22"],size:n=60,strokeWidth:o=2}={}){let[r,a,e,l]=t,i=`
|
|
2381
3312
|
<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${n}" viewBox="0 0 ${n} ${n}">
|
|
2382
3313
|
<rect width="${n}" height="${n}" fill="#FFFFFF"/>
|
|
2383
|
-
<rect x="${
|
|
2384
|
-
width="${n-
|
|
2385
|
-
fill="none" stroke="#000000" stroke-width="${
|
|
3314
|
+
<rect x="${o}" y="${o}"
|
|
3315
|
+
width="${n-o*2}" height="${n-o*2}"
|
|
3316
|
+
fill="none" stroke="#000000" stroke-width="${o}"/>
|
|
2386
3317
|
<rect x="${n*0.15}" y="${n*0.15}" width="${n*0.35}" height="${n*0.35}"
|
|
2387
|
-
fill="${
|
|
3318
|
+
fill="${r}" stroke="#000000" stroke-width="${o/2}"/>
|
|
2388
3319
|
<rect x="${n*0.5}" y="${n*0.15}" width="${n*0.35}" height="${n*0.35}"
|
|
2389
|
-
fill="${
|
|
3320
|
+
fill="${a}" stroke="#000000" stroke-width="${o/2}"/>
|
|
2390
3321
|
<rect x="${n*0.15}" y="${n*0.5}" width="${n*0.35}" height="${n*0.35}"
|
|
2391
|
-
fill="${
|
|
3322
|
+
fill="${e}" stroke="#000000" stroke-width="${o/2}"/>
|
|
2392
3323
|
<rect x="${n*0.5}" y="${n*0.5}" width="${n*0.35}" height="${n*0.35}"
|
|
2393
|
-
fill="${
|
|
3324
|
+
fill="${l}" stroke="#000000" stroke-width="${o/2}"/>
|
|
2394
3325
|
<polygon points="${n/2},${n*0.3} ${n*0.7},${n/2} ${n/2},${n*0.7} ${n*0.3},${n/2}"
|
|
2395
|
-
fill="#FFFFFF" stroke="#000000" stroke-width="${
|
|
3326
|
+
fill="#FFFFFF" stroke="#000000" stroke-width="${o}"/>
|
|
2396
3327
|
</svg>
|
|
2397
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
3328
|
+
`;return`data:image/svg+xml,${encodeURIComponent(i.trim())}`}function Oo({colors:t=["#FFFFFF","#000000","#FF0000","#00A86B","#FFD700"],size:n=50}={}){let[o,r,a,e,l]=t,i=n/10,c=`
|
|
2398
3329
|
<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${n}" viewBox="0 0 ${n} ${n}">
|
|
2399
|
-
<rect width="${n}" height="${n}" fill="${
|
|
3330
|
+
<rect width="${n}" height="${n}" fill="${r}"/>
|
|
2400
3331
|
<!-- Triangle pattern (isivivane - sacred cairn) -->
|
|
2401
3332
|
<polygon points="${n*0.5},${n*0.1} ${n*0.9},${n*0.9} ${n*0.1},${n*0.9}"
|
|
2402
|
-
fill="none" stroke="${
|
|
3333
|
+
fill="none" stroke="${o}" stroke-width="2"/>
|
|
2403
3334
|
<polygon points="${n*0.5},${n*0.25} ${n*0.75},${n*0.75} ${n*0.25},${n*0.75}"
|
|
2404
|
-
fill="${
|
|
3335
|
+
fill="${a}"/>
|
|
2405
3336
|
<!-- Beadwork dots -->
|
|
2406
|
-
<circle cx="${n*0.5}" cy="${n*0.35}" r="${
|
|
2407
|
-
<circle cx="${n*0.35}" cy="${n*0.6}" r="${
|
|
2408
|
-
<circle cx="${n*0.65}" cy="${n*0.6}" r="${
|
|
2409
|
-
<circle cx="${n*0.5}" cy="${n*0.8}" r="${
|
|
3337
|
+
<circle cx="${n*0.5}" cy="${n*0.35}" r="${i}" fill="${o}"/>
|
|
3338
|
+
<circle cx="${n*0.35}" cy="${n*0.6}" r="${i}" fill="${e}"/>
|
|
3339
|
+
<circle cx="${n*0.65}" cy="${n*0.6}" r="${i}" fill="${l}"/>
|
|
3340
|
+
<circle cx="${n*0.5}" cy="${n*0.8}" r="${i}" fill="${o}"/>
|
|
2410
3341
|
<!-- Border dots -->
|
|
2411
|
-
<circle cx="${n*0.1}" cy="${n*0.1}" r="${
|
|
2412
|
-
<circle cx="${n*0.9}" cy="${n*0.1}" r="${
|
|
3342
|
+
<circle cx="${n*0.1}" cy="${n*0.1}" r="${i*0.7}" fill="${a}"/>
|
|
3343
|
+
<circle cx="${n*0.9}" cy="${n*0.1}" r="${i*0.7}" fill="${e}"/>
|
|
2413
3344
|
</svg>
|
|
2414
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
3345
|
+
`;return`data:image/svg+xml,${encodeURIComponent(c.trim())}`}function Wo({colors:t=["#3E5EB9","#FECD00","#B10C0C","#FFFFFF"],size:n=50}={}){let[o,r,a,e]=t,l=`
|
|
2415
3346
|
<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${n}" viewBox="0 0 ${n} ${n}">
|
|
2416
|
-
<rect width="${n}" height="${n}" fill="${
|
|
3347
|
+
<rect width="${n}" height="${n}" fill="${o}"/>
|
|
2417
3348
|
<!-- Shield shape (central to Eswatini culture) -->
|
|
2418
3349
|
<ellipse cx="${n*0.5}" cy="${n*0.45}" rx="${n*0.35}" ry="${n*0.4}"
|
|
2419
|
-
fill="${
|
|
3350
|
+
fill="${r}" stroke="${a}" stroke-width="3"/>
|
|
2420
3351
|
<!-- Inner pattern -->
|
|
2421
3352
|
<ellipse cx="${n*0.5}" cy="${n*0.45}" rx="${n*0.2}" ry="${n*0.25}"
|
|
2422
|
-
fill="${
|
|
3353
|
+
fill="${a}"/>
|
|
2423
3354
|
<!-- Feather accents -->
|
|
2424
3355
|
<line x1="${n*0.5}" y1="${n*0.05}" x2="${n*0.5}" y2="${n*0.2}"
|
|
2425
|
-
stroke="${
|
|
3356
|
+
stroke="${e}" stroke-width="3"/>
|
|
2426
3357
|
<line x1="${n*0.4}" y1="${n*0.08}" x2="${n*0.45}" y2="${n*0.15}"
|
|
2427
|
-
stroke="${
|
|
3358
|
+
stroke="${e}" stroke-width="2"/>
|
|
2428
3359
|
<line x1="${n*0.6}" y1="${n*0.08}" x2="${n*0.55}" y2="${n*0.15}"
|
|
2429
|
-
stroke="${
|
|
3360
|
+
stroke="${e}" stroke-width="2"/>
|
|
2430
3361
|
<!-- Spear points -->
|
|
2431
|
-
<polygon points="${n*0.1},${n*0.3} ${n*0.05},${n*0.5} ${n*0.15},${n*0.5}" fill="${
|
|
2432
|
-
<polygon points="${n*0.9},${n*0.3} ${n*0.85},${n*0.5} ${n*0.95},${n*0.5}" fill="${
|
|
3362
|
+
<polygon points="${n*0.1},${n*0.3} ${n*0.05},${n*0.5} ${n*0.15},${n*0.5}" fill="${e}"/>
|
|
3363
|
+
<polygon points="${n*0.9},${n*0.3} ${n*0.85},${n*0.5} ${n*0.95},${n*0.5}" fill="${e}"/>
|
|
2433
3364
|
</svg>
|
|
2434
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2435
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2436
|
-
<rect width="${
|
|
3365
|
+
`;return`data:image/svg+xml,${encodeURIComponent(l.trim())}`}function Uo({primaryColor:t="#FFFFFF",accentColor:n="#00A86B",backgroundColor:o="#1a1a2e",size:r=50}={}){let a=`
|
|
3366
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3367
|
+
<rect width="${r}" height="${r}" fill="${o}"/>
|
|
2437
3368
|
<!-- Horizontal bands -->
|
|
2438
|
-
<rect x="0" y="${
|
|
2439
|
-
<rect x="0" y="${
|
|
3369
|
+
<rect x="0" y="${r*0.2}" width="${r}" height="${r*0.1}" fill="${t}"/>
|
|
3370
|
+
<rect x="0" y="${r*0.7}" width="${r}" height="${r*0.1}" fill="${t}"/>
|
|
2440
3371
|
<!-- Vertical bands -->
|
|
2441
|
-
<rect x="${
|
|
2442
|
-
<rect x="${
|
|
3372
|
+
<rect x="${r*0.2}" y="0" width="${r*0.1}" height="${r}" fill="${n}"/>
|
|
3373
|
+
<rect x="${r*0.7}" y="0" width="${r*0.1}" height="${r}" fill="${n}"/>
|
|
2443
3374
|
<!-- Central diamond -->
|
|
2444
|
-
<polygon points="${
|
|
3375
|
+
<polygon points="${r*0.5},${r*0.35} ${r*0.65},${r*0.5} ${r*0.5},${r*0.65} ${r*0.35},${r*0.5}"
|
|
2445
3376
|
fill="${n}" stroke="${t}" stroke-width="2"/>
|
|
2446
3377
|
<!-- Corner triangles -->
|
|
2447
|
-
<polygon points="0,0 ${
|
|
2448
|
-
<polygon points="${
|
|
2449
|
-
<polygon points="0,${
|
|
2450
|
-
<polygon points="${
|
|
3378
|
+
<polygon points="0,0 ${r*0.15},0 0,${r*0.15}" fill="${n}"/>
|
|
3379
|
+
<polygon points="${r},0 ${r*0.85},0 ${r},${r*0.15}" fill="${n}"/>
|
|
3380
|
+
<polygon points="0,${r} ${r*0.15},${r} 0,${r*0.85}" fill="${n}"/>
|
|
3381
|
+
<polygon points="${r},${r} ${r*0.85},${r} ${r},${r*0.85}" fill="${n}"/>
|
|
2451
3382
|
</svg>
|
|
2452
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2453
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2454
|
-
<rect width="${
|
|
3383
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function si(t,n){t.style.backgroundImage=`url("${n}")`,t.style.backgroundRepeat="repeat"}function Vo({primaryColor:t="#8B0000",secondaryColor:n="#000000",accentColor:o="#FFD700",backgroundColor:r="#F5F5DC",size:a=60}={}){let e=`
|
|
3384
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${a}" viewBox="0 0 ${a} ${a}">
|
|
3385
|
+
<rect width="${a}" height="${a}" fill="${r}"/>
|
|
2455
3386
|
<!-- Lozenge (Diamond) - universal protective symbol -->
|
|
2456
|
-
<polygon points="${
|
|
3387
|
+
<polygon points="${a*0.5},${a*0.1} ${a*0.9},${a*0.5} ${a*0.5},${a*0.9} ${a*0.1},${a*0.5}"
|
|
2457
3388
|
fill="${t}" stroke="${n}" stroke-width="2"/>
|
|
2458
3389
|
<!-- Inner geometric details -->
|
|
2459
|
-
<line x1="${
|
|
2460
|
-
<line x1="${
|
|
3390
|
+
<line x1="${a*0.5}" y1="${a*0.1}" x2="${a*0.5}" y2="${a*0.9}" stroke="${o}" stroke-width="2"/>
|
|
3391
|
+
<line x1="${a*0.1}" y1="${a*0.5}" x2="${a*0.9}" y2="${a*0.5}" stroke="${o}" stroke-width="2"/>
|
|
2461
3392
|
<!-- X symbols (Fibula/Cross) -->
|
|
2462
|
-
<line x1="${
|
|
2463
|
-
<line x1="${
|
|
3393
|
+
<line x1="${a*0.4}" y1="${a*0.4}" x2="${a*0.6}" y2="${a*0.6}" stroke="${n}" stroke-width="2"/>
|
|
3394
|
+
<line x1="${a*0.6}" y1="${a*0.4}" x2="${a*0.4}" y2="${a*0.6}" stroke="${n}" stroke-width="2"/>
|
|
2464
3395
|
</svg>
|
|
2465
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2466
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2467
|
-
<rect width="${
|
|
3396
|
+
`;return`data:image/svg+xml,${encodeURIComponent(e.trim())}`}function No({primaryColor:t="#4B0082",secondaryColor:n="#8A2BE2",accentColor:o="#FFFFFF",size:r=50}={}){let a=`
|
|
3397
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3398
|
+
<rect width="${r}" height="${r}" fill="${t}"/>
|
|
2468
3399
|
<!-- Resist circles (Oniko) -->
|
|
2469
|
-
<circle cx="${
|
|
2470
|
-
<circle cx="${
|
|
2471
|
-
<circle cx="${
|
|
3400
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.35}" fill="none" stroke="${n}" stroke-width="3"/>
|
|
3401
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.25}" fill="none" stroke="${o}" stroke-width="2" stroke-dasharray="4 2"/>
|
|
3402
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.1}" fill="${o}" opacity="0.8"/>
|
|
2472
3403
|
<!-- Corner ripples -->
|
|
2473
|
-
<path d="M0,0 Q${
|
|
2474
|
-
<path d="M${
|
|
3404
|
+
<path d="M0,0 Q${r*0.2},0 ${r*0.2},${r*0.2} Q0,${r*0.2} 0,0" fill="${n}"/>
|
|
3405
|
+
<path d="M${r},${r} Q${r*0.8},${r} ${r*0.8},${r*0.8} Q${r},${r*0.8} ${r},${r}" fill="${n}"/>
|
|
2475
3406
|
</svg>
|
|
2476
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2477
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2478
|
-
<rect width="${
|
|
3407
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function vi({primaryColor:t="#2D3D6B",secondaryColor:n="#6B8CC7",accentColor:o="#FFFFFF",size:r=60}={}){let a=`
|
|
3408
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3409
|
+
<rect width="${r}" height="${r}" fill="${t}"/>
|
|
2479
3410
|
<!-- Southern Cross / Tuareg Star -->
|
|
2480
|
-
<path d="M${
|
|
2481
|
-
fill="none" stroke="${
|
|
2482
|
-
<circle cx="${
|
|
3411
|
+
<path d="M${r*0.5} 0 L${r*0.6} ${r*0.4} L${r} ${r*0.5} L${r*0.6} ${r*0.6} L${r*0.5} ${r} L${r*0.4} ${r*0.6} L0 ${r*0.5} L${r*0.4} ${r*0.4} Z"
|
|
3412
|
+
fill="none" stroke="${o}" stroke-width="2"/>
|
|
3413
|
+
<circle cx="${r*0.5}" cy="${r*0.5}" r="${r*0.1}" fill="${n}"/>
|
|
2483
3414
|
</svg>
|
|
2484
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2485
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2486
|
-
<rect width="${
|
|
2487
|
-
<path d="M${
|
|
3415
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function $i({inkColor:t="#3A2E2C",parchmentColor:n="#F4E4BC",size:o=50}={}){let r=`
|
|
3416
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 ${o} ${o}">
|
|
3417
|
+
<rect width="${o}" height="${o}" fill="${n}"/>
|
|
3418
|
+
<path d="M${o*0.2} ${o*0.2} L${o*0.4} ${o*0.2} M${o*0.3} ${o*0.2} L${o*0.3} ${o*0.5} Q${o*0.4} ${o*0.6} ${o*0.2} ${o*0.7}"
|
|
2488
3419
|
fill="none" stroke="${t}" stroke-width="3" stroke-linecap="round"/>
|
|
2489
|
-
<path d="M${
|
|
3420
|
+
<path d="M${o*0.6} ${o*0.3} C${o*0.8} ${o*0.3} ${o*0.8} ${o*0.6} ${o*0.6} ${o*0.6} L${o*0.8} ${o*0.8}"
|
|
2490
3421
|
fill="none" stroke="${t}" stroke-width="3" stroke-linecap="round"/>
|
|
2491
3422
|
</svg>
|
|
2492
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2493
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
2494
|
-
<rect width="${
|
|
2495
|
-
<path d="M${
|
|
2496
|
-
fill="${t}" stroke="${
|
|
3423
|
+
`;return`data:image/svg+xml,${encodeURIComponent(r.trim())}`}function ui({clayColor:t="#4E342E",earthColor:n="#3E2723",accentColor:o="#BCAAA4",size:r=60}={}){let a=`
|
|
3424
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${r}" height="${r}" viewBox="0 0 ${r} ${r}">
|
|
3425
|
+
<rect width="${r}" height="${r}" fill="${n}"/>
|
|
3426
|
+
<path d="M${r*0.2} ${r*0.5} Q${r*0.3} ${r*0.2} ${r*0.5} ${r*0.3} T${r*0.8} ${r*0.5} Q${r*0.7} ${r*0.8} ${r*0.5} ${r*0.7} T${r*0.2} ${r*0.5}"
|
|
3427
|
+
fill="${t}" stroke="${o}" stroke-width="2"/>
|
|
2497
3428
|
</svg>
|
|
2498
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
2499
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
3429
|
+
`;return`data:image/svg+xml,${encodeURIComponent(a.trim())}`}function Ba({primaryColor:t="#334155",secondaryColor:n="#1e293b",size:o=100}={}){let r=`
|
|
3430
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${o}" viewBox="0 0 100 100">
|
|
2500
3431
|
<rect width="100" height="100" fill="${n}"/>
|
|
2501
3432
|
<path d="M10 10 H90 V90 H10 Z" fill="none" stroke="${t}" stroke-width="0.5" opacity="0.3"/>
|
|
2502
3433
|
<path d="M20 20 V50 H50 V80 H80" fill="none" stroke="${t}" stroke-width="1"/>
|
|
@@ -2504,7 +3435,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2504
3435
|
<circle cx="80" cy="80" r="2" fill="${t}"/>
|
|
2505
3436
|
<circle cx="50" cy="50" r="1.5" fill="${t}"/>
|
|
2506
3437
|
</svg>
|
|
2507
|
-
`;return`data:image/svg+xml,${encodeURIComponent(
|
|
3438
|
+
`;return`data:image/svg+xml,${encodeURIComponent(r.trim())}`}var Ko;var Qn=s(()=>{Ko={generatePolygon:fi,generateShuka:Lo,generateHadzabe:Mo,generateKanga:di,generateKangaBorder:Eo,generateKitenge:So,generateMasaiShield:mi,generateTibeb:Bo,generateImigongo:Fo,generateKente:Yo,generateAdinkra:Ro,generateAsoOke:Xo,generateAnkara:Qo,generateBogolan:Jo,generateAdire:No,generateKuba:Go,generateKubaBorder:hi,generateBerber:Vo,generateNdebele:Do,generateNdebelePaint:pi,generateZulu:Oo,generateZuluBeads:gi,generateSwazi:Wo,generateXhosa:Uo,applyPattern:si,generateTuareg:vi,generateGeez:$i,generateBoli:ui,generateCircuit:Ba,circuit:Ba}});var Da={};w(Da,{default:()=>xi,KangaCard:()=>Jn});var Jn,xi;var Oa=s(()=>{u();Qn();Jn=class Jn extends b{static get observedAttributes(){return["theme","proverb","proverb-translation"]}constructor(){super();this.render()}connectedCallback(){this.loadStyles(),this.applyTheme()}attributeChangedCallback(t,n,o){if(n!==o)if(t==="theme")this.applyTheme();else this.render()}getThemeColors(){let t=this.getAttribute("theme")||"tanzania",n={tanzania:{primary:"#1EB53A",accent:"#FCD116",border:"#00A3DD",text:"#000000"},maasai:{primary:"#8B0000",accent:"#FF0000",border:"#000000",text:"#FFFFFF"},ndebele:{primary:"#4169E1",accent:"#FFD700",border:"#FF69B4",text:"#000000"}};return n[t]||n.tanzania}applyTheme(){let t=this.getThemeColors(),n=this.shadowRoot.querySelector(".pindo");if(n){let o=generateKangaBorder({primaryColor:t.primary,accentColor:t.accent});n.style.backgroundImage=`url("${o}")`,n.style.backgroundRepeat="repeat"}}render(){let t=this.getAttribute("proverb")||"",n=this.getAttribute("proverb-translation")||"",o=this.getThemeColors();this.shadowRoot.innerHTML=`
|
|
2508
3439
|
<style>
|
|
2509
3440
|
:host {
|
|
2510
3441
|
display: block;
|
|
@@ -2527,7 +3458,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2527
3458
|
/* Pindo - Decorative Border */
|
|
2528
3459
|
.pindo {
|
|
2529
3460
|
padding: var(--space-13, 13px);
|
|
2530
|
-
background-color: ${
|
|
3461
|
+
background-color: ${o.primary};
|
|
2531
3462
|
}
|
|
2532
3463
|
|
|
2533
3464
|
/* Mji - Central Content Area */
|
|
@@ -2539,8 +3470,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2539
3470
|
|
|
2540
3471
|
/* Jina - Proverb Inscription */
|
|
2541
3472
|
.jina {
|
|
2542
|
-
background-color: ${
|
|
2543
|
-
color: ${
|
|
3473
|
+
background-color: ${o.border};
|
|
3474
|
+
color: ${o.text};
|
|
2544
3475
|
padding: var(--space-8, 8px) var(--space-13, 13px);
|
|
2545
3476
|
text-align: center;
|
|
2546
3477
|
font-style: italic;
|
|
@@ -2567,7 +3498,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2567
3498
|
}
|
|
2568
3499
|
|
|
2569
3500
|
::slotted(h1), ::slotted(h2), ::slotted(h3) {
|
|
2570
|
-
color: ${
|
|
3501
|
+
color: ${o.primary};
|
|
2571
3502
|
margin-bottom: var(--space-8, 8px);
|
|
2572
3503
|
}
|
|
2573
3504
|
</style>
|
|
@@ -2586,7 +3517,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2586
3517
|
</div>
|
|
2587
3518
|
`:'<div class="jina"><slot name="proverb"></slot></div>'}
|
|
2588
3519
|
</article>
|
|
2589
|
-
`,this.applyTheme()}};
|
|
3520
|
+
`,this.applyTheme()}};f("af-kanga-card",Jn);xi=Jn});var Wa={};w(Wa,{default:()=>Ai,CulturalCard:()=>Gn});var Gn,Ai;var Ua=s(()=>{u();Qn();Gn=class Gn extends b{static get observedAttributes(){return["culture","interactive"]}constructor(){super();this._cultures={maasai:{name:"Maasai",region:"Tanzania/Kenya",pattern:"generateShuka",colors:{primary:"#FF0000",accent:"#000000"}},hadzabe:{name:"Hadzabe",region:"Tanzania",pattern:"generateHadzabe",colors:{primary:"#8B4513",accent:"#CD853F"}},swahili:{name:"Swahili",region:"East Africa",pattern:"generateKangaBorder",colors:{primary:"#1EB53A",accent:"#FCD116"}},kitenge:{name:"Kitenge",region:"East Africa",pattern:"generateKitenge",colors:{primary:"#00A3DD",accent:"#1EB53A"}},tibeb:{name:"Tibeb",region:"Ethiopia",pattern:"generateTibeb",colors:{primary:"#009E60",accent:"#FCDD09"}},ashanti:{name:"Ashanti/Akan",region:"Ghana",pattern:"generateKente",colors:{primary:"#FFD700",accent:"#228B22"}},adinkra:{name:"Adinkra",region:"Ghana",pattern:"generateAdinkra",colors:{primary:"#000000",accent:"#CD853F"}},bogolan:{name:"Bogolan",region:"Mali",pattern:"generateBogolan",colors:{primary:"#3E2723",accent:"#D7CCC8"}},yoruba:{name:"Yoruba",region:"Nigeria",pattern:"generateAsoOke",colors:{primary:"#4B0082",accent:"#FFD700"}},ankara:{name:"Ankara",region:"West Africa",pattern:"generateAnkara",colors:{primary:"#FF6B00",accent:"#00A86B"}},kuba:{name:"Kuba Shoowa",region:"DRC",pattern:"generateKuba",colors:{primary:"#D2B48C",accent:"#3E2723"}},imigongo:{name:"Imigongo",region:"Rwanda",pattern:"generateImigongo",colors:{primary:"#000000",accent:"#B22222"}},ndebele:{name:"Ndebele",region:"South Africa",pattern:"generateNdebele",colors:{primary:"#4169E1",accent:"#FFD700"}},zulu:{name:"Zulu",region:"South Africa",pattern:"generateZulu",colors:{primary:"#FF0000",accent:"#000000"}},swazi:{name:"Swazi",region:"Eswatini",pattern:"generateSwazi",colors:{primary:"#3E5EB9",accent:"#FECD00"}},xhosa:{name:"Xhosa",region:"South Africa",pattern:"generateXhosa",colors:{primary:"#00A86B",accent:"#1a1a2e"}}},this.render()}connectedCallback(){this._setupInteraction()}_setupInteraction(){if(!this.hasAttribute("interactive"))return;this.shadowRoot.querySelector(".culture-selector")?.addEventListener("change",(n)=>{this.setAttribute("culture",n.target.value),this.emit("af-culture-change",{culture:n.target.value})})}attributeChangedCallback(){this.render(),this._setupInteraction()}render(){let t=this.getAttribute("culture")||"maasai",n=this.hasAttribute("interactive"),o=this._cultures[t]||this._cultures.maasai,r=Ko[o.pattern],a=r?r():"";this.shadowRoot.innerHTML=`
|
|
2590
3521
|
<style>
|
|
2591
3522
|
:host {
|
|
2592
3523
|
display: block;
|
|
@@ -2607,7 +3538,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2607
3538
|
|
|
2608
3539
|
.pattern-header {
|
|
2609
3540
|
height: 120px;
|
|
2610
|
-
background-image: url("${
|
|
3541
|
+
background-image: url("${a}");
|
|
2611
3542
|
background-repeat: repeat;
|
|
2612
3543
|
position: relative;
|
|
2613
3544
|
animation: patternShift 20s linear infinite;
|
|
@@ -2628,7 +3559,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2628
3559
|
position: absolute;
|
|
2629
3560
|
bottom: 10px;
|
|
2630
3561
|
left: 10px;
|
|
2631
|
-
background: ${
|
|
3562
|
+
background: ${o.colors.primary};
|
|
2632
3563
|
color: white;
|
|
2633
3564
|
padding: 4px 12px;
|
|
2634
3565
|
border-radius: 20px;
|
|
@@ -2663,16 +3594,16 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2663
3594
|
.card-title h3 {
|
|
2664
3595
|
margin: 0;
|
|
2665
3596
|
font-size: 18px;
|
|
2666
|
-
color: ${
|
|
3597
|
+
color: ${o.colors.primary};
|
|
2667
3598
|
}
|
|
2668
3599
|
|
|
2669
3600
|
.culture-icon {
|
|
2670
3601
|
width: 40px;
|
|
2671
3602
|
height: 40px;
|
|
2672
3603
|
border-radius: 50%;
|
|
2673
|
-
background-image: url("${
|
|
3604
|
+
background-image: url("${a}");
|
|
2674
3605
|
background-size: cover;
|
|
2675
|
-
border: 2px solid ${
|
|
3606
|
+
border: 2px solid ${o.colors.accent};
|
|
2676
3607
|
}
|
|
2677
3608
|
|
|
2678
3609
|
.card-content {
|
|
@@ -2684,7 +3615,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2684
3615
|
width: 100%;
|
|
2685
3616
|
padding: 10px;
|
|
2686
3617
|
margin-top: 15px;
|
|
2687
|
-
border: 2px solid ${
|
|
3618
|
+
border: 2px solid ${o.colors.primary};
|
|
2688
3619
|
border-radius: 6px;
|
|
2689
3620
|
font-family: inherit;
|
|
2690
3621
|
font-size: 14px;
|
|
@@ -2694,7 +3625,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2694
3625
|
|
|
2695
3626
|
.culture-selector:focus {
|
|
2696
3627
|
outline: none;
|
|
2697
|
-
box-shadow: 0 0 0 3px ${
|
|
3628
|
+
box-shadow: 0 0 0 3px ${o.colors.primary}30;
|
|
2698
3629
|
}
|
|
2699
3630
|
|
|
2700
3631
|
select option {
|
|
@@ -2710,13 +3641,13 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2710
3641
|
<article class="cultural-card">
|
|
2711
3642
|
<div class="pattern-header">
|
|
2712
3643
|
<div class="pattern-overlay"></div>
|
|
2713
|
-
<span class="culture-badge">${
|
|
2714
|
-
<span class="region-badge">\uD83D\uDCCD ${
|
|
3644
|
+
<span class="culture-badge">${o.name}</span>
|
|
3645
|
+
<span class="region-badge">\uD83D\uDCCD ${o.region}</span>
|
|
2715
3646
|
</div>
|
|
2716
3647
|
<div class="card-body">
|
|
2717
3648
|
<div class="card-title">
|
|
2718
3649
|
<div class="culture-icon"></div>
|
|
2719
|
-
<h3>${
|
|
3650
|
+
<h3>${o.name} Pattern</h3>
|
|
2720
3651
|
</div>
|
|
2721
3652
|
<div class="card-content">
|
|
2722
3653
|
<slot></slot>
|
|
@@ -2751,7 +3682,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2751
3682
|
`:""}
|
|
2752
3683
|
</div>
|
|
2753
3684
|
</article>
|
|
2754
|
-
`}};
|
|
3685
|
+
`}};f("af-cultural-card",Gn);Ai=Gn});var Va={};w(Va,{default:()=>_i,PatternShowcase:()=>Fn});var Fn,_i;var Na=s(()=>{u();Qn();Fn=class Fn extends b{static get observedAttributes(){return["region","size"]}constructor(){super();this._allPatterns=[{key:"shuka",name:"Maasai Shuka",region:"east",country:"Tanzania/Kenya",fn:Lo,meaning:"Bravery, Unity, Identity"},{key:"hadzabe",name:"Hadzabe",region:"east",country:"Tanzania",fn:Mo,meaning:"Ancient traditions, Hunter-gatherer heritage"},{key:"kanga",name:"Kanga",region:"east",country:"Tanzania/Kenya",fn:Eo,meaning:"Communication, Proverbs, Femininity"},{key:"kitenge",name:"Kitenge",region:"east",country:"East Africa",fn:So,meaning:"Celebration, African identity"},{key:"tibeb",name:"Tibeb",region:"east",country:"Ethiopia",fn:Bo,meaning:"Faith, Tradition, Celebration"},{key:"kente",name:"Kente",region:"west",country:"Ghana",fn:Yo,meaning:"Royalty, Wisdom, Celebration"},{key:"adinkra",name:"Adinkra",region:"west",country:"Ghana",fn:Ro,meaning:"Philosophy, Proverbs, Wisdom"},{key:"bogolan",name:"Bogolan",region:"west",country:"Mali",fn:Jo,meaning:"Earth energy, Protection, Healing"},{key:"asooke",name:"Aso-Oke",region:"west",country:"Nigeria",fn:Xo,meaning:"Prestige, Celebration, Heritage"},{key:"adire",name:"Adire (Indigo)",region:"west",country:"Nigeria",fn:No,meaning:"Creativity, Uniqueness, Depth"},{key:"ankara",name:"Ankara",region:"west",country:"West Africa",fn:Qo,meaning:"Boldness, Pan-African pride"},{key:"kuba",name:"Kuba Shoowa",region:"central",country:"DRC",fn:Go,meaning:"Status, Mathematics, Eternity"},{key:"imigongo",name:"Imigongo",region:"central",country:"Rwanda",fn:Fo,meaning:"Resilience, Strength, Artistry"},{key:"berber",name:"Berber",region:"north",country:"North Africa",fn:Vo,meaning:"Protection, Nature, Identity"},{key:"ndebele",name:"Ndebele",region:"south",country:"South Africa",fn:Do,meaning:"Artistry, Marriage, Status"},{key:"zulu",name:"Zulu Beadwork",region:"south",country:"South Africa",fn:Oo,meaning:"Love letters, Community"},{key:"swazi",name:"Swazi",region:"south",country:"Eswatini",fn:Wo,meaning:"Monarchy, Warriors, Pride"},{key:"xhosa",name:"Xhosa",region:"south",country:"South Africa",fn:Uo,meaning:"Dignity, Coming of age"}],this.render()}connectedCallback(){this._setupHovers()}_setupHovers(){this.shadowRoot.querySelectorAll(".pattern-item").forEach((t)=>{t.addEventListener("click",()=>{let n=t.dataset.key,o=this._allPatterns.find((r)=>r.key===n);if(o)this.emit("af-pattern-select",{pattern:o})})})}attributeChangedCallback(){this.render(),this._setupHovers()}render(){let t=this.getAttribute("region")||"all",n=this.getAttribute("size")||"md",o=t==="all"?this._allPatterns:this._allPatterns.filter((e)=>e.region===t),r={sm:80,md:120,lg:160},a=r[n]||r.md;this.shadowRoot.innerHTML=`
|
|
2755
3686
|
<style>
|
|
2756
3687
|
:host {
|
|
2757
3688
|
display: block;
|
|
@@ -2793,7 +3724,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2793
3724
|
|
|
2794
3725
|
.pattern-grid {
|
|
2795
3726
|
display: grid;
|
|
2796
|
-
grid-template-columns: repeat(auto-fill, minmax(${
|
|
3727
|
+
grid-template-columns: repeat(auto-fill, minmax(${a+40}px, 1fr));
|
|
2797
3728
|
gap: 16px;
|
|
2798
3729
|
}
|
|
2799
3730
|
|
|
@@ -2813,7 +3744,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2813
3744
|
|
|
2814
3745
|
.pattern-preview {
|
|
2815
3746
|
inline-size: 100%;
|
|
2816
|
-
block-size: ${
|
|
3747
|
+
block-size: ${a}px;
|
|
2817
3748
|
background-repeat: repeat;
|
|
2818
3749
|
transition: background-position 10s linear;
|
|
2819
3750
|
}
|
|
@@ -2871,20 +3802,20 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2871
3802
|
</div>
|
|
2872
3803
|
|
|
2873
3804
|
<div class="pattern-grid">
|
|
2874
|
-
${
|
|
2875
|
-
<div class="pattern-item" data-key="${
|
|
2876
|
-
<div class="pattern-preview" style="background-image: url('${
|
|
3805
|
+
${o.map((e)=>`
|
|
3806
|
+
<div class="pattern-item" data-key="${e.key}">
|
|
3807
|
+
<div class="pattern-preview" style="background-image: url('${e.fn()}')"></div>
|
|
2877
3808
|
<div class="pattern-info">
|
|
2878
|
-
<span class="region-label region-${
|
|
2879
|
-
<div class="pattern-name">${
|
|
2880
|
-
<div class="pattern-country">${
|
|
2881
|
-
<div class="pattern-meaning">${
|
|
3809
|
+
<span class="region-label region-${e.region}">${e.region.charAt(0).toUpperCase()+e.region.slice(1)}</span>
|
|
3810
|
+
<div class="pattern-name">${e.name}</div>
|
|
3811
|
+
<div class="pattern-country">${e.country}</div>
|
|
3812
|
+
<div class="pattern-meaning">${e.meaning}</div>
|
|
2882
3813
|
</div>
|
|
2883
3814
|
</div>
|
|
2884
3815
|
`).join("")}
|
|
2885
3816
|
</div>
|
|
2886
3817
|
</div>
|
|
2887
|
-
`,this.shadowRoot.querySelectorAll(".region-tab").forEach((
|
|
3818
|
+
`,this.shadowRoot.querySelectorAll(".region-tab").forEach((e)=>{e.addEventListener("click",()=>{this.setAttribute("region",e.dataset.region)})})}};f("af-pattern-showcase",Fn);_i=Fn});var Ka={};w(Ka,{AfriLanguageSwitcher:()=>jo});var jo;var ja=s(()=>{u();jo=class jo extends b{static get observedAttributes(){return["current"]}render(){let t=[{code:"en",name:"English"},{code:"sw",name:"Kiswahili"},{code:"fr",name:"Français"},{code:"ar",name:"العربية",dir:"rtl"},{code:"am",name:"አማርኛ"},{code:"yo",name:"Yorùbá"}],n=this.getAttribute("current")||"en",o=t.find((r)=>r.code===n)||t[0];this.shadowRoot.innerHTML=g`
|
|
2888
3819
|
<style>
|
|
2889
3820
|
:host { display: inline-block; position: relative; font-family: var(--font-body); }
|
|
2890
3821
|
.switcher-btn {
|
|
@@ -2925,17 +3856,17 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
2925
3856
|
|
|
2926
3857
|
<button class="switcher-btn">
|
|
2927
3858
|
<span>🌍</span>
|
|
2928
|
-
<span>${
|
|
3859
|
+
<span>${o.name}</span>
|
|
2929
3860
|
</button>
|
|
2930
3861
|
|
|
2931
3862
|
<div class="dropdown">
|
|
2932
|
-
${t.map((
|
|
2933
|
-
<div class="lang-option" data-code="${
|
|
2934
|
-
${
|
|
3863
|
+
${t.map((r)=>g`
|
|
3864
|
+
<div class="lang-option" data-code="${r.code}" dir="${r.dir||"ltr"}">
|
|
3865
|
+
${r.name}
|
|
2935
3866
|
</div>
|
|
2936
3867
|
`)}
|
|
2937
3868
|
</div>
|
|
2938
|
-
`,this.shadowRoot.querySelector(".switcher-btn").onclick=()=>{this.toggleAttribute("open")},this.shadowRoot.querySelectorAll(".lang-option").forEach((
|
|
3869
|
+
`,this.shadowRoot.querySelector(".switcher-btn").onclick=()=>{this.toggleAttribute("open")},this.shadowRoot.querySelectorAll(".lang-option").forEach((r)=>{r.onclick=()=>{let a=r.dataset.code;if(this.setAttribute("current",a),this.removeAttribute("open"),this.emit("lang-change",{code:a}),a==="ar")document.documentElement.dir="rtl";else document.documentElement.dir="ltr"}})}connectedCallback(){this.render()}attributeChangedCallback(){this.render()}};f("af-language-switcher",jo)});var ya={};w(ya,{AfriAuth:()=>yo});var yo;var Ca=s(()=>{u();yo=class yo extends b{constructor(){super();this.mode="login"}connectedCallback(){this.render(),this.setupEvents()}setupEvents(){let t=this.shadowRoot.querySelector("form"),n=this.shadowRoot.querySelector(".toggle-mode");if(n)n.addEventListener("click",(o)=>{o.preventDefault(),this.mode=this.mode==="login"?"register":"login",this.render(),this.setupEvents()});if(t)t.addEventListener("submit",async(o)=>{o.preventDefault();let r=this.shadowRoot.querySelector("#email").value,a=this.shadowRoot.querySelector("#password").value,e=this.shadowRoot.querySelector(".feedback");e.textContent="Processing...";try{let i=await(await fetch("/api/auth",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:this.mode,email:r,password:a})})).json();if(i.error)e.textContent=i.error,e.style.color="#ef4444";else e.textContent="Success! Redirecting...",e.style.color="#22c55e",setTimeout(()=>window.location.href="/",1000)}catch(l){e.textContent="Network Error"}})}render(){let t=this.mode==="login";this.shadowRoot.innerHTML=`
|
|
2939
3870
|
<style>
|
|
2940
3871
|
:host {
|
|
2941
3872
|
display: block;
|
|
@@ -3033,7 +3964,7 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
3033
3964
|
<span class="toggle-mode">${t?"Create an account":"Sign in"}</span>
|
|
3034
3965
|
</div>
|
|
3035
3966
|
</div>
|
|
3036
|
-
`}};
|
|
3967
|
+
`}};f("af-auth",yo)});var Ia={};w(Ia,{default:()=>ki});var Co,ki;var Pa=s(()=>{u();Co=class Co extends b{constructor(){super();this.currentTheme="dark"}connectedCallback(){this.loadStyles();let t=localStorage.getItem("africode-theme");if(t)this.currentTheme=t,document.documentElement.setAttribute("data-theme",t);else{let n=window.matchMedia("(prefers-color-scheme: light)").matches;this.currentTheme=n?"light":"dark",document.documentElement.setAttribute("data-theme",this.currentTheme)}this.render()}toggleTheme(){this.currentTheme=this.currentTheme==="dark"?"light":"dark",document.documentElement.setAttribute("data-theme",this.currentTheme),localStorage.setItem("africode-theme",this.currentTheme),window.dispatchEvent(new CustomEvent("theme-changed",{detail:{theme:this.currentTheme}})),this.render()}render(){let t=this.currentTheme==="dark";this.shadowRoot.innerHTML=g`
|
|
3037
3968
|
<style>
|
|
3038
3969
|
.toggle-btn {
|
|
3039
3970
|
background: var(--bg-surface-elevated, var(--afri-obsidian));
|
|
@@ -3062,13 +3993,13 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
3062
3993
|
<span class="icon">\${isDark ? '🌙' : '☀️'}</span>
|
|
3063
3994
|
<span>\${isDark ? 'Dark Mode' : 'Light Mode'}</span>
|
|
3064
3995
|
</button>
|
|
3065
|
-
`;let n=this.shadowRoot.querySelector(".toggle-btn");if(n)n.addEventListener("click",()=>this.toggleTheme())}};
|
|
3996
|
+
`;let n=this.shadowRoot.querySelector(".toggle-btn");if(n)n.addEventListener("click",()=>this.toggleTheme())}};f("af-theme-toggle",Co);ki=Co});u();u();class Wn extends b{static get observedAttributes(){return["theme","fallback-message"]}constructor(){super();this._hasError=!1,this._errorDetail=null,this.render()}connectedCallback(){this.addEventListener("af-component-error",this._handleError.bind(this))}disconnectedCallback(){this.removeEventListener("af-component-error",this._handleError.bind(this))}_handleError(t){t.stopPropagation(),this._hasError=!0,this._errorDetail=t.detail,console.warn("[AfriCode Boundary] Caught error:",this._errorDetail),this.render()}reset(){this._hasError=!1,this._errorDetail=null,this.render()}attributeChangedCallback(){this.render()}render(){let t=this.getAttribute("theme")||"tanzania",n=this.getAttribute("fallback-message")||"A part of this page failed to load.",o={tanzania:{bg:"#FFF9E6",border:"#FCD116",text:"#5A4A00"},maasai:{bg:"#FFEEEE",border:"#FF0000",text:"#8B0000"},ndebele:{bg:"#EBF0FF",border:"#4169E1",text:"#002B5C"},ocean:{bg:"#E6FAFF",border:"#00A3DD",text:"#004A66"}},r=o[t]||o.tanzania;if(this._hasError){this.shadowRoot.innerHTML=`
|
|
3066
3997
|
<style>
|
|
3067
3998
|
:host { display: block; width: 100%; font-family: 'Inter', system-ui, sans-serif; }
|
|
3068
3999
|
.boundary-error {
|
|
3069
|
-
background: ${
|
|
3070
|
-
border-left: 4px solid ${
|
|
3071
|
-
color: ${
|
|
4000
|
+
background: ${r.bg};
|
|
4001
|
+
border-left: 4px solid ${r.border};
|
|
4002
|
+
color: ${r.text};
|
|
3072
4003
|
padding: 16px 20px;
|
|
3073
4004
|
border-radius: 4px;
|
|
3074
4005
|
margin: 12px 0;
|
|
@@ -3101,8 +4032,8 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
3101
4032
|
}
|
|
3102
4033
|
button {
|
|
3103
4034
|
background: transparent;
|
|
3104
|
-
border: 1px solid ${
|
|
3105
|
-
color: ${
|
|
4035
|
+
border: 1px solid ${r.border};
|
|
4036
|
+
color: ${r.text};
|
|
3106
4037
|
padding: 6px 12px;
|
|
3107
4038
|
border-radius: 4px;
|
|
3108
4039
|
cursor: pointer;
|
|
@@ -3133,6 +4064,6 @@ var Va=Object.defineProperty;var ja=(t)=>t;function ea(t,n){this[t]=ja.bind(null
|
|
|
3133
4064
|
`,this.shadowRoot.getElementById("retry-btn").addEventListener("click",()=>{this.reset()});return}this.shadowRoot.innerHTML=`
|
|
3134
4065
|
<style>:host { display: block; }</style>
|
|
3135
4066
|
<slot></slot>
|
|
3136
|
-
`}}
|
|
4067
|
+
`}}f("af-error-boundary",Wn);Un();Vn();Nn();Kn();jn();yn();Cn();In();Pn();Tn();Zn();zn();to();oo();ro();ao();eo();lo();io();bo();co();fo();ho();go();mo();po();var qi={"af-button":()=>Promise.resolve().then(() => (kr(),_r)),"af-card":()=>Promise.resolve().then(() => (Hr(),qr)),"af-navbar":()=>Promise.resolve().then(() => (Sr(),Er)),"af-input":()=>Promise.resolve().then(() => (Ir(),Cr)),"af-alert":()=>Promise.resolve().then(() => (Tr(),Pr)),"af-grid":()=>Promise.resolve().then(() => (zr(),Zr)),"af-section":()=>Promise.resolve().then(() => (na(),ta)),"af-icon":()=>Promise.resolve().then(() => (ra(),oa)),"af-ui-button":()=>Promise.resolve().then(() => (Un(),To)),"af-ui-card":()=>Promise.resolve().then(() => (Vn(),Zo)),"af-ui-input":()=>Promise.resolve().then(() => (Nn(),zo)),"af-ui-badge":()=>Promise.resolve().then(() => (Kn(),tr)),"af-ui-switch":()=>Promise.resolve().then(() => (jn(),nr)),"af-ui-select":()=>Promise.resolve().then(() => (yn(),or)),"af-ui-textarea":()=>Promise.resolve().then(() => (Cn(),rr)),"af-ui-chip":()=>Promise.resolve().then(() => (In(),ar)),"af-ui-tag":()=>Promise.resolve().then(() => (Pn(),er)),"af-ui-avatar":()=>Promise.resolve().then(() => (Tn(),lr)),"af-ui-progress-ring":()=>Promise.resolve().then(() => (Zn(),ir)),"af-ui-tooltip":()=>Promise.resolve().then(() => (zn(),br)),"af-ui-popover":()=>Promise.resolve().then(() => (to(),cr)),"af-ui-tabs":()=>Promise.resolve().then(() => (oo(),fr)),"af-ui-table":()=>Promise.resolve().then(() => (ro(),dr)),"af-ui-stat":()=>Promise.resolve().then(() => (ao(),hr)),"af-footer":()=>Promise.resolve().then(() => (eo(),gr)),"af-breadcrumb":()=>Promise.resolve().then(() => (lo(),mr)),"af-feature-grid":()=>Promise.resolve().then(() => (io(),pr)),"af-pricing-card":()=>Promise.resolve().then(() => (bo(),sr)),"af-testimonial":()=>Promise.resolve().then(() => (co(),vr)),"af-dashboard-shell":()=>Promise.resolve().then(() => (fo(),$r)),"af-dashboard-topbar":()=>Promise.resolve().then(() => (ho(),ur)),"af-dashboard-card":()=>Promise.resolve().then(() => (go(),wr)),"af-dashboard-metric":()=>Promise.resolve().then(() => (mo(),xr)),"af-dashboard-activity-list":()=>Promise.resolve().then(() => (po(),Ar)),"af-accordion":()=>Promise.resolve().then(() => (ea(),aa)),"af-hero":()=>Promise.resolve().then(() => (ia(),la)),"af-table":()=>Promise.resolve().then(() => (ca(),ba)),"af-modal":()=>Promise.resolve().then(() => (da(),fa)),"af-tabs":()=>Promise.resolve().then(() => (ga(),ha)),"af-sidebar":()=>Promise.resolve().then(() => (pa(),ma)),"af-dropdown":()=>Promise.resolve().then(() => (va(),sa)),"af-select":()=>Promise.resolve().then(() => (ua(),$a)),"af-form":()=>Promise.resolve().then(() => (xa(),wa)),"af-tooltip":()=>Promise.resolve().then(() => (_a(),Aa)),"af-toast":()=>Promise.resolve().then(() => (qa(),ka)),"af-badge":()=>Promise.resolve().then(() => (La(),Ha)),"af-avatar":()=>Promise.resolve().then(() => (Ea(),Ma)),"af-progress":()=>Promise.resolve().then(() => (Ya(),Sa)),"af-loader":()=>Promise.resolve().then(() => (Xa(),Ra)),"af-skeleton":()=>Promise.resolve().then(() => (Ja(),Qa)),"af-divider":()=>Promise.resolve().then(() => (Fa(),Ga)),"af-kanga-card":()=>Promise.resolve().then(() => (Oa(),Da)),"af-cultural-card":()=>Promise.resolve().then(() => (Ua(),Wa)),"af-pattern-showcase":()=>Promise.resolve().then(() => (Na(),Va)),"af-language-switcher":()=>Promise.resolve().then(() => (ja(),Ka)),"af-auth":()=>Promise.resolve().then(() => (Ca(),ya)),"af-theme-toggle":()=>Promise.resolve().then(() => (Pa(),Ia))},ic=qi;export{ic as default,qi as componentMap,Mt as AfriUITooltip,_t as AfriUITextarea,qt as AfriUITag,St as AfriUITabs,Yt as AfriUITable,xt as AfriUISwitch,Rt as AfriUIStat,At as AfriUISelect,Lt as AfriUIProgressRing,Et as AfriUIPopover,ut as AfriUIInput,kt as AfriUIChip,$t as AfriUICard,vt as AfriUIButton,wt as AfriUIBadge,Ht as AfriUIAvatar,Ft as AfriTestimonial,Gt as AfriPricingCard,Xt as AfriFooter,Jt as AfriFeatureGrid,Wn as AfriErrorBoundary,Dt as AfriDashboardTopbar,Bt as AfriDashboardShell,Wt as AfriDashboardMetric,Ot as AfriDashboardCard,Ut as AfriDashboardActivityList,b as AfriCodeComponent,Qt as AfriBreadcrumb};
|
|
3137
4068
|
|
|
3138
|
-
//# debugId=
|
|
4069
|
+
//# debugId=ADB9A23861F887D464756E2164756E21
|