@nexa-stack/framework 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -3
- package/package.json +22 -5
- package/packages/server/src/router.ts +36 -12
- package/public/assets/blog-CGOdzgkO.js +1 -0
- package/public/assets/blog-ML7LFtff.js +1 -0
- package/public/assets/components-B_D1ccvJ.js +50 -0
- package/public/assets/components-C67m2tNE.js +1 -0
- package/public/assets/components-DCNIrNdJ.js +50 -0
- package/public/assets/components-DZ9oc9zI.js +1 -0
- package/public/assets/contact-CAfovn36.js +1 -0
- package/public/assets/contact-bMUqmce3.js +1 -0
- package/public/assets/docs-B92Otuxs.js +20 -0
- package/public/assets/docs-BGOHuCe3.js +20 -0
- package/public/assets/docs-BUkg7Pd2.css +1 -0
- package/public/assets/echarts-mount-DdBiYEc1.js +19 -0
- package/public/assets/echarts-mount-kJrXh_za.js +19 -0
- package/public/assets/echarts-nexa-BsAEVjT0.js +1 -0
- package/public/assets/integration-BNpFB3SL.js +1 -0
- package/public/assets/integration-Br6tmvWh.js +1 -0
- package/public/assets/integration-D7vdPco_.js +1 -0
- package/public/assets/main-BBkehs0N.js +1 -0
- package/public/assets/main-Cx_-Fq0O.css +1 -0
- package/public/assets/main-ny0uOGg1.js +1 -0
- package/public/assets/src-B4_Kaae6.css +1 -0
- package/public/assets/src-BfdoaLcc.js +1 -0
- package/public/assets/src-D__MdyFu.js +1 -0
- package/public/cards/README.md +17 -0
- package/public/cards/bloom.jpg +0 -0
- package/public/favicon.svg +11 -0
- package/public/nexa-hero-sculpture-1280.png +0 -0
- package/public/nexa-hero-sculpture-640.png +0 -0
- package/public/nexa-hero-sculpture-960.png +0 -0
- package/public/nexa-hero-sculpture.png +0 -0
- package/public/nexa-hero-sculpture.webp +0 -0
- package/public/nexa-mark-24.png +0 -0
- package/public/nexa-mark-256.png +0 -0
- package/public/nexa-mark-32.png +0 -0
- package/public/nexa-mark-40.png +0 -0
- package/public/nexa-mark-48.png +0 -0
- package/public/nexa-mark-512.png +0 -0
- package/public/nexa-mark-64.png +0 -0
- package/public/nexa-mark-96.png +0 -0
- package/public/nexa-mark-apple.png +0 -0
- package/public/nexa-mark-product-256.png +0 -0
- package/public/nexa-mark-product.png +0 -0
- package/public/nexa-mark-source.png +0 -0
- package/public/nexa-mark-trim.png +0 -0
- package/public/nexa-mark.png +0 -0
- package/public/nexa-mark.webp +0 -0
- package/public/nexa-palette-vision.png +0 -0
- package/public/nexa-wordmark.png +0 -0
- package/public/nexa-wordmark.webp +0 -0
- package/public/og.png +0 -0
- package/public/site/about.html +101 -0
- package/public/site/blog.html +87 -0
- package/public/site/components.html +251 -0
- package/public/site/contact.html +72 -0
- package/public/site/docs/buttons.html +157 -0
- package/public/site/docs/cards.html +159 -0
- package/public/site/docs/colors.html +216 -0
- package/public/site/docs/commands.html +170 -0
- package/public/site/docs/data.html +122 -0
- package/public/site/docs/feedback.html +111 -0
- package/public/site/docs/forms.html +117 -0
- package/public/site/docs/icons.html +125 -0
- package/public/site/docs/index.html +82 -0
- package/public/site/docs/installation.html +83 -0
- package/public/site/docs/layout.html +116 -0
- package/public/site/docs/media.html +96 -0
- package/public/site/docs/navigation.html +122 -0
- package/public/site/docs/overlays.html +95 -0
- package/public/site/docs/pickers.html +126 -0
- package/public/site/docs/sections.html +111 -0
- package/public/site/docs/typography.html +97 -0
- package/public/site/docs/usage.html +76 -0
- package/public/site/features.html +107 -0
- package/public/site/index.html +117 -0
- package/public/site/integration.html +43 -0
- package/public/site/pricing.html +87 -0
- package/ui/cards/README.md +17 -0
- package/ui/cards/bloom.jpg +0 -0
- package/ui/echarts-mount-DWNKcqeo.js +22945 -0
- package/ui/echarts-nexa-BY8eW9ug.js +456 -0
- package/ui/favicon.svg +11 -0
- package/ui/nexa-hero-sculpture-1280.png +0 -0
- package/ui/nexa-hero-sculpture-640.png +0 -0
- package/ui/nexa-hero-sculpture-960.png +0 -0
- package/ui/nexa-hero-sculpture.png +0 -0
- package/ui/nexa-hero-sculpture.webp +0 -0
- package/ui/nexa-mark-24.png +0 -0
- package/ui/nexa-mark-256.png +0 -0
- package/ui/nexa-mark-32.png +0 -0
- package/ui/nexa-mark-40.png +0 -0
- package/ui/nexa-mark-48.png +0 -0
- package/ui/nexa-mark-512.png +0 -0
- package/ui/nexa-mark-64.png +0 -0
- package/ui/nexa-mark-96.png +0 -0
- package/ui/nexa-mark-apple.png +0 -0
- package/ui/nexa-mark-product-256.png +0 -0
- package/ui/nexa-mark-product.png +0 -0
- package/ui/nexa-mark-source.png +0 -0
- package/ui/nexa-mark-trim.png +0 -0
- package/ui/nexa-mark.png +0 -0
- package/ui/nexa-mark.webp +0 -0
- package/ui/nexa-palette-vision.png +0 -0
- package/ui/nexa-wordmark.png +0 -0
- package/ui/nexa-wordmark.webp +0 -0
- package/ui/nexa.css +2 -0
- package/ui/nexa.js +2971 -0
- package/ui/nexa.umd.js +80 -0
- package/ui/og.png +0 -0
- package/ui/types/components/art.d.ts +11 -0
- package/ui/types/components/card-layouts.d.ts +11 -0
- package/ui/types/components/card.d.ts +11 -0
- package/ui/types/components/charts.d.ts +7 -0
- package/ui/types/components/extra.d.ts +2 -0
- package/ui/types/components/helpers.d.ts +18 -0
- package/ui/types/components/icons.d.ts +24 -0
- package/ui/types/components/index.d.ts +2 -0
- package/ui/types/components/pickers.d.ts +8 -0
- package/ui/types/components/structure.d.ts +2 -0
- package/ui/types/core/behaviors.d.ts +2 -0
- package/ui/types/core/brand-assets.d.ts +44 -0
- package/ui/types/core/colormap.d.ts +49 -0
- package/ui/types/core/echarts-mount.d.ts +5 -0
- package/ui/types/core/echarts-nexa.d.ts +71 -0
- package/ui/types/core/parser.d.ts +11 -0
- package/ui/types/core/registry.d.ts +13 -0
- package/ui/types/core/renderer.d.ts +14 -0
- package/ui/types/core/schema.d.ts +8 -0
- package/ui/types/core/toast.d.ts +11 -0
- package/ui/types/core/validate.d.ts +1 -0
- package/ui/types/index.d.ts +50 -0
package/README.md
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
# Nexa
|
|
2
|
-
|
|
3
|
-
Write little → ship a full backend. Goal: **hours, not weeks.**
|
|
1
|
+
# Nexa
|
|
2
|
+
|
|
3
|
+
Write little → ship a full backend. Goal: **hours, not weeks.**
|
|
4
|
+
|
|
5
|
+
Nexa is now a single full-stack npm package. It includes the backend engine and the
|
|
6
|
+
Nexa UI renderer together:
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import {createNexa, registry, registerPrototypeComponents} from '@nexa-stack/framework/ui';
|
|
10
|
+
import '@nexa-stack/framework/ui/styles.css';
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The built-in full-stack site is served from `/site/`; its API is served from `/api/`.
|
|
14
|
+
The UI source lives in `resources/ui`, while its publishable build is created in `ui/`
|
|
15
|
+
during `npm run build`.
|
|
4
16
|
|
|
5
17
|
Runs on **Node.js ≥ 20** (Hostinger-friendly). Default UI language is **English**.
|
|
6
18
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexa-stack/framework",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Nexa Stack —
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Nexa Stack — one TypeScript package for the Nexa UI engine, REST API, database, auth, admin panel and full-stack starter.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./packages/core/src/index.ts",
|
|
7
7
|
"module": "./packages/core/src/index.ts",
|
|
8
8
|
"types": "./packages/core/src/index.ts",
|
|
9
9
|
"exports": {
|
|
10
10
|
".": "./packages/core/src/index.ts",
|
|
11
|
+
"./ui": {
|
|
12
|
+
"types": "./ui/types/index.d.ts",
|
|
13
|
+
"import": "./ui/nexa.js",
|
|
14
|
+
"default": "./ui/nexa.umd.js"
|
|
15
|
+
},
|
|
16
|
+
"./ui/styles.css": "./ui/nexa.css",
|
|
11
17
|
"./package.json": "./package.json"
|
|
12
18
|
},
|
|
13
19
|
"bin": {
|
|
@@ -17,6 +23,7 @@
|
|
|
17
23
|
"packages",
|
|
18
24
|
"bin",
|
|
19
25
|
"public",
|
|
26
|
+
"ui",
|
|
20
27
|
"docs",
|
|
21
28
|
"README.md",
|
|
22
29
|
"LICENSE",
|
|
@@ -30,8 +37,13 @@
|
|
|
30
37
|
"dev": "nexa serve",
|
|
31
38
|
"nexa": "node --import tsx bin/nexa.ts",
|
|
32
39
|
"serve": "node --import tsx bin/nexa.ts serve",
|
|
40
|
+
"build:ui": "vite build --config tools/vite.ui.config.ts && tsc -p tools/tsconfig.ui.build.json && node scripts/package-ui.mjs",
|
|
41
|
+
"build:site": "vite build --config tools/vite.site.config.ts",
|
|
42
|
+
"build": "npm run build:ui && npm run build:site",
|
|
43
|
+
"typecheck:ui": "tsc -p tools/tsconfig.ui.json --noEmit",
|
|
33
44
|
"test": "vitest run",
|
|
34
|
-
"
|
|
45
|
+
"prepack": "npm run build",
|
|
46
|
+
"prepublishOnly": "npm test && npm run build"
|
|
35
47
|
},
|
|
36
48
|
"keywords": [
|
|
37
49
|
"nexa",
|
|
@@ -59,7 +71,9 @@
|
|
|
59
71
|
"nodemailer": "^9.0.6",
|
|
60
72
|
"postgres": "^3.4.9",
|
|
61
73
|
"sql.js": "^1.14.2",
|
|
62
|
-
"tsx": "^4.20.3"
|
|
74
|
+
"tsx": "^4.20.3",
|
|
75
|
+
"echarts": "^6.1.0",
|
|
76
|
+
"lucide": "^1.35.0"
|
|
63
77
|
},
|
|
64
78
|
"optionalDependencies": {
|
|
65
79
|
"ioredis": "^5.6.1"
|
|
@@ -69,7 +83,10 @@
|
|
|
69
83
|
"@types/node": "^22.15.30",
|
|
70
84
|
"@types/nodemailer": "^8.0.1",
|
|
71
85
|
"@types/sql.js": "^1.4.11",
|
|
72
|
-
"vitest": "^3.2.3"
|
|
86
|
+
"vitest": "^3.2.3",
|
|
87
|
+
"eslint": "9.39.4",
|
|
88
|
+
"typescript": "5.9.3",
|
|
89
|
+
"vite": "8.0.13"
|
|
73
90
|
},
|
|
74
91
|
"allowScripts": {
|
|
75
92
|
"esbuild@0.28.2": true
|
|
@@ -475,7 +475,7 @@ export class Router {
|
|
|
475
475
|
return [this.staticDir, this.fallbackStaticDir].filter(Boolean) as string[];
|
|
476
476
|
}
|
|
477
477
|
|
|
478
|
-
private async servePublicFile(path: string, contentType: string): Promise<Response | null> {
|
|
478
|
+
private async servePublicFile(path: string, contentType: string): Promise<Response | null> {
|
|
479
479
|
for (const dir of this.staticDirs()) {
|
|
480
480
|
const full = join(dir, path);
|
|
481
481
|
if (!existsSync(full)) continue;
|
|
@@ -483,7 +483,27 @@ export class Router {
|
|
|
483
483
|
return new Response(buf, { headers: { "Content-Type": contentType } });
|
|
484
484
|
}
|
|
485
485
|
return null;
|
|
486
|
-
}
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/** Serve bundled frontend assets (Vite emits hashed JS/CSS/fonts beside HTML). */
|
|
489
|
+
private async serveStaticAsset(path: string): Promise<Response | null> {
|
|
490
|
+
if (path.includes("..") || !/^[a-zA-Z0-9@._/-]+$/.test(path)) return null;
|
|
491
|
+
const extension = extname(path).toLowerCase();
|
|
492
|
+
const mime: Record<string, string> = {
|
|
493
|
+
".css": "text/css; charset=utf-8", ".js": "text/javascript; charset=utf-8",
|
|
494
|
+
".mjs": "text/javascript; charset=utf-8", ".json": "application/json; charset=utf-8",
|
|
495
|
+
".svg": "image/svg+xml", ".png": "image/png", ".jpg": "image/jpeg",
|
|
496
|
+
".jpeg": "image/jpeg", ".webp": "image/webp", ".gif": "image/gif",
|
|
497
|
+
".ico": "image/x-icon", ".woff": "font/woff", ".woff2": "font/woff2",
|
|
498
|
+
};
|
|
499
|
+
const contentType = mime[extension];
|
|
500
|
+
if (!contentType) return null;
|
|
501
|
+
const file = await this.servePublicFile(path, contentType);
|
|
502
|
+
if (!file) return null;
|
|
503
|
+
const headers = new Headers(file.headers);
|
|
504
|
+
headers.set("Cache-Control", "public, max-age=31536000, immutable");
|
|
505
|
+
return new Response(file.body, { status: file.status, headers });
|
|
506
|
+
}
|
|
487
507
|
|
|
488
508
|
private async serveHtmlPage(fullPath: string): Promise<Response> {
|
|
489
509
|
let html = await readFile(fullPath, "utf8");
|
|
@@ -597,16 +617,20 @@ export class Router {
|
|
|
597
617
|
return new Response(buf);
|
|
598
618
|
}
|
|
599
619
|
|
|
600
|
-
if (req.method === "GET" && !path.startsWith("/api")) {
|
|
601
|
-
const
|
|
602
|
-
if (
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
620
|
+
if (req.method === "GET" && !path.startsWith("/api")) {
|
|
621
|
+
const asset = await this.serveStaticAsset(path.slice(1));
|
|
622
|
+
if (asset) return asset;
|
|
623
|
+
const page = path === "/" ? "index" : path.slice(1);
|
|
624
|
+
if (!page.includes("..") && /^[a-zA-Z0-9/_-]*$/.test(page)) {
|
|
625
|
+
for (const dir of this.staticDirs()) {
|
|
626
|
+
const full = join(dir, `${page}.html`);
|
|
627
|
+
if (existsSync(full)) {
|
|
628
|
+
return this.serveHtmlPage(full);
|
|
629
|
+
}
|
|
630
|
+
const directoryIndex = join(dir, page, "index.html");
|
|
631
|
+
if (existsSync(directoryIndex)) return this.serveHtmlPage(directoryIndex);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
610
634
|
}
|
|
611
635
|
|
|
612
636
|
if (req.method === "GET" && path === "/api/docs") {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./components-B_D1ccvJ.js";import"./main-ny0uOGg1.js";import{t as e}from"./src-BfdoaLcc.js";document.getElementById(`newsletter`)?.addEventListener(`nexa:valid`,()=>{e.toast({text:`Subscribed to the newsletter`,tone:`success`})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./components-DCNIrNdJ.js";import"./main-BBkehs0N.js";import{t as e}from"./src-D__MdyFu.js";document.getElementById(`newsletter`)?.addEventListener(`nexa:valid`,()=>{e.toast({text:`Subscribed to the newsletter`,tone:`success`})});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/echarts-mount-DdBiYEc1.js","assets/echarts-nexa-BsAEVjT0.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=[`violet`,`azure`,`gold`,`emerald`,`coral`],t=[50,100,200,300,400,500,600,700,800,900],n={purple:`violet`,violet:`violet`,blue:`azure`,azure:`azure`,gold:`gold`,green:`emerald`,emerald:`emerald`,orange:`coral`,coral:`coral`},r={pink:`#ec4899`,rose:`#f43f5e`,violet:`#7c5cfc`,azure:`#3b82f6`,gold:`#b08d45`,emerald:`#10b981`,coral:`#f97316`},i=`nexa-saved-maps`;function a(e){return e.trim().toLowerCase().replace(/^map:/,``).replace(/\s+/g,`-`)}function o(){if(typeof localStorage>`u`)return{};try{let e=localStorage.getItem(i);return e?JSON.parse(e):{}}catch{return{}}}function s(e){return f(e)||r[e.toLowerCase()]||o()[a(e)]||null}var c=t,l={50:97,100:93,200:87,300:78,400:68,500:null,600:50,700:42,800:34,900:26};function u(e){e.style.setProperty(`--nexa-primary`,`var(--nexa-brand-500)`),e.style.setProperty(`--nexa-primary-soft`,`var(--nexa-brand-100)`),e.style.setProperty(`--nexa-primary-muted`,`var(--nexa-brand-300)`),e.style.setProperty(`--nexa-primary-strong`,`var(--nexa-brand-700)`),e.style.setProperty(`--nexa-primary-glow`,`color-mix(in oklch, var(--nexa-brand-400) 42%, transparent)`),e.style.setProperty(`--nexa-accent`,`var(--nexa-brand-300)`),e.style.setProperty(`--nexa-accent-2`,`var(--nexa-brand-200)`)}function d(e){let t=e.find(e=>e.toLowerCase().startsWith(`map:`));if(t)return s(t.slice(4));if(!e.includes(`map`))return null;let n=e.find(e=>f(e));if(n)return n;for(let t of e){if(t===`map`)continue;let e=s(t);if(e)return e}return null}function f(e){let t=e.trim().replace(/^#/,``);return/^[0-9a-f]{3}$/i.test(t)?`#${t.split(``).map(e=>e+e).join(``)}`.toLowerCase():/^[0-9a-f]{6}$/i.test(t)?`#${t}`.toLowerCase():null}function p(e){let t=f(e);if(!t)return null;let n=Number.parseInt(t.slice(1),16);return{r:n>>16&255,g:n>>8&255,b:n&255}}function m(e,t,n){let r=e=>Math.max(0,Math.min(255,Math.round(e)));return`#${[r(e),r(t),r(n)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function h(e,t,n){e/=255,t/=255,n/=255;let r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=0,s=(r+i)/2;if(r!==i){let c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=(t-n)/c+(t<n?6:0);break;case t:a=(n-e)/c+2;break;default:a=(e-t)/c+4}a/=6}return{h:a*360,s:o*100,l:s*100}}function g(e,t,n){t/=100,n/=100;let r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(e/60%2-1)),a=n-r/2,o=0,s=0,c=0;return e<60?[o,s,c]=[r,i,0]:e<120?[o,s,c]=[i,r,0]:e<180?[o,s,c]=[0,r,i]:e<240?[o,s,c]=[0,i,r]:e<300?[o,s,c]=[i,0,r]:[o,s,c]=[r,0,i],m((o+a)*255,(s+a)*255,(c+a)*255)}function _(e){let t=f(e);if(!t)throw Error(`Invalid hex color. Use #7c5cfc or 7c5cfc`);let{r:n,g:r,b:i}=p(t),{h:a,s:o}=h(n,r,i),s={};for(let e of c){if(e===500){s[500]=t;continue}let n=l[e],r=e<500?(500-e)*.04:(e-500)*.05;s[e]=g(a,Math.max(18,Math.min(100,o-r)),n)}return s}function ee(e,t){for(let n of c)e.style.setProperty(`--nexa-brand-${n}`,t[n]);return u(e),e.dataset.nexaBrand=t[500],delete e.dataset.nexaMap,delete e.dataset.nexaHue,t}function te(e,t){return ee(e,_(t))}function ne(t,r){let i=n[r]??(e.includes(r)?r:null);if(!i)return!1;for(let e of c)t.style.setProperty(`--nexa-brand-${e}`,`var(--nexa-hue-${i}-${e})`);return u(t),t.dataset.nexaMap=i,delete t.dataset.nexaBrand,!0}var re={btn:`button`,buttons:`button`,ico:`ico`,c:`card`,card:`card`,hdr:`header`,foot:`footer`,feat:`features`,price:`pricing`,quote:`testimonials`,testimonial:`testimonials`,banner:`cta`,post:`posts`,posts:`posts`,tbl:`table`,stats:`stat`,"btn-group":`button-group`,igroup:`input-group`,placeholder:`skeleton`,graphs:`chart`,drop:`dropdown`,menu:`dropdown`,dd:`dropdown`,date:`datepicker`,dp:`datepicker`,time:`timepicker`,tp:`timepicker`,stars:`rating`,steps:`stepper`,ac:`autocomplete`,combo:`autocomplete`,combobox:`autocomplete`,sheet:`sheet`,bottomsheet:`sheet`,bs:`sheet`,tl:`timeline`,xfer:`transfer`},ie={s:[`shadow`],"s-soft":[`shadow`,`soft`],"s-strong":[`shadow`,`strong`],g:[`glass`],r:[`round`],p:[`pill`],sm:[`small`,`compact`],lg:[`large`,`tall`],prod:[`product`],kit:[`product`],plan:[`pricing`],user:[`profile`],stat:[`analytics`],vid:[`video`],evt:[`event`],css:[`css`],e:[`end`]},ae=new Set(`primary.secondary.outline.ghost.danger.small.medium.large.block.disabled.loading.elevated.plain.bordered.glass.horizontal.square.interactive.media.icon.metric.profile.cover.product.video.event.promo.pricing.analytics.quote.tasks.feature.text.email.password.number.date.file.search.tel.url.color.range.checkbox.radio.hidden.required.readonly.error.success.checked.cols-1.cols-2.cols-3.cols-4.cols-6.auto-fit.masonry.gap-none.gap-small.gap-medium.gap-large.landscape.simple.centered.split.mega.transparent.static.sticky.fixed.float.bar.dock.overlay.light.dark.image-left.image-right.minimal.fullscreen.cards-1.cards-2.cards-3.cards-4.popular.featured.bold.narrow.modern.luxury.minimal.blue.purple.gold.green.orange.black.violet.azure.emerald.coral.light.ivory.round.rounded.pill.shadow.soft.sharp.strong.sm.md.lg.xl.compact.tall.s.s-soft.s-strong.g.r.p.fill.filled.solid.thin.outline.light.fat.full.regular.saas.theme.page.map.auth.portfolio.dashboard.store.blog.checkout.essential.brand.vision.alert.modal.tabs.accordion.dropdown.spinner.progress.toast.compact.male.user.end.e.drop.menu.dd.breadcrumb.pagination.divider.avatar.warning.danger.info.open.carousel.offcanvas.popover.tooltip.list.ordered.fade.slide.zoom.bounce.float.glow.lift.tilt.flip.magnetic.shine.aurora.reveal.pulse.soft.static.prod.kit.plan.user.vid.evt.css.posts.checkout.table.collapse.stat.nav.button-group.list-group.navbar.input-group.close.switch.scrollspy.skeleton.figure.chart.bar.line.area.donut.pie.spark.sparkline.css.pro.vertical.flush.checked.float.lines-1.lines-2.lines-3.lines-4.lines-5.ratio-1x1.ratio-4x3.ratio-16x9.ratio-21x9.datepicker.timepicker.date.dp.time.tp.chip.chips.rating.stars.stepper.steps.fab.autocomplete.ac.combo.combobox.striped.hover.sheet.bottomsheet.bs.autoplay.auto.validate.tree.timeline.tl.transfer.xfer.pills.segmented.removable.x.extended.bottom-start.readonly.static`.split(`.`));function v(e){return re[e]??e}function oe(e){let t=[];for(let n of e){let e=ie[n];e?t.push(...e):t.push(n)}return[...new Set(t)]}function y(e){let t=e.trim();if(!t)throw Error(`Nexa command is empty`);let n=t.match(/[^\s"'=]+=(?:"(?:\\.|[^"])*"|'(?:\\.|[^'])*')|"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|\S+/g)??[],r=v((n[0]??``).toLowerCase()),i=[],a={},o=[],s=!1;for(let e of n.slice(1)){let t=e.match(/^([a-z][\w:-]*)=(.*)$/i);if(t){let e=t[2].replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/,`$1$2`).replace(/\\([\\"'])/g,`$1`);a[t[1].toLowerCase()]=e;continue}let n=e.toLowerCase(),r=f(e);if(s){i.push(r??n),s=!1;continue}if(n===`map`||e.startsWith(`map:`)){i.push(r??n),s=n===`map`;continue}if(!o.length&&(ae.has(n)||r)){i.push(r??n);continue}o.push(e.replace(/^(?:"([\s\S]*)"|'([\s\S]*)')$/,`$1$2`))}return{component:r,modifiers:oe(i),attributes:a,raw:t,label:o.length?o.join(` `):void 0}}function se(e){return e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith(`#`)).map(y)}var ce={header:{variants:[`simple`,`vision`,`float`,`bar`,`dock`,`mega`,`glass`,`transparent`,`overlay`],states:[`static`,`sticky`,`fixed`,`light`,`dark`,`s`,`g`,`shadow`,`soft`,`strong`,`sm`,`lg`,`compact`,`tall`]},hero:{variants:[`centered`,`split`,`image-left`,`image-right`,`minimal`,`vision`],sizes:[`small`,`medium`,`large`,`fullscreen`]},badge:{variants:[`primary`,`secondary`,`outline`,`ghost`,`danger`],states:[`soft`,`pill`,`dot`]},chips:{},input:{variants:[`text`,`email`,`password`,`number`,`search`,`tel`,`url`,`date`],states:[`required`,`disabled`,`readonly`,`error`,`success`,`float`]},grid:{layout:[`cols-1`,`cols-2`,`cols-3`,`cols-4`,`cols-6`,`auto-fit`,`masonry`],variants:[`square`,`landscape`],sizes:[`gap-none`,`gap-small`,`gap-medium`,`gap-large`]},stack:{sizes:[`gap-none`,`gap-small`,`gap-medium`,`gap-large`]},container:{variants:[`narrow`]},form:{states:[`validate`]},card:{variants:[`plain`,`bordered`,`elevated`,`glass`,`horizontal`,`square`,`interactive`,`media`,`icon`,`metric`,`profile`,`cover`,`product`,`video`,`event`,`promo`,`pricing`,`analytics`,`quote`,`tasks`,`feature`],states:[`soft`,`fade`,`slide`,`zoom`,`bounce`,`float`,`glow`,`lift`,`tilt`,`flip`,`magnetic`,`shine`,`aurora`,`reveal`,`pulse`,`static`]},field:{variants:[`text`,`email`,`password`,`number`,`date`,`file`,`search`,`tel`,`url`,`color`,`range`,`checkbox`,`radio`,`hidden`],states:[`required`,`disabled`,`readonly`,`error`,`success`,`float`,`checked`],sizes:[`small`,`medium`,`large`]},button:{variants:[`primary`,`secondary`,`outline`,`ghost`,`danger`,`blue`,`purple`,`gold`,`green`,`orange`,`black`,`glass`],sizes:[`small`,`medium`,`large`,`compact`,`sm`],states:[`block`,`disabled`,`loading`,`round`,`rounded`,`pill`,`sharp`,`shadow`,`soft`,`strong`,`s`,`g`]},footer:{variants:[`dark`,`mega`,`simple`],states:[`light`]},cta:{variants:[`bold`]},testimonials:{variants:[`featured`]},features:{variants:[`cards-1`,`cards-2`,`cards-3`,`cards-4`]},logos:{variants:[`dark`,`light`,`mono`],states:[`bordered`,`muted`]},alert:{variants:[`success`,`warning`,`danger`,`info`]},modal:{states:[`open`]},tabs:{variants:[`pills`,`segmented`]},accordion:{},dropdown:{variants:[`primary`,`ghost`],states:[`open`,`end`]},spinner:{sizes:[`small`,`large`,`sm`,`lg`]},progress:{},toast:{variants:[`success`,`warning`,`danger`,`info`]},breadcrumb:{},pagination:{},divider:{},avatar:{sizes:[`small`,`large`,`sm`,`lg`],variants:[`male`,`user`]},auth:{states:[`compact`]},carousel:{states:[`autoplay`,`auto`]},sheet:{states:[`open`]},offcanvas:{variants:[`left`,`right`],states:[`open`]},popover:{states:[`open`]},tooltip:{},list:{variants:[`ordered`]},posts:{variants:[`cards-1`,`cards-2`,`cards-3`,`cards-4`],states:[`compact`]},checkout:{states:[`compact`]},table:{variants:[`striped`,`hover`],states:[`compact`]},collapse:{},stat:{},nav:{},"button-group":{variants:[`primary`,`secondary`,`outline`,`ghost`,`danger`],states:[`vertical`]},"list-group":{states:[`flush`]},navbar:{variants:[`fixed`,`dark`,`light`]},"input-group":{variants:[`text`,`email`,`password`,`search`,`tel`,`url`,`number`]},close:{},switch:{states:[`checked`,`disabled`]},scrollspy:{},skeleton:{variants:[`card`,`avatar`],layout:[`lines-1`,`lines-2`,`lines-3`,`lines-4`,`lines-5`]},figure:{layout:[`ratio-1x1`,`ratio-4x3`,`ratio-16x9`,`ratio-21x9`]},chart:{variants:[`bar`,`line`,`area`,`donut`,`pie`,`spark`,`sparkline`,`css`,`pro`],states:[`static`]},ico:{sizes:[`sm`,`md`,`lg`,`xl`,`small`,`medium`,`large`,`compact`,`tall`],variants:[`regular`,`bold`,`thin`,`fill`,`filled`,`solid`,`outline`,`light`,`fat`,`full`]},select:{states:[`required`,`disabled`,`float`]},textarea:{states:[`required`,`disabled`,`float`]},datepicker:{states:[`required`,`disabled`]},timepicker:{states:[`required`,`disabled`]},chip:{variants:[`outline`],states:[`active`,`removable`,`x`]},rating:{states:[`readonly`,`static`]},stepper:{},fab:{variants:[`extended`],states:[`bottom-start`]},autocomplete:{states:[`required`,`disabled`]},tree:{},timeline:{states:[`compact`]},transfer:{}};function le(e){return ce[e]}var ue=new Set(`modern.luxury.minimal.blue.purple.gold.green.orange.black.violet.azure.emerald.coral.light.ivory.brand.glass.shadow.soft.strong.round.rounded.pill.sharp.compact.tall.s.g.r.p.s-soft.s-strong.sm.lg.map.font-inter.font-geist.font-dm.font-system`.split(`.`));function de(e){return new Set([...e.variants??[],...e.sizes??[],...e.states??[],...e.layout??[]])}function fe(e,t){if(!t.length||e===`ico`)return null;let n=le(e);if(!n){let n=t.filter(e=>!ue.has(e));return n.length?`Unknown modifiers for “${e}”: ${n.join(`, `)}`:null}let r=de(n),i=t.filter(e=>!r.has(e)&&!ue.has(e));return i.length?`Unknown modifiers for “${e}”: ${i.join(`, `)}. Allowed: ${[...r].slice(0,12).join(`, `)}${r.size>12?`…`:``}`:null}function pe(e=document){e.querySelectorAll(`[data-nexa-tabs]`).forEach(e=>{let t=[...e.querySelectorAll(`[data-tab]`)],n=[...e.querySelectorAll(`[data-panel]`)];t.forEach((e,r)=>{e.onclick=()=>{t.forEach(e=>e.classList.remove(`is-active`)),n.forEach(e=>e.hidden=!0),e.classList.add(`is-active`),n[r]&&(n[r].hidden=!1)}}),t[0]?.click()}),e.querySelectorAll(`[data-nexa-accordion]`).forEach(e=>{e.querySelectorAll(`[data-acc-trigger]`).forEach(e=>{e.onclick=()=>{let t=e.closest(`[data-acc-item]`)?.classList.toggle(`is-open`);e.setAttribute(`aria-expanded`,t?`true`:`false`)}})}),e.querySelectorAll(`[data-nexa-dropdown]`).forEach(e=>{if(e.dataset.nexaDropWired===`1`)return;e.dataset.nexaDropWired=`1`;let t=e.querySelector(`[data-drop-toggle]`),n=e.querySelector(`[data-drop-menu]`);!t||!n||t.addEventListener(`click`,n=>{n.stopPropagation();let r=!e.classList.contains(`is-open`);document.querySelectorAll(`[data-nexa-dropdown].is-open`).forEach(t=>{t!==e&&(t.classList.remove(`is-open`),t.querySelector(`[data-drop-toggle]`)?.setAttribute(`aria-expanded`,`false`))}),e.classList.toggle(`is-open`,r),t.setAttribute(`aria-expanded`,r?`true`:`false`)})}),document.__nexaDropDoc||(document.__nexaDropDoc=!0,document.addEventListener(`click`,()=>{document.querySelectorAll(`[data-nexa-dropdown].is-open`).forEach(e=>{e.classList.remove(`is-open`),e.querySelector(`[data-drop-toggle]`)?.setAttribute(`aria-expanded`,`false`)})})),e.querySelectorAll(`[data-nexa-modal]`).forEach(e=>{e.querySelectorAll(`[data-modal-close]`).forEach(t=>{t.addEventListener(`click`,()=>e.classList.remove(`is-open`))})}),e.querySelectorAll(`[data-nexa-toast]`).forEach(e=>{e.querySelector(`[data-toast-close]`)?.addEventListener(`click`,()=>e.remove())}),e.querySelectorAll(`[data-modal-open]`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.getAttribute(`data-modal-open`);(t?document.getElementById(t):document.querySelector(`[data-nexa-modal]`))?.classList.add(`is-open`)})}),e.querySelectorAll(`[data-nexa-carousel]`).forEach(e=>{if(e.dataset.nexaCarouselWired===`1`)return;e.dataset.nexaCarouselWired=`1`;let t=e.closest(`.nexa-host.nexa-carousel`)??e,n=[...e.querySelectorAll(`[data-slide]`)],r=[...e.querySelectorAll(`[data-carousel-dot]`)],i=0,a=0,o=e=>{n.length&&(i=(e+n.length)%n.length,n.forEach((e,t)=>{e.hidden=t!==i}),r.forEach((e,t)=>e.classList.toggle(`is-active`,t===i)))},s=()=>{a&&=(window.clearInterval(a),0)},c=()=>{if(s(),!t.hasAttribute(`data-autoplay`)&&!e.closest(`[data-autoplay]`))return;let n=Number(t.getAttribute(`data-interval`)??t.getAttribute(`interval`)??`4000`)||4e3;a=window.setInterval(()=>o(i+1),n)};e.querySelector(`[data-carousel-prev]`)?.addEventListener(`click`,()=>{o(i-1),c()}),e.querySelector(`[data-carousel-next]`)?.addEventListener(`click`,()=>{o(i+1),c()}),r.forEach(e=>{e.addEventListener(`click`,()=>{o(Number(e.getAttribute(`data-carousel-dot`)||0)),c()})}),e.addEventListener(`mouseenter`,s),e.addEventListener(`mouseleave`,c),c()}),e.querySelectorAll(`[data-nexa-sheet]`).forEach(e=>{e.dataset.nexaSheetWired!==`1`&&(e.dataset.nexaSheetWired=`1`,e.querySelectorAll(`[data-sheet-close]`).forEach(t=>{t.addEventListener(`click`,()=>e.classList.remove(`is-open`))}))}),e.querySelectorAll(`[data-sheet-open]`).forEach(e=>{e.dataset.nexaSheetOpenWired!==`1`&&(e.dataset.nexaSheetOpenWired=`1`,e.addEventListener(`click`,()=>{let t=e.getAttribute(`data-sheet-open`);(t?document.getElementById(t):document.querySelector(`[data-nexa-sheet]`))?.classList.add(`is-open`)}))}),e.querySelectorAll(`[data-nexa-form="validate"]`).forEach(e=>{if(e.dataset.nexaFormWired===`1`)return;e.dataset.nexaFormWired=`1`;let t=e.tagName.toLowerCase()===`form`?e:null,n=t=>{t.preventDefault();let n=!0;e.querySelectorAll(`.nexa-field-wrap, .nexa-field-float`).forEach(e=>{let t=e.querySelector(`input,textarea,select`);if(!t||t.type===`hidden`||t.disabled)return;let r=t.required||t.hasAttribute(`required`),i=!String(t.value??``).trim(),a=r&&i;!a&&t.type===`email`&&t.value&&(a=!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.value)),e.classList.toggle(`is-error`,a),e.classList.toggle(`is-success`,!a&&!!t.value);let o=e.querySelector(`em`);if(a)if(n=!1,o)o.textContent=t.type===`email`&&t.value?`بريد غير صالح`:`هذا الحقل مطلوب`;else{let n=document.createElement(`em`);n.textContent=t.type===`email`&&t.value?`بريد غير صالح`:`هذا الحقل مطلوب`,e.appendChild(n)}else o&&(o.textContent===`هذا الحقل مطلوب`||o.textContent===`بريد غير صالح`)&&o.remove()}),n?(e.dispatchEvent(new CustomEvent(`nexa:valid`,{bubbles:!0})),e.classList.add(`is-valid`)):(e.classList.remove(`is-valid`),e.dispatchEvent(new CustomEvent(`nexa:invalid`,{bubbles:!0})))};t?t.addEventListener(`submit`,n):e.querySelector(`[type="submit"], [data-form-submit]`)?.addEventListener(`click`,n)}),e.querySelectorAll(`[data-nexa-offcanvas]`).forEach(e=>{e.querySelectorAll(`[data-offcanvas-close]`).forEach(t=>{t.addEventListener(`click`,()=>e.classList.remove(`is-open`))})}),e.querySelectorAll(`[data-offcanvas-open]`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.getAttribute(`data-offcanvas-open`);(t?document.getElementById(t):document.querySelector(`[data-nexa-offcanvas]`))?.classList.add(`is-open`)})}),e.querySelectorAll(`[data-nexa-popover]`).forEach(e=>{let t=e.querySelector(`[data-pop-trigger]`),n=e.querySelector(`[data-pop-card]`);!t||!n||(t.onclick=e=>{e.stopPropagation();let t=n.hidden;document.querySelectorAll(`[data-pop-card]`).forEach(e=>{e.hidden=!0}),n.hidden=!t})}),document.addEventListener(`click`,()=>{document.querySelectorAll(`[data-pop-card]`).forEach(e=>{e.hidden=!0})}),e.querySelectorAll(`[data-nexa-collapse]`).forEach(e=>{let t=e.querySelector(`[data-collapse-trigger]`),n=e.querySelector(`[data-collapse-panel]`);!t||!n||(t.onclick=()=>{let r=n.hidden;n.hidden=!r,t.setAttribute(`aria-expanded`,r?`true`:`false`),e.classList.toggle(`is-open`,r)})}),e.querySelectorAll(`.nexa-host.nexa-card[class*="nexa-anim-"]`).forEach(e=>{let t=e.classList.contains(`nexa-anim-reveal`),n=()=>{t||e.classList.add(`nexa-enter-done`)};e.addEventListener(`animationend`,r=>{r.target!==e||t||String(r.animationName).startsWith(`nexa-enter-`)&&n()}),e.addEventListener(`mouseenter`,()=>e.classList.add(`is-active`)),e.addEventListener(`mouseleave`,()=>e.classList.remove(`is-active`)),t||window.setTimeout(n,900)}),e.querySelectorAll(`[data-nexa-reveal]`).forEach(e=>{if(typeof IntersectionObserver>`u`){e.classList.add(`is-visible`);return}let t=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add(`is-visible`),t.unobserve(e.target))})},{threshold:.08,rootMargin:`0px 0px -5% 0px`});t.observe(e)}),e.querySelectorAll(`[data-nexa-tilt]`).forEach(e=>{e.addEventListener(`mousemove`,t=>{let n=e.getBoundingClientRect(),r=(t.clientX-n.left)/n.width-.5,i=(t.clientY-n.top)/n.height-.5;e.style.setProperty(`--nexa-tilt-x`,`${r*14*2}deg`),e.style.setProperty(`--nexa-tilt-y`,`${-i*14*2}deg`),e.classList.add(`is-active`)}),e.addEventListener(`mouseleave`,()=>{e.style.setProperty(`--nexa-tilt-x`,`0deg`),e.style.setProperty(`--nexa-tilt-y`,`0deg`),e.classList.remove(`is-active`)})}),e.querySelectorAll(`[data-nexa-magnetic]`).forEach(e=>{e.addEventListener(`mousemove`,t=>{let n=e.getBoundingClientRect(),r=(t.clientX-n.left)/n.width-.5,i=(t.clientY-n.top)/n.height-.5;e.style.setProperty(`--nexa-mag-x`,`${r*16}px`),e.style.setProperty(`--nexa-mag-y`,`${i*16-6}px`),e.classList.add(`is-active`)}),e.addEventListener(`mouseleave`,()=>{e.style.setProperty(`--nexa-mag-x`,`0px`),e.style.setProperty(`--nexa-mag-y`,`0px`),e.classList.remove(`is-active`)})}),e.querySelectorAll(`[data-nexa-navbar]`).forEach(e=>{e.querySelector(`[data-nav-toggle]`)?.addEventListener(`click`,()=>e.classList.toggle(`is-open`))}),e.querySelectorAll(`[data-nexa-tasks]`).forEach(e=>{e.querySelectorAll(`input[type=checkbox]`).forEach(e=>{e.addEventListener(`change`,()=>{e.closest(`li`)?.classList.toggle(`is-done`,e.checked)})})}),e.querySelectorAll(`[data-nexa-header-scroll]`).forEach(e=>{if(e.dataset.nexaHeaderScrollWired)return;e.dataset.nexaHeaderScrollWired=`1`;let t=Number(e.getAttribute(`data-scroll-threshold`)??e.getAttribute(`data-overlay-threshold`)??`24`),n=()=>e.classList.toggle(`is-scrolled`,window.scrollY>t);n(),window.addEventListener(`scroll`,n,{passive:!0})}),e.querySelectorAll(`[data-nexa-scrollspy]`).forEach(e=>{let t=[...e.querySelectorAll(`[data-spy-link]`)],n=t.map(e=>document.querySelector(e.getAttribute(`href`)??``)).filter(Boolean);if(!n.length)return;if(typeof IntersectionObserver>`u`){t[0]?.classList.add(`is-active`);return}let r=new IntersectionObserver(e=>{e.forEach(e=>{if(!e.isIntersecting)return;let n=`#${e.target.id}`;t.forEach(e=>e.classList.toggle(`is-active`,e.getAttribute(`href`)===n))})},{rootMargin:`-45% 0px -50% 0px`,threshold:0});n.forEach(e=>r.observe(e))}),document.querySelectorAll(`[data-nexa-close]`).forEach(e=>{e.addEventListener(`click`,()=>{(e.closest(`.nexa-host`)??e.closest(`[role="alert"]`)??e.parentElement)?.remove()})}),_e(e),ve(e),ye(e),be(e),ge(e),me(e),he(e)}function me(e){e.querySelectorAll(`[data-nexa-tree]`).forEach(e=>{e.dataset.nexaTreeWired!==`1`&&(e.dataset.nexaTreeWired=`1`,e.querySelectorAll(`[data-tree-toggle]`).forEach(e=>{e.addEventListener(`click`,()=>{let t=e.closest(`[data-tree-node]`),n=t?.querySelector(`:scope > [data-tree-children]`);if(!n)return;let r=e.getAttribute(`aria-expanded`)!==`true`;e.setAttribute(`aria-expanded`,r?`true`:`false`),n.hidden=!r,t?.classList.toggle(`is-collapsed`,!r)})}))})}function he(e){e.querySelectorAll(`[data-nexa-transfer]`).forEach(e=>{if(e.dataset.nexaTransferWired===`1`)return;e.dataset.nexaTransferWired=`1`;let t=e.querySelector(`[data-transfer-left]`),n=e.querySelector(`[data-transfer-right]`);if(!t||!n)return;let r=()=>[...e.querySelectorAll(`.nexa-transfer-opt.is-selected`)],i=e=>{e.querySelector(`[data-transfer-opt]`)?e.querySelector(`.nexa-transfer-empty`)?.remove():e.innerHTML=`<span class="nexa-transfer-empty">Empty</span>`},a=a=>{let o=r();if(!o.length)return;o.forEach(e=>{e.classList.remove(`is-selected`),e.dataset.side=a===n?`right`:`left`,a.appendChild(e)}),i(t),i(n);let s=[...n.querySelectorAll(`[data-transfer-opt]`)].map(e=>e.dataset.value??``);e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:s},bubbles:!0}))};e.addEventListener(`click`,e=>{let r=e.target,i=r?.closest(`[data-transfer-opt]`);if(i){i.classList.toggle(`is-selected`);return}r?.closest(`[data-transfer-to-right]`)&&a(n),r?.closest(`[data-transfer-to-left]`)&&a(t)})})}function b(e){return String(e).padStart(2,`0`)}function ge(e){e.querySelectorAll(`[data-nexa-autocomplete]`).forEach(e=>{if(e.dataset.nexaAcWired===`1`)return;e.dataset.nexaAcWired=`1`;let t=e.querySelector(`[data-ac-input]`),n=e.querySelector(`[data-ac-value]`),r=e.querySelector(`[data-ac-menu]`),i=e.querySelector(`[data-ac-list]`),a=e.querySelector(`[data-ac-empty]`),o=e.querySelector(`[data-ac-clear]`);if(!t||!n||!r||!i||!a)return;let s=[...i.querySelectorAll(`[data-ac-opt]`)],c=-1,l=()=>{o&&(o.hidden=!t.value)},u=()=>{r.hidden=!0,e.classList.remove(`is-open`),t.setAttribute(`aria-expanded`,`false`),c=-1,s.forEach(e=>e.classList.remove(`is-active`))},d=()=>{document.querySelectorAll(`[data-nexa-autocomplete].is-open`).forEach(t=>{if(t===e)return;t.classList.remove(`is-open`);let n=t.querySelector(`[data-ac-menu]`);n&&(n.hidden=!0)}),r.hidden=!1,e.classList.add(`is-open`),t.setAttribute(`aria-expanded`,`true`)},f=()=>{let e=t.value.trim().toLowerCase(),n=0;s.forEach(t=>{let r=(t.dataset.value??t.textContent??``).toLowerCase(),i=!e||r.includes(e);t.hidden=!i,i&&(n+=1)}),a.hidden=n>0,i.hidden=n===0,n>0?d():(d(),c=-1),l()},p=r=>{let i=r.dataset.value??r.textContent??``;t.value=i,n.value=i,l(),u(),e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:i},bubbles:!0}))},m=e=>{let t=s.filter(e=>!e.hidden);t.length&&(d(),c=(c+e+t.length)%t.length,t.forEach((e,t)=>e.classList.toggle(`is-active`,t===c)),t[c]?.scrollIntoView({block:`nearest`}))};t.addEventListener(`focus`,()=>{f()}),t.addEventListener(`input`,()=>{n.value=``,f()}),t.addEventListener(`keydown`,e=>{if(e.key===`ArrowDown`)e.preventDefault(),m(1);else if(e.key===`ArrowUp`)e.preventDefault(),m(-1);else if(e.key===`Enter`){let t=s.filter(e=>!e.hidden);if(r.hidden||!t.length)return;e.preventDefault(),p(t[Math.max(0,c)]??t[0])}else e.key===`Escape`&&u()}),s.forEach(e=>{e.addEventListener(`mousedown`,t=>{t.preventDefault(),p(e)})}),o?.addEventListener(`click`,r=>{r.stopPropagation(),t.value=``,n.value=``,l(),t.focus(),f(),e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:``},bubbles:!0}))}),l()}),document.__nexaAcDoc||(document.__nexaAcDoc=!0,document.addEventListener(`click`,e=>{let t=e.target;document.querySelectorAll(`[data-nexa-autocomplete].is-open`).forEach(e=>{if(t&&e.contains(t))return;e.classList.remove(`is-open`);let n=e.querySelector(`[data-ac-menu]`);n&&(n.hidden=!0),e.querySelector(`[data-ac-input]`)?.setAttribute(`aria-expanded`,`false`)})}))}function _e(e){let t=[`يناير`,`فبراير`,`مارس`,`أبريل`,`مايو`,`يونيو`,`يوليو`,`أغسطس`,`سبتمبر`,`أكتوبر`,`نوفمبر`,`ديسمبر`],n=(e,t,n)=>{let r=n.match(/^(\d{4})-(\d{2})-(\d{2})$/),i=r?Number(r[1]):0,a=r?Number(r[2]):0,o=r?Number(r[3]):0,s=new Date(e,t-1,1).getDay(),c=new Date(e,t,0).getDate(),l=new Date,u=``;for(let e=0;e<s;e++)u+=`<span class="nexa-cal-empty"></span>`;for(let n=1;n<=c;n++){let r=i===e&&a===t&&o===n,s=l.getFullYear()===e&&l.getMonth()+1===t&&l.getDate()===n;u+=`<button type="button" class="nexa-cal-day${r?` is-selected`:``}${s?` is-today`:``}" data-day="${n}">${n}</button>`}return u},r=e=>{let n=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);return n?`${Number(n[3])} ${t[Number(n[2])-1]} ${n[1]}`:``};e.querySelectorAll(`[data-nexa-datepicker]`).forEach(e=>{if(e.dataset.nexaDpWired===`1`)return;e.dataset.nexaDpWired=`1`;let i=e.querySelector(`[data-dp-toggle]`),a=e.querySelector(`[data-dp-panel]`),o=e.querySelector(`[data-dp-grid]`),s=e.querySelector(`[data-dp-title]`),c=e.querySelector(`[data-dp-display]`),l=e.querySelector(`[data-dp-value]`);if(!i||!a||!o||!s||!c||!l)return;let u=()=>{a.hidden=!0,i.setAttribute(`aria-expanded`,`false`),e.classList.remove(`is-open`)},d=()=>{document.querySelectorAll(`[data-nexa-datepicker].is-open,[data-nexa-timepicker].is-open`).forEach(t=>{if(t===e)return;t.classList.remove(`is-open`);let n=t.querySelector(`[data-dp-panel],[data-tp-panel]`);n&&(n.hidden=!0),t.querySelector(`[data-dp-toggle],[data-tp-toggle]`)?.setAttribute(`aria-expanded`,`false`)}),a.hidden=!1,i.setAttribute(`aria-expanded`,`true`),e.classList.add(`is-open`)},f=()=>{let i=Number(o.dataset.year),a=Number(o.dataset.month);s.textContent=`${t[a-1]} ${i}`,o.innerHTML=n(i,a,l.value),o.querySelectorAll(`[data-day]`).forEach(t=>{t.onclick=n=>{n.stopPropagation();let o=Number(t.dataset.day);l.value=`${i}-${b(a)}-${b(o)}`,c.textContent=r(l.value),c.classList.add(`has-value`),u(),e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:l.value},bubbles:!0}))}})};i.addEventListener(`click`,e=>{e.stopPropagation(),a.hidden?(d(),f()):u()}),e.querySelector(`[data-dp-prev]`)?.addEventListener(`click`,e=>{e.stopPropagation();let t=Number(o.dataset.year),n=Number(o.dataset.month)-1;n<1&&(n=12,--t),o.dataset.year=String(t),o.dataset.month=String(n),f()}),e.querySelector(`[data-dp-next]`)?.addEventListener(`click`,e=>{e.stopPropagation();let t=Number(o.dataset.year),n=Number(o.dataset.month)+1;n>12&&(n=1,t+=1),o.dataset.year=String(t),o.dataset.month=String(n),f()}),e.querySelector(`[data-dp-today]`)?.addEventListener(`click`,t=>{t.stopPropagation();let n=new Date;l.value=`${n.getFullYear()}-${b(n.getMonth()+1)}-${b(n.getDate())}`,c.textContent=r(l.value),o.dataset.year=String(n.getFullYear()),o.dataset.month=String(n.getMonth()+1),f(),u(),e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:l.value},bubbles:!0}))});let p=c.textContent&&!l.value?c.textContent:`اختر تاريخاً`;e.querySelector(`[data-dp-clear]`)?.addEventListener(`click`,e=>{e.stopPropagation(),l.value=``,c.textContent=p,c.classList.remove(`has-value`),u()}),a.addEventListener(`click`,e=>e.stopPropagation())}),document.__nexaDpDoc||(document.__nexaDpDoc=!0,document.addEventListener(`click`,()=>{document.querySelectorAll(`[data-nexa-datepicker].is-open`).forEach(e=>{e.classList.remove(`is-open`);let t=e.querySelector(`[data-dp-panel]`);t&&(t.hidden=!0),e.querySelector(`[data-dp-toggle]`)?.setAttribute(`aria-expanded`,`false`)})}))}function ve(e){e.querySelectorAll(`[data-nexa-timepicker]`).forEach(e=>{if(e.dataset.nexaTpWired===`1`)return;e.dataset.nexaTpWired=`1`;let t=e.querySelector(`[data-tp-toggle]`),n=e.querySelector(`[data-tp-panel]`),r=e.querySelector(`[data-tp-display]`),i=e.querySelector(`[data-tp-value]`);if(!t||!n||!r||!i)return;let a=12,o=0;(()=>{let e=i.value.match(/^(\d{1,2}):(\d{2})$/);e&&(a=Number(e[1]),o=Number(e[2]))})();let s=()=>{e.querySelectorAll(`[data-tp-h]`).forEach(e=>e.classList.toggle(`is-selected`,Number(e.getAttribute(`data-tp-h`))===a)),e.querySelectorAll(`[data-tp-m]`).forEach(e=>e.classList.toggle(`is-selected`,Number(e.getAttribute(`data-tp-m`))===o))},c=()=>{n.hidden=!0,t.setAttribute(`aria-expanded`,`false`),e.classList.remove(`is-open`)},l=()=>{document.querySelectorAll(`[data-nexa-datepicker].is-open,[data-nexa-timepicker].is-open`).forEach(t=>{if(t===e)return;t.classList.remove(`is-open`);let n=t.querySelector(`[data-dp-panel],[data-tp-panel]`);n&&(n.hidden=!0)}),n.hidden=!1,t.setAttribute(`aria-expanded`,`true`),e.classList.add(`is-open`),s()};t.addEventListener(`click`,e=>{e.stopPropagation(),n.hidden?l():c()}),e.querySelectorAll(`[data-tp-h]`).forEach(e=>{e.onclick=t=>{t.stopPropagation(),a=Number(e.dataset.tpH),s()}}),e.querySelectorAll(`[data-tp-m]`).forEach(e=>{e.onclick=t=>{t.stopPropagation(),o=Number(e.dataset.tpM),s()}}),e.querySelector(`[data-tp-apply]`)?.addEventListener(`click`,t=>{t.stopPropagation(),i.value=`${b(a)}:${b(o)}`,r.textContent=i.value,r.classList.add(`has-value`),c(),e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:i.value},bubbles:!0}))}),e.querySelector(`[data-tp-clear]`)?.addEventListener(`click`,e=>{e.stopPropagation(),i.value=``,r.textContent=`اختر وقتاً`,r.classList.remove(`has-value`),c()}),n.addEventListener(`click`,e=>e.stopPropagation())}),document.__nexaTpDoc||(document.__nexaTpDoc=!0,document.addEventListener(`click`,()=>{document.querySelectorAll(`[data-nexa-timepicker].is-open`).forEach(e=>{e.classList.remove(`is-open`);let t=e.querySelector(`[data-tp-panel]`);t&&(t.hidden=!0)})}))}function ye(e){e.querySelectorAll(`[data-nexa-rating]`).forEach(e=>{if(e.dataset.nexaRatingWired===`1`||e.classList.contains(`is-readonly`)||e.classList.contains(`nexa-readonly`))return;e.dataset.nexaRatingWired=`1`;let t=e.querySelector(`[data-rating-value]`),n=[...e.querySelectorAll(`[data-star]`)],r=e=>n.forEach(t=>t.classList.toggle(`is-on`,Number(t.dataset.star)<=e));n.forEach(n=>{n.onclick=()=>{let i=Number(n.dataset.star);t&&(t.value=String(i)),r(i),e.dispatchEvent(new CustomEvent(`nexa:change`,{detail:{value:i},bubbles:!0}))}})})}function be(e){e.querySelectorAll(`[data-chip-remove]`).forEach(e=>{e.__wired||(e.__wired=!0,e.addEventListener(`click`,()=>{(e.closest(`.nexa-host.nexa-chip`)??e.closest(`.nexa-chip`))?.remove()}))})}var xe=`modulepreload`,Se=function(e){return`/`+e},Ce={},we=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Se(t,n),t in Ce)return;Ce[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:xe,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Te={button:`button`,badge:`span`,card:`article`,header:`header`,hero:`section`,features:`section`,logos:`section`,pricing:`section`,testimonials:`section`,cta:`section`,footer:`footer`,field:`div`,grid:`div`,stack:`div`,container:`div`,form:`form`,input:`input`,textarea:`textarea`,select:`select`,alert:`div`,modal:`div`,tabs:`div`,accordion:`div`,dropdown:`div`,spinner:`div`,progress:`div`,toast:`div`,breadcrumb:`nav`,pagination:`nav`,divider:`div`,avatar:`div`,auth:`main`,carousel:`div`,sheet:`div`,offcanvas:`div`,popover:`div`,tooltip:`span`,list:`div`,posts:`section`,checkout:`section`,table:`div`,collapse:`div`,stat:`div`,nav:`nav`,"button-group":`div`,"list-group":`div`,navbar:`nav`,"input-group":`div`,close:`button`,switch:`div`,scrollspy:`nav`,skeleton:`div`,figure:`figure`,chart:`div`,ico:`span`,datepicker:`div`,timepicker:`div`,chip:`span`,chips:`div`,rating:`div`,stepper:`div`,fab:`button`,autocomplete:`div`,tree:`div`,timeline:`div`,transfer:`div`},x=new Set([`modern`,`luxury`,`minimal`]),S=new Set([`blue`,`purple`,`gold`,`green`,`orange`,`black`,`violet`,`azure`,`emerald`,`coral`,`light`,`ivory`]);function C(e){return e===`theme`||e===`map`||x.has(e)}function Ee(e,t){let r=n[t];r&&ne(e,r)}function De(e){let t=x.has(e.component)?e.component:e.modifiers.find(e=>x.has(e))??(e.component===`map`?`luxury`:`modern`),n=e.modifiers.find(e=>S.has(e))??(S.has(e.component)?e.component:`black`),i=new Set([t,n,`map`,...Object.keys(r)]),a=e.modifiers.filter(e=>!i.has(e)&&!x.has(e)&&!S.has(e)&&!f(e));return{classes:[`nexa-theme`,`nexa-${t}`,`nexa-${n}`,...a.map(e=>`nexa-${e}`)],color:n}}function Oe(e,t){let n=De(t);e.classList.add(...n.classes);let r=d(t.modifiers);if(r){te(e,r),e.dataset.nexaMapCmd=r;return}Ee(e,n.color)}function ke(e,t,n){return t===`button`?n.join(` `)||`primary`:t===`input`||t===`textarea`||t===`select`?n.join(` `):[e,...n].join(` `).trim()}function Ae({registry:e}){return{render(t){try{let n=t.getAttribute(`nexa`)??``,r=t.tagName.toLowerCase(),i=n.trim()?y(n):{component:r,modifiers:[],attributes:{},raw:n},a=i,o=e.resolve(a.component);if(!o&&e.resolve(r)&&(a={...i,component:r,modifiers:[i.component,...i.modifiers].filter(e=>e&&e!==r)},o=e.resolve(r)),!o&&(r===`body`||C(a.component))){if(a.component===`map`&&!d(a.modifiers))throw Error(`استخدم: map #ec4899 · map pink · map:my-brand — مثال: nexa="luxury black map #ec4899"`);return Oe(t,a),{ok:!0}}if(!o)throw Error(`Unknown “${a.component}”. Try: ${e.list().join(`, `)}`);let s=fe(a.component,a.modifiers);if(s)throw Error(s);t.className=`${t.className} nexa-host nexa-${a.component} ${a.modifiers.map(e=>`nexa-${e}`).join(` `)}`.trim();let c=t.innerHTML.trim()||a.label||``,l=o({...a,content:c,element:t});return r!==`input`&&l!==c&&(t.innerHTML=l),{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Render failed`}}},renderPage(e,t){try{let n=se(e);if(!n.length)throw Error(`Write at least one command, such as: btn primary`);let r=n.find(e=>C(e.component)||e.modifiers.includes(`map`));if(n=n.filter(e=>!C(e.component)&&e.component!==`map`),n[0]?.component===`page`){let e=n[0].modifiers,t=e.includes(`auth`);if(!r){let t=e.find(e=>x.has(e))??`luxury`,n=e.find(e=>S.has(e))??`blue`;r={component:`theme`,modifiers:[t,n],attributes:{},raw:`theme ${t} ${n}`}}n=t?[y(`auth`),...n.slice(1)]:e.includes(`portfolio`)?[y(`header simple`),y(`hero centered minimal`),y(`features cards-3`),y(`testimonials featured`),y(`cta bold`),y(`footer simple`),...n.slice(1)]:e.includes(`dashboard`)?[y(`header glass fixed`),y(`stat`),y(`features cards-4`),y(`pricing`),y(`cta`),y(`footer simple`),...n.slice(1)]:e.includes(`store`)?[y(`header glass fixed`),y(`hero split`),y(`logos`),y(`features cards-4`),y(`pricing`),y(`testimonials`),y(`cta bold`),y(`footer dark mega`),...n.slice(1)]:e.includes(`blog`)?[y(`header simple`),y(`hero minimal centered`),y(`posts cards-3`),y(`testimonials`),y(`cta`),y(`footer simple`),...n.slice(1)]:e.includes(`checkout`)?[y(`header simple`),y(`checkout`),y(`footer simple`),...n.slice(1)]:[y(`header glass fixed`),y(`hero split`),y(`logos`),y(`features cards-3`),y(`pricing`),y(`testimonials`),y(`cta`),y(`footer dark`),...n.slice(1)]}t.replaceChildren();let i=document.createElement(`main`);Oe(i,r??{component:`modern`,modifiers:[`blue`]});let a=document.createElement(`div`),o=n.length===1&&n[0]?.component===`auth`,s=n.some(e=>e.component===`checkout`);a.className=o?`nexa-auth-stage`:s?`nexa-checkout-stage`:`nexa-short-stage`,i.appendChild(a),t.appendChild(i);for(let e of n){let t=v(e.component),n=Te[t]??`div`,r=document.createElement(n);r.setAttribute(`nexa`,ke(t,n,e.modifiers));for(let[t,n]of Object.entries(e.attributes))!/^on/i.test(t)&&t!==`srcdoc`&&r.setAttribute(t,n);e.label?r.textContent=e.label:t===`button`&&(r.textContent=`Button`),a.appendChild(r);let i=this.render(r);if(!i.ok)throw Error(`${e.raw}: ${i.error}`)}return{ok:!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Page render failed`}}},mount(e=document){let t=e.querySelectorAll(`[nexa]`),n;for(let e of t){let t=this.render(e);!t.ok&&!n&&(n=t.error,e.dataset.nexaError=t.error)}return pe(e),e.querySelector(`[data-nexa-echart]`)&&we(async()=>{let{wireEcharts:e}=await import(`./echarts-mount-DdBiYEc1.js`);return{wireEcharts:e}},__vite__mapDeps([0,1])).then(({wireEcharts:t})=>t(e)),n?{ok:!1,error:n}:{ok:!0}}}}var je=new class{components=new Map;register(e,t){return this.components.set(e,t),this}resolve(e){return this.components.get(e)}list(){return[...this.components.keys()]}},w=(e,t)=>e.includes(t);function T(e,t=/[,;]/){return e?e.split(t).map(e=>e.trim()).filter(Boolean):[]}function E(e){if(!e.includes(`|`)&&!e.includes(`/`))return e;let t=e.split(`||`).map(e=>e.trim()).filter(Boolean),n=e=>{if(e.includes(`/`)){let[t,...n]=e.split(`/`),r=n.join(`/`).trim();if(r.includes(`|`)){let e=r.split(`|`).map(e=>e.trim()).filter(Boolean);if(e.length>=2)return`${t.trim()} ${e.slice(0,-1).join(` `)} <em>${e[e.length-1]}</em>`}return`${t.trim()} <em>${r}</em>`}if(!e.includes(`|`))return e;let t=e.split(`|`).map(e=>e.trim()).filter(Boolean);return t.length===3?`${t[0]} <em>${t[1]}</em> ${t[2]}`:t.length===2?`${t[0]} <em>${t[1]}</em>`:t.map((e,t,n)=>t===n.length-1?`<em>${e}</em>`:e).join(` `)};return t.length>1?t.map(n).join(`<br>`):n(t[0]??e)}function D(e,t=`;`){return T(e,t).map(e=>{let[t,...n]=e.split(`|`);return{head:t?.trim()??``,body:n.join(`|`).trim()}})}function Me(e){let t=e.getAttribute(`plans`),n=Number(e.getAttribute(`popular`)??`1`);return t?T(t,`;`).map((e,t)=>{let[r,i,a,o,s]=e.split(`|`);return{name:r?.trim()??`Plan`,price:i?.trim()??`0`,desc:a?.trim()??``,features:T(o??``,/,/),cta:s?.trim()??`Choose`,popular:t===n}}):[{name:`STARTER`,price:`0`,desc:`For personal projects and quick starts.`,features:[`Core components`,`Responsive themes`,`Community updates`],cta:`Start free`},{name:`PRO`,price:`19`,desc:`For real products and ambitious teams.`,features:[`All widgets + pickers`,`Featured presets`,`Priority updates`],cta:`Choose Pro`,popular:!0},{name:`STUDIO`,price:`49`,desc:`For agencies shipping many experiences.`,features:[`Unlimited projects`,`Custom tokens`,`Team license`],cta:`Choose Studio`}]}function Ne(e,t){let n=e.getAttribute(`items`);return n?T(n,`;`).slice(0,t).map((e,t)=>{let n=e.split(`|`).map(e=>e.trim()).filter(Boolean);return n.length>=3?[n[0],n[1],n.slice(2).join(` | `)]:n.length===2?[String(t+1).padStart(2,`0`),n[0],n[1]]:[String(t+1).padStart(2,`0`),n[0]??`Feature`,`One short command.`]}):[[`01`,`Exceptional speed`,`Lightweight core — no heavy dependencies.`],[`02`,`Adaptive design`,`Looks great on every screen and direction.`],[`03`,`Scalable registry`,`Clear components that grow with your product.`],[`04`,`Living color map`,`One seed color dresses every widget.`]].slice(0,t)}function O(e,t){let n=T(e.getAttribute(`links`)??e.getAttribute(`nav`));return(n.length?n:t).map(e=>{let[t,n]=e.split(`|`).map(e=>e.trim());return`<a href="${n||`#`}">${t}</a>`}).join(``)}var k={mark:`/nexa-mark.png`,markSource:`/nexa-mark-source.png`,mark512:`/nexa-mark-512.png`,mark256:`/nexa-mark-256.png`,mark128:`/nexa-mark.png`,mark96:`/nexa-mark-96.png`,mark64:`/nexa-mark-64.png`,mark48:`/nexa-mark-48.png`,mark40:`/nexa-mark-40.png`,mark32:`/nexa-mark-32.png`,mark24:`/nexa-mark-24.png`,markApple:`/nexa-mark-apple.png`,markProduct:`/nexa-mark-product.png`,markProduct256:`/nexa-mark-product-256.png`,wordmark:`/nexa-wordmark.png`,heroSculpture:`/nexa-hero-sculpture.png`,heroSculpture640:`/nexa-hero-sculpture-640.png`,heroSculpture960:`/nexa-hero-sculpture-960.png`,heroSculpture1280:`/nexa-hero-sculpture-1280.png`,visionReference:`/nexa-palette-vision.png`,cardsVision:`/nexa-cards-vision.jpg`,cardsDir:`/cards/`,cardHeroArt:`hero`,favicon:`/favicon.svg`},Pe={mark:`/nexa-mark.png`,wordmark:`/nexa-wordmark.png`,sculpture:`/nexa-hero-sculpture.png`,hero:`/nexa-hero-sculpture.png`};function A(e){return Pe[e.trim().toLowerCase()]??e}function j(e){let t=e.trim().toLowerCase();return t===`hero`||t===`sculpture`||t===`vision`}function Fe(e=40){let t=Math.ceil(e);return[`${k.mark64} ${Math.round(t*1.5)}w`,`${k.mark128} ${t*2}w`,`${k.mark256} ${t*3}w`,`${k.mark512} ${t*4}w`].join(`, `)}function Ie(){return[`${k.markProduct256} 256w`,`${k.markProduct} 384w`,`${k.mark512} 512w`].join(`, `)}function Le(){return[`${k.heroSculpture640} 640w`,`${k.heroSculpture960} 960w`,`${k.heroSculpture1280} 1280w`,`${k.heroSculpture} 3209w`].join(`, `)}function Re(){return`<div class="nexa-art nexa-sculpture" aria-hidden="true">
|
|
3
|
+
<div class="nexa-art-bloom"></div>
|
|
4
|
+
<img class="nexa-sculpture-img" src="${k.heroSculpture}" alt="" decoding="async">
|
|
5
|
+
<div class="nexa-art-dots"></div>
|
|
6
|
+
</div>`}function ze(){return`<img class="nexa-card-product-mark" src="${k.mark512}" srcset="${Ie()}" sizes="128px" width="128" height="128" alt="" decoding="async">`}function Be(e=`cover`){return e===`product`?ze():`<div class="nexa-card-hero-art is-${e}" aria-hidden="true">
|
|
7
|
+
<div class="nexa-card-hero-bloom"></div>
|
|
8
|
+
${`<img class="nexa-card-hero-sculpture" src="${k.heroSculpture960}" srcset="${Le()}" sizes="(max-width:640px) 40vw, 320px" alt="" decoding="async">`}
|
|
9
|
+
<div class="nexa-card-hero-dots"></div>
|
|
10
|
+
</div>`}var Ve=[[`path`,{d:`M5 12h14`}],[`path`,{d:`m12 5 7 7-7 7`}]],He=[[`path`,{d:`m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526`}],[`circle`,{cx:`12`,cy:`8`,r:`6`}]],Ue=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`}]],We=[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`}]],Ge=[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`}],[`path`,{d:`M12 22V12`}]],M=[[`path`,{d:`M8 2v3`}],[`path`,{d:`M16 2v3`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}],[`path`,{d:`M3 9h18`}]],Ke=[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`}],[`circle`,{cx:`12`,cy:`13`,r:`3`}]],N=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`M18 17V9`}],[`path`,{d:`M13 17V5`}],[`path`,{d:`M8 17v-3`}]],qe=[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`}],[`path`,{d:`m19 9-5 5-4-4-3 3`}]],P=[[`path`,{d:`M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z`}],[`path`,{d:`M21.21 15.89A10 10 0 1 1 8 2.83`}]],Je=[[`path`,{d:`M20 6 9 17l-5-5`}]],Ye=[[`path`,{d:`m9 18 6-6-6-6`}]],Xe=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`m16 9-5.5 5.5L8 12`}]],Ze=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],Qe=[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`}]],$e=[[`path`,{d:`m16 18 6-6-6-6`}],[`path`,{d:`m8 6-6 6 6 6`}]],et=[[`path`,{d:`M12 20v2`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M17 20v2`}],[`path`,{d:`M17 2v2`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M2 17h2`}],[`path`,{d:`M2 7h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`M20 17h2`}],[`path`,{d:`M20 7h2`}],[`path`,{d:`M7 20v2`}],[`path`,{d:`M7 2v2`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`}]],tt=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`5`,rx:`2`}],[`line`,{x1:`2`,x2:`22`,y1:`10`,y2:`10`}]],nt=[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`}]],rt=[[`path`,{d:`M12 15V3`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}],[`path`,{d:`m7 10 5 5 5-5`}]],it=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],at=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`}]],ot=[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`}]],st=[[`path`,{d:`M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z`}]],ct=[[`line`,{x1:`6`,x2:`10`,y1:`11`,y2:`11`}],[`line`,{x1:`8`,x2:`8`,y1:`9`,y2:`13`}],[`line`,{x1:`15`,x2:`15.01`,y1:`12`,y2:`12`}],[`line`,{x1:`18`,x2:`18.01`,y1:`10`,y2:`10`}],[`path`,{d:`M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z`}]],lt=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`}],[`path`,{d:`M2 12h20`}]],ut=[[`path`,{d:`M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3`}]],dt=[[`path`,{d:`M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5`}]],ft=[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`}]],pt=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`}],[`circle`,{cx:`9`,cy:`9`,r:`2`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`}]],mt=[[`polyline`,{points:`22 12 16 12 14 15 10 15 8 12 2 12`}],[`path`,{d:`M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`}]],ht=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 16v-4`}],[`path`,{d:`M12 8h.01`}]],gt=[[`path`,{d:`m2 21 9.6-9.6`}],[`path`,{d:`m7.5 15.5 2.3 2.3a1 1 0 0 1 0 1.4l-2.1 2.1a1 1 0 0 1-1.4 0L4 19`}],[`circle`,{cx:`15.5`,cy:`7.5`,r:`5.5`}]],_t=[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`}]],vt=[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`}]],yt=[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`}]],F=[[`path`,{d:`M13 5h8`}],[`path`,{d:`M13 12h8`}],[`path`,{d:`M13 19h8`}],[`path`,{d:`m3 17 2 2 4-4`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`}]],bt=[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`}]],xt=[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`}]],I=[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`}],[`circle`,{cx:`12`,cy:`10`,r:`3`}]],St=[[`path`,{d:`M4 5h16`}],[`path`,{d:`M4 12h16`}],[`path`,{d:`M4 19h16`}]],Ct=[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`}]],wt=[[`path`,{d:`M5 12h14`}]],Tt=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],Et=[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`}],[`path`,{d:`M12 22V12`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`}],[`path`,{d:`m7.5 4.27 9 5.15`}]],Dt=[[`path`,{d:`M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z`}],[`circle`,{cx:`13.5`,cy:`6.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`17.5`,cy:`10.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`6.5`,cy:`12.5`,r:`.5`,fill:`currentColor`}],[`circle`,{cx:`8.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],Ot=[[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`}]],kt=[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`}]],At=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],jt=[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`}]],Mt=[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`}]],Nt=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],Pt=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],Ft=[[`circle`,{cx:`18`,cy:`5`,r:`3`}],[`circle`,{cx:`6`,cy:`12`,r:`3`}],[`circle`,{cx:`18`,cy:`19`,r:`3`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`}]],It=[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`}]],L=[[`path`,{d:`m2.05 2.05 1.099-.028a1 1 0 0 1 1.008.815l2.69 14.347A1 1 0 0 0 7.83 18H18`}],[`path`,{d:`M4.563 5h16.435a1 1 0 0 1 .981 1.204l-1.026 6.226A2 2 0 0 1 18.962 14H6.25`}],[`circle`,{cx:`18`,cy:`20`,r:`2`}],[`circle`,{cx:`8`,cy:`20`,r:`2`}]],Lt=[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`}],[`path`,{d:`M20 2v4`}],[`path`,{d:`M22 4h-4`}],[`circle`,{cx:`4`,cy:`20`,r:`2`}]],Rt=[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`}]],zt=[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`}]],Bt=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],Vt=[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`}]],Ht=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`circle`,{cx:`12`,cy:`12`,r:`6`}],[`circle`,{cx:`12`,cy:`12`,r:`2`}]],Ut=[[`path`,{d:`M10 11v6`}],[`path`,{d:`M14 11v6`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`}],[`path`,{d:`M3 6h18`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`}]],Wt=[[`path`,{d:`M16 17h6v-6`}],[`path`,{d:`m22 17-8.5-8.5-5 5L2 7`}]],R=[[`path`,{d:`M16 7h6v6`}],[`path`,{d:`m22 7-8.5 8.5-5-5L2 17`}]],Gt=[[`path`,{d:`M12 3v12`}],[`path`,{d:`m17 8-5-5-5 5`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}]],Kt=[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`}],[`circle`,{cx:`12`,cy:`7`,r:`4`}]],qt=[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`}],[`circle`,{cx:`9`,cy:`7`,r:`4`}]],Jt=[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`}]],Yt=[[`path`,{d:`M12 20h.01`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`}]],Xt=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],z=[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`}]],B={zap:z,bolt:z,lightning:z,calendar:M,date:M,event:M,cart:L,"shopping-cart":L,bag:L,user:Kt,profile:Kt,users:qt,team:qt,mail:xt,email:xt,message:Ct,chat:Ct,star:zt,rating:zt,heart:dt,like:dt,"trending-up":R,trend:R,"trending-down":Wt,check:Je,done:Je,"circle-check":Xe,"chevron-right":Ye,arrow:Ve,"arrow-right":Ve,play:kt,video:Jt,chart:N,bar:N,"bar-chart":N,line:qe,"line-chart":qe,pie:P,"pie-chart":P,donut:P,sparkles:Lt,feature:Lt,quote:jt,tasks:F,task:F,list:F,pin:I,location:I,map:I,package:Et,product:Et,box:Ge,card:tt,pricing:tt,grid:vt,settings:Pt,search:Nt,menu:St,close:Xt,x:Xt,plus:At,minus:wt,home:ft,bell:Ue,notification:Ue,bookmark:We,save:We,camera:Ke,cloud:Qe,download:rt,upload:Gt,edit:Rt,pen:Rt,eye:it,view:it,file:at,folder:ot,globe:lt,world:lt,image:pt,photo:pt,inbox:mt,info:ht,key:gt,link:yt,lock:bt,moon:Tt,sun:Bt,phone:Ot,call:Ot,share:Ft,shield:It,tag:Vt,trash:Ut,delete:Ut,wifi:Yt,clock:Ze,time:Ze,filter:st,layers:_t,palette:Dt,rocket:Mt,target:Ht,award:He,code:$e,database:nt,db:nt,cpu:et,game:ct,headphones:ut,audio:ut},Zt={sm:18,md:24,lg:32,xl:40},Qt=new Set([`regular`,`bold`,`fat`,`full`,`fill`,`filled`,`solid`,`thin`,`outline`,`light`]),$t=new Set([`sm`,`md`,`lg`,`xl`,`small`,`medium`,`large`,`compact`,`tall`]);function V(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/_/g,`-`)}function en(e){return e.some(e=>e===`xl`)?`xl`:e.some(e=>e===`lg`||e===`large`||e===`tall`)?`lg`:e.some(e=>e===`sm`||e===`small`||e===`compact`)?`sm`:(e.some(e=>e===`md`||e===`medium`),`md`)}function tn(e){return!!B[V(e)]}function nn(e){return B[V(e)]??null}function rn(){let e=new Set,t=[];for(let[n,r]of Object.entries(B))e.has(r)||(e.add(r),t.push(n));return t.sort()}function an(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`)}function on(e,t){let n=t?.trim().toLowerCase();return n===`fill`||n===`filled`||n===`solid`?`fill`:n===`thin`||n===`outline`||n===`light`?`thin`:n===`bold`||n===`fat`||n===`full`?`bold`:e.some(e=>[`fill`,`filled`,`solid`].includes(e))?`fill`:e.some(e=>[`thin`,`outline`,`light`].includes(e))?`thin`:e.some(e=>[`bold`,`fat`,`full`].includes(e))?`bold`:`regular`}function sn(e){return e===`fill`?{fill:`currentColor`,stroke:`none`,strokeWidth:`0`,classExtra:`is-fill`}:e===`thin`?{fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,classExtra:`is-thin`}:e===`bold`?{fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,classExtra:`is-bold`}:{fill:`none`,stroke:`currentColor`,strokeWidth:`2`,classExtra:`is-regular`}}function cn(e,t){return e.map(([e,n])=>{let r={};for(let[e,t]of Object.entries(n))t!==void 0&&(r[e]=t);return t===`fill`&&(r.fill=`currentColor`,r.stroke=`none`),`<${e} ${Object.entries(r).map(([e,t])=>`${e}="${an(String(t))}"`).join(` `)}/>`}).join(``)}function ln(e,t=`md`,n=`nexa-icon`,r=`regular`){let i=nn(e);if(!i)return``;let a=typeof t==`number`?t:Zt[t]??Zt.md,o=sn(r),s=`${n} ${o.classExtra}`.trim();return`<svg xmlns="http://www.w3.org/2000/svg" width="${a}" height="${a}" viewBox="0 0 24 24" fill="${o.fill}" stroke="${o.stroke}" stroke-width="${o.strokeWidth}" stroke-linecap="round" stroke-linejoin="round" class="${s}" aria-hidden="true">${cn(i,r)}</svg>`}function H(e,t=24,n=`nexa-icon`,r=`regular`){let i=e.trim();return i?/^https?:\/\//.test(i)||i.startsWith(`/`)?`<img src="${an(i)}" alt="" loading="lazy" class="${n} is-img">`:tn(i)?ln(i,t,n,r):`<span class="${n} is-emoji" aria-hidden="true">${i}</span>`:``}function un(e){e.register(`ico`,({modifiers:e,element:t,label:n})=>{let r=(n??``).trim().split(/\s+/).map(V).filter(Boolean),i=[...e.map(V),...r],a=en(i),o=on(i,t.getAttribute(`weight`));return ln(i.find(e=>!$t.has(e)&&!Qt.has(e))??t.getAttribute(`name`)??t.getAttribute(`icon`)??`zap`,a,`nexa-icon`,o)})}var dn=[`cover`,`product`,`video`,`event`,`promo`,`pricing`,`analytics`,`quote`,`tasks`,`profile`,`feature`,`media`,`icon`,`metric`];function fn(e,t){return e.includes(t)}function pn(e){for(let t of dn)if(fn(e,t))return t;return fn(e,`horizontal`),`default`}function U(e){return e.getAttribute(`image`)??e.getAttribute(`img`)??e.getAttribute(`cover`)??``}function mn(e){let t=(e.getAttribute(`art`)??``).toLowerCase();if(t===`hero`||t===`sculpture`||t===`vision`)return!0;let n=U(e);return n?j(n):!1}function W(e,t=``){let n=U(e);if(!n)return t;if(j(n))return``;let r=A(n);return r.startsWith(`/`)||/^https?:\/\//.test(r)?r:`/cards/${r}`}function hn(e,t=A(`mark`)){let n=e.getAttribute(`avatar`)??U(e);if(!n||j(n))return t;let r=A(n);return r.startsWith(`/`)||/^https?:\/\//.test(r)?r:`/cards/${r}`}function G(e,t,n=``,r=!1){if(mn(e)||r&&!U(e))return Be(t);let i=W(e,n);return i?`<img src="${i}" alt="" loading="lazy">`:r||t===`cover`?Be(t):``}function K(e,t=!1){return t?`<button class="nexa-cta is-ghost" type="button">${e}</button>`:`<button class="nexa-cta nexa-card-cta" type="button"><span>${e}</span><i class="nexa-cta-arrow" aria-hidden="true"></i></button>`}function q(e){return`<a class="nexa-card-link" href="#">${e}</a>`}function J(e,t=``){return`<span class="nexa-card-badge${t?` ${t}`:``}">${e}</span>`}function gn(e){let t=T(e,/,/).map(e=>Number(e.trim())).filter(e=>Number.isFinite(e));if(t.length<2)return``;let n=Math.max(...t),r=Math.min(...t),i=n-r||1;return`<svg class="nexa-card-spark" viewBox="0 0 220 52" preserveAspectRatio="none" aria-hidden="true"><polyline fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" points="${t.map((e,n)=>{let a=n/(t.length-1)*220,o=52-(e-r)/i*42-5;return`${a.toFixed(1)},${o.toFixed(1)}`}).join(` `)}"/></svg>`}function _n(e){let t=Math.min(5,Math.max(0,Math.round(Number(e)||0)));return`${`★`.repeat(t)}${`☆`.repeat(5-t)}`}function vn(e){return D(e.getAttribute(`tasks`)??e.getAttribute(`items`)).map(e=>{let t=e.head,n=(e.body||`medium`).toLowerCase();return{checked:t.startsWith(`[x]`)||t.startsWith(`✓`),label:t.replace(/^\[x\]\s*|^\[ \]\s*|^✓\s*/,``).trim(),priority:n}})}function yn(e){return T(e.getAttribute(`features`)??e.getAttribute(`items`))}function bn(e){return D(e.getAttribute(`stats`)).map(e=>({label:e.head,value:e.body}))}function xn(e,t,n){let{badge:r,title:i,text:a,cta:o,tag:s}=n;switch(t){case`cover`:return Sn(e,r,i,a,o,s);case`product`:return Cn(e,r,i,a,o,s);case`video`:return wn(e,r,i,a,o,s);case`event`:return Tn(e,i,a,o,s);case`promo`:return En(e,r,i,a,o,s);case`pricing`:return Dn(e,r,i,a,o,s);case`analytics`:return On(e,i,a,s);case`quote`:return kn(e,i,a,s);case`tasks`:return An(e,i,o,s);case`profile`:return jn(e,i,a,o,s);case`feature`:return Mn(e,r,i,a,o,s);case`media`:return Nn(e,r,i,a,o,s);case`icon`:return Pn(e,r,i,a,o,s);case`metric`:return Fn(e,i,a,o,s);default:return In(e,r,i,a,o,s)}}function Sn(e,t,n,r,i,a){let o=e.getAttribute(`badge`)??e.getAttribute(`eyebrow`)??t??`Featured`,s=e.getAttribute(`category`)??``,c=e.getAttribute(`price`)??``;return`<div class="nexa-card-cover">${G(e,`cover`,``,!0)}<div class="nexa-card-cover-overlay">${o?J(o,`is-light`):``}${s?`<small class="nexa-card-category">${s}</small>`:``}<h3>${n}</h3>${r?`<p>${r}</p>`:``}<div class="nexa-card-cover-foot">${c?`<b>${c}</b>`:``}${i?K(i):``}</div></div></div>${a}`}function Cn(e,t,n,r,i,a){let o=e.getAttribute(`badge`)??e.getAttribute(`eyebrow`)??t,s=e.getAttribute(`rating`)??`4.8`,c=e.getAttribute(`reviews`)??`128`,l=e.getAttribute(`price`)??`$199`,u=e.getAttribute(`compare`)??e.getAttribute(`was`)??``,d=i??``;return`<div class="nexa-card-product"><div class="nexa-card-media">${W(e)?`<img class="nexa-card-product-photo" src="${W(e)}" alt="" loading="lazy">`:ze()}</div><div class="nexa-card-body">${o?J(o,`is-new`):``}<h3>${n}</h3><div class="nexa-card-rating"><span class="nexa-card-stars" aria-hidden="true">${_n(s)}</span><span>${s}</span><em>(${c})</em></div><p>${r}</p><div class="nexa-card-product-foot"><div class="nexa-card-prices"><b>${l}</b>${u?`<s>${u}</s>`:``}</div>${d?K(d):``}</div></div></div>${a}`}function wn(e,t,n,r,i,a){let o=e.getAttribute(`category`)??t,s=e.getAttribute(`duration`)??`12:40`,c=e.getAttribute(`views`)??`2.4k views`;return`<div class="nexa-card-video"><div class="nexa-card-video-media">${G(e,`cover`,``,!0)}<button class="nexa-card-play" type="button" aria-label="Play">▶</button></div><div class="nexa-card-body"><small>${o}</small><h3>${n}</h3><p>${r}</p><div class="nexa-card-meta"><span>${s}</span><span>${c}</span></div>${i?`<footer class="nexa-card-foot">${q(i)}</footer>`:``}</div></div>${a}`}function Tn(e,t,n,r,i){let a=e.getAttribute(`icon`)??`calendar`,o=e.getAttribute(`date`)??e.getAttribute(`when`)??`Oct 12, 2025`,s=e.getAttribute(`location`)??e.getAttribute(`where`)??`San Francisco`;return`<div class="nexa-card-event"><div class="nexa-card-event-icon" aria-hidden="true">${H(a,22,`nexa-icon`)}</div><div><h3>${t}</h3><p>${n}</p><ul class="nexa-card-event-meta"><li>${o}</li><li>${s}</li></ul>${r?q(r):``}</div></div>${i}`}function En(e,t,n,r,i,a){let o=yn(e);return`<div class="nexa-card-promo"><div class="nexa-card-promo-visual">${G(e,`inline`,``,!0)}</div><div class="nexa-card-body">${J(t)}<h3>${n}</h3><p>${r}</p>${o.length?`<ul class="nexa-card-checklist">${o.map(e=>`<li>${e}</li>`).join(``)}</ul>`:``}${i?`<footer class="nexa-card-foot">${K(i)}</footer>`:``}</div></div>${a}`}function Dn(e,t,n,r,i,a){let o=e.getAttribute(`badge`)??e.getAttribute(`eyebrow`)??t,s=e.getAttribute(`price`)??`$29`,c=e.getAttribute(`period`)??`/month`,l=e.getAttribute(`hint`)??e.getAttribute(`subtext`)??``,u=yn(e),d=e.getAttribute(`text`)??e.getAttribute(`desc`)??r;return`<div class="nexa-card-pricing">${o?J(o):``}<h3>${n||s}</h3><div class="nexa-card-price-line"><b>${s}</b><span>${c}</span></div>${d?`<p>${d}</p>`:``}${u.length?`<ul class="nexa-card-checklist">${u.map(e=>`<li>${e}</li>`).join(``)}</ul>`:``}${i?`<footer class="nexa-card-foot">${K(i)}${l?`<em>${l}</em>`:``}</footer>`:``}</div>${a}`}function On(e,t,n,r){let i=e.getAttribute(`value`)??e.getAttribute(`metric`)??`$24,780`,a=e.getAttribute(`label`)??t,o=e.getAttribute(`trend`)??`+12.5%`,s=e.getAttribute(`data`)??e.getAttribute(`chart`)??`42,58,54,71,65,88,96`,c=!o.trim().startsWith(`-`);return`<div class="nexa-card-analytics"><div class="nexa-card-analytics-head"><span>${a}</span>${o?`<b class="nexa-card-trend${c?` is-up`:` is-down`}">${c?`↑`:`↓`} ${o.replace(/^[-+]/,``)}</b>`:``}</div><div class="nexa-card-analytics-value">${i}</div>${n?`<p>${n}</p>`:``}${gn(s)}</div>${r}`}function kn(e,t,n,r){let i=e.getAttribute(`quote`)??n,a=e.getAttribute(`name`)??t,o=e.getAttribute(`role`)??e.getAttribute(`subtitle`)??``,s=hn(e),c=Number(e.getAttribute(`dots`)??`3`),l=Number(e.getAttribute(`active`)??`1`),u=s?`<img class="nexa-card-avatar" src="${s}" alt="" loading="lazy">`:`<span class="nexa-card-avatar is-initials" aria-hidden="true">${Ln(a)}</span>`,d=c>1?`<div class="nexa-card-dots" aria-hidden="true">${Array.from({length:c},(e,t)=>`<i class="${t+1===l?`is-active`:``}"></i>`).join(``)}</div>`:``;return`<div class="nexa-card-quote"><div class="nexa-card-quote-mark" aria-hidden="true">"</div><blockquote>${i}</blockquote><div class="nexa-card-quote-user">${u}<div><strong>${a}</strong>${o?`<span>${o}</span>`:``}</div></div>${d}</div>${r}`}function An(e,t,n,r){let i=vn(e);return`<div class="nexa-card-tasks" data-nexa-tasks><header><h3>${t}</h3><span class="nexa-card-count">${e.getAttribute(`count`)??String(i.length)}</span></header><ul>${i.map(e=>`<li class="is-${e.priority}${e.checked?` is-done`:``}"><label><input type="checkbox"${e.checked?` checked`:``}><span>${e.label}</span></label><em>${e.priority}</em></li>`).join(``)}</ul>${n?q(n):``}</div>${r}`}function jn(e,t,n,r,i){let a=e.getAttribute(`name`)??t,o=e.getAttribute(`role`)??e.getAttribute(`subtitle`)??``,s=e.getAttribute(`location`)??e.getAttribute(`where`)??``,c=bn(e),l=hn(e),u=e.getAttribute(`cta2`);return`<div class="nexa-card-profile-stack">${l?`<img class="nexa-card-avatar" src="${l}" alt="" loading="lazy">`:`<span class="nexa-card-avatar is-initials" aria-hidden="true">${Ln(a)}</span>`}<strong>${a}</strong>${o?`<span class="nexa-card-role">${o}</span>`:``}${s?`<span class="nexa-card-location">${s}</span>`:``}${c.length?`<div class="nexa-card-stats">${c.map(e=>`<div><b>${e.value}</b><span>${e.label}</span></div>`).join(``)}</div>`:``}${n?`<p>${n}</p>`:``}<div class="nexa-card-profile-actions">${u?`<button class="nexa-card-icon-btn" type="button" aria-label="${u}">${H(`mail`,18,`nexa-icon`)}</button>`:``}${r?K(r):``}</div></div>${i}`}function Mn(e,t,n,r,i,a){let o=e.getAttribute(`icon`)??`zap`,s=e.getAttribute(`badge`)??e.getAttribute(`eyebrow`)??t,c=i??`Learn more →`;return`<div class="nexa-card-feature"><div class="nexa-card-icon">${H(o,26,`nexa-icon`)}</div>${s?J(s):``}<h3>${n}</h3><p>${r}</p>${c?q(c):``}</div>${a}`}function Nn(e,t,n,r,i,a){let o=``;if(mn(e)||!U(e))o=`<div class="nexa-card-media is-hero">${G(e,`cover`,``,!0)}</div>`;else{let t=W(e);o=t?`<div class="nexa-card-media"><img src="${t}" alt="" loading="lazy"></div>`:`<div class="nexa-card-media is-placeholder" aria-hidden="true"></div>`}return`${o}<div class="nexa-card-body"><small>${t}</small><h3>${n}</h3><p>${r}</p>${i?`<footer class="nexa-card-foot">${K(i)}</footer>`:``}</div>${a}`}function Pn(e,t,n,r,i,a){let o=(e.getAttribute(`icon`)??e.getAttribute(`icons`)??`zap`).split(`,`).map(e=>e.trim()).filter(Boolean),s=e=>H(e,22,`nexa-icon`);return`${o.length>1?`<div class="nexa-card-icons">${o.map(e=>`<span class="nexa-card-icon-item">${s(e)}</span>`).join(``)}</div>`:`<div class="nexa-card-icon">${s(o[0]??`zap`)}</div>`}<div class="nexa-card-body"><small>${t}</small><h3>${n}</h3><p>${r}</p>${i?`<footer class="nexa-card-foot">${K(i)}</footer>`:``}</div>${a}`}function Fn(e,t,n,r,i){return`<div class="nexa-card-metric"><b>${e.getAttribute(`value`)??e.getAttribute(`metric`)??`99+`}</b><span>${e.getAttribute(`label`)??t}</span></div><p>${n}</p>${r?`<footer class="nexa-card-foot">${K(r)}</footer>`:``}${i}`}function In(e,t,n,r,i,a){let o=W(e);return`${o?`<div class="nexa-card-media"><img src="${o}" alt="" loading="lazy"></div>`:``}<small>${t}</small><h3>${n}</h3><p>${r}</p>${i?`<footer class="nexa-card-foot">${K(i)}</footer>`:``}${a}`}function Ln(e){return e.split(/\s+/).filter(Boolean).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)||`N`}var Rn=[`soft`,`fade`,`slide`,`lift`,`tilt`,`flip`,`magnetic`,`float`,`glow`,`shine`,`aurora`,`bounce`,`zoom`,`pulse`,`reveal`],zn=[`plain`,`bordered`,`elevated`,`glass`,`horizontal`,`square`,`interactive`],Bn={soft:{enter:`soft`,hover:`soft`},fade:{enter:`fade`,hover:`soft`},slide:{enter:`slide`,hover:`lift`},lift:{enter:`slide`,hover:`lift`},tilt:{enter:`fade`,hover:`tilt`,tilt:!0},flip:{enter:`fade`,hover:`flip`},magnetic:{enter:`fade`,hover:`magnetic`,magnetic:!0},float:{enter:`float`,hover:`none`},glow:{enter:`glow`,hover:`glow`},shine:{enter:`shine`,hover:`soft`},aurora:{enter:`aurora`,hover:`none`},bounce:{enter:`bounce`,hover:`soft`},zoom:{enter:`zoom`,hover:`soft`},pulse:{enter:`pulse`,hover:`none`},reveal:{enter:`reveal`,hover:`soft`,reveal:!0}};function Vn(e,t){return e.includes(t)}function Hn(e){return Rn.find(t=>Vn(e,t))??`soft`}function Un(e,t){t.some(e=>zn.includes(e))||e.classList.add(`nexa-elevated`);let n=pn(t);if(n!==`default`&&e.classList.add(`is-${n}`),Vn(t,`static`))return;let r=Hn(t),i=Bn[r];e.classList.add(`nexa-anim-${i.enter}`),e.classList.add(`nexa-model-${r}`),e.setAttribute(`data-nexa-hover`,i.hover),i.tilt&&e.setAttribute(`data-nexa-tilt`,``),i.magnetic&&e.setAttribute(`data-nexa-magnetic`,``),i.reveal&&e.setAttribute(`data-nexa-reveal`,``);let a=e.getAttribute(`delay`);a&&e.style.setProperty(`--nexa-anim-delay`,`${a}ms`)}function Wn(e,t,n=[]){if(t.trim())return t;let r=pn(n);return xn(e,r,{badge:e.getAttribute(`badge`)??e.getAttribute(`eyebrow`)??``,title:e.getAttribute(`title`)??(r===`default`?`Beautiful by default`:``),text:(e.getAttribute(`text`)??e.getAttribute(`desc`)??``)||(r===`default`?`Clean structure, refined spacing, and motion built in — one command.`:``),cta:e.getAttribute(`cta`)??void 0,tag:e.getAttribute(`data-model-label`)?`<span class="nexa-card-model-tag">${e.getAttribute(`data-model-label`)}</span>`:``})}var Gn=[`primary`,`secondary`,`outline`,`ghost`,`danger`];function Kn(e){return e===`secondary`?`nexa-cta is-secondary`:e===`outline`?`nexa-cta is-outline`:e===`ghost`?`nexa-cta is-ghost`:e===`danger`?`nexa-cta is-danger`:`nexa-cta`}function qn(e){e.register(`button-group`,({element:e,modifiers:t})=>{let n=T(e.getAttribute(`buttons`)??e.getAttribute(`labels`)??`Save,Cancel`),r=T(e.getAttribute(`variants`)??``,/,/),i=w(t,`vertical`);return i&&e.classList.add(`is-vertical`),`<div class="nexa-btn-group${i?` is-vertical`:``}">${n.map((e,n)=>{let i=r[n]??t.find(e=>Gn.includes(e))??(n===0?`primary`:`ghost`);return`<button type="button" class="${Kn(Gn.includes(i)?i:`ghost`)}">${e}</button>`}).join(``)}</div>`}),e.register(`list-group`,({element:e,modifiers:t})=>{let n=w(t,`flush`),r=D(e.getAttribute(`items`)??`Home|active;Profile;Settings|badge 3;Messages|badge 12`);return n&&e.classList.add(`is-flush`),`<ul class="nexa-list-group">${r.map(e=>{let t=e.body.toLowerCase().includes(`active`),n=e.body.match(/badge\s+(\S+)/i)?.[1];return`<li class="nexa-list-group-item${t?` is-active`:``}"><span>${e.head}</span>${n?`<i>${n}</i>`:``}</li>`}).join(``)}</ul>`}),e.register(`navbar`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-navbar`,``),w(t,`fixed`)&&e.classList.add(`is-fixed`),w(t,`dark`)&&e.classList.add(`is-dark`),w(t,`light`)&&e.classList.add(`is-light`);let n=e.getAttribute(`logo`)??`Nexa`,r=e.getAttribute(`logo-image`),i=e.getAttribute(`logo-href`)??`#`,a=e.getAttribute(`cta`)??`Get Started`,o=e.getAttribute(`cta-href`)??`#`,s=T(e.getAttribute(`links`)??`Home,Features,Pricing,About`).map(e=>{let[t,n]=e.split(`|`).map(e=>e.trim());return`<a href="${n||`#`}">${t}</a>`}).join(``);return`<a class="nexa-navbar-brand nexa-logo" href="${i}">${r?`<img src="${r}" alt="">`:``}<span>${n}</span></a><button type="button" class="nexa-navbar-toggle" data-nav-toggle aria-label="Menu"><i></i><i></i><i></i></button><div class="nexa-navbar-menu" data-nav-menu><div class="nexa-navbar-links" role="navigation">${s}</div><a class="nexa-cta" href="${o}">${a}</a></div>`}),e.register(`input-group`,({element:e,modifiers:t})=>{let n=t.find(e=>[`text`,`email`,`password`,`search`,`tel`,`url`,`number`].includes(e))??`text`,r=e.getAttribute(`label`)??`Field`,i=e.getAttribute(`prefix`)??e.getAttribute(`prepend`)??``,a=e.getAttribute(`suffix`)??e.getAttribute(`append`)??``,o=e.getAttribute(`placeholder`)??``,s=e.getAttribute(`value`)??``;return`<label class="nexa-input-group"><span>${r}</span><div class="nexa-input-group-row">${i?`<i class="nexa-input-addon">${i}</i>`:``}<input type="${n}" placeholder="${o}" value="${s}">${a?`<i class="nexa-input-addon">${a}</i>`:``}</div></label>`}),e.register(`close`,({element:e})=>`<button type="button" class="nexa-close" data-nexa-close aria-label="${e.getAttribute(`label`)??`Close`}">×</button>`),e.register(`switch`,({element:e,modifiers:t})=>{let n=e.getAttribute(`label`)??`Toggle`,r=w(t,`checked`)||e.hasAttribute(`checked`);return`<label class="nexa-switch"><input type="checkbox" id="${`nexa-sw-${Math.random().toString(36).slice(2,8)}`}"${r?` checked`:``}${w(t,`disabled`)?` disabled`:``}><i aria-hidden="true"></i><span>${n}</span></label>`}),e.register(`scrollspy`,({element:e})=>(e.setAttribute(`data-nexa-scrollspy`,``),`<div class="nexa-scrollspy" role="navigation" aria-label="Scrollspy">${D(e.getAttribute(`items`)??`#one|Section 1;#two|Section 2;#three|Section 3`).map((e,t)=>`<a href="${e.head.startsWith(`#`)?e.head:`#${e.head}`}" data-spy-link class="${t===0?`is-active`:``}">${e.body||e.head}</a>`).join(``)}</div>`)),e.register(`skeleton`,({modifiers:e})=>{let t=Number(e.find(e=>/^lines-\d+$/.test(e))?.split(`-`)[1]??`0`);return w(e,`card`)?`<div class="nexa-skeleton is-card"><i></i><b></b><b class="is-short"></b></div>`:w(e,`avatar`)?`<div class="nexa-skeleton is-avatar"></div>`:t>0?`<div class="nexa-skeleton is-lines">${Array.from({length:t},(e,n)=>`<i class="${n===t-1?`is-short`:``}"></i>`).join(``)}</div>`:`<div class="nexa-skeleton"><i></i></div>`}),e.register(`figure`,({element:e,modifiers:t})=>{let[n,r]=(t.find(e=>/^ratio-/.test(e))?.replace(`ratio-`,``)??e.getAttribute(`ratio`)??`16x9`).split(`x`).map(Number),i=e.getAttribute(`image`)??e.getAttribute(`src`)??``,a=e.getAttribute(`caption`)??e.getAttribute(`text`)??``,o=e.getAttribute(`alt`)??``;return e.style.setProperty(`--nexa-ratio`,`${n||16}/${r||9}`),`${i?`<div class="nexa-figure-media"><img src="${i}" alt="${o}" loading="lazy"></div>`:`<div class="nexa-figure-media is-empty"></div>`}${a?`<figcaption>${a}</figcaption>`:``}`}),e.register(`select`,({element:e,modifiers:t})=>{let n=e.getAttribute(`label`)??`Select`,r=T(e.getAttribute(`options`)??e.getAttribute(`items`)??`Option 1,Option 2,Option 3`),i=w(t,`float`),a=`${w(t,`required`)?`required`:``} ${w(t,`disabled`)?`disabled`:``}`.trim(),o=e.getAttribute(`name`),s=o?` name="${o}"`:``,c=r.map((e,t)=>`<option value="${e}"${t===0?` selected`:``}>${e}</option>`).join(``);return i?`<label class="nexa-field-float"><select${s} ${a}>${c}</select><span>${n}</span></label>`:`<label class="nexa-field-wrap"><span>${n}</span><select${s} ${a}>${c}</select></label>`}),e.register(`textarea`,({element:e,modifiers:t})=>{let n=e.getAttribute(`label`)??`Message`,r=e.getAttribute(`rows`)??`4`,i=w(t,`float`),a=e.getAttribute(`placeholder`)??(i?` `:``),o=e.getAttribute(`value`)??e.textContent?.trim()??``,s=`${w(t,`required`)?`required`:``} ${w(t,`disabled`)?`disabled`:``}`.trim(),c=e.getAttribute(`name`),l=c?` name="${c}"`:``;return i?`<label class="nexa-field-float"><textarea${l} rows="${r}" placeholder="${a}" ${s}>${o}</textarea><span>${n}</span></label>`:`<label class="nexa-field-wrap"><span>${n}</span><textarea${l} rows="${r}" placeholder="${a}" ${s}>${o}</textarea></label>`})}var Jn=0;function Y(e){return Jn+=1,`${e}${Jn}`}function X(e){let t=D(e);return t.length?t.map(e=>{let t=Number(e.body.replace(/[^0-9.-]/g,``));return{label:e.head||`—`,value:Number.isFinite(t)?t:0}}).filter(e=>e.label):T(e).map((e,t)=>{let n=Number(e.replace(/[^0-9.-]/g,``));return{label:String(t+1),value:Number.isFinite(n)?n:0}})}function Z(e){return Math.max(1,...e.map(e=>e.value))}function Q(e,t){let n=t<=1?0:e/(t-1);return n<.33?`var(--nexa-cyan,#00c6ff)`:n<.66?`var(--nexa-sky,#2e9eff)`:`var(--nexa-violet,#7c5cfc)`}function Yn(e,t){let n=Z(e);return`<div class="nexa-chart-bars" role="img" aria-label="Bar chart">${e.map((r,i)=>`<div class="nexa-chart-bar" style="--h:${Math.round(r.value/n*100)}%;--c:${Q(i,e.length)};${t?`--d:${i*60}ms`:``}"><i></i><b>${r.value}</b><span>${r.label}</span></div>`).join(``)}</div>`}function Xn(e,t,n){let r=Z(e),i=e.length<=1?0:92/Math.max(1,e.length-1),a=e.map((e,t)=>({x:4+t*i,y:52-e.value/r*48,p:e})),o=a.map((e,t)=>`${t?`L`:`M`}${e.x.toFixed(2)} ${e.y.toFixed(2)}`).join(` `),s=`M${a[0]?.x.toFixed(2)??4} 52 ${a.map(e=>`L${e.x.toFixed(2)} ${e.y.toFixed(2)}`).join(` `)} L${a.at(-1)?.x.toFixed(2)??96} 52 Z`,c=a.map((e,t)=>`<circle class="nexa-chart-dot" cx="${e.x}" cy="${e.y}" r="1.6" style="--d:${t*50}ms"><title>${e.p.label}: ${e.p.value}</title></circle>`).join(``),l=Y(`nexaLine`),u=Y(`nexaArea`),d=`<div class="nexa-chart-x">${e.map(e=>`<span>${e.label}</span>`).join(``)}</div>`;return`<div class="nexa-chart-line ${t?`is-area`:``} ${n?`is-anim`:``}" role="img" aria-label="${t?`Area`:`Line`} chart">
|
|
11
|
+
<svg viewBox="0 0 100 56" preserveAspectRatio="none" aria-hidden="true">
|
|
12
|
+
<defs>
|
|
13
|
+
<linearGradient id="${l}" x1="0" y1="0" x2="1" y2="0"><stop offset="0%" stop-color="#00c6ff"/><stop offset="50%" stop-color="#2e9eff"/><stop offset="100%" stop-color="#7c5cfc"/></linearGradient>
|
|
14
|
+
<linearGradient id="${u}" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#2e9eff" stop-opacity=".35"/><stop offset="100%" stop-color="#7c5cfc" stop-opacity="0"/></linearGradient>
|
|
15
|
+
</defs>
|
|
16
|
+
${t?`<path class="nexa-chart-area" d="${s}" fill="url(#${u})"/>`:``}
|
|
17
|
+
<path class="nexa-chart-path" d="${o}" fill="none" stroke="url(#${l})" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
|
|
18
|
+
${c}
|
|
19
|
+
</svg>${d}</div>`}function Zn(e,t){let n=e.reduce((e,t)=>e+t.value,0)||1,r=2*Math.PI*42,i=0,a=e.map((t,a)=>{let o=t.value/n*r,s=`${o} ${r-o}`,c=`<circle class="nexa-chart-ring" r="42" cx="50" cy="50" stroke="${Q(a,e.length)}" stroke-dasharray="${s}" stroke-dashoffset="${-i}" pathLength="${r}" style="--len:${o};--gap:${r-o};--off:${-i};--d:${a*80}ms"><title>${t.label}: ${t.value}</title></circle>`;return i+=o,c}).join(``),o=e.map((t,r)=>`<li style="--c:${Q(r,e.length)}"><i></i><span>${t.label}</span><b>${Math.round(t.value/n*100)}%</b></li>`).join(``);return`<div class="nexa-chart-donut ${t?`is-anim`:``}" role="img" aria-label="Donut chart">
|
|
20
|
+
<svg viewBox="0 0 100 100" aria-hidden="true">
|
|
21
|
+
<circle class="nexa-chart-ring-bg" r="42" cx="50" cy="50"/>
|
|
22
|
+
${a}
|
|
23
|
+
<text x="50" y="48" text-anchor="middle" class="nexa-chart-donut-val">${n}</text>
|
|
24
|
+
<text x="50" y="58" text-anchor="middle" class="nexa-chart-donut-lbl">TOTAL</text>
|
|
25
|
+
</svg>
|
|
26
|
+
<ul class="nexa-chart-legend">${o}</ul>
|
|
27
|
+
</div>`}function Qn(e){let t=Z(e),n=e.length<=1?0:116/Math.max(1,e.length-1),r=e.map((e,r)=>{let i=2+r*n,a=26-e.value/t*24;return`${r?`L`:`M`}${i.toFixed(1)} ${a.toFixed(1)}`}).join(` `),i=Y(`nexaSpark`);return`<div class="nexa-chart-spark" role="img" aria-label="Sparkline"><svg viewBox="0 0 120 28" preserveAspectRatio="none"><defs><linearGradient id="${i}" x1="0" y1="0" x2="1" y2="0"><stop offset="0%" stop-color="#00c6ff"/><stop offset="100%" stop-color="#7c5cfc"/></linearGradient></defs><path d="${r}" fill="none" stroke="url(#${i})" stroke-width="2" stroke-linecap="round"/></svg></div>`}var $n={bar:`Jan|42;Feb|58;Mar|71;Apr|65;May|88;Jun|96`,line:`Mon|12;Tue|19;Wed|15;Thu|28;Fri|24;Sat|32;Sun|30`,area:`W1|40;W2|55;W3|48;W4|72;W5|68;W6|90`,donut:`Pro|48;Studio|27;Starter|25`,spark:`12,18,14,22,19,28,26,34,30,38`};function er(e){e.register(`chart`,({modifiers:e,element:t})=>{let n=[`bar`,`line`,`area`,`donut`,`pie`,`spark`,`sparkline`].find(t=>w(e,t))??`bar`,r=n===`pie`?`donut`:n===`sparkline`?`spark`:n;t.classList.add(`is-${r}`);let i=!w(e,`static`);i&&t.classList.add(`is-anim`);let a=t.getAttribute(`title`)??t.getAttribute(`label`)??``,o=t.getAttribute(`subtitle`)??t.getAttribute(`desc`)??``,s=t.getAttribute(`data`)??t.getAttribute(`values`)??t.getAttribute(`series`)??$n[r]??$n.bar,c=r===`spark`?s.includes(`|`)?X(s):X(s.split(/[,;\s]+/).filter(Boolean).map((e,t)=>`${t+1}|${e}`).join(`;`)):X(s),l=a||o?`<header class="nexa-chart-head">${a?`<h3>${a}</h3>`:``}${o?`<p>${o}</p>`:``}</header>`:``;if(!w(e,`pro`)){let e=``;return e=r===`bar`?Yn(c,i):r===`line`?Xn(c,!1,i):r===`area`?Xn(c,!0,i):r===`donut`?Zn(c,i):Qn(c),t.classList.add(`is-css`),`<div class="nexa-chart-card">${l}${e}</div>`}t.classList.add(`is-echarts`);let u=i?``:` data-static="true"`;return`<div class="nexa-chart-card is-pro">${l}${`<div class="nexa-echart-host" data-nexa-echart="${r}" data-chart="${(e=>e.replace(/&/g,`&`).replace(/"/g,`"`))(s)}"${u} role="img" aria-label="${r} chart"></div>`}</div>`})}var tr=[`يناير`,`فبراير`,`مارس`,`أبريل`,`مايو`,`يونيو`,`يوليو`,`أغسطس`,`سبتمبر`,`أكتوبر`,`نوفمبر`,`ديسمبر`],nr=[`أحد`,`إثن`,`ثلا`,`أرب`,`خمي`,`جمع`,`سبت`];function $(e){return String(e).padStart(2,`0`)}function rr(e){if(!e)return null;let t=e.trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);return t?{y:Number(t[1]),m:Number(t[2]),d:Number(t[3])}:null}function ir(e,t,n){return`${n} ${tr[t-1]} ${e}`}function ar(e,t,n){let r=new Date(e,t-1,1).getDay(),i=new Date(e,t,0).getDate(),a=new Date,o=[];for(let e=0;e<r;e++)o.push(`<span class="nexa-cal-empty"></span>`);for(let r=1;r<=i;r++){let i=n&&n.y===e&&n.m===t&&n.d===r,s=a.getFullYear()===e&&a.getMonth()+1===t&&a.getDate()===r;o.push(`<button type="button" class="nexa-cal-day${i?` is-selected`:``}${s?` is-today`:``}" data-day="${r}">${r}</button>`)}return o.join(``)}function or(e){e.register(`datepicker`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-datepicker`,``);let n=e.getAttribute(`label`)??`التاريخ`,r=e.getAttribute(`placeholder`)??`اختر تاريخاً`,i=e.getAttribute(`value`)??``,a=rr(i),o=new Date,s=a?.y??o.getFullYear(),c=a?.m??o.getMonth()+1,l=a?ir(a.y,a.m,a.d):``,u=w(t,`required`)?` required`:``,d=w(t,`disabled`);return d&&e.classList.add(`is-disabled`),`<label class="nexa-picker-field"><span>${n}${u?`<b>*</b>`:``}</span><button type="button" class="nexa-picker-trigger" data-dp-toggle ${d?`disabled`:``} aria-haspopup="dialog" aria-expanded="false"><span data-dp-display class="${a?`has-value`:``}">${l||r}</span><i class="nexa-picker-ico" aria-hidden="true"></i></button><input type="hidden" data-dp-value value="${i}"${u}>
|
|
28
|
+
<div class="nexa-datepicker-panel" data-dp-panel hidden role="dialog" aria-label="${n}">
|
|
29
|
+
<div class="nexa-cal-head"><button type="button" data-dp-prev aria-label="السابق">‹</button><strong data-dp-title>${tr[c-1]} ${s}</strong><button type="button" data-dp-next aria-label="التالي">›</button></div>
|
|
30
|
+
<div class="nexa-cal-weekdays">${nr.map(e=>`<span>${e}</span>`).join(``)}</div>
|
|
31
|
+
<div class="nexa-cal-grid" data-dp-grid data-year="${s}" data-month="${c}">${ar(s,c,a)}</div>
|
|
32
|
+
<div class="nexa-cal-foot"><button type="button" class="nexa-button nexa-ghost nexa-sm" data-dp-clear>مسح</button><button type="button" class="nexa-button nexa-primary nexa-sm nexa-pill" data-dp-today>اليوم</button></div>
|
|
33
|
+
</div></label>`}),e.register(`timepicker`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-timepicker`,``);let n=e.getAttribute(`label`)??`الوقت`,r=e.getAttribute(`placeholder`)??`اختر وقتاً`,i=e.getAttribute(`value`)??``,a=Number(e.getAttribute(`step`)??`15`),o=[5,10,15,30].includes(a)?a:15,s=12,c=0,l=i.trim().match(/^(\d{1,2}):(\d{2})$/);l&&(s=Math.min(23,Number(l[1])),c=Math.min(59,Number(l[2])));let u=l?`${$(s)}:${$(c)}`:``,d=w(t,`required`)?` required`:``,f=w(t,`disabled`);f&&e.classList.add(`is-disabled`);let p=Array.from({length:24},(e,t)=>`<button type="button" class="nexa-tp-opt${t===s?` is-selected`:``}" data-tp-h="${t}">${$(t)}</button>`).join(``),m=Array.from({length:Math.floor(60/o)},(e,t)=>{let n=t*o;return`<button type="button" class="nexa-tp-opt${n===c?` is-selected`:``}" data-tp-m="${n}">${$(n)}</button>`}).join(``);return`<label class="nexa-picker-field"><span>${n}${d?`<b>*</b>`:``}</span><button type="button" class="nexa-picker-trigger" data-tp-toggle ${f?`disabled`:``} aria-haspopup="dialog" aria-expanded="false"><span data-tp-display class="${l?`has-value`:``}">${u||r}</span><i class="nexa-picker-ico is-clock" aria-hidden="true"></i></button><input type="hidden" data-tp-value value="${i}"${d}>
|
|
34
|
+
<div class="nexa-timepicker-panel" data-tp-panel hidden role="dialog" aria-label="${n}">
|
|
35
|
+
<div class="nexa-tp-cols"><div class="nexa-tp-col"><small>ساعة</small><div class="nexa-tp-list" data-tp-hours>${p}</div></div><div class="nexa-tp-col"><small>دقيقة</small><div class="nexa-tp-list" data-tp-mins>${m}</div></div></div>
|
|
36
|
+
<div class="nexa-cal-foot"><button type="button" class="nexa-button nexa-ghost nexa-sm" data-tp-clear>مسح</button><button type="button" class="nexa-button nexa-primary nexa-sm nexa-pill" data-tp-apply>تم</button></div>
|
|
37
|
+
</div></label>`}),e.register(`chip`,({element:e,modifiers:t,content:n,label:r})=>{let i=n||r||e.getAttribute(`text`)||`Chip`,a=w(t,`removable`)||w(t,`x`);return w(t,`active`)&&e.classList.add(`is-active`),w(t,`outline`)&&e.classList.add(`is-outline`),`<span class="nexa-chip-label">${i}</span>${a?`<button type="button" class="nexa-chip-x" data-chip-remove aria-label="إزالة">×</button>`:``}`}),e.register(`rating`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-rating`,``);let n=Number(e.getAttribute(`max`)??`5`)||5,r=Number(e.getAttribute(`value`)??`0`)||0,i=w(t,`readonly`)||w(t,`static`);return i&&e.classList.add(`is-readonly`),`<div class="nexa-rating-row" role="slider" aria-valuemin="0" aria-valuemax="${n}" aria-valuenow="${r}">${Array.from({length:n},(e,t)=>{let n=t+1;return`<button type="button" class="nexa-star${n<=r?` is-on`:``}" data-star="${n}" aria-label="${n}" ${i?`tabindex="-1"`:``}>★</button>`}).join(``)}</div><input type="hidden" data-rating-value value="${r}">`}),e.register(`stepper`,({element:e})=>{e.setAttribute(`data-nexa-stepper`,``);let t=T(e.getAttribute(`steps`)??e.getAttribute(`items`)??`الحساب,التفاصيل,الدفع,تأكيد`),n=Math.max(0,Number(e.getAttribute(`active`)??`1`)-1);return`<ol class="nexa-stepper-list">${t.map((e,t)=>`<li class="nexa-step ${t<n?`is-done`:t===n?`is-active`:``}" data-step="${t+1}"><i>${t<n?`✓`:t+1}</i><span>${e}</span></li>`).join(``)}</ol>`}),e.register(`fab`,({element:e,modifiers:t,content:n,label:r})=>{let i=n||r||e.getAttribute(`label`)||`+`,a=e.getAttribute(`href`);(w(t,`extended`)||i.length>2)&&e.classList.add(`is-extended`),w(t,`bottom-start`)&&e.classList.add(`is-start`);let o=`nexa-fab-btn`;return a?`<a class="${o}" href="${a}"><span>${i}</span></a>`:`<button type="button" class="${o}"><span>${i}</span></button>`}),e.register(`chips`,({element:e})=>T(e.getAttribute(`items`)??`تصميم,تطوير,تسويق`).map(e=>`<span class="nexa-chip is-inline"><span class="nexa-chip-label">${e}</span></span>`).join(``)),e.register(`autocomplete`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-autocomplete`,``);let n=e.getAttribute(`label`)??`بحث`,r=e.getAttribute(`placeholder`)??`اكتب للبحث…`,i=e.getAttribute(`value`)??``,a=e.getAttribute(`empty`)??`لا نتائج`,o=T(e.getAttribute(`items`)??e.getAttribute(`options`)??`Nexa,Bootstrap,Material,Tailwind,React,Vue`),s=w(t,`required`),c=w(t,`disabled`);c&&e.classList.add(`is-disabled`);let l=o.map((e,t)=>`<button type="button" class="nexa-ac-option" role="option" data-ac-opt="${t}" data-value="${e.replace(/"/g,`"`)}">${e}</button>`).join(``);return`<label class="nexa-picker-field nexa-ac-field"><span>${n}${s?`<b>*</b>`:``}</span><div class="nexa-ac-box"><input type="text" class="nexa-ac-input" data-ac-input value="${i.replace(/"/g,`"`)}" placeholder="${r}" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" ${c?`disabled`:``} ${s?`required`:``}><button type="button" class="nexa-ac-clear" data-ac-clear aria-label="مسح" hidden>×</button><i class="nexa-ac-caret" aria-hidden="true"></i></div><input type="hidden" data-ac-value value="${i.replace(/"/g,`"`)}"><div class="nexa-ac-menu" data-ac-menu hidden role="listbox"><div class="nexa-ac-list" data-ac-list>${l}</div><div class="nexa-ac-empty" data-ac-empty hidden>${a}</div></div></label>`})}function sr(e){let t=[];for(let n of e){let e=n.split(/[/>]/).map(e=>e.trim()).filter(Boolean),r=t;for(let t of e){let e=r.find(e=>e.label===t);e||(e={label:t,children:[]},r.push(e)),r=e.children}}return t}function cr(e,t=0){return e.map(e=>{let n=e.children.length>0;return`<li class="nexa-tree-node" data-tree-node style="--depth:${t}">
|
|
38
|
+
<button type="button" class="nexa-tree-row${n?``:` is-leaf`}" data-tree-toggle aria-expanded="${n?`true`:`false`}">
|
|
39
|
+
${n?`<i class="nexa-tree-caret" aria-hidden="true"></i>`:`<i class="nexa-tree-dot" aria-hidden="true"></i>`}
|
|
40
|
+
<span>${e.label}</span>
|
|
41
|
+
</button>
|
|
42
|
+
${n?`<ul class="nexa-tree-children" data-tree-children>${cr(e.children,t+1)}</ul>`:``}
|
|
43
|
+
</li>`}).join(``)}function lr(e){e.register(`tree`,({element:e})=>(e.setAttribute(`data-nexa-tree`,``),`<ul class="nexa-tree" role="tree">${cr(sr(T(e.getAttribute(`items`)??`Apps/Dashboard,Apps/Settings,Docs/API,Docs/Guides/Start,Docs/Guides/Theme`)))}</ul>`)),e.register(`timeline`,({element:e,modifiers:t})=>{let n=T(e.getAttribute(`items`)??e.getAttribute(`steps`)??`إطلاق|اليوم|Nexa 0.1 جاهز للفحص;Pickers|أمس|Date · Time · Autocomplete;Foundation|آب|Header · Hero · Cards`,/;/).map(e=>{let[t,n,r]=e.split(`|`).map(e=>e.trim());return{title:t||`حدث`,meta:n||``,body:r||``}});return w(t,`compact`)&&e.classList.add(`is-compact`),`<ol class="nexa-timeline">${n.map(e=>`<li class="nexa-timeline-item"><i aria-hidden="true"></i><div><small>${e.meta}</small><h4>${e.title}</h4>${e.body?`<p>${e.body}</p>`:``}</div></li>`).join(``)}</ol>`}),e.register(`transfer`,({element:e})=>{e.setAttribute(`data-nexa-transfer`,``);let t=T(e.getAttribute(`source`)??e.getAttribute(`items`)??`Dashboard,Billing,Team,API Keys,Webhooks,Logs`),n=T(e.getAttribute(`target`)??e.getAttribute(`selected`)??``),r=e.getAttribute(`left-label`)??`Available`,i=e.getAttribute(`right-label`)??`Selected`,a=e.getAttribute(`add-label`)??`Add`,o=e.getAttribute(`remove-label`)??`Remove`,s=e.getAttribute(`empty-label`)??`Empty`,c=t.filter(e=>!n.includes(e)),l=(e,t)=>e.map(e=>`<button type="button" class="nexa-transfer-opt" data-transfer-opt data-side="${t}" data-value="${e.replace(/"/g,`"`)}">${e}</button>`).join(``)||`<span class="nexa-transfer-empty">${s}</span>`;return`<div class="nexa-transfer">
|
|
44
|
+
<div class="nexa-transfer-col"><b>${r}</b><div class="nexa-transfer-list" data-transfer-left>${l(c,`left`)}</div></div>
|
|
45
|
+
<div class="nexa-transfer-actions">
|
|
46
|
+
<button type="button" class="nexa-button nexa-primary nexa-sm nexa-pill" data-transfer-to-right>${a}</button>
|
|
47
|
+
<button type="button" class="nexa-button nexa-outline nexa-sm" data-transfer-to-left>${o}</button>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="nexa-transfer-col"><b>${i}</b><div class="nexa-transfer-list" data-transfer-right>${l(n,`right`)}</div></div>
|
|
50
|
+
</div>`})}var ur={success:`✓`,warning:`!`,danger:`✕`,info:`i`};function dr(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function fr(e,t=`info`){let n=dr(e||`Done`);return`<span class="nexa-toast-icon nexa-toast-icon-${t}" aria-hidden="true">${ur[t]}</span><p>${n}</p><button type="button" data-toast-close aria-label="Close">×</button>`}function pr(){let e=document.querySelector(`.nexa-toast-stack`);return e||(e=document.createElement(`div`),e.className=`nexa-toast-stack`,e.setAttribute(`aria-live`,`polite`),e.setAttribute(`aria-relevant`,`additions`),document.body.appendChild(e)),e}function mr(e,t){let n=()=>{e.classList.add(`is-leaving`),window.setTimeout(()=>e.remove(),220)};return e.querySelector(`[data-toast-close]`)?.addEventListener(`click`,n),t>0&&window.setTimeout(n,t),n}function hr(e){let t=typeof e==`string`?{text:e}:e,n=t.tone??`info`,r=t.duration??3200,i=t.text||`Done`,a=pr(),o=document.createElement(`div`);return o.className=`nexa-toast nexa-toast-${n}`,o.setAttribute(`data-nexa-toast`,``),o.setAttribute(`role`,`status`),o.innerHTML=fr(i,n),a.appendChild(o),mr(o,r),o}function gr(){document.querySelectorAll(`.nexa-toast-stack .nexa-toast`).forEach(e=>e.remove())}function _r(e){qn(e),er(e),un(e),or(e),lr(e),e.register(`button`,({modifiers:e,content:t,label:n,element:r})=>{w(e,`disabled`)&&r.setAttribute(`disabled`,``),w(e,`loading`)&&(r.setAttribute(`aria-busy`,`true`),r.classList.add(`is-loading`));let i=t||n||`Button`;return w(e,`loading`)?`<span class="nexa-btn-spin" aria-hidden="true"></span><span>${i}</span>`:`<span>${i}</span>`}),e.register(`input`,()=>``),e.register(`card`,({content:e,modifiers:t,element:n})=>(Un(n,t),Wn(n,e,t))),e.register(`grid`,({content:e})=>e),e.register(`stack`,({content:e})=>e),e.register(`container`,({content:e})=>e),e.register(`form`,({content:e,modifiers:t,element:n})=>(w(t,`validate`)&&(n.setAttribute(`data-nexa-form`,`validate`),n.setAttribute(`novalidate`,``)),e)),e.register(`badge`,({content:e})=>e||`New`),e.register(`field`,({modifiers:e,element:t})=>{let n=[`text`,`email`,`password`,`number`,`date`,`file`,`search`,`tel`,`url`,`color`,`range`,`checkbox`,`radio`,`hidden`].find(t=>w(e,t))??`text`,r=t.getAttribute(`label`)??(n===`password`?`Password`:n===`email`?`Email address`:`Field`),i=t.getAttribute(`hint`),a=t.getAttribute(`message`),o=w(e,`error`)?`is-error`:w(e,`success`)?`is-success`:``,s=`${w(e,`required`)?`required`:``} ${w(e,`disabled`)?`disabled`:``} ${w(e,`readonly`)?`readonly`:``}`.trim(),c=t.getAttribute(`name`)??``,l=t.getAttribute(`id`)??``,u=t.getAttribute(`autocomplete`)??``,d=`${c?` name="${c}"`:``}${l?` id="${l}"`:``}${u?` autocomplete="${u}"`:``}`;if(n===`hidden`)return`<input type="hidden" name="${c||`hidden-field`}" value="${t.getAttribute(`value`)??``}">`;if(n===`checkbox`||n===`radio`){let i=w(e,`checked`)||t.hasAttribute(`checked`),a=c?` name="${c}"`:``;return`<label class="nexa-choice ${n===`radio`?`is-radio`:`is-check`}"><input type="${n}"${a} ${s}${i?` checked`:``}><i aria-hidden="true"></i><span>${r}</span></label>`}return w(e,`float`)?`<label class="nexa-field-float ${o}"><input type="${n}"${d} placeholder=" " value="${t.getAttribute(`value`)??``}" ${s}><span>${r}${w(e,`required`)?`<b>*</b>`:``}</span>${a?`<em>${a}</em>`:``}</label>`:`<label class="nexa-field-wrap ${o}"><span>${r}${w(e,`required`)?`<b>*</b>`:``}</span><input type="${n}"${d} placeholder="${t.getAttribute(`placeholder`)??``}" value="${t.getAttribute(`value`)??``}" ${s}>${i?`<small>${i}</small>`:``}${a?`<em>${a}</em>`:``}</label>`}),e.register(`header`,({modifiers:e,element:t})=>{let n=w(e,`vision`),r=w(e,`simple`),i=w(e,`mega`),a=w(e,`bar`)?`bar`:w(e,`dock`)?`dock`:w(e,`float`)||w(e,`overlay`)||n?`float`:`bar`;w(e,`dark`)&&t.classList.add(`is-dark`),w(e,`light`)&&t.classList.add(`is-light`),(w(e,`glass`)||a===`bar`&&!r)&&t.classList.add(`nexa-glass`),i&&t.classList.add(`is-mega`),t.classList.add(r?`is-simple`:`is-complete`),t.classList.add(`is-${a}`),n&&t.classList.add(`is-vision`),a===`float`&&t.setAttribute(`data-nexa-header-scroll`,``);let o=t.getAttribute(`logo`)??`Nexa`,s=t.getAttribute(`logo-image`)??k.mark,c=t.getAttribute(`logo-wordmark`)??t.getAttribute(`logo-text-image`)??(n?k.wordmark:void 0),l=t.getAttribute(`logo-href`)??`#`,u=t.getAttribute(`cta`)??`Get started`,d=t.getAttribute(`cta-href`)??`#`,f=`<div class="nexa-navlinks">${O(t,n||!r?[`Features`,`Docs`,`Components`,`Templates`,`Community`,`Blog`]:[`Features`,`Docs`])}</div>`,p=i?`<div class="nexa-mega-panel"><div><b>Product</b><a href="#">Components</a><a href="#">Color Map</a><a href="#">Themes</a></div><div><b>Solutions</b><a href="#">SaaS</a><a href="#">Agency</a><a href="#">Startup</a></div><div><b>Resources</b><a href="#">Docs</a><a href="#">Examples</a></div></div>`:``,m=s,h=m===k.mark||m.endsWith(`/nexa-mark.png`)?` srcset="${Fe(40)}" sizes="40px"`:``;return`<a class="nexa-logo" href="${l}">${`<img class="nexa-mark" src="${m===k.mark?k.mark128:m}" alt="" width="40" height="40" decoding="async"${h}>`}${c?`<img class="nexa-wordmark" src="${c}" alt="${o}" decoding="async">`:`<span>${o}</span>`}</a>${f}${r?`<div class="nexa-header-actions"><a class="nexa-cta" href="${d}">${u}</a></div>`:`<div class="nexa-header-actions"><a class="nexa-cta" href="${d}">${u}</a><button class="nexa-menu-btn" type="button" aria-label="Menu"><i></i><i></i><i></i></button></div>`}${p}`}),e.register(`hero`,({modifiers:e,element:t})=>{let n=w(e,`vision`),r=w(e,`centered`),i=w(e,`minimal`),a=w(e,`image-left`),o=w(e,`image-right`);i?t.classList.add(`is-minimal`):r?t.classList.add(`is-centered`):t.classList.add(a?`is-image-left`:o?`is-image-right`:`is-split`),w(e,`luxury`)&&t.classList.add(`is-luxury`),n&&t.classList.add(`is-vision`);let s=t.getAttribute(`eyebrow`)??t.getAttribute(`small`)??``,c=E(t.getAttribute(`title`)??(i?`Build with|one command.`:`Modern frameworks for digital|experiences`)),l=t.getAttribute(`text`)??t.getAttribute(`desc`)??`Nexa Framework is a complete toolkit for building modern web apps — fast, secure, and ready to scale.`,u=t.getAttribute(`cta`)??`Get started`,d=t.getAttribute(`cta2`)??`Explore features`,f=t.getAttribute(`cta-href`),p=t.getAttribute(`cta2-href`),m=`<div class="nexa-hero-actions">${f?`<a class="nexa-cta" href="${f}"><span>${u}</span><i class="nexa-cta-arrow" aria-hidden="true"></i></a>`:`<button class="nexa-cta" type="button"><span>${u}</span><i class="nexa-cta-arrow" aria-hidden="true"></i></button>`}${p?`<a class="nexa-cta is-ghost" href="${p}">${d}</a>`:`<button class="nexa-cta is-ghost" type="button">${d}</button>`}</div>`,h=`<div class="nexa-hero-copy">${s?`<small>${s}</small>`:``}<h2>${c}</h2><p>${l}</p>${m}</div>`,g=t.getAttribute(`image`)??t.getAttribute(`img`),_=g?`<div class="nexa-hero-media"><img src="${g}" alt="" loading="lazy"></div>`:i?``:Re();return r?`${h}<div class="nexa-hero-glow"></div>`:a?`${_}${h}`:`${h}${_}`}),e.register(`features`,({modifiers:e,element:t})=>{let n=Number(e.find(e=>/^cards-[1-4]$/.test(e))?.split(`-`)[1]??`3`);return`<div class="nexa-section-head"><div><small>${t.getAttribute(`eyebrow`)??`WHY NEXA`}</small><h2>${t.getAttribute(`title`)??`Simple without compromise.`}</h2></div></div><div class="nexa-card-grid" style="--cols:${n}">${Ne(t,n).map((e,t)=>`<article style="--card-i:${t}"><b>${e[0]}</b><h3>${e[1]}</h3><p>${e[2]}</p></article>`).join(``)}</div>`}),e.register(`logos`,({element:e})=>{let t=e.getAttribute(`label`)??e.getAttribute(`eyebrow`)??`TRUSTED BY TEAMS BUILDING THE FUTURE`,n=T(e.getAttribute(`brands`)??e.getAttribute(`logos`));return`<small>${t}</small><div>${(n.length?n:[`ORBIT`,`APEX`,`MONO`,`VERVE`,`SHIFT`]).map(e=>`<b>${e}</b>`).join(``)}</div>`}),e.register(`pricing`,({element:e})=>{let t=e.getAttribute(`eyebrow`)??`SIMPLE PRICING`,n=e.getAttribute(`title`)??`Start small. Scale without limits.`,r=Me(e),i=e.getAttribute(`cta-href`);return`<div class="nexa-section-head"><small>${t}</small><h2>${n}</h2></div><div class="nexa-price-grid">${r.map(e=>`<article class="${e.popular?`is-popular`:``}">${e.popular?`<i>POPULAR</i>`:``}<span>${e.name}</span><h3>$${e.price}<small>/month</small></h3><p>${e.desc}</p><ul>${e.features.map(e=>`<li>${e}</li>`).join(``)}</ul>${i?`<a class="nexa-cta" href="${i}">${e.cta}</a>`:`<button class="nexa-cta" type="button">${e.cta}</button>`}</article>`).join(``)}</div>`}),e.register(`testimonials`,({modifiers:e,element:t})=>{w(e,`featured`)&&t.classList.add(`is-featured`);let n=D(t.getAttribute(`slides`)??t.getAttribute(`quotes`));if(n.length>1)return t.classList.add(`has-slides`),`<small>${t.getAttribute(`eyebrow`)??`TESTIMONIALS`}</small><div class="nexa-testimonial-slides">${n.map(e=>`<blockquote>“${e.body||e.head}”</blockquote>`).join(``)}</div>`;let r=t.getAttribute(`quote`)??n[0]?.body??`Nexa shortened the distance between our idea and the product.`,i=t.getAttribute(`name`)??`LAYLA HADDAD`,a=t.getAttribute(`role`)??`Product Designer · Dubai`;return`<small>${t.getAttribute(`eyebrow`)??`FROM OUR COMMUNITY`}</small><blockquote>“${r}”</blockquote><div><b>${i}</b><span>${a}</span></div>`}),e.register(`cta`,({modifiers:e,element:t})=>{w(e,`bold`)&&t.classList.add(`is-bold`,`nexa-bold`);let n=t.getAttribute(`eyebrow`)??`YOUR NEXT IDEA`,r=E(t.getAttribute(`title`)??`Ready when|you are.`),i=t.getAttribute(`cta`)??`Start building now →`,a=t.getAttribute(`cta-href`);return`<small>${n}</small><h2>${r}</h2>${a?`<a class="nexa-cta" href="${a}">${i}</a>`:`<button class="nexa-cta" type="button">${i}</button>`}`}),e.register(`footer`,({modifiers:e,element:t})=>{w(e,`dark`)&&t.classList.add(`is-dark`),w(e,`mega`)&&t.classList.add(`is-mega`);let n=w(e,`simple`);n&&t.classList.add(`is-simple`);let r=t.getAttribute(`copy`)??`© 2026 Nexa Framework`,i=t.getAttribute(`logo`)??`Nexa`,a=t.getAttribute(`logo-image`),o=t.getAttribute(`logo-href`)??`#`,s=t.getAttribute(`tagline`)??`Build. Ship. Scale.`,c=`<a class="nexa-logo" href="${o}">${a?`<img src="${a}" alt="">`:``}<span>${i}</span></a>`,l=(e,n)=>D(t.getAttribute(e)??n).map(e=>`<a href="${e.body}">${e.head}</a>`).join(``);if(n)return`<div class="nexa-footer-simple">${c}<span>${r}</span></div>`;let u=t.getAttribute(`headline`)??t.getAttribute(`title`),d=u?`<h2 class="nexa-footer-headline">${E(u)}</h2>`:``;return`<div class="nexa-footer-top"><div>${c}<p class="nexa-footer-tag">${s}</p></div><div class="nexa-footer-cols"><div><b>Product</b>${l(`product-links`,`Features|/site/features.html;Components|/site/components.html;Pricing|/site/pricing.html`)}</div><div><b>Resources</b>${l(`resource-links`,`About|/site/about.html;Blog|/site/blog.html;Contact|/site/contact.html`)}</div><div><b>Company</b>${l(`company-links`,`Privacy|#;Terms|#;GitHub|#`)}</div></div></div>${d}<div class="nexa-footer-bottom"><span>${r}</span><nav>${l(`social-links`,`GitHub|#;Community|#;Updates|#`)}</nav></div>`}),e.register(`alert`,({modifiers:e,element:t})=>{let n=e.find(e=>[`success`,`warning`,`danger`,`info`].includes(e))??`info`,r=t.getAttribute(`title`)??{success:`نجاح`,warning:`تنبيه`,danger:`خطأ`,info:`معلومة`}[n],i=t.getAttribute(`text`)??t.textContent?.trim()??`تنبيه`;return`<div class="nexa-alert-inner nexa-alert-${n}" role="alert"><i class="nexa-alert-ico" aria-hidden="true">${{success:`✓`,warning:`!`,danger:`×`,info:`i`}[n]}</i><div><b>${r}</b><p>${i}</p></div></div>`}),e.register(`modal`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-modal`,``),w(t,`open`)&&e.classList.add(`is-open`);let n=e.getAttribute(`title`)??`نافذة`,r=e.getAttribute(`text`)??`محتوى النافذة`,i=e.getAttribute(`cta`)??`تم`;return`<div class="nexa-modal-backdrop" data-modal-close></div><div class="nexa-modal-card" role="dialog" aria-modal="true"><header><h3>${n}</h3><button type="button" class="nexa-modal-x" data-modal-close aria-label="Close">×</button></header><div class="nexa-modal-body"><p>${r}</p></div><footer class="nexa-modal-foot"><button type="button" class="nexa-button nexa-ghost" data-modal-close>${e.getAttribute(`cancel`)??`إلغاء`}</button><button type="button" class="nexa-button nexa-primary nexa-pill" data-modal-close>${i}</button></footer></div>`}),e.register(`accordion`,({element:e})=>`<div class="nexa-accordion" data-nexa-accordion>${D(e.getAttribute(`items`)??`What is Nexa?|Commands that render full components.;Color map?|One hex colors the whole site.;Is it like Tailwind?|No — complete blocks first.`).map(e=>`<article data-acc-item><button type="button" data-acc-trigger aria-expanded="false"><span>${e.head}</span><i class="nexa-acc-caret" aria-hidden="true"></i></button><div data-acc-panel>${e.body}</div></article>`).join(``)}</div>`),e.register(`tabs`,({element:e,modifiers:t})=>{let n=D(e.getAttribute(`tabs`)??`Tab 1|Content one;Tab 2|Content two;Tab 3|Content three`);return(w(t,`pills`)||w(t,`segmented`))&&e.classList.add(`is-pills`),`<div class="nexa-tabs" data-nexa-tabs><div class="nexa-tablist" role="tablist">${n.map((e,t)=>`<button type="button" data-tab class="${t===0?`is-active`:``}">${e.head}</button>`).join(``)}</div><div class="nexa-tabpanels">${n.map((e,t)=>`<div data-panel ${t?`hidden`:``}>${e.body}</div>`).join(``)}</div></div>`}),e.register(`dropdown`,({element:e,modifiers:t,label:n})=>{let r=(n??``).trim().split(/\s+/).filter(e=>{let t=e.toLowerCase();return![`primary`,`ghost`,`open`,`end`,`e`,`drop`,`menu`,`dd`].includes(t)}).join(` `),i=e.getAttribute(`label`)||r||`Menu`,a=T(e.getAttribute(`items`)??e.getAttribute(`menu`)??`Profile,Settings,Billing,—,Logout|danger`).map(e=>{if(e===`—`||e===`-`||e===`---`||e===`sep`||e===`|`)return{sep:!0};let[t,n,r]=e.split(`|`).map(e=>e.trim());return{sep:!1,text:t||`Item`,href:!n||n===`danger`||n===`x`?`#`:n,danger:r===`danger`||n===`danger`||n===`x`}}),o=w(t,`open`),s=w(t,`end`),c=w(t,`primary`)?` is-primary`:w(t,`ghost`)?` is-ghost`:``;s&&e.classList.add(`is-end`),o&&e.classList.add(`is-open`);let l=a.map(e=>{if(e.sep)return`<hr class="nexa-drop-sep">`;let t=e.danger?` is-danger`:``;return`<a href="${e.href}" role="menuitem" class="nexa-drop-item${t}">${e.text}</a>`}).join(``);return`<div class="nexa-dropdown${o?` is-open`:``}${s?` is-end`:``}" data-nexa-dropdown><button type="button" class="nexa-drop-trigger${c}" data-drop-toggle aria-haspopup="menu" aria-expanded="${o?`true`:`false`}"><span>${i}</span><i class="nexa-drop-caret" aria-hidden="true"></i></button><div class="nexa-drop-menu" data-drop-menu role="menu">${l}</div></div>`}),e.register(`spinner`,({modifiers:e})=>`<span class="nexa-spinner${w(e,`large`)||w(e,`lg`)?` is-lg`:w(e,`small`)||w(e,`sm`)?` is-sm`:``}" role="status" aria-label="Loading"></span>`),e.register(`progress`,({element:e})=>{let t=Math.min(100,Math.max(0,Number(e.getAttribute(`value`)??`60`)));return`<label class="nexa-progress"><span><b>${e.getAttribute(`label`)??`Progress`}</b><i>${t}%</i></span><i style="--val:${t}%"></i></label>`}),e.register(`toast`,({modifiers:e,element:t})=>{let n=e.find(e=>[`success`,`warning`,`danger`,`info`].includes(e))??`info`,r=t.getAttribute(`text`)??`Saved successfully`;return t.classList.add(`is-static-preview`,`nexa-toast-${n}`),t.setAttribute(`data-nexa-toast`,``),t.setAttribute(`role`,`status`),fr(r,n)}),e.register(`breadcrumb`,({element:e})=>{let t=T(e.getAttribute(`items`)??`Home,Products,Item`);return`<div class="nexa-breadcrumb" role="navigation" aria-label="Breadcrumb">${t.map((e,n)=>n<t.length-1?`<a href="#">${e}</a><span>/</span>`:`<span aria-current="page">${e}</span>`).join(``)}</div>`}),e.register(`pagination`,({element:e})=>{let t=Number(e.getAttribute(`pages`)??`5`),n=Number(e.getAttribute(`current`)??`1`);return`<div class="nexa-pagination" role="navigation" aria-label="Pagination"><a href="#" class="nexa-page is-nav" aria-label="Previous">‹</a>${Array.from({length:t},(e,t)=>{let r=t+1;return`<a href="#" class="nexa-page${r===n?` is-active`:``}" aria-current="${r===n?`page`:`false`}">${r}</a>`}).join(``)}<a href="#" class="nexa-page is-nav" aria-label="Next">›</a></div>`}),e.register(`divider`,()=>`<hr class="nexa-divider">`),e.register(`avatar`,({element:e,modifiers:t})=>{let n=e.getAttribute(`name`)??`N`,r=w(t,`large`)||w(t,`lg`)?` is-lg`:w(t,`small`)||w(t,`sm`)?` is-sm`:``,i=e.getAttribute(`src`)??e.getAttribute(`image`),a=w(t,`male`)||w(t,`user`)||e.getAttribute(`user`)===`male`,o=i||(a?`https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=160&h=160&fit=crop&crop=face`:``);return o?`<span class="nexa-avatar${r} is-photo"><img src="${o}" alt="${n}" loading="lazy"></span>`:`<span class="nexa-avatar${r}" aria-label="${n}">${n.slice(0,2).toUpperCase()}</span>`}),e.register(`auth`,({element:e,modifiers:t})=>(w(t,`compact`)&&e.classList.add(`is-compact`),`<div class="nexa-auth-card"><small>NEXA</small><h2>${e.getAttribute(`title`)??`Welcome back`}</h2><p>${e.getAttribute(`subtitle`)??`Sign in to continue`}</p><div class="nexa-auth-fields"><label class="nexa-field-wrap"><span>Email<b>*</b></span><input type="email" placeholder="you@email.com" required></label><label class="nexa-field-wrap"><span>Password<b>*</b></span><input type="password" placeholder="••••••••" required></label><div class="nexa-auth-actions"><button class="nexa-cta nexa-block" type="button">Sign in</button><button class="nexa-cta is-ghost nexa-block" type="button">Create account</button></div></div></div>`)),e.register(`carousel`,({element:e,modifiers:t})=>{let n=D(e.getAttribute(`slides`)??`Slide 1|First content.;Slide 2|Second content.;Slide 3|Third content.`);return(w(t,`autoplay`)||w(t,`auto`))&&(e.setAttribute(`data-autoplay`,``),e.setAttribute(`data-interval`,e.getAttribute(`interval`)??`4000`)),`<div class="nexa-carousel" data-nexa-carousel><div class="nexa-carousel-track">${n.map((e,t)=>`<article data-slide ${t?`hidden`:``}><h3>${e.head}</h3><p>${e.body}</p></article>`).join(``)}</div><div class="nexa-carousel-bar"><button type="button" class="nexa-carousel-btn" data-carousel-prev aria-label="Previous">‹</button><div class="nexa-carousel-dots">${n.map((e,t)=>`<button type="button" class="nexa-carousel-dot${t===0?` is-active`:``}" data-carousel-dot="${t}" aria-label="Slide ${t+1}"></button>`).join(``)}</div><button type="button" class="nexa-carousel-btn" data-carousel-next aria-label="Next">›</button></div></div>`}),e.register(`sheet`,({element:e,modifiers:t})=>{e.setAttribute(`data-nexa-sheet`,``),w(t,`open`)&&e.classList.add(`is-open`);let n=e.getAttribute(`title`)??`خيارات`,r=e.getAttribute(`text`)??(e.innerHTML.trim()||`محتوى الـ bottom sheet`),i=e.getAttribute(`cta`)??`تم`;return`<div class="nexa-sheet-backdrop" data-sheet-close></div><div class="nexa-sheet-panel" role="dialog" aria-modal="true"><i class="nexa-sheet-handle" aria-hidden="true"></i><header><h3>${n}</h3><button type="button" class="nexa-modal-x" data-sheet-close aria-label="Close">×</button></header><div class="nexa-sheet-body"><p>${r}</p></div><footer class="nexa-sheet-foot"><button type="button" class="nexa-button nexa-ghost" data-sheet-close>${e.getAttribute(`cancel`)??`إلغاء`}</button><button type="button" class="nexa-button nexa-primary nexa-pill" data-sheet-close>${i}</button></footer></div>`}),e.register(`offcanvas`,({element:e,modifiers:t})=>(e.setAttribute(`data-nexa-offcanvas`,``),w(t,`open`)&&e.classList.add(`is-open`),`<div class="nexa-offcanvas-backdrop" data-offcanvas-close></div><aside class="nexa-offcanvas-panel ${w(t,`right`)?`is-right`:`is-left`}"><header><h3>${e.getAttribute(`title`)??`القائمة`}</h3><button type="button" data-offcanvas-close aria-label="Close">×</button></header><div class="nexa-offcanvas-body">${e.getAttribute(`text`)??(e.innerHTML.trim()||`محتوى اللوحة الجانبية`)}</div></aside>`)),e.register(`popover`,({element:e,modifiers:t})=>{let n=e.getAttribute(`label`)??`Info`,r=e.getAttribute(`text`)??`Popover content`;return`<div class="nexa-popover" data-nexa-popover><button type="button" class="nexa-cta is-ghost" data-pop-trigger>${n}</button><div class="nexa-popover-card" data-pop-card ${w(t,`open`)?``:`hidden`}><p>${r}</p></div></div>`}),e.register(`tooltip`,({element:e})=>{let t=e.getAttribute(`text`)??e.getAttribute(`tip`)??`Tooltip`,n=e.textContent?.trim()||e.getAttribute(`label`)||`?`;return`<span class="nexa-tooltip-wrap" data-nexa-tooltip="${t.replace(/"/g,`"`)}">${n}<i class="nexa-tooltip-bubble" role="tooltip">${t}</i></span>`}),e.register(`list`,({element:e,modifiers:t})=>{let n=T(e.getAttribute(`items`)??`Item one,Item two,Item three`),r=w(t,`ordered`)?`ol`:`ul`;return`<${r} class="nexa-list">${n.map(e=>`<li>${e}</li>`).join(``)}</${r}>`}),e.register(`posts`,({element:e,modifiers:t})=>{let n=Number(t.find(e=>/^cards-[1-4]$/.test(e))?.split(`-`)[1]??`3`);w(t,`compact`)&&e.classList.add(`is-compact`);let r=e.getAttribute(`eyebrow`)??`BLOG`,i=e.getAttribute(`title`)??`Latest posts`,a=e.getAttribute(`cta`)??e.getAttribute(`link`)??`Read more →`,o=T(e.getAttribute(`posts`)??e.getAttribute(`items`)??`Color Map|One hex dresses the whole site.|12 Aug;Components|Full blocks, not utilities.|8 Aug;Launch|Nexa is ready to ship.|1 Aug`,/;/).map(e=>{let[t,n,r]=e.split(`|`).map(e=>e.trim());return{title:t||`Post`,excerpt:n&&n!==t?n:``,meta:r||``}}).filter(e=>e.title),s=o.slice(0,n).map(e=>`<article class="nexa-post-card"><div class="nexa-post-card-body">${e.meta?`<time>${e.meta}</time>`:``}<h3>${e.title}</h3>${e.excerpt?`<p>${e.excerpt}</p>`:``}<a href="#">${a}</a></div></article>`).join(``);return`<div class="nexa-posts-inner"><div class="nexa-section-head"><small>${r}</small><h2>${i}</h2></div><div class="nexa-post-grid" style="--cols:${Math.min(n,o.length||1)}">${s}</div></div>`}),e.register(`checkout`,({element:e,modifiers:t})=>{w(t,`compact`)&&e.classList.add(`is-compact`);let n=e.getAttribute(`title`)??`Checkout`,r=e.getAttribute(`total`)??`$49`;return`<div class="nexa-checkout"><div class="nexa-checkout-form"><h2>${n}</h2><div class="nexa-checkout-fields"><label class="nexa-field-wrap"><span>Name<b>*</b></span><input type="text" placeholder="Full name" required></label><label class="nexa-field-wrap"><span>Email<b>*</b></span><input type="email" placeholder="you@email.com" required></label><label class="nexa-field-wrap"><span>Address<b>*</b></span><input type="text" placeholder="Street, city" required></label><label class="nexa-field-wrap"><span>Card<b>*</b></span><input type="text" placeholder="4242 4242 4242 4242" required></label><button class="nexa-cta nexa-block" type="button">Pay ${r}</button></div></div><aside class="nexa-checkout-summary"><small>Order summary</small><h3>${e.getAttribute(`plan`)??`Pro Plan`}</h3><p>${e.getAttribute(`period`)??`Monthly · auto-renews`}</p><div class="nexa-checkout-total"><span>Total</span><b>${r}</b></div></aside></div>`}),e.register(`table`,({element:e,modifiers:t})=>{w(t,`striped`)&&e.classList.add(`is-striped`),w(t,`hover`)&&e.classList.add(`is-hover`),w(t,`compact`)&&e.classList.add(`is-compact`);let n=T(e.getAttribute(`headers`)??`Key|Value`,/\|/),r=T(e.getAttribute(`rows`)??`Plan|Pro;Users|12;Status|Active`,/;/).map(e=>{let t=e.split(`|`).map(e=>e.trim());for(;t.length<n.length;)t.push(``);return t.slice(0,Math.max(n.length,t.length))}).filter(e=>e.some(e=>e)),i=Math.max(n.length,...r.map(e=>e.length),1);return`<div class="nexa-table-wrap"><table class="nexa-table"><thead><tr>${Array.from({length:i},(e,t)=>n[t]??`عمود ${t+1}`).map(e=>`<th>${e}</th>`).join(``)}</tr></thead><tbody>${r.map(e=>`<tr>${Array.from({length:i},(t,n)=>`<td>${e[n]??``}</td>`).join(``)}</tr>`).join(``)}</tbody></table></div>`}),e.register(`collapse`,({element:e})=>`<div class="nexa-collapse" data-nexa-collapse><button type="button" class="nexa-collapse-trigger" data-collapse-trigger aria-expanded="false">${e.getAttribute(`title`)??`تفاصيل`} ▾</button><div class="nexa-collapse-panel" data-collapse-panel hidden>${e.getAttribute(`text`)??e.textContent?.trim()??`محتوى قابل للطي`}</div></div>`),e.register(`stat`,({element:e})=>`<div class="nexa-stat-row">${D(e.getAttribute(`stats`)??`Users|12.4k;Revenue|$48k;Uptime|99.9%;NPS|72`).map(e=>`<article><b>${e.head}</b><strong>${e.body}</strong></article>`).join(``)}</div>`),e.register(`nav`,({element:e})=>`<div class="nexa-nav" role="navigation" aria-label="Navigation">${O(e,[`Home`,`Features`,`Pricing`,`About`])}</div>`)}export{rn as a,t as c,X as i,e as l,gr as n,je as o,hr as r,Ae as s,_r as t,r as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./components-DCNIrNdJ.js";import"./main-BBkehs0N.js";import{t as e}from"./src-D__MdyFu.js";document.getElementById(`toast-one`)?.addEventListener(`click`,()=>{e.toast({text:`Saved successfully`,tone:`success`})}),document.getElementById(`toast-queue`)?.addEventListener(`click`,()=>{e.toast({text:`First message`,tone:`info`}),setTimeout(()=>e.toast({text:`Second message`,tone:`success`}),220),setTimeout(()=>e.toast({text:`Third message`,tone:`warning`}),440)}),document.getElementById(`demo-form`)?.addEventListener(`nexa:valid`,()=>{e.toast({text:`Form valid`,tone:`success`})});
|